Postado Fevereiro 6, 2016 9 anos Em 04/02/2016 17:42:00, wevertonvrb disse: ok vou estar aqui te agradeço mt, vou continuar tentando query para ser adicionada no creature.xml <event type="statschange" name="stats" script="stats.lua"/> <event type="death" name="deathMonster" script="kill.lua"/> query para ser adicionada no monstro: <script> <event name = "stats"/> <event name = "deathMonster"/> </script> -- Em creaturescripts>scripts>kill.lua, adicione: --[[ autor = Marcryzius data = sexta-feira, 05 de fevereiro de 2016 ]] function onDeath(cid, corpse, deathList) for _,player in pairs(deathList) do if(isPlayer(player) and isPlayerOn(player))then if(getDamageInMonster(cid,player) > 50)then -- aqui você adiciona o que quiser end end end return true end -- Em creaturescripts>scripts>stats.lua, adicione: --[[ autor = Marcryzius data = sexta-feira, 05 de fevereiro de 2016 ]] local M = {} function getDamageInMonster(monster,cid) local monster,cid,m_life,p_dano = tonumber(monster),tonumber(cid),0,0 if not(monster or cid)then return 0,error('function getDamageInMonster(): monster or cid, not number') end if not(isCreature(monster))then return 0,error('function getDamageInMonster(): variavel monster nao e monstro.') end for k,v in pairs(M[monster]) do if(k == cid)then p_dano = v end m_life = m_life + v end return math.floor(p_dano/(m_life/100)) end function onStatsChange(cid, attacker, tipo, combat, value) local atac = attacker if not(M[cid])then M[cid] = {} end if not(tipo == 1)then return true end if(isPlayer(attacker))then if not(M[cid][attacker])then M[cid][attacker] = 0 end M[cid][attacker] = M[cid][attacker] + value elseif(isMonster(attacker))then -- caso seja um monstro o atacante local get = getCreatureMaster(attacker) -- averigua se n�o � um summon que est� atacando atac = get if(tonumber(get) and isPlayer(get))then -- caso o summon seja de um player, adiciona o dano como se fosse o player if not(M[cid][get])then M[cid][get] = 0 end M[cid][get] = M[cid][get] + value end end return true end
Postado Fevereiro 7, 2016 9 anos Autor Em 06/02/2016 09:20:45, dominus disse: query para ser adicionada no creature.xml <event type="statschange" name="stats" script="stats.lua"/> <event type="death" name="deathMonster" script="kill.lua"/> query para ser adicionada no monstro: <script> <event name = "stats"/> <event name = "deathMonster"/> </script> -- Em creaturescripts>scripts>kill.lua, adicione: --[[ autor = Marcryzius data = sexta-feira, 05 de fevereiro de 2016 ]] function onDeath(cid, corpse, deathList) for _,player in pairs(deathList) do if(isPlayer(player) and isPlayerOn(player))then if(getDamageInMonster(cid,player) > 50)then -- aqui você adiciona o que quiser end end end return true end -- Em creaturescripts>scripts>stats.lua, adicione: --[[ autor = Marcryzius data = sexta-feira, 05 de fevereiro de 2016 ]] local M = {} function getDamageInMonster(monster,cid) local monster,cid,m_life,p_dano = tonumber(monster),tonumber(cid),0,0 if not(monster or cid)then return 0,error('function getDamageInMonster(): monster or cid, not number') end if not(isCreature(monster))then return 0,error('function getDamageInMonster(): variavel monster nao e monstro.') end for k,v in pairs(M[monster]) do if(k == cid)then p_dano = v end m_life = m_life + v end return math.floor(p_dano/(m_life/100)) end function onStatsChange(cid, attacker, tipo, combat, value) local atac = attacker if not(M[cid])then M[cid] = {} end if not(tipo == 1)then return true end if(isPlayer(attacker))then if not(M[cid][attacker])then M[cid][attacker] = 0 end M[cid][attacker] = M[cid][attacker] + value elseif(isMonster(attacker))then -- caso seja um monstro o atacante local get = getCreatureMaster(attacker) -- averigua se n�o � um summon que est� atacando atac = get if(tonumber(get) and isPlayer(get))then -- caso o summon seja de um player, adiciona o dano como se fosse o player if not(M[cid][get])then M[cid][get] = 0 end M[cid][get] = M[cid][get] + value end end return true end deu este erro Spoiler [07/02/2016 10:48:51] [Error - CreatureScript Interface] [07/02/2016 10:48:51] data/creaturescripts/scripts/kill.lua:onDeath [07/02/2016 10:48:51] Description: [07/02/2016 10:48:51] data/creaturescripts/scripts/kill.lua:7: attempt to call global 'isPlayerOn' (a nil value) [07/02/2016 10:48:51] stack traceback: [07/02/2016 10:48:51] data/creaturescripts/scripts/kill.lua:7: in function <data/creaturescripts/scripts/kill.lua:5> em seguida retirei essa parte do script kill.luaand isPlayerOn(player) e gerou este outro erro agora no stats Spoiler [07/02/2016 10:57:09] [Error - CreatureScript Interface] [07/02/2016 10:57:09] data/creaturescripts/scripts/kill.lua:onDeath [07/02/2016 10:57:09] Description: [07/02/2016 10:57:09] data/creaturescripts/scripts/stats.lua:9: function getDamageInMonster(): variavel monster nao e monstro. [07/02/2016 10:57:09] stack traceback: [07/02/2016 10:57:09] [C]: in function 'error' [07/02/2016 10:57:09] data/creaturescripts/scripts/stats.lua:9: in function 'getDamageInMonster' [07/02/2016 10:57:09] data/creaturescripts/scripts/kill.lua:8: in function <data/creaturescripts/scripts/kill.lua:5> outra coisa é que o pokémon quando é morto não aparece o corpo é como se tivesse dado um /r nele Editado Fevereiro 7, 2016 9 anos por wevertonvrb (veja o histórico de edições)
Postado Fevereiro 10, 2016 9 anos Em 07/02/2016 10:01:32, wevertonvrb disse: deu este erro Mostrar conteúdo oculto [07/02/2016 10:48:51] [Error - CreatureScript Interface] [07/02/2016 10:48:51] data/creaturescripts/scripts/kill.lua:onDeath [07/02/2016 10:48:51] Description: [07/02/2016 10:48:51] data/creaturescripts/scripts/kill.lua:7: attempt to call global 'isPlayerOn' (a nil value) [07/02/2016 10:48:51] stack traceback: [07/02/2016 10:48:51] data/creaturescripts/scripts/kill.lua:7: in function <data/creaturescripts/scripts/kill.lua:5> em seguida retirei essa parte do script kill.luaand isPlayerOn(player) e gerou este outro erro agora no stats Mostrar conteúdo oculto [07/02/2016 10:57:09] [Error - CreatureScript Interface] [07/02/2016 10:57:09] data/creaturescripts/scripts/kill.lua:onDeath [07/02/2016 10:57:09] Description: [07/02/2016 10:57:09] data/creaturescripts/scripts/stats.lua:9: function getDamageInMonster(): variavel monster nao e monstro. [07/02/2016 10:57:09] stack traceback: [07/02/2016 10:57:09] [C]: in function 'error' [07/02/2016 10:57:09] data/creaturescripts/scripts/stats.lua:9: in function 'getDamageInMonster' [07/02/2016 10:57:09] data/creaturescripts/scripts/kill.lua:8: in function <data/creaturescripts/scripts/kill.lua:5> outra coisa é que o pokémon quando é morto não aparece o corpo é como se tivesse dado um /r nele Substitui o isPlayerOn () por getCreatureName () Nesse outro caso, tu varia s ter que procurar se não existe outros scripts sendo executados por esse pokemon. Testa o sistema em outro monstro neutro apenas por questão de averiguação.
Postado Fevereiro 11, 2016 9 anos Autor Em 10/02/2016 09:44:51, dominus disse: Substitui o isPlayerOn () por getCreatureName () Nesse outro caso, tu varia s ter que procurar se não existe outros scripts sendo executados por esse pokemon. Testa o sistema em outro monstro neutro apenas por questão de averiguação. deixei o script assim Spoiler --[[ autor = Marcryzius data = sexta-feira, 05 de fevereiro de 2016 ]] function onDeath(cid, corpse, deathList) for _,player in pairs(deathList) do if(isPlayer(player) and getCreatureName(player))then if(getDamageInMonster(cid,player) > 50)then doPlayerAddItem(player, 2160, 3) end end end return true end Testei com outro pokémon que tinha acabado de adicionar que n tem como estar ligado a nenhum outro sistema Não gerou erro porem continua do mesmo jeito, o jogador não ganha nada, e o pokémon quando é morto some como se tivesse dado um /r nele um leki me disse que quando se adiciona um evento no xml do monstro o monstro vira o (cid) e o player o (target) será que isso tem algo a ver? sera q o sistema ta entendendo que o pokemon é que tem que bater no player?
Postado Fevereiro 12, 2016 9 anos 18 horas atrás, wevertonvrb disse: deixei o script assim Mostrar conteúdo oculto --[[ autor = Marcryzius data = sexta-feira, 05 de fevereiro de 2016 ]] function onDeath(cid, corpse, deathList) for _,player in pairs(deathList) do if(isPlayer(player) and getCreatureName(player))then if(getDamageInMonster(cid,player) > 50)then doPlayerAddItem(player, 2160, 3) end end end return true end Testei com outro pokémon que tinha acabado de adicionar que n tem como estar ligado a nenhum outro sistema Não gerou erro porem continua do mesmo jeito, o jogador não ganha nada, e o pokémon quando é morto some como se tivesse dado um /r nele um leki me disse que quando se adiciona um evento no xml do monstro o monstro vira o (cid) e o player o (target) será que isso tem algo a ver? sera q o sistema ta entendendo que o pokemon é que tem que bater no player? Sim eu sei disso. Faz o seguinte, testa o sistema em um monstro comum sem ser pokemom.
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.