-
Total de itens
120 -
Registro em
-
Última visita
Tudo que juliok80 postou
-
[Encerrado] Player Usar Todos Items Onde Quiser.
tópico respondeu ao AdilsonHacker de juliok80 em Tópicos Sem Resposta
Além de editar no items.xml você também precisa adicionar o código abaixo no movements.xml que fica na pasta data\movements\movements.xml, da seguinte maneira: <movevent type="DeEquip" itemid="2496" slot="head" event="function" value="OnDeEquipItem"/> <movevent type="Equip" itemid="2496" slot="head" event="function" value="OnEquipItem"/> Na linha onde está "DeEquip" seria ao retirar e na linha "Equip" seria ao equipar o item, mas isso não importa... o importante é você adicionar para cada item essas duas linhas que coloquei acima. Em slot você define onde o item poderá ser equipado e em itemid você coloca o id do item. Se quiser adicionar vocação para cada item você faz assim: <movevent type="DeEquip" itemid="2496" slot="head" event="function" value="OnDeEquipItem"/> <movevent type="Equip" itemid="2496" slot="head" event="function" value="OnEquipItem"> <vocation id="4"/> <vocation id="8" showInDescription="0"/> </movevent> No caso acima o item será para a vocação Knight e Elite Knight, o atributo showInDescription = "0" seria para não mostrar o Elite Knight na descrição do item. Se você não adicionar essas linhas no movements.xml, todos os atributos que você colocou no item não terá efeito algum, pode fazer um teste com itens que protegem de fire por exemplo, jogue um fire field no xão e pise no fogo para testar. Segue guia de vocações, o número maior é a promotion: sorcerer = 1,5 druid = 2,6 paladin = 3,7 knight = 4,8 Segue guia de slots que podem ser usados aqui: HEAD = Cabeça NECKLACE = Colar SHIELD = Escudo ARMOR = Armadura LEGS = Calças FEET = Botas RING = Anéis AMMO = Local da flecha Espero ter ajudado... qualquer duvida estamos aí! Abraços.- 9 respostas
-
- bug dos armor
- otserv
-
(e 1 mais)
Tags:
-
Toma usa esse aqui. Tu faz o seguinte, vai até a pasta data\npc, copia e cola qualquer arquivo lá de dentro e renomeia para seu madruga.xml, abre o arquivo com o bloco de notas e cola o código abaixo: <?xml version="1.0" encoding="UTF-8"?> <npc name="Seu Madruga" script="data/npc/scripts/default.lua" walkinterval="0" floorchange="0" speed="0"> <health now="100" max="100"/> <look type="160" head="0" body="112" legs="93" feet="95"/> <parameters> <parameter key="module_shop" value="1"/> <parameter key="message_greet" value="Tinha que ser o |PLAYERNAME|! Com que direito você me acorda às 11:00 da madrugada!? Anda logo, eu vendo rings. Diga {trade} para ver minhas mercadorias."/> <parameter key="message_walkaway" value="Quero ver, outra vez... seus olhinhos de noite serena." /> <parameter key="message_onsendtrade" value="Quero ver, outra vez... seus olhinhos de noite serena." /> <parameter key="shop_sellable" value="ring of the sky,2123,500000; gold ring,2179,500000;"/> <!-- ITENS QUE O NPC VAI COMPRAR --> <parameter key="shop_buyable" value="ring of healing,2214,2000;energy ring,2167,2000;"/> <!-- ITENS QUE O NPC VAI VENDER --> </parameters> </npc> Agora é só tu alterar os itens a seu gosto, para adicionar mais itens na lista de compra/vende é só adicionar o nome, id, preço conforme o exemplo acima. █ -> Nome do item █ -> ID do item █ -> Preço do item Acredito que todos os otserv possuem o arquivo default.lua dentro da pasta data\npc\script se o seu não existir copie e cole qualquer arquivo lá de dentro e renomeie para default.lua, abra com o bloco de notas e cole o código abaixo: local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) 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() endnpcHandler:addModule(FocusModule:new())
-
Bugs encontrados... NPC Warmaster addon 1 e 2 entregam o addon de graça, ou seja, não precisa dos itens para conseguir fazer os addons. Solução: http://www.xtibia.co...__fromsearch__1 O teleport dos Defiler na POI está sem destino. O book e a boots adquirido na Vip POI são bugados, pois ao ficar colocando e tirando o book na mão o ML vai subindo até chegar ao máximo e a bota não funciona. Solução: A solução seria alterar o item, ou arrumar o script na pasta movements. Como todos baiaks, precisa arrumar a vocação paladin. Solução: http://www.xtibia.co...__fromsearch__1 Erro no script da alavanca da anihilator... mas nada que impeça a pessoa de fazer a quest, só surge um monte de erro no distro. Comando !sellhouse não funciona. O comando /arena x depois de um tempo com o servidor online para de funcionar. Bug na quest do amazon shield localizada nos dwarfs abaixo da cidade principal. Ao fazer a quest é possível matar as GS do andar mais abaixo(quest crusader helmet) e ao tentar abrir a GS dropa a Dwarven Armor e você consegue pegar quantas quiser, e essa armor é vendida no NPC do templo por 15kk, não deveria ser tão fácil assim adquiri-la. Tempo do Save server está errado, anuncia 120 segundos para o save, porém ao anunciar ele já está salvando, antes mesmo de completar os 120 segundos. Solução: Muitos erros de português/inglês nas falas e nomes dos NPCs, placas e etc... ah e não se escreve UPDADE e sim UPDATE. Acho que os TPs de hunts precisam de monstros para sinalizar a hunt, pois só placas é uma miséria, ter que ficar clicando placa por placa para achar uma hunt. Fora isso tudo, eu achei RIDICULO como você postou os créditos e de como encheu de By Mayron pelo mapa, distro e tudo o que se possa imaginar... tu só alterou o visual do templo e ainda está horrível! E não venha falar que você criou algum comando, pq você conseguiu todos aqui no xtibia, inclusive do !dance on... PS: Se eu lembrar de mais algum bug eu edito aqui!
- 49 respostas
-
- baiak by mayron xd
- otserv
-
(e 2 mais)
Tags:
-
Tu tem que alterar o nome do item no arquivo que está na pasta data\items\items.xml tu abre este arquivo items.xml com o bloco de notas (clica com o botão direito do mouse sobre o arquivo, seleciona a opção abrir com e clica em bloco de notas), dai tu usa CTRL+F para buscar o nome do item atual (ex: fire sword), quando encontrar tu altera o nome, usa CTRL+S para salvar e reinicia o server... Só toma cuidado para não apagar as aspas "" senão pode dar erro... Falou!
-
Galera, eu criei algumas quests de addons e para entrar na quest o player passa por uma sala onde existem os monstros vestidos com os addons. Gostaria de saber se é possível fazer o monstro ficar rodando no SQM. Tentei utilizar o lookdir mas não consegui, alguém ai sabe como eu posso fazer isso? lookdir 0 = /\ (para o norte) lookdir 1 = > (para o leste) lookdir 2 = \/ (para o sul) lookdir 3 = < (para o oeste) Queria que ele mudasse de posição a cada 2 segundos. OBS: pode ser com monstro ou NPC, qualquer coisa eu altero os monstros para NPC, pois estes monstros só servem para indicar qual é o addon... Obrigado!
-
Oneshot, você é MUITO pica das galaxias! Por um acaso você seria algum ex-funcionário da CIPSoft? rsrs E a propósito, OBRIGADO pelo script!
-
pedido Script de Teleport quando o monstro na area "x" a "y" estiver mortos.
pergunta respondeu ao markim1986 de juliok80 em Scripts
Oiiiiiiiiiiihh brunnnnnnnnnnn123 (fazendo voz de menininha) kkkkkk Rapaz, teria como eu editar esse script ai pra fazer uma especie de arena!? Tipo o player passa o portal da arena, dai enquanto este player estiver dentro da arena o portal ficará bloqueado para que outros players não entrem... e o player que entrou não poderá fazer logoff lá dentro, ai assim que o player que entrou, sair desta area o portal ser liberado novamente. Outra condição, seria que o player só pudesse ficar nesta area no máximo 15 minutos. Beijos man! AEHAUEHAUEHA... essa parte do beijo é brincadeira viu! -
dúvida [Encerrado] É possível adicionar mais de um actionID no mesmo TILE?
um tópico no fórum postou juliok80 Tópicos Sem Resposta
Acho que o titulo já diz tudo... queria saber se é possível adicionar um actionID no mesmo tile, ou senão no mesmo SQM! Pq estou querendo colocar um StepOut em um único SQM... Thanks! -
pedido Script de alavanca onde apareça monstro e gaste dinheiro
pergunta respondeu ao markim1986 de juliok80 em Scripts
Cara, eu acho que você precisa colocar o actionID 2033 na tag também... ai ficaria assim: <action actionid="2032-2033" event="script" value="summonMonster.lua"/> -
O que eu devo alterar aqui? tem como me explicar ? Creio que você tenha que adicionar isso ai na sua pasta actions, e não precisa alterar nada no script, a não ser a XP que o item dará ao ser usado. Ai você adiciona o actionID no item e pronto!
-
Olha, eu alterei os códigos, porém continuou acusando erro... ai encontrei um script aqui no Xtibia que não está dando erro, porém mesmo que o player não tenha os itens necessários ele ainda recebe o addon! Alguém saberia me dizer pq esse script está se comportando desta maneira? Segue o novo script que estou usando: local focus = 0 local talk_start = 0 local target = 0 local following = false local attacking = false local addon_state = 0 function onThingMove(creature, thing, oldpos, oldstackpos) end function onCreatureAppear(creature) end function onCreatureDisappear(cid, pos) if focus == cid then selfSay('Good bye then.') focus = 0 talk_start = 0 end end function onCreatureTurn(creature) end function msgcontains(txt, str) return (string.find(txt, str) and not string.find(txt, '(%w+)' .. str) and not string.find(txt, str .. '(%w+)')) end function onCreatureSay(cid, type, msg) msg = string.lower(msg) if (msgcontains(msg, 'hi') and (focus == 0)) and getDistanceToCreature(cid) < 4 then selfSay('E ae ' .. getCreatureName(cid) .. ' você trouxe a minha Zaoan sword!?') focus = cid talk_start = os.clock() elseif msgcontains(msg, 'hi') and (focus ~= cid) and getDistanceToCreature(cid) < 4 then selfSay('Sorry, ' .. getCreatureName(cid) .. '! I talk to you in a minute.') elseif focus == cid then talk_start = os.clock() if msgcontains(msg, 'yes') or msgcontains(msg, 'sim') then if doPlayerRemoveItem(cid,11301,1) == 0 then selfSay('Cadê!?') addon_state = 0 else selfSay('Yeah, valeu!') if getPlayerSex(cid) == 0 then doPlayerAddOutfit(cid, 335, 1) else doPlayerAddOutfit(cid, 336, 1) talk_start = 0 end end elseif msgcontains(msg, 'bye') and getDistanceToCreature(cid) < 4 then selfSay('Good bye, ' .. getCreatureName(cid)) focus = 0 talk_start = 0 end end end function onCreatureChangeOutfit(creature) end function onThink() doNpcSetCreatureFocus(focus) if (os.clock() - talk_start) > 30 then if focus > 0 then selfSay('Next Please...') end focus = 0 end if focus ~= 0 then if getDistanceToCreature(focus) > 5 then selfSay('Good bye then.') focus = 0 end end end @Edit Ae Galera... consegui arrumar o script! Peguei o script de um NPC e fiz as alterações, agora está funcionando perfeitamente... Segue o script do NPC Addon Warmaster 1 caso alguém precise, para o segundo addon é só editar as falas, a parte do addon que irá adicionar ao player e o item requerido: 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 selfSay('Olá ' .. getCreatureName(cid) .. ', fale {addon 1} para mais informacoes!') if(msgcontains(msg, 'addon 1') or msgcontains(msg, 'first addon') or msgcontains(msg, 'addon')) then selfSay('Para conseguir o addon 1 do Warmaster eu preciso que voce me traga uma {Zaoan Sword}, voce trouxe uma?', cid) talkState[talkUser] = 1 elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then if(getPlayerItemCount(cid, 11301) >= 1) then if(doPlayerRemoveItem(cid, 11301,1) == TRUE) then if getPlayerSex(cid) == 0 then doPlayerAddOutfit(cid, 335, 1) else doPlayerAddOutfit(cid, 336, 1) talk_start = 0 end selfSay('Parabéns! Agora você possui o primeiro Addon Warmaster.', cid) else selfSay('Desculpe, volte quando tiver uma {Zaoan Sword}.', cid) end else selfSay('Desculpe, voce nao tem uma {Zaoan Sword}.', cid) end talkState[talkUser] = 0 elseif(msgcontains(msg, 'no') and isInArray({1}, talkState[talkUser]) == TRUE) then talkState[talkUser] = 0 selfSay('Ok then.', cid) end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Ae moderação, pode fechar o tópico! Muito obrigado a todos que me ajudaram!
-
Vou fazer essa troca e quando chegar em casa eu testo. Só uma outra duvida, elseif não precisa de end? Por que eu vejo 2 modos de elseif no script, junto e separado: else if getPlayerStorageValue(cid,999998) == 1 then -- Esse precisa de end elseif msgcontains(msg, 'addon 2') then -- Esse não precisa de end Thanks guys!
-
pedido Alguém poderia me passar a talkaction !sellhouse por favor
tópico respondeu ao juliok80 de juliok80 em Lixeira Pública
Esses códigos são para eu adicionar na source ou eu poderia usar esse código do sellhouse.cpp para criar uma talkaction na pasta talkaction!?- 3 respostas
-
- talkaction
- sellhouse
-
(e 2 mais)
Tags:
-
Olá xtibianos, blz!? Olha, estou com problemas nos scripts dos NPCs do Warmaster Addon 1 e 2... quando alguém fala com esses NPCs surge os seguintes erros no console, e o NPC não está pegando os itens necessários para fazer o addon, segue os erros do console: [01/01/2013 19:20:09] [Error - Npc interface] [01/01/2013 19:20:09] data/npc/scripts/Warmaster Addon 1.lua:onThink [01/01/2013 19:20:09] Description: [01/01/2013 19:20:09] data/npc/scripts/Warmaster Addon 1.lua:104: attempt to compare number with nil [01/01/2013 19:20:10] stack traceback: [01/01/2013 19:20:10] data/npc/scripts/Warmaster Addon 1.lua:104: in function <data/npc/scripts/Warmaster Addon 1.lua:94> [01/01/2013 19:11:37] [Error - Npc interface] [01/01/2013 19:11:37] data/npc/scripts/Warmaster Addon 2.lua:onCreatureSay [01/01/2013 19:11:37] Description: [01/01/2013 19:11:37] data/npc/scripts/Warmaster Addon 2.lua:80: attempt to call global 'creatureGetName' (a nil value) [01/01/2013 19:11:37] stack traceback: [01/01/2013 19:11:37] data/npc/scripts/Warmaster Addon 2.lua:80: in function <data/npc/scripts/Warmaster Addon 2.lua:33> Segue o script dos NPCs: Warmaster addon 1: local focus = 0 local talk_start = 0 function onThingMove(creature, thing, oldpos, oldstackpos) end function onCreatureAppear(creature) end function onCreatureDisappear(cid, pos) if focus == cid then selfSay('Good bye then.') focus = 0 talk_start = 0 end end function onCreatureTurn(creature) end function msgcontains(txt, str) return (string.find(txt, str) and not string.find(txt, '(%w+)' .. str) and not string.find(txt, str .. '(%w+)')) end function onCreatureSay(cid, type, msg) msg = string.lower(msg) if (msgcontains(msg, 'hi') and (focus == 0)) and getDistanceToCreature(cid) < 4 then selfSay('Hiho ' .. getCreatureName(cid) .. ' Eu posso lhe conceder o Warmaster addon 1, para mais infos. diga help...') focus = cid talk_start = os.clock() elseif msgcontains(msg, 'hi') and (focus ~= cid) and getDistanceToCreature(cid) < 4 then selfSay('Desculpe, ' .. getCreatureName(cid) .. '! Eu falo com você em um minuto.') elseif focus == cid then talk_start = os.clock() if msgcontains(msg, 'help') then selfSay('Para saber o que eh preciso para obter o Warmaster addon 1 diga: addon 1') elseif msgcontains(msg, 'addon 1') then if getPlayerStorageValue(cid,999999) >= 2 then selfSay('Voce ja tem esse addon.') else if getPlayerStorageValue(cid,999999) == 1 then selfSay('Preciso de uma zaoan sword e de 100k, você trouxe para mim?') addon_state = 2 else setPlayerStorageValue(cid,999999,1) selfSay('Preciso de uma zaoan sword e de 100k, você trouxe para mim?') end end elseif msgcontains(msg, 'yes') and addon_state == 2 then if doPlayerRemoveItem(cid,2160, 10) == 0 or doPlayerRemoveItem(cid,11301, 1) == 0 then selfSay('Desculpe mas você não os tem 100k...') else selfSay('Obrigado, agora você tem o novo addon da terra dos Warmasters!') if getPlayerSex(cid) == 0 then doPlayerAddOutfit(cid, 335, 1) setPlayerStorageValue(cid,999999,2) else doPlayerAddOutfit(cid, 336, 1) setPlayerStorageValue(cid,999999,2) talk_state = 1 end end elseif msgcontains(msg, 'bye') and getDistanceToCreature(cid) < 4 then selfSay('Adeus ' .. creatureGetName(cid) .. ', Volte sempre.') focus = 0 talk_start = 0 elseif msg ~= "" then selfSay('Como? Eu não entendi!') talk_state = 0 end end end function onCreatureChangeOutfit(creature) end function onThink() doNpcSetCreatureFocus(focus) if (os.clock() - talk_start) > 30 then if focus > 0 then selfSay('Proximo!...') end focus = 0 talk_start = 0 end if focus ~= 0 then if getDistanceToCreature(focus) > 5 then selfSay('Good Bye') focus = 0 talk_start = 0 end end end Warmaster addon 2: local focus = 0 local talk_start = 0 function onThingMove(creature, thing, oldpos, oldstackpos) end function onCreatureAppear(creature) end function onCreatureDisappear(cid, pos) if focus == cid then selfSay('Good bye then.') focus = 0 talk_start = 0 end end function onCreatureTurn(creature) end function msgcontains(txt, str) return (string.find(txt, str) and not string.find(txt, '(%w+)' .. str) and not string.find(txt, str .. '(%w+)')) end function onCreatureSay(cid, type, msg) msg = string.lower(msg) if (msgcontains(msg, 'hi') and (focus == 0)) and getDistanceToCreature(cid) < 4 then selfSay('Hiho ' .. getCreatureName(cid) .. ' Eu posso lhe conceder o Warmaster addon 2, para mais infos. diga help...') focus = cid talk_start = os.clock() elseif msgcontains(msg, 'hi') and (focus ~= cid) and getDistanceToCreature(cid) < 4 then selfSay('Desculpe, ' .. getCreatureName(cid) .. '! Eu falo com você em um minuto.') elseif focus == cid then talk_start = os.clock() if msgcontains(msg, 'help') then selfSay('Para saber o que eh preciso para obter o Warmaster addon 2 diga: addon 2') elseif msgcontains(msg, 'addon 2') then if getPlayerStorageValue(cid,999998) >= 2 then selfSay('Voce ja tem esse addon.') else if getPlayerStorageValue(cid,999998) == 1 then selfSay('Preciso de uma baiak sword e 100k , você trouxe para mim ?') addon_state = 2 else setPlayerStorageValue(cid,999998,1) selfSay('Preciso de uma baiak sword e 100k, você trouxe para mim ?') end end elseif msgcontains(msg, 'yes') and addon_state == 2 then if doPlayerRemoveItem(cid,2160, 10) == 0 or doPlayerRemoveItem(cid,8931, 1) == 0 then selfSay('Desculpe mas você não tem os 100k...') else selfSay('Obrigado, agora você tem o novo addon da terra dos Warmasters!') if getPlayerSex(cid) == 0 then doPlayerAddOutfit(cid, 335, 2) setPlayerStorageValue(cid,999998,2) else doPlayerAddOutfit(cid, 336, 2) setPlayerStorageValue(cid,999998,2) talk_state = 1 end end elseif msgcontains(msg, 'bye') and getDistanceToCreature(cid) < 4 then selfSay('Adeus ' .. creatureGetName(cid) .. ', Volte Sempre.') focus = 0 talk_start = 0 elseif msg ~= "" then selfSay('Como? Eu não entendi!') talk_state = 0 end end end function onCreatureChangeOutfit(creature) end function onThink() doNpcSetCreatureFocus(focus) if (os.clock() - talk_start) > 30 then if focus > 0 then selfSay('Proximo!!...') end focus = 0 talk_start = 0 end if focus ~= 0 then if getDistanceToCreature(focus) > 5 then selfSay('Good Bye') focus = 0 talk_start = 0 end end end Alguém saberia me dizer o que há de errado nos scrripts!? Obrigado! Upa upa cavalinho alazão! Alguém me ajuda!?
-
pedido Alguém poderia me passar a talkaction !sellhouse por favor
um tópico no fórum postou juliok80 Lixeira Pública
E ai galerinah, tudo jóia!? Alguém ai teria a talkaction !sellhouse para me passar por favor? Não encontro em lugar algum! Otserv versão 8.6 Muito obrigado. Abraços!- 3 respostas
-
- talkaction
- sellhouse
-
(e 2 mais)
Tags:
-
Cara... muitissimo obrigado, você é muito pica das galaxias!
-
Vou testar o script da alavanca, pq o erro ocorre quando a pessoa tenta puxar a alavanca, só não gostei de uma coisa nesse script ai... é que ele faz a verificação se a pessoa já fez a quest e não deixa o pessoal puxar a alavanca se existir alguém no grupo que já fez a quest, e acho que a pessoa que já fez poderia ajudar outros players a fazer. Dai vou tirar esse if da verificação, o else e o end abaixo dele pra ver se vai dar certo. E essas posições que estão ai!? Como eu devo alterar? Já o premio da quest eu vou colocar pelo map editor mesmo, eu acho mais fácil. Daqui a pouco eu volto para avisar se deu certo. Valeu!
-
Rapaz... era isso mesmo! Muito obrigado... brun123 serei eternamente grato, pode esperar muitos +rep de mim, você também Manyzin... assim que eu terminar de dar +rep pro brun123 eu dou o seu! Agradeço a todos que tentaram me ajudar, um forte abraço! brun123
-
Rapaz... não deu certo, agora também não sei se fiz certo, veja só: Eu adicionei essa linha em \data\movements\movements.xml <movevent type="StepIn" actionid="13507" event="script" value="teleportarena.lua"/> E em data\movements\scripts\teleportarena.lua local bloqueado = 0 function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor) if os.time() - bloqueado < 0 then doTeleportThing(cid, fromPosition, false) doPlayerSendCancel(cid, "Já existe um player fazendo essa quest.") return true end local teleportEntrada = {x = 95, y = 940, z = 15} -- localização do teleport de entrada local tempo = 1 * 60 -- em segundos, isso equivale a 1 minutos (coloquei 1 para testar) doTeleportThing(cid, teleportEntrada, false) doSendMagicEffect(teleportEntrada, CONST_ME_TELEPORT) bloqueado = os.time() + tempo return true end E no map editor adicionei o actionID 13507 no teleport conforme imagem abaixo: Por favor, você poderia me falar se fiz algo errado!? Se alguém puder me ajudar eu ficarei eternamente grato e prometo que darei +rep durante 1 mes inteiro Até poderia dizer que eu daria +rep vitalicio, mas isso eu não posso prometer... rsrs
-
Ae man... deu certo Muitississimo obrigado! Por favor se der pra você dar um pulinho no meu outro tópico, ou qualquer outra pessoa que conseguir me ajudar, eu agradeceria imensamente e daria +rep durante o mês todo se conseguir me ajudar, pois já faz um bom tempo que criei o tópico, porém até o momento ninguém conseguiu me ajudar http://www.xtibia.co...73#entry1419873 A solução que um dos usuários postou seria perfeita se funcionasse. Ae moderação, pode fechar esse tópico!
-
E ai galera, blz!? @Edit Se você chegou a este tópico a fim de arrumar a vocação paladin de seu servidor, recomendo que veja o seguinte tópico: http://www.xtibia.co...75#entry1427575 e esqueça o que tem aqui abaixo, pois a solução é melhor. @Fim edit Olha... eu sei que esse tipo de magia é escrota, mas foi o único jeito que encontrei para arrumar a vocação Paladin no meu servidor, ela está funcionando, porém eu gostaria que ela não desse exhausted com as outras magias... pois queria que fosse igual as potions. As magias estão assim, em \data\spells\scripts\healing: sobemana local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_MANADRAIN) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE) setCombatParam(combat, COMBAT_PARAM_TARGETCASTERORTOPMOST, 1) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, 0) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 0, 600, 0, 800) function onCastSpell(cid, var) return doCombat(cid, combat, var) end sobevida local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_LIFEDRAIN) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE) setCombatParam(combat, COMBAT_PARAM_TARGETCASTERORTOPMOST, 1) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, 0) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 0, 1000, 0, 1200) function onCastSpell(cid, var) return doCombat(cid, combat, var) end E em \data\spells\spells.xml: <instant name="sobevida" words="sobevida" lvl="0" mana="0" prem="1" selftarget="1" aggressive="0" exhaustion="1500" needlearn="0" event="script" value="healing/sobevida.lua"> <vocation id="3"/> <vocation id="7"/> </instant> <instant name="sobemana" words="sobemana" lvl="0" mana="0" prem="1" selftarget="1" aggressive="0" exhaustion="1500" needlearn="0" event="script" value="healing/sobemana.lua"> <vocation id="3"/> <vocation id="7"/> </instant> Como podem ver, o exhaustion está 1500, que acho que deve ser 1 segundo e meio, não importa... o que importa é que ela da exhaust em outras magias de cura (exura, exura san, exura vita) e gostaria de deixar igual a uma poção, só que por meio da fala, para que o player consiga atacar enquanto se cura. Por exemplo... um Knight consegue usar exana mort + potion sem que uma das duas dê exhaust na outra magia. Alguém teria algum script para resolver isso!? Ou então saberia me dizer se existe um script ou algo do tipo que faça o player conseguir falar uma palavra a cada x segundos!? Porque dai eu colocaria o exhaustion da magia = 0 e bloqueava a palavra durante alguns segundos...
-
Vou testar assim que reiniciar o ot... se funciona eu num sei, mas esse script está MUITO mais limpo Obrigado Slicer, jaja eu volto pra dizer se funcionou! Ah man... se der pra você dar um pulinho nesse meu outro tópico eu agradeceria muito! http://www.xtibia.co...73#entry1419873 @Edit Cara, não sei o que tem nesse script ai... mas depois que eu coloquei ele, o ot parou de funcionar, quando eu tento rodar o console aparece a mensagem dizendo que o Windows encontrou um erro no OT e precisa ser fechado, depois eu voltei para o script anterior e o OT voltou a funcionar.
-
Agora , para evitar bugs , ao player deslogar dentro da sala , vá em Data/CreatureScript/Scripts . e crie um arquivo chamado (roomlogout.lua) e dentro adicione : local possair = {x=123, y=321, z=7} function onLogout(cid) if getPlayerStorageValue(cid,20202) >= 1 then doTeleportThing(cid,possair) addEvent(doRemoveCreature,1,cid) end end Ainda em creaturescripts/scripts , vá em (login.lua) e lá dentro adicione: registerCreatureEvent(cid, "RoomLogout") Agora em creaturescripts.xml adicone <event type="logout" name="RoomLogout" event="script" value="roomlogout.lua"/> Muitíssimo obrigado! Só uma duvida... teria como eu criar uma action para um teleport de saida caso o player complete a quest... tipo, ele entra em um teleport dai remove o evento de teleportar ele pra fora da sala. Será que daria certo se eu fizesse uma action usando o script de logout!? Assim, em data/actions/actions.xml: <action itemid ="XXXX" event="script" value="saidaroom.lua"/> E em data/actions/scripts/saidaroom.lua local possair = {x=123, y=321, z=7} function onLogout(cid) if getPlayerStorageValue(cid,20202) >= 1 then doTeleportThing(cid,possair) addEvent(doRemoveCreature,1,cid) end end @Edit Rapaz... acabei de testar aqui e não funcionou, queria saber se estou fazendo certo. Eu criei um arquivo dentro de data/actions/scripts/magicroom.lua com o código abaixo: local posentrar = {x=85, y=944, z=15} -- Posiçao que ele irá ao ser teleportado para dentro local possair = {x=110, y=920, z=14} -- Posiçao que ele irá ao ser teleportado para fora local mins = 1 -- Minutos que ele ficará na sala (coloquei 1 min pra testar) local storagemundial = 10101 -- Não mexa local hours = 3 function onSair(cid) doTeleportThing(cid,possair) setPlayerStorageValue(cid,20202,-1) doPlayerSendTextMessage(cid,27,"Você foi teleportado para fora da sala.") return true end function storageSair(cid) setGlobalStorageValue(storagemundial, -1) doBroadcastMessage("A Sala está aberta novamente.") return true end function onUse(cid,item,item2,topos,frompos,pos) if getGlobalStorageValue(storagemundial) <= 0 then doTeleportThing(cid,posentrar) addEvent(function() onSair(cid) end,mins*60) doPlayerSendTextMessage(cid,27,"Você foi teleportado para dentro da sala e terá "..mins.." minutos para finalizar, senão você será teleportado para fora da sala.") setPlayerStorageValue(cid,20202,1) setGlobalStorageValue(storagemundial, 1) addEvent(function() storageSair(cid) end,hours*60*60) else doPlayerSendTextMessage(cid,27,"A Sala ainda não está aberta.") return true end end Dai adicionei em data/actions/actions.xml <action itemid ="9000" event="script" value="magicroom.lua"/> Ai fui no Map Editor e adicionei o ActionID 9000 no teleport, também fiz as outras partes, porém acho que até aqui já deveria estar funcionando (parcialmente) não é mesmo!? Não aparece nem as mensagens. @Edit 2 Os players acabaram de me avisar de um bug que estava ocorrendo, quando eles tentavam deslogar usando CTRL+L ou CTRL+Q ou clicando no botão logout, não acontecia nada... dai lembrei que tinha alterado o script do login.lua, retirei aquela linha do arquivo e exclui o arquivo roomlogout.lua, reiniciei o ot e ai voltou a funcionar o logout. Por favor Sensei, me diga o que eu fiz de errado, ou se está faltando alguma coisa... Obrigado!
-
Não, e a propósito, fui lá no local checar se as coordenadas batiam e aparentemente está ok.
-
Quem Está Navegando 0 membros estão online
- Nenhum usuário registrado visualizando esta página.