Ir para conteúdo

[Encerrado] [Pda] Como Colocar Npc De Ginásio Para Ganhar Prêmio Ao Derrotá-Lo?


narutochuuu

Posts Recomendados

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

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 por Roksas
Link para o comentário
Compartilhar em outros sites

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

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

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

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 por Roksas
Link para o comentário
Compartilhar em outros sites

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

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 por Roksas
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...