Ir para conteúdo

[Encerrado] NPC Chuck Norris da item depois de derrotado


Alkimista

Posts Recomendados

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+ ok.png pra quem ajuda
Editado por Alkimista
Link para o comentário
Compartilhar em outros sites

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
Compartilhar em outros sites

vlw manin, 2 REP+ ok.png

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
Compartilhar em outros sites

  • 4 years later...
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
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...