MI
dúvida

O Que Fis De Errado No Script!

Por milbradt, 20 de out. de 2012 em Scripts

script
32
3.2k
milbradtM
20 de outubro de 2012 às 18:19

O script pede direto a requição pro ultimo level, como arrumo? oq falta?

 

script.lua:

local config = {
--[vocation id] = { level, looktype, efeito}
[1] = { 25, 66, 208},
[1] = { 50, 91, 208},
[1] = { 75, 18, 208},
[1] = { 100, 31, 208},
[1] = { 125, 92, 208},
[1] = { 150, 40, 208},
[1] = { 175, 305, 208},
[1] = { 200, 320, 208},
[1] = { 225, 179, 208},
[1] = { 250, 394, 208},
[1] = { 275, 397, 208}
}
function onSay(cid, words, param, channel)
doPlayerSay(cid, "transformar")
local voc = config[getPlayerVocation(cid)]
if voc then
if getPlayerLevel(cid) >= voc[1] then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "Você Transformou!")
local outfit = {lookType = voc[2]}
doCreatureChangeOutfit(cid, outfit)
doSendMagicEffect(getCreaturePosition(cid), voc[3])
else
doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "Você precisa estar no level " .. voc[1] .. " para transformar.")
end
else
doPlayerSendCancel(cid, "Você não pode se Transformar!")
end
return true
end

 

No caso ele pede direto a requisição pro level 275 ;/

SkyLighS
20 de outubro de 2012 às 18:23

Título irregular

reportado

 

para um superior

Editado Outubro 20 por SkyLigh

milbradtM
20 de outubro de 2012 às 18:27

Qual titulo me sugere?

SkyLighS
20 de outubro de 2012 às 18:29

Poderia Por

requisição no script

SkymagnumS
20 de outubro de 2012 às 18:29

Porquê em todos colchetes "[]" está a mesma vocação lol. Aí ele checa todos e sempre acaba no último ¬¬'.

 

 

 

[1] = { 25, 66, 208},

[1] = { 50, 91, 208},

[1] = { 75, 18, 208},

[1] = { 100, 31, 208},

[1] = { 125, 92, 208},

[1] = { 150, 40, 208},

[1] = { 175, 305, 208},

[1] = { 200, 320, 208},

[1] = { 225, 179, 208},

[1] = { 250, 394, 208},

[1]

 

viu tudo 1 você têm que mudar para a o id da vocação desejada

Editado Outubro 20 por Skymagnum

milbradtM
20 de outubro de 2012 às 18:43

é, tambem, uidsdiua

ficario mais ou menos como?

assim?

[1] = { 25, 66, 208},
  { 50, 91, 208},
  { 75, 18, 208},
  { 100, 31, 208},
  { 125, 92, 208},
  { 150, 40, 208},
  { 175, 305, 208},
  { 200, 320, 208},
  { 225, 179, 208},
  { 250, 394, 208},
  { 275, 397, 208}

Editado Outubro 20 por milbradt

SkymagnumS
20 de outubro de 2012 às 18:46

[1] = { 25, 66, 208}

 

ou se quiser mais de uma vocação:

 

[1] = { 25, 66, 208},
[2] = { 50, 91, 208},
[3] = { 75, 18, 208},
[4] = { 100, 31, 208},
[5] = { 125, 92, 208},
[6] = { 150, 40, 208},
[7] = { 175, 305, 208},
[8] = { 200, 320, 208},
[9] = { 225, 179, 208},
[10] = { 250, 394, 208},
[11] = { 275, 397, 208}

 

só altere os vocations id dentro dos colchetes "[]".

Editado Outubro 20 por Skymagnum

milbradtM
20 de outubro de 2012 às 18:50

Sim sim, eu saquei essa parte, mas tipo, no seu exemplo ae:

[1] = { 25, 66, 208},
[2] = { 50, 91, 208},
[3] = { 75, 18, 208},
[4] = { 100, 31, 208},
[5] = { 125, 92, 208},
[6] = { 150, 40, 208},
[7] = { 175, 305, 208},
[8] = { 200, 320, 208},
[9] = { 225, 179, 208},
[10] = { 250, 394, 208},
[11] = { 275, 397, 208}

Como faço pra aquela vocação 1, ter + looktype?

Exemplo, se o jogador for level 50 dara 1 looktype, se ele for level 100 dara outro looktype, entendeu +-?

 

Tipo, ira conferir o lvl, e dara a looktype de acordo com o level!

 

Edite~

 

Creio que para fazer o que desejo, teria que usar uma storage, e usar essa storage para dar +1, +1.. e assim adiante né?

Editado Outubro 20 por milbradt

SlicerS
20 de outubro de 2012 às 23:15

talvez assim?

 

local config = {

--[vocation id] = { {lvl inicial, lvl maximo}, looktype, efeito}

[1] = { {lvl = {25, 49}, look = 66, eff = 208},

{lvl = {50, 74}, look = 91, eff = 208},

{lvl = {75, 99}, look = 18, eff = 208},

},

[2] = { {lvl = {25, 49}, look = 66, eff = 208},

{lvl = {50, 74}, look = 91, eff = 208},

{lvl = {75, 99}, look = 18, eff = 208},

},

}

function onSay(cid, words, param, channel)

doPlayerSay(cid, "transformar")

local voc = config[getPlayerVocation(cid)]

if voc then

for i = 1, #voc do

if getPlayerLevel(cid) >= voc.lvl[1] and getPlayerLevel(cid) >= voc.lvl[2] then

doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "Você Transformou!")

local outfit = {lookType = voc.look}

doCreatureChangeOutfit(cid, outfit)

doSendMagicEffect(getCreaturePosition(cid), voc.eff)

return true

end

end

doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "Você precisa estar no minimo no level " .. voc[1].lvl[1] .. " e no maximo ".. voc[#voc].lvl[2].." para transformar.")

else

doPlayerSendCancel(cid, "Você não pode se Transformar!")

end

return true

end

 

 

dai assim...

[1] = { {lvl = {25, 49}, look = 66, eff = 208},

 

[id da vocation] = { { lvl minimo para virar esse look, lvl maximo para virar esse look}, look, effect}

milbradtM
21 de outubro de 2012 às 15:18

É.. se não tivesse uma ajuda, não iria conseguir fazer mesmo.. uhauah

valeu ae @Slicer, não testei ainda, mas mesmo que não funfe já deu uma baita luz!

SkymagnumS
21 de outubro de 2012 às 15:27

Se não pegar tente usar este:

 

local T = {
[{1, 20, 1}] = {lookTypi = 1, eff = 1},
[{21, 30, 2}] = {lookTypi = 1, eff = 1},
[{31, 50, 3}] = {lookTypi = 1, eff = 1},
[{51, 60, 4}] = {lookTypi = 1, eff = 1},
[{61, 70, 5}] = {lookTypi = 1, eff = 1},
[{71, 80, 6}] = {lookTypi = 1, eff = 1},
[{81, 100, 7}] = {lookTypi = 1, eff = 1}
}

function onSay(cid, words, param)

for k, v in pairs(T) do
if getPlayerLevel(cid) >= k[1] and getPlayerLevel(cid) <= k[2] and getPlayerVocation(cid) == k[3] then
doCreatureChangeOutfit(cid, v.lookTypi)
doSendMagicEffect(getThingPos(cid), k.eff)
end
end
doPlayerSendCancel(cid, "You need a min level " .. k[1] .. " and a max level " .. k[2] .. " to transform.")
return true
end

 

legenda:

 

[{ LEVEL MINIMO, LEVEL MÁXIMO, VOCATION}] = { LOOK TYPE, EFEITO}.

Editado Outubro 21 por Skymagnum

milbradtM
21 de outubro de 2012 às 16:00

Perfeito, vou estar testando os 2 scripts, apenas não testei ainda por que estou na casa dos meus Pais, obviamente não tenho como testar aqui ;s

Pelo que percebi, os 2 scripts feito, muda apenas para 1 outfit certo?

 

Se eu quiser fazer assim,

Para a vocação ID [1] no level 25 ganhar 1 looktype,

Para a vocação ID [1] no level 50 ganhar um looktype diferente, como eu faço?

 

No caso se um personagem for level 70 e usar a talk, ele ganharia o looktype do level 50, e não a do 25.

Se tiver que falar 2 vezes a talk, não tem problema algum, eu estava de serviço hoje de madrugada, tentei fazer umas coisas, mas já que não sei muitas funções, não cheguei nem perto. rsrs

SlicerS
21 de outubro de 2012 às 16:54

a minha ja faz isso ;x

{lvl = {25, 49}, look = 66, eff = 208},

se o player tiver entre os lvls 25 e 49 ele ganha essa outfit ...

{lvl = {50, 74}, look = 91, eff = 208},

se o player tiver entre os lvl 50 e 74 ele ganha ESSA outfit...

milbradtM
21 de outubro de 2012 às 17:50

@Slicer

Realmente, não vi pois o spoiler não abria e olhei pelo codigo fonte! desculpa ae :X

 

porem não funfo, ele olha do level 25 ao 99 direto. Personagem teste é Level 40.

 

frase que aparece no game quando uso a transformação:

17:39 Você precisa estar no minimo no level 25 e no maximo 99 para transformar.

 

 

@Skymagnum

Aparece esse erro aqui:

errl.png

SkymagnumS
21 de outubro de 2012 às 17:52
local T = {
[{1, 20, 1}] = {lookTypi = 1, eff = 1},
[{21, 30, 2}] = {lookTypi = 1, eff = 1},
[{31, 50, 3}] = {lookTypi = 1, eff = 1},
[{51, 60, 4}] = {lookTypi = 1, eff = 1},
[{61, 70, 5}] = {lookTypi = 1, eff = 1},
[{71, 80, 6}] = {lookTypi = 1, eff = 1},
[{81, 100, 7}] = {lookTypi = 1, eff = 1}
}

function onSay(cid, words, param)

for k, v in pairs(T) do
if getPlayerLevel(cid) >= k[1] and getPlayerLevel(cid) <= k[2] and getPlayerVocation(cid) == k[3] then
doCreatureChangeOutfit(cid, v.lookTypi)
doSendMagicEffect(getThingPos(cid), k.eff)
else
doPlayerSendCancel(cid, "You need a min level " .. k[1] .. " and a max level " .. k[2] .. " to transform.")
end
end
return true
end