Alkimista 4 Postado Novembro 14, 2013 Share Postado Novembro 14, 2013 (editado) Tem como alguem ae adiciona um item no npc chuck norris, pra quando ele fo derrotado, ele entrega esse item, no caso a master ball to aprendeno script, num manjo muito ainda Script: 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 sto = 759848 ---------------------------------- local function doSummonGymPokemon(npc) local this = npc if #getCreatureSummons(this) >= 1 or focus == 0 then return true end local it = theNpc.pokemon[1] 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 if getCreatureName(this) == "Chuck Norris" then doCreatureSay(npc, "Chuck Norris never loses! Just my pokemon fails!", 1) else doCreatureSay(npc, "You won the duel! Congratulations, you can challenger the next opponent now.", 1) end setPlayerStorageValue(cid, sto, getPlayerStorageValue(cid, sto)+1) end function onCreatureSay(cid, type, msg) -------------------------------------- local Npcs = { ["Hang Wufei"] = { pokemon = { {name = "Machamp", optionalLevel = 3000, sex = SEX_MALE, nick = "", ball = "normal"}, }, storage = 0, msg = "Hello "..getCreatureName(cid)..", my name is ".. getNpcName().." i'm a member of the fighter tower. How may I help you?" }, ["Chun Li"] = { pokemon = { {name = "Blissey", optionalLevel = 3000, sex = SEX_FEMALE, nick = "", ball = "great"}, }, storage = 1, msg = "Hello "..getCreatureName(cid)..", my name is ".. getNpcName().." i'm a member of the fighter tower. How may I help you?" }, ["Van Damme"] = { pokemon = { {name = "Shiny hitmontop", optionalLevel = 100, sex = SEX_MALE, nick = "", ball = "super"}, }, storage = 2, msg = "Hello "..getCreatureName(cid)..", my name is ".. getNpcName().." i'm a member of the fighter tower. How may I help you?" }, ["Mai Shiranui"] = { pokemon = { {name = "Shiny Farfetch'd", optionalLevel = 3000, sex = SEX_FEMALE, nick = "", ball = "normal"}, }, storage = 3, msg = "Hello "..getCreatureName(cid)..", my name is ".. getNpcName().." i'm a member of the fighter tower. How may I help you?" }, ["Jet Li"] = { pokemon = { {name = "Shiny Hitmonlee", optionalLevel = 3000, sex = SEX_MALE, nick = "", ball = "great"}, }, storage = 4, msg = "Hello "..getCreatureName(cid)..", my name is ".. getNpcName().." i'm a member of the fighter tower. How may I help you?" }, ["Jackie Chan"] = { pokemon = { {name = "Shiny Hitmonchan", optionalLevel = 3000, sex = SEX_MALE, nick = "", ball = "super"}, }, storage = 5, msg = "Hello "..getCreatureName(cid)..", my name is ".. getNpcName().." i'm a member of the fighter tower. How may I help you?" }, ["Chuck Norris"] = { pokemon = { {name = "Shiny Machamp", optionalLevel = 3000, sex = SEX_MALE, nick = "", ball = "ultra"}, }, storage = 6, msg = "Hello "..getCreatureName(cid)..", my name is ".. getNpcName().." i'm the master of the fighter tower. Nobody can defeat me! How may I help you?" }, } theNpc = Npcs[getNpcName()] 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 if getPlayerStorageValue(cid, sto) == -1 then setPlayerStorageValue(cid, sto, 0) end if getPlayerStorageValue(cid, sto) ~= theNpc.storage then selfSay("What? I don't have nothing to talk with you! Good bye!") focus = 0 return true end focus = cid talk_start = os.clock() conv = 1 selfSay(theNpc.msg) return true end if isDuelMsg(msg) and conv == 1 and focus == cid then if not hasPokemon(cid) then selfSay("To battle agains't me you need pokemons.") return true end selfSay("You are challenging me to a battle. It will be a "..#theNpc.pokemon.." 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 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 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 > #theNpc.pokemon 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 > #theNpc.pokemon 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 2 REP+ pra quem ajuda Editado Novembro 14, 2013 por Alkimista Link para o comentário https://xtibia.com/forum/topic/223934-encerrado-npc-chuck-norris-da-item-depois-de-derrotado/ Compartilhar em outros sites More sharing options...
zipter98 1102 Postado Novembro 14, 2013 Share Postado Novembro 14, 2013 Só entregar o item? 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 sto = 759848 ---------------------------------- local function doSummonGymPokemon(npc) local this = npc if #getCreatureSummons(this) >= 1 or focus == 0 then return true end local it = theNpc.pokemon[1] 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 mb_id = xxx --ID da Master Ball. local mb_qnt = xxx --Quantas Master Balls o player irá receber. if getCreatureName(this) == "Chuck Norris" then doCreatureSay(npc, "Chuck Norris never loses! Just my pokemon fails!", 1) doPlayerAddItem(cid, mb_id, mb_qnt) else doCreatureSay(npc, "You won the duel! Congratulations, you can challenger the next opponent now.", 1) end setPlayerStorageValue(cid, sto, getPlayerStorageValue(cid, sto)+1) end function onCreatureSay(cid, type, msg) -------------------------------------- local Npcs = { ["Hang Wufei"] = { pokemon = { {name = "Machamp", optionalLevel = 3000, sex = SEX_MALE, nick = "", ball = "normal"}, }, storage = 0, msg = "Hello "..getCreatureName(cid)..", my name is ".. getNpcName().." i'm a member of the fighter tower. How may I help you?" }, ["Chun Li"] = { pokemon = { {name = "Blissey", optionalLevel = 3000, sex = SEX_FEMALE, nick = "", ball = "great"}, }, storage = 1, msg = "Hello "..getCreatureName(cid)..", my name is ".. getNpcName().." i'm a member of the fighter tower. How may I help you?" }, ["Van Damme"] = { pokemon = { {name = "Shiny hitmontop", optionalLevel = 100, sex = SEX_MALE, nick = "", ball = "super"}, }, storage = 2, msg = "Hello "..getCreatureName(cid)..", my name is ".. getNpcName().." i'm a member of the fighter tower. How may I help you?" }, ["Mai Shiranui"] = { pokemon = { {name = "Shiny Farfetch'd", optionalLevel = 3000, sex = SEX_FEMALE, nick = "", ball = "normal"}, }, storage = 3, msg = "Hello "..getCreatureName(cid)..", my name is ".. getNpcName().." i'm a member of the fighter tower. How may I help you?" }, ["Jet Li"] = { pokemon = { {name = "Shiny Hitmonlee", optionalLevel = 3000, sex = SEX_MALE, nick = "", ball = "great"}, }, storage = 4, msg = "Hello "..getCreatureName(cid)..", my name is ".. getNpcName().." i'm a member of the fighter tower. How may I help you?" }, ["Jackie Chan"] = { pokemon = { {name = "Shiny Hitmonchan", optionalLevel = 3000, sex = SEX_MALE, nick = "", ball = "super"}, }, storage = 5, msg = "Hello "..getCreatureName(cid)..", my name is ".. getNpcName().." i'm a member of the fighter tower. How may I help you?" }, ["Chuck Norris"] = { pokemon = { {name = "Shiny Machamp", optionalLevel = 3000, sex = SEX_MALE, nick = "", ball = "ultra"}, }, storage = 6, msg = "Hello "..getCreatureName(cid)..", my name is ".. getNpcName().." i'm the master of the fighter tower. Nobody can defeat me! How may I help you?" }, } theNpc = Npcs[getNpcName()] 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 if getPlayerStorageValue(cid, sto) == -1 then setPlayerStorageValue(cid, sto, 0) end if getPlayerStorageValue(cid, sto) ~= theNpc.storage then selfSay("What? I don't have nothing to talk with you! Good bye!") focus = 0 return true end focus = cid talk_start = os.clock() conv = 1 selfSay(theNpc.msg) return true end if isDuelMsg(msg) and conv == 1 and focus == cid then if not hasPokemon(cid) then selfSay("To battle agains't me you need pokemons.") return true end selfSay("You are challenging me to a battle. It will be a "..#theNpc.pokemon.." 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 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 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 > #theNpc.pokemon 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 > #theNpc.pokemon 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 https://xtibia.com/forum/topic/223934-encerrado-npc-chuck-norris-da-item-depois-de-derrotado/#findComment-1582174 Compartilhar em outros sites More sharing options...
Alkimista 4 Postado Novembro 15, 2013 Autor Share Postado Novembro 15, 2013 vlw manin, 2 REP+ só ta dano esse erro aqui, mai ta suave [15/11/2013 18:28:24] [Error - Spell Interface] [15/11/2013 18:28:24] data/spells/scripts/passivas/Demon Puncher.lua:onCastSpell [15/11/2013 18:28:24] Description: [15/11/2013 18:28:24] (luaGetPlayerSlotItem) Player not found [15/11/2013 18:28:24] [Error - Spell Interface] [15/11/2013 18:28:24] data/spells/scripts/passivas/Demon Puncher.lua:onCastSpell [15/11/2013 18:28:24] Description: [15/11/2013 18:28:24] (luaGetItemAttribute) Item not found [15/11/2013 18:28:24] [Error - Spell Interface] [15/11/2013 18:28:24] data/spells/scripts/passivas/Demon Puncher.lua:onCastSpell [15/11/2013 18:28:24] Description: [15/11/2013 18:28:24] data/lib/pokemon moves.lua:4588: attempt to index global 'tabela' (a nil value) [15/11/2013 18:28:24] stack traceback: [15/11/2013 18:28:24] data/lib/pokemon moves.lua:4588: in function 'docastspell' [15/11/2013 18:28:24] data/spells/scripts/passivas/Demon Puncher.lua:3: in function <data/spells/scripts/passivas/Demon Puncher.lua:1> Ele aparece quando eu mato o Shiny Machamp do Chuck Norris Link para o comentário https://xtibia.com/forum/topic/223934-encerrado-npc-chuck-norris-da-item-depois-de-derrotado/#findComment-1582444 Compartilhar em outros sites More sharing options...
VictorWEBMaster 369 Postado Novembro 16, 2013 Share Postado Novembro 16, 2013 #Movido Sessao incorreta. Movido para a sessao certa. Link para o comentário https://xtibia.com/forum/topic/223934-encerrado-npc-chuck-norris-da-item-depois-de-derrotado/#findComment-1582849 Compartilhar em outros sites More sharing options...
Gabrieltxu 737 Postado Novembro 23, 2013 Share Postado Novembro 23, 2013 Tópico movido para a seção de dúvidas e pedidos resolvidos. Link para o comentário https://xtibia.com/forum/topic/223934-encerrado-npc-chuck-norris-da-item-depois-de-derrotado/#findComment-1584983 Compartilhar em outros sites More sharing options...
Stigal 584 Postado Abril 21, 2018 Share Postado Abril 21, 2018 A questão neste tópico de 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 https://xtibia.com/forum/topic/223934-encerrado-npc-chuck-norris-da-item-depois-de-derrotado/#findComment-1735737 Compartilhar em outros sites More sharing options...
Posts Recomendados