Ir para conteúdo

Zanrix

Membro
  • Registro em

  • Última visita

Tudo que Zanrix postou

  1. Então, estou fazendo um sistema de level para as guilds no meu servidor e tô tentando pensar em algumas ideias pro sistema. O servidor é totalmente focado em RPG. Por enquanto o que pensei: - Você pode "setar" uma porcentagem da sua própria experiência (de 0% a 5%) que será atribuída para sua guild (e cada guild pode ter sua própria regra sobre quanto um jogador deveria compartilhar). - Sua guild pode ter mais membros conforme o level dela. - Sua guild pode comprar Guild Houses maiores dependendo do seu level. Gostaria de criticas e sugestões! ?
  2. Zanrix postou uma resposta no tópico em Suporte Tibia OTServer
    Não tenho certeza se funciona com spear/wands, mas se funciona esse é o script: local function isWeapon(uid) uid = uid or 0 local f = getItemWeaponType(uid) if f == 1 or f == 2 or f == 3 or f == 7 or f == 4 then return true end return false end function onUse(cid, item, fromPosition, itemEx, toPosition) if item.uid == 0 or item.itemid == 0 then return false end if isCreature(itemEx.uid) == TRUE then return false end if isWeapon(itemEx.uid) then if math.random(1,100) < 15 then doItemSetAttribute(itemEx.uid, 'dualwield', true) doPlayerSendCancel(cid, "Item encantado com sucesso!") else doPlayerSendCancel(cid, "Sua pedra quebrou ao tentar encantar o item.") end doRemoveItem(item.uid, 1) else doPlayerSendCancel(cid, "Use a pedra em alguma arma.") end return true end
  3. Um vídeo/trailer simples mostrando um pouco dos sistemas:
  4. Zanrix postou uma resposta no tópico em Suporte & Pedidos
    Sinceramente não sei se daria muitos jogadores, mas eu particularmente acho que teria bastante potencial, da pra trazer muita coisa do tema pro servidor. Eu com certeza jogaria.
  5. Muito obrigado @Ments! Infelizmente sei muito bem que esse não é o alvo para uma grande parte do público hoje em dia, porém, estou fazendo sim completamente por adorar rpg e ao menos espero que quem também curte goste do projeto. Novamente, obrigado pelo comentário!
  6. Obrigado pelo comentário! Acredito que a árvore de skills seja a maior novidade mesmo. A ideia é uma grande customização do personagem, onde mesmo tendo a mesma classe podem ser muito diferentes.
  7. A ideia é bem essa mesmo, você tem o level de forja que vai te liberando novos itens pra fazer e que precisam de produtos/materiais de criaturas ou até de npcs. A refinação seria também um certo tipo de forja (também exige level de forja), mas apenas pra aprimorar o item (mais ataque/defesa). Tem atributos que você só consegue obtendo um item lendário e outros atributos que só consegue forjando.
  8. @WhiteBubble Temos um sistema de refinamento criado já e também estamos discutindo sobre fazer o sistema de forja, tentando formular algumas ideias, inclusive estava pensando em fazer um pequeno vínculo entre esses dois sistemas. Obrigado pelo comentário e pela sugestão!
  9. @moskitinho Valeu cara, esse tipo de comentário que me da motivação pra continuar fazendo! Sem previsões ainda, mas vamos precisar e MUITO de ajuda para testar tudo.
  10. function onCastSpell(cid, var) local cooldown_stg = 90852 -- storage local cooldown_time = 10 -- 1 = 1 second local numerodehit = 5 local drena = 1000 if isMonster(getCreatureTarget(cid))then return false end if exhaustion.check(cid, cooldown_stg) == false then exhaustion.set(cid, cooldown_stg, cooldown_time) for x=1,numerodehit do if isPlayer(getCreatureTarget(cid)) then doCreatureAddMana(getCreatureTarget(cid), -drena) end end else doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) doPlayerSendCancel(cid, "Spells is on cooldown [" ..exhaustion.get(cid, cooldown_stg).."s].") return false end end
  11. Obrigado! :D @Heyron Eu não tinha pensado em pegar o público de fora, mas realmente é uma boa ideia, agradeço o feedback. \o
  12. Fala aí pessoal! Curse Tibia Server é um servidor para amantes de RPG, de rates baixas e onde a exploração é muito bem recompensada. Além disso, temos como foco fazer patchs frequentemente, sempre adicionando novos conteúdos e proporcionando novos desafios aos jogadores. Informações Gerais - A experiência é stagiada em torno de 5x até 1.5x. - O mapa é uma mistura de áreas e modificações próprias + global + partes de servidores que nunca foram lançados. - O servidor tem base na versão 9.6, mas adicionamos algumas criaturas e alguns itens de versões posteriores. Principais Mudanças - Em vez de poções recuperarem vida/mana instantaneamente, elas recuperam ao longo de 3 segundos. - O server tem Training Monk, porém, você só pode ficar neles durante 1 hora, para regenerar esse tempo é preciso caçar bastante. - Andar de barco é uma tarefa um pouco mais complexa, com um custo bastante elevado e algumas passagens precisando de uma pequena quest ou alguns itens. Vocações - 5 novas classes, além das existentes terem sido reformuladas. - Uma promoção a mais para cada classe. - Todas classes ganharam várias magias novas. - Uma das classes novas é o famoso Necromancer: Atributos Atributos são pontos escolhidos pelo jogador para melhorar o desempenho de seus personagens e desenvolvê-los de uma maneira pessoal. Eles também servem para poder conjurar algumas magias e fazer algumas interações com o mapa (Puxar uma alavanca emperrada exige força, por exemplo). Árvore de Skills A árvore de skills te permite distribuir pontos para liberar novas magias e personificar ainda mais seu personagem o deixando mais versátil de acordo com sua preferência. - Cada classe tem dois caminhos na árvore, cada um deles é voltado para uma jogabilidade diferente. - Quase todas magias são liberadas pela árvore. Prévia do Necromancer: Caminho da morte Caminho de summons Sistema de Raridade Todos equipamentos tem uma pequena chance de serem dropados como um item raro, épico ou lendário. - Quanto melhor a qualidade do item, melhor será os bônus, porém será mais difícil de encontrá-lo. Existem ainda alguns outros sistemas e as telas são mais um protótipo, mas acho que da pra ter uma ideia do objetivo do servidor. O que acham? Jogariam? Gostaria muito de ouvir críticas e opiniões! (:
  13. Zanrix postou uma resposta no tópico em Suporte Tibia OTServer
    Se for igual criatura, tenta por na tag de npc, tipo: name="Alice" shield="1"
  14. Se for MySQL é só executar o comando "update players set level = 50;"
  15. Zanrix postou uma resposta no tópico em Suporte Tibia OTServer
    Na linha doPlayerAddOutfit(cid, 147, 0), muda o 147 pro id da outfit 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 if(msgcontains(msg, 'CHAMPA') or msgcontains(msg, 'champa')) then selfSay('Deseja virar {Champa} por 20 Vip Points?', cid) talkState[talkUser] = 1 elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then if(getPlayerItemCount(cid, 9971) >= 20) then doPlayerRemoveItem(cid, 9971, 20) doPlayerSetVocation(cid,643) doPlayerAddOutfit(cid, 147, 0) selfSay('Parabens, Agora voce e um Champa!!!', cid) else selfSay('Você não tem {Vip Points} Suficientes.', cid) end talkState[talkUser] = 0 end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())
  16. Tava faltando uns "end", da uma tentada agora, editei no outro post
  17. Ainda não testei npc/joao.xml <?xml version="1.0" encoding="UTF-8"?> <npc name="Joao" script="npcmissao.lua" walkinterval="0" floorchange="0"> <health now="100" max="100"/> <look type="145" head="1" body="114" legs="114" feet="133" addons="1" corpse="2212"/> </npc> npc/scripts/npcmissao.lua creaturescripts/creaturescrips.xml <event type="kill" name="npcmissao" event="script" value="npcmissao.lua"/> creaturescripts/scripts/login.lua registerCreatureEvent(cid, "npcmissao") creaturescripts/scripts/npcmissao.lua function onKill(cid, target) local monster = getCreatureName(target):lower() if monster == "the imperror master" then -- aqui vai o nome do bixo que precisa matar, tudo em minusculo if getPlayerStorageValue(cid, 87321) == 4 and getPlayerStorageValue(cid, 87333) <= 0 then setPlayerStorageValue(cid, 87333, 1) end end return true end
  18. <talkaction words="!food;/food" event="script" value="buyfood.lua"/> local config = { price = 1000, food_id = 2789, msg = "Você comprou 100 brown mushrooms." } function onSay(cid, words, param, channel) if doPlayerRemoveMoney(cid, config.price) then doPlayerAddItem(cid, config.food_id, 100) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, config.msg) end return true end
  19. Não sei se resolveria, mas pode tentar isso: creaturescripts.xml <event type="statschange" name="zerovida" event="script" value="zerovida.lua"/> login.lua registerCreatureEvent(cid, "zerovida") creaturescripts/scripts/zerovida.lua local pos = {x=100, y=100, z=7} function onStatsChange(cid, attacker, type, combat, value) if getCreatureHealth(cid) <= 0 then doTeleportThing(cid, pos) end return true end
  20. Percent 1.0 ele toma 100% do dano, 0.5 ele toma 50%, com 0 ele tomaria 0 de dano
  21. Que bizarro, eu testei aqui e funcionou. Você tá usando o mesmo sprite (id do item) nesse baú? O mesmo ID dos outros baús de outras quests
  22. No map editor o baú ta com unique ID de 8945?
  23. @diarmaint Tira essa tag no actions.xml que tem no final da imagem, deixa sem, e muda o script de novo: function onUse(cid, item, fromPosition, itemEx, toPosition) if item.uid == 8945 then local max_gold = 50 if getPlayerStorageValue(cid, item.uid) == -1 then local qtd_gold = math.random(1,max_gold) doPlayerSendTextMessage(cid,22,"Parabéns você acabou de completar a reflect quest e recebeu ".. qtd_gold .." golds em uma quantidade aleatória de 0 a ".. max_gold ..". ") setPlayerStorageValue(cid, 45455, 1) doPlayerAddItem(cid, 2148, qtd_gold) setPlayerStorageValue(cid, item.uid, 1) else doPlayerSendTextMessage(cid,22,"Está vazio.") end elseif item.uid > 1000 and item.uid < 13000 then local itemWeight = getItemWeightById(item.uid, 1) local playerCap = getPlayerFreeCap(cid) if getPlayerStorageValue(cid, item.uid) == -1 then if playerCap >= itemWeight then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, 'You have found a ' .. getItemNameById(item.uid) .. '.') doPlayerAddItem(cid, item.uid ,1) setPlayerStorageValue(cid, item.uid, 1) else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, 'You have found a ' .. getItemNameById(item.uid) .. ' weighing ' .. itemWeight .. ' oz it\'s too heavy.') end else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "It is empty.") end else return false end return true end
  24. @diarmaint Tenta assim, esquece aquele código que passei, e substitui aquele que você mostrou por esse aqui: function onUse(cid, item, fromPosition, itemEx, toPosition) if item.uid == 8945 then local queststatus = getPlayerStorageValue(cid, 31320) local max_gold = 50 if queststatus == -1 then local qtd_gold = math.random(1,max_gold) doPlayerSendTextMessage(cid,22,"Parabéns você acabou de completar a reflect quest e recebeu ".. qtd_gold .." golds em uma quantidade aleatória de 0 a ".. max_gold ..". ") setPlayerStorageValue(cid, 45455, 1) doPlayerAddItem(cid, 2148, qtd_gold) setPlayerStorageValue(cid, queststatus, 1) else doPlayerSendTextMessage(cid,22,"Está vazio.") end elseif item.uid > 1000 and item.uid < 13000 then local itemWeight = getItemWeightById(item.uid, 1) local playerCap = getPlayerFreeCap(cid) if getPlayerStorageValue(cid, item.uid) == -1 then if playerCap >= itemWeight then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, 'You have found a ' .. getItemNameById(item.uid) .. '.') doPlayerAddItem(cid, item.uid ,1) setPlayerStorageValue(cid, item.uid, 1) else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, 'You have found a ' .. getItemNameById(item.uid) .. ' weighing ' .. itemWeight .. ' oz it\'s too heavy.') end else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "It is empty.") end else return false end return true end
  25. Esse que você passou, só adicionar essa parte que postei antes da primeira linha

Informação Importante

Confirmação de Termo