wevertonvrb 25 Postado Outubro 12, 2018 Share Postado Outubro 12, 2018 (editado) TFS 0.3.6 erro nos gyn o pokemon do npc não esta dando rit no pokemon dos players e esta gerando este erro http://prntscr.com/l5dkc7 script npc myst Spoiler local focus = 0 local max_distance = 8 local talk_start = 0 local conv = 0 local fighting = false local challenger = 0 local afk_limit_time = 100 -- seconds local afk_time = 0 -- don't change local battle_turn = 1 -- don't change local challenger_turn = 0 -- don't change local pokemons = { {name = "Gyarados", optionalLevel = 450, sex = SEX_MALE, nick = "", ball = "normal"}, {name = "Tentacruel", optionalLevel = 450, sex = SEX_MALE, nick = "", ball = "normal"}, {name = "Vaporeon", optionalLevel = 450, sex = SEX_FEMALE, nick = "", ball = "normal"}, {name = "Golduck", optionalLevel = 450, sex = SEX_MALE, nick = "", ball = "normal"}, {name = "Shiny Blastoise", optionalLevel = 450, sex = SEX_MALE, nick = "", ball = "normal"}, {name = "Starmie", optionalLevel = 450, sex = SEX_FEMALE, nick = "", ball = "normal"}, } local function doSummonGymPokemon(npc) local this = npc if #getCreatureSummons(this) >= 1 or focus == 0 then return true end local it = pokemons[battle_turn] doSummonMonster(this, it.name) local summon = getCreatureSummons(this)[1] local balleffect = pokeballs["normal"].effect if it.ball and pokeballs[it.ball] then balleffect = pokeballs[it.ball].effect end doSendMagicEffect(getThingPos(summon), balleffect) setPlayerStorageValue(summon, 10000, balleffect) setPlayerStorageValue(summon, 10001, gobackmsgs[math.random(#gobackmsgs)].back:gsub("doka", it.nick ~= "" and it.nick or it.name)) setPlayerStorageValue(summon, 1007, it.nick ~= "" and it.nick or it.name) doSetMonsterGym(summon, focus) addEvent(adjustWildPoke, 15, summon, it.optionalLevel) local name = it.nick ~= "" and it.nick or getCreatureName(this).."s "..it.name doCreatureSay(this, gobackmsgs[math.random(#gobackmsgs)].go:gsub("doka", getPlayerStorageValue(summon, 1007)), 1) fighting = true battle_turn = battle_turn + 1 end local function doWinDuel(cid, npc) if not isCreature(cid) then return true end local this = npc local a = gymbadges[getCreatureName(this)] + 8 doCreatureSay(npc, "You won the duel! Congratulations, take this "..getItemNameById(a - 8).." as a prize.", 1) local b = getPlayerItemById(cid, true, a) if b.uid > 0 then doTransformItem(b.uid, b.itemid - ? end doPlayerSendCancel(cid, "#getBadges# "..getCreatureName(this).." "..getPlayerItemCount(cid, gymbadges[getCreatureName(this)])) end function onCreatureSay(cid, type, msg) local msg = string.lower(msg) if focus == cid then talk_start = os.clock() end if msgcontains(msg, 'hi') and focus == 0 and getDistanceToCreature(cid) <= 4 then focus = cid talk_start = os.clock() conv = 1 selfSay("Hello "..getCreatureName(cid)..", my name is Misty and I'm Cerulean's Gym Leader. How may I help you?") return true end if isDuelMsg(msg) and conv == 1 and focus == cid then --if getPlayerItemCount(cid, gymbadges[getCreatureName(getThis())]) >= 1 then -- selfSay("You have already won my Cascade Badge, maybe some other day we can fight.") -- focus = 0 --return true --end if not hasPokemon(cid) then selfSay("To battle agains't a gym leader you need pokemons.") return true end selfSay("You are challenging me to a battle. It will be a "..#pokemons.." pokemon limit battle, let's start?") conv = 2 return true end if isConfirmMsg(msg) and conv == 2 and focus == cid then challenger = focus setPlayerStorageValue(cid, 990, 1) selfSay("Yea, let's fight!") talk_start = os.clock() addEvent(doSummonGymPokemon, 850, getThis()) conv = 6 return true end if isNegMsg(msg) and conv == 2 and focus == cid then focus = 0 selfSay("It is better for you to refuse a battle against me!") return true end if msgcontains(msg, 'bye') and focus == cid then selfSay('Bye and do your best trainer!') setPlayerStorageValue(focus, 990, -1) focus = 0 return true end end local afk_warning = false function onThink() --doSendAnimatedText(getThingPos(getThis()), getCreatureName(getThis()), 215) if focus == 0 then selfTurn(1) fighting = false challenger = 0 challenger_turn = 1 battle_turn = 1 afk_time = 0 afk_warning = false if #getCreatureSummons(getThis()) >= 1 then setPlayerStorageValue(getCreatureSummons(getThis())[1], 1006, 0) doCreatureAddHealth(getCreatureSummons(getThis())[1], -getCreatureMaxHealth(getCreatureSummons(getThis())[1])) end return true else if not isCreature(focus) then focus = 0 return true end if fighting then talk_start = os.clock() if not isCreature(getCreatureTarget(getThis())) then if #getCreatureSummons(challenger) >= 1 then if getCreatureOutfit(getCreatureSummons(challenger)[1]).lookType ~= 2 then --alterado v1.6 selfAttackCreature(getCreatureSummons(challenger)[1]) challenger_turn = challenger_turn + 1 afk_time = 0 end else afk_time = afk_time + 0.5 end end if afk_time > afk_limit_time then setPlayerStorageValue(focus, 990, -1) focus = 0 selfSay("I have waited too long, come back when you are ready!") return true end if not afk_warning and afk_time > afk_limit_time / 2 then selfSay("Where's your pokemon? Let's fight!") afk_warning = true end if #getCreatureSummons(getThis()) == 0 then if battle_turn > #pokemons then addEvent(doWinDuel, 1000, focus, getThis()) setPlayerStorageValue(focus, 990, -1) focus = 0 return true end addEvent(doSummonGymPokemon, 1000, getThis()) end if not hasPokemon(challenger) or challenger_turn >= 7 or challenger_turn > #pokemons then selfSay("You lost our duel! Maybe some other time you'll defeat me.") setPlayerStorageValue(focus, 990, -1) focus = 0 return true end end local npcpos = getThingPos(getThis()) local focpos = getThingPos(focus) if npcpos.z ~= focpos.z then setPlayerStorageValue(focus, 990, -1) focus = 0 selfSay("Bye then.") return true end if (os.clock() - talk_start) > 30 then selfSay("Good bye and keep training!") setPlayerStorageValue(focus, 990, -1) focus = 0 end if getDistanceToCreature(focus) > max_distance then setPlayerStorageValue(focus, 990, -1) focus = 0 return true end local dir = doRedirectDirection(getDirectionTo(npcpos, focpos)) selfTurn(dir) end return true end Editado Outubro 12, 2018 por wevertonvrb Link para o comentário Compartilhar em outros sites More sharing options...
DarkWore 112 Postado Outubro 12, 2018 Share Postado Outubro 12, 2018 Está faltando a Função selfAttackCreature no seu servidor/source. Link para o comentário Compartilhar em outros sites More sharing options...
wevertonvrb 25 Postado Outubro 13, 2018 Autor Share Postado Outubro 13, 2018 15 horas atrás, DarkWore disse: Está faltando a Função selfAttackCreature no seu servidor/source. sera que pode me ajudar a colocar ela na source? estou pesquisando, procurando por ela mas não encontro Link para o comentário Compartilhar em outros sites More sharing options...
DarkWore 112 Postado Outubro 13, 2018 Share Postado Outubro 13, 2018 4 horas atrás, wevertonvrb disse: sera que pode me ajudar a colocar ela na source? estou pesquisando, procurando por ela mas não encontro Essa função não existe tutorial para colocar ela nem nada do tipo, você vai ter que encontrar alguem que faça a função para você, Acredito que não vá conseguir isso de graça. Link para o comentário Compartilhar em outros sites More sharing options...
wevertonvrb 25 Postado Outubro 14, 2018 Autor Share Postado Outubro 14, 2018 21 horas atrás, DarkWore disse: Essa função não existe tutorial para colocar ela nem nada do tipo, você vai ter que encontrar alguem que faça a função para você, Acredito que não vá conseguir isso de graça. voce faria ela pra mim? quanto cobraria??? Link para o comentário Compartilhar em outros sites More sharing options...
DarkWore 112 Postado Outubro 14, 2018 Share Postado Outubro 14, 2018 2 horas atrás, wevertonvrb disse: voce faria ela pra mim? quanto cobraria??? Não faria, Acredito que eu não tenha o conhecimento necessário para desenvolver uma função dessa. Link para o comentário Compartilhar em outros sites More sharing options...
nociam 90 Postado Outubro 14, 2018 Share Postado Outubro 14, 2018 (editado) Irei de ajudar essa função não é nada menos do que mostro abaixo simplesmente agora e so adptar. if #getCreatureSummons(_target) > 0 then doMonsterSetTarget(getCreatureSummons(getNpcCid())[1], getCreatureSummons(_target)[1]) else doMonsterSetTarget(getCreatureSummons(getNpcCid())[1], _target) end Editado Outubro 14, 2018 por nociam raulcdj e Ayron5 reagiu a isso 2 Link para o comentário Compartilhar em outros sites More sharing options...
wevertonvrb 25 Postado Outubro 14, 2018 Autor Share Postado Outubro 14, 2018 7 horas atrás, nociam disse: Irei de ajudar essa função não é nada menos do que mostro abaixo simplesmente agora e so adptar. if #getCreatureSummons(_target) > 0 then doMonsterSetTarget(getCreatureSummons(getNpcCid())[1], getCreatureSummons(_target)[1]) else doMonsterSetTarget(getCreatureSummons(getNpcCid())[1], _target) end isso vai no xml do monstro no npc? some functions? poderia dar uma luz?? Link para o comentário Compartilhar em outros sites More sharing options...
Ayron5 40 Postado Outubro 15, 2018 Share Postado Outubro 15, 2018 23 horas atrás, nociam disse: Irei de ajudar essa função não é nada menos do que mostro abaixo simplesmente agora e so adptar. if #getCreatureSummons(_target) > 0 then doMonsterSetTarget(getCreatureSummons(getNpcCid())[1], getCreatureSummons(_target)[1]) else doMonsterSetTarget(getCreatureSummons(getNpcCid())[1], _target) end Mano muita gente precisa dela... Eu sou um dos... obg por compartilhar! Só explica onde ela vai ficar. É isso, vlw e REP pela iniciativa! ^ ^ Link para o comentário Compartilhar em outros sites More sharing options...
nociam 90 Postado Outubro 15, 2018 Share Postado Outubro 15, 2018 Se tem que adaptar no lugar do selfAttackCreature. Tipo existe o metodo getSpectators ai se pega os pokemons ao redor do seu npc que ele ira atacar e por um for se chama o metodo doMonsterSetTarget e faz o pokemon do npc atacar os da lista vale lembrar que se fazer certo funciona pois tenho no meu servidor antigo. Link para o comentário Compartilhar em outros sites More sharing options...
Ayron5 40 Postado Outubro 16, 2018 Share Postado Outubro 16, 2018 2 horas atrás, nociam disse: Se tem que adaptar no lugar do selfAttackCreature. Tipo existe o metodo getSpectators ai se pega os pokemons ao redor do seu npc que ele ira atacar e por um for se chama o metodo doMonsterSetTarget e faz o pokemon do npc atacar os da lista vale lembrar que se fazer certo funciona pois tenho no meu servidor antigo. Vou adaptar então. Vlw ^^ Link para o comentário Compartilhar em outros sites More sharing options...
wevertonvrb 25 Postado Outubro 18, 2018 Autor Share Postado Outubro 18, 2018 Em 15/10/2018 em 18:31, nociam disse: Se tem que adaptar no lugar do selfAttackCreature. Tipo existe o metodo getSpectators ai se pega os pokemons ao redor do seu npc que ele ira atacar e por um for se chama o metodo doMonsterSetTarget e faz o pokemon do npc atacar os da lista vale lembrar que se fazer certo funciona pois tenho no meu servidor antigo. mano eu não entedi nada, ate pq o pokemon no npc ja esta atacando o do player porem o pokemon do player esta tipo imune a dano fisico e magico, unica coisa que esta surtindo efeitos são maldições e envenenamentos se puder esclarecer um pouco mais agradeceria mas te agradeço por tentar ajudar, talvez seja eu que ainda não tenha conhecimento suficiente para entender Link para o comentário Compartilhar em outros sites More sharing options...
wevertonvrb 25 Postado Outubro 31, 2018 Autor Share Postado Outubro 31, 2018 Em 15/10/2018 em 21:19, Sepulturaa disse: Vou adaptar então. Vlw ^^ conseguil? Link para o comentário Compartilhar em outros sites More sharing options...
Ayron5 40 Postado Outubro 31, 2018 Share Postado Outubro 31, 2018 12 minutos atrás, wevertonvrb disse: conseguil? Ainda não ;-; Link para o comentário Compartilhar em outros sites More sharing options...
Marshmello 270 Postado Novembro 12, 2018 Share Postado Novembro 12, 2018 A questão neste suporte foi encerrada por falta de respostas. Este tópico está fechado e foi movido para Suporte - Tópicos Sem Resposta. + Caso a dúvida não tenha sido resolvida você poderá criar outro tópico solicitando ajuda. * Lembre-se que é permitido dar UP no tópico a cada 24 horas para assim o destacar e manter movimentado. Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados