Ir para conteúdo

Hine

Campones
  • Total de itens

    62
  • Registro em

  • Última visita

Posts postados por Hine

  1. 4 horas atrás, thepota disse:

    Acho que para extrair é 1 por 1, mas para importar da pra selecionar tudo e arrastar pra dentro do obj builder

    Me refiro, como vc fez pra add sprites 8.54 dos itens e pokemons para 10.98? Testei converter as sprites do meu servidor atual para 10.98 com ClientConverter (https://github.com/ottools/ClientConverter), mas não funcionou, aparece erro quando abro o seu object builder

    ArgumentError: The minimum value may not be greater than the maximum value.
    	at nail.otlib.things::FrameDuration()
    	at nail.otlib.things::ThingSerializer$/readSprites()
    	at nail.otlib.things::ThingTypeStorage/loadThingTypeList()
    	at nail.otlib.things::ThingTypeStorage/readBytes()
    	at nail.otlib.things::ThingTypeStorage/load()
    	at nail.objectbuilder.core::ObjectBuilderWorker/onLoadFiles()
    	at nail.signals::Signal/dispatch()
    	at nail.workers::ApplicationWorker/mainToWorkerMessageHandler()

     

  2. Boa tarde, ontem tive um problema com o pokebar que não atualizava ao dar catch no pokémon, e graças ao ISAINTY, foi resolvido, porém acabei de perceber que ele tbm não atualiza se jogar a pokebola da bag ou pegar a pokebola do chão e colocar na bag principal do jogo. Alguém poderia me ajudar? O pokebar que utilizei é esse aqui: 

     

  3. abra datapack/lib/some functions.lua e adiciona isso la em cima

     

    happinessRate = {
    [5] = {rate = 1.5, effect = 183, n = getConfigValue(PokemonStageVeryHappy)},
    [4] = {rate = 1.2, effect = 170, n = getConfigValue(PokemonStageHappy)},
    [3] = {rate = 1.0, effect = 182, n = getConfigValue(PokemonStageOK)},
    [2] = {rate = 0.7, effect = 169, n = getConfigValue(PokemonStageSad)},
    [1] = {rate = 0.4, effect = 168, n = getConfigValue(PokemonStageMad)}
    }

     

  4. Quando o player desloga no fly/ride/surf quando o servidor crasha acontece esse error de cima.

     

    Meu servidor é 'PDA' open source

     

    Login.lua

    local config = {
    	loginMessage = getConfigValue('loginMessage'),
    	useFragHandler = getBooleanFromString(getConfigValue('useFragHandler'))
    }
    
    function onLogin(cid)
    
      local loss = getConfigValue('deathLostPercent')
    
    	if(loss ~= nil) then
    		doPlayerSetLossPercent(cid, PLAYERLOSS_EXPERIENCE, loss * 10)
    	end
    	doCreatureSetDropLoot(cid, false)
    
    	local accountManager = getPlayerAccountManager(cid)
    
    	if(accountManager == MANAGER_NONE) then
    		local lastLogin, str = getPlayerLastLoginSaved(cid), config.loginMessage
    		if(lastLogin > 0) then
    			doPlayerSendTextMessage(cid, MESSAGE_STATUS_DEFAULT, str)
    			str = "Your last visit was on " .. os.date("%a %b %d %X %Y", lastLogin) .. "."
    		else
    			str = str
    		end
    
    		doPlayerSendTextMessage(cid, MESSAGE_STATUS_DEFAULT, str)
    		
    	elseif(accountManager == MANAGER_NAMELOCK) then
    		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Hello, it appears that your character has been namelocked, what would you like as your new name?")
    	elseif(accountManager == MANAGER_ACCOUNT) then
    		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Hello, type 'account' to manage your account and if you want to start over then type 'cancel'.")
    	else
    		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Hello, type 'account' to create an account or type 'recover' to recover an account.")
    	end
    
    	
    if getPlayerSex(cid) == 1 then
    
    	doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Dias de VIP Restante: "..getPlayerPremiumDays(cid)..". Nome: "..getCreatureName(cid)..". Level: ["..getPlayerLevel(cid).."]. EXP: "..getPlayerExperience(cid)..". Sexo: Male. Velocidade "..getCreatureSpeed(cid)..". Torneio Ganhos: ["..getTopt(cid).."]. ")
    	else
    	doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Dias de VIP Restante: "..getPlayerPremiumDays(cid)..". Nome: "..getCreatureName(cid)..". Level: ["..getPlayerLevel(cid).."]. EXP: "..getPlayerExperience(cid)..". Sexo: Female. Velocidade "..getCreatureSpeed(cid)..". Torneio Ganhos: ["..getTopt(cid).."]. ")
    end
    	if getCreatureName(cid) == "Account Manager" then
    		local outfit = {}
    		if accountManagerRandomPokemonOutfit then
    			outfit = {lookType = getPokemonXMLOutfit(oldpokedex[math.random(151)][1])}
    		else
    			outfit = accountManagerOutfit
    		end
    	
    		doSetCreatureOutfit(cid, outfit, -1)
    	return true
    	end
    	if getPlayerAccess(cid) == 6 then
    	else
    	if(not isPlayerGhost(cid)) then
    		doSendMagicEffect(getCreaturePosition(cid), CONST_ME_TELEPORT)
    	end
    	end
    	
    	local outfit = {}
    
    	if getPlayerVocation(cid) == 0 then
    		doPlayerSetMaxCapacity(cid, 0)
    		doPlayerSetVocation(cid, 1)
    		setCreatureMaxMana(cid, 6)
    		doPlayerAddSoul(cid, -getPlayerSoul(cid))
    		setPlayerStorageValue(cid, 19898, 0)
    			if getCreatureOutfit(cid).lookType == 128 then
    				outfit = {lookType = 510, lookHead = math.random(0, 132), lookBody = math.random(0, 132), lookLegs = math.random(0, 132), lookFeet = math.random(0, 132)}
    			elseif getCreatureOutfit(cid).lookType == 136 then
    				outfit = {lookType = 511, lookHead = math.random(0, 132), lookBody = math.random(0, 132), lookLegs = math.random(0, 132), lookFeet = math.random(0, 132)}
    			end
    		doCreatureChangeOutfit(cid, outfit)
    	end
    	
    	
    	
    if getPlayerVocation(cid) == 1 then
        setPlayerStorageValue(cid, 6756755, 1)
    end
    if getPlayerVocation(cid) == 4 then
    setPlayerStorageValue(cid, 6756755, 1)
    end
    	
    
    registerCreatureEvent(cid, "casamentolook")
    registerCreatureEvent(cid, "Monster Hunterl")
    registerCreatureEvent(cid, "Monster Hunter")
    registerCreatureEvent(cid, "bossKill")
    registerCreatureEvent(cid, "bossKill2")
    registerCreatureEvent(cid, "MonsterKill")
    registerCreatureEvent(cid, "combat")
    registerCreatureEvent(cid, "task_count")
    registerCreatureEvent(cid, "PlayerPokeDeath")
    registerCreatureEvent(cid, "anunciarmorte")
    registerCreatureEvent(cid, "UpAbsolute") 
    registerCreatureEvent(cid, "OpenChannelDialog") 
    registerCreatureEvent(cid, "dropStone") 
    registerCreatureEvent(cid, "ExpBonus")
    registerCreatureEvent(cid, "ShowPokedex") 
    registerCreatureEvent(cid, "ClosePokedex") 
    registerCreatureEvent(cid, "PlayerLogout")
    registerCreatureEvent(cid, "WildAttack")
    registerCreatureEvent(cid, "Idle")
    registerCreatureEvent(cid, "EffectOnAdvance")
    registerCreatureEvent(cid, "GeneralConfiguration")
    registerCreatureEvent(cid, "SaveReportBug")   
    registerCreatureEvent(cid, "LookSystem")
    registerCreatureEvent(cid, "T1")
    registerCreatureEvent(cid, "FirstItems")
    registerCreatureEvent(cid, "T2")
    registerCreatureEvent(cid, "atkz")
    registerCreatureEvent(cid, "atk")
    registerCreatureEvent(cid, "magica")
    registerCreatureEvent(cid, "Effect")
    registerCreatureEvent(cid, "bonuspremium")
    registerCreatureEvent(cid, "PassiveSystem")
    registerCreatureEvent(cid, "upspeed")
    	
    if(config.useFragHandler) then
    registerCreatureEvent(cid, "SkullCheck")
    end
    
    	if getPlayerStorageValue(cid, 99284) == 1 then
    		setPlayerStorageValue(cid, 99284, -1)
    	end
    
        if getPlayerStorageValue(cid, 6598754) >= 1 or getPlayerStorageValue(cid, 6598755) >= 1 then
           setPlayerStorageValue(cid, 6598754, -1)
           setPlayerStorageValue(cid, 6598755, -1)
           doRemoveCondition(cid, CONDITION_OUTFIT)             --alterado v1.9 \/
           doTeleportThing(cid, posBackPVP, false)
           doCreatureAddHealth(cid, getCreatureMaxHealth(cid))
        end
        
    	doChangeSpeed(cid, -(getCreatureSpeed(cid)))
    
    	--///////////////////////////////////////////////////////////////////////////--
        local storages = {17000, 63215, 17001, 13008, 5700}
        for s = 1, #storages do
            if not tonumber(getPlayerStorageValue(cid, storages[s])) then
               if s == 3 then
                  setPlayerStorageValue(cid, storages[s], 1)
               elseif s == 4 then
                  setPlayerStorageValue(cid, storages[s], -1)
               else   
                  if isBeingUsed(getPlayerSlotItem(cid, 8).itemid) then
                     setPlayerStorageValue(cid, storages[s], 1)                 
                  else
                     setPlayerStorageValue(cid, storages[s], -1) 
                  end
               end
               doPlayerSendTextMessage(cid, 27, "Sorry, but a problem occurred on the server, but now it's alright")
            end
        end
        --/////////////////////////////////////////////////////////////////////////--
    	if getPlayerStorageValue(cid, 17000) >= 1 then -- fly
            
            local item = getPlayerSlotItem(cid, 8)
    		local poke = getItemAttribute(item.uid, "poke")
    		doChangeSpeed(cid, getPlayerStorageValue(cid, 54844))
    		doRemoveCondition(cid, CONDITION_OUTFIT)
    		        local addonfly = getPlayerSlotItem(cid, 8).uid
                    local addofly = getItemAttribute(addonfly,"addonfly")
                    if not addofly then
                                    doSetItemAttribute(addonfly,"addonfly",0) 
    										doSetCreatureOutfit(cid, {lookType = flys[poke][1] + 351}, -1)
    
                    end
                    if addofly > 0 then
                                    doSetCreatureOutfit(cid, {lookType = addofly}, -1)
    
                    end
    
    		local item = getPlayerSlotItem(cid, 8)
    		local poke = getItemAttribute(item.uid, "poke")
    		doChangeSpeed(cid, getPlayerStorageValue(cid, 54844))
    		doRemoveCondition(cid, CONDITION_OUTFIT)
    		doSetCreatureOutfit(cid, {lookType = flys[poke][1] + 351}, -1)
    
    	local apos = getFlyingMarkedPos(cid)
        apos.stackpos = 0
    		
    			if getTileThingByPos(apos).itemid <= 2 then
    				doCombatAreaHealth(cid, FIREDAMAGE, getFlyingMarkedPos(cid), 0, 0, 0, CONST_ME_NONE)
    				doCreateItem(460, 1, getFlyingMarkedPos(cid))
    			end 
    
    	doTeleportThing(cid, apos, false)
    	if getItemAttribute(item.uid, "boost") and getItemAttribute(item.uid, "boost") >= 50 and getPlayerStorageValue(cid, 42368) >= 1 then   
           sendAuraEffect(cid, auraSyst[getItemAttribute(item.uid, "aura")])                     --alterado v1.8
        end  
     
        local posicao = getTownTemplePosition(getPlayerTown(cid))
        markFlyingPos(cid, posicao)
        
    	elseif getPlayerStorageValue(cid, 63215) >= 1 then -- surf
    
    		local item = getPlayerSlotItem(cid, 8)
    		local poke = getItemAttribute(item.uid, "poke")
    		   		  local addonsurf = getPlayerSlotItem(cid, 8).uid
                    local addosurf = getItemAttribute(addonsurf,"addonsurf")
                    if not addosurf then
                                    doSetItemAttribute(addonsurf,"addonsurf",0) 
    		doSetCreatureOutfit(cid, {lookType = surfs[poke].lookType + 351}, -1)
    
                    end
                    if addosurf > 0 then
                                    doSetCreatureOutfit(cid, {lookType = addosurf}, -1)
    
                    end	
    		doChangeSpeed(cid, getPlayerStorageValue(cid, 54844))
    		if getItemAttribute(item.uid, "boost") and getItemAttribute(item.uid, "boost") >= 50 and getPlayerStorageValue(cid, 42368) >= 1 then   
               sendAuraEffect(cid, auraSyst[getItemAttribute(item.uid, "aura")])                     --alterado v1.8
            end 
    
    	elseif getPlayerStorageValue(cid, 17001) >= 1 then -- ride
            
    		local item = getPlayerSlotItem(cid, 8)
    		local poke = getItemAttribute(item.uid, "poke")
    		
    		
    		local item = getPlayerSlotItem(cid, 8)
    		local poke = getItemAttribute(item.uid, "poke")
    		
    		
    		if rides[poke] then
    		   doChangeSpeed(cid, getPlayerStorageValue(cid, 54844))
    		   doRemoveCondition(cid, CONDITION_OUTFIT)
    		   		  local addonride = getPlayerSlotItem(cid, 8).uid
                    local addoride = getItemAttribute(addonride,"addonride")
                    if not addofly then
                                    doSetItemAttribute(addonride,"addonride",0) 
    		   doSetCreatureOutfit(cid, {lookType = rides[poke][1] + 351}, -1)
    
                    end
                    if addoride > 0 then
                                    doSetCreatureOutfit(cid, {lookType = addoride}, -1)
    
                    end
    		   if getItemAttribute(item.uid, "boost") and getItemAttribute(item.uid, "boost") >= 50 and getPlayerStorageValue(cid, 42368) >= 1 then   
                  sendAuraEffect(cid, auraSyst[getItemAttribute(item.uid, "aura")])                     --alterado v1.8
               end 
    		else
    		   setPlayerStorageValue(cid, 17001, -1)
    		   doRegainSpeed(cid)   
    		end
    	
    	    local posicao2 = getTownTemplePosition(getPlayerTown(cid))
            markFlyingPos(cid, posicao2)
            
    	elseif getPlayerStorageValue(cid, 13008) >= 1 then -- dive
           if not isInArray({5405, 5406, 5407, 5408, 5409, 5410}, getTileInfo(getThingPos(cid)).itemid) then
    			setPlayerStorageValue(cid, 13008, 0)
    			doRegainSpeed(cid)              
    			doRemoveCondition(cid, CONDITION_OUTFIT)
    		return true
    		end   
              
           if getPlayerSex(cid) == 1 then
              doSetCreatureOutfit(cid, {lookType = 1034, lookHead = getCreatureOutfit(cid).lookHead, lookBody = getCreatureOutfit(cid).lookBody, lookLegs = getCreatureOutfit(cid).lookLegs, lookFeet = getCreatureOutfit(cid).lookFeet}, -1)
           else
              doSetCreatureOutfit(cid, {lookType = 1035, lookHead = getCreatureOutfit(cid).lookHead, lookBody = getCreatureOutfit(cid).lookBody, lookLegs = getCreatureOutfit(cid).lookLegs, lookFeet = getCreatureOutfit(cid).lookFeet}, -1)
           end
           doChangeSpeed(cid, 800)
    
         elseif getPlayerStorageValue(cid, 5700) > 0 then   --bike
            doChangeSpeed(cid, -getCreatureSpeed(cid))
            doChangeSpeed(cid, getPlayerStorageValue(cid, 5700))  --alterado v1.8
            if getPlayerSex(cid) == 1 then
               doSetCreatureOutfit(cid, {lookType = 1394}, -1)
            else
               doSetCreatureOutfit(cid, {lookType = 1393}, -1)
            end
         
         elseif getPlayerStorageValue(cid, 75846) >= 1 then     --alterado v1.9 \/
            doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)), false)  
            setPlayerStorageValue(cid, 75846, -1)
            sendMsgToPlayer(cid, 20, "You have been moved to your town!")
    	 else
    		doRegainSpeed(cid)  
    	 end
    	
    	if getPlayerStorageValue(cid, 22545) >= 1 then
    	   setPlayerStorageValue(cid, 22545, -1)              
    	   doTeleportThing(cid, getClosestFreeTile(cid, posBackGolden), false)
           setPlayerRecordWaves(cid)     
        end
        
    	 setPlayerStorageValue(cid, 243656, 0)
    	
    	if getPlayerLanguage(cid) == 0 then
    	doPlayerSendTextMessage(cid, 25," [Aviso Importante] Nunca digite sua senha em site que não seja o oficial ( www.pokegold.com.br), Nao Seja HACKIADO!")
    	-- doPlayerSendTextMessage(cid, 25,"Você está fazendo parte do BETA TESTE, então após ser realizado o TESTE as contas iram resetar.")
    	end
    	
    	if getPlayerLanguage(cid) == 2 then
    	doPlayerSendTextMessage(cid, 25,"[Important Warning] Never type your password in non official websites. The only original website is ( www.pokegold.com.br) , Is Not HACKED!")
    	end 
    	
    	if getPlayerLanguage(cid) == 1 then
    	doPlayerSendTextMessage(cid, 25, "[Aviso Importante] nunca digites tu contraseña en sitios que no sean oficiales ( www.pokegold.com.br ), No Es HACKEADO!")
    	end
    	
    	
    	 if getPlayerLanguage(cid) == 0 then
    	 doPlayerSendTextMessage(cid, 27,"[Language System (Beta)] Do you speak english? If so, try setting your game language to english. Just say: '!lang en'.")
    	 doPlayerSendTextMessage(cid, 27,"[Language System (Beta)] Tu hablas español? si, para mudar la lengua del juego a español apenas diga: '!lang es'.")
    	 end
    	
    	if getPlayerLanguage(cid) == 2 then
    	 doPlayerSendTextMessage(cid, 27, "[Language System (Beta)] Você fala português? Se sim, experimente mudar a língua do jogo para português. Apenas diga: '!lang pt'.")
    	 doPlayerSendTextMessage(cid, 27, "[Language System (Beta)] Tu hablas español? si, para mudar la lengua del juego a español apenas diga: '!lang es'.")
    	 end
    	
    	if getPlayerLanguage(cid) == 1 then
    	doPlayerSendTextMessage(cid, 27, "[Language System (Beta)] Do you speak english? If so, try setting your game language to english. Just say: '!lang en'.")
    	doPlayerSendTextMessage(cid, 27, "[Language System (Beta)] Você fala português? Se sim, experimente mudar a língua do jogo para português. Apenas diga: '!lang pt'.")
    	 end
    	 
    	
    	doSetPlayerSpeedLevel(cid)
    	
    	doPlayerSetMaxCapacity(cid, 0)
    	 
    
    	return true
    
    end

    e lib/Order.lua 

    local dirpref = {
    [1] =  {[NORTH] = {[1] = {NORTH}, [2] = {EAST, WEST}, [3] = {NORTHEAST, NORTHWEST}},
    	[EAST] = {[1] = {EAST}, [2] = {NORTH, SOUTH}, [3] = {NORTHEAST, SOUTHEAST}},
    	[SOUTH] = {[1] = {SOUTH}, [2] = {EAST, WEST}, [3] = {SOUTHEAST, SOUTHWEST}},
    	[WEST] = {[1] = {WEST}, [2] = {SOUTH, NORTH}, [3] = {NORTHWEST, SOUTHWEST}},
    	[NORTHEAST] = {[1] = {NORTH, EAST}, [2] = {NORTHEAST}, [3] = {SOUTH, WEST}},
    	[SOUTHEAST] = {[1] = {SOUTH, EAST}, [2] = {SOUTHEAST}, [3] = {NORTH, WEST}},
    	[SOUTHWEST] = {[1] = {SOUTH, WEST}, [2] = {SOUTHWEST}, [3] = {NORTH, EAST}},
    	[NORTHWEST] = {[1] = {NORTH, WEST}, [2] = {NORTHWEST}, [3] = {EAST, SOUTH}}},
    [2] =  {[NORTH] = {[1] = {NORTH}, [2] = {WEST, EAST}, [3] = {NORTHWEST, NORTHEAST}},
    	[EAST] = {[1] = {EAST}, [2] = {SOUTH, NORTH}, [3] = {SOUTHEAST, NORTHEAST}},
    	[SOUTH] = {[1] = {SOUTH}, [2] = {WEST, EAST}, [3] = {SOUTHWEST, SOUTHEAST}},
    	[WEST] = {[1] = {WEST}, [2] = {NORTH, SOUTH}, [3] = {SOUTHWEST, NORTHWEST}},
    	[NORTHEAST] = {[1] = {EAST, NORTH}, [2] = {NORTHEAST}, [3] = {WEST, SOUTH}},
    	[SOUTHEAST] = {[1] = {EAST, SOUTH}, [2] = {SOUTHEAST}, [3] = {WEST, NORTH}},
    	[SOUTHWEST] = {[1] = {WEST, SOUTH}, [2] = {SOUTHWEST}, [3] = {EAST, NORTH}},
    	[NORTHWEST] = {[1] = {WEST, NORTH}, [2] = {NORTHWEST}, [3] = {SOUTH, EAST}}},
    }
    
    function doPushCreature(uid,direction,distance,time)
       if isCreature(uid) == TRUE then
       local rand = (2*math.random(0,1))-1
       local rand2 = math.random(-1,0)
    	  if direction == 0 then
    	  signal = {0,rand,-rand,rand,-rand,0,-1,-1,-1,0,0,0}
    	  elseif direction == 1 then
    	  signal = {1,1,1,0,0,0,0,rand,-rand,rand,-rand,0}
    	  elseif direction == 2 then
    	  signal = {0,rand,-rand,rand,-rand,0,1,1,1,0,0,0}
    
    	  elseif direction == 3 then
    
    	  signal = {-1,-1,-1,0,0,0,0,rand,-rand,rand,-rand,0}
    
    	  elseif direction == 4 then
    
    	  signal = {-1,rand2,(-rand2)-1,0,1,rand2+1,rand2,0}
    
    	  elseif direction == 5 then
    
    	  signal = {1,-rand2,-((-rand2)-1),0,1,rand2+1,rand2,0}
    
    	  elseif direction == 6 then
    
    	  signal = {-1,rand2,(-rand2)-1,0,-1,(-rand2)-1,rand2,0}
    
    	  else
    
    	  signal = {1,-rand2,-((-rand2)-1),0,-1,(-rand2)-1,rand2,0}
    
    	  end
    
       local pos = getThingPos(uid)
    
       nsig = #signal
    
       nvar = 0
    
       
    
       repeat
    
       nvar = nvar+1
    
       newpos = {x=pos.x+(signal[nvar]),y=pos.y+(signal[(nsig/2)+nvar]),z=pos.z}
    
       newtile = {x=newpos.x,y=newpos.y,z=newpos.z,stackpos=0}
    
       until getTileThingByPos(newtile).uid ~= 0 and canWalkOnPos(newtile, true, false, true, true, false) and queryTileAddThing(uid,newpos) == 1 or nvar == (nsig/2)
                                                                                                                            --alterado v2.5
       
    
    	  if distance == nil or distance == 1 then
    
    	  doTeleportThing(uid,newpos,TRUE)   
    
    	  else
    
    	  distance = distance-1
    
    	  doTeleportThing(uid,newpos,TRUE)
    
    		 if time ~= nil then
    
    		 addEvent(doPushCreature,time,uid,direction,distance,time)
    
    		 else
    
    		 addEvent(doPushCreature,500,uid,direction,distance,500)
    
    		 end	   
    
    	  end
    
       end  
    
    end
    
    function doComparePosition(pos1, pos2)
    	if pos1.x == pos2.x and pos1.y == pos2.y and pos1.z == pos2.z then
    	return true
    	end
    return false
    end
    
    function getNextStepDelay(cid, dir)
    	return 868
    end
    
    function walkTo(cid, direction, finalp, useExtraMoveOrder)
    	if not isCreature(cid) then return true end
    
    	doChangeSpeed(cid, 5)
    	local x = getThingPos(cid)
    	local ratedelaywalk = 1
    	local finalpos = {x = finalp.x, y = finalp.y, z = finalp.z}
    
    		if not canWalkOnPos(finalpos, false, false, true, true, true) then
    			finalpos = getClosestFreeTile(cid, finalpos)
    		end
    
    		if not finalpos then
    		return false
    		end
    
    	local dir = getDirectionTo(getThingPos(cid), finalpos)
    	if dir and tonumber(dir) ~= nil and tonumber(dir) >= 0 and tonumber(dir) <= 7 then
    		if dir >= 4 then
    			ratedelaywalk = 0.4
    		end
    		doPushCreature(cid, dir, 1, getNextStepDelay(cid, dir) * ratedelaywalk)
    		return getNextStepDelay(cid, dir) * ratedelaywalk
    	elseif useExtraMoveOrder then
    
    local random = math.random(1, 2)
    
    	for ta = 1, 3 do
    		for tb = 1, #dirpref[random][direction][ta] do
    			local y = getPosByDir(getThingPos(cid), dirpref[random][direction][ta][tb])
    			local w = getCreatureLP(cid)
    			local z = getDirectionTo(y, getThingPos(cid)) -- direção q vai marcar
    			local j = getDirectionTo(getThingPos(cid), y) -- direção q ele vai
    			if canWalkOnPos(y, true, false, true, true, true) and w ~= j then
    				if dirpref[random][direction][ta][tb] >= 4 then
    					ratedelaywalk = 0.5
    				end
    				doPushCreature(cid, dirpref[random][direction][ta][tb], 1, getNextStepDelay(cid, dirpref[random][direction][ta][tb]) * ratedelaywalk)
    				markLP(cid, z)
    			return getNextStepDelay(cid, dirpref[random][direction][ta][tb]) * ratedelaywalk
    			end
    		end
    	end
    	end
    return false
    end
    
    function getCreatureLP(cid)
    return getPlayerStorageValue(cid, 197)
    end
    
    function markLP(cid, dir)
    setPlayerStorageValue(cid, 197, dir)
    end
    
    function markPos(sid, pos)
    if not isCreature(sid) then return end
    setPlayerStorageValue(sid, 145, pos.x)
    setPlayerStorageValue(sid, 146, pos.y)
    setPlayerStorageValue(sid, 147, pos.z)
    end
    
    function markFlyingPos(sid, pos)
    if not isCreature(sid) then return end
    setPlayerStorageValue(sid, 33145, pos.x)
    setPlayerStorageValue(sid, 33146, pos.y)
    setPlayerStorageValue(sid, 33147, pos.z)
    end
    
    function getFlyingMarkedPos(sid)
    if not isCreature(sid) then return end
    local xx = getPlayerStorageValue(sid, 33145)
    local yy = getPlayerStorageValue(sid, 33146)
    local zz = getPlayerStorageValue(sid, 33147)
    return {x = xx, y = yy, z = zz, stackpos = 0}
    end
    
    function getMarkedPos(sid)
    if not isCreature(sid) then return end
    local xx = getPlayerStorageValue(sid, 145)
    local yy = getPlayerStorageValue(sid, 146)
    local zz = getPlayerStorageValue(sid, 147)
    return {x = xx, y = yy, z = zz}
    end
    
    function getOwnerPos(sid)
    if not isCreature(sid) then return end
    local xx = getPlayerStorageValue(sid, 148)
    local yy = getPlayerStorageValue(sid, 149)
    local zz = getPlayerStorageValue(sid, 150)
    return {x = xx, y = yy, z = zz}
    end
    
    function markOwnerPos(sid, pos)
    if not isCreature(sid) then return end
    setPlayerStorageValue(sid, 148, pos.x)
    setPlayerStorageValue(sid, 149, pos.y)
    setPlayerStorageValue(sid, 150, pos.z)
    end
    
    function recheck(sid, skill, pos)
    	if not isCreature(sid) then return end
    	local cid = getCreatureMaster(sid)
    
    	if skill == "cut" then
    
    		local item = getTileItemById(pos, 2767)
    		doCreatureSay(sid, "CUT!", TALKTYPE_MONSTER)
    		markPos(sid, {x=1,y=1,z=7})
    		doFaceCreature(sid, pos)
    		doSendMagicEffect(getThingPos(item.uid), 141)
    		doTransformItem(item.uid, 6216)
    			local function growBush()
    			doTransformItem(getTileItemById(pos, 6216).uid, 2767)
    			end
    		addEvent(growBush, intervalToRegrowBushAndStones * 1000)
    
    	elseif skill == "rock smash" then
    
    		local item = getTileItemById(pos, 1285)
    		doCreatureSay(sid, "ROCK SMASH!", TALKTYPE_MONSTER)
    		markPos(sid, {x=1,y=1,z=7})
    		doFaceCreature(sid, pos)
    		doSendMagicEffect(getThingPos(item.uid), 118)
    		doTransformItem(item.uid, 3610)
    			local function growRock()
    			doTransformItem(getTileItemById(pos, 3610).uid, 1285)
    			end
    		addEvent(growRock, intervalToRegrowBushAndStones * 1000)
    		
        elseif skill == "headbutt" then   --alterado v2.6
        
        local master = getCreatureMaster(sid)
        local array = {}                           
        local lvl = {25, 40, 60, 80, 1000} --lvls
    
        for i = 1, #lvl do
            if getPlayerLevel(master) <= lvl[i] then
               array = headbutt[lvl[i]]
               break
            end
        end 
        local rand = array[math.random(#array)]
        for j = 1, rand[2] do
            local poke = doCreateMonster(rand[1], getClosestFreeTile(sid, pos))
            doSetMonsterPassive(poke)               
            doWildAttackPlayer(poke, master) 
        end
        local item = getTileItemById(pos, 12591)    --id do item   arvore normal
        doCreatureSay(sid, "HEADBUTT!", TALKTYPE_MONSTER)
        markPos(sid, {x=1,y=1,z=7})
        doFaceCreature(sid, pos)
        doSendMagicEffect(getThingPos(item.uid), 118)
        doTransformItem(item.uid, 12592)  --id do item   arvore quebrada
        local function growHead()
              doTransformItem(getTileItemById(pos, 12592).uid, 12591) --id do item  arvore quebrada, arvore normal
        end
        addEvent(growHead, choose(5, 10, 20, 30) * 60 * 1000)   --o tempo pra arvore voltar ao normal varia de 5~30min
    
    	elseif skill == "dig" then
    
    		local item = getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0})
    		doCreatureSay(sid, "DIG!", TALKTYPE_MONSTER)
    		markPos(sid, {x=1,y=1,z=7})
    		doFaceCreature(sid, pos)
    		doSendMagicEffect(getThingPos(item.uid), 3)
    		doTransformItem(item.uid, item.itemid+1)
    			local function closeHole()
    			doTransformItem(getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).uid, item.itemid)
    			end
    		addEvent(closeHole, intervalToRegrowBushAndStones * 1000)
    	
    	elseif skill == "fly" then
       
            --if not isPremium(cid) then
            --doPlayerSendCancel(cid, "Only premium members are allowed to fly.")
    	    --return true
    	    --end
    		local pokemon = flys[getPokemonName(getCreatureSummons(cid)[1])]
    		doPlayerSendTextMessage(cid, 27, "Type \"up\" or \"h1\" to fly higher and \"down\" or \"h2\" to fly lower.")
    		doChangeSpeed(cid, -getCreatureSpeed(cid))
    		local speed = 500 + PlayerSpeed/5 + getSpeed(sid) * 6 * speedRate
    		doChangeSpeed(cid, speed)
    		setPlayerStorageValue(cid, 54844, speed)
    		doSetCreatureOutfit(cid, {lookType = pokemon[1] + 351}, -1)
    		doItemSetAttribute(getPlayerSlotItem(cid, 8).uid, "hp", getCreatureHealth(getCreatureSummons(cid)[1]) / getCreatureMaxHealth(getCreatureSummons(cid)[1]))
    		doRemoveCreature(getCreatureSummons(cid)[1])
    		setPlayerStorageValue(cid, 17000, 1)
    		local addonfly= getPlayerSlotItem(cid, 8).uid
                    local addofly = getItemAttribute(addonfly,"addonfly")
                    if not getItemAttribute(addonfly,"addonfly") then
                                    doSetItemAttribute(addonfly,"addonfly",0) 
    
                    end
                    if getItemAttribute(addonfly,"addonfly") > 0 then
                                    doSetCreatureOutfit(cid, {lookType = addofly}, -1)
    
                    end
    		if getCreatureOutfit(cid).lookType == 667 or getCreatureOutfit(cid).lookType == 999 then
               markPosEff(cid, getThingPos(cid))
               sendMovementEffect(cid, 136, getThingPos(cid))     --edited efeito quando anda com o porygon
            end
    	return true
    
    	elseif skill == "ride" then
    	
    		local pokemon = rides[getPokemonName(getCreatureSummons(cid)[1])]
    		doChangeSpeed(cid, -getCreatureSpeed(cid))
    		local speed = 150 + PlayerSpeed + getSpeed(sid) * 5 * speedRate
    		doChangeSpeed(cid, speed)
    		setPlayerStorageValue(cid, 54844, speed)
    		doSetCreatureOutfit(cid, {lookType = pokemon[1] + 351}, -1)
    		doItemSetAttribute(getPlayerSlotItem(cid, 8).uid, "hp", getCreatureHealth(getCreatureSummons(cid)[1]) / getCreatureMaxHealth(getCreatureSummons(cid)[1]))
    		doRemoveCreature(getCreatureSummons(cid)[1])
    		setPlayerStorageValue(cid, 17001, 1)
    		local addonride = getPlayerSlotItem(cid, 8).uid
                    local addoride = getItemAttribute(addonride,"addonride")
                    if not addoride then
                                    doSetItemAttribute(addonride,"addonride",0) 
    
                    end
                    if addoride > 0 then
                                    doSetCreatureOutfit(cid, {lookType = addoride}, -1)
    
                    end
    
    	return true
    	end
    
    	if getOwnerPos(sid).x ~= getThingPos(getCreatureMaster(sid)).x or getOwnerPos(sid).y ~= getThingPos(getCreatureMaster(sid)).y or isCreature(getCreatureTarget(getCreatureMaster(sid))) then
    		doRegainSpeed(sid)
    		markPos(sid, {x=1,y=1,z=7})
    	return true
    	end
    
    	addEvent(recheck, 120, sid)
    end
    
    function goThere(sid, thepos, skill, target, rept)
    	if not isCreature(sid) then return true end
    	if getCreatureNoMove(sid) or isSleeping(sid) or isParalyze(sid) then return true end            --alterado v2.6
    	if thepos.x ~= getMarkedPos(sid).x or thepos.y ~= getMarkedPos(sid).y then return true end
    	if isCreature(getCreatureTarget(getCreatureMaster(sid))) and target == false or (rept and rept <= 0) then
    		doRegainSpeed(sid)
    		markPos(sid, {x=1,y=1,z=7})
    	return true
    	end	
    
    if (skill == "ride" or skill == "fly") and getDistanceBetween(getThingPos(sid), getMarkedPos(sid)) <= 1 then
    
    	local currentPos = getThingPos(getCreatureMaster(sid))
    	local summonPos = getThingPos(sid)
    	local masterPos = getCreatureLastPosition(sid)
    
    	if (getThingPos(sid).x == getThingPos(getCreatureMaster(sid)).x and getThingPos(sid).y == getThingPos(getCreatureMaster(sid)).y) or (currentPos.x == masterPos.x and currentPos.y == masterPos.y) then
    	recheck(sid, skill, thepos)
    	return true
    	end
    
    	if currentPos.x == thepos.x and currentPos.y == thepos.y then
    		if getDirectionTo(getThingPos(sid), getThingPos(getCreatureMaster(sid))) <= 3 then
    			doRegainSpeed(sid)
    			local ndelay = getNextStepDelay(sid, 0)
    			doTeleportThing(sid, thepos, true)
    			doChangeSpeed(sid, -getCreatureSpeed(sid))
    			markPos(sid, getThingPos(getCreatureMaster(sid)))
    			addEvent(goThere, ndelay, sid, getMarkedPos(sid), skill, target)
    		else
    			doChangeSpeed(sid, - getCreatureSpeed(sid))
    			doRegainSpeed(sid)
    			markPos(sid, getThingPos(getCreatureMaster(sid)))
    			local x = walkTo(sid, getDirectionTo(getThingPos(sid), getMarkedPos(sid)), getMarkedPos(sid), skill == "ride" or skill == "fly")
    			doChangeSpeed(sid, - getCreatureSpeed(sid))
    			addEvent(goThere, x, sid, getMarkedPos(sid), skill, target)
    			end
    	return true
    	else
    		markPos(sid, getThingPos(getCreatureMaster(sid)))
    		doChangeSpeed(sid, - getCreatureSpeed(sid))
    		doRegainSpeed(sid)
    		local ndelay = getNextStepDelay(sid, 0)
    			if getDirectionTo(getThingPos(sid), getMarkedPos(sid)) >= 4 then
    				local x = walkTo(sid, getDirectionTo(getThingPos(sid), getMarkedPos(sid)), getMarkedPos(sid), skill == "ride" or skill == "fly")
    			else
    				doTeleportThing(sid, getPosByDir(getThingPos(sid), getDirectionTo(getThingPos(sid), getMarkedPos(sid))))
    			end
    		doChangeSpeed(sid, - getCreatureSpeed(sid))
    		addEvent(goThere, x and x or ndelay, sid, getMarkedPos(sid), skill, target)
    	return true
    	end
    
    addEvent(recheck, 350, sid, skill, thepos)
    return true
    end
    
    if getThingPos(sid).x == getMarkedPos(sid).x and getThingPos(sid).y == getMarkedPos(sid).y then
    	if isCreature(getCreatureTarget(sid)) then
    	doFaceCreature(sid, getThingPos(getCreatureTarget(sid)))
    	end
    	if skill == "blink" then
    	   doChangeSpeed(sid, - getCreatureSpeed(sid))   --edited blink
    	end
    addEvent(recheck, 350, sid, skill, thepos)
    return true
    end
    
    if (getOwnerPos(sid).x ~= getThingPos(getCreatureMaster(sid)).x or getOwnerPos(sid).y ~= getThingPos(getCreatureMaster(sid)).y) and isCreature(getCreatureTarget(getCreatureMaster(sid))) == false and skill == "move" then
    doRegainSpeed(sid)
    markPos(sid, {x=1,y=1,z=7})
    return true
    end
    
    doRegainSpeed(sid)
    
    local holeid = thepos
    holeid.stackpos = 0
    holeid = getTileThingByPos(holeid).itemid
    
    if getDistanceBetween(getThingPos(sid), getMarkedPos(sid)) <= 1 and (not isWalkable(getPosByDir(getThingPos(sid), getDirectionTo(getThingPos(sid), getMarkedPos(sid))), true, false, false, true) or isInArray(specialabilities["digholes"], holeid)) then
    	if isGhostPokemon(sid) and getPlayerStorageValue(getCreatureMaster(sid), 990) <= 0 then
    		local todir = getDirectionTo(getThingPos(sid), getMarkedPos(sid))
    		if todir <= 3 then
    			doTeleportThing(sid, getMarkedPos(sid), true)
    		else
    			local gotopos = getPosByDir(getThingPos(sid), dirpref[math.random(1, 2)][todir][1][math.random(1, 2)])
    			doTeleportThing(sid, gotopos, true)
    			addEvent(goThere, getNextStepDelay(sid, 0), sid, getMarkedPos(sid), skill, target)
    			return true
    		end
    	end
    doFaceCreature(sid, getMarkedPos(sid))
    addEvent(recheck, 180, sid, skill, thepos)
    doChangeSpeed(sid, - getCreatureSpeed(sid))
    return true
    end	
    
    local ret = 0
    	if getDistanceBetween(getThingPos(sid), getMarkedPos(sid)) <= 1 then
    		ret = walkTo(sid, getDirectionTo(getThingPos(sid), getMarkedPos(sid)), getMarkedPos(sid), skill == "ride" or skill == "fly" or isGhostPokemon(sid))
    		if not tonumber(ret) then
    			doFaceCreature(sid, getMarkedPos(sid))
    			addEvent(recheck, 180, sid, skill, thepos)
    			doChangeSpeed(sid, - getCreatureSpeed(sid))
    		return true
    		end
    	else
    		ret = walkTo(sid, getDirectionTo(getThingPos(sid), getMarkedPos(sid)), getMarkedPos(sid), skill == "ride" or skill == "fly" or not isGhostPokemon(sid))-- and isSightClear(getThingPos(sid), getMarkedPos(sid), false)))
    	end
    
    if not tonumber(ret) then
    doPlayerSendCancel(getCreatureMaster(sid), "Destination is not reachable.")
    markPos(sid, {x=1,y=1,z=7})
    return true
    end
    
    doChangeSpeed(sid, - getCreatureSpeed(sid))
    addEvent(goThere, tonumber(ret), sid, getMarkedPos(sid), skill, target, rept and rept - 1 or 22)
    end

    Fico grato pra todos aqueles que tentarem me ajudar.

  5. Boa noite, quando abro o item editor, aparece esse error  e sempre que adiciono qualquer item, da debug.

     

    >> System.FormatException: A cadeia de caracteres de entrada não estava em um formato correto.
       em System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal)
       em System.Number.ParseUInt32(String value, NumberStyles options, NumberFormatInfo numfmt)
       em System.UInt16.Parse(String s, NumberStyles style, NumberFormatInfo info)
       em OTLib.Server.Items.ItemsXmlReader.Read(String directory, ServerItemList items)

     

  6. Bom dia, tenho um servidor de poketibia, e não consigo editar o mapa com o remeres map editor. Já adicionei os itens.xml e otb na pasta 854, ja adicionei o tibia.otfi com extended true e o assets pra dat2. E quando vou abrir o mapa ele nao sai do 0% e trava. Alguém tem a solução?

    grato.

  • Quem Está Navegando   0 membros estão online

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