Ir para conteúdo

Featured Replies

Postado

Como funciona o Rotom?

Spoiler

Ele é um pokémon que tem diversas formas que mudam de sprite, elemento, moves, attack, defesa, etc...

Ele tem 6 formas, sendo elas: Rotom, Rotom Wash, Rotom Heat, Rotom Mow, Rotom Fan, Rotom Frost. Cada um com seu elemento.

 

Yo boyz,

 

então, eu achei esse script de Rotom/Light Abra (não lembro o nome do autor) e tentei adaptar para ser necessário ter X item na sua bag para o Rotom transformar para x forma.

O ideal seria um item que, quando você usasse no Rotom, ele ganhava a possibilidade de se transformar para tal forma. Mas eu não tenho a mínima ideia de como fazer isso, então tentei fazer essa gambiarra.

Exemplo: Eu tenho um Rotom e quero transformá-lo para Rotom Heat (Rotom do tipo fogo), para isso, eu tenho que ter na bag um item chamado de Heat Form, do contrário, o meu Rotom não poderia se transformar para Rotom Heat. A ordem de transformação é a seguinte:

Rotom, Rotom Wash, Rotom Heat, Rotom Mow, Rotom Fan, Rotom Frost

Se eu tivesse o item de todos os Rotom menos o do Heat, ficaria:

Rotom, Rotom Wash, Rotom Mow, Rotom Fan, Rotom Frost

 

O bug está nessas linhas:

 

if getPlayerItemCount(cid,12162) == true then
local _TAB = {
["Rotom"] = {eff = lightEff, name = "Rotom Heat", outfit = lightOut}
}
else
local _TAB ={
["Rotom"] = {eff = ghostEff, name = "Rotom", outfit = ghostOut},
}
end

A minha intenção era checar se o player tinha o item de id 12162 (id de teste) e se tivesse, ao usar o move MORPH, o Rotom se transformaria para Rotom Heat, e caso não tivesse, continuaria como Rotom normal.

 

 

Bug na distro:

Spoiler

[Error - TalkAction Interface] 
data/talkactions/scripts/move1.lua:onSay
Description: 

(luaGetPlayerItemCount) Player not found

[Error - TalkAction Interface] 
data/talkactions/scripts/move1.lua:onSay
Description: 
data/lib/pokemon moves.lua:3526: attempt to index global '_TAB' (a nil value)
stack traceback:
data/lib/pokemon moves.lua:3526: in function 'docastspell'
data/talkactions/scripts/move1.lua:173: in function <data/talkactions/scripts/move1.lua:20>

Código do move MORPH:

Spoiler

elseif spell == "Morph" then

if isSummon(cid) then
sid = getCreatureMaster(cid)

--Abra
lightEff = 132
lightOut = 1645
darkEff = 214
darkOut = 1257
 -----------Rotoms
ghostEff = 180
ghostOut = 1730
waterEff = 21
waterOut = 1726
fireEff = 181
fireOut = 1725
grassEff = 8
grassOut = 1729
flyEff = 42
flyOut = 1727
iceEff = 41
iceOut = 1728
pos = getThingPos(cid)

 if getPlayerSlotItem(sid, 8).itemid == 0 then
 print(getPlayerSlotItem(sid, 8).itemid)
 return false
 end
 
 if getPlayerItemCount(cid,12162) then
local _TAB = {
["Rotom"] = {eff = lightEff, name = "Rotom Heat", outfit = lightOut}
}
else
local _TAB ={
["Rotom"] = {eff = ghostEff, name = "Rotom", outfit = ghostOut},
}
end

local infos = _TAB[getCreatureName(cid)]
 
if infos then
eff, name, outfit = infos.eff, infos.name, infos.outfit
end
 if not isPlayer(sid) then return false end
 if getItemAttribute(getPlayerSlotItem(sid, 8).uid, "ghostlight") then
  doItemEraseAttribute(getPlayerSlotItem(sid, 8).uid, "ghostlight")
 else
  doItemSetAttribute(getPlayerSlotItem(sid, 8).uid, "ghostlight", "yes")
 end
 doSendMagicEffect(getThingPosWithDebug(cid), eff)
 doSetCreatureOutfit(cid, {lookType = outfit}, -1)
 doItemSetAttribute(getPlayerSlotItem(sid, 8).uid, "poke", name)
 doRemoveCreature(cid)
 doSummonMonster(sid, name)
 doTeleportThing(getCreatureSummons(sid)[1], pos, false)
 adjustStatus(getCreatureSummons(sid)[1], getPlayerSlotItem(sid, 8).uid, true, false)
doUpdateMoves(sid)
end

 

Editado por Talesigorvr (veja o histórico de edições)

Não dou suporte via PM, crie um tópico caso tenha dúvidas.

Isso previne que outras pessoas com a mesma dúvida criem tópicos desnecessários.

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.7k

Informação Importante

Confirmação de Termo