• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

Lua tralalala

Adix910

New Member
Joined
Aug 14, 2015
Messages
37
Reaction score
1
data/npc/scripts/brock.lua:36: attempt to call global 'doSetMonsterGym' (a nil value)


brock.lua


Code:
local focus = 0
local max_distance = 10
local talk_start = 0
local conv = 0
local fighting = false
local challenger = 0
local afk_limit_time = 300    -- 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 = "Sudowoodo", optionalLevel = 400, sex = SEX_MALE, nick = "", ball = "great"},
{name = "Rhydon", optionalLevel = 300, sex = SEX_MALE, nick = "", ball = "great"},   --alterado v1.3
{name = "Steelix", optionalLevel = 400, sex = SEX_MALE, nick = "", ball = "great"},
{name = "Onix", optionalLevel = 300, sex = SEX_MALE, nick = "", ball = "great"},
{name = "Shiny Golem", optionalLevel = 300, sex = SEX_MALE, nick = "", ball = "great"},
}


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["great"].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)
   local name = it.nick ~= "" and it.nick or getCreatureName(this).."s "..it.name
   setWildPokemonLevel(summon, it.level, getPokemonStatus(it.name, (it.extralevel + it.level)), name, 1.5)
   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
doPlayerSendCancel(cid, "#getBadges# "..getCreatureName(this).." "..getPlayerItemCount(cid, gymbadges[getCreatureName(this)]))
end

function onCreatureSay(cid, type, msg)

   local msg = string.lower(msg)

   if focus == cid then
       talk_start = os.clock()
   end

   if msgcontains(msg, 'hi') and focus == 0 and getDistanceToCreature(cid) <= 4 then
       focus = cid
       talk_start = os.clock()
       conv = 1
       selfSay("Hello "..getCreatureName(cid)..", my name is 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

       
           if getPlayerStorageValue(cid, 992) == 1 then
           focus = 0
           selfSay("already battled with you , find another leader of gym!")
       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
 
You are likely missing stuff in npcsystem; from where ever you got the script from. Look up the functions you are calling upon, doSetMonsterGym in this case.
 
where did you get the scripts from? do you have github or something?
From the place where you got it check /npc/lib /libs folders
 
Back
Top