Ir para conteúdo
Banner com Efeitos

Featured Replies

Postado

.Qual servidor ou website você utiliza como base?

tfs 0.36

 

Boa noite galera! então gostaria de pedir uma ajuda com esse script, ele é um evento de war, onde dois times se enfrentam, mas há um problema, se por ventura apenas 1 player entrar no evento ele fica preso la dentro , pois não tem outro time para matar, enfim gostaria de por um limite de player no evento, ou seja, se 1 player só ir para a sala de espera, então o evento é cancelado.

 

preciso muito desse suporte, muito mais do que todos os pedidos de ajuda que já fiz no TK, agradeço desde já a todos!

 

segue o script que abre as grades para ir a sala de espera. (obs: no script até tem uma parte que fala de playercount, mas isso não esta funcionando)

local configWar = {

 

    MessageType = MESSAGE_INFO_DESCR,
    
    wallPos = {x=512,y=846,z=5,stackpos=1},
    
    wallPos1 = {x=513,y=846,z=5,stackpos=1},
    
    wallPos2 = {x=513,y=847,z=5,stackpos=1},
    
    wallPos3 = {x=513,y=848,z=5,stackpos=1},
    
    wallPos4 = {x=513,y=849,z=5,stackpos=1},
    
    wallPos5 = {x=512,y=849,z=5,stackpos=1},
    
    playerCount = getGlobalStorageValue(2001)+getGlobalStorageValue(2002),
    
    playersNeededToStartEvent = 2,
    
    AccessMessage = "Only Gods and Gamemasters can execute an event!",
    
     
    
    FirstMessage = "Event Notice!",
    
    SecondMessage = "War Arena has been opened to join go through the portal on the top floor of depot.",
    
    ThirdMessage = "War Arena will begin in 5 minutes!",
    
    FourthMessage = "War Arena will begin in 3 minutes!",
    
    ClosingMessage = "War Arena will close and begin in 1 minute!",
    
    CloseMessage = "War Arena portal has closed and the event has begun!"
    
     
    
    }
    
     
    
    setGlobalStorageValue(configWar.playerCount, 0)
    
    local waitingRoomFrompos = {x=617, y=625, z=7, stackpos=253}
    
    local waitingRoomTopos = {x=652, y=654, z=7, stackpos=253}
    
     
    
    --Functions for war.
    
    function EventNotice11(cid)
    
    addEvent(EventNotice21,5000,cid)
    
    doBroadcastMessage(configWar.FirstMessage,configWar.MessageType)
    
    end
    
    function EventNotice21(cid)
    
    addEvent(EventNotice31,10*1000,cid)
    
    doBroadcastMessage(configWar.SecondMessage,configWar.MessageType)
    
    end
    
    function EventNotice31(cid)
    
    addEvent(EventNotice41,120*1000,cid)
    
    doBroadcastMessage(configWar.ThirdMessage,configWar.MessageType)
    
    end
    
    function EventNotice41(cid)
    
    addEvent(EventNotice51,120*1000,cid)
    
    doBroadcastMessage(configWar.FourthMessage,configWar.MessageType)
    
    end
    
    function EventNotice51(cid)
    
    addEvent(EventNotice61,60*1000,cid)
    
    doBroadcastMessage(configWar.ClosingMessage,configWar.MessageType)
    
    end
    
    function EventNotice61(cid)
    
    doCreateItem(1600,1,configWar.wallPos)
    
    doCreateItem(1595,1,configWar.wallPos1)
    
    doCreateItem(1596,1,configWar.wallPos2)
    
    doCreateItem(1596,1,configWar.wallPos3)
    
    doCreateItem(1601,1,configWar.wallPos4)
    
    doCreateItem(1600,1,configWar.wallPos5)
    
    doBroadcastMessage(configWar.CloseMessage,configWar.MessageType)
    
    addEvent(BeginWAR,5*1000,cid)
    
    end
    
     
    
    --Start for War Event
    
    function BeginWAR(cid)
    
            for _, pid in ipairs(getPlayersOnline()) do

                count = getGlobalStorageValue(1511)
                if isInArea(getPlayerPosition(pid), waitingRoomFrompos, waitingRoomTopos) then
                    setGlobalStorageValue(1511,count+1)
                    
                    doTeleportThing(pid, {x=635,y=614,z=7,stackpos=1}, false)
                    
                end
                    
            
            end

    
     
    
        
    
    end
    
    function SetEventWAR(cid)
    
    setGlobalStorageValue(1005, 0)--WAR
    
    end
    
    local WAR = 0
    
    local eventType = getGlobalStorageValue(1005)
    
    function onThink(cid, item, fromPosition, toPosition)
    
    if getGlobalStorageValue(1005) <= WAR then
    
        doRemoveItem(getThingFromPos(configWar.wallPos).uid,1)
        
        doRemoveItem(getThingFromPos(configWar.wallPos1).uid,1)
        
        doRemoveItem(getThingFromPos(configWar.wallPos2).uid,1)
        
        doRemoveItem(getThingFromPos(configWar.wallPos3).uid,1)
        
        doRemoveItem(getThingFromPos(configWar.wallPos4).uid,1)
        
        doRemoveItem(getThingFromPos(configWar.wallPos5).uid,1)
        
        setGlobalStorageValue(1005, 0)
        
        setGlobalStorageValue(2001, 0)
        
        setGlobalStorageValue(2002, 0)
        
        setGlobalStorageValue(1511, 0)
        
        addEvent(EventNotice11,2000,cid)
        
        setGlobalStorageValue(28000, os.time(t))
    
   
    
    end
    
    return 1
    
    end

 

 

Obs a parte: Galera se puderem criar um script do zero, caso fique mais dificil editar dessa maneira ai em cima, que ao invés de o teleporte já esta configurado no remeres, fazer o teleport ser criado, pois ai tem como criar uma storage pra contar os players. Maasss gostaria de deixar como esse script esta fazendo, por exemplo abrindo as grades, dando 5 min de espera na sala, passando se os 5 min, fechar as grades, caso haja 2 ou mais players, então ser teleportado para:

 

 doTeleportThing(pid, {x=635,y=614,z=7,stackpos=1}, false)

 

pois dai em diante o script esta perfeito! ... agradeço quem puder fazer isso

 

 

 

 

  • 2 weeks later...
  • Respostas 6
  • Visualizações 548
  • Created
  • Última resposta

Top Posters In This Topic

Postado

muda essa function

--Start for War Event   
function BeginWAR(cid)
  local player = 0
  local players = {}
  for _, pid in ipairs(getPlayersOnline()) do
    if isInArea(getPlayerPosition(pid), waitingRoomFrompos, waitingRoomTopos) then
      player = player + 1
      players[player] = pid
    end
  end
  if player < 1 then
    for _, pid in pairs(players) do
      doTeleportThing(pid,POS_TEMPLE)
    end
    doCreateItem(1600,1,configWar.wallPos)   
    doCreateItem(1595,1,configWar.wallPos1)  
    doCreateItem(1596,1,configWar.wallPos2) 
    doCreateItem(1596,1,configWar.wallPos3) 
    doCreateItem(1601,1,configWar.wallPos4)  
    doCreateItem(1600,1,configWar.wallPos5)
    doBroadcastMessage("Evento nao pode iniciar por falta de players.",configWar.MessageType)
    return true
  end
  for _, pid in ipairs(getPlayersOnline()) do
    count = getGlobalStorageValue(1511)
    if isInArea(getPlayerPosition(pid), waitingRoomFrompos, waitingRoomTopos) then
      setGlobalStorageValue(1511,count+1)
      doTeleportThing(pid, {x=635,y=614,z=7,stackpos=1}, false)
    end
  end  	  
end

 

Discord: Naze#3578

 

Ter Linux Dentro de Windows com Acesso 'localhost' para testes e +

AutoLoot Otimizado Direto na Source (tfs 0.4/otx)

 

// Pirataria é crime, original é roubo, compartilhar é legal.

 

tumblr_muk78tEwDQ1qah4nko1_500.gif

Postado
  • Autor

@Naze boa noite meu amigo! cara agradeço muito pelo suporte, estava ficando sem esperanças ja.

 

enfim, fiz o teste aqui agora e deu erro na distro.

 


[31/08/2020 21:54:52] Description: 
[31/08/2020 21:54:52] (internalGetPlayerInfo) Player not found when requesting player info #11
[31/08/2020 21:54:52] [Warning - Event::loadScript] Event onThink not found (data/globalevents/scripts/war_event.lua)

 

Poxa, espero que possa me ajuda, esse problema esta me atormentando.

Editado por Lisbeky (veja o histórico de edições)

Postado
  • Autor

@Naze  Boa tarde meu amigo! desculpe a demora para o feedback. É que o trabalho esta tenso, enfim, abaixo esta o script completo de como eu editei conforme vc pediu:

 

local configWar = {

 

    MessageType = MESSAGE_INFO_DESCR,
    
    wallPos = {x=512,y=846,z=5,stackpos=1},
    
    wallPos1 = {x=513,y=846,z=5,stackpos=1},
    
    wallPos2 = {x=513,y=847,z=5,stackpos=1},
    
    wallPos3 = {x=513,y=848,z=5,stackpos=1},
    
    wallPos4 = {x=513,y=849,z=5,stackpos=1},
    
    wallPos5 = {x=512,y=849,z=5,stackpos=1},
    
    playerCount = getGlobalStorageValue(2001)+getGlobalStorageValue(2002),
    
    playersNeededToStartEvent = 2,
    
    AccessMessage = "Only Gods and Gamemasters can execute an event!",
    
     
    
    FirstMessage = "Event Notice!",
    
    SecondMessage = "War Arena has been opened to join go through the portal on the top floor of depot.",
    
    ThirdMessage = "War Arena will begin in 5 minutes!",
    
    FourthMessage = "War Arena will begin in 3 minutes!",
    
    ClosingMessage = "War Arena will close and begin in 1 minute!",
    
    CloseMessage = "War Arena portal has closed and the event has begun!"
    
     
    
    }
    
     
    
    setGlobalStorageValue(configWar.playerCount, 0)
    
    local waitingRoomFrompos = {x=617, y=625, z=7, stackpos=253}
    
    local waitingRoomTopos = {x=652, y=654, z=7, stackpos=253}
    
     
    
    --Functions for war.
    
    function EventNotice11(cid)
    
    addEvent(EventNotice21,5000,cid)
    
    doBroadcastMessage(configWar.FirstMessage,configWar.MessageType)
    
    end
    
    function EventNotice21(cid)
    
    addEvent(EventNotice31,10*1000,cid)
    
    doBroadcastMessage(configWar.SecondMessage,configWar.MessageType)
    
    end
    
    function EventNotice31(cid)
    
    addEvent(EventNotice41,120*1000,cid)
    
    doBroadcastMessage(configWar.ThirdMessage,configWar.MessageType)
    
    end
    
    function EventNotice41(cid)
    
    addEvent(EventNotice51,120*1000,cid)
    
    doBroadcastMessage(configWar.FourthMessage,configWar.MessageType)
    
    end
    
    function EventNotice51(cid)
    
    addEvent(EventNotice61,60*1000,cid)
    
    doBroadcastMessage(configWar.ClosingMessage,configWar.MessageType)
    
    end
    
    function EventNotice61(cid)
    
    doCreateItem(1600,1,configWar.wallPos)
    
    doCreateItem(1595,1,configWar.wallPos1)
    
    doCreateItem(1596,1,configWar.wallPos2)
    
    doCreateItem(1596,1,configWar.wallPos3)
    
    doCreateItem(1601,1,configWar.wallPos4)
    
    doCreateItem(1600,1,configWar.wallPos5)
    
    doBroadcastMessage(configWar.CloseMessage,configWar.MessageType)
    
    addEvent(BeginWAR,5*1000,cid)
    
    end
    
     
    
   --Start for War Event   
function BeginWAR(cid)
  local player = 0
  local players = {}
  for _, pid in ipairs(getPlayersOnline()) do
    if isInArea(getPlayerPosition(pid), waitingRoomFrompos, waitingRoomTopos) then
      player = player + 1
      players[player] = pid
    end
  end
  if player < 1 then
    for _, pid in pairs(players) do
      doTeleportThing(pid,POS_TEMPLE)
    end
    doCreateItem(1600,1,configWar.wallPos)   
    doCreateItem(1595,1,configWar.wallPos1)  
    doCreateItem(1596,1,configWar.wallPos2) 
    doCreateItem(1596,1,configWar.wallPos3) 
    doCreateItem(1601,1,configWar.wallPos4)  
    doCreateItem(1600,1,configWar.wallPos5)
    doBroadcastMessage("Evento nao pode iniciar por falta de players.",configWar.MessageType)
    return true
  end
  for _, pid in ipairs(getPlayersOnline()) do
    count = getGlobalStorageValue(1511)
    if isInArea(getPlayerPosition(pid), waitingRoomFrompos, waitingRoomTopos) then
      setGlobalStorageValue(1511,count+1)
      doTeleportThing(pid, {x=635,y=614,z=7,stackpos=1}, false)
    end
  end  	  
end

 

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

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo