Ir para conteúdo

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 559
  • 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.7k

Informação Importante

Confirmação de Termo