Ir para conteúdo

King Laker

Membro
  • Registro em

  • Última visita

Tudo que King Laker postou

  1. Bota o piso laranja que ao logar o jogador vai ser jogado pro lado caso tenha alguém no piso principal.
  2. Tenta colocar um doConvinceCreature na criatura que foi criada.
  3. ⭐ 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 ⭐
  4. 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
  5. 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"/>
  6. 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
  7. 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
  8. Os sites ZNote que eu conheço não utilizam sample e sim uma configuração no proprio config.php
  9. @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.
  10. Isso da quanto o site não esta online e/ou você não configurou a database no config.lua
  11. 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
  12. 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
  13. <?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>
  14. 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())
  15. <talkaction words="!storebuy10D" log="no" event="script" value="2023/10d.lua"/> Você pode utilizar tabelas na script desse modulo de store por comando, assim ficando apenas 1 script entregando infinitos itens configuráveis de sua escolha.
  16. --Aura Vip Com AutoMensagem-- --by: Animation-- --Criada 13/04/2012-- --Testado Tibia 8.50-- local FRASES = {""} -- Auto-Mensagem. local effect = 209 local effect2 = 210 function onLogin(cid) sendEffect(cid) registerCreatureEvent(cid, "AdvEffect") return TRUE end function sendEffect(cid) if isCreature(cid) then if isPlayer(cid) and isPremium(cid) and getPlayerGroupId(cid) <= 1 then pos = getThingPos(cid) doSendAnimatedText(pos, FRASES[math.random(#FRASES)], 255) doSendMagicEffect(pos, effect) doSendMagicEffect(pos, effect2) addEvent(sendEffect, 600, cid) addEvent(sendEffect2, 600, cid) end end end Caso o de cima não funcione você pode tentar isso: creaturescripts.lua <event type="login" name="aura" event="script" value="aura.lua"/> login.lua registerCreatureEvent(cid, "aura") aura.lua local effect = 27 -- Efeito que vai usar local tempo = 1 -- Tempo em segundos function onLogin(cid) if isPremium(cid) then scheduleEffect(cid) end return true end function scheduleEffect(cid) if isPlayer(cid) then doSendMagicEffect(getCreaturePosition(cid), effect) addEvent(scheduleEffect, tempo * 1000, cid) return true end return false end
  17. @thekilleron mas o próprio tutorial no github do otx manda baixar o 2015? wtf Você chegou a tentar compilar com o 2010? deu certo?
  18. Eu estou tentando compilar no Windows para testes privados, no ubuntu eu não tenho problema nenhum em compilar, mas o meu teste server é no meu computador mesmo, ai queria compilar para windows pra uso pessoal, qualquer otx que eu tento compilar da isso, já segui o tutorial a risca e nada, queria saber se você tem como me auxiliar?
  19. Oque seria exatamente esse mw replace system? Oque ele faz? Da uma certa noção pelo nome, mas nada muito detalhado.. @FeeTads estou enfrentando esse erro quando tento compilar.
  20. Acredito que sim, mas não acho em lugar algum, por isso decidi vir aqui pra ver se alguém da uma força..
  21. O seu nem chegou a funcionar. Infelizmente o script que eu fiz ele não funcionava toda vez que o jogador logava e também não achei uma maneira de configurar mais de um buff por storage Oque eu consegui fazer foi assim: local function addConditionVocDay(cid) local condition = createConditionObject(CONDITION_ATTRIBUTES) setConditionParam(condition, CONDITION_PARAM_TICKS, -1) -- Permanente setConditionParam(condition, CONDITION_PARAM_STAT_MAGICLEVEL, 1) -- Quanto de Magic Level será adicionado if not isPlayer(cid) then return true end if getCreatureCondition(cid, CONDITION_ATTRIBUTES) then doRemoveCondition(cid, CONDITION_ATTRIBUTES) end doAddCondition(cid, condition) end function onLogin(cid) if getPlayerStorageValue(cid, 848484) >= 5 then addConditionVocDay(cid) end return true end
  22. Bom, como diz no titulo, gostaria de um buff que o player ganharia a cada vez que logasse se tivesse X de storage, tentei fazer o script com a função onLogin, mas teve vezes que funcionou e outras que não ao logar no personagem. (É necessário que seja um buff de ML e não apenas ganhar a skill de ML, já que caso ele morra ele pode perder.) 0 de ML tendo 0 da storage 848484 1 de ML tendo 5 a 10 da storage 848484 2 de ML tendo 15 ou mais da storage 848484 Procurei por algo similar no fórum e não achei, caso possam me ajudar ou pelo menos apontar a direção de alguma forma. Obrigado desde já. Pode ser uma spell também caso não dê para fazer em creaturescripts, tentei fazer mas sempre que eu usava a magia dava poison invés de ML..

Informação Importante

Confirmação de Termo