Postado Abril 19, 2016 9 anos 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 Abril 20, 2016 9 anos 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.