Ir para conteúdo

HidekiKty

Campones
  • Total de itens

    68
  • Registro em

  • Última visita

Tudo que HidekiKty postou

  1. シチビア!(XTibia !)
  2. Ok, tente esse: local combat1 = createCombatObject() setCombatParam(combat1, COMBAT_PARAM_EFFECT, 35) setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_NONEDAMAGE) setCombatParam(combat1, COMBAT_PARAM_HITCOLOR, 204) function onGetFormulaValues(cid, level, maglevel) min = -((level*1 + maglevel*1.6) + 125) max = -((level*1 + maglevel*1.8) + 125) return min, max end setCombatCallback(combat1, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues") local combat2 = createCombatObject() setCombatParam(combat2, COMBAT_PARAM_EFFECT, 19) setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat2, COMBAT_PARAM_HITCOLOR, 204) function onGetFormulaValues(cid, level, maglevel) min = -((level*5.4 + maglevel*6.4)) max = -((level*5.5 + maglevel*6.5)) return min, max end setCombatCallback(combat2, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues") local arr1 = { {1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 2, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1}, } local arr2 = { {1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 2, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1}, } local area1 = createCombatArea(arr1) local area2 = createCombatArea(arr2) setCombatArea(combat1, area1) setCombatArea(combat2, area2) local function onCastSpell1(parameters) return isPlayer(parameters.cid) and doCombat(parameters.cid, combat1, parameters.var) end local function onCastSpell2(parameters) return isPlayer(parameters.cid) and doCombat(parameters.cid, combat2, parameters.var) end local areia = {1111, 2222, 3333} local pos = getThingPos(cid) pos.stackpos = 0 function onCastSpell(cid, var) if not isInArray(areia, getTileThingByPos(pos).itemid) then return doPlayerSendTextMessage(cid, 20, "You can't use this spell out of sand!") end local parameters = { cid = cid, var = var} addEvent(onCastSpell1, 100, parameters) addEvent(onCastSpell2, 100, parameters) return true end
  3. ~Edited Tente usar agora. PS: Você modificou o local areia = {} pelos ids dos seus pisos de areia ?
  4. ~Edited Use esse script: local combat1 = createCombatObject() setCombatParam(combat1, COMBAT_PARAM_EFFECT, 35) setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_NONEDAMAGE) setCombatParam(combat1, COMBAT_PARAM_HITCOLOR, 204) function onGetFormulaValues(cid, level, maglevel) min = -((level*1 + maglevel*1.6) + 125) max = -((level*1 + maglevel*1.8) + 125) return min, max end setCombatCallback(combat1, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues") local combat2 = createCombatObject() setCombatParam(combat2, COMBAT_PARAM_EFFECT, 19) setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat2, COMBAT_PARAM_HITCOLOR, 204) function onGetFormulaValues(cid, level, maglevel) min = -((level*5.4 + maglevel*6.4)) max = -((level*5.5 + maglevel*6.5)) return min, max end setCombatCallback(combat2, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues") local arr1 = { {1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 2, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1}, } local arr2 = { {1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 2, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1}, } local area1 = createCombatArea(arr1) local area2 = createCombatArea(arr2) setCombatArea(combat1, area1) setCombatArea(combat2, area2) local function onCastSpell1(parameters) return isPlayer(parameters.cid) and doCombat(parameters.cid, combat1, parameters.var) end local function onCastSpell2(parameters) return isPlayer(parameters.cid) and doCombat(parameters.cid, combat2, parameters.var) end local areia = {1111, 2222, 3333} local pos = getThingPos(cid) pos.stackpos = 0 if not isInArray(areia, getThingfromPos(pos).itemid) then return doPlayerSendTextMessage(cid, 20, "You can't use this spell out of sand!") end function onCastSpell(cid, var) local parameters = { cid = cid, var = var} addEvent(onCastSpell1, 100, parameters) addEvent(onCastSpell2, 100, parameters) return true end Modifique em local areia = {1111, 2222, 3333} pelos ids dos pisos de areia que o player poderá usar a spell.
  5. <movevent type="Equip" itemid="2640" slot="feet" event="function" value="onEquipItem"/> <vocation id="1"/> <vocation id="5" showInDescription="0"/> <vocation id="2"/> <vocation id="6" showInDescription="0"/> </movevent> <movevent type="DeEquip" itemid="2640" slot="feet" event="function" value="onDeEquipItem"/>
  6. Abra a pasta data/XML e abra o arquivo vocations.xml Este é um exemplo informativo para você editar os skills de uma vocation: Legendas First Fighting Club Sword Axe Distance Shielding Fishing Experience Apenas modifique, o valor máximo é 100 para cada um dos skills da vocation.
  7. Abra a pasta data/movements/scripts e crie um arquivo chamado corpsetile.lua Adicione o script: local stor = 4040 local corpseid = 5966 local pos1 = {x=111, y=222, z=333} local pos2 = {x=112, y=223, z=334} local pos3 = {x=113, y=224, z=335} function onStepIn(cid, item, frompos, moveitem, tileitem, position) if isCorpse(getTileItemById(corpseid, pos1).uid) and isCorpse(getTileItemById(corpseid, pos2).uid) and isCorpse(getTileItemById(corpseid, pos3).uid) then setPlayerStorageValue(cid, stor, 1) else doPlayerSendCancel(cid, "Você não pode entrar no teleport.") return false end return true end function onStepOut(cid, item, frompos) if getPlayerStorageValue(cid, stor) >= 1 then setPlayerStorageValue(cid, stor, 0) end return true end Agora na pasta data/movements abra o arquivo movements.xml Adicione as tags: <movevent type="StepIn" actionid="4040" event="script" value="corpsetile.lua"/> <movevent type="StepOut" actionid="4040" event="script" value="corpsetile.lua"/> Configure local stor pelo ID da Storage do Script, local corpseid pelo ID do corpse que será necessário estar nas positions e pos1/pos2/pos3 com as positions x/y/z que os corpses deveram estar para o player poder entrar no teleport. PS: Adicione a ActionID 4040 no piso em que o teleport está.
  8. Sim, tudo bem. Mas então para que serviria o Task System no seu servidor se você quer que o player consiga a StorageID sem ter que faze-las ? Faça algo mais simples como 1 baú que ganha a StorageID, mas tudo bem. Reportado para ser movido.
  9. Sim sim tudo bem, obvio que é mais simples, mas obrigado mesmo assim.
  10. HidekiKty

    Auto Spell

    Abra a pasta data/talkactions/scripts e crie um arquivo chamado repeatspell.lua Adicione o script: function doRepeatSpell(cid, spellname, seconds) if isPlayer(cid) then doCastSpell(cid, spellname) end addEvent(doRepeatSpell, 1000 * seconds, cid, spellname) end function onSay(cid, words, param) if param == "exura" then doRepeatSpell(cid, "Exura", 3) end return false end Agora na pasta data/talkactions abra o arquivo talkactions.xml Adicione a tag: <talkaction words="!autospell" event="script" value="repeatspell.lua"/> exura/Exura é o nick da spell e 3 são em quantos segundos ela será repetida. Ajuda de: Smix
  11. Observe por exemplo nessa parte de uma das tasks do script: Estão configurados absolutamente todos os registros necessários. Nome da task. Nome dos monstros que valem para completar a task (matando). StorageID de ínicio da respectiva task (ao dar ínicio a task). StorageID de finalização da respectiva task (também estando em ordem comparada as outras). Recompensa da respectiva task. Fora isso, aqueles scripts possuem a StorageID 521456 que tem a função de colocar a StorageID de inicialização da task finalizada como 0 e adicionar 1 StorageID de 521456 a cada task finalizada, ou seja, quando possuir mais de 20 dessa StorageID (521456) o player finalizará todas as tasks rank. Não entendi qual foi o seu pedido, então por favor se não foi nada relacionado ao que eu disse sobre o script, explique o que quer.
  12. Use esse script no lugar da sua spell: local combat1 = createCombatObject() setCombatParam(combat1, COMBAT_PARAM_EFFECT, 35) setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_NONEDAMAGE) setCombatParam(combat1, COMBAT_PARAM_HITCOLOR, 204) function onGetFormulaValues(cid, level, maglevel) min = -((level*1 + maglevel*1.6) + 125) max = -((level*1 + maglevel*1.8) + 125) return min, max end setCombatCallback(combat1, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues") local combat2 = createCombatObject() setCombatParam(combat2, COMBAT_PARAM_EFFECT, 19) setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat2, COMBAT_PARAM_HITCOLOR, 204) function onGetFormulaValues(cid, level, maglevel) min = -((level*5.4 + maglevel*6.4)) max = -((level*5.5 + maglevel*6.5)) return min, max end setCombatCallback(combat2, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues") local arr1 = { {1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 2, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1}, } local arr2 = { {1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 2, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1}, } local area1 = createCombatArea(arr1) local area2 = createCombatArea(arr2) setCombatArea(combat1, area1) setCombatArea(combat2, area2) local function onCastSpell1(parameters) return isPlayer(parameters.cid) and doCombat(parameters.cid, combat1, parameters.var) end local function onCastSpell2(parameters) return isPlayer(parameters.cid) and doCombat(parameters.cid, combat2, parameters.var) end function onCastSpell(cid, var) if getPlayerStorageValue(cid, 8585) >= 1 then return false end local parameters = { cid = cid, var = var} addEvent(onCastSpell1, 100, parameters) addEvent(onCastSpell2, 100, parameters) return true end Abra a pasta data/movements/scripts e crie um arquivo chamado spelltile.lua Adicione o script: local stor = 8585 function onStepIn(cid, item, frompos) if getPlayerStorageValue(cid, stor) <= 0 then setPlayerStorageValue(cid, stor, 1) end end function onStepOut(cid, item, frompos) if getPlayerStorageValue(cid, stor) >= 1 then setPlayerStorageValue(cid, stor, 0) end end Em data/movements abra o arquivo movements.xml Adicione as tags: <movevent type="StepIn" actionid="8585" event="script" value="spelltile.lua"/> <movevent type="StepOut" actionid="8585" event="script" value="spelltile.lua"/>
  13. Abra a pasta data/actions/scripts e crie um arquivo chamado gmdoor.lua Adicione o script: local groupid = 4 function onUse(cid, item, frompos) if getPlayerGroupId(cid) >= groupid then else doPlayerSendCancel(cid, "You do not have permission to open the door.") return false end end Agora na pasta data/actions abra o arquivo actions.xml Adicione a tag: <action actionid="9550" event="script" value="gmdoor.lua"/> Coloque a ActionID na porta pelo Map Editor, que você quer que seja aberta apenas pelos que possuirem o GroupID descrito em local groupid. PS: Está configurado para cargos de GM e superiores a ele.
  14. ~Edited MaXwEllDeN Exatamente, apenas errou em: Já a vírgula como disse antes, é preferêncial.
  15. Oh me desculpe, esqueci um detalhe. Mude a parte: if getTileThingByPos(pos).itemid >= 1 or getTileItemById(getThingPos(cid), 406).itemid <= 0 then doPlayerSendCancel(cid, "You can\'t use the fly here.") return true end por: if getTileThingByPos(pos).itemid >= 1 or getTileItemById(getThingPos(cid), 406).itemid <= 0 then doPlayerSendCancel(cid, "You can\'t use the fly here.") return false end PS: Há duas dessas partes no script, portanto modifique-as. Tente agora.
  16. Se preferir um script que ganhe os dois itens em uma única ação, ou seja, em um único baú: Abra a pasta data/actions/scripts e crie um arquivo chamado blessedgolden.lua Adicione o script: local config = { stor = 5555, item1 = 2523, item2 = 2471, } function onUse(cid, item, frompos, item2, topos) if getPlayerStorageValue(cid, config.stor) <= 0 then doPlayerAddItem(cid, config.item1, 1) doPlayerAddItem(cid, config.item2, 1) setPlayerStorageValue(cid, config.stor, 1) doPlayerSendTextMessage(cid, 27, "You have found a Blessed Shield and a Golden Helmet.") else doPlayerSendTextMessage(cid, 27, "You\'ve done this quest.") end return false end Agora na pasta data/actions abra o arquivo actions.xml Adicione a tag: <action actionid="xxxx" event="script" value="blessedgolden.lua"/> Modifique xxxx pelo ActionID que será adicionado ao báu no Map Editor.
  17. Certo amigo, teste esse script: local vocation = 5 local aar = { [2] = {lookType = 367}, -- Teste [24] = {lookType = 367}, -- Shino [39] = {lookType = 367}, -- Shino [54] = {lookType = 367}, -- Shino [109] = {lookType = 330} -- Deidara } local aterra = { [2] = {lookType = 160}, -- Teste [24] = {lookType = 367}, -- Shino [39] = {lookType = 367}, -- Shino [54] = {lookType = 367}, -- Shino [109] = {lookType = 160} -- Deidara } function onSay(cid, words, param, channel) local oar = getCreaturePosition(cid) local oterra = getCreaturePosition(cid) local pos = getThingPos(cid) pos.z = pos.z-1 pos.stackpos = 0 if getPlayerVocation(cid) ~= vocation then doPlayerSendCancel(cid, "You can\'t use the fly.") return false end if getTileThingByPos(pos).itemid >= 1 or getTileItemById(getThingPos(cid), 406).itemid <= 0 then doPlayerSendCancel(cid, "You can\'t use the fly here.") return true end if getThingPos(cid).z == 0 then doPlayerSendCancel(cid, "You can\'t go higher!") return true end if getTileThingByPos(pos).itemid >= 1 or getTileItemById(getThingPos(cid), 1386).itemid >= 1 then doPlayerSendCancel(cid, "You can\'t fly through constructions.") return false end if getTilePzInfo(getCreaturePosition(cid)) then return doPlayerSendCancel(cid, "You may not use the fly in protection zones.") elseif getPlayerStorageValue(cid, 1635215) <= 0 then local voc_id = getPlayerVocation(cid) doSetCreatureOutfit(cid, aar[voc_id], -1) noar = {x=oar.x, y=oar.y, z=oar.z} noar.y = noar.y - 0 noar.z = noar.z - 2 doTeleportThing(cid,noar) doPlayerSendCancel(cid, "You\'re flying, be careful.") doSendMagicEffect(noar, CONST_ME_WATERSPLASH) setPlayerStorageValue(cid, 1635215, 1) else local poss = getThingPos(cid) poss.z = poss.z+1 poss.stackpos = 0 if getPlayerVocation(cid) ~= vocation then doPlayerSendCancel(cid, "You can\'t use the fly.") return false end if getTileThingByPos(pos).itemid >= 1 or getTileItemById(getThingPos(cid), 406).itemid <= 0 then doPlayerSendCancel(cid, "You can\'t use the fly here.") return true end if getThingPos(cid).z == 0 then doPlayerSendCancel(cid, "You can\'t go higher!") return true end if getTileThingByPos(poss).itemid >= 1 or getTileItemById(getThingPos(cid), 1386).itemid >= 1 then doPlayerSendCancel(cid, "You can\'t fly through constructions.") return false end if getTilePzInfo(getCreaturePosition(cid)) then return doPlayerSendCancel(cid, "You may not use the fly in protection zones.") elseif getPlayerVocation(cid) > 0 then local voc_id = getPlayerVocation(cid) doSetCreatureOutfit(cid, aterra[voc_id], -1) naterra = {x=oterra.x, y=oterra.y, z=oterra.z} naterra.y = naterra.y - 0 naterra.z = naterra.z + 2 doTeleportThing(cid,naterra) doPlayerSendCancel(cid, "You went off the air.") doSendMagicEffect(naterra, CONST_ME_POFF) setPlayerStorageValue(cid, 1635215, -1) end end return true end Apenas configure o local vocation = 5 pelo ID da vocation que poderá usar o fly.
  18. iunix Tudo bem amigo, mas esse é um tópico de Pedido, ou seja, todos que quiserem ajudar podem dar suas idéias até que o autor se satisfaça. caotic quis fazer desse modo, então não há o que questionar. Apenas faça do seu jeito em vez de atrapalhar a postagem com correções e comentários desnecessários. jhonatanp Você não expecificou corretamente quantas vocations seriam, então fiz 2 opções. Uma promotion para cada vocation, ou seja, (druid(elder druid), sorcerer(master sorcerer), paladin(royal paladin), knight(elite knight). Abra a pasta data/actions/scripts e crie um arquivo chamado itemvocation.lua Adicione o script: local config = { voc = getPlayerVocation(cid), notp = isPlayer(item2.iud), cre1 = getCreatureName(item2.uid), cre2 = getCreatureName(cid), } function onUse(cid, item, frompos, item2, topos) if not config.notp or config.cre1 ~= config.cre2 then doPlayerSendCancel(cid, "Você só pode usar em si mesmo.") return false end if voc <= 4 and getPlayerItem(cid, item2.uid) >= 1 then doPlayerRemoveItem(cid, item2.uid) doPlayerSetVocation(cid, voc+4) elseif voc >=5 then doPlayerSendTextMessage(cid, 22, "Você já mudou de vocação.") end return true end end ou, uma vocation expecífica para ser mudada a outra expecífica. Adicione o script ao mesmo arquivo já criado como na opção anterior (itemvocation.lua): local config = { newvoc = 2, oldvoc = 1, notp = isPlayer(item2.iud), cre1 = getCreatureName(item2.uid), cre2 = getCreatureName(cid), } function onUse(cid, item, frompos, item2, topos) if not config.notp or config.cre1 ~= config.cre2 then doPlayerSendCancel(cid, "Você só pode usar em si mesmo.") return false end if getPlayerVocation(cid) == config.oldvoc then doPlayerRemoveItem(cid, item2.uid) doPlayerSetVocation(cid, config.newvoc) elseif getPlayerVocation(cid) == config.newvoc then doPlayerSendTextMessage(cid, 22, "Você já mudou de vocação.") end return true end end Em newvoc é o ID da nova vocation que o player receberá, e em oldvoc é o ID da vocation que o player precisa ter para mudar para a nova, ou seja, usar o item. O resto, não modifique. Agora na pasta data/actions abra o arquivo actions.xml Adicione a tag: <action itemid="xxxx" event="script" value="itemvocation.lua"/> Em xxxx mude para o ID do item que será usado pelo player. PS: A tag pode ser usada para ambas opções.
  19. iunix Cara, preste atenção no script do caotic: function onUse(cid, item, frompos, item2, topos) O player fez o pedido de usar como uma runa nele mesmo, ou seja, (item2(use with...)). caotic colocou: if not isPlayer(item2.uid) then if getCreatureName(item2.uid) ~= getCreatureName(cid) then Para o player não usar o item (item2(use with...)) em um monstro ou em outro player, somente nele mesmo. Quem deveria ter pensado nisso é voce. Estou sem Rep - agora.
  20. ~Edited Retirei aquela parte, tente agora. Se der problemas como ter possibilidade de descer com objetos abaixo, avise.
  21. 日本!ぼくはせいと。。。
  22. ~Edited Subistitua seu script por esse: local lower = {'460'} local aar = { [2] = {lookType = 367}, -- Teste [24] = {lookType = 367}, -- Shino [39] = {lookType = 367}, -- Shino [54] = {lookType = 367}, -- Shino [109] = {lookType = 330} -- Deidara } local aterra = { [2] = {lookType = 160}, -- Teste [24] = {lookType = 367}, -- Shino [39] = {lookType = 367}, -- Shino [54] = {lookType = 367}, -- Shino [109] = {lookType = 160} -- Deidara } function onSay(cid, words, param, channel) local oar = getCreaturePosition(cid) local oterra = getCreaturePosition(cid) local pos = getThingPos(cid) pos.z = pos.z-1 pos.stackpos = 0 if isInArray({460}, getTileInfo(getThingPos(cid)).itemid) then doPlayerSendCancel(cid, "You can\'t stop flying at this height!") return true end if getTileThingByPos(pos).itemid >= 1 or getTileItemById(getThingPos(cid), 1386).itemid >= 1 then doPlayerSendCancel(cid, "You can\'t fly through constructions.") return false end if getTilePzInfo(getCreaturePosition(cid)) then return doPlayerSendCancel(cid, "O item nao tem poder em Protection Zones.") elseif getPlayerStorageValue(cid, 1635215) <= 0 then local voc_id = getPlayerVocation(cid) doSetCreatureOutfit(cid, aar[voc_id], -1) noar = {x=oar.x, y=oar.y, z=oar.z} noar.y = noar.y - 0 noar.z = noar.z - 2 doTeleportThing(cid,noar) doPlayerSendCancel(cid, "Você está voando, tome cuidado.") doSendMagicEffect(noar, CONST_ME_WATERSPLASH) setPlayerStorageValue(cid, 1635215, 1) else if getPlayerVocation(cid) > 0 then local voc_id = getPlayerVocation(cid) doSetCreatureOutfit(cid, aterra[voc_id], -1) naterra = {x=oterra.x, y=oterra.y, z=oterra.z} naterra.y = naterra.y - 0 naterra.z = naterra.z + 2 doTeleportThing(cid,naterra) doPlayerSendCancel(cid, "Você saiu do ar.") doSendMagicEffect(naterra, CONST_ME_POFF) setPlayerStorageValue(cid, 1635215, -1) end end return true end Agora vá a pasta data/movements/scripts e crie um arquivo chamado fly.lua Adicione o script: local del = {'460'} function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor) position.stackpos = 0 if getPlayerStorageValue(cid, 17000) <= 0 then doTeleportThing(cid, fromPosition, false) doRemoveItem(getTileThingByPos(position).uid, 1) doPlayerSendCancel(cid, "You can't fly.") return true end doAreaCombatHealth(cid, FLYSYSTEMDAMAGE, getThingPos(cid), splash, 0, 0, 255) local pos = getThingPos(cid) if pos.z == 7 then return true end pos.z = pos.z + 1 for i = 0, 255 do pos.stackpos = i local tile = getTileThingByPos(pos) if tile.itemid ~= 0 and not isCreature(tile.uid) then end end return true end function onStepOut(cid, item, position, lastPosition, fromPosition, toPosition, actor) local effect = 2 if toPosition.z == fromPosition.z and getCreatureOutfit(cid).lookType ~= 316 and getCreatureOutfit(cid).lookType ~= 648 then doSendMagicEffect(fromPosition, effect) end local oldtpos = fromPosition oldtpos.stackpos = STACKPOS_GROUND if getTileThingByPos(oldtpos).itemid >= 1 then doRemoveItem(getTileThingByPos(oldtpos).uid, 1) end return true end Agora em data/movements abra o arquivo movements.xml Adicione as tags: <movevent type="StepIn" itemid="460" event="script" value="fly.lua"/> <movevent type="StepOut" itemid="460" event="script" value="fly.lua"/> Veja se resolve.
  23. Para não aparecer o !fly durante as mensagens das construções, mude a parte: doPlayerSendCancel(cid, "You can\'t fly through constructions.") return false end por: doPlayerSendCancel(cid, "You can\'t fly through constructions.") return true end Agora sobre esse "piso/title invisivel", não entendi o que quis dizer. Qual o ID dele e qual a função dele ?
  • Quem Está Navegando   0 membros estão online

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