narutochuuu 28 Postado Dezembro 10, 2012 Share Postado Dezembro 10, 2012 local focus = 0 local max_distance = 8 local talk_start = 0 local conv = 0 local fighting = false local challenger = 0 local afk_limit_time = 30 -- 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 = "Geodude", optionalLevel = 50, sex = SEX_MALE, nick = "", ball = "normal"}, {name = "Rhyhorn", optionalLevel = 80, sex = SEX_MALE, nick = "", ball = "normal"}, --alterado v1.3 {name = "Graveler", optionalLevel = 80, sex = SEX_MALE, nick = "", ball = "normal"}, {name = "Onix", optionalLevel = 100, sex = SEX_MALE, nick = "", ball = "normal"}, {name = "Golem", optionalLevel = 100, sex = SEX_MALE, nick = "", ball = "normal"}, } local function doSummonGymPokemon(npc) local this = npc if not isCreature(this) then return true end 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 --alterado v1.3 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 - 8) end 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 Brock and I'm Pewter'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 Boulder 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 = 3 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 local change = false function onThink() if focus == 0 then selfTurn(2) fighting = false challenger = 0 challenger_turn = 0 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 if change then change = false challenger_turn = challenger_turn + 1 end 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 Quero que o npc de ginásio dê além da insígnia um item que eu possa editar, como por exemplo, hd ou etc... Tem como? '-' Link para o comentário Compartilhar em outros sites More sharing options...
Roksas 846 Postado Dezembro 10, 2012 Share Postado Dezembro 10, 2012 (editado) Substitua seu script por esse aqui: Para colocar o item que você quer que o Player receba, edite o IDDOITEM, que está no meio do script, se não estiver encontrando, aperte CTRL+F, digite IDDOITEM e dê enter! local focus = 0 local max_distance = 8 local talk_start = 0 local conv = 0 local fighting = false local challenger = 0 local afk_limit_time = 30 -- 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 = "Geodude", optionalLevel = 50, sex = SEX_MALE, nick = "", ball = "normal"}, {name = "Rhyhorn", optionalLevel = 80, sex = SEX_MALE, nick = "", ball = "normal"}, --alterado v1.3 {name = "Graveler", optionalLevel = 80, sex = SEX_MALE, nick = "", ball = "normal"}, {name = "Onix", optionalLevel = 100, sex = SEX_MALE, nick = "", ball = "normal"}, {name = "Golem", optionalLevel = 100, sex = SEX_MALE, nick = "", ball = "normal"}, } local function doSummonGymPokemon(npc) local this = npc if not isCreature(this) then return true end 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 --alterado v1.3 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) doPlayerAddItem(cid, IDDOITEM, 1) -- AQUI VOCE COLOCA O ID DO ITEM, QUANTIDADE local b = getPlayerItemById(cid, true, a) if b.uid > 0 then doTransformItem(b.uid, b.itemid - 8) end 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 Brock and I'm Pewter'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 Boulder 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 = 3 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 local change = false function onThink() if focus == 0 then selfTurn(2) fighting = false challenger = 0 challenger_turn = 0 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 if change then change = false challenger_turn = challenger_turn + 1 end 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 Poste se deu certo, BENÇA ) Editado Dezembro 10, 2012 por Roksas Link para o comentário Compartilhar em outros sites More sharing options...
narutochuuu 28 Postado Dezembro 10, 2012 Autor Share Postado Dezembro 10, 2012 Não consegui testa pq deu alguma espécie de problema com o npc, depois que você derrota o primeiro poke (Geodude) ele não recolhe pra usar o otro daí trava '-' Link para o comentário Compartilhar em outros sites More sharing options...
Roksas 846 Postado Dezembro 10, 2012 Share Postado Dezembro 10, 2012 Isso aconteceu quando você substituiu o meu pelo seu, ou já estava assim? Link para o comentário Compartilhar em outros sites More sharing options...
narutochuuu 28 Postado Dezembro 10, 2012 Autor Share Postado Dezembro 10, 2012 Acho que já estava assim, tenta com este aqui que eu ja testei e deu: local focus = 0 local max_distance = 8 local talk_start = 0 local conv = 0 local fighting = false local challenger = 0 local afk_limit_time = 30 -- 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 = "Pikachu", optionalLevel = 65, sex = SEX_MALE, nick = "", ball = "normal"}, {name = "Pikachu", optionalLevel = 65, sex = SEX_FEMALE, nick = "", ball = "normal"}, {name = "Pikachu", optionalLevel = 80, sex = SEX_MALE, nick = "", ball = "normal"}, {name = "Pikachu", optionalLevel = 75, sex = SEX_FEMALE, nick = "", ball = "normal"}, {name = "Pikachu", optionalLevel = 120, sex = SEX_MALE, nick = "", ball = "normal"}, {name = "Raichu", optionalLevel = 115, sex = SEX_MALE, 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)] + 13 doCreatureSay(npc, "You won the duel! Congratulations, take this "..getItemNameById(a - 13).." as a prize.", 1) local b = getPlayerItemById(cid, true, a) if b.uid > 0 then doTransformItem(b.uid, b.itemid - 13) end 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("Olá "..getCreatureName(cid)..", sou Elesa líder do ginásio de Nimbasa, posso ajudar?") return true end if isDuelMsg(msg) and conv == 1 and focus == cid then --if getPlayerItemCount(cid, gymbadges[getCreatureName(getThis())]) >= 1 then -- selfSay("Leve uma Bolt Badge como prova de que você me derrotou.") -- focus = 0 --return true --end if not hasPokemon(cid) then selfSay("Para lutar você precisa de pokemon.") return true end selfSay("Você usará apenas "..#pokemons.." pokemon limit battle, Vamos começar?") 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 = 3 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(2) fighting = false challenger = 0 challenger_turn = 0 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 Link para o comentário Compartilhar em outros sites More sharing options...
Roksas 846 Postado Dezembro 10, 2012 Share Postado Dezembro 10, 2012 Mesmo esquema, procura dentro do Script a palavra IDDOITEM e lá você coloca quantidade, o ID e tals. BENÇA ) local focus = 0 local max_distance = 8 local talk_start = 0 local conv = 0 local fighting = false local challenger = 0 local afk_limit_time = 30 -- 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 = "Pikachu", optionalLevel = 65, sex = SEX_MALE, nick = "", ball = "normal"}, {name = "Pikachu", optionalLevel = 65, sex = SEX_FEMALE, nick = "", ball = "normal"}, {name = "Pikachu", optionalLevel = 80, sex = SEX_MALE, nick = "", ball = "normal"}, {name = "Pikachu", optionalLevel = 75, sex = SEX_FEMALE, nick = "", ball = "normal"}, {name = "Pikachu", optionalLevel = 120, sex = SEX_MALE, nick = "", ball = "normal"}, {name = "Raichu", optionalLevel = 115, sex = SEX_MALE, 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)] + 13 doCreatureSay(npc, "You won the duel! Congratulations, take this "..getItemNameById(a - 13).." as a prize.", 1) doPlayerAddItem(cid, IDDOITEM, 1) -- AQUI VOCE COLOCA O ID DO ITEM, QUANTIDADE local b = getPlayerItemById(cid, true, a) if b.uid > 0 then doTransformItem(b.uid, b.itemid - 13) end 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("Olá "..getCreatureName(cid)..", sou Elesa líder do ginásio de Nimbasa, posso ajudar?") return true end if isDuelMsg(msg) and conv == 1 and focus == cid then --if getPlayerItemCount(cid, gymbadges[getCreatureName(getThis())]) >= 1 then -- selfSay("Leve uma Bolt Badge como prova de que você me derrotou.") -- focus = 0 --return true --end if not hasPokemon(cid) then selfSay("Para lutar você precisa de pokemon.") return true end selfSay("Você usará apenas "..#pokemons.." pokemon limit battle, Vamos começar?") 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 = 3 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(2) fighting = false challenger = 0 challenger_turn = 0 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 Link para o comentário Compartilhar em outros sites More sharing options...
narutochuuu 28 Postado Dezembro 10, 2012 Autor Share Postado Dezembro 10, 2012 Eita deu o msm problema... eu testei no npc sem alterar ta o mesmo problema '-' estranho pq não estava assim Olha oq está falando no The foggout serv: você sabe qual o problema? Link para o comentário Compartilhar em outros sites More sharing options...
Roksas 846 Postado Dezembro 10, 2012 Share Postado Dezembro 10, 2012 Passe para mim o arquivo task.lua Ou é esse que você postou? Oo Link para o comentário Compartilhar em outros sites More sharing options...
narutochuuu 28 Postado Dezembro 10, 2012 Autor Share Postado Dezembro 10, 2012 function onKill(cid, target) local continue = true if ehMonstro(target) then for i = 91001, (91000+maxTasks) do local sto = getPlayerStorageValue(cid, i) if type(sto) == "string" then local array = getArrayFromStorage(cid, i) if arrayHasContent(array) then for e, f in pairs(array) do for a = 1, #f do local name = tostring(f[a][1]) if name == getCreatureName(target) and tonumber(f[a][2]) >= 1 then if getDamageMapPercent(cid, target) < 0.5 then continue = false elseif (pokes[getPlayerStorageValue(cid, 854787)] and getCreatureName(getCreatureSummons(cid)[1]) ~= getPlayerStorageValue(cid, 854787)) then if npcsTask[tostring(e).."_1"] then continue = false --task clan end end if continue then f[a][2] = f[a][2]-1 if f[a][2] == 0 then sendMsgToPlayer(cid, 20, tostring(e)..": Quest Done!") else sendMsgToPlayer(cid, 20, tostring(e)..": You need to kill more "..f[a][2].." "..name..(f[a][2] == 1 and "." or "s.")) end setStorageArray(cid, i, array) end continue = true end end end end end end end return true end Link para o comentário Compartilhar em outros sites More sharing options...
Roksas 846 Postado Dezembro 10, 2012 Share Postado Dezembro 10, 2012 (editado) Tente assim e me diga oque acontece: function onKill(cid, target) local continue = true if ehMonstro(target) then for i = 91001, 91000 do local sto = getPlayerStorageValue(cid, i) if type(sto) == "string" then local array = getArrayFromStorage(cid, i) if arrayHasContent(array) then for e, f in pairs(array) do for a = 1, #f do local name = tostring(f[a][1]) if name == getCreatureName(target) and tonumber(f[a][2]) >= 1 then if getDamageMapPercent(cid, target) < 0.5 then continue = false elseif (pokes[getPlayerStorageValue(cid, 854787)] and getCreatureName(getCreatureSummons(cid)[1]) ~= getPlayerStorageValue(cid, 854787)) then if npcsTask[tostring(e).."_1"] then continue = false --task clan end end if continue then f[a][2] = f[a][2]-1 if f[a][2] == 0 then sendMsgToPlayer(cid, 20, tostring(e)..": Quest Done!") else sendMsgToPlayer(cid, 20, tostring(e)..": You need to kill more "..f[a][2].." "..name..(f[a][2] == 1 and "." or "s.")) end setStorageArray(cid, i, array) end continue = true end end end end end end end return true end Editado Dezembro 10, 2012 por Roksas Link para o comentário Compartilhar em outros sites More sharing options...
narutochuuu 28 Postado Dezembro 10, 2012 Autor Share Postado Dezembro 10, 2012 Agora o npc deu certo, depois q eu derrotei ele não dá o item, olha oq aparece no TFS [10/12/2012 20:45:32] [Error - Npc interface] [10/12/2012 20:45:32] In a timer event called from: [10/12/2012 20:45:32] data/npc/scripts/brock.lua:onThink [10/12/2012 20:45:32] Description: [10/12/2012 20:45:32] (luaDoPlayerAddItem) Item not found Link para o comentário Compartilhar em outros sites More sharing options...
Roksas 846 Postado Dezembro 10, 2012 Share Postado Dezembro 10, 2012 Agora me passa o arquivo brock.lua rsrs Link para o comentário Compartilhar em outros sites More sharing options...
narutochuuu 28 Postado Dezembro 10, 2012 Autor Share Postado Dezembro 10, 2012 Edit: achei o problema, desculpe te incomodar com isso, muito obrigado rep + Link para o comentário Compartilhar em outros sites More sharing options...
Roksas 846 Postado Dezembro 10, 2012 Share Postado Dezembro 10, 2012 (editado) Qual era o problema? Poste para que alguém que tiver o mesmo problema também possa resolver! Obrigado, desculpe eu por não encontrar o problema! BENÇA ) Editado Dezembro 10, 2012 por Roksas Link para o comentário Compartilhar em outros sites More sharing options...
narutochuuu 28 Postado Dezembro 10, 2012 Autor Share Postado Dezembro 10, 2012 É porque eu tinha colocado o Id do item e não salvei kkk' Foi distração minha Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados