Ir para conteúdo
  • Cadastre-se

GlobalEvent ALGUÉM SABE ONDE EU CONSIGO DICE AUTOMÁTICo?


Posts Recomendados

Este tópico foi movido para a área correta. Esta é uma mensagem automática!
Pedimos que leia as regras do fórum!

Spoiler

This topic has been moved to the correct area. This is an automated message!
Please read the forum rules.

 

Compre seus Scripts Agora totalmente seguro e de forma rápida, aceitamos também encomendas.

discord.gg/phJZeHa2k4

 

Projeto ATS (Naruto)

Informações Abaixo

Facebook

Youtube
Discord

 

Tutoriais / Conteúdos

Clique Aqui

Link para o post
Compartilhar em outros sites

@baiakpro 

Data/Npc/NpcDice.xml

<?xml version="1.0" encoding="UTF-8"?>
<npc name="[EVENT] Dice Event" script="data/npc/scripts/DiceScript.lua" walkinterval="0" floorchange="0">
    <health now="100" max="100"/>
    <look type="289" head="114" body="114" legs="91" feet="91" addons="3"/>
</npc>

Data/Npc/Scripts/DiceScript.lua

local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}
local x = 0 
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

local randomDice = {
    
 [1] = 5792,
 [2] = 5793,
 [3] = 5794,
 [4] = 5795,
 [5] = 5796,
 [6] = 5797

}

----------------Config----------------------|
local player_teleport = {x=160,y=54,z=7} -- Posicao para onde o player vai ser teleportado quando perder

local rewards = { -- Id dos premios caso o player ganhe

2160,

}
--------------------------------------------|



function creatureSayCallback(cid, type, msg)

        npcPos = getNpcPos()
        positionNpc = {

            NORTH = {x=npcPos.x, y=npcPos.y-2, z=npcPos.z, stackpos = STACKPOS_TOP_CREATURE},
            SOUTH = {x=npcPos.x, y=npcPos.y+2, z=npcPos.z, stackpos = STACKPOS_TOP_CREATURE},
            WEST = {x=npcPos.x-2, y=npcPos.y, z=npcPos.z, stackpos = STACKPOS_TOP_CREATURE},
            EAST = {x=npcPos.x+2, y=npcPos.y, z=npcPos.z, stackpos = STACKPOS_TOP_CREATURE},
        
        }

        local npc = getNpcCid()
        local dice_pos = {x=npcPos.x+1,y=npcPos.y,z=npcPos.z, stackpos=1}

        if getTileThingByPos(dice_pos).itemid == 0 then
             doCreateItem(5792, dice_pos)
        end

        if getThingFromPos(positionNpc.NORTH).uid ~= 0 or getThingFromPos(positionNpc.SOUTH).uid ~= 0 or getThingFromPos(positionNpc.WEST).uid ~= 0 or getThingFromPos(positionNpc.EAST).uid ~= 0 then

            if msgcontains(msg, '1') or msgcontains(msg, '2') or msgcontains(msg, '3') or msgcontains(msg, '4') or msgcontains(msg, '5') or msgcontains(msg, '6') then
                    
                local dice_random_number = math.random(1, #randomDice)
                    local dice = randomDice[math.random(1, #randomDice)]
                    
                    if (tonumber(msg) == dice_random_number) then
                        local item_reward = rewards[math.random(1, #rewards)]
                        doSendMagicEffect(dice_pos, CONST_ME_CRAPS)
                        doTransformItem(getThingFromPos(dice_pos).uid, randomDice[dice_random_number])
                        doCreatureSay(npc, getCreatureName(npc).." rolled a "..dice_random_number.. ".", MESSAGE_STATUS_CONSOLE_ORANGE)
                        doCreatureSay(npc, getCreatureName(npc).." voce ganhou "..getItemNameById(item_reward).. ".", MESSAGE_STATUS_CONSOLE_ORANGE)
                        doPlayerAddItem(cid, item_reward, 1)
                        doTeleportThing(cid, player_teleport)
                    else
                        doCreatureSay(npc, getCreatureName(npc).. " rolled a "..dice_random_number.. ".", MESSAGE_STATUS_CONSOLE_ORANGE)
                        doSendMagicEffect(dice_pos, CONST_ME_CRAPS)
                        doTransformItem(getThingFromPos(dice_pos).uid, randomDice[dice_random_number])
                        doCreatureSetSpeakType(cid, MESSAGE_STATUS_CONSOLE_ORANGE)
                        doCreatureSay(cid, "Perdi!!! :@")
                        doTeleportThing(cid, player_teleport)
                    end
            end
        end
        x = 0
 
end

function HavePlayer()

    npcPos = getNpcPos()
    positionNpc = {

        NORTH = {x=npcPos.x, y=npcPos.y-2, z=npcPos.z, stackpos = STACKPOS_TOP_CREATURE},
        SOUTH = {x=npcPos.x, y=npcPos.y+2, z=npcPos.z, stackpos = STACKPOS_TOP_CREATURE},
        WEST = {x=npcPos.x-2, y=npcPos.y, z=npcPos.z, stackpos = STACKPOS_TOP_CREATURE},
        EAST = {x=npcPos.x+2, y=npcPos.y, z=npcPos.z, stackpos = STACKPOS_TOP_CREATURE},
    
    }

    local npc = getNpcCid()
    local position = {x=npcPos.x, y=npcPos.y-2, z=npcPos.z, stackpos = STACKPOS_TOP_CREATURE}
    if (x == 0) then
        if getThingFromPos(positionNpc.NORTH).uid ~= 0 then
            npcHandler:say("Escolha um numero de 1 a 6, "..getCreatureName(getThingFromPos(positionNpc.NORTH).uid))
            doCreatureSetLookDirection(npc, NORTH)
            x = 1
        end
        if getThingFromPos(positionNpc.SOUTH).uid ~= 0 then
            npcHandler:say("Escolha um numero de 1 a 6, "..getCreatureName(getThingFromPos(positionNpc.SOUTH).uid))
            doCreatureSetLookDirection(npc, SOUTH)
            x = 1
        end
        if getThingFromPos(positionNpc.WEST).uid ~= 0 then
            npcHandler:say("Escolha um numero de 1 a 6, "..getCreatureName(getThingFromPos(positionNpc.WEST).uid))
            doCreatureSetLookDirection(npc, WEST)
            x = 1
        end
        if getThingFromPos(positionNpc.EAST).uid ~= 0 then
            npcHandler:say("Escolha um numero de 1 a 6, "..getCreatureName(getThingFromPos(positionNpc.EAST).uid))
            doCreatureSetLookDirection(npc, EAST)
            x = 1
        end
    end
    return true
end


function onThink()

   if HavePlayer() then
    return false
   end

npcHandler:onThink() 
end

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)

 

Link para o post
Compartilhar em outros sites

@victor4312 não é mais fácil criar um portal para abrir em determinado tempo???

Compre seus Scripts Agora totalmente seguro e de forma rápida, aceitamos também encomendas.

discord.gg/phJZeHa2k4

 

Projeto ATS (Naruto)

Informações Abaixo

Facebook

Youtube
Discord

 

Tutoriais / Conteúdos

Clique Aqui

Link para o post
Compartilhar em outros sites

@victor4312 

Ta ai o globalevent

<globalevent name="NpcDiceEvent" interval="60" event="script" value="eventDice.lua"/>

local horarios = {

["19:47"] = {
				npc_name = "NpcDice", -- Nome do Npc XML
				pos_respawn_npc = {x=160,y=53,z=9}, -- Posicao aonde o Npc vai ser criado quando o evento começar
				pos_create_teleport= {x=157,y=57,z=7,stackpos=2}, -- Posicao do Teleport quando evento começar
				pos_to_teleport = {x=156,y=56,z=9}, -- Para onde o teleport irá levar
				time = 2, -- Duracao do evento em minutos
				msg_start = "O teleport para evento Dice esta aberto!", -- Mensagem quando o evento começar
				msg_finish = "O Evento Dice acabou!", -- Mensagem quando o evento acabar
			},

}

function onThink(interval, lastExecution)
	
	local hours = horarios[os.date("%H:%M")]

	if hours then
		doBroadcastMessage(hours.msg_start)
		if not isCreature(hours.pos_respawn_npc) then
			doCreateNpc(hours.npc_name, hours.pos_respawn_npc)
		end
		doCreateTeleport(1387, hours.pos_to_teleport, hours.pos_create_teleport)
		doSendMagicEffect(hours.pos_create_teleport, 10)
		addEvent(function()
		
			doBroadcastMessage(hours.msg_finish)
			local npc = getTopCreature(hours.pos_respawn_npc).uid
			doRemoveCreature(npc)

			if getTileItemById(hours.pos_create_teleport, 1387).uid >= 1 then
				doSendMagicEffect(hours.pos_create_teleport, 10)
				doRemoveItem(getTileItemById(hours.pos_create_teleport, 1387).uid, 1)
			end
		
		end, 1000 * 60 * hours.time)
	end
	return true
end

 

Link para o post
Compartilhar em outros sites

Vou testar aqui!

>>> Loading globalscripts... [Error - LuaInterface::loadFile] data/globalevents/scripts/eventDice.lua:1: '=' expected near '?'
[Error - Event::checkScript] Cannot load script (data/globalevents/scripts/eventDice.lua)
data/globalevents/scripts/eventDice.lua:1: '=' expected near '?'
 

ta dando esse erro :(

Link para o post
Compartilhar em outros sites

Aqui no TibiaKing mensagens como UP e BUMP são proibidas, utilize o botão subir este tópico. Esta é uma mensagem automática!
Pedimos que leia as regras do fórum!

Spoiler

Here in TibiaKing messages like UP and BUMP are prohibited, use the button raise this topic. This is an automated message!
Please read the forum rules.

 

Compre seus Scripts Agora totalmente seguro e de forma rápida, aceitamos também encomendas.

discord.gg/phJZeHa2k4

 

Projeto ATS (Naruto)

Informações Abaixo

Facebook

Youtube
Discord

 

Tutoriais / Conteúdos

Clique Aqui

Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.


  • Conteúdo Similar

    • Por FeeTads
      salve rapaziada, estou fazendo uma quest no meu OT que é necessário faze-la durante 10 dias consecutivos, porém caso o player perca um dia, a storage da quest reseta.
      Já tenho esses scripts prontos de 2 formas: global event que checa a storage de todos os player online no momento e caso ja tenha passado 24h ele tira a storage do player que está entre os 10 dias de quest.
      E também tenho um creatureScript de onLogin() que quando o player loga, ele entra num loop de verificação a cada 60s

      minha duvida: globalEvents vai checar todos os players online de uma só vez e fazer as alterações necessarias, isso pode lagar a distro, ou até mesmo crashar?
      o creatureScript vai entrar num loop até o player deslogar, isso numa média de 250 pessoa são diversas verificações em momentos diferentes, pode acabar lagando ou crashando?

      meu OT possui uma media de 300 pessoas online.

      Script globalEvents é esse:

      function onThink(interval, lastExecution)
          local players = {}
          local timer = os.time()
          for _, pid in pairs (getPlayersOnline()) do
              local storage = getPlayerStorageValue(pid, 1231234)
              if getPlayerStorageValue(pid,888251) > 0 and getPlayerStorageValue(pid,888251) <= 9 then
                  if storage - timer <= 1  then
                      table.insert(players, pid)
                  end
              end
          end
          
          if #players > 0 then
              for i = 1, #players do
                  doPlayerSendTextMessage(players[i],22,"seu dano voltou ao normal por vc nao ter feito a quest!")
                  setPlayerStorageValue(players[i],888251,0)
              end
          end
      return true
      end

      Script do Creature é esse:
      local storage = getPlayerStorageValue(cid,1231234)
              function checkStorage(cid) local timer = os.time()
                     if not isPlayer(cid) then return true end
                     if getPlayerStorageValue(cid,888251) > 0 and getPlayerStorageValue(cid, 888251) <= 9 then
                             if storage - timer <= 1 then
                                     setPlayerStorageValue(cid,888251,0)
                             end
                   end
                   addEvent(function()
                              checkStorage(cid)
                    end, 60000)
      end
      function onLogin(cid)
              checkStorage(cid)
      return true
      end
      function onLogout(cid)
             stopEvent(checkStorage[cid])
      return true
      end


      caso os códigos nao estejam legiveis me avisem como arrumar em .lua pf

      se quiserem usar os códigos podem usar a vontade kkkkkkk
    • Por Guilherme.
      Olá galera, vim trazer mais um maravilhoso e criativo script do Teckman.

      *OBS; O Script não contém todos os items para todas as estações.

      Funciona assim: Quando você abrir o server ele irá substituir os items de acordo com as estações do ano, por exemplo, vai substituir as árvores por árvores de neve, pedras por pedras de neve, e assim por diante.
      O Script vai ser executado logo que o server ligar pois ocupa muito do CPU e da memória RAM, mas apenas para grandes mapas e por pouco tempo.

      Entre em /globalevents/scripts/ e então crie o arquivo seasons.lua, coloque o código abaixo no arquivo, salve e feche.


      local config = { areas = { [1] = { {x = 954, y = 1001, z = 7}, {x = 992, y = 1026, z = 7} } }, items = { ["winter"] = { [2700] = 2698, -- fir tree [2705] = 8139, -- pear tree [2703] = 2697, -- plum tree [2704] = 7020, -- red maple [2706] = 7071, -- yellow maple [2701] = 2698, -- sycamore [2707] = 7022, -- beech [2708] = 7020, -- poplar [2711] = 7021, -- dwarf tree [2712] = 7023, -- pine [4526] = 6580, -- grass [4527] = 6581, -- grass [4528] = 6582, -- grass [4529] = 6583, -- grass [4530] = 6584, -- grass [4531] = 6585, -- grass [4532] = 6586, -- grass [4533] = 6587, -- grass [4534] = 6588, -- grass [4535] = 6589, -- grass [4536] = 6590, -- grass [4537] = 6591, -- grass [4538] = 6592, -- grass [4539] = 6593, -- grass [4540] = 6580, -- grass [4541] = 6580, -- grass [6216] = 6715, -- grass tuffs [6217] = 6716, -- grass tuffs [6218] = 6717, -- grass tuffs [6219] = 6718, -- grass tuffs [387] = 6966, -- stalagmite [3610] = 6611, -- stones [3614] = 6610, -- stones [3666] = 6713, -- stone [3667] = 6714, -- stone [3668] = 6715, -- stone [468] = 483, -- hole [469] = 484, -- hole [3310] = 485, -- hole [3607] = 6999, -- medium stone [3609] = 7003, -- medium stone [3616] = 7002, -- medium stone [3663] = 7016, -- big stone [3664] = 7017, -- big stone [3615] = 7000, -- medium stone [3608] = 7001, -- medium stone [3659] = 7018, -- medium stone [3660] = 7019, -- medium stone [3617] = 7004, -- big stone [3618] = 7005, -- big stone [3619] = 7006, -- big stone [3620] = 7007, -- big stone [3624] = 7008, -- big stone [3625] = 7009, -- big stone [3626] = 7010, -- big stone [3627] = 7011, -- big stone [3628] = 7012, -- big stone [3629] = 7013, -- big stone [3630] = 7014, -- big stone [3631] = 7015, -- big stone [4470] = 6768, -- mountain [4471] = 6720, -- mountain [4472] = 6719, -- mountain [4476] = 6724, -- mountain [4477] = 6725, -- mountain [4478] = 6726, -- mountain [4479] = 6727, -- mountain [4473] = 6721, -- mountain [4474] = 6722, -- mountain [4475] = 6723, -- mountain [4468] = 6762, -- mountain [4469] = 6761, -- mountain [4542] = 4737, -- grass border [4543] = 4738, -- grass border [4544] = 4739, -- grass border [4545] = 4740, -- grass border [4546] = 4741, -- grass border [4547] = 4742, -- grass border [4548] = 4743, -- grass border [4549] = 4744, -- grass border [4550] = 4745, -- grass border [4551] = 4746, -- grass border [4552] = 4747, -- grass border [4553] = 4748, -- grass border } }, seasons = { ["monday"] = "winter", ["tuesday"] = "winter", ["wednesday"] = "autumn", ["thursday"] = "autumn", ["friday"] = "spring", ["saturday"] = "summer", ["sunday"] = "summer" } } function onStartup () doSetGameState(GAMESTATE_CLOSED) addEvent(doSetGameState, 1000 * 15, GAMESTATE_NORMAL) for i = 1, table.maxn(config.areas) do for x = ((config.areas)[i][1]).x, ((config.areas)[i][2]).x do for y = ((config.areas)[i][1]).y, ((config.areas)[i][2]).y do for z = ((config.areas)[i][1]).z, ((config.areas)[i][2]).z do for k, v in pairs(config.items[config.seasons[string.lower(os.date("%A"))]]) do pos = {x = x, y = y, z = z} if(getTileItemById(pos, k).uid > 0) then doTransformItem(getTileItemById(pos, k).uid, v) end end end end end end return true end Agora entre em /globalevents/globalevents.xml adicione a TAG abaixo, salve e feche. <globalevent name="seasons" type="start" event="script" value="seasons.lua"/>


      E é isso galera, vocês estão livres para editar o código e adicionar/retirar items, para fazer isso use o map editor ou então o arquivo items.xml para verificar o ID dos items.
    • Por Icaro Simoes
      Olá a todos,
      gostaria de saber como que faço um script para a cada lvl que o player upar, ao invés de subir life e mana, o player ganhar ponto de atributo e ele escolher se quer aumentar a life ou se quer aumentar a mana.
      É possível fazer? Seria um script? Globalevent ou creaturescript?
    • Por alexpaimel
      Olá pessoal, basicamente é isso..

      Servidor sem nenhum erro, não mostra na distro e do nada deu um erro e agora ele não mais manda nenhuma mensagem automatica contida no global events. Alguém pode me ajudar a solucionar esse erro?

      Principalmente as automaticas, com o god ou com player dando comando para falar no servidor, mostra normalmente. Scripts de quando mata o boss, dropa item e etc funciona normal..
    • Por Gandolfo
      Algum script para determinado horário trocar pvp do servidor? tentei fazer esse mais falhou:
       
      Globalevents:
      <globalevent name="Pvp Enforced" time="00:00" script="pvpenforced.lua"/> <globalevent name="Pvp" time="06:00" script="pvp.lua"/> pvp.lua
      function onTime() setWorldType(WORLDTYPE_OPEN) Game.broadcastMessage("O PVP do Servidor foi Mudado para 'PVP'.", MESSAGE_EVENT_ADVANCE) end pvpenforced.lua
      function onTime() setWorldType(WORLDTYPE_HARDCORE) Game.broadcastMessage("O PVP do Servidor foi Mudado para 'PVP-ENFORCED'.", MESSAGE_EVENT_ADVANCE) end  
      uso tfs 1.3 e deu o erro:
      Lua Script Error: [GlobalEvent Interface] data/globalevents/scripts/pvp.lua:2:onTime data/globalevents/scripts/pvp.lua:2: attempt to call global 'setWorldType' <a nil value> stack traceback: [C]: in function 'setWorldType' data/globalevents/scripts/pvp.lua:2 in function <data/globalevets/scripts/pvp.lua:1>  
      Oq eu posso fazer pra resolver? Obrigado
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo