Ir para conteúdo

ZoR

Campones
  • Total de itens

    60
  • Registro em

  • Última visita

  • Dias Ganhos

    2

Posts postados por ZoR

  1. Use em outros navegadores sem ser o google: https://dbowarfare.com.br/
    Use caso você não tenha outro navegador: http://35.198.21.167/
    [+] Vocations Free
    Goku
    Vegeta
    Piccolo
    Androide 17
    Gohan
    Trunks
    Cell
    Freeza
    Majin Buu
    Dende
    Kuririn
    Janemba
    Shenron
    Tapion
    [+] Vocation Quest
    Zaiko
    [+] Vocation VIP
    Broly
    Hitt
    [+] Muitas Quest
    [+] Senzu não é infinita
    [+] Vocações balanceadas
    [+] Até lvl 400 rate alta
    [+] Reborn min, 250, max 400
    [+] lvlmax 800
    [+] Cada personagem tem uma passiva unica
    [+] Torneio para se tornar um Rei da Destruição!
    [+] Castle War
    [+] War system
    [+] Invasão do Principe Vegeta e Nappa com os saibamans
    Discord:
    ONLINE
  2. @BlazerX

    " tipo um player usou seu pokemon pela primeira vez  então ele ganha um xp extra, etc."
    acho que na ideia dele seria quando o player colocar o seu primeiro pokemon pra fora daria a xp extra, por isso do onlogin.
    mas minha logica não foi 100% já que era apenas para quando soltar o poke pela 1 vez, daria pra colocar umas linhas de codigo no goback

  3. Boa!
    Mas acho que eu faria por creaturescript!

     

    local xp = 500
    local storage = 1231
    local mensagem = "EXP extra ativo!\nObrigado por iniciar sua jornada aqui em nosso Poketibia!"
    
    function onLogin(cid)
       if ( getPlayerStorageValue(cid, storage) == -1 ) then
               doPlayerAddExperience(cid, xp)
               setPlayerStorageValue(cid, storage, 1)
               doPlayerSendCancel(cid, mensagem)
     	    end
         return true
    end


     

  4. local exp = getPlayerExperience(cid)
    local storage = 123123
    
    function onLogin(cid)
    	if isPlayer(cid) == getPlayerStorageValue(cid, storage) then
    		setPlayerExtraExpRate(cid, exp * 2)
    		doPlayerBroadcastMessage(cid, "Recebeu Experiencia a mais!")
    	end
      return true
    end
    
    <event type="login" name="expextra" script="expextra.lua" />

    @GniusP

  5.                                                                                                     - Discord Para Free-Lancers -
    olá, existem muitos grupos que ensinam pixel art, porem não possui um focado em apenas Compra e Venda de sprites, pensando nisso criei um grupo apenas para compra e venda de sprites.

     
                                                                                                     1564158692628.thumb.png.e1fed0b8826cdee79894dab222442992.png



     

                                                                                                     1564158749339.png.c8832ad8e9d3b104959f1a8ce88240be.png



                                                                           Cargo : FreeLancer = apenas para spriters experientes(perspectiva)
                                                                                                                      https://discord.gg/e5eMTS



                                                                                                            - Discord For Free-Lancers -
    There are many groups that teach pixel art, but there is no focus on just buying and selling sprites, thinking about it I created a group just for buying and selling sprites.

     

     

     

     

    image.png.13978b585ce83c734f5304c2e5515bb5.pngimage.png.2efa4e42d98a1e9a50ca90b2662df262.png

    image.png.a29d4f7d0a3e838a477db933e03c2600.png

    image.png.06f973a58bc62ad314cd3bf7d8f5c6c8.png

    image.png.7e8c2ea3497596efd7fedf91e1c40783.png

  6. 	<item fromid = "15445" toid = "15448" article="a" name="depot chest">
        	<attribute key="containerSize" value="30" />
    	</item>
    
    	<item id = "15445" article="a" name="depot chest">
    	<attribute key="containerSize" value="30" />
    	</item>

    testa um dos dois

  7. 1 hora atrás, kttallan disse:

    Essa parte no OTmod do servidor.

     

    Name: nome da pasta

    @onLoad: function de inicialização do module.

    @onUnload: function de terminação do module.

     

    se não tem nada é = nil

     

    isso é uma function da source do otcliente g_game é que faz a chamada!

     

    As outras questões você tem que estudar o module por completo para poder entender seu funcionamento..

    para complementar essa resposta
    https://github.com/edubart/otclient/wiki/Module-Tutorial

  8. Olá, comecei meus estudos em Otclient, porem tenho muitas duvidas!.

     

    image.png.4813582687f38f586aa919d3a0769aba.png

     

    Oque ser isso? variaveis? porque todas nil?

     

    image.png.ab6d1317406e10a89d45f7fbd01fc9ed.png

     

    @onLoad: init() ?

    @onUnload: terminate() ?

     

    image.thumb.png.1856f29f5aad49ed5f79a9c0b834888f.png

     

    Variaveis com local sem o nil? oque isso muda?

    porque g_game? g_game.IsOnine ? isso é uma função do otclient? como posso tirar essa função da sourcer?

     

     

    Como se inicia um modulo? com local Nome ou Local Nome = nil? ou só a variavel = nil?

    todas ela tem que tem function init()? function onGameConnectionError(message, code) ? de onde saiu onGameConnection?

    sourcer? function CharacterList.terminate() ? 

     

      if charactersWindow then -- se for charactersWindow entao
        characterList = nil -- lista de char = nil?
        charactersWindow:destroy() -- :destroy a lista de char ok!
        charactersWindow = nil -- nil novamente?
      end

    function CharacterList.doLogin() ? de onde tira isso? das funçoes da sourcer?

  9. Spoiler
    
    local function sendPokeToDepot(cid, pokemon)
    local item = doCreateItemEx(14329)
            doItemSetAttribute(item, "poke", pokemon)
            doItemSetAttribute(item, "hp", 1)
             doItemSetAttribute(item, "morta", "no")
     doItemSetAttribute(item, "Icone", "yes")
     doItemSetAttribute(item, "ball", "Icone")    
     doPlayerSendMailByName(getCreatureNameWithProtect(cid), item, 1)
     return true
    end
    local EFFECTS = {
        --[OutfitID] = {Effect}
        ["Magmar"] = 35,   
        ["Shiny Magmar"] = 35,  
        ["Jynx"] = 17,          --alterado v1.5
        ["Shiny Jynx"] = 17, 
        ["Piloswine"] = 205,  --alterado v1.8
        ["Swinub"] = 205,   
    }
    local isBall = {193, 198, 202, 200, 204, 23, 192, 197, 201, 199, 203, 24}
    function onUse(cid, item, frompos, item2, topos)
    if item.itemid == 14329 and not getItemAttribute(item.uid, "poke") then
    doRemoveItem(item.uid)
    sendPokeToDepot(cid, "Shiny Ditto")
    doPlayerSendTextMessage(cid, 20, "Your shiny ditto has been sent to depot.")
    doRemoveItem(item.uid)
    return true
    end
    sendAllPokemonsBarPoke(cid)
    if exhaustion.get(cid, 6666) and exhaustion.get(cid, 6666) > 0 then 
    	return true 
    end 
    
    if getPlayerStorageValue(cid, 17000) or getPlayerStorageValue(cid, 17000) >= 1 or getPlayerStorageValue(cid, 17001) and  getPlayerStorageValue(cid, 17001) >= 1 or getPlayerStorageValue(cid, 63215) and getPlayerStorageValue(cid, 63215) >= 1 or getPlayerStorageValue(cid, 75846) >= 1 or getPlayerStorageValue(cid, 5700) >= 1  then    --alterado v1.9 <<
       return true                                                                                                                        
    end
    if not isPokeball(item.itemid) then
    return true 
    end
    local ballName = getItemAttribute(item.uid, "poke")
    local btype = getPokeballType(item.itemid)--getItemAttribute(item.uid, "poke")
    local usando = pokeballs[btype].use
    -- Smeargle Clean
    if ballName == "Smeargle" and not getItemAttribute(item.uid, "sktsfdbg") then
    for x=1, 8 do
    if getItemAttribute(item.uid, "skt"..x) then
    doItemEraseAttribute(item.uid, "skt"..x)
    end
    end
    doItemSetAttribute(item.uid, "sktsfdbg", "true")
    end
    -----------------
    local effect = pokeballs[btype].effect
        if not effect then
            effect = 21
        end
        
    unLock(item.uid) --alterado v1.8
    if item.itemid == usando then                            
    
        if getPlayerStorageValue(cid, 990) and getPlayerStorageValue(cid, 990) == 1 then -- GYM
            doPlayerSendCancel(cid, "You can't return your pokemon during gym battles.")
        return true
        end
        if getPlayerStorageValue(getCreatureSummons(cid)[1],17451) and getPlayerStorageValue(getCreatureSummons(cid)[1],17451) >= 1 then
        return true
        end
        if getPlayerStorageValue(cid, 45765) > 0 then -- GYM
            doPlayerSendCancel(cid, "You can't do it while mewtwo is helping you.")
        return true
        end
        if #getCreatureSummons(cid) > 1 and getPlayerStorageValue(cid, 212124) <= 0 then     --alterado v1.6
           if getPlayerStorageValue(cid, 637501) == -2 or getPlayerStorageValue(cid, 637501) >= 1 then  
              BackTeam(cid)       
           end
        end   
        if #getCreatureSummons(cid) > 1 and getPlayerStorageValue(cid, 45376) > 0 then
        UnownBack(cid)
        end
            if #getCreatureSummons(cid) > 0 and getPlayerStorageValue(cid, 45765) > 0 then
        cardReturn(cid)
        setPlayerStorageValue(cid, 45765, -1)
        end
        if #getCreatureSummons(cid) == 2 and getPlayerStorageValue(cid, 212124) >= 1 then
           doPlayerSendCancel(cid, "You can't do that while is controling a mind")
           return true     --alterado v1.5
        end
        if #getCreatureSummons(cid) <= 0 then
            if isInArray(pokeballs[btype].all, item.itemid) then
                doTransformItem(item.uid, pokeballs[btype].off)
                doItemSetAttribute(item.uid, "hp", 0)
                doPlayerSendCancel(cid, "This pokemon is fainted.")
                return true
            end
        end 
    
        local cd = getCD(item.uid, "blink", 30)
        if cd > 0 then
           setCD(item.uid, "blink", 0)
        end
        
        local z = getCreatureSummons(cid)[1] 
    
        if getCreatureCondition(z, CONDITION_INVISIBLE) and not isGhostPokemon(z) then
           return true
        end
        if ballName:find("Mega ") then
            local normalPoke = megaEvolutions[getItemAttribute(item.uid, "megaStone")][1]
            if normalPoke then
                doItemSetAttribute(item.uid, "poke", normalPoke)
                ballName = normalPoke
            end
        end    
        doReturnPokemon(cid, z, item, effect)
    elseif item.itemid == pokeballs[btype].on then 
    
        if item.uid ~= getPlayerSlotItem(cid, CONST_SLOT_FEET).uid then
            doPlayerSendCancel(cid, "You must put your pokeball in the correct place!")
        return TRUE
        end 
    
        local thishp = getItemAttribute(item.uid, "hp") 
    
        if thishp <= 0 then
            if isInArray(pokeballs[btype].all, item.itemid) then
                doTransformItem(item.uid, pokeballs[btype].off)
                doItemSetAttribute(item.uid, "hp", 0)
                doPlayerSendCancel(cid, "This pokemon is fainted.")
                return true
            end
        end 
    
        local pokemon = getItemAttribute(item.uid, "poke") 
    
        if not pokes[pokemon] then
        return true
        end
        
        if pokemon:find("Mega ") then
            local normalPoke = megaEvolutions[getItemAttribute(item.uid, "megaStone")][1]
            if normalPoke then
                doItemSetAttribute(item.uid, "poke", normalPoke)
                pokemon = normalPoke
            end
        end    if pokemon:find("Mega ") then
            local normalPoke = megaEvolutions[getItemAttribute(item.uid, "megaStone")][1]
            if normalPoke then
                doItemSetAttribute(item.uid, "poke", normalPoke)
                pokemon = normalPoke
            end
        end 
    
    ----------------------- Sistema de nao poder carregar mais que 3 pokes lvl baixo e + q 1 poke de lvl medio/alto ---------------------------------
    if not isInArray({5, 6}, getPlayerGroupId(cid)) and getPlayerStorageValue(cid, 45765) ~= 1 then
       local isInLimit = false
       local lowCount = 0
       
       local dittoCount = 0
       local shinyDittoCount = 0
       
       local balls = getPokeballsInContainer(getPlayerSlotItem(cid, 3).uid)
       local lowPokes = {"Rattata", "Caterpie", "Weedle", "Oddish", "Pidgey", "Paras", "Poliwag", "Bellsprout", "Magikarp", "Hoppip", "Sunkern"}
       if #balls >= 1 then
          for _, uid in ipairs(balls) do
              local nome = getItemAttribute(uid, "poke")
              
              if getItemAttribute(uid, "ehditto") and getItemAttribute(uid, "ehditto") == 1 then
                dittoCount = dittoCount + 1
              elseif getItemAttribute(uid, "ehditto") and getItemAttribute(uid, "ehditto") == 2 then
                shinyDittoCount = shinyDittoCount + 1
                
                
              end
              
              if not isInArray(lowPokes, pokemon) and nome == pokemon then
                 return doPlayerSendTextMessage(cid, 27, "Sorry, but you can't carry two pokemons equals!")
              else
                 if nome == pokemon then
                    lowCount = lowCount + 1
                 end
              end 
    
          end
       end 
    
    if getItemAttribute(item.uid, "ehditto") and getItemAttribute(item.uid, "ehditto") == 1 then
        if dittoCount > 1 then
            return doPlayerSendTextMessage(cid, 27, "Sorry, but you can't carry more than one ditto!")
        end
    elseif getItemAttribute(item.uid, "ehditto") and getItemAttribute(item.uid, "ehditto") == 2 then
        if shinyDittoCount > 1 then
            return doPlayerSendTextMessage(cid, 27, "Sorry, but you can't carry more than one shiny ditto!")
        end
    end
    if lowCount >= 3 then
       return doPlayerSendTextMessage(cid, 27, "Sorry, but you can't carry more than three pokemons equals of low level!")
    end   
    end
    --------------------------------------------------------------------------------------------------------------------------------------------------- 
    
        local x = pokes[pokemon]
        local boost = getItemAttribute(item.uid, "boost") or 0 
    
        if getPlayerLevel(cid) < (x.level+boost) then
           doPlayerSendCancel(cid, "You need level "..(x.level+boost).." to use this pokemon.")
           return true
        end
        
        ---------------------------- Sistema pokes de clan --------------------------------------
        local shinysClan = {
        ["Shiny Fearow"] = {4, "Wingeon"},
        ["Shiny Flareon"] = {1, "Volcanic"},
        ["Shiny Vaporeon"] = {2, "Seavel"}, 
        ["Shiny Jolteon"] = {9, "Raibolt"},
        ["Shiny Hypno"] = {7, "Psycraft"},           
        ["Shiny Golem"] = {3, "Orebound"},
        ["Shiny Vileplume"] = {8, "Naturia"},
        ["Shiny Nidoking"] = {5, "Malefic"},
        ["Shiny Hitmontop"] = {6, "Gardestrike"},   --alterado v1.4
        }
        
        if shinysClan[pokemon] and (getPlayerGroupId(cid) < 4 or getPlayerGroupId(cid) > 6) and not getItemAttribute(item.uid, "ehditto") then  --alterado v1.9 \/
           if getPlayerClanNum(cid) ~= shinysClan[pokemon][1] then
              doPlayerSendCancel(cid, "You need be a member of the clan "..shinysClan[pokemon][2].." to use this pokemon!")
              return true   
           elseif getPlayerClanRank(cid) ~= 5 then
              doPlayerSendCancel(cid, "You need be atleast rank 5 to use this pokemon!")
              return true
           end
        end
        --------------------------------------------------------------------------------------
        doSummonMonster(cid, pokemon) 
    
        local pk = getCreatureSummons(cid)[1]
        if not isCreature(pk) then return true end
        
        ------------------------passiva hitmonchan------------------------------
        if isSummon(pk) then                                                  --alterado v1.8 \/
           if pokemon == "Shiny Hitmonchan" or pokemon == "Hitmonchan" then
              if not getItemAttribute(item.uid, "hands") then
                 doSetItemAttribute(item.uid, "hands", 0)
              end
              local hands = getItemAttribute(item.uid, "hands")
              doSetCreatureOutfit(pk, {lookType = hitmonchans[pokemon][hands].out}, -1)
           end
        end
        -------------------------------------------------------------------------
        ---------movement magmar, jynx-------------
        if isCreature(pk) and EFFECTS[getCreatureNameWithProtect(pk)] then             
           markPosEff(pk, getThingPos(pk))
           sendMovementEffect(pk, EFFECTS[getCreatureNameWithProtect(pk)], getThingPos(pk))  
        end
        --------------------------------------------------------------------------       
    
        if isGhostPokemon(pk) then doTeleportThing(pk, getPosByDir(getThingPos(cid), math.random(0, 7)), false) end 
    
        doCreatureSetLookDir(pk, 2) 
    
            adjustStatus(pk, item.uid, true, true, true)
        doRegenerateWithY(getCreatureMaster(pk), pk)
        doAddPokemonInOwnList(cid, pokemon)
    setPlayerStorageValue(pk, 17451, 0)
        doTransformItem(item.uid, pokeballs[btype].use) 
    
        local pokename = getPokeName(pk) --alterado v1.7  
    
        local mgo = gobackmsgs[math.random(1, #gobackmsgs)].go:gsub("doka", pokename)
        doCreatureSay(cid, mgo, TALKTYPE_MONSTER)
        
        doSendMagicEffect(getCreaturePosition(pk), effect)
        
        if useOTClient then
           doPlayerSendCancel(cid, '12//,show') --alterado v1.7
        end
        
    else 
    
        doPlayerSendCancel(cid, "This pokemon is fainted.") 
    
    end 
    
        if useKpdoDlls then
            doUpdateMoves(cid)
    end
    if useOTClient then
    onPokeHealthChange(cid)
        end
    return true
    end

     

    @Taiger

  10. local tempo = 60 -- tempo em segundos.
    local effect = 638 -- effect no player, caso queira apenas 1, basta remover os outros numeros.
         
    local ml = 70 -- quantos ira aumentar o skill de ML
    local skillsword = 25 -- quantos ira aumentar o skill de Sword
    local skillaxe = 25 -- quantos ira aumentar o skill de Axe
    local skillclub = 25 -- quantos ira aumentar o skill de Club
    local skilldistance = 25 -- quantos ira aumentar o skill de Distance
    local skillshield = 25 -- quantos ira aumentar o skill de Shield
    local health = 1300 -- A cada 1 segundo quantos aumentar de vida
    local combat = createCombatObject()
    setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, 0)
         
    local condition = createConditionObject(CONDITION_ATTRIBUTES)
    setConditionParam(condition, CONDITION_PARAM_TICKS, tempo*1000)
    setConditionParam(condition, CONDITION_PARAM_STAT_MAGICLEVEL, ml)
    setConditionParam(condition, CONDITION_PARAM_SKILL_SWORD, skillsword)
    setConditionParam(condition, CONDITION_PARAM_SKILL_AXE, skillaxe)
    setConditionParam(condition, CONDITION_PARAM_SKILL_CLUB, skillclub)
    setConditionParam(condition, CONDITION_PARAM_SKILL_DISTANCE, skilldistance)
    setConditionParam(condition, CONDITION_PARAM_SKILL_SHIELD, skillshield)
    setConditionParam(condition, CONDITION_PARAM_OUTFIT, outfit)
    setCombatCondition(combat, condition)
         
    local condition = createConditionObject(CONDITION_HASTE)
    setConditionParam(condition, CONDITION_PARAM_SPEED, 250)
    setConditionParam(condition, CONDITION_PARAM_TICKS, tempo*1000)
    setConditionParam(condition, CONDITION_PARAM_BUFF, TRUE)
    setCombatCondition(combat, condition)
         
    local condition = createConditionObject(CONDITION_REGENERATION)
    setConditionParam(condition, CONDITION_PARAM_SUBID, 1)
    setConditionParam(condition, CONDITION_PARAM_BUFF, TRUE)
    setConditionParam(condition, CONDITION_PARAM_TICKS, tempo*1000)
    setConditionParam(condition, CONDITION_PARAM_HEALTHGAIN, health)
    setConditionParam(condition, CONDITION_PARAM_HEALTHTICKS, 1000)
    setCombatCondition(combat, condition)
                
    local function magicEffect638(tempo2,tempo3,cid)
    if (isCreature(cid)) then
        if getPlayerStorageValue(cid, 102053) > 0 and getCreatureCondition(cid, CONDITION_REGENERATION, 1) then
            for i=1, #effect do
            local position = {x=getPlayerPosition(cid).x+1, y=getPlayerPosition(cid).y, z=getPlayerPosition(cid).z}
    doSendMagicEffect(position, effect[i])  
            end
        end
    end
    end
                      
    function onCastSpell(cid, var)
    if getPlayerStorageValue(cid, 102053) ~= 1 or getCreatureCondition(cid, CONDITION_REGENERATION, 1) == false then
        doCombat(cid, combat, var)
    doPlayerSendTextMessage(cid,27,'jutsu esta ativado.') 
        doPlayerSay(cid, '...', TALKTYPE_ORANGE_1)
        tempo2 = 0
        while (tempo2 ~= (tempo*1000)) do
            addEvent(magicEffect638, tempo2, tempo2, tempo*1000, cid)
            tempo2 = tempo2 + 300
        end
        setPlayerStorageValue(cid, 102053,1) -- storage verifica transformado, quando = 1 player esta transformado.
            doCreatureSay(cid, "Susanoo", TALKTYPE_MONSTER)
    else
        doPlayerSendCancel(cid, "Sorry, you are transformed.")
    end
    end

    @awfaier

  11. local ring = {
    
    	outfit = 123, -- outfit que ele ganha
    	efeito = 1, -- efeito que fica nele
    	iditem = 123, -- id do ring
    	tempo = 1, -- tempo que ele fica transformado
    	waittime = 1.5, -- tempo que pode usar dnv
    	storage = 12345, -- não mexa
    }
    
    function onUse(cid, item, fromPosition, itemEx, toPosition)
    	addEvent(function()
    if exhaustion.check(cid, storage) then
        doPlayerSendCancel(cid, "Espere um pouco")
    
    	elseif ring.iditem == ring.iditem then
    		doPlayerAddOutfit(cid, ring.outfit)
    		doPlayerRemoveOutfit(cid, ring.tempo, ring.outfit)
    		  return false
    		end
    	end, ring.tempo)

    não sei bem se irá funcionar

  12. local pos = {x = 0, y = 0, z = 0} -- pos do item boost
    local pos2 = {x = 0, y = 0, z = 0} -- pos da escada
    local itemid = {id = id da alavanca, item = numero do id do item, escada = numero da id da escada} -- Número do item
    
    function onUse(cid, item, fromPosition, itemEx, pos)
    
    	if itemid.id == getCreaturePosition(uid, pos[x.y.z], itemid.item) then
    		setItemName(uid, getCreaturePosition(uid, pos2[x.y.z]), itemid.escada)
    		doPlayerSendTextMessage(cid, "Foi criado uma escada, ela dura 20 segundos")
    	else
    		doPlayerSendTextMessage(cid, "Não pode ser criado a escada pois o item nao é esse")
    
    	for tempo = 1, 20, 1 do
    			doPlayerSendTextMessage(cid, "resta " .. tempo + 1)
    		if tempo == 20 then
    			doRemoveItem(uid, pos2[x.y.z])
    		end
    	end
      end
    end

    testa ae 

    corrigido

  13. local tapete = {
    [13495] = 13496, -- TAPETE DESMONTADO
    [13496] = 13495 -- TAPETE MONTADO
    }
    function onUse(cid, item, fromPosition, itemEx, toPosition)
    if(not tapete[item.itemid]) then
    return false
    end
    
    if getHouseOwner(getHouseInfo(getPlayerPosition(cid))) == getPlayerGUID(cid) then
    doTransformItem(item.uid, tapete[item.itemid])
    doDecayItem(item.uid)
    end
    end

    na sua sourcer não possui a getTileHouseInfo então coloquei uma função para tentar quebrar o galho.

    tente colocar a função getTileHouseInfo na sourcer para funcionar!

    @vinicius231

     

  • Quem Está Navegando   0 membros estão online

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