Ir para conteúdo

BlazerX

Campones
  • Total de itens

    90
  • Registro em

  • Última visita

  • Dias Ganhos

    11

Posts postados por BlazerX

  1. Cada hora o "dono" fala uma bosta diferente,

    to ligado que essa base é recente, ele fala que é faz tempo isso só para tentar enganar, 

    assim como da pra perceber que ele fala uma coisa e depois outra, falou que nao é base aquilo e depois afirmou ser,

    mas ele fala ser PDA só pq a grande maioria nao gosta do servidores de PDA,

    essa base é reconhecida como poketibia xerox e pronto e é recente, não faz nem 1 mes.

  2. Deu certo?

     

    TwyIHBJ.png


    Complemento:

    Spoiler

     

    Os array que são chamados de tabelas em lua não necessita de colocar índice dessa forma falado pelo amigo acima,

    muitos quando colocam ou não sabem que não é necessário e pensam que sem isso o código não vai funcionar ou

    colocam para ter uma noção do tamanho da tabela ou para outros afins, também em lua as tabelas não começam do zero

    e sim do índice 1, diferente de outras linguagens que começam do zero.

     

     

  3. Não sei o porque você deu créditos a si mesmo, oq vc fez nessa base? Eu li que você fez o inventory no client,

    mas isso você acha em qualquer base de poketibia, agora dar créditos a si mesmo por algo que outros fazem é ridículo,

    teve o que mereceu ja que não tem a capacidade de gerenciar um servidor e fazer um melhor mesmo que uma outra

    pessoa te roube, veja o Poke Master X, roubaram ele, mas ele não deixou que isso desanimasse ele, ele foi lá com sua

    capacidade de fazer o melhor que outros nao tem, porque você nao vai lá fazer parte do time do programador de 8 linguagens ?

  4. 30 minutos atrás, Poke X Ice disse:

    desculpa acabei nem lendo tudo , estou muito estressado com problemas pessoais acabei nem percebendo.

     

    acabou de da um erro

      Ocultar conteúdo


    WARNING: attempt to add a null child into a UIWidget
    stack traceback:
        [C]: in function 'createWidget'
        /game_card/card.lua:67: in function 'refreshPokeAndInsignias'
        /game_card/card.lua:16: in function 'callback'
        /gamelib/protocolgame.lua:17: in function </gamelib/protocolgame.lua:14>
    at:
        [C++]: UIWidget::addChild
    ERROR: failed to create widget from style 'BoxPokemon': unable to create widget of type 'UIItem'
    ERROR: protected lua call failed: LUA ERROR:
    /game_card/card.lua:69: attempt to index local 'box' (a nil value)
    stack traceback:
        [C]: ?
        /game_card/card.lua:69: in function 'refreshPokeAndInsignias'
        /game_card/card.lua:16: in function 'callback'
        /gamelib/protocolgame.lua:17: in function </gamelib/protocolgame.lua:14>

    card.lua

      Ocultar conteúdo

    local opcodeCard = 71
    local insignias  = { 'Boulder Badge', 'Cascade Badge', 'Thunder Badge', 'Rainbow Badge', 'Marsh Badge', 'Soul Badge', 'Volcano Badge', 'Earth Badge' }


    local winCard
    local lblTreinador
    local lblLevel
    local outfit
    local boxPokemons
    local boxInsignias 

    function init()    
        connect(g_game, { onGameEnd = onGameEnd })
        
        ProtocolGame.registerExtendedOpcode(opcodeCard, function(protocol, opcode, buffer) 
            refreshPokeAndInsignias(buffer)
        end)
        
        winCard = g_ui.displayUI('card')
        winCard:move(70, 80)
        winCard:hide()
        
        g_keyboard.bindKeyPress('Ctrl+Shift+Q', toggle)
        
        lblTreinador = winCard:getChildById('lblTreinador')
        lblLevel     = winCard:getChildById('lblLevel')
        outfit       = winCard:getChildById('outfit')
        boxPokemons  = winCard:getChildById('boxPokemons')
        boxInsignias = winCard:getChildById('boxInsignias')
    end

    function terminate()
        disconnect(g_game, { onGameEnd = onGameEnd })
        ProtocolGame.unregisterExtendedOpcode(opcodeCard)
        winCard:destroy()
        g_keyboard.unbindKeyPress('Ctrl+Shift+Q')
    end

    function refresh()
        local player = g_game.getLocalPlayer()
        lblTreinador:setText(player:getName())
        outfit:setOutfit(player:getOutfit())
    end

    function onGameEnd()
        winCard:hide()
    end

    function toggle()
        if ( winCard:isVisible() ) then
          addEvent(function() g_effects.fadeOut(winCard, 200) end)
          scheduleEvent(function() winCard:hide() end, 220)
        else
          refresh()
          addEvent(function() winCard:show() g_effects.fadeIn(winCard, 200) end)
          g_game.getProtocolGame():sendExtendedOpcode(opcodeCard, "poke")
          g_game.getProtocolGame():sendExtendedOpcode(opcodeCard, "badges")
        end
    end

    function refreshPokeAndInsignias(value)
        local action = value:explode('-')
        if ( action[1] == 'poke' ) then
            local pokemon = action[2]:explode(',')
            boxPokemons:destroyChildren()
            for i = 1, 6 do
               local box = g_ui.createWidget('BoxPokemon', boxPokemons)
               if ( i <= #pokemon ) then
                 box:setItemId(tonumber(pokemon))
                 box:setTooltip(pokemon)
               end
            end
        elseif ( action[1] == 'badges' ) then
            local badges = action[2]:explode(',')
            boxInsignias:destroyChildren()
            for i = 1, #insignias do
              local uiInsignias = g_ui.createWidget('Insignias', boxInsignias)
              if ( tonumber(badges) == 1 ) then
                uiInsignias:setImageSource('insignias/'..insignias..'_on')    
              else
                uiInsignias:setImageSource('insignias/'..insignias..'_off')
              end
              uiInsignias:setTooltip(insignias)
            end
        end
    end

     

     

    TwyIHBJ.png


    Por favor leia atentamente o que eu escrevi e quando for cópiar codigo daqui do fórum atente-se para os caracteres especiai,

    eu percebi o erro que você teve, porem como você está estressado não atentou-se oq eu expliquei, refaça novamente.

     

  5. 45 minutos atrás, Poke X Ice disse:

    Estou com um simples, não está aparecendo o icone.

     

     

    para abrir esse cardimage.thumb.png.32d722772aa09933f3df525520b5a117.png

    TwyIHBJ.png


    Eu ainda deixei um comentário: 

    Para abrir o módulo pressione a tecla Ctrl+Shift+Q

    Mas vou quebrar o seu galho kkk

    Spoiler
    
    -- Coloque dentro da função init
    modules.client_topmenu.addRightGameToggleButton('cardButton', tr('Trainer Card'), 'nome_da_imagem_do_icone', toggle)
    -- Coloque o nome da imagem do icone antes do toggle

     

     

  6. Vamos lá então!

    No arquivo trainercard.lua mude a estrutura que envia o nome do pokemon por esse trecho de código:

    for indice, ball in pairs(getPlayerPokeballs(cid)) do
    	value = getItemInfo(fotos[getItemAttribute(ball.uid, "poke")]).clientId..','..value
    end

    No módulo game_card abra o arquivo card.otui e procure por BoxPokemon e substitua o trecho por esse:

    BoxPokemon < UIItem
      image-source: ui/box
      image-offset: -4 0
      icon-size: 46 46
      icon-offset: 0 2

    No mesmo módulo abra o arquivo card.lua e procure por box:setIcon e substitua o trecho por esse:

    box:setItemId(tonumber(pokemon[i]))

    Só isso mesmo, espero que entenda.

     

  7. 14 minutos atrás, Poke X Ice disse:

    Ótimo conteúdo, Rep ++.

     

    não teria como fazer ele enviar portrait do pokémon ? 

    Tem como fazer sim, você poderia me dizer como pega a portrait do seu servidor?
    No servidor do DarkXPoke eu sei que é getPortraitClientID, porem eu não sei como é no seu.

  8. Trainer Card

    Fala galera do Xtibia, vim trazer mais uma contribuição para a comunidade, é um módulo para otclient básico porém legal.

     

    TwyIHBJ.png

     

    Como funciona?

    O Trainer Card vai mostrar digamos algumas informações do seu personagem, 
    você pode adicionar mais informações a esse card, vai da criatividade de cada um deixar bem funcional.

     

    TwyIHBJ.png

     

    Script do servidor:
    Crique um arquivo na pasta do seu servidor em data/creaturescript/ e coloque o nome de trainercard.lua

    Spoiler
    
    local opcodeCard = 71
    
    function onExtendedOpcode(cid, opcode, buffer)
    	if opcode == opcodeCard then
    		local value = ''
    		if ( buffer == 'poke' ) then
    			for indice, ball in pairs(getPlayerPokeballs(cid)) do
    				value = getItemAttribute(ball.uid, "poke")..','..value
    			end
    		elseif ( buffer == 'badges' ) then
    			local leaderGym = {"Brock", "Misty", "Surge", "Erika", "Sabrina", "Koga", "Blaine", "Giovanni"}
    			for i = 1, #leaderGym do
    				value = getPlayerBadgeOfLeader(cid, leaderGym[i])..','..value
    			end
    		end
    		doSendPlayerExtendedOpcode(cid, 71, buffer..'-'..value)
    	end
    end

     

     

    Coloque a seguinte tag no arquivo do creaturescripts.xml:

    <event type="extendedopcode" name="TrainerCard" event="script" value="trainercard.lua"/>

    Registre o evento no arquivo onLogin.lua onde se encontra na mesma pasta:

    registerCreatureEvent(cid, "TrainerCard")

    TwyIHBJ.png

     

    Módulo otClient:
    Coloque o módulo na pasta do seu otClient em modules/ 
    Para abrir o módulo pressione a tecla Ctrl+Shift+Q

     

    TwyIHBJ.png

     

    Imagem do módulo:
    PXG6v9p.png

     

    TwyIHBJ.png

     

    A base que foi utilizada do servidor foi a DarkXPoke.
    O meu módulo tem mais informações do que o da imagem, porém eu dei uma mexida,

    o módulo que o Gengo me passou do Trainer Card que eu utilizo está em um nivel totalmente

    diferente do apresentado nesse tutorial, eu só modifiquei para compartilhar com a galera.

    Espero que tenham gostado e faça um bom proveito do módulo, use sua criatividade para fazer de um belo sistema funcional.

     

    TwyIHBJ.png

     

    Créditos:

    Spoiler

    Créditos vai ao Gengo que fez a um tempo atras para mim e com a permissão dele estou postando.

     

  9. Segue o script, a configuração é alto explicativo,  mas se tiver alguma duvida é só falar.
     

    Spoiler
    
    local ring = {
    	storage  = 55691,
    	timer    = 10,
    	outfit   = 428
    }
    
    function onUse(cid, item, fromPosition, itemEx, toPosition)
    	
      local storageTimer = os.time() - getPlayerStorageValue(cid, ring.storage)
      
      if storageTimer >= ring.timer then	
        setPlayerStorageValue(cid, ring.storage, os.time())
    	doSetCreatureOutfit(cid, { lookType = ring.outfit}, ring.timer*1000)
      else
        doPlayerSendCancel(cid, "Aguarde "..(ring.timer-storageTimer).." segundos para usar novamente.")
      end
    	
      return true
    end

     

     

  10. Segue o script e veja se resolve esses erros.
    Obs: Atente-se na hora de pegar o código aqui no editor de texto do fórum, pois está vindo com caracteres especiais.

     

    TwyIHBJ.png

     

    Spoiler
    
    local combats = {                        
    [PSYCHICDAMAGE] = {cor = COLOR_PSYCHIC},
    [GRASSDAMAGE] = {cor = COLOR_GRASS},
    [POISONEDDAMAGE] = {cor = COLOR_GRASS},
    [FIREDAMAGE] = {cor = COLOR_FIRE2},                         
    [BURNEDDAMAGE] = {cor = COLOR_BURN},
    [WATERDAMAGE] = {cor = COLOR_WATER},
    [ICEDAMAGE] = {cor = COLOR_ICE},
    [NORMALDAMAGE] = {cor = COLOR_NORMAL},
    [FLYDAMAGE] = {cor = COLOR_FLYING},           
    [GHOSTDAMAGE] = {cor = COLOR_GHOST},
    [GROUNDDAMAGE] = {cor = COLOR_GROUND},
    [ELECTRICDAMAGE] = {cor = COLOR_ELECTRIC},
    [ROCKDAMAGE] = {cor = COLOR_ROCK},
    [BUGDAMAGE] = {cor = COLOR_BUG},
    [FIGHTDAMAGE] = {cor = COLOR_FIGHTING},
    [DRAGONDAMAGE] = {cor = COLOR_DRAGON},
    [POISONDAMAGE] = {cor = COLOR_POISON},
    [DARKDAMAGE] = {cor = COLOR_DARK},               
    [STEELDAMAGE] = {cor = COLOR_STEEL},
    [MIRACLEDAMAGE] = {cor = COLOR_PSYCHIC},  
    [DARK_EYEDAMAGE] = {cor = COLOR_GHOST},
    [SEED_BOMBDAMAGE] = {cor = COLOR_GRASS},
    [SACREDDAMAGE] = {cor = COLOR_FIRE2}, 
    [MUDBOMBDAMAGE] = {cor = COLOR_GROUND}, --alterado v1.9
    }
    
    local function sendPlayerDmgMsg(cid, text)
    	if not isCreature(cid) then return true end
    	doPlayerSendTextMessage(cid, MESSAGE_STATUS_DEFAULT, text)
    end
    
    local races = {
    [4] = {cor = COLOR_FIRE2},
    [6] = {cor = COLOR_WATER},
    [7] = {cor = COLOR_NORMAL},
    [8] = {cor = COLOR_FIRE2},
    [9] = {cor = COLOR_FIGHTING},
    [10] = {cor = COLOR_FLYING},
    [11] = {cor = COLOR_GRASS},
    [12] = {cor = COLOR_POISON},
    [13] = {cor = COLOR_ELECTRIC},
    [14] = {cor = COLOR_GROUND},
    [15] = {cor = COLOR_PSYCHIC},
    [16] = {cor = COLOR_ROCK},
    [17] = {cor = COLOR_ICE},
    [18] = {cor = COLOR_BUG},
    [19] = {cor = COLOR_DRAGON},
    [20] = {cor = COLOR_GHOST},
    [21] = {cor = COLOR_STEEL},
    [22] = {cor = COLOR_DARK},
    [1] = {cor = 180},
    [2] = {cor = 180},
    [3] = {cor = 180},
    [5] = {cor = 180},
    }
    
    local damages = {GROUNDDAMAGE, ELECTRICDAMAGE, ROCKDAMAGE, FLYDAMAGE, BUGDAMAGE, FIGHTINGDAMAGE, DRAGONDAMAGE, POISONDAMAGE, DARKDAMAGE, STEELDAMAGE}
    local fixdmgs = {PSYCHICDAMAGE, COMBAT_PHYSICALDAMAGE, GRASSDAMAGE, FIREDAMAGE, WATERDAMAGE, ICEDAMAGE, NORMALDAMAGE, GHOSTDAMAGE}
    local ignored = {POISONEDDAMAGE, BURNEDDAMAGE}                
    local cannotkill = {BURNEDDAMAGE, POISONEDDAMAGE}
    
    function onStatsChange(cid, attacker, type, combat, value)
    
    if combat == FLYSYSTEMDAMAGE then return false end
    if isPlayer(cid) and getCreatureOutfit(cid).lookType == 814 then return false end -- TV
    
    if not isCreature(attacker) then  
    	if not isInArray(fixdamages, combat) and combats[combat] then
    		doSendAnimatedText(getThingPos(cid), value, combats[combat].cor)
    	end
    return true
    end
    
    local damageCombat = combat
    --------------------------------------------------
    if type == STATSCHANGE_HEALTHGAIN then
    	if cid == attacker then
    	return true
    	end
    	if isSummon(cid) and isSummon(attacker) and canAttackOther(cid, attacker) == "Cant" then
    	return false
    	end
    return true
    end
    --------------------------------------------------
    if isMonster(cid) then
    local valor = value
       if not pokes[getCreatureName(cid)] and damageCombat == COMBAT_PHYSICALDAMAGE then
          valor = getOffense(attacker) * playerDamageReduction
          doCreatureAddHealth(cid, -math.abs(valor), 3, races[7].cor)                       
          return false
       elseif not pokes[getCreatureName(cid)] and damageCombat ~= COMBAT_PHYSICALDAMAGE then
          doCreatureAddHealth(cid, -math.abs(valor), 3, combats[damageCombat].cor)
          return false
       end
    end
    --------------------------------------------------
    if isPlayer(attacker) then
    
    	local valor = value
    	if valor > getCreatureHealth(cid) then
    		valor = getCreatureHealth(cid)
    	end
    
    	if combat == COMBAT_PHYSICALDAMAGE then
    	return false
    	end
    
    	if combat == PHYSICALDAMAGE then
    		   if isSummon(cid) and isPlayer(getCreatureMaster(cid))then
    	   local TierEle = {
    [78] = {chance = Elemen1},
    [79] = {chance = Elemen2},
    [80] = {chance = Elemen3},
    [81] = {chance = Elemen4},
    [82] = {chance = Elemen5},
    [83] = {chance = Elemen6},
    [84] = {chance = Elemen7},
    }
    local Tier = getItemAttribute(getPlayerSlotItem(getCreatureMaster(cid), 8).uid, "heldx")
    if Tier and Tier > 77 and Tier < 85 and getPlayerStorageValue(cid, 22666) ~= 5 then
    if math.random(1,100) <= TierEle[Tier].chance then
    docastspell(cid, "Elemental", -1000, -5000)
    setPlayerStorageValue(cid, 22666, 5)
    addEvent(function() setPlayerStorageValue(cid, 22666, 0) end, 1 * 1800)
    end
    end	 
    end
    	if isSummon(cid) and isPlayer(getCreatureMaster(cid)) and getItemAttribute(getPlayerSlotItem(getCreatureMaster(cid), 8).uid, "heldy") and getItemAttribute(getPlayerSlotItem(getCreatureMaster(cid), 8).uid, "heldy") == 22 then
    return true
    else   
       doSendMagicEffect(getThingPos(cid), 3)  
    end		
    	doSendAnimatedText(getThingPos(cid), valor, races[getMonsterInfo(getCreatureName(cid)).race].cor)
    	end
    
    	if combats[damageCombat] and not isInArray(fixdmgs, damageCombat) then
    	doSendAnimatedText(getThingPos(cid), valor, combats[damageCombat].cor)
    	end
    
    	if #getCreatureSummons(attacker) >= 1 and not isInArray({POISONEDDAMAGE, BURNEDDAMAGE}, combat) then
    		doPlayerSendTextMessage(attacker, MESSAGE_STATUS_DEFAULT, "Your "..getPokeName(getCreatureSummons(attacker)[1]).." dealt "..valor.." damage to "..getSomeoneDescription(cid)..".")
    	end
    
    return true
    end
    --------------------------------------------------
    if isPlayer(cid) and #getCreatureSummons(cid) >= 1 and type == STATSCHANGE_HEALTHLOSS then
    return false                                                                           
    end
    --------------------------------------------------
    if isPlayer(cid) and #getCreatureSummons(cid) <= 0 and type == STATSCHANGE_HEALTHLOSS then
    
    if isSummon(attacker) or isPlayer(attacker) then
       if canAttackOther(cid, attacker) == "Cant" then return false end
    end
    
    	local valor = 0
    		if combat == COMBAT_PHYSICALDAMAGE then
    			valor = getOffense(attacker)
    		else
    			valor = getSpecialAttack(attacker)
    		end
    
    	valor = valor * playerDamageReduction
    	valor = valor * math.random(83, 117) / 100
    
    	if valor >= getCreatureHealth(cid) then
    		valor = getCreatureHealth(cid)
    	end
    
    	valor = math.floor(valor)
    
        if valor >= getCreatureHealth(cid) then
           if getPlayerStorageValue(cid, 6598754) >= 1 or getPlayerStorageValue(cid, 6598755) >= 1 then
              setPlayerStorageValue(cid, 6598754, -1)
              setPlayerStorageValue(cid, 6598755, -1)
              doRemoveCondition(cid, CONDITION_OUTFIT)             
              doTeleportThing(cid, posBackPVP, false)
              doCreatureAddHealth(cid, getCreatureMaxHealth(cid))
              return false --alterado v1.8
           end
           
           if getPlayerStorageValue(cid, 17001) >= 1 or getPlayerStorageValue(cid, 17000) >= 1 or getPlayerStorageValue(cid, 63215) >= 1 then
              doRemoveCondition(cid, CONDITION_OUTFIT)
              setPlayerStorageValue(cid, 17000, 0)
              setPlayerStorageValue(cid, 17001, 0)
              setPlayerStorageValue(cid, 63215, -1) 
              doChangeSpeed(cid, PlayerSpeed)
              local item = getPlayerSlotItem(cid, 8)
              local btype = getPokeballType(item.itemid)
              if #getCreatureSummons(cid) <= 0 then
    	  	     if isInArray(pokeballs[btype].all, item.itemid) then
    	   		    doTransformItem(item.uid, pokeballs[btype].off)
    	   		    doItemSetAttribute(item.uid, "hp", 0)
                 end
              end
           end
    
           if getPlayerStorageValue(cid, 22545) == 1 then
              if getGlobalStorageValue(22550) == 1 then
                 doPlayerSendTextMessage(cid, 20, "You are the last survivor of the golden arena! Take your reward!")
                 doPlayerAddItem(cid, 2152, getPlayerStorageValue(cid, 22551)*2)  
                 setPlayerStorageValue(cid, 22545, -1)
                 doTeleportThing(cid, getClosestFreeTile(cid, getClosestFreeTile(cid, posBackGolden)), false)  
                 doCreatureAddHealth(cid, getCreatureMaxHealth(cid)-getCreatureHealth(cid))
                 setPlayerRecordWaves(cid)     
                 endGoldenArena()
                 return false --alterado v1.8           
              else
                 setGlobalStorageValue(22550, getGlobalStorageValue(22550)-1)
                 setPlayerStorageValue(cid, 22545, -1)
                 doTeleportThing(cid, getClosestFreeTile(cid, posBackGolden), false)    
                 doCreatureAddHealth(cid, getCreatureMaxHealth(cid)-getCreatureHealth(cid))
                 setPlayerRecordWaves(cid)     
                 return true
              end 
           end
    
           if getPlayerStorageValue(cid, 98796) >= 1 then
              setPlayerStorageValue(cid, 98796, -1) 
              setPlayerStorageValue(cid, 98797, -1)                      --alterado v1.8
              doTeleportThing(cid, SafariOut, false)
              doSendMagicEffect(getThingPos(cid), 21)
              doPlayerSendTextMessage(cid, 27, "You die in the saffari... Best luck in the next time!")
              return false --alterado v1.8
           end
    
           local corpse = doCreateItem(3058, 1, getThingPos(cid))
           doDecayItem(corpse)
           doItemSetAttribute(corpse, "pName", getCreatureName(cid))          --alterado v1.7 coloca corpse quando o player morre!
           doItemSetAttribute(corpse, "attacker", getCreatureName(attacker))
           doItemSetAttribute(corpse, "article", getPlayerSex(cid) == 0 and "She" or "He")
           
           if getPlayerStorageValue(cid, Agatha.stoIni) >= 1 and getPlayerStorageValue(cid, Agatha.stoIni) <= 10 then
              setPlayerStorageValue(cid, Agatha.stoIni, -1)
              setPlayerStorageValue(cid, Agatha.stoRec, -1)
              setPlayerStorageValue(cid, Agatha.stoPer, -1)
              setPlayerStorageValue(cid, Agatha.stoEni, -1)        --alterado v1.9  agatha quest
              setPlayerStorageValue(cid, Agatha.stoRes, -1)
           end 
        end
    	doCreatureAddHealth(cid, -valor, 3, 180)
    	if not isPlayer(cid) then
    	   addEvent(sendPlayerDmgMsg, 5, cid, "You lost "..valor.." hitpoints due to an attack from "..getSomeoneDescription(attacker)..".")
    	end
    return false
    end
    --------------------------------------------------
    if isMonster(attacker) and getPlayerStorageValue(attacker, 201) ~= -1 then
    	if isPlayer(cid) then
    	return false
    	end
    	if getPlayerStorageValue(getCreatureMaster(cid), ginasios[getPlayerStorageValue(attacker, 201)].storage) ~= 1 then
    	return false
    	end
    end
    --------------------------------------------------
    if isMonster(cid) and getPlayerStorageValue(cid, 201) ~= -1 then
    	if getPlayerStorageValue(getCreatureMaster(attacker), ginasios[getPlayerStorageValue(cid, 201)].storage) ~= 1 then
    	return false
    	end
    end
    --------------------------------------------------
    if ehMonstro(cid) and ehMonstro(attacker) and not isSummon(cid) and not isSummon(attacker) then 
    return false                                          --alterado v1.9 /\
    end
    --------------------------------------------------
    --------------------REFLECT-----------------------
    if getPlayerStorageValue(cid, 21099) >= 1 and combat ~= COMBAT_PHYSICALDAMAGE then
       if not isInArray({"Team Claw", "Team Slice"}, getPlayerStorageValue(attacker, 21102)) then
          doSendMagicEffect(getThingPosWithDebug(cid), 135)
          doSendAnimatedText(getThingPosWithDebug(cid), "REFLECT", COLOR_GRASS)
          addEvent(docastspell, 100, cid, getPlayerStorageValue(attacker, 21102))
          if getCreatureName(cid) == "Wobbuffet" then
             doRemoveCondition(cid, CONDITION_OUTFIT)    
          end
          setPlayerStorageValue(cid, 21099, -1)                    
          setPlayerStorageValue(cid, 21100, 1)
          setPlayerStorageValue(cid, 21101, attacker)
          setPlayerStorageValue(cid, 21103, getTableMove(attacker, getPlayerStorageValue(attacker, 21102)).f)
          setPlayerStorageValue(cid, 21104, getCreatureOutfit(attacker).lookType)
          return false
       end
    end
    -------------------------------------------------
    
    local multiplier = 1
    
       if isCreature(cid) then
          poketype1 = pokes[getCreatureName(cid)].type        
          poketype2 = pokes[getCreatureName(cid)].type2
       end
       if not poketype1 or not poketype2 then return false end  
       
    	if getCreatureCondition(cid, CONDITION_INVISIBLE) then
    	return false
    	end
    if damageCombat ~= COMBAT_PHYSICALDAMAGE and not isInArray(ignored, damageCombat) then
    	if isInArray(effectiveness[damageCombat].super, poketype1) then
    		multiplier = multiplier + 0.5
    	end
    	if isInArray(effectiveness[damageCombat].super, poketype2) then
    		multiplier = multiplier + 0.5
    	end
    	if isInArray(effectiveness[damageCombat].weak, poketype1) then    
    		multiplier = multiplier - 0.25
    	end
    	if isInArray(effectiveness[damageCombat].weak, poketype2) then
    		multiplier = multiplier - 0.25
    	end
    	if isInArray(effectiveness[damageCombat].non, poketype1) or isInArray(effectiveness[damageCombat].non, poketype2) then
          if isInArray(specialabilities["foresight"], getCreatureName(attacker)) then   
             multiplier = 0.5                 
          end                         --alterado v1.6
        end
    	-- X-Attack --
        if isSummon(attacker) and isPlayer(getCreatureMaster(attacker)) then
        local TierArray = {8, 9, 10, 11, 12, 13, 14}
        local Tiers = {
    [8] = {bonus = AtkBonus1},
    [9] = {bonus = AtkBonus2},
    [10] = {bonus = AtkBonus3},
    [11] = {bonus = AtkBonus4},
    [12] = {bonus = AtkBonus5},
    [13] = {bonus = AtkBonus6},
    [14] = {bonus = AtkBonus7},
    }
     local ball = getPlayerSlotItem(getCreatureMaster(attacker), 8)
    local Tier = getItemAttribute(ball.uid, "heldx")
        local bonusatk = {}
        if isInArray(TierArray, getItemAttribute(ball.uid, "heldx")) then
        bonusatk = Tiers[Tier].bonus
        else
        bonusatk = 1
        end
            multiplier = multiplier * bonusatk
        end
        -- X-Attack --
    elseif combat == COMBAT_PHYSICALDAMAGE then
    	if isGhostPokemon(cid) then               
           if not isInArray(specialabilities["foresight"], getCreatureName(attacker)) then  --passiva Foresight!!
              doSendMagicEffect(getThingPos(cid), 3)     
    	      return false
           end
        end
    		local cd = getPlayerStorageValue(attacker, conds["Miss"])
            local cd2 = getPlayerStorageValue(attacker, conds["Confusion"]) 
            local cd3 = getPlayerStorageValue(attacker, conds["Stun"]) 
            if cd >= 0 or cd2 >= 0 or cd3 >= 0 then
               if math.random(1, 100) > 50 then  
    		      doSendMagicEffect(getThingPos(cid), 211)
    		      doSendAnimatedText(getThingPos(attacker), "MISS", 215)         
    		      return false
               end
            end
    end
    --------------------------------------------------
    local valor = value
    
    	if multiplier == 1.5 and poketype2 == "no type" then
            multiplier = 2                                         
        elseif multiplier == 1.5 and poketype2 ~= "no type" then	
        	multiplier = 1.75       
    	elseif multiplier == 1.25 then    
    		multiplier = 1    
    	end
    
    --------------------------------------------------
        if isSummon(cid) and isSummon(attacker) then
            if getCreatureMaster(cid) == getCreatureMaster(attacker) then
               return false
            end
    		if canAttackOther(cid, attacker) == "Cant" then
               return false
            end
    	end
    
    	valor = valor * multiplier
    
    	if isSummon(attacker) then
    		valor = valor * getHappinessRate(attacker)
    	else
    		valor = valor * summonReduction
    	end
                                                                  
    	valor = math.floor(valor)                                 
    	
    	if combat == COMBAT_PHYSICALDAMAGE then
           
           local value = getOffense(attacker) > 1000 and 3 or 2
           block = 1 - (getDefense(cid) / (getOffense(attacker) + getDefense(cid))) --alterado v1.9 testem essa nova formula plzzz '--'
    	    valor = (getOffense(attacker)/value) * block
    	   
    	    if valor <= 0 then
    	      valor = math.random(5, 10) --alterado v1.9
           end
    	   
           if isInArray(specialabilities["counter"], getCreatureName(cid)) then
              if math.random(1, 100) <= 10 then
                 doCreatureAddHealth(attacker, -valor, 3, 180)    
                 valor = 0
                 doSendAnimatedText(getThingPosWithDebug(cid), "COUNTER", 215)
              end
           end   
    -- Return --        
    if isSummon(cid) and isPlayer(getCreatureMaster(cid)) then
    local returnbonus = {}
    local ball = getPlayerSlotItem(getCreatureMaster(cid), 8)
    local Tiers = {
    [15] = {bonus = DmgReturn1},
    [16] = {bonus = DmgReturn2},
    [17] = {bonus = DmgReturn3},
    [18] = {bonus = DmgReturn4},
    [19] = {bonus = DmgReturn5},
    [20] = {bonus = DmgReturn6},
    [21] = {bonus = DmgReturn7},
    }
    local Tier = getItemAttribute(ball.uid, "heldx")
    if Tier and Tier > 14 and Tier < 22 then
    returnbonus = math.floor((valor * Tiers[Tier].bonus))
    elseif not isInArray(Tiers, Tier) then
    returnbonus = 0
    end
    doCreatureAddHealth(attacker, -returnbonus)
    end
    -- Return --
    else
    -- Return --        
    if isSummon(cid) and isPlayer(getCreatureMaster(cid)) then
    local returnbonus = {}
    local ball = getPlayerSlotItem(getCreatureMaster(cid), 8)
    local Tiers = {
    [15] = {bonus = DmgReturn1},
    [16] = {bonus = DmgReturn2},
    [17] = {bonus = DmgReturn3},
    [18] = {bonus = DmgReturn4},
    [19] = {bonus = DmgReturn5},
    [20] = {bonus = DmgReturn6},
    [21] = {bonus = DmgReturn7},
    }
    local Tier = getItemAttribute(ball.uid, "heldx")
    if Tier and Tier > 14 and Tier < 22 then
    returnbonus = math.floor((valor * Tiers[Tier].bonus))
    elseif not isInArray(Tiers, Tier) then
    returnbonus = 0
    end
    doCreatureAddHealth(attacker, -returnbonus)
    end
    
    -- Critical -- 
    if isSummon(attacker) and isPlayer(getCreatureMaster(attacker)) then
    local Tiers = {
    [85] = {chance = Critical1},
    [86] = {chance = Critical2},
    [87] = {chance = Critical3},
    [88] = {chance = Critical4},
    [89] = {chance = Critical5},
    [90] = {chance = Critical6},
    [91] = {chance = Critical7}
    }
    local ball = getPlayerSlotItem(getCreatureMaster(attacker), 8)
    local Tier = getItemAttribute(ball.uid, "heldx")
    if Tier and Tier > 84 and Tier < 92 then
    if math.random(1,100) <= Tiers[Tier].chance then
    valor = valor * 2
    doSendAnimatedText(getThingPos(cid), "STK "..(valor * 0.25), 115)
    end
    end
    end
    -- Critical --
    -- Critical --
    -- Return --
    valor = valor / getDefense(cid)
    end
        
        -------------------------Edited CLAN SYSTEM-----------------------------------
        if isSummon(attacker) and getPlayerStorageValue(getCreatureMaster(attacker), 86228) >= 1 then
           valor = valor*getClanPorcent(getCreatureMaster(attacker), combat, "atk")                           
        elseif isSummon(cid) and getPlayerStorageValue(getCreatureMaster(cid), 86228) >= 1 then
           valor = valor - (valor*getClanPorcent(getCreatureMaster(cid), combat, "def", pokes[getCreatureName(cid)].type, pokes[getCreatureName(cid)].type2))
        end
        -----------------------------------------------------------------------
        ---------------------- FEAR / ROAR ------------------------------------
        if getPlayerStorageValue(attacker, conds["Fear"]) >= 1 then         
        return true
        end
    --------------------------------------------------------------------------
    if damageCombat ~= COMBAT_PHYSICALDAMAGE and not isInArray(ignored, damageCombat) then
       if isInArray(effectiveness[damageCombat].non, poketype1) or isInArray(effectiveness[damageCombat].non, poketype2) then
          if not isInArray(specialabilities["foresight"], getCreatureName(attacker)) then     
             valor = valor * 0                      
          end
       end
    end
    
    if damageCombat == GROUNDDAMAGE then
       if isInArray(specialabilities["levitate"], getCreatureName(cid)) then
          valor = 0                      
       end
    end
    -----------------------------------------------------------------------------
    local p = getThingPos(cid)                     
    if p.x == 1 and p.y == 1 and p.z == 10 then
    return false                                    
    end
    
    if getPlayerStorageValue(cid, 9658783) == 1 then
    return false     --imune
    end
    -----------------------------------------------------------------------------
    
    --------------- FIGHT MODE -----------------------
    if useOTClient then
    if isSummon(cid) then                                  
       local master = getCreatureMaster(cid)
       if getPlayerStorageValue(master, 248759) == 1 then
          valor = valor * 1.1
       elseif getPlayerStorageValue(master, 248759) == 3 then
          valor = valor * 0.9
       end
    end
    if isSummon(attacker) then
       local master = getCreatureMaster(attacker)
       if getPlayerStorageValue(master, 248759) == 1 then
          valor = valor * 1.1
       elseif getPlayerStorageValue(master, 248759) == 3 then
          valor = valor * 0.9
       end
    end 
    end   
    -----------------------------------------------------------------------------
    	if valor >= getCreatureHealth(cid) then
    		if isInArray(cannotKill, combat) and isPlayer(cid) then
    			valor = getCreatureHealth(cid) - 1
    		else
    			valor = getCreatureHealth(cid)
    		end
    	end
    	valor = math.floor(valor)            
    	
    ------------------ SKILLs Q CURAM O ATTACKER ---------------------------------
    local function doHeal(cid, amount)
    if (getCreatureHealth(cid) + amount) >= getCreatureMaxHealth(cid) then
       amount = math.abs(getCreatureHealth(cid)-getCreatureMaxHealth(cid))
    end
    if getCreatureHealth(cid) ~= getCreatureMaxHealth(cid) then           
       doCreatureAddHealth(cid, amount)
       doSendAnimatedText(getThingPosWithDebug(cid), "+"..amount.."", 65) 
    end
    end
              
    if damageCombat == PSYCHICDAMAGE or damageCombat == MIRACLEDAMAGE then
       if getPlayerStorageValue(attacker, 95487) >= 1 then
          doHeal(attacker, valor)
          setPlayerStorageValue(attacker, 95487, -1)                  
       end
    elseif damageCombat == SEED_BOMBDAMAGE then
       doHeal(attacker, valor)
    end
    --------------------------------------------
    ----------SACRED FIRE-----------------------
    if combat == SACREDDAMAGE and not ehNPC(cid) then    
       local ret = {}
       ret.id = cid
       ret.cd = 9
       ret.check = getPlayerStorageValue(cid, conds["Silence"])
       ret.eff = 39
       ret.cond = "Silence"
    
       doCondition2(ret)
    elseif combat == MUDBOMBDAMAGE and not ehNPC(cid) then
       local ret = {}                                        
       ret.id = cid
       ret.cd = 9
       ret.eff = 34
       ret.check = getPlayerStorageValue(cid, conds["Miss"])
       ret.spell = "Mud Bomb"       --alterado v1.9
       ret.cond = "Miss"
       
       doCondition2(ret)
    end
    ---------------------------------------------
    --------------Passiva Lifesteal Clobat------------
    if combat == COMBAT_PHYSICALDAMAGE then
       if getCreatureName(attacker) == "Crobat" then                    
          doCreatureAddHealth(attacker, math.floor(valor))
          doSendAnimatedText(getThingPos(attacker), "+ "..math.floor(valor), 30)
       end
    end
    --- X-Agility/X-Strafe/X-Rage/X-Harden ---
    if combat == COMBAT_PHYSICALDAMAGE then
    local TierAgi = {
    [43] = {chance = Agility1},
    [44] = {chance = Agility2},
    [45] = {chance = Agility3},
    [46] = {chance = Agility4},
    [47] = {chance = Agility5},
    [48] = {chance = Agility6},
    [49] = {chance = Agility7},
    }
    local TierStra = {
    [50] = {chance = Strafe1},
    [51] = {chance = Strafe2},
    [52] = {chance = Strafe3},
    [53] = {chance = Strafe4},
    [54] = {chance = Strafe5},
    [55] = {chance = Strafe6},
    [56] = {chance = Strafe7},
    }
    local TierRage = {
    [57] = {chance = Rage1},
    [58] = {chance = Rage2},
    [59] = {chance = Rage3},
    [60] = {chance = Rage4},
    [61] = {chance = Rage5},
    [62] = {chance = Rage6},
    [63] = {chance = Rage7},
    }
    if isPlayer(getCreatureMaster(attacker)) and isSummon(attacker) then
    local Tier = getItemAttribute(getPlayerSlotItem(getCreatureMaster(attacker), 8).uid, "heldx")
    if Tier and Tier > 42 and Tier < 50 and getPlayerStorageValue(attacker, 22666) ~= 1 then
    if math.random(1,100) <= TierAgi[Tier].chance then
    docastspell(attacker, "Agility")
    setPlayerStorageValue(attacker, 22666, 1)
    addEvent(function() setPlayerStorageValue(attacker, 22666, 0) end, 15 * 1000)
    end
    elseif Tier and Tier > 49 and Tier < 57 and getPlayerStorageValue(attacker, 22666) ~= 2 then
    if math.random(1,100) <= TierStra[Tier].chance then
    docastspell(attacker, "Strafe")
    setPlayerStorageValue(attacker, 22666, 2)
    addEvent(function() setPlayerStorageValue(attacker, 22666, 0) end, 15 * 1000)
    end
    elseif Tier and Tier > 56 and Tier < 64 and getPlayerStorageValue(attacker, 22666) ~= 3 then
    if math.random(1,100) <= TierRage[Tier].chance then
    docastspell(attacker, "Rage")
    setPlayerStorageValue(attacker, 22666, 3)
    addEvent(function() setPlayerStorageValue(attacker, 22666, 0) end, 15 * 1000)
    end
    end
    end
    if isPlayer(getCreatureMaster(cid)) and isSummon(cid) then
    local TierHarden = {
    [64] = {chance = Harden1},
    [65] = {chance = Harden2},
    [66] = {chance = Harden3},
    [67] = {chance = Harden4},
    [68] = {chance = Harden5},
    [69] = {chance = Harden6},
    [70] = {chance = Harden7},
    }
    local TierEle = {
    [78] = {chance = Elemen1},
    [79] = {chance = Elemen2},
    [80] = {chance = Elemen3},
    [81] = {chance = Elemen4},
    [82] = {chance = Elemen5},
    [83] = {chance = Elemen6},
    [84] = {chance = Elemen7},
    }
    local Tier = getItemAttribute(getPlayerSlotItem(getCreatureMaster(cid), 8).uid, "heldx")
    if Tier and Tier > 63 and Tier < 71 and getPlayerStorageValue(cid, 22666) ~= 4 then
    if math.random(1,100) <= TierHarden[Tier].chance then
    docastspell(cid, "Harden")
    setPlayerStorageValue(cid, 22666, 4)
    addEvent(function() setPlayerStorageValue(cid, 22666, 0) end, 8 * 1000)
    end
    end
    if Tier and Tier > 77 and Tier < 85 and getPlayerStorageValue(cid, 22666) ~= 5 then
    if math.random(1,100) <= TierEle[Tier].chance then
    docastspell(cid, "Elemental", -1000, -5000)
    setPlayerStorageValue(cid, 22666, 5)
    addEvent(function() setPlayerStorageValue(cid, 22666, 0) end, 1 * 1800)
    end
    end
    end
    end
    --- X-Agility/Strafe/Rage/Harden ---
    --------------------------------------------
        valor = math.abs(valor)    --alterado v1.9
        if isSummon(attacker) then
    		if combat == COMBAT_PHYSICALDAMAGE then
    			doTargetCombatHealth(getCreatureMaster(attacker), cid, PHYSICALDAMAGE, -valor, -valor, 255)
    			addEvent(doDoubleHit, 1000, attacker, cid, valor, races)      
    		else
    			doTargetCombatHealth(getCreatureMaster(attacker), cid, damageCombat, -valor, -valor, 255)
    		end
    	else
    		if combat ~= COMBAT_PHYSICALDAMAGE then
    			doCreatureAddHealth(cid, -valor, 3, combats[damageCombat].cor)  
    		else
                doCreatureAddHealth(cid, -valor, 3, races[getMonsterInfo(getCreatureName(cid)).race].cor)
                addEvent(doDoubleHit, 1000, attacker, cid, valor, races)   
            end
    
    		if isSummon(cid) and valor ~= 0 then
    			addEvent(sendPlayerDmgMsg, 5, getCreatureMaster(cid), "Your "..getCreatureName(cid).." lost "..valor.." hitpoints due to an attack from "..getSomeoneDescription(attacker)..".")
    		end
    
    	end
    	
    	if damageCombat == FIREDAMAGE and not isBurning(cid) then
    	   local ret = {}
    	   ret.id = cid
    	   ret.cd = math.random(5, 12)
    	   ret.check = getPlayerStorageValue(cid, conds["Burn"])
    	   ret.damage = isSummon(attacker) and getMasterLevel(attacker)+getPokemonBoost(attacker) or getPokemonLevel(attacker)
    	   ret.cond = "Burn"
    	   
    	   doCondition2(ret)
        elseif damageCombat == POISONDAMAGE and not isPoisoned(cid) then
           local ret = {}
    	   ret.id = cid
    	   ret.cd = math.random(6, 15)
    	   ret.check = getPlayerStorageValue(cid, conds["Poison"])
    	   local lvl = isSummon(attacker) and getMasterLevel(attacker) or getPokemonLevel(attacker)
           ret.damage = math.floor((getPokemonLevel(attacker)+lvl)/2)
    	   ret.cond = "Poison"
    	   
    	   doCondition2(ret)
        end
    --[[---------------CD BAR-----------------------
    if isSummon(cid) then
       doCreatureExecuteTalkAction(getCreatureMaster(cid), "/pokeread")
    end  ]]
    ------------------------------------POTIONS-------------------------------------------
    if isSummon(cid) and type == STATSCHANGE_HEALTHLOSS then
       if getPlayerStorageValue(cid, 173) >= 1 then
          if damageCombat ~= BURNEDDAMAGE and damageCombat ~= POISONEDDAMAGE then
             setPlayerStorageValue(cid, 173, -1)  
             doSendAnimatedText(getThingPos(cid), "Lost Heal", 144)
          end
       end
    end
    ----------------------------------------PASSIVAS-------------------------------------  
    -------------------------------------------Counter Helix------------------------------------
    if passivesChances["Helix"][getCreatureName(cid)] and math.random(1, 100) <= passivesChances["Helix"][getCreatureName(cid)] then
       docastspell(cid, "Counter Helix")
    end
    -------------------------------------------Lava Counter/Electricity----------------------------
    if passivesChances["Fire_Thunder"][getCreatureName(cid)] and math.random(1, 100) <= passivesChances["Fire_Thunder"][getCreatureName(cid)] then
       docastspell(cid, "Lava-Electricity")
    end
    ---------------------------------------Stunning Confusion-----------------------------------------
    if passivesChances["Stunning"][getCreatureName(cid)] and math.random(1, 100) <= passivesChances["Stunning"][getCreatureName(cid)] then  
       docastspell(cid, "Stunning Confusion")
    end
    -----------------------------------------Groundshock-----------------------------------
    if passivesChances["Groundshock"][getCreatureName(cid)] and math.random(1, 100) <= passivesChances["Groundshock"][getCreatureName(cid)] then
       docastspell(cid, "Groundshock")
    end
    --------------------------------------Electric Charge---------------------------------------------
    if passivesChances["Electric Charge"][getCreatureName(cid)] and math.random(1, 100) <= passivesChances["Electric Charge"][getCreatureName(cid)] then
       docastspell(cid, "Electric Charge", 0, 0)
    end
    -------------------------------------Melody------------------------------------
    if passivesChances["Melody"][getCreatureName(cid)] and math.random(1, 100) <= passivesChances["Melody"][getCreatureName(cid)] then 
       docastspell(cid, "Melody")
    end
    ------------------------------------- Dragon Fury / Fury ---------------------------------------
    if passivesChances["Dragon Fury"][getCreatureName(cid)] and math.random(1, 100) <= passivesChances["Dragon Fury"][getCreatureName(cid)] then
       docastspell(cid, "Dragon Fury", 0, 0)
    end
    ------------------------------------- Mega Drain ---------------------------------------
    if passivesChances["Mega Drain"][getCreatureName(cid)] and math.random(1, 100) <= passivesChances["Mega Drain"][getCreatureName(cid)] then
       docastspell(cid, "Mega Drain")
    end
    ------------------------------------- Spores Reaction ---------------------------------------
    if passivesChances["Spores Reaction"][getCreatureName(cid)] and math.random(1, 100) <= passivesChances["Spores Reaction"][getCreatureName(cid)] then
       docastspell(cid, "Spores Reaction")
    end
    ------------------------------------ Amnesia ----------------------------------------   
    if passivesChances["Amnesia"][getCreatureName(cid)] and math.random(1, 100) <= passivesChances["Amnesia"][getCreatureName(cid)] then 
       docastspell(cid, "Amnesia", 0, 0)
    end
    ----------------------------------- Zen Mind -----------------------------------------
    if passivesChances["Zen Mind"][getCreatureName(cid)] and isWithCondition(cid) and math.random(1, 100) <= passivesChances["Zen Mind"][getCreatureName(cid)] then
       docastspell(cid, "Zen Mind", 0, 0)
    end
    ---------------------------------- Mirror Coat ---------------------------------------
    if passivesChances["Mirror Coat"][getCreatureName(cid)] and math.random(1, 100) <= passivesChances["Mirror Coat"][getCreatureName(cid)] then   
       docastspell(cid, "Mirror Coat", 0, 0)
    end
    --------------------------------- Illusion -----------------------------------------
    return false
    end

     

     

  11. 6 minutos atrás, JulianoZN disse:

    Deu esse erro ai da print do "=="  e "=" then

    Olhando o erro na resposta anterior e comparando o meu script,

    esse erro não tem nada haver com o meu script esse erro é do script do ZikaLord, o meu eu testei e lhe garanto que funciona, o script que ele fez contem muitos erros de programar essa simples situação

  12. 1 hora atrás, JulianoZN disse:

    image.png.f120c70eee7723a2173686aefd60bcad.png

     

     

    Quando removo 1 dos { = }

    image.png.d2b9196b7a72db881aa4911213cbab0f.png

     

     

    vlw

     

    Deu erro? Se estiver tudo certinho, pode marcar como a melhor resposta e reputar,

    assim os demais membros que estiverem com duvida podem visualizar melhor.

  13.  

    Vamos lá para o que você está precisando, é bem simples eu já deixei tudo configurado para você fazer suas devidas adaptações.

     

    TwyIHBJ.png

     

    Script:

    Cria um arquivo no seu servidor em data/action/ e coloque o nome do arquivo actionescada.lua e coloque o seguinte script:

    Spoiler
    
    local config = {
    	stoneId  = 11449,
    	escadaId = 1386,
    	posStone  = { x = 2557, y = 2579, z = 7},
    	posEscada = { x = 2560, y = 2579, z = 7},
    	timer = 20*1000
    }
    
    function onUse(cid, item, fromPosition, itemEx, toPosition)
    	local stone = getTileItemById(config.posStone, config.stoneId, 1)
    	if ( stone.uid > 0 ) then
    		doRemoveItem(stone.uid)
    		doCreateItem(config.escadaId, config.posEscada)		
    		addEvent(function()
    			doRemoveItem(getTileItemById(config.posEscada, config.escadaId).uid)
    		end, config.timer)
    	else
    		return doPlayerSendCancel(cid, 'You did not put the stone in the place.')
    	end
    	doTransformItem(item.uid, item.itemid == 1945 and 1946 or 1945)
    	return true
    end

     

     

    No mesmo diretório abre o arquivo action.xml e coloque a seguinte tag:

    <action actionid="69587" event="script" value="actionhouse.lua"/>

    Onde está o actionid, você coloca esse numero na alavanca pelo rme map editor e

    já deve funcionar tudo isso se você também configurou o script de acordo com a sua preferência. 

     

    TwyIHBJ.png

     

    Espero que dê para entender, a tabela config do script está bem explicativo para que você possa entender e alterar. 

     

  • Quem Está Navegando   0 membros estão online

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