Ir para conteúdo

King Laker

Membro
  • Registro em

  • Última visita

  1. L3K0T reagiu a uma resposta no tópico: (Resolvido)Alguem ajuda no meu script vip ?
  2. Bota o piso laranja que ao logar o jogador vai ser jogado pro lado caso tenha alguém no piso principal.
  3. Mateus Robeerto reagiu a uma resposta no tópico: [Sistema] Evento PvP
  4. FeeTads reagiu a uma resposta no tópico: [Lançamento] NTO Blood 05/05
  5. Tenta colocar um doConvinceCreature na criatura que foi criada.
  6. ⭐ NTO BLOOD ⭐ (Lançamento 05/05 (Domingo) as 14:00, venha participar do evento de invites para garantir o seu prêmio!) SERVIDOR REFEITO DO 0 ✔️ MARKET DE PERSONAGENS NO SITE ✔️ MARKET DE ITENS NO SITE ✔️ EVENTOS DIARIOS AUTOMATICOS ✔️ INVASÕES DIARIAS AUTOMATICAS ✔️ PVP BALANCEADO ENTRE FREE E DONATE ✔️ DODGE & CRITICAL SYSTEM ✔️ DOMINAR CASTLE DIARIO ✔️ SORTEIOS TODA SEMANA ✔️ TASKS DE MONSTROS ✔️ CLIENTE OTC ✔️ CLIENTE MOBILE ✔️ XP MEDIUM ✔️ 24 HR ONLINE ✔️ SET DONATE E SET FREE (FARM) ✔️ STAFF PRESENTE ✔️ ⭐ https://discord.gg/bsNkbsyJ3W ⭐
  7. King Laker reagiu a uma resposta no tópico: [OTX 2.x / 8.60] - OTSERVER
  8. local config = { storage = 12345, -- storage para não poder fazer de novo id_bau = 11200, -- bau estático + bau que vai voltar bau_efeito = 11201, -- bau que vai transformar time = 2, -- 2 segundos } function onUse(cid, item, frompos, item2, topos) if getPlayerStorageValue(cid, config.storage) < 1 and item.itemid == config.id_bau then doTransformItem(item.uid, config.bau_efeito) addEvent(transformBack, config.time * 1000, cid, item.uid) setPlayerStorageValue(cid, config.storage, 1) return true end return false end function transformBack(cid, item_uid) if isItem(item_uid) then doTransformItem(item_uid, config.id_bau) end end
  9. No script acima esqueci de especificar que era um movements, a actionID pode ser adicionada tanto a um tile quanto a um teleport. Caso queira utilizar em tempo, lugares e monstros diferentes é só mudar as 4 primeiras linhas do codigo. <movevent type="StepIn" actionid="1234" event="script" value="nomedoscript.lua"/>
  10. Não teste, mas acredito que como base vai servir. local summonPosition = {x = 90, y = 128, z = 7} -- posição do monstro a ser summonado local summonedMonster = "rat" -- monstro a ser summonado local exhaustTime = 72000 -- tempo de exhaust em segundos local exhaustStorage = 2020008 -- storage do exhaust function onStepIn(cid, item, position, fromPosition) local playerExhaustStorage = 55695 if isPlayer(cid) and os.time() - getPlayerStorageValue(cid, playerExhaustStorage) >= exhaustTime then setPlayerStorageValue(cid, playerExhaustStorage, os.time()) doCreateMonster(summonedMonster, summonPosition) setPlayerStorageValue(cid, exhaustStorage, os.time()) else local timeRemaining = exhaustTime - (os.time() - getPlayerStorageValue(cid, playerExhaustStorage)) local errorMessage = string.format("Você precisa esperar %d segundos para passar novamente.", timeRemaining) doPlayerSendCancel(cid, errorMessage) end return true end
  11. King Laker postou uma resposta no tópico em Suporte Tibia OTServer
    Sempre bom mandar o script com o erro, que no caso seria o kdcounter.lua na pasta creaturescripts/scripts
  12. XRay reagiu a uma resposta no tópico: AJUDA EDIÇÃO SITE ZNOTE ACC BASE WONRS
  13. Os sites ZNote que eu conheço não utilizam sample e sim uma configuração no proprio config.php
  14. @GuiltyPerdão eu não vi que você utilizava Canary, eu não estou familiarizado com as funções dessa versão, da pra você pegar outros scripts de NPC e utilizar eles pra adaptar pra sua versão.
  15. Isso da quanto o site não esta online e/ou você não configurou a database no config.lua
  16. paulo thush reagiu a uma resposta no tópico: (Resolvido)Ocultar msg do comando
  17. local config = { effect1 = 27 -- Primeiro efeito effect2 = 28 -- Efeito que vai usar tempo = 1 -- Tempo em segundos } function onLogin(cid) if isPremium(cid) then scheduleEffect(cid) end return true end function scheduleEffect(cid) if isPlayer(cid) and isPremium(cid) then doSendMagicEffect(getCreaturePosition(cid), config.effect1) doSendMagicEffect(getCreaturePosition(cid), config.effect2) addEvent(scheduleEffect, config.tempo * 1000, cid) return true end return false end
  18. A parte do código que eu te enviei não vai enviar uma mensagem no seu chat default após utilizar o comando. Sobre as tabelas que eu mencionei é bom você pesquisar, são muito uteis pra diminuir a quantia de scripts que você utiliza
  19. <?xml version="1.0" encoding="ISO-8859-1"?> <mod name="Cyber Castle 48" version="1.0" author="SeuNome" contact="seusite.com" enabled="yes"> <config name="cybercastle48_config"><![CDATA[ cybercastle48_config = { storages = {1700, 1701, 1702}, -- Armazenamento global para controle do evento arena = {{x = 1000, y = 1000, z = 7}, {x = 1100, y = 1100, z = 7}}, -- Área da arena teleportAppear = {x = 1025, y = 1026, z = 7}, -- Posição do teleport que aparece teleportDestination = {x = 912, y = 1267, z = 7}, -- Posição para onde o jogador é teleportado ao entrar no teleport respawnTime = 5, -- Tempo de respawn dos monstros em minutos eventDuration = 1, -- Tempo de duração do evento em minutos rewards = {items = {{1234, 10}, {5678, 5}}, trophy = 8765}, -- Prêmios para os ganhadores do evento minLevelToAccess = 50, -- Nível mínimo para acessar o teleport castleOwnerStorage = 1703, -- Armazenamento para controlar a guilda dona do castelo castleDominatingGuild = 0, -- Variável para armazenar temporariamente a guilda que está dominando o castelo } ]]></config> <talkaction words="!startcc" access="5" event="buffer"><![CDATA[ domodlib('cybercastle48_config') local teleportItem = doCreateItem(1387, 1, cybercastle48_config.teleportAppear) doItemSetAttribute(teleportItem, "aid", 19872) -- Adicione um action id ao teleport para identificação doBroadcastMessage("[Cyber Castle 48] O evento começou! Use o teleport para entrar na arena.", MESSAGE_STATUS_WARNING) setGlobalStorageValue(cybercastle48_config.storages[3], 1) -- Marca o início do evento ]]></talkaction> <talkaction words="!endcc" access="5" event="buffer"><![CDATA[ domodlib('cybercastle48_config') local removeTeleport = getTileItemById(cybercastle48_config.teleportAppear, 1387).uid if removeTeleport and removeTeleport > 0 then doRemoveItem(removeTeleport) doBroadcastMessage("[Cyber Castle 48] O evento foi encerrado! O teleport foi removido.", MESSAGE_STATUS_WARNING) -- Verifique se alguma guilda está disputando o castelo if cybercastle48_config.castleDominatingGuild > 0 then local dominatingGuild = cybercastle48_config.castleDominatingGuild local guildName = getGuildName(dominatingGuild) if guildName then -- Anuncie a guilda vencedora doBroadcastMessage("[Cyber Castle 48] A guilda " .. guildName .. " domina o castelo!", MESSAGE_STATUS_WARNING) setGlobalStorageValue(cybercastle48_config.castleOwnerStorage, dominatingGuild) end else -- Nenhuma guilda disputou o castelo doBroadcastMessage("[Cyber Castle 48] Nenhuma guilda dominou o castelo durante o evento.", MESSAGE_STATUS_WARNING) end -- Reseta o estado do evento e a guilda dominante setGlobalStorageValue(cybercastle48_config.storages[3], 0) cybercastle48_config.castleDominatingGuild = 0 else doPlayerSendCancel(cid, "O evento não está acontecendo.") doSendMagicEffect(getThingPos(cid), CONST_ME_POFF) end ]]></talkaction> <movevent type="StepIn" actionid="19872" event="script"><![CDATA[ domodlib('cybercastle48_config') local playerLevel = getPlayerLevel(cid) if playerLevel >= cybercastle48_config.minLevelToAccess then doTeleportThing(cid, cybercastle48_config.teleportDestination, false) else doPlayerSendCancel(cid, "Você não tem o nível mínimo necessário para entrar no evento.") doSendMagicEffect(getThingPos(cid), CONST_ME_POFF) end ]]></movevent> <movevent type="StepIn" actionid="19873" event="script"><![CDATA[ local guildId = getPlayerGuildId(cid) if guildId > 0 then -- O jogador pertence a uma guilda, permita a passagem local guildName = getPlayerGuildName(cid) -- Use esta função alternativa if guildName then doBroadcastMessage("[Cyber Castle 48] " .. getCreatureName(cid) .. " da guilda " .. guildName .. " está invadindo o Cyber Castle 48!", MESSAGE_STATUS_CONSOLE_ORANGE) return true end end -- O jogador não pertence a uma guilda, bloqueie a passagem e mova-o de volta à posição anterior doPlayerSendCancel(cid, "Você não pode passar por aqui sem estar em uma guilda.") doTeleportThing(cid, fromPosition, false) return false ]]></movevent> <movevent type="StepIn" actionid="19874" event="script"><![CDATA[ domodlib('cybercastle48_config') local playerGuildId = getPlayerGuildId(cid) if playerGuildId > 0 then -- O jogador pertence a uma guilda, permita a tentativa de dominar o castelo local guildName = getPlayerGuildName(cid) if guildName then -- Verifique se o castelo já foi dominado por outra guilda local currentDominatingGuild = getGlobalStorageValue(cybercastle48_config.castleOwnerStorage) if currentDominatingGuild > 0 then -- Castelo já dominado, verifique se a guilda atual é diferente if currentDominatingGuild ~= playerGuildId then -- Transferir o domínio para a nova guilda setGlobalStorageValue(cybercastle48_config.castleOwnerStorage, playerGuildId) cybercastle48_config.castleDominatingGuild = playerGuildId -- Atualize a guilda dominante -- Emitir mensagem informando sobre a mudança de domínio doBroadcastMessage("[Cyber Castle 48] O castelo foi dominado pela guilda " .. guildName .. "!", MESSAGE_STATUS_CONSOLE_ORANGE) else -- A guilda atual está defendendo seu domínio doBroadcastMessage("[Cyber Castle 48] O jogador " .. getCreatureName(cid) .. " da guild " .. guildName .. " está defendendo o Cyber Castle 48!", MESSAGE_STATUS_CONSOLE_ORANGE) end else -- O castelo ainda não foi dominado, a guilda atual o domina agora setGlobalStorageValue(cybercastle48_config.castleOwnerStorage, playerGuildId) cybercastle48_config.castleDominatingGuild = playerGuildId -- Atualize a guilda dominante -- Emitir mensagem informando sobre o domínio inicial doBroadcastMessage("[Cyber Castle 48] O castelo foi dominado pela guilda " .. guildName .. "!", MESSAGE_STATUS_CONSOLE_ORANGE) end return true end end -- O jogador não pertence a uma guilda, bloqueie a tentativa de dominar o castelo doPlayerSendCancel(cid, "Você não pode tentar dominar o castelo sem estar em uma guilda.") return false ]]></movevent> </mod>
  20. local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} local item1 = 123 -- item local qntd1 = 1 -- quantia local stor = 1023332 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, 'entregar')) then selfSay('Voce conseguiu mesmo juntar os itens? diga {sim} se deseja me entregar', cid) talkState[talkUser] = 1 elseif(msgcontains(msg, 'sim') and talkState[talkUser] == 1) then if (getPlayerStorageValue(cid, stor) > 0) then selfSay('Voce ja realizou a troca comigo.', cid) else if getPlayerItemCount(cid, item1) >= qntd1 then doPlayerRemoveItem(cid, item1, qntd1) local bag = doPlayerAddItem(cid, 1599, 1) doAddContainerItem(bag, 2190, 10) setPlayerStorageValue(cid, stor, 1) selfSay('Obrigado! Em troca aqui esta o seu premio.', cid) else selfSay('Voce ainda nao conseguiu os requisitos, estou ansioso por eles, ha tantas utilidades.', cid) end end return true end end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())

Informação Importante

Confirmação de Termo