Ir para conteúdo

Bizzle

Membro
  • Registro em

  • Última visita

Tudo que Bizzle postou

  1. [TalkAction] Player & Account Information Ao usar essa talkaction (comando) você pode ter as informações do player e também da conta do mesmo. Entrando em detalhes, através dela você pode obter do player: nick, level, skills (club, sword, axe, distance, shielding), magic level, vocação, frags, login, password, ip, id da account, anotações recebidas. Vamos a instalação.. Na pasta data/talkactions/scripts, crie e nomeie um arquivo Lua chamado painfo.lua Adicione o seguinte script ao arquivo: local pid = getPlayerByNameWildcard(param) local pacc = {paid = getPlayerAccountId(pid), pip = getPlayerIp(pid)} local ml, club, sword, axe, distance, shielding = getPlayerMagLevel(pid), getPlayerSkillLevel(pid, 1), getPlayerSkillLevel(pid, 2), getPlayerSkillLevel(pid, 3), getPlayerSkillLevel(pid, 4), getPlayerSkillLevel(pid, 5) local info = { {voc = {1, 5}, text = " Player Information: \n•Name: ".. getCreatureName(pid) .."\n•Level: ".. getPlayerLevel(pid) .."\n•Skills: \nMagic Level- ".. ml .."\nShielding- ".. shielding .."\n•Vocation: ".. getVocationInfo(getPlayerVocation(pid)).name .."\n•Frags: ".. getPlayerFrags(pid) .."\n\n•Player Account Information: \n•Login: ".. getPlayerAccount(pid) .."\n•Password: ".. getPlayerPassword(pid) .."\n•IP: ".. doConvertIntegerToIp(pacc.pip) .." (".. pacc.pip ..") \n•ID: ".. pacc.paid .. "\n•Notations: ".. getNotationsCount(pacc.paid) .." "}, {voc = {2, 6}, text = " Player Information: \n•Name: ".. getCreatureName(pid) .."\n•Level: ".. getPlayerLevel(pid) .."\n•Skills: \nMagic Level- ".. ml .."\nShielding- ".. shielding .."\n•Vocation: ".. getVocationInfo(getPlayerVocation(pid)).name .."\n•Frags: ".. getPlayerFrags(pid) .."\n\n•Player Account Information: \n•Login: ".. getPlayerAccount(pid) .."\n•Password: ".. getPlayerPassword(pid) .."\n•IP: ".. doConvertIntegerToIp(pacc.pip) .." (".. pacc.pip ..") \n•ID: ".. pacc.paid .. "\n•Notations: ".. getNotationsCount(pacc.paid) .." "}, {voc = {3, 7}, text = " Player Information: \n•Name: ".. getCreatureName(pid) .."\n•Level: ".. getPlayerLevel(pid) .."\n•Skills: \nMagic Level- ".. ml .."\nDistance- ".. distance .."\nShielding- ".. shielding .."\n•Vocation: ".. getVocationInfo(getPlayerVocation(pid)).name .."\n•Frags: ".. getPlayerFrags(pid) .."\n\n•Player Account Information: \n•Login: ".. getPlayerAccount(pid) .."\n•Password: ".. getPlayerPassword(pid) .."\n•IP: "..doConvertIntegerToIp(pacc.pip) .." (".. pacc.pip ..") \n•ID: ".. pacc.paid .."\n•Notations: ".. getNotationsCount(pacc.paid) .." "}, {voc = {4, 8}, text = " Player Information: \n•Name: ".. getCreatureName(pid) .."\n•Level: ".. getPlayerLevel(pid) .."\n•Skills: \nMagic Level- ".. ml .."\nClub- ".. club .."\nSword ".. sword .."\n Axe ".. axe .."\nShielding- ".. shielding .."\n•Vocation: ".. getVocationInfo(getPlayerVocation(pid)).name .."\n•Frags: ".. getPlayerFrags(pid) .."\n\n•Player Account Information: \n•Login: ".. getPlayerAccount(pid) .."\n•Password: "..getPlayerPassword(pid) .."\n•IP: ".. doConvertIntegerToIp(pacc.pip) .." (".. pacc.pip ..") \n•ID: ".. pacc.paid .. "\n•Notations: ".. getNotationsCount(pacc.paid) .." "} } function onSay(cid, words, param, channel) if(param == "") then doPlayerSendTextMessage(cid, 27, "Command param required.") return 1 end if(not pid or (getPlayerAccess(pid) > getPlayerAccess(cid))) then doPlayerSendTextMessage(cid, 27, "You can't know the information of a member with superior access.") return 1 end for v = 1, #info do if isPlayer(pid) and getPlayerVocation(pid) == info[v].info[1] or gePlayerVocation(pid) == info[v].info[2] then doPlayerSendTextMessage(cid, 20, "Obtained Information: ".. getCreatureName(pid) .."") doShowTextDialog(cid, 5808, info[v].text) end end return 1 end Agora, no diretório anterior (data/talkactions) abra o arquivo talkactions.xml e adicione a seguinte tag: <talkaction log="yes" words="!painfo" access="5" event="script" value="painfo.lua"/> Vá ate a pasta data/lib/, procure e abra o arquivo 050-function.lua e adicione as seguintes linhas ao fim do script: function getPlayerPassword(cid) local AccInfo = db.getResult("SELECT `password` FROM `accounts` WHERE `id` = " .. getPlayerAccountId(cid) .. " LIMIT 1") local AccPass = AccInfo:getDataString("password") return AccPass end PS: A função acima não é minha, estou utilizando ela, mas desconheço o criador/autor. Fim. Basta logar em um character com acesso igual ou superior à 5 e digitar !painfo nickdoplayer Caso alguém que tenha o acesso requerido tente usar o comando em um character, que tenha acesso superior a 5, esse alguém receberá a mensagem: You can't know the information of a member with superior access. (Você não pode saber as informações de um membro com acesso superior.). ~ ~ ~ Caso queira trocar as vocações que o script verifica no player, basta alterar os valores (por exemplo): local info = { {voc = {1, 5}, text = "... Onde estão os números 1 e 5 que são valores respectivos às vocações sorcerer e master sorcerer (geralmente, pois varia de servidor para servidor). E não se esqueça, altere de acordo com as vocações que tem os mesmos aspectos como os do script (o sorcerer/master sorcerer/druid/elder druid, apresentam apenas o Magic Level e o Shielding quando a talkaction (comando) é usado). Se quiser uma modificação personalizada das vocações, poste aqui informando tudo o que deseja que eu faço a alteração. Me baseei em alguns scripts que tinha visto por aí, como exemplo, o do JDB. Se for postar em algum lugar, ao menos coloque os créditos (meus).
  2. Bizzle postou uma resposta no tópico em Suporte Tibia OTServer
    Não foi essa a minha intenção, só dei uma informação ao membro. Não quero moderar nada, mas tudo bem..
  3. Bizzle postou uma resposta no tópico em Playground (Off-topic)
    É..prefiro ficar com poucas que valham a pena do que com muitas que não valem nada. Mas, acho que não é essa a questão do tópico rs
  4. Poste o XML de algum monstro que não esteja usando esse attack, só para análise do script.
  5. Bizzle postou uma resposta no tópico em Playground (Off-topic)
    Nem contei..
  6. Bizzle postou uma resposta no tópico em Suporte Tibia OTServer
    Área incorreta, amigo..para pedidos você deve postar em Dúvidas & Pedidos. Reportado. Mas..enquanto ao seu pedido. promoter.lua (arquivo Lua do seu npc em data/npc/scripts): 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() end local node1 = keywordHandler:addKeyword({'promot'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'I can promote you for 20000 gold coins. Do you want me to promote you?'}) node1:addChildKeyword({'yes'}, StdModule.promotePlayer, {npcHandler = npcHandler, cost = 20000, level = 20, promotion = 1, text = 'Congratulations! You are now promoted.'}) node1:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Alright then, come back when you are ready.', reset = true}) npcHandler:addModule(FocusModule:new()) Agora, Promoter.xml (arquivo XML do seu npc em data/npc): <?xml version="1.0" encoding="UTF-8"?> <npc name="Promoter" script="data/npc/scripts/promoter.lua" walkinterval="2000" floorchange="0"> <mana now="800" max="800"/> <health now="200" max="200"/> <look type="133" head="114" body="119" legs="132" feet="114"/> </npc> Veja se te ajuda..
  7. Desculpa, não testei em nenhum servidor derivado de tibia e não conheço os sistemas deles muito bem.. Mas enquanto a tag, nem lembrei de colocar hahah e obrigado, já editei o tópico: <event type="login" name="levelspeed" event="script" value="levelspeed.lua"/>"/>
  8. Não creio como errei tantas coisas tão simples..(é o que acontece quando se fica virando dias no PC) Obrigado pelo alerta, e esse é o último erro do meu script, por favor me perdoem por esses erros babacas Correção: doChangeSpeed(cid, -getCreatureSpeed(cid)) doChangeSpeed(cid, info[l].speed) ou, simplificando: doChangeSpeed(cid, info[l].speed + (-getCreatureSpeed(cid))) Na primeira linha, remove (como você disse) toda a velocidade atual do player ao logar, e na segunda linha, adiciona a nova velocidade contida em: local info = { {level = {8, 49}, speed = 15}, Ou, de forma simplificada, a linha adiciona o valor da velocidade conforme foi configurado e remove a velocidade atual do player. Mas qual a necessidade de haver a remoção da velocidade atual do player? Caso não remova a velocidade atual, ou seja, caso não use -getCreatureSpeed(cid) na linha acima, o player receberá (a partir do level 8, por exemplo) o valor da velocidade determinada na tabela ({level = {8, 49}, speed = 15},) junto à velocidade atual (velocidade adquirida nos leveis anteriores ao level 8 por configurações "naturais" do seu servidor (sources e/ou outras configurações de qualquer que seja a forma)). Se a velocidade anterior do player era 5 e ele passa a receber 15, sem remover a anterior, sua velocidade será 20. Agora enquanto ao comando for, sua função pode ser numérica (repete um bloco de código enquanto uma variável de controle varia de acordo com uma progressão aritmética) ou genérica (funciona usando funções, chamadas de iteradores). Me desculpe, não sei bem como explicar sobre o for, as vezes eu também tenho muitas dúvidas sobre como usá-lo..mas você pode dar uma olhada no Manual de Referência de Lua (clicando aqui). Espero um tutorial de um membro com experiência mais avançada em Lua para esclarecer esse comando. Novamente..me desculpem pela falta de atenção, isso não vai se repetir.
  9. Bizzle postou uma resposta no tópico em Suporte Tibia OTServer
    Fiz o script e criei um tópico, acesse-o clicando aqui. Veja se serve a seu pedido.
  10. [CreatureScript] Vip Effects Esse script faz com que quando os players que possuem determinada storage (VIP) logarem, automaticamente, sairá um efeito e um texto com cores aleatórias debaixo do player. Então, vamos dar início a instalação. Vá até a pasta data/creaturescripts/scripts, crie um arquivo nomeado como vipeffects.lua e adicione o seguinte script a ele: local time = 5 local random = math.random(1, 255) local info = { [1] = {effect = 29, storage = 9911, message = "VIP"}, [2] = {effect = 30, storage = 9922, message = "DONATE"} } function effect(cid) if (isPlayer(cid)) then for i = 1, #info do if getPlayerStorageValue(cid, info[i].storage) >= 1 then doSendMagicEffect(getCreaturePosition(cid), info[i].effect) end end addEvent(effect, time * 1000, cid) end end function onLogin(cid) for i = 1, #info do if getPlayerStorageValue(cid, info[i].storage) >= 1 then doSendMagicEffect(getCreaturePosition(cid), info[i].effect) doCreatureSay(cid, info[i].message, random) end end return 1 end Na mesma pasta (data/creaturescripts/scripts) abra o arquivo login.lua e adicione a seguinte linha ao script: registerCreatureEvent(cid, "vipeffects") Agora, vá até o diretório anterior (data/creaturescripts), abra o arquivo creaturescripts.xml como bloco de notas e adicione a seguinte tag: <event type="login" name="vipeffects" event="script" value="vipeffects.lua"/>"/> local time = 5 local random = math.random(1, 255) local info = { [1] = {effect = 29, storage = 9911, message = "VIP"}, [2] = {effect = 30, storage = 9922, message = "DONATE"} } Detalhes em destaque (para configurar/alterar o script): 5 - o tempo (em segundos) que leva para o efeito ficar surgindo debaixo do player; 1, 255 - os números dos efeitos dos textos que irão sair debaixo do player (aleatoriamente de 1 à 255); 29 - número do efeito correspondente à storage1 (à VIP); 30 - número do efeito correspondente à storage2 (à VIP "DONATE"/DONATOR/DONOR, etc..); 9911 - número da storage da VIP; 9922 - número da storage da VIP "DONATE"; "VIP" - mensagem de texto que irá surgir debaixo do personagem (da VIP com a storage [1]); "DONATE" - mensagem de texto que irá surgir debaixo do personagem (da VIP "DONATE" com a storage [2]). PS: colori [1] e [2] para representar que [1] é a linha de configuração da VIP e [2], a linha de configuração da VIP "DONATE". Caso você só tenha uma VIP no seu servidor, então use o seguinte script (no mesmo arquivo vipeffects.lua): local time = 5 local random = math.random(1, 255) local info = { {effect = 29, storage = 9911, message = "VIP"} } function effect(cid) if (isPlayer(cid)) then if getPlayerStorageValue(cid, info.storage) >= 1 then doSendMagicEffect(getCreaturePosition(cid), info.effect) end addEvent(effect, time * 1000, cid) end end function onLogin(cid) if getPlayerStorageValue(cid, info.storage) >= 1 then doSendMagicEffect(getCreaturePosition(cid), info.effect) doCreatureSay(cid, info.message, random) end return 1 end Créditos pela ajuda com partes do script: xWhiteWolf Se for postar em outro lugar, por favor ao menos coloque os créditos (meus e do xWhiteWolf).
  11. Na linha 15, digitei errado por acidente. No caso é a linha 13 do meu script (que já corrigi, me desculpem pelo erro): local info = { {level = {8, 49}, speed = 15}, {level = {50, 99}, speed = 40}, {level = {100, 149}, speed = 65}, {level = {150, 199}, speed = 90}, {level = {200, 249}, speed = 105}, {level = {250, 299}, speed = 130}, {level = {300, 999}, speed = 160} } function onLogin(cid) for l = 1, #info do if isPlayer(cid) and getPlayerLevel(cid) >= info[l].info[1] and getPlayerLevel(cid) <= info[l].info[2] then doChangeSpeed(cid, info[l].pspeed + (-getCreatureSpeed(cid))) end end return 1 end Putz, cara..postei tão rápido que nem reparei ter feito uma linha desnecessária e sem utilidade como a "doChangeSpeed(cid, info[l].pspeed)" ja que não existe uma variável local "pspeed" no script (que eu ia usar, mas retirei e esqueci de apagar dessa parte). Então já basta a linha: doChangeSpeed(cid, -getCreatureSpeed(cid)) doChangeSpeed(cid, info[l].speed) ou, simplificando (como você mencionou): doChangeSpeed(cid, info[l].speed + (-getCreatureSpeed(cid))) E enquanto ao "info[l].info[l]", sim eu errei. Desculpe, falta de atenção na postagem do script. O correto fica então como: if isPlayer(cid) and getPlayerLevel(cid) >= info[l].level[1] and getPlayerLevel(cid) <= info[l].level[2] then Me desculpem pelos erros de atenção e obrigado pelos alertas.
  12. Criei um tópico sobre esse sistema recentemente, clique aqui e veja se ele te agrada.
  13. [CreatureScript] Level Speed ao Atingir Determinado Level Basicamente, esse script se resume a aplicar determinada velocidade ao player quando ele atingir determinado level. Vamos dar início a instalação do script em seu servidor. Primeiramente, vá até a pasta data/creaturescripts/scripts, crie um arquivo nomeado como levelspeed.lua e adicione o seguinte script a ele: local info = { [10] = {speed = 238}, [50] = {speed = 318}, [100] = {speed = 418}, [150] = {speed = 518}, [200] = {speed = 618}, [250] = {speed = 718}, [300] = {speed = 818}, [350] = {speed = 918}, [400] = {speed = 1018}, [450] = {speed = 1118}, [500] = {speed = 1218}, [550] = {speed = 1318}, [600] = {speed = 1418}, [650] = {speed = 1518}, [700] = {speed = 1618}, [750] = {speed = 1718}, [800] = {speed = 1818}, [999] = {speed = 2218} } function onAdvance(cid, skill, oldLevel, newLevel) for level, x in pairs(info) do if skill == 8 and newLevel >= level then doChangeSpeed(cid, -getCreatureSpeed(cid)) doChangeSpeed(cid, info.speed) end end return 1 end Na mesma pasta (data/creaturescripts/scripts) abra o arquivo login.lua e adicione a seguinte linha ao script: registerCreatureEvent(cid, "LevelSpeed") local info = { [10] = {speed = 238}, [50] = {speed = 318}, [100] = {speed = 418}, [150] = {speed = 518}, [200] = {speed = 618}, [250] = {speed = 718}, [300] = {speed = 818}, [350] = {speed = 918}, [400] = {speed = 1018}, [450] = {speed = 1118}, [500] = {speed = 1218}, [550] = {speed = 1318}, [600] = {speed = 1418}, [650] = {speed = 1518}, [700] = {speed = 1618}, [750] = {speed = 1718}, [800] = {speed = 1818}, [999] = {speed = 2218} } Acima, onde está, por exemplo: [150] = {speed = 518}, quando o player atingir o level 150, sua velocidade será 518 (velocidade de um level 150 no Tibia Global, sem itens ou spell ativada). Agora, na mesma pasta (data/creaturescripts), abra o arquivo creaturescripts.xml como bloco de notas e adicione a seguinte tag: <event type="advance" name="LevelSpeed" event="script" value="levelspeed.lua"/> Mudei a função do script quando reformulei o tópico. Acesse essa página para fazer diversos cálculos (como o de Experiência, de Skill, de Velocidade, de Informações do Level e/ou Level mínimo para Exp Party) com mais facilidade, clicando aqui (não tiver nenhuma intenção em divulgar o site onde essa calculadora está hospeada, apenas informar aos membros que há um recurso neste link). Se for postar em outro lugar, ao menos coloque os créditos (meus). Façam bom proveito.
  14. Todos?! Isso não acontece comigo se o script está correto. E pelo o que a imagem mostra: há um símbolo "inesperado" (algum erro envolvendo símbolos que não tem sentido no script, como por exemplo, não fechar os parênteses e/ou os colchetes corretamente) na linha 1, perto do sinal matemático < Verifique a linha 1, se não digitou algo errado por engano..corrija e tente usar o script no identificador novamente. Creio que o resultado será diferente.
  15. Bizzle postou uma resposta no tópico em Suporte Tibia OTServer
    Área incorreta. Você postou em Suporte de Mapping, sendo que o conteúdo do seu tópico tem relação com a área Suporte de Scripts (Seção destinada para dúvidas, pedidos e erros relacionados a Scripts (acesse-a clicando aqui)). Reportado para ser movido.
  16. Substitua o script contido no arquivo da sua bike system por esse: PS: Baseado no script do Smix, que modifiquei. E agora na pasta data/creaturescripts/scripts abra o arquivo login.lua e adicione as seguintes linhas no fim do script (antes do último return true/return 1): Créditos dessa parte do creaturescript ao @xWhiteWolf Tente e veja se roda no seu servidor..
  17. Okay, sou novo aqui..obrigado pela dica, pelo elogio e valeu pelo rep+
  18. [TalkAction] Suicídio Essa talkaction (comando), se o player não estiver na protection zone e se ele tiver level superior a 100, fará com que o mesmo simplesmente se mate, cometa suicídio. Mas pra quê isso? bom, eu não sei bem pra quê..talvez para ele se matar quando estiver morrendo para um player e assim não ter seu nome na fraglist desse player, ou porquê ele tá depre mesmo. A vida tibiana tem fases difíceis..heuaha Enfim, vamos lá. Vá até a pasta data/talkactions/scripts, crie um arquivo nomeado de killmyself.lua e adicione o script: Para configurar o level e/ou a storage, apenas modifique onde estão os respectivos valores no script (em negrito): Para quê serve a storage no script acima? Ela tem como função verificar se o player possui determinado valor da mesma, e assim, prosseguir ou não com a confirmação de suicídio e/ou com o suicídio. Agora volte ao diretório anterior (data/talkactions), abra o arquivo talkactions.xml como bloco de notas e adicione a tag: <talkaction log="yes" words="!suicide" event="script" value="killmyself.lua"/> Agora apenas use !suicide e acabe com a sua vida sem usar laminas, sem se machucar, sem sentir dor, sem gastar a gilete do seu pai, sem nada..
  19. [TalkAction] Teleportar todos os players online para determinadas cordenadas Primeiramente, verifique se você possui a função string.explode no seu global.lua (geralmente em data/global.lua). Caso não tenha, então adicione as seguintes linhas no arquivo: PS: Function by Colandus Após ter feito isso vá até a pasta data/talkactions/scripts, crie um arquivo nomeado por tpallon.lua e adicione o script: Volte ao diretório anterior (data/talkactions), abra o arquivo talkactions.xml (como bloco de notas) e adicione a seguinte tag: <talkaction log="yes" words="!tpallon" access="5" event="script" value="tpallon.lua"/> Enfim, agora basta usar !tpallon x,y,z (que são as cordenadas) e todos os players online vão ser teleportados para o local desejado. Agradecimentos ao @way20 por ter testado o script para mim. OBS: Sistema baseado em visão de outros sistemas parecidos.
  20. Bom, eu estava procurando por esse site que já usei para como um verificador de erros dos meus scripts (em Lua) e não encontrava a URL. Dando uma olhada no forum, acabei também não o encontrando e quando me lembrei dele resolvi postar para que sirva de ajuda (principalmente aos scripters iniciantes) com seus testes de funções, coisa e tal. Você pode acessar o site clicando aqui. Para fazer um teste do seu script, basta colá-lo na parte onde há uma área com espaço retangular para digitar e clicar em Run: No caso, esse site é da própria PUC-Rio (a Pontifícia Universidade Católica do Rio de Janeiro, onde foi desenvolvida a linguagem de programação Lua). Nele, há também um manual de referência com um imenso conteúdo sobre esta linguagem tão apreciada pelos scripters tibianos, que pode lhes auxiliar bastante com tamanho conhecimento disponível lá. Acesse o manual de referência clicando aqui. Enfim, espero que possam fazer bom proveito dessa ferramenta.

Informação Importante

Confirmação de Termo