Ir para conteúdo

Líderes

Conteúdo Popular

Exibindo conteúdo com a maior reputação em 02/25/24 em todas áreas

  1. Olá pessoal! Estou trabalhando em um sistema para criaturas e chefes boostados no meu servidor TFS 1x. Não estou interessado em integrar este sistema ao código-fonte por razões óbvias, já que isso facilitaria a edição para outros servidores. Estou postando isso para colaborar na melhoria do sistema atual implementando novos conceitos e refinando os existentes. Sobre o código: GlobalEvents: Estou usando Eventos Globais para atualizar a criatura e o chefe boostado na inicialização do servidor. Para evitar a necessidade de reinicializar o servidor ao alterar o chefe, estou considerando mudar de onStartup para onThink e especificar um horário preciso para o evento ocorrer. Simultaneamente, armazeno o índice da criatura em um armazenamento global para evitar consultas ao banco de dados ao procurar o monstro boostado do dia. CreatureScript: Com o monstro atualizado no banco de dados e o armazenamento global configurado com o índice do monstro atual, verifico em um CreatureScript qual monstro o jogador está derrotando. Usando dmgMap, posso identificar um ou mais jogadores contribuindo para a morte do monstro boostado diário. Certifico-me de registrar o evento quando um jogador faz login para evitar problemas potenciais. Sobre as melhorias: Em vez de criar uma função responsável por passar boostedCreature(tipo, nomeDoMonstro), o que seria ideal, criei duas funções - uma para chefes e outra para criaturas. Esta é uma melhoria significativa que pode simplificar consideravelmente o código adicionando esta função de utilidade. Melhorias importantes: A função onKill do sistema de criatura boostada está funcional e sem problemas. No entanto, alguns conceitos estão faltando. Atualmente, todos os jogadores que contribuem para a morte da criatura recebem o XP total. Há uma parte comentada no código onde o compartilhamento de XP da criatura é aplicado, mas não está funcional. Isso precisa ser ajustado - sinta-se à vontade para compartilhar quaisquer insights aqui! O que está faltando: Além do XP, o monstro também deve fornecer saques extras (A fazer). Também estou trabalhando em adicionar o evento para a morte do chefe (Em andamento). Outras melhorias: Sinta-se à vontade para sugerir melhorias adicionais para o sistema! Alterações aqui Boosted system creaturescript globalevents lib by Underewarrr · Pull Request #1 · thetibiaking/forgottenserver (github.com)
  2. Olá galera, atualizamos hoje o Global 11x para sprites do 13.30 mais recente, conseguimos fazer o cliente 12.30 receber as sprites do 13.30, agora é possivel logar no 11x standlone, Otcv8 e 12.30 (sprites 13.30) Em nosso github você encontra tudo que necessita cliente 10, otcv8 customizado, cliente 12.30, ferramentas e o gesior Otg. https://github.com/otg-br
  3. local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} local vocation = { [2] = 6, [3] = 7, [4] = 8 } 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 = cid msg = string.lower(msg) local level = 717217 if isInArray({"promotion", "promote", "promo"}, msg) then selfSay("You need to have 100 VIP COINS and be at level 717217!", cid) talkState[talkUser] = 1 elseif msg == "yes" and talkState[talkUser] == 1 then local playerVocation = getPlayerVocation(cid) if vocation[playerVocation] then if getPlayerLevel(cid) >= level then if getPlayerItemCount(cid, 11192) >= 100 then doPlayerRemoveItem(cid, 11192, 100) local newVocationId = vocation[playerVocation] doPlayerSetVocation(cid, newVocationId) doSendMagicEffect(getPlayerPosition(cid), 12) selfSay("Congratulations, you've been promoted!", cid) else selfSay("You do not have enough VIP COINS to be promoted.", cid) end else selfSay("Sorry, you need to be at level " .. level .. " or above to be promoted!", cid) end else selfSay("Sorry, you cannot receive promotion.", cid) end talkState[talkUser] = 0 end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())
  4. data > npc > scripts > NomeDoNPC.lua 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 config = { itemID = 11192, -- ID da Moeda VIP quantity = 100, -- Quantidade de moedas que o jogador precisa ter na mochila minLevel = 8 -- Level minimo que o jogador precisa ter para comprar a promotion } local itemName = getItemNameById(config.itemID) function checkPlayerHavePromotion(cid) local currentVocation = getPlayerVocation(cid) - 4 local vocationPromoted = getPromotedVocation(currentVocation) - 4 return currentVocation == vocationPromoted; end function checkPlayerHaveItems(cid, message, keywords, parameters, node) if (not npcHandler:isFocused(cid)) then return false end if (config.minLevel ~= nil and getPlayerLevel(cid) < config.minLevel) then npcHandler:say('You must reach level '..config.minLevel..' to buy promotion.', cid) return true end if checkPlayerHavePromotion(cid) then npcHandler:say('You are already promoted!', cid) return true end if (not doPlayerRemoveItem(cid, config.itemID, config.quantity)) then npcHandler:say('You do not have enough '..itemName..'!', cid) return true end doPlayerSetVocation(cid, getPlayerVocation(cid) + 4) npcHandler:say(parameters.text, cid) return true end local node1 = keywordHandler:addKeyword({'promot'}, StdModule.say, { npcHandler = npcHandler, onlyFocus = true, text = "I can promote you for "..config.quantity.." {"..itemName.."}. Do you want me to promote you?" }) node1:addChildKeyword({'yes'}, checkPlayerHaveItems, { npcHandler = npcHandler, text = "Congratulations! You are now promoted." }) node1:addChildKeyword({'no'}, StdModule.say, { npcHandler = npcHandler, onlyFocus = true, reset = true, text = "Alright then, come back when you are ready." }) npcHandler:addModule(FocusModule:new()) data > npc > NomeDoNPC.xml <?xml version="1.0" encoding="UTF-8"?> <npc name="NomeDoNPC" script="data/npc/scripts/NomeDoNPC.lua" walkinterval="2000" floorchange="0"> <health now="100" max="100"/> <look type="160" head="77" body="79" legs="56" feet="115" addons="0"/> </npc>
  5. [TFS 1.5 - 8.60] STYLLER OT - 2023

    diogotere reagiu a luanluciano93 por uma resposta no tópico

    1 ponto
    Atualização 30 no github! • Ajustado chests de quests. • Ajustado extra exp para jogadores premium. • Ajustado script database-clean. • Adicionado tabuleiro de xadrez e script para limpa-lo. • Fixado erro de mensagem ao abrir o death channel.
Líderes está configurado para São Paulo/GMT-03:00

Informação Importante

Confirmação de Termo