Ir para conteúdo

pedrominare

Membro
  • Registro em

  • Última visita

Tudo que pedrominare postou

  1. pedrominare postou uma resposta no tópico em Anuncie seu OTServer
    * DAOT Venha conhecer um baiak retro sem bugs e com sistemas exclusivos e inovadores! IP: daot.hopto.org ACC 1/1 ou site http://daot.hopto.org # Informações • Client 8.60 • Skill Rate: 12x • Magic Rate: 8x • Loot Rate: 5x • EXP Rate: 200x (Stages) • Runas não são infinitas • Potions com charges (5x por pot) # Eventos e Sistemas • Tower Defense • Favela (novo) • Monster Boost • Anti-Rollback System • Autoloot System • Minning • Patentes • Castle WAR • Crystalline Frost Event • SnowBall War • Trade Offline • Lottery System • Event Coins • Premium Coins • Vip System • War System • Task System • Bônus de EXP vip account • Fast Attack • Cast System (bonus EXP) • Varias cidades novas e conhecidas • Mapa Baiak modificado exclusivamente para o PvP 100% CUSTOM
  2. Parabéns! Ótimo script! Mas aqui deu um erro, toda vez que lota a primeira backpack o autoloot para de catar os itens, mesmo que haja mais backpacks vazias dentro da BP principal! Ele não é capaz de reconhecer outras backpacks vazias dentro da principal... Isso incomoda porque a maioria dos players deixa uma backpack dentro da outra para que, quando uma lotar, já começar a encher a seguinte...
  3. Parabéns, ótimo script! Aqui não deu certo a parte de mostrar os atributos dos itens no site quando aponta o cursor sobre o item.
  4. Eu concordo kkkkk mas o melhor seria encontrar uma solução pra esse erro x.x
  5. Certo, ele até evita do char ficar trapado pelos monstros, mas o erro não é corrigido, uma vez que agora ao invés de os monstros não morrerem, o player tem a sua task resetada (volta pra 0 na contagem de monstros).
  6. Certo, mas o que exatamente isso vai fazer? vai só converter o valor que é obtido pela função getplayerstoragevalue pra string?
  7. Estou tendo problemas com esse sistema de tasks. Qualquer player aleatório que estiver fazendo qualquer task, em algum momento quando mata os monstros, os monstros não "caem", não morrem, e fica pulando um erro no console. O script em algum momento não é capaz de comparar string com numero, em algum momento.... bem complicado.
  8. Bom, o título já diz tudo... eu testo o combo leader (aimbot do elfbot) no meu OT, assim como outros players já testaram, e simplesmente não funciona ! Quando o player que está como leader ataca algum alvo, o outro player que configurou o combo simplesmente não ataca junto ! Tem alguma porta que precise ser liberada para que ele funcione? Eu uso gcloud.
  9. Galera, como esse problema já tem mais de um ano, eu já resolvi a algum tempo... E não me lembro de qual foi a solução. Vim aqui neste post só porque eu vi resposta, mas já resolvi. A única direção que posso dar, que é no caso o único passo que me lembro, foi eu ter editado essa parte dos exhausted nas sources da distro.
  10. Meu problema continua, também não sei a solução ahsuahus
  11. Salve galera do TK! Hoje venho aqui tirar uma dúvida a respeito de um problema que, creio eu, muitos donos de OTserver vem sofrendo: a grande questão de ter que usar OTX ou TFS operando em apenas 1 núcleo de processador. Bom, eu gostaria de saber se existe alguma possibilidade de uma distro OTX trabalhar utilizando mais de um núcleo de processador, visto que mesmo que o Host seja de alto nível de processamento a distro acaba trabalhando apenas com 1 núcleo de processador, fazendo assim com que o processador não possa trabalhar da maneira que foi construído, dividindo a execução de tarefas em núcleos para um melhor desempenho, deixando assim o server com lag caso atinja uma grande quantidade de players online. Eu já notei que o OTX consome muito processamento, assim como o MySQL (banco de dados), o que o torna complicado de se trabalhar. Enfim, existe alguma alternativa? Outra distro, outro sistema, etc...
  12. Então amigo, eu também já executei este comando mas o erro persiste. Não sei exatamente em qual monstro está dando o erro, pois quem já está usando são os players kkk. Qual seria a solução? Isso no caso é porque o sistema não está encontrando o corpo do monstro quando ele é morto? E se o monstro não tiver corpse? Ele vai bugar?
  13. Estou com um erro parecido....
  14. Sim, poderia ser, aí surge um TP no templo com avisos, dizendo que o evento vai começar. O tp vai levar os caras pra uma determinada sala, onde depois eles serão divididos automaticamente em 2 times e vão fazendo a WAR até que o limite de kills seja atingido por um dos times, que seria o vencedor ! seria legal... vc é demais
  15. As storages dos times, os jogadores conseguem ao entrar num teleport (10001 e 10002). As storages das kills eu não cheguei a iniciar, elas iniciam quando o player mata algum inimigo. (no caso as storages que estão no libs - 10400 e 10600) Cada membro do time carrega a storage correspondente ao seu time, seja ela pro time vermelho (10002) e pro time verde (10001). O evento eu sempre inicio de forma manual, mas se quiser fazer surgir um teleport através de um comando para dividir os times, seria interessante kkk. Vlw !
  16. Já fiz isso tb... como eu disse, está funcionando, mas apenas contando as kills de forma individual, não para o time todo. Tem como vc adaptar este script que eu fiz para contar, além do jeito que já está (contando as kills individualmente) contar pro time?
  17. Ok, vou postar os 3 códigos que precisei usar: as libs, o creaturescripts do onpreparedeath e onkill. EventPoints.lua - libs: eventconfig = { GSR = 10400, GSG = 10600, narrow = 3 } Creaturescripts/scripts/Event_Dead.lua: function onPrepareDeath(cid, deathList, lastHitKiller, mostDamageKiller) dofile('data/lib/EventPoints.lua') local storageIdGreen = 10001 local storageIdRed = 10002 -- apenas para rapida alteracao de quantidade de kills para acabar o evento, a titulo de testes. local eventconfigs = { narrow = 3, constante = 1 } local config = { pos_rock_green = {x=489, y=281, z=7, stackpos=1}, pos_TP_green = {x=488, y=278, z=7, stackpos=1}, pos_rock_red = {x=479, y=278, z=7, stackpos=1}, pos_TP_red = {x=477, y=281, z=7, stackpos=1}, townid = 13 } if isPlayer(cid) then if getPlayerStorageValue(cid, storageIdRed) == 1 then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce deu ponto para a equipe adversaria ! Voce possui : ["..getPlayerStorageValue(cid, eventconfig.GSR).."] pontos.") setPlayerStorageValue(deathList[1], eventconfig.GSG, getPlayerStorageValue(deathList[1], eventconfig.GSG) + eventconfigs.constante) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "O(a) "..getCreatureName(deathList[1]).." possui um total de: ["..getPlayerStorageValue(deathList[1], eventconfig.GSG).."] pontos.") end if getPlayerStorageValue(cid, storageIdGreen) == 1 then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce deu ponto para a equipe adversaria ! Voce possui : ["..getPlayerStorageValue(cid, eventconfig.GSG).."] pontos.") setPlayerStorageValue(deathList[1], eventconfig.GSR, getPlayerStorageValue(deathList[1], eventconfig.GSR) + eventconfigs.constante) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "O(a) "..getCreatureName(deathList[1]).." possui um total de: ["..getPlayerStorageValue(deathList[1], eventconfig.GSR).."] pontos.") end -- fim do evento if getPlayerStorageValue(deathList[1], eventconfig.GSR) >= eventconfigs.narrow or getPlayerStorageValue(deathList[1], eventconfig.GSG) >= eventconfigs.narrow then --criar as rocks para evitar players de entrarem no evento instantaneamente e confundirem o GM doCreateItem(1285,1,config.pos_rock_green) doCreateItem(1285,1,config.pos_TP_green) doCreateItem(1285,1,config.pos_rock_red) doCreateItem(1285,1,config.pos_TP_red) if getPlayerStorageValue(deathList[1], storageIdRed) == 1 then doBroadcastMessage("{RED TEAM} é o vencedor do evento ! Total: ["..eventconfigs.narrow.."] Kills !", 25) end if getPlayerStorageValue(deathList[1], storageIdGreen) == 1 then doBroadcastMessage("{GREEN TEAM} é o vencedor do evento ! Total: ["..eventconfigs.narrow.."] Kills !", 25) end for _, cid in ipairs(getPlayersOnline()) do if getPlayerStorageValue(deathList[1], storageIdRed) == 1 or getPlayerStorageValue(deathList[1], storageIdGreen) == 1 then if getPlayerStorageValue(cid, storageIdRed) == 1 or getPlayerStorageValue(cid, storageIdGreen) == 1 then doTeleportThing(cid, getTownTemplePosition(config.townid)) if getPlayerStorageValue(cid, eventconfig.GSG) ~= 0 or getPlayerStorageValue(deathList[1], eventconfig.GSG) ~= 0 then setPlayerStorageValue(cid, eventconfig.GSG, 0) setPlayerStorageValue(deathList[1], eventconfig.GSG, 0) end if getPlayerStorageValue(cid, eventconfig.GSR) ~= 0 or getPlayerStorageValue(deathList[1], eventconfig.GSR) ~= 0 then setPlayerStorageValue(cid, eventconfig.GSR, 0) setPlayerStorageValue(deathList[1], eventconfig.GSR, 0) end end end end end end return true end Creaturescripts/scripts/eventkill.lua: function onKill(cid, target) dofile('data/lib/EventPoints.lua') local green = 10001 local red = 10002 -- local GSR = 10400 -- local GSG = 10600 if isPlayer(cid) then if getPlayerStorageValue(cid, red) == 1 then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Seu time recebeu ponto ! Voce possui: ["..getPlayerStorageValue(cid, eventconfig.GSR).."] kills.") end if getPlayerStorageValue(cid, green) == 1 then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Seu time recebeu ponto ! Voce possui: ["..getPlayerStorageValue(cid, eventconfig.GSG).."] kills.") end end return true end prontinho !
  18. Registrei sim mano, substitui certinho mas mesmo assim não tive sucesso. A unica solução que encontrei mesmo foi fazer contabilizar as kills de forma individual. Fiz um script que conseguiu contabilizar as kills por player, e não pelo time, aí deu certo :(. Vou deixar o meu script que deu certo aqui, se vc achar melhor implementar a ideia nele (de contar as kills tanto por players quanto por equipes) ficaria interessante também, pros players terem uma espécie de frags dentro do evento... function onPrepareDeath(cid, deathList, lastHitKiller, mostDamageKiller) dofile('data/lib/EventPoints.lua') local storageIdGreen = 10001 local storageIdRed = 10002 -- apenas para rapida alteracao de quantidade de kills para acabar o evento, a titulo de testes. local eventconfigs = { narrow = 3, constante = 1 } local config = { pos_rock_green = {x=489, y=281, z=7, stackpos=1}, pos_TP_green = {x=488, y=278, z=7, stackpos=1}, pos_rock_red = {x=479, y=278, z=7, stackpos=1}, pos_TP_red = {x=477, y=281, z=7, stackpos=1}, townid = 13 } if isPlayer(cid) then if getPlayerStorageValue(cid, storageIdRed) == 1 then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce deu ponto para a equipe adversaria ! Voce possui : ["..getPlayerStorageValue(cid, eventconfig.GSR).."] pontos.") setPlayerStorageValue(deathList[1], eventconfig.GSG, getPlayerStorageValue(deathList[1], eventconfig.GSG) + eventconfigs.constante) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "O(a) "..getCreatureName(deathList[1]).." possui um total de: ["..getPlayerStorageValue(deathList[1], eventconfig.GSG).."] pontos.") end if getPlayerStorageValue(cid, storageIdGreen) == 1 then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce deu ponto para a equipe adversaria ! Voce possui : ["..getPlayerStorageValue(cid, eventconfig.GSG).."] pontos.") setPlayerStorageValue(deathList[1], eventconfig.GSR, getPlayerStorageValue(deathList[1], eventconfig.GSR) + eventconfigs.constante) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "O(a) "..getCreatureName(deathList[1]).." possui um total de: ["..getPlayerStorageValue(deathList[1], eventconfig.GSR).."] pontos.") end -- fim do evento if getPlayerStorageValue(deathList[1], eventconfig.GSR) >= eventconfigs.narrow or getPlayerStorageValue(deathList[1], eventconfig.GSG) >= eventconfigs.narrow then --criar as rocks para evitar players de entrarem no evento instantaneamente e confundirem o GM doCreateItem(1285,1,config.pos_rock_green) doCreateItem(1285,1,config.pos_TP_green) doCreateItem(1285,1,config.pos_rock_red) doCreateItem(1285,1,config.pos_TP_red) if getPlayerStorageValue(deathList[1], storageIdRed) == 1 then doBroadcastMessage("{RED TEAM} é o vencedor do evento ! Total: ["..eventconfigs.narrow.."] Kills !", 25) end if getPlayerStorageValue(deathList[1], storageIdGreen) == 1 then doBroadcastMessage("{GREEN TEAM} é o vencedor do evento ! Total: ["..eventconfigs.narrow.."] Kills !", 25) end for _, cid in ipairs(getPlayersOnline()) do if getPlayerStorageValue(deathList[1], storageIdRed) == 1 or getPlayerStorageValue(deathList[1], storageIdGreen) == 1 then if getPlayerStorageValue(cid, storageIdRed) == 1 or getPlayerStorageValue(cid, storageIdGreen) == 1 then doTeleportThing(cid, getTownTemplePosition(config.townid)) if getPlayerStorageValue(cid, eventconfig.GSG) ~= 0 or getPlayerStorageValue(deathList[1], eventconfig.GSG) ~= 0 then setPlayerStorageValue(cid, eventconfig.GSG, 0) setPlayerStorageValue(deathList[1], eventconfig.GSG, 0) end if getPlayerStorageValue(cid, eventconfig.GSR) ~= 0 or getPlayerStorageValue(deathList[1], eventconfig.GSR) ~= 0 then setPlayerStorageValue(cid, eventconfig.GSR, 0) setPlayerStorageValue(deathList[1], eventconfig.GSR, 0) end end end end end end return true end
  19. O script continua não contando as mortes mano Fiz o teste aqui, atacando com 1 player ou com 2, ele não conta as mortes, sempre [1].
  20. Certo, eu tentei fazer ele por onPrepareDeath, até deu certo só que na hora de contar as kills na variável global ele explode kkkkk. Ele não conta da forma correta! Ex: Seu time recebeu ponto ! Total: [1] Seu time recebeu ponto ! Total: [2] Seu time recebeu ponto ! Total: [1] Seu time recebeu ponto ! Total: [1] ... e por aí vai... Eu imagino que seja porque essa variável global que eu criei lá nas libs (pasta libs) seja alguma string, porque quando eu tentei criar uma variável local pra testar um incremento e deixar ela recebendo o getGlobalStorageValue, o script explodiu, informando algo do tipo. Vou enviar o código atual com PrepareDeath: function onPrepareDeath(cid, deathList) local storageIdGreen = 10001 local storageIdRed = 10002 local config = { pos_rock_green = {x=489, y=281, z=7, stackpos=1}, pos_TP_green = {x=488, y=278, z=7, stackpos=1}, pos_rock_red = {x=479, y=278, z=7, stackpos=1}, pos_TP_red = {x=477, y=281, z=7, stackpos=1}, townid = 13 } if isPlayer(cid) then if getPlayerStorageValue(cid, storageIdRed) == 1 then setGlobalStorageValue(eventconfig.GSG, getGlobalStorageValue(eventconfig.GSG) + 1) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce deu ponto para a equipe adversaria ! Total: ["..getGlobalStorageValue(eventconfig.GSR).."]") end if getPlayerStorageValue(cid, storageIdGreen) == 1 then setGlobalStorageValue(eventconfig.GSR, getGlobalStorageValue(eventconfig.GSR) + 1) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce deu ponto para a equipe adversaria ! Total: ["..getGlobalStorageValue(eventconfig.GSG).."]") -- local getglob = getGlobalStorageValue(eventconfig.GSR) end -- for i = 1, #deathList do -- pid = deathList[i] -- if isPlayer(pid) then -- fim do evento if getGlobalStorageValue(eventconfig.GSR) >= eventconfig.narrow or getGlobalStorageValue(eventconfig.GSG) >= eventconfig.narrow then --criar as rocks para evitar players de entrarem no evento instantaneamente e confundirem o GM doCreateItem(1285,1,config.pos_rock_green) doCreateItem(1285,1,config.pos_TP_green) doCreateItem(1285,1,config.pos_rock_red) doCreateItem(1285,1,config.pos_TP_red) if getPlayerStorageValue(cid, storageIdRed) == 1 then doBroadcastMessage("{RED TEAM} é o vencedor do evento ! Total: ["..eventconfig.narrow.."] Kills !", 25) end if getPlayerStorageValue(cid, storageIdGreen) == 1 then doBroadcastMessage("{GREEN TEAM} é o vencedor do evento ! Total: ["..eventconfig.narrow.."] Kills !", 25) end for _, cid in ipairs(getPlayersOnline()) do if getPlayerStorageValue(cid, storageIdRed) == 1 or getPlayerStorageValue(cid, storageIdGreen) == 1 then doTeleportThing(cid, getTownTemplePosition(config.townid)) if getGlobalStorageValue(eventconfig.GSG) ~= 0 then setGlobalStorageValue(eventconfig.GSG, 0) end if getGlobalStorageValue(eventconfig.GSR) ~= 0 then setGlobalStorageValue(eventconfig.GSR, 0) end end end end end return true end libs do evento (pasta libs): eventconfig = { GSR = 10400, GSG = 10600, narrow = 3 } ME ajuda kkkk :"(
  21. Saudações meus caros amigos do TK! Preciso da ajuda de algum gênio para um problema ! É o seguinte: eu tenho um evento no meu server que consiste em dividir 2 times (Green e Red), onde cada membro de cada time possui uma storage registrada justamente para diferenciar cada membro entre aliado e inimigo, isso vale para manter a cor do outfit, manter efeitos durante o evento, selecionar o vencedor, dentre outras funções. Mas então me surgiu uma ideia: por que não contar as kills dos players durante o evento? Basta eu criar um creaturescript que conte cada vez que eu matar um player (onKill), logo em seguida eu salvo uma globalstorage referente a cada time, diferenciando pela propria storage dos jogadores, faço um incremento a cada vez que um player matar um inimigo, e pronto! SÓ QUE NÃO !!!!! Eu fiz dessa forma, e realmente quando um player mata um inimigo o seu time recebe 1 ponto, só que se 2 ou mais players atacarem o mesmo inimigo e o matarem, o time recebe 2 ou mais pontos ! É como se o script tivesse contando os pontos pela quantidade de players atacando o inimigo e o matando, e não necessariamente contando a quantidade de inimigos mortos !!! Quem pode me ajudar nessa empreitada? Vou mandar o código que fiz : -- ativando funcao para red team local storageIdGreen = 10001 local storageIdRed = 10002 local storageID = 10100 local townid = 13 eventconfig = { GSR = 10400, GSG = 10600, narrow = 3 } function onKill(cid, target, lastHit) if isPlayer(cid) then if getPlayerStorageValue(cid, storageIdRed) == 1 then setGlobalStorageValue(eventconfig.GSR, getGlobalStorageValue(eventconfig.GSR)+1) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Booa ! Ponto pra sua equipe! Seu time possui "..getGlobalStorageValue(eventconfig.GSR).." pontos! Um vencedor precisa de "..eventconfig.narrow.." pontos !") end -- time verde matando if getPlayerStorageValue(cid, storageIdGreen) == 1 then setGlobalStorageValue(eventconfig.GSG, getGlobalStorageValue(eventconfig.GSG)+1) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Booa ! Ponto pra sua equipe! Seu time possui "..getGlobalStorageValue(eventconfig.GSG).." pontos! Um vencedor precisa de "..eventconfig.narrow.." pontos !") end Se alguém souber de alguma solução, ou de como tratar esses globalstorages, por favor, me ajudem!
  22. pedrominare postou uma resposta no tópico em Suporte Tibia OTServer
    Salve galera do TK! OT: Baiak Yurots Distro: OTX 2 Versão: 8.6 Eu descobri um BUG bem estranho no server, relacionado a qualquer FIELD - seja Magic Wall, Fire Field, Poison, Energy. Assim que um player usa o anti-push com gold coins e platinum coins, basta que o antipush coloque em baixo do player unidades de 2 ou 3 golds ou platinum por vez, intercalando (assim como qualquer antipush funciona ), para que não seja mais possível lançar nenhum field sobre o SQM com os golds !!! Eu tirei uma print de um player me mostrando o bug, vou anexar aqui; mas é isso, o bug consiste num stack de golds e platinums no chão impossibilitando qualquer player de takar magic wall ou fields no SQM !!! Alguém pode me ajudar a solucionar?
  23. Desculpe, nunca sei qual é a área correta amigo... para onde foi movido?
  24. Fala galera do TK ! Estou criando um evento e preciso saber se alguém conhece algum script que faça determinada função. Uma vez eu estava num OT e vi um script bem interessante: quando o server abria, os players eram logados automaticamente pelo próprio server e começavam a andar pela cidade, templo, depot, e alguns até se atacavam, mas tudo de forma automática ! Parece que em determinados momentos o server (talvez por meio de uma global event) logava esses chares tudo de uma vez e eles começavam a andar automaticamente ?! Bom, achei bem interessante, e gostaria de implementar isso para um evento que estou criando. Precisava saber quem tem esse script, onde varios players são logados, começam a andar (tipo cave bot mesmo) e até se atacar, com um global events ordenando o horário que tal evento ocorre. Grato !

Informação Importante

Confirmação de Termo