Ir para conteúdo

Gengo

Héroi
  • Registro em

  • Última visita

Tudo que Gengo postou

  1. Eai mano blz, fiz um script aqui no qual deve atender suas necessidades, no minimo que vai te exigir é para adaptar bem mas suas necessidades, aqui eu vou quebrar a maior parte do ganho para você, sem enrolações vamos lá: Crie um arquivo na pasta do seu servidor /data/spells/heala_player.lua e coloque o seguinte script: local combat = Combat() combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_HEALING) combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE) combat:setParameter(COMBAT_PARAM_AGGRESSIVE, 0) combat:setParameter(COMBAT_PARAM_DISPEL, CONDITION_PARALYZE) function onGetFormulaValues(player, level, maglevel) local min = (level / 5) + (maglevel * 4) + 25 local max = (level / 5) + (maglevel * 8) + 50 return min, max end combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues") function onCastSpell(creature, var) if ( creature:getMaster() ) then player = Player(creature:getMaster() ) doCreatureAddHealth(player, 100) return combat:execute(creature, var) end end Agora abre o arquivo /data/spells/spells.xml e coloca a seguinte tag: <instant group="healing" spellid="84" name="Exura Play" words="exura player" mana="40" prem="0" aggressive="0" blockwalls="1" needtarget="1" playernameparam="1" params="1" exhaustion="1000" groupcooldown="1000" needlearn="0" script="healing/heala_player.lua"/> E por fim escolha um monstro no qual você deseja que te heala e no .xml dele coloque esta parte: <attacks> <attack name="Exura Play" interval="1000" chance="75" range="7" target="1"/> </attacks> Bom espero que funciona, eu testei aqui no meu servidor e funcionou normal.
  2. Ai deve ser mas facil mexer nas animações das source do client ou algo do tipo. Tentei, pode ser que alguem que tenha mais experiencia consiga algo.
  3. Agora vai, testei aqui e funcionou perfeito, se não funcionar no seu ai o problema é seu otServ. local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_FIREATTACK) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_FIRE) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1, -10, -1, -20, 5, 5, 1.4, 2.1) timer = 1000 -- equivale a 1 segundos. local outfit = { [0] = {lookType = 6, lookHead = 0, lookBody = 0, lookLegs = 0, lookFeet = 0, lookTypeEx = 0, lookAddons = 3}, -- oufit mulher [1] = {lookType = 6, lookHead = 0, lookBody = 0, lookLegs = 0, lookFeet = 0, lookTypeEx = 0, lookAddons = 3} -- oufit homem } function onCastSpell(cid, var) doSetCreatureOutfit(cid, outfit[getPlayerSex(cid)], timer) return doCombat(cid, combat, var) end
  4. Estranho, deve ser por causa do tempo, vish ai agora complicou hahaha
  5. Então seria Primeiro ele muda de outfit > soltou a magia ele volta. Fiz uma pequena alteração, se ainda não for oque quer, então creio que teria que mexer nas source do client+servidor para poder fazer esse tipo de sincronização eu acho. local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_FIREATTACK) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_FIRE) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1, -10, -1, -20, 5, 5, 1.4, 2.1) timer = 3000 -- equivale a 3 segundos. local outfit = { [0] = {lookType = 6, lookHead = 0, lookBody = 0, lookLegs = 0, lookFeet = 0, lookTypeEx = 0, lookAddons = 3}, -- oufit mulher [1] = {lookType = 6, lookHead = 0, lookBody = 0, lookLegs = 0, lookFeet = 0, lookTypeEx = 0, lookAddons = 3} -- oufit homem } function onCastSpell(cid, var) local otufitAtual = getCreatureOutfit(cid) doCreatureChangeOutfit(cid, outfit[getPlayerSex(cid)]) addEvent(function() doCreatureChangeOutfit(cid, otufitAtual) end, timer) --[[ Ou testa esse addEvent(function() doCreatureChangeOutfit(cid, otufitAtual) return doCombat(cid, combat, var) end, timer) ]]-- return doCombat(cid, combat, var) -- Ao testar o comentado, remova essa linha end Eu fiz o seguinte troca a outfit para o mago com o cajado, ai ele vai soltar a magia e depois de 3 segundo ele volta. OBS: Se não der certo, já não vou saber como faz, mas agora entendi oque você quis dizer.
  6. Eai cara blz, vê se isso resolve o que você quer local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_FIREATTACK) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_FIRE) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1, -10, -1, -20, 5, 5, 1.4, 2.1) timer = 3000 -- equivale a 3 segundos. local outfit = { [0] = {lookType = 6, lookHead = 0, lookBody = 0, lookLegs = 0, lookFeet = 0, lookTypeEx = 0, lookAddons = 3}, -- oufit mulher [1] = {lookType = 6, lookHead = 0, lookBody = 0, lookLegs = 0, lookFeet = 0, lookTypeEx = 0, lookAddons = 3} -- oufit homem } function onCastSpell(cid, var) doCreatureChangeOutfit(cid, outfit[getPlayerSex(cid)]) addEvent(function() return doCombat(cid, combat, var) end, timer) end Espero que de certo.
  7. Agora deve funcionar. local config = { storageSummon = 7475, storageTime = 7477, tempo = 20 -- equivale a 20 segundos } local pet = { ["Rinnegan [Protector]"] = {201,1000}, ["Rinnegan [Protector]"] = {201,1000} } function onUse(cid, item, fromPosition, target, toPosition, isHotkey) if #getCreatureSummons(cid) > 1 then doPlayerSendCancel(cid,"Your Demonio is already summoned.") end if getPlayerStorageValue(cid,config.storageSummon) == 1 then local z = getCreatureSummons(cid)[1] addEvent(function() setPlayerStorageValue(cid, config.storageSummon, -1) setPlayerStorageValue(cid, config.storageTime, os.time()+ config.tempo) end, 100) doCreatureSay(cid,"Back my summon!",TALKTYPE_ORANGE_1) doSendMagicEffect(getCreaturePosition(z), 2) doSendDistanceShoot(getCreaturePosition(z), getPlayerPosition(cid), 3) return doRemoveCreature(z) end local summons = getCreatureSummons(cid) if ( not getTilePzInfo(getCreaturePosition(cid)) ) then if ( getPlayerStorageValue(cid, config.storageTime) <= os.time() ) then for k,v in pairs(pet) do -- 1 if getPlayerStorageValue(cid,config.storageSummon) < 1 then if getPlayerLevel(cid) >= v[1] and getPlayerLevel(cid) < v[2] then -- 2 if (table.maxn(summons) < 1)then -- 3 x = doSummonCreature(k, getCreaturePosition(cid)) doConvinceCreature(cid, x) setPlayerStorageValue(cid,4194,1) setPlayerStorageValue(cid,config.storageSummon,1) doCreatureSay(cid, k ..", go!", TALKTYPE_ORANGE_1) doSendMagicEffect(getThingPos(getCreatureSummons(cid)[1]), 2) end end end end else return doCreatureSay(cid, "Espere "..config.storageTime.." para usar novamente", TALKTYPE_ORANGE_1) end else doCreatureSay(cid, "Voce nao pode usar em area Protection Zone", TALKTYPE_ORANGE_1) end return true end OBS: Testei no meu otServ e está funcionando normal.
  8. Gengo postou uma resposta no tópico em OTClient
    Posta o script que você colocou, pois eu já testei no meu servidor e está normal, as vezes você deve ter batido em alguma tecla errado ou algo do tipo.
  9. Ops falha minha, na parte que está a variavel tempo , tem uma virgula, é só retirar ela. function onUse(cid, item, frompos, item2, topos) storage = 4191 storsol = 1203 tempo = 14400 --time com rolo que termina (em segundos 14400 = 4 horas) if #getCreatureSummons(cid) > 1 then doPlayerSendCancel(cid,"Voce ja chamou seu Protetor!.") end if getPlayerStorageValue(cid,storsol) == 1 then local z = getCreatureSummons(cid)[1] addEvent(setPlayerStorageValue,100,cid,storsol,-1) doPlayerSay(cid,"Volte Protector!",TALKTYPE_ORANGE_1) doSendMagicEffect(getCreaturePosition(z), 2) doSendDistanceShoot(getCreaturePosition(z), getPlayerPosition(cid), 16) doRemoveCreature(z) end local summons = getCreatureSummons(cid) local pet = { ["Rinnegan [Protector]"] = {201,1000}, ["Rinnegan [Protector]"] = {201,1000} } if ( isPlayerPzLocked(cid) ) and ( getPlayerStorageValue(cid, storsol) <= os.time() ) then for k,v in pairs(pet) do -- 1 if getPlayerStorageValue(cid,storsol) < 1 then if getPlayerLevel(cid) >= v[1] and getPlayerLevel(cid) < v[2] then -- 2 if (table.maxn(summons) < 1)then -- 3 x = doSummonCreature(k, getCreaturePosition(cid)) doConvinceCreature(cid, x) setPlayerStorageValue(cid,4194,1) setPlayerStorageValue(cid,storsol,1) setPlayerStorageValue(cid, storsol, os.time()+tempo) doCreatureSay(cid, k ..", go!", TALKTYPE_ORANGE_1) doSendMagicEffect(getThingPos(getCreatureSummons(cid)[1]), 152) end end end end end return true end
  10. Opa blz, veja se esse script atende suas necessidades: function onUse(cid, item, frompos, item2, topos) storage = 4191 storsol = 1203 tempo = 14400, --time com rolo que termina (em segundos 14400 = 4 horas) if #getCreatureSummons(cid) > 1 then doPlayerSendCancel(cid,"Voce ja chamou seu Protetor!.") end if getPlayerStorageValue(cid,storsol) == 1 then local z = getCreatureSummons(cid)[1] addEvent(setPlayerStorageValue,100,cid,storsol,-1) doPlayerSay(cid,"Volte Protector!",TALKTYPE_ORANGE_1) doSendMagicEffect(getCreaturePosition(z), 2) doSendDistanceShoot(getCreaturePosition(z), getPlayerPosition(cid), 16) doRemoveCreature(z) end local summons = getCreatureSummons(cid) local pet = { ["Rinnegan [Protector]"] = {201,1000}, ["Rinnegan [Protector]"] = {201,1000} } if ( isPlayerPzLocked(cid) ) and ( getPlayerStorageValue(cid, storsol) <= os.time() ) then for k,v in pairs(pet) do -- 1 if getPlayerStorageValue(cid,storsol) < 1 then if getPlayerLevel(cid) >= v[1] and getPlayerLevel(cid) < v[2] then -- 2 if (table.maxn(summons) < 1)then -- 3 x = doSummonCreature(k, getCreaturePosition(cid)) doConvinceCreature(cid, x) setPlayerStorageValue(cid,4194,1) setPlayerStorageValue(cid,storsol,1) setPlayerStorageValue(cid, storsol, os.time()+tempo) doCreatureSay(cid, k ..", go!", TALKTYPE_ORANGE_1) doSendMagicEffect(getThingPos(getCreatureSummons(cid)[1]), 152) end end end end end return true end
  11. Eai mano blz, ve se é isso que você precisa: local items = { [1] = {2160,'Crystal Coin'}, -- item id [2] = {2390,'Magic LongSword'}, } function onUse(cid, item, fromPosition, target, toPosition, isHotkey) if item:getId() == 1945 then item:transform(1946) elseif item:getId() == 1946 then cid:getPosition():sendMagicEffect(CONST_ME_POFF) item:transform(1945) end if cid:removeMoney(100) then if math.random(1, 100) > 50 then local randItem = math.random(1, #items) cid:addItem( items[randItem][1],1) Game.broadcastMessage("O jogador '"..cid:getName().."' Acabou de ganhar um : "..items[randItem][2]..".", MESSAGE_STATUS_WARNING) else cid:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "You Lose") end else cid:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "You don't have a money.") end return true end
  12. Creio que já tem esse tipo de pedido aqui no forum, basta dar um procurada. Além de ter esse que citei acima, deve ter outros, basta adaptar para a sua necessidade.
  13. Gengo postou uma resposta no tópico em OTClient
    O cara já tinha arrumado o erro, ele acontecia pq ele não tinha registrado no .xml do servidor. Criptografar otClient ai já não é comigo não ?
  14. Acho que é isso que você procura:
  15. Gengo postou uma resposta no tópico em OTClient
    Tem um arquivo(module) que disponibilizei para colocar no seu otClient, na pasta slot_machine abra o arquivo slot_machine.lua e veras o seguinte código: Para cada item [1] = {idPedraEvo, nomeDaImagemDoItem} basta trocar o id da pedra de evolução e colocar o id do item que você deseje ganhar. Espero que tenha entendido.
  16. Gengo postou uma resposta no tópico em OTClient
    Esses números representam o dinheiro no tibia, o motivo do erro no piso é você não ter registrado no creaturescript.xml, nosso amigo que teve esse mesmo erro no qual você está falando, ele me falou que o motivo de dar erro é não ter registrado no arquivo xml. Se você seguir os passos certos creio que irá funcionar certinho, atente-se para os minimos detalhes.
  17. Você colocou o actionid 12347 no bau pelo remeres? Pode ser que seja isso que não esteja funcionando.
  18. Funciona sim. Para saber o lootype da criatura vai em data/monster/ abra o arquivo.xml de um monstro e procura pela tag <look/> dentro dessa tag vai estar o type e é lá que você vai saber a id da lootype para colocar no seu script.
  19. Eu uso esse aqui para o editar mapa 10.98
  20. Gengo postou uma resposta no tópico em OTClient
    Vou deixar aqui a alteração caso alguém tenha mas duvida. local OPCODE_SLOT_MACHINE = 12 local config = { item = 6527 -- Id do item qtd = 5 -- Quantidade para ser removido } function onExtendedOpcode(cid, opcode, buffer) if opcode == OPCODE_SLOT_MACHINE then if ( buffer ~= 1 ) then doPlayerAddItem(cid, buffer, 1) end doPlayerRemoveItem(cid,config.item, config.qtd) -- Diferente do outro, mudei essa linha o botei um config para que você edite de acordo com sua necessidade end return true end
  21. Gengo postou uma resposta no tópico em OTClient
    Pode mudar sim, qualquer duvida que você tiver em relação a mudança é só falar.
  22. Opa blz, segue o script que você deseja, primeiro vamos a instalação: Vá na sua pasta do seu servidor data/actions/scripts/ crie um arquivo.lua e coloque o seguinte script: local outfitMale = 152 -- Outfit Assassin function onUse(cid, item, frompos, item2, topos) if item.uid == 22052 then if ( getPlayerStorageValue(cid,1235) == -1 ) then doPlayerSendTextMessage(cid,21,"Voce ganhou uma Outfit") doPlayerAddOutfit(cid, outfitMale, 1) setPlayerStorageValue(cid,1235,1) doSendMagicEffect(getCreaturePosition(cid), math.random(1, 67)) else doPlayerSendTextMessage(cid,25,"Voce ja tem essa Outfit.") end end return TRUE end Depois abre o arquivo data/actions/actions.xml e coloque a seguinte tag: <action itemid="22052" script="arquivo.lua"/> É só isso mesmo o script, espero que seja o que você esteja procurando. OBS: para saber o numero da Outift abre o arquivo outfits.xml vai estar na pasta do seu servidor data/XML/outfits.xml na parte onde vai estar looktype é o numero da Outfit
  23. Gengo postou uma resposta no tópico em OTClient
    Não precisa por nada na parte do remeres, o 1ª erro pode ser que seu servidor não tenha a extensão para trabalhar com opCode, já no segundo erro você não configurou ele no login.lua registrando o evento, e colocando ele no creaturescript.xml, mas se você fez tudo isso ai já não seria erro do modulo que eu fiz e sim que seu servidor não suporta opCodes.
  24. Gengo postou uma resposta no tópico em OTClient
    Pode dar problema sim, ai vai de cada um como gerenciar seu otClient como por exemplo criptografar ele.
  25. Poste seu script aqui para ver oque posso ajudar, assim como outros também.

Informação Importante

Confirmação de Termo