Ir para conteúdo

luanluciano93

Héroi
  • Registro em

  • Última visita

Tudo que luanluciano93 postou

  1. Cara, vou simplificar ... Há um tempo um grupo de desenvolvedores criaram um projeto para criar o otserv, de código fonte aberto (open source), ou seja, todos poderiam usar e ajudar a desenvolver ... Deram o nome para essa projeto de TheForgottenServer, o famoso TFS, então ... Esse código fonte para funcionar e virar um "executável" precisa ser compilado, ou seja, vc pega o código e usa uns programas para fazer ele virar um "executável" (distro), e em cada sistema operacional você compila de um jeito. É mais ou menos isso.
  2. local days = { ["sunday"] = WORLD_TYPE_PVP, ["monday"] = WORLD_TYPE_NO_PVP, ["tuesday"] = WORLD_TYPE_PVP_ENFORCED, ["wednesday"] = WORLD_TYPE_PVP, ["thursday"] = WORLD_TYPE_NO_PVP, ["friday"] = WORLD_TYPE_PVP_ENFORCED, ["saturday"] = WORLD_TYPE_PVP } function onStartup() local day = os.date("%A", os.time()):lower() local pvpType = days[day] if pvpType then setWorldType(pvpType) end return true end NÃO TESTEI
  3. if getPlayerGuildId(cid) ~= nil then if getPlayerGuildId(cid) >= 1 then end end
  4. local storagesQuests = { 5010, 5020, 5030, 5040, 5050, 5060, 5070, 5080, 1114, 87580, 587423, 1036, 1096, 1087, 1111, 1112, 1113, 1115, 1048, 1116, 1039, 1109, 1086, 1049, 1118, 1117, 1049, 1050, 1038, 1065, 1044, 1004, 1067, 1047, 1027, 1022, 1040, 1010, 1031, 1030, 1005, 1066, 1061, 1088, 1069, 1045, 1089, 1020, 1093, 1026, 1077, 1081, 1095, 1035, 1072, 1075, 1033, 1070, 1006, 1062, 1076, 1034, 1017, 1064, 1041, 1079, 1002, 1082, 1092, 1029, 1032, 1021, 1018, 1037, 1105, 1083, 1099, 1046, 1000, 1098, 1019, 1051, 1014, 1012, 1043, 1094, 1084, 1001, 1042, 1106, 1078, 1008, 1104, 1013, 1090, 1011, 1052, 1080, 1101, 1010, 1003, 1028, 1007, 1073, 1074, 1102, 1071, 1063, 1097, 1053, 1068, 1091, 1085, 1009, 1023, 1024, 1025, 1103, 50084, 58784 } local storageSoma = 100000 function onLogin(player, cid) for _, storage in ipairs(storagesQuests) do if player:getStorageValue(storage) == -1 then player:setStorageValue(storage, 0) end end local x = 0 for _, storage in ipairs(storagesQuests) do if player:getStorageValue(storage) == 1 then x = x + 1 end end player:setStorageValue(storageSoma, x) local playerId = player:getId() db.query("UPDATE `players` SET `quests_feitas` = " .. x .. " WHERE `id` = " .. playerId) return true end
  5. Você pode fazer a contagem toda vez que logar setando uma storage zerada ou colocar pra somar 1 em cada quest. No primeiro caso você colocar antes do laço isso: player:setStorageValue(storageSoma, 0)
  6. local storagesQueVaoPraZero = { 5010, 5020 } local storagesParaVerificarESomar = { 5030, 5040 } local storageSoma = 1000 function onLogin(cid) for _, storage in ipairs(storagesQueVaoPraZero) do if player:getStorageValue(storage) == -1 then player:setStorageValue(storage, 1) end end for _, storage in ipairs(storagesParaVerificarESomar) do if player:getStorageValue(storage) == 1 then player:setStorageValue(storageSoma, player:getStorageValue(storageSoma) + 1) player:setStorageValue(storage, 2) end end return true end
  7. TFS ou OTX e qual versão? Estranho, como ficou o script seu ai?
  8. Você add o tag em creaturescript e o event ao login.lua do creaturescript? Qual engine você usa?
  9. Esta parte "for uid in pairs(target:getDamageMap()) do" gera um laço de repetição pegando o UID de uma tabela que tem todos os jogadores que tiraram vida do monstro X ... Tenho costume de "tratar" todas as funções que dão ou removem dinheiro ou items dentro do jogo. Só estou colocando a condição que se o item realmente não for entregue vai aparecer um erro no console. Se não quiser fazer esse "tratamento" é só colocar assim: if killer:getStorageValue(config.storageQueDeveter) > 0 then killer:addItem(config.itemId, 1) killer:setStorageValue(config.storageQueVaiGanhar, 1) end
  10. local config = { monsterName = "smaug", -- nome em letras minúsculas. storageQueDeveter = 587426, storageQueVaiGanhar = 587427, itemId = 8931 } function onKill(creature, target) local player = creature:getPlayer() if not player then return true end if target:getMonster() and target:getName():lower() == config.monsterName then for uid in pairs(target:getDamageMap()) do local killer = Player(uid) if killer then if killer:getStorageValue(config.storageQueDeveter) > 0 then if not killer:addItem(config.itemId, 1) then print("[ERROR] CREATURESCRIPT, FUNCTION: addItem, PLAYER: ".. killer:getName()) else killer:setStorageValue(config.storageQueVaiGanhar, 1) end end end end end return true end TESTADO EM OTX3
  11. CLASSE: https://github.com/gesior/Gesior2012/blob/master/classes/playerdeath.php PAGE: https://github.com/gesior/Gesior2012/blob/master/pages/killstatistics.php A unica coluna que esta na sua tabela e não esta no padrão é a "player_killers", caso queira add é só mudar nessas duas linhas seguindo o padrão ... https://github.com/gesior/Gesior2012/blob/master/classes/playerdeath.php#L10-L11
  12. o melhor (menos pior) servidor styller que vai encontrar no fórum é este:
  13. @Gabrieldsadaxas obrigado pelo comentário, ajustei um "comentário" em cada nome de boss observando que tem que ser todo em letras minúsculas. @Breniin verifica se no seu servidor existe a função "doPlayerSendMailByName", que é a função que faz o envio dos items para o depot.
  14. Acho que esses servidores "raizes", como por exemplo o styller e baiak, só dão certo em 8.60 mesmo, pessoal não migra, acho que mais por coisa dos bots, mas enfim ... já estou terminando de editar esse styller ... a princípio estou apenas transformando a "base" do styller em um otx3, e logo que acabar crierei um projeto no gitHub e aqui no fórum, tudo que o pessoal ir comentando de bugs, eu vou arrumando, de sugestões, avalio e se possível implemento, e assim vai ...
  15. Então @Fabio Leandro, criei mais para o pessoal, vê se ganhava seguidores que apoiassem e ajudassem a melhorá-lo, nada para mim, seria para eles mesmo, porem não deve sucesso. Estou meio sem tempo agora, mas estou passando um styller 8.60 para versão do otx3, vou postar e vê se ganha alguns seguidores ... tudo mundo que quiser ajudar ou dar dicas, irei atualizando para eles, caso contrario vai ficar abandonado igual o alunia.
  16. @Fabio Leandro daria para colocar online, mas sempre acompanhe as atualizações deles.
  17. Olá @Fabio Leandro, tudo bom? Então cara, sobre a questão de hospedagem caseira eu não te aconselho, como você mesmo disse, se sofrer ataques não ira aguentar muita coisa. Eu te aconselho comprar uma máquina na OVH e aprender sobre ela. Sobre comprar um servidor, acho muito ultrapassado isso cara, existe um projeto no gitHub de um servidor muito bom e o pessoal atualiza diariamente, tirando dúvidas e arrumando problemas que possam existir. Segue o link: https://github.com/opentibiabr/OTServBR-Global Boa sorte =)
  18. luanluciano93 postou uma resposta no tópico em Formação de Equipe
    Muito boa ideia, acompanhando ... se quiser dar uma olhada no meu antigo projeto, tem algumas semelhanças, talvez possa aproveitar algo.
  19. Instala um site e cria por lá, depois de criada você edita pelo phpmmyadmin os privilégios da conta.
  20. Usando uma função onDeath resolve, mas talvez pode ter algum jeito mais fácil que eu não lembrei agora ... Em creaturescript você cria o script e a tag do evento: -- <event type="death" name="EventName" event="script" value="scriptName.lua"/> function onDeath(cid, corpse, deathList) if getCreatureName(cid):lower() == "creatureName" then doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) end return true end E no xml do mostro você "chama" o evento: <script> <event name="EventName"/> </script>
  21. luanluciano93 postou uma resposta no tópico em Suporte Tibia OTServer
    Olá @Daniel Teixeira, também recomendo a 4youstart. Se quiser ter uma ideia da capacidade do administrador dessa empresa olhe os tópicos do @Nightz na seção de infraestrutura aqui do fórum, ele é muito bom no que faz.
  22. luanluciano93 postou uma resposta no tópico em Suporte & Pedidos
    up

Informação Importante

Confirmação de Termo