Ir para conteúdo

Adriano SwaTT

Membro
  • Registro em

  • Última visita

Tudo que Adriano SwaTT postou

  1. Adriano SwaTT postou uma resposta no tópico em Mapping Show Off
    Hmm, muito bom mesmo hein. Sempre curti acompanhar seus mapas. Parabéns.
  2. Estava faltando a função de modificar o outfit. doSetCreatureOutfit(cid, outfit, -1) Só isso, tanto que já haviam até declarado e configurado o que a palavra outifit faria, só esqueceram de por esta tag acima. Que bom que resolveu. Boa sorte com seu projeto.
  3. Por condition também sumiria ao relogar. Infelizmente nunca testei utilizar essas funções, então foi meio que uma tentativa.
  4. Boa noite, teste assim: local config = { --[vocation id] = { level, nova voc, looktype, efeito} ---------- NARUTO ----------- [13] = { 500, 12, 54, 12}, [12] = { 400, 11, 494, 12}, [11] = { 350, 10, 291, 12}, [10] = { 300, 9, 179, 15}, [9] = { 250, 8, 25, 27}, [8] = { 200, 7, 49, 15}, [7] = { 150, 6, 40, 15}, [6] = { 125, 5, 92, 15}, [5] = { 100, 4, 31, 13}, [4] = { 75, 3, 18, 15}, [3] = { 50, 2, 91, 15}, [2] = { 25, 1, 71, 13},-- --------- SASUKE ----------- [27] = { 500, 26, 504, 261}, [26] = { 450, 25, 379, 261}, [25] = { 400, 24, 292, 261}, [24] = { 350, 23, 334, 27}, [23] = { 300, 22, 95, 263}, [22] = { 250, 21, 293, 13}, [21] = { 200, 20, 8, 263}, [20] = { 150, 19, 59, 263}, [19] = { 125, 18, 94, 263}, [18] = { 100, 17, 7, 13}, [17] = { 75, 16, 5, 263}, [16] = { 50, 15, 6, 263}, --------- SAKURA ----------- [42] = { 500, 41, 501, 13}, [41] = { 450, 40, 294, 27}, [40] = { 400, 39, 296, 27}, [39] = { 350, 38, 172, 13}, [38] = { 300, 37, 170, 27}, [37] = { 250, 36, 301, 13}, [36] = { 200, 35, 194, 13}, [35] = { 150, 34, 300, 27}, [34] = { 125, 33, 169, 13}, [33] = { 100, 32, 174, 13}, [32] = { 75, 31, 171, 13}, [31] = { 50, 30, 175, 13}, -------- ROCK LEE ----------- [57] = { 500, 56, 496, 73}, [56] = { 450, 55, 295, 73}, [55] = { 400, 54, 193, 73}, [54] = { 350, 53, 766, 73}, [53] = { 300, 52, 192, 73}, [52] = { 250, 51, 191, 73}, [51] = { 200, 50, 78, 73}, [50] = { 150, 49, 190, 73}, [49] = { 125, 48, 80, 73}, [48] = { 100, 47, 82, 73}, [47] = { 75, 46, 83, 73}, [46] = { 50, 45, 60, 73}, -------- KISAME ----------- [127] = { 500, 126, 692, 27}, [126] = { 400, 125, 556, 27}, [125] = { 300, 124, 555, 27}, [124] = { 250, 123, 554, 27}, [123] = { 200, 122, 553, 27}, [122] = { 150, 121, 551, 27}, [121] = { 125, 120, 691, 27}, [120] = { 100, 119, 690, 27}, [119] = { 75, 118, 689, 27}, [118] = { 50, 117, 688, 27}, -------- ITACHI ----------- [172] = { 500, 171, 511, 262}, [171] = { 450, 170, 472, 262}, [170] = { 400, 169, 298, 262}, [169] = { 350, 168, 322, 262}, [168] = { 300, 167, 297, 262}, [167] = { 250, 166, 100, 262}, [166] = { 200, 165, 283, 13}, [165] = { 150, 164, 282, 262}, [164] = { 125, 163, 99, 13}, [163] = { 100, 162, 98, 262}, [162] = { 75, 161, 284, 263}, [161] = { 50, 160, 97, 263}, --------- KILLER BEE ----------- [217] = { 500, 216, 350, 13}, [216] = { 450, 215, 740, 13}, [215] = { 400, 214, 739, 13}, [214] = { 350, 213, 717, 13}, [213] = { 300, 212, 738, 13}, [212] = { 250, 211, 737, 13}, [211] = { 200, 210, 736, 13}, [210] = { 150, 209, 735, 13}, [209] = { 125, 208, 734, 13}, [208] = { 100, 207, 733, 13}, [207] = { 75, 206, 732, 13}, [206] = { 50, 205, 729, 13}, [205] = { 25, 204, 714, 13}, -------- MADARA ----------- [262] = { 500, 261, 722, 13}, [261] = { 450, 260, 486, 13}, [260] = { 400, 259, 484, 13}, [259] = { 350, 258, 485, 13}, [258] = { 300, 257, 483, 13}, [257] = { 250, 256, 481, 13}, [256] = { 200, 255, 480, 13}, [255] = { 150, 254, 482, 13}, [254] = { 125, 253, 479, 13}, [253] = { 100, 252, 478, 13}, [252] = { 75, 251, 725, 13}, [251] = { 50, 250, 477, 13}, [250] = { 25, 249, 476, 13}, -------- MINATO ----------- [277] = { 500, 276, 709, 12}, [276] = { 450, 275, 708, 12}, [275] = { 400, 274, 707, 12}, [274] = { 350, 273, 599, 12}, [273] = { 300, 272, 598, 12}, [272] = { 250, 271, 596, 12}, [271] = { 200, 270, 565, 12}, [270] = { 150, 269, 564, 12}, [269] = { 125, 268, 563, 12}, [268] = { 100, 267, 562, 12}, [267] = { 75, 266, 561, 12}, [266] = { 50, 265, 560, 12}, [265] = { 25, 264, 559, 12}, -------- TOBIRAMA ----------- [304] = { 350, 303, 794, 27}, [303] = { 300, 302, 793, 27}, [302] = { 250, 301, 792, 27}, [301] = { 200, 300, 791, 27}, [300] = { 150, 299, 790, 27}, [299] = { 125, 298, 789, 27}, [298] = { 100, 297, 788, 27}, [297] = { 75, 296, 320, 27}, [296] = { 50, 295, 230, 27}, [295] = { 25, 294, 227, 27}, ---------- KANKURO ----------- [337] = { 500, 336, 666, 18}, [336] = { 450, 335, 662, 18}, [335] = { 400, 334, 625, 18}, [334] = { 350, 333, 637, 18}, [333] = { 300, 332, 548, 18}, [332] = { 250, 331, 624, 18}, [331] = { 200, 330, 623, 18}, [330] = { 150, 329, 602, 18}, [329] = { 125, 328, 603, 18}, [328] = { 100, 327, 600, 18}, [327] = { 75, 326, 621, 18}, [326] = { 50, 325, 620, 18}, [325] = { 25, 324, 619, 18}, ---------- ANBU ----------- [417] = { 500, 416, 273, 13}, [416] = { 450, 415, 163, 13}, [415] = { 400, 414, 159, 13}, [414] = { 350, 413, 148, 13}, [413] = { 300, 412, 148, 13}, [412] = { 250, 411, 147, 13}, [411] = { 200, 410, 147, 13}, [410] = { 150, 409, 463, 13}, [409] = { 125, 408, 463, 13}, [408] = { 100, 407, 16, 13}, [407] = { 75, 406, 16, 13}, [406] = { 50, 405, 123, 13}, [405] = { 25, 404, 123, 13} } function onSay(cid, words, param, channel) local from,to = {x=1001, y=705, z=7},{x=1031, y=737, z=7} -- começo e final do mapa local from2,to2 = {x=1011, y=705, z=6},{x=1031, y=738, z=6} -- começo e final do mapa local from3,to3 = {x=1012, y=706, z=5},{x=1032, y=739, z=5} -- começo e final do mapa local from4,to4 = {x=985, y=598, z=7},{x=1044, y=652, z=7} -- começo e final do mapa local from5,to5 = {x=986, y=615, z=6},{x=1039, y=647, z=7} -- começo e final do mapa local from6,to6 = {x=990, y=616, z=5},{x=1040, y=647, z=5} -- começo e final do mapa if isInRange(getCreaturePosition(cid), from, to) or isInRange(getCreaturePosition(cid), from2, to2) or isInRange(getCreaturePosition(cid), from3, to3) or isInRange(getCreaturePosition(cid), from4, to4) or isInRange(getCreaturePosition(cid), from5, to5) or isInRange(getCreaturePosition(cid), from6, to6) then doPlayerSendCancel(cid, "Você não pode se Reverter nesta área!") return true end doPlayerSay(cid, "Reverter") local voc = config[getPlayerVocation(cid)] if voc then if getPlayerLevel(cid) >= voc[1] then doPlayerSetVocation(cid, voc[2]) doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "Você Reverteu!") local outfit = {lookType = voc[3]} doSetCreatureOutfit(cid, outfit, -1) local pos = getCreaturePosition(cid) doSendMagicEffect({x = pos.x, y = pos.y, z = pos.z}, voc[4]) else doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "Não da pra Reverter Tente Relogar.") end else doPlayerSendCancel(cid, "Você não pode se Reverter!") end return true end Boa sorte.
  5. Teste assim: local mages = {1, 2, 5, 6} local paladins = {3, 7} local knights = {4, 8} local addml = 2 -- quantidade de ML à adicionar aos mages local addskill = 2 -- quantidade de skill adicionar aos guerreiros (pally e knights) function onEquip(cid, item, slot) if isInArray(mages, getPlayerVocation(cid)) then doPlayerAddMagLevel(cid, addml) elseif isInArray(knights, getPlayerVocation(cid)) then for b = 1, 4 do doPlayerAddSkill(cid, b, addskill) end elseif isInArray(paladins, getPlayerVocation(cid)) then doPlayerAddSkill(cid, 5, addskill) end return true end function onDeEquip(cid, item, slot) if isInArray(mages, getPlayerVocation(cid)) then doPlayerAddMagLevel(cid, (getPlayerMagLevel(cid) - addml)) elseif isInArray(knights, getPlayerVocation(cid)) then for b = 1, 4 do doPlayerAddSkill(cid, b, (getPlayerSkillLevel(cid, b) - addskill)) end elseif isInArray(paladins, getPlayerVocation(cid)) then doPlayerAddSkill(cid, 5, (getPlayerSkillLevel(cid, 5) - addskill)) end return true end E por acaso o do Look deu algum resultado? Boa sorte.
  6. Vou dar uma estudada em algumas funções e criar um sistema parecido, que até acho que será mais bonito que este. Até breve. #EDIT: Dei início ao script, vou fazê-lo todo em actions. #EDIT²: Está dando certo e acho que está ficando mais criativo do que o do vídeo.
  7. Que bom que funcionou. Boa sorte com seu projeto. Abraços.
  8. Sei sim. Estou ainda instalando os programas no meu computador, caso alguém queira ir antecipando o trabalho, abaixo seguem as medidas: OTClient: 1024x719 em PNG. Capa Facebook: 851x315 em JPG e menos de 100kb. Logo: Independente. Conforme for instalando aqui e for começar a desenvolver, vou editando o post. Boa sorte.
  9. Por nada, que bom que era o que procurava. Peço apenas para que selecione como Melhor Resposta para que o tópico receba a tag de Resolvido. Abraços e boa sorte com seu projeto.
  10. Estou arrumando meu pc agora e não terminei de instalar os programas, caso quando eu terminar, se ninguém tiver feito ainda, eu faço pra você.
  11. Isso que deseja? local strg1 = xxxxx -- valor da storage que precisa local strg2 = xxxxx -- valor da storage que ganhará local msg = 'QUEST' -- Nome da missão/quest if getPlayerStorageValue(cid, strg1) >= 1 then setPlayerStorageValue(cid, strg2, 1) selfSay("Parabéns, agora está com a permissão.") else selfSay("Você não tem a missão "..msg.." para conseguir a permissão.") end Ou uma lista de funções existente para OTServs? Boa sorte com sua busca.
  12. Tudo bem, fico aguardando retorno. Boa sorte.
  13. Na verdade encontrei o erro, tente usar este: local mages = {1, 2, 5, 6} local paladins = {3, 7} local knights = {4, 8} local addml = 2 -- quantidade de ML à adicionar aos mages local addskill = 2 -- quantidade de skill adicionar aos guerreiros (pally e knights) function onEquip(cid, item, slot) if isInArray(mages, getPlayerVocation(cid)) then doPlayerAddMagLevel(cid, addml) elseif isInArray(knights, getPlayerVocation(cid)) then for b = 1, 4 do doPlayerAddSkill(cid, b, addskill) end elseif isInArray(paladins, getPlayerVocation(cid)) then doPlayerAddSkill(cid, 5, addskill) end return true end function onDeEquip(cid, item, slot) if isInArray(mages, getPlayerVocation(cid)) then doPlayerAddMagLevel(cid, - addml) elseif isInArray(knights, getPlayerVocation(cid)) then for b = 1, 4 do doPlayerAddSkill(cid, b, - addskill) end elseif isInArray(paladins, getPlayerVocation(cid)) then doPlayerAddSkill(cid, 5, - addskill) end return true end O do look ficou assim: Registre em CreatureScripts.xml esta tag: <event type="look" name="ItemsDescription" event="script" value="items_descr.lua"/> Registre também em login.lua a tag abaixo junto com as do gênero: registerCreatureEvent(cid, "ItemsDescription") Este é o arquivo items_descr.lua na pasta Scripts (Creaturescripts). local mages = {1, 2, 5, 6} local paladins = {3, 7} local knights = {4, 8} local items = { [2456] = {2, 5}, -- [ItemID] = {ml, skills} [2457] = {3, 6} -- ItemID } function onLook(cid, thing, pos, dist) local voc = getPlayerVocation(cid) local check = items[thing.itemid] if isPlayer(thing) then return true end if check then if isInArray(mages, voc) then local string = 'Increase + '..check[1]..' magic level.' doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, string) elseif isInArray(knights, voc) then local string = 'Increase + '..check[2]..' skills for a knight.' doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, string) elseif isInArray(paladins, voc) then local string = 'Increase + '..check[2]..' skills for a paladins.' doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, string) end end return true end Boa sorte.
  14. Este é o próprio script que te mandei? Não alterou nada? #TOPIC Estou quase terminando o sistema de LOOK.
  15. Assim: <movevent type="OnEquip" itemid="2343" slot="head" event="script" value="golden_helmet.lua"/> <movevent type="DeEquip" itemid="2343" slot="head" event="script" value="golden_helmet.lua"/>
  16. Pode usar este programa para checar se a porta está realmente aberta: PortChecker (Site Oficial) VírusTotal Vou resolver um problema no meu computador e breve volto para tentar te ajudar. Boa sorte.
  17. Vou tentar fazer de uma forma interessante aqui, breve edito. #EDIT: Bom, não ficou da forma que esperava e não deu pra testar porque meu pc está um muquifo hoje. Mas aguardo testar e dizer como foi. #EDIT²: Cara, agora que realmente consegui entender, mas me diz, os atributos seriam ao usar o item né? Mas gostaria de adicionar para que se der look no item mostrar quantos de atributos serão adicionados, mas mostrar apenas para a vocação que der o LOOK, seria isso mesmo? Boa sorte. Poste o resultado.
  18. Deixe-me ver se entendi. No caso seria um item que todos pudessem usar, só que cada vocação ao usar ganha um atributo diferente. É isso?
  19. Sim, pois se configura em movements.xml quais vocações podem utilizar o item (como no exemplo que usei), e automaticamente, o atributo irá para a descrição do item ao dar Look no mesmo. Confirmando: Com esta função você limita os players que quer que use o item e receba os atributos. Abraços.
  20. Já tem esta opção nos servidores acima de 8.6 (se não me engano). No próprio items.xml você adiciona estes atributos ao item. Como por exemplo a Focus Cape, que adiciona ML ao player, vejamos como está declarada. <item id="8871" article="a" name="focus cape"> <attribute key="weight" value="2100" /> <attribute key="armor" value="9" /> <attribute key="slotType" value="body" /> <attribute key="magiclevelpoints" value="1" /> </item> Ou seja, estará adicionando +1 ponto de Magic Level ao player que a usar. Abaixo seguem alguns atributos que podem ser utilizados: Vale lembrar que precisa declarar as ids dos itens em movements.xml com a opção onEquip e DeEquip para que os atributos funcionem perfeitamente. Como exemplo, usaremos o da Focus Cape mesmo, que é proprietário da ID 8871. <movevent type="Equip" itemid="8871" slot="armor" event="function" value="onEquipItem"> <vocation id="1"/> <vocation id="5" showInDescription="0"/> -- aqui declara quais vocações podem usar o item. <vocation id="2"/> <vocation id="6" showInDescription="0"/> </movevent> <movevent type="DeEquip" itemid="8871" slot="armor" event="function" value="onDeEquipItem"/> Espero que tenha entendido, case haja mais dúvidas, não hesite em perguntar. Boa sorte.
  21. Boa tarde, fiz este correndo, mas creio que seja o suficiente ao que precisa. Em CreatureScripts.xml registre a tag abaixo: <event type="advance" name="LimitManaHealth" event="script" value="mana_health_limit.lua"/> Agora crie o arquivo mana_health_limit.lua e coloque o código abaixo dentro: local maxhealth = 10000 local maxmana = 10000 function onAdvance(cid, skill, oldLevel, newLevel) if getCreatureMaxHealth(cid) >= maxhealth or getCreatureMaxMana(cid) >= maxmana then setCreatureMaxHealth(cid, maxhealth) setCreatureMaxMana(cid, maxmana) end return true end E por último, em login.lua, que se encontra dentro da pasta (data/creaturescripts/script), abra-o e registre a tag abaixo junto com as do gênero: registerCreatureEvent(cid, "LimitManaHealth") Não testei, mas me parece funcional. Boa sorte.
  22. Adriano SwaTT postou uma resposta no tópico em Suporte Tibia OTServer
    Ele fica falando isso o tempo todo né? Pode ser uma função onLogin ou onThink. Cheque os arquivos que tem esta função, caso tenha dúvidas, poste aqui os scripts. É porque mexi muito pouco com servidores derivados, então não sei exatamente o que pode ser. Mas neste pouco tempo, sei que há funções que serve para "configurar" o personagem, por isso esses comandos... Eles estão sendo falados inGame porque provavelmente não foram configurados como script em Talkactions.xml. Fico aguardando. Boa sorte.
  23. Adriano SwaTT postou uma resposta no tópico em Suporte Tibia OTServer
    Procure por scripts registrados em creaturescripts.xml. Caso não saiba analisar, poste o seu aqui para que possamos estudar qual o script responsável por tal ato. Ficamos no aguardo. Abraços e boa sorte.
  24. Obrigado. Faça bom aproveito e boa sorte com seu servidor.
  25. Cheque se está tudo perfeitamente conforme tutorial, poste alguma foto do item utilizado. Qual a versão do seu servidor?

Informação Importante

Confirmação de Termo