Ir para conteúdo
  • Cadastre-se

Suporte Limite de Players no Evento


Posts Recomendados

.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

 

 

 

 

Link para o post
Compartilhar em outros sites
  • 2 weeks later...

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

Link para o post
Compartilhar em outros sites

@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)
Link para o post
Compartilhar em outros sites

Manda novamente como colocou 

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

Link para o post
Compartilhar em outros sites

@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

 

Link para o post
Compartilhar em outros sites

osh e o resto ta faltando uma parte vou estrutura pra tu e coloca la

 

Spoiler

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

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 true
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

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 braianlomas
      Como faço para corrigir esse problema para meu cliente, eu uso o tfs 0.3.6  
      Quero resolver esse problema que tenho no meu cliente, como e onde posso resolver?  
      Eu uso o tfs 0.3.6, não tenho as fontes do cliente, se você puder me dar eu vou amá-las para sempre  
       

       
    • Por A.Mokk
      Ola pessoal, estou tentando compilar o TFS 1.5 Downgrade para 8.60 atraves do MSVC 2022, ao tentar compilar da o seguinte erro:
       
       
      Fiz o download do MSVC, GitDash, TFS-SDK-3.2, e de varios boosts que tentei, ao fazer o seguinte procedimento no GitDash:
       
      Ao chegar em ./bootstrap-vcpkg.bat o GitDash nao consegue realizar o procedimento corretamente, alguem poderia me ajudar ?

      Tentei de diversas formas mas o mesmo erro sempre persiste, atualmente meu servidor utiliza TFS 0.4, consigo compilar sem nenhum problema no MSVC 2010, porem, as limitações do TFS 0.4 estão me fazendo precisar atualizar, se alguem souber como corrigir esses erros eu agradeço !

      Tutoriais utilizados :
      Compiling on Windows (vcpkg) · otland/forgottenserver Wiki · GitHub
      Compiling on Windows · otland/forgottenserver Wiki · GitHub
      Compilando TFS 1.3 com vídeo-aula - Tutoriais Infraestrutura & Proteção - Tibia King - Tudo sobre Tibia, OTServ e Bots!
      Compilar TFS 1.3 Vcpkg - Tutoriais Infraestrutura & Proteção - Tibia King - Tudo sobre Tibia, OTServ e Bots!
       
      O que acontece no Powershell:
       
    • Por thunmin
      .Qual servidor ou website você utiliza como base? 
      Canary 2.3.6
      Qual o motivo deste tópico? 
      Queria fazer com que os players não pudessem mexer no aleta sio, pois, agora os mesmos estão conseguindo mexer nos itens
      Está surgindo algum erro? Se sim coloque-o aqui. 
       
      Você tem o código disponível? Se tiver publique-o aqui: 
         
      Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui. 
       
    • Por thunmin
      .Qual servidor ou website você utiliza como base? 
      canary para o cliente 13.16
      Qual o motivo deste tópico? 
      Não consigo encontrar onde ajusta
      to com o problema no 13.16  o exausted, por exemplo os kinas era pra combar exori, erori gran e exori min, porém não ta indo ta dando exausted o char ta soltando magia ou runa e não consegue usar as potions
      Está surgindo algum erro? Se sim coloque-o aqui. 
       
      Você tem o código disponível? Se tiver publique-o aqui: 
         
      Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui. 
       
    • Por Andersontatuador
      Olá galera da TK, me chamo Anderson estou procurando alguém profissional em otservs e site.
      Já tenho um servidor o site e o cliente preciso só de uma pessoal competente, que esteja empenhado a trabalhar,
      não quero nada de graça, pois nessa onda fui mais roubado do quer eu pagar um profissional.
      caso alguém se interesse entrar em contato comigo através do whatsapp
      82 9 9304-9462
       
      Está surgindo algum erro? Se sim coloque-o aqui. 
       
      Você tem o código disponível? Se tiver publique-o aqui: 
         
      Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui. 
       
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo