Ir para conteúdo

jhon992

Conde
  • Total de itens

    631
  • Registro em

  • Última visita

  • Dias Ganhos

    13

Tudo que jhon992 postou

  1. Tava com preguiça de analisar a magia do @Oneshot, tão fiz essa: local quantSqm = 3 -- quantidade de sqms function teleportPlayer(cid, position) if (isPlayer(cid)) then local o = 0 local positions = {} for i=1, quantSqm do if getPlayerLookDir(cid) == 0 then position = {x=position.x, y=position.y-i, z=position.z} elseif getPlayerLookDir(cid) == 1 then position = {x=position.x+i, y=position.y, z=position.z} elseif getPlayerLookDir(cid) == 2 then position = {x=position.x, y=position.y+i, z=position.z} elseif getPlayerLookDir(cid) == 3 then position = {x=position.x-i, y=position.y, z=position.z} end positions[#positions] = position if isWalkable(position) then o = o+1 end end if o == 3 then doTeleportThing(cid, position) for i=1, #positions do doSendMagicEffect(positions[i], CONST_ME_TELEPORT) end return true else doPlayerSendCancel(cid, "Você não pode atravesar isso!") return false end end end function isWalkable(pos, creature, pz, proj) -- nord if getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid == 0 then return false end local creature = getTopCreature(pos) if creature.type > 0 then return false end if getTilePzInfo(pos) and not pz then return false end local n = not proj and 3 or 2 for i = 0, 255 do pos.stackpos = i local tile = getTileThingByPos(pos) if tile.itemid ~= 0 and not isCreature(tile.uid) then if hasProperty(tile.uid, n) or hasProperty(tile.uid, 7) then return false end end end return true end function onCastSpell(cid, var) if teleportPlayer(cid, getPlayerPosition(cid)) then return true end end Ja ta testada.
  2. A magia para poder usar outras vai ser assim: local config = { tempo = 1, -- duração em minutos life = -5, -- quantidade de remoção de life por segundo mana = -5, -- quantidade de remoção de mana por segundo } local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_EFFECT, 30) -- effect que ira sair setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, 0) local condition = createConditionObject(CONDITION_REGENERATION) setConditionParam(condition, CONDITION_PARAM_SUBID, 1) setConditionParam(condition, CONDITION_PARAM_BUFF, TRUE) setConditionParam(condition, CONDITION_PARAM_TICKS, config.tempo*60*1000) setConditionParam(condition, CONDITION_PARAM_HEALTHGAIN, config.health) setConditionParam(condition, CONDITION_PARAM_HEALTHTICKS, 1000) setConditionParam(condition, CONDITION_PARAM_MANAGAIN, config.mana) setConditionParam(condition, CONDITION_PARAM_MANATICKS, 1000) setCombatCondition(combat, condition) local sys = createConditionObject(CONDITION_OUTFIT) setConditionParam(sys, CONDITION_PARAM_TICKS, config.tempo*60*1000) setCombatCondition(combat, sys) function onCastSpell(cid, var) setPlayerStorageValue(cid, 430212, 1) return doCombat(cid, combat, var) end Para desativar: function onCastSpell(cid, var) doRemoveCondition(cid, CONDITION_REGENERATION) setPlayerStorageValue(cid, 430212, -1) return true end E para poder usar qualquer outra magia depois de ativar essa, na magia determinada após isso: function onCastSpell(cid, var) Cole: if getPlayerStorageValue(cid, 430212) then doPlayerSendCancel(cid, "Você não pode usar essa magia!") return false end
  3. @VicToRHuGo95, basta trocar essa porte que ta 15 por 30. local requiredTime = 15 -- dias pra executar. No globalevents.xml poe a tag assim: <globalevent name="cleanhouse" interval="18000" event="script" value="NOMEDOARQUIVO.lua"/>
  4. jhon992

    Bug transformação

    Assim remove-ra seu erro. Ele estava ocorrendo pois nas funções de adicionar a transformação ele não encontrava o creatureid valido, isso ocorre quando você se transforma e desloga ou morre. Agora esta arrumado. local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_GREEN) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, 0) local condition = createConditionObject(CONDITION_OUTFIT) setConditionParam(condition, CONDITION_PARAM_TICKS, 86400000) addOutfitCondition(condition, 0, 71, 0, 0, 0, 0) setCombatCondition(combat, condition) -- // Goku TRANGokuSSJ = {lookType = 438} TRANGokuHSSJ = {lookType = 438} TRANGokuSSJ2 = {lookType = 439} TRANGokuSSJ3 = {lookType = 440} TRANBGoku = {lookType = 354} TRANBGokuSSJ = {lookType = 259} TRANRBGokuSSJ = {lookType = 138} TRANRBGokuSSJ2 = {lookType = 139} TRANRBGokuSSJ3 = {lookType = 140} TRANRBGokuSSJ4 = {lookType = 66} OXT = 500 EXT = 1000 -- // GOKU / ---- function EFGokuHSSJ(cid) if isPlayer(cid) then if getPlayerVocation(cid) == 403 then if getPlayerMana(cid) >= 0 then doSendMagicEffect(getPlayerPosition(cid), 234) addEvent(EFGokuHSSJ,EXT,cid) end end end end function EFGokuSSJ2(cid) if isPlayer(cid) then if getPlayerVocation(cid) == 404 then if getPlayerMana(cid) >= 0 then doSendMagicEffect(getPlayerPosition(cid), 13) addEvent(EFGokuSSJ2,EXT,cid) end end end end function EFGokuSSJ3(cid) if isPlayer(cid) then if getPlayerVocation(cid) == 405 then if getPlayerMana(cid) >= 0 then doSendMagicEffect(getPlayerPosition(cid), 13) addEvent(EFGokuSSJ3,EXT,cid) end end end end function EFBGokuSSJ(cid) if isPlayer(cid) then if getPlayerVocation(cid) == 407 then if getPlayerMana(cid) >= 0 then doSendMagicEffect(getPlayerPosition(cid), 234) addEvent(EFBGokuSSJ,EXT,cid) end end end end function EFRBGokuSSJ2(cid) if isPlayer(cid) then if getPlayerVocation(cid) == 410 then if getPlayerMana(cid) >= 0 then doSendMagicEffect(getPlayerPosition(cid), 234) addEvent(EFRBGokuSSJ2,EXT,cid) end end end end function EFRBGokuSSJ3(cid) if isPlayer(cid) then if getPlayerVocation(cid) == 411 then if getPlayerMana(cid) >= 0 then doSendMagicEffect(getPlayerPosition(cid), 234) addEvent(EFRBGokuSSJ3,EXT,cid) end end end end -- // END function onCastSpell(cid, var) -- GOKU/ GOKU SSJ -- if getPlayerVocation(cid) == 400 then if getPlayerLevel(cid) >= 50 then doPlayerSetVocation(cid,402) doSetCreatureOutfit(cid, TRANGokuSSJ, -1) doSendMagicEffect(getPlayerPosition(cid), 56) else doPlayerSendCancel(cid, "You Need 50 Level To First Transform.") doSendMagicEffect(getPlayerPosition(cid), 2) end -- GOKU SSJ/ GOKU HYPER SSJ -- elseif getPlayerVocation(cid) == 402 then if getPlayerLevel(cid) >= 75 then doPlayerSetVocation(cid,403) doSetCreatureOutfit(cid, TRANGokuHSSJ, -1) addEvent(EFGokuHSSJ,EXT,cid) doSendMagicEffect(getPlayerPosition(cid), 57) else doPlayerSendCancel(cid, "You Need 75 Level To First Transform.") doSendMagicEffect(getPlayerPosition(cid), 2) end -- GOKU HYPER SSJ/ GOKU SSJ2 -- elseif getPlayerVocation(cid) == 403 then if getPlayerLevel(cid) >= 100 then doPlayerSetVocation(cid,404) doSetCreatureOutfit(cid, TRANGokuSSJ2, -1) addEvent(EFGokuSSJ2,EXT,cid) doSendMagicEffect(getPlayerPosition(cid), 58) else doPlayerSendCancel(cid, "You Need 100 Level To First Transform.") doSendMagicEffect(getPlayerPosition(cid), 2) end -- GOKU SSJ2/ GOKU SSJ3 -- elseif getPlayerVocation(cid) == 404 then if getPlayerLevel(cid) >= 150 then doPlayerSetVocation(cid,405) doSetCreatureOutfit(cid, TRANGokuSSJ3, -1) addEvent(EFGokuSSJ3,EXT,cid) doSendMagicEffect(getPlayerPosition(cid), 59) else doPlayerSendCancel(cid, "You Need 150 Level To First Transform.") doSendMagicEffect(getPlayerPosition(cid), 2) end -- GOKU SSJ3/ BIG GOKU -- elseif getPlayerVocation(cid) == 405 then if getPlayerLevel(cid) >= 180 then doPlayerSetVocation(cid,406) doSetCreatureOutfit(cid, TRANBGoku, -1) doSendMagicEffect(getPlayerPosition(cid), 8) else doPlayerSendCancel(cid, "You Need 180 Level To First Transform.") doSendMagicEffect(getPlayerPosition(cid), 2) end -- BIG GOKU/ BIG GOKU SSJ -- elseif getPlayerVocation(cid) == 406 then if getPlayerLevel(cid) >= 200 then doPlayerSetVocation(cid,407) doSetCreatureOutfit(cid, TRANBGokuSSJ, -1) addEvent(EFBGokuSSJ,EXT,cid) doSendMagicEffect(getPlayerPosition(cid), 150) else doPlayerSendCancel(cid, "You Need 200 Level To First Transform.") doSendMagicEffect(getPlayerPosition(cid), 2) end -- RB -- -- GOKU/ GOKU SSJ -- elseif getPlayerVocation(cid) == 408 then if getPlayerLevel(cid) >= 200 then doPlayerSetVocation(cid,413) doSetCreatureOutfit(cid, TRANRBGokuSSJ4, -1) doSendMagicEffect(getPlayerPosition(cid), 60) else if getPlayerLevel(cid) >= 50 then doPlayerSetVocation(cid,409) doSetCreatureOutfit(cid, TRANRBGokuSSJ, -1) doSendMagicEffect(getPlayerPosition(cid), 249) else doPlayerSendCancel(cid, "You Need 50 Level To First Transform.") doSendMagicEffect(getPlayerPosition(cid), 2) end end -- GOKU/ GOKU SSJ -- elseif getPlayerVocation(cid) == 409 then if getPlayerLevel(cid) >= 100 then doPlayerSetVocation(cid,410) doSetCreatureOutfit(cid, TRANRBGokuSSJ2, -1) addEvent(EFRBGokuSSJ2,EXT,cid) doSendMagicEffect(getPlayerPosition(cid), 250) else doPlayerSendCancel(cid, "You Need 100 Level To First Transform.") doSendMagicEffect(getPlayerPosition(cid), 2) end -- GOKU/ GOKU SSJ -- elseif getPlayerVocation(cid) == 410 then if getPlayerLevel(cid) >= 150 then doPlayerSetVocation(cid,411) doSetCreatureOutfit(cid, TRANRBGokuSSJ3, -1) addEvent(EFRBGokuSSJ3,EXT,cid) doSendMagicEffect(getPlayerPosition(cid), 251) else doPlayerSendCancel(cid, "You Need 150 Level To First Transform.") doSendMagicEffect(getPlayerPosition(cid), 2) end -- GGOKU/ GOKU SSJ4 -- elseif getPlayerVocation(cid) == 412 then if getPlayerLevel(cid) >= 200 then doPlayerSetVocation(cid,413) doSetCreatureOutfit(cid, TRANRBGokuSSJ4, -1) doSendMagicEffect(getPlayerPosition(cid), 60) else doPlayerSendCancel(cid, "You Need 200 Level To First Transform.") doSendMagicEffect(getPlayerPosition(cid), 2) end -- // END else doPlayerSendCancel(cid, "You Cannot Be Stronger.") doSendMagicEffect(getPlayerPosition(cid), 2) end end
  5. cria um arquivo .lua com o nome removefrags na pasta data/talkactions/scripts, cole: function onSay(cid, words, param) local quantMoney = 5000 -- quantidade de gps local noRemove = {SKULL_YELLOW} local playerSkull = getPlayerSkullType(cid) if isInArray(noRemove, playerSkull) then doPlayerSendCancel(cid, "You can't remove this type of skull.") doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF) return true elseif playerSkull == SKULL_NONE then doPlayerSendCancel(cid, "You don't have skull.") doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF) return true elseif not doPlayerRemoveMoney(cid, quantMoney) then doPlayerSendCancel(cid, "You do not have money.") return true db.executeQuery("UPDATE `killers` SET `unjustified` = 0 WHERE `id` IN (SELECT `kill_id` FROM `player_killers` WHERE `player_id` = " .. getPlayerGUID(cid) .. ")") doPlayerSendTextMessage(cid, 27, "Your frags & your skull have been removed!") doSendMagicEffect(getPlayerPosition(cid), CONST_ME_MAGIC_RED) doSendAnimatedText(getPlayerPosition(cid), "POFF!", 180) doCreatureSetSkullType(cid,0) doPlayerSetSkullEnd(cid, 0, playerSkull) end return true end em talkactions.xml cole a tag: <talkaction words="!removefrags" event="script" value="removefrags.lua"/> Créditos: @NatsuMcDonald http://www.xtibia.co...ls-e-frags-mod/
  6. tenta: local condition = createConditionObject(CONDITION_PARALYZE) setConditionParam(condition, CONDITION_PARAM_TICKS, 1 * 1000) setConditionFormula(condition, -0.9, 0, -0.9, 0) function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor) doAddCondition(cid, condition) doRemoveItem(item.uid) return doAreaCombatHealth(0, COMBAT_ICEDAMAGE, getThingPosition(cid), 0, -150, -150, CONST_ME_ICEATTACK) end Se for da +rep da por Oneshot!
  7. To baixando pra fazer meus testes. Sempre trazendo novidades em otserv @Bekki, parabéns. Merece meu +Rep.
  8. Não sei, pode ser erro na tua lib. Última chance, tenta usar esse: function getTilePzInfoz(pos) return getTileInfo(pos).protection end function onThink(cid, interval) if getTilePzInfoz(getCreaturePosition(cid)) then return true end local minuto = 1 -- quantos minuto para atravesar o player. local protectionLevel = 100 -- protection level do server. local position = getPlayerPosition(cid) if getPlayerLookDir(cid) == 0 then position = {x=position.x, y=position.y-1, z=position.z} elseif getPlayerLookDir(cid) == 1 then position = {x=position.x+1, y=position.y, z=position.z} elseif getPlayerLookDir(cid) == 2 then position = {x=position.x, y=position.y+1, z=position.z} elseif getPlayerLookDir(cid) == 3 then position = {x=position.x-1, y=position.y, z=position.z} end for i = 0, 255 do local o = 0 position.stackpos = i local tile = getTileThingByPos(position) if isPlayer(tile.uid) and getPlayerLevel(tile.uid) < protectionLevel then local o = 1 setPlayerStorageValue(cid, 56421, getPlayerStorageValue(cid,56421)+1) if getPlayerStorageValue(cid, 56421) >= 120*minuto then setPlayerStorageValue(cid, 56421, 0) doTeleportThing(cid, getPlayerPosition(tile.uid)) end break elseif i == 255 and o == 0 then setPlayerStorageValue(cid, 56421, 0) end end return true end
  9. @Lucas502, qual a versão do seu server? O script ta totalmente funcional aqui, o erro ae deve ser conflito de versão, esse script deve funcionar com todo otserv 8.54+.
  10. Mudei la em cima, quem sabe funciona para os outros agora. Caso algum erro posta aqui.
  11. A logica é a mesma que na outra linguagem, sóh irá mudar as funções: local online = getPlayersOnline() -- retorna todos os players online for i=1, #online do -- abre uma estrutura de repetição que vai de 1 até a última posição do vetor online. if getPlayerStorageValue(online[i], 12345) > 0 then -- verifica se o player da posição i do vetor tem a determinada storage. doPlayerAddMoney(online[i], 1000000) -- adiciona 10kk ao player da posição i do vetor. end -- finaliza o if end -- finaliza o for Lista de função que pode te ajudar nos seus códigos: http://www.xtibia.co...sta-de-funcoes/ -edit Tava escrevendo e nem tinha visto que o Vod postou. Agora que ja postei deixa aew, quem sabe ajuda ele a entender melhor.
  12. @waltinn, é mesmo não tava funfando, adicionei umas coisas no script depois de testar dae bugo e eu nem vi. + agora ta arrumadinho la em cima, pode testar.
  13. Claro que não. asjida Tenta se virar aew que tu consegue, é passando trabalho que se aprende.
  14. Vai em data/creaturescripts/scripts, duplica um arquivo e nomeia para "antitrap" sem as aspas e nele cole: function onThink(cid, interval) if getTilePzInfo(getCreaturePosition(cid)) then return true end local minuto = 1 -- quantos minuto para atravesar o player. local protectionLevel = 100 -- protection level do server. local position = getPlayerPosition(cid) if getPlayerLookDir(cid) == 0 then position = {x=position.x, y=position.y-1, z=position.z} elseif getPlayerLookDir(cid) == 1 then position = {x=position.x+1, y=position.y, z=position.z} elseif getPlayerLookDir(cid) == 2 then position = {x=position.x, y=position.y+1, z=position.z} elseif getPlayerLookDir(cid) == 3 then position = {x=position.x-1, y=position.y, z=position.z} end for i = 0, 255 do local o = 0 position.stackpos = i local tile = getTileThingByPos(position) if isPlayer(tile.uid) and getPlayerLevel(tile.uid) < protectionLevel then local o = 1 setPlayerStorageValue(cid, 56421, getPlayerStorageValue(cid,56421)+1) if getPlayerStorageValue(cid, 56421) >= 120*minuto then setPlayerStorageValue(cid, 56421, 0) doTeleportThing(cid, getPlayerPosition(tile.uid)) end break elseif i == 255 and o == 0 then setPlayerStorageValue(cid, 56421, 0) end end return true end Depois em data/creaturescripts/creaturescripts.xml cole a tag: <event type="think" name="AntiTrap" event="script" value="antitrap.lua"/> E por último no arquivo data/creaturescripts/scripts/login.lua, antes do último "return true" cole: registerCreatureEvent(cid, "AntiTrap") --------------------------------------------- Vai funcionar assim, se tu ficar virado na direção do player por 1 minuto e o level dele for mais baixo que o level de proteção do server, seu char vai ser teleportado para a posição do char low level. Isso vai funcionar apenas fora de protection zones.
  15. jhon992

    !afk On

    Verifica se não ta na pasta mods do seu ot, ali junto ao executável. Se tiver, basta excluir o arquivo.XML correspondente.
  16. Ja que o spoiler do Vilden não ficou certinho, vou mostrar oque tem que fazer pra teleporta ao templo. Primeiro tu vai instalar todo o script do "Antha Anti-Bot System". Depois abrir o arquivo "anthaab.lua" da pasta globalevents/scripts e trocar tudo que tem dentro por isso: function onThink(interval, lastExecution) for x=1,#getOnlinePlayers() do if getPlayerAccess(getCreatureByName(getOnlinePlayers()[x])) < 4 and (not isPlayerPzLocked(getCreatureByName(getOnlinePlayers()[x]))) and getOnlinePlayers()[x] ~= "Account Manager" then if getPlayerStorageValue(getCreatureByName(getOnlinePlayers()[x]),9564) == -1 then local numero = math.random(0,99999) doPlayerSendTextMessage(getCreatureByName(getOnlinePlayers()[x]), MESSAGE_STATUS_WARNING, 'Anti-bot system by Antharaz. Seu número de confirmação anti-bot é: '..numero..'. Por favor digite !anthaab XXXXX onde XXXXX é seu número de confirmação.') setPlayerStorageValue(getCreatureByName(getOnlinePlayers()[x]),9564,numero) elseif getPlayerStorageValue(getCreatureByName(getOnlinePlayers()[x]),9565) == -1 then setPlayerStorageValue(getCreatureByName(getOnlinePlayers()[x]),9565,1) doPlayerSendTextMessage(getCreatureByName(getOnlinePlayers()[x]), MESSAGE_STATUS_WARNING, 'Último aviso. Confirme seu número gerado pelo sistema anti-bot pelo comando !anthaab ou você será teleportado ao templo.') elseif getPlayerStorageValue(getCreatureByName(getOnlinePlayers()[x]),9565) == 1 then doTeleportThing(getOnlinePlayers()[x], getTownTemplePosition(getPlayerTown(getOnlinePlayers()[x]))) setPlayerStorageValue(getCreatureByName(getOnlinePlayers()[x]),9565,-1) end end end return TRUE end Agora essa tag no globalevents.xml: <globalevent name="anthaab" interval="900" event="script" value="anthaab.lua"/> O interval="900" faz o script executar a todos os players online a cada 15 minutos, ja que você quer verificar a cada 5 horas troque o 900 por 18000. Ficando assim: <globalevent name="anthaab" interval="18000" event="script" value="anthaab.lua"/>
  17. Isso fica na sourcers do deu otserv, essas sourcers são utilizadas para compilar o executavel do ot. Você pode aprender mais sobre como compilar nesses links abaixo: http://www.xtibia.com/forum/topic/145300-c-compilando-um-otserv/ http://www.xtibia.com/forum/topic/137298-dev-c-como-compilar-um-otserv/ Alguns servers que tem pra download não possuem suas respectivas sourcers. Mesmo assim tente procurar as sources do seu server no tópico em que você fez o download.
  18. @adolfuu, malz aew por não poder ajudar. Tava sem internet dae nem deu de responder. Oque tinha de errado no meu script é que fiz a comparação errada. Pra arrumar bastava trocar essa linha: if isInArray(itensCheckMesa1, getThingfromPos(posItensMesa1).itemid) then por essa: if itensCheckMesa1[i] == getThingfromPos(posItensMesa1).itemid then e essa: if isInArray(itensCheckMesa2, getThingfromPos(posItensMesa2).itemid) then por essa: if itensCheckMesa2[i] == getThingfromPos(posItensMesa2).itemid then
  19. jhon992

    Pedras De Magia

    #Reportado por pedido atendido.
  20. jhon992

    Duvida Com Outfit

    @Leoxtibia, procura por um tutorial de Dat Editor, achei esse aqui mais parece antigo: http://www.xtibia.com/forum/topic/38886-criando-monstros-dat-editor/ Então procure por outros tutos que você encontrara. E evite responder aqui com duvidas que não são relacionadas ao este tópico, caso mais alguma dúvida pergunte pra min via PM.
  21. jhon992

    Pedras De Magia

    Você deve ir na pasta data/actions/scripts, duplicar um arquivo e nomeia para "learn_rune" sem as aspas e nele cole: function onUse(cid, item, fromPosition, itemEx, toPosition) local spellName = "Light Healing" -- nome da spell que aprendera, os nomes das spells se encontrar no arquivo spells.xml local lvlNeed = 8 -- lvl necessario para usar essa pedra. if getPlayerLevel(cid) >= lvlNeed then doPlayerLearnInstantSpell(cid, spellName) doRemoveItem(item.uid) else doPlayerSendCancel(cid, "Você não possui o level necessario!") end return true end Agora em actions.xml cole a tag: <action itemid="8306" script="learn_rune.lua"/> Ali em cima no lugar do 8306, você poem o id da pedra que você vai usar para ganhar a spell. E por último, você deve ir na spell que você escolheu no spells.xml e trocar a parte que tiver essa tag: needlearn="0" Por: needlearn="1" Prontinho, e não esquece de configurar o nome da spell e o level para usar a pedra no arquivo "learn_rune".
  22. jhon992

    Npc retira item

    local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local talkUser = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid -- Conversa Jogador/NPC if(msgcontains(msg, 'offer') or msgcontains(msg, 'Offer')) then selfSay('I can make an item element or amulets energyze your item element, I just need all "paste", "charm" or "spells" amulet, can also bless a mortal and reset a little god! To see what types of necklaces I say energyze "energyze amulets".', cid) elseif(msgcontains(msg, 'energyze amulets') or msgcontains(msg, 'Energyze Amulets')) then selfSay('I can tell your amulet energyze just say "energyze elemental necklace" "energyze elemental spirit amulet" "energyze elemental magic amulet.', cid) --talkState[talkUser] = 1 elseif(msgcontains(msg, 'bless') or msgcontains(msg, 'Bless')) then selfSay('want to buy bless?', cid) talkState[talkUser] = 2 elseif(msgcontains(msg, 'energyze elemental necklace') or msgcontains(msg, 'Energyze Elemental Necklace')) then selfSay('I can energyze your elemental necklace for 50k, would you like to energyza?', cid) talkState[talkUser] = 3 elseif(msgcontains(msg, 'elemental necklace') or msgcontains(msg, 'Elemental Necklace')) then selfSay('You change a mysterious, dragon breath, scorpion, platinum, fluids and vampire tooth,change all for a Elemental necklace?', cid) talkState[talkUser] = 4 elseif(msgcontains(msg, 'energyze spirit elemental amulet') or msgcontains(msg, 'Energyze Spirit Elemental Amulet')) then selfSay('I can energyze your spirit elemental amulet for 100k, would you like to energyza?', cid) talkState[talkUser] = 5 elseif(msgcontains(msg, 'spirit elemental amulet') or msgcontains(msg, 'Spirit Elemental Amulet')) then selfSay('You change a need a Ialamar, frozzen, sickness, Samantha, Mastafar, priest and eletric, change for a Spirit Elemental amulet?', cid) talkState[talkUser] = 6 elseif(msgcontains(msg, 'energyze magic elemental amulet') or msgcontains(msg, 'Energyze Magic Elemental Amulet')) then selfSay('I can energyze your magic elemental amulet for 150k, would you like to energyza?', cid) talkState[talkUser] = 7 elseif(msgcontains(msg, 'magic elemental amulet') or msgcontains(msg, 'Magic Elemental Amulet')) then selfSay('You change a Merlian, relic of the hell, Broonier, Thordain, dark wyzard, angel and gaya,change all for Elemental magic amulet?', cid) talkState[talkUser] = 8 elseif(msgcontains(msg, 'poem scroll') or msgcontains(msg, 'Poem Scroll')) then selfSay('Our beautiful that parchment ... Our ancient scriptures that it is very important for my pesquisa.You trade him for an Arcane Wand?', cid) talkState[talkUser] = 9 -- Confirmação da Compra elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 2) then if getPlayerBlessing(cid, 1) and getPlayerBlessing(cid, 2) and getPlayerBlessing(cid, 3) and getPlayerBlessing(cid, 4) and getPlayerBlessing(cid, 5) then selfSay('You have already got one or more blessings!', cid) else if(doPlayerRemoveMoney(cid, 500000) == true) then selfSay('You received the blessing of Isolde.', cid) doPlayerAddBlessing(cid, 1) doPlayerAddBlessing(cid, 2) doPlayerAddBlessing(cid, 3) doPlayerAddBlessing(cid, 4) doPlayerAddBlessing(cid, 5) talkState[talkUser] = 0 else selfSay('Sorry, but you do not have enough money.', cid) talkState[talkUser] = 0 end end elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 3) then if getPlayerItemCount(cid, 2197) > 0 and getPlayerMoney(cid) >= 50000 then doPlayerRemoveItem(cid, 2197, 1) doPlayerRemoveMoney(cid, 50000) selfSay('Thanks!', cid) doPlayerAddItem(cid, 11962, 1) talkState[talkUser] = 0 else selfSay('You do not have enough diamonds.', cid) talkState[talkUser] = 0 end elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 4) then if getPlayerItemCount(cid, 2201) > 0 and getPlayerItemCount(cid, 2198) > 0 and getPlayerItemCount(cid, 2170) > 0 and getPlayerItemCount(cid, 2171) > 0 and getPlayerItemCount(cid, 2172) > 0 and getPlayerItemCount(cid, 2161) > 0 then -- verifica se o player possui todos os items doPlayerRemoveItem(cid,2201,1) -- remove item doPlayerRemoveItem(cid,2198,1) -- remove item doPlayerRemoveItem(cid,2170,1) -- remove item doPlayerRemoveItem(cid,2171,1) -- remove item doPlayerRemoveItem(cid,2172,1) -- remove item doPlayerRemoveItem(cid,2161,1) -- remove item doPlayerAddItem(cid,2197,1) -- adiciona item selfSay('change the amulet\'s for one elemental necklace sucessfull.') -- msg de sucesso else selfSay('change the amulet\'s for one elemental necklace failed.') -- msg de falha end end return TRUE end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())
  23. jhon992

    Duvida Com Outfit

    Vai no arquivo "data/XML/outfits.xml", la você adiciona um nova tag desse tipo: <outfit id="iddonovoout"> <list gender="0-3" lookType="looktypedaroupa" name="NomedaOut"/> </outfit> Pega como exemplo os que ja tem pronto no arquivo.
  24. function onUse(cid, item, fromPosition, itemEx, toPosition) local posItensMesa1 = {x=123, y=432, z=7} -- posição em que estarão os itens. local itensCheckMesa1 = {1234, 4562} -- id dos itens que devem estar na "posItensMesa1" ao apertar a alavanca. local posItensMesa2 = {x=123, y=432, z=7} -- posição em que estarão os itens. local itensCheckMesa2 = {1234} -- id dos itens que devem estar na "posItensMesa2" ao apertar a alavanca. local removeItens = true -- deve remover os itens? coloque "true" para remover ou "false" para não remover. local posTele = {x=546, y=987, z=6} -- posição que sera teleportado caso os itens estajam certos. local itens1 = {} local itens2 = {} for i=1, #itensCheckMesa1 do for o=1, 255 do posItensMesa1 = {x=posItensMesa1.x, y=posItensMesa1.y, z=posItensMesa1.z, stackpos=o} if isInArray(itensCheckMesa1, getThingfromPos(posItensMesa1).itemid) then itens1[i] = getThingfromPos(posItensMesa1).uid break end end end for i=1, #itensCheckMesa2 do for o=1, 255 do posItensMesa2 = {x=posItensMesa2.x, y=posItensMesa2.y, z=posItensMesa2.z, stackpos=o} if isInArray(itensCheckMesa2, getThingfromPos(posItensMesa2).itemid) then itens2[i] = getThingfromPos(posItensMesa2).uid break end end end if #itens1 == #itensCheckMesa1 and #itens2 == #itensCheckMesa2 then if removeItens then for i=1, #itensCheckMesa1 do doRemoveItem(itensCheckMesa1[i]) end for i=1, #itensCheckMesa2 do doRemoveItem(itensCheckMesa2[i]) end end doTransformItem(item.uid, item.itemid == 10044 and 10045 or 10044) -- você deve colocar a alavanca 10044 com seu mapa editor, ou substituir esses numeros pelo id da sua alavanca virada para direita e esquerda. doTeleportThing(cid, posTele) doSendMagicEffect(posTele, CONST_ME_TELEPORT) else doPlayerSendCancel(cid, "Coloque os itens corretos para teleportar!") end return TRUE end
  25. jhon992

    Magia Upar Por Soul

    Não faço ideia do que seja =/
  • Quem Está Navegando   0 membros estão online

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