Postado Agosto 22, 2020 4 anos .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
Postado Agosto 31, 2020 4 anos 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.
Postado Setembro 1, 2020 4 anos 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 Setembro 1, 2020 4 anos por Lisbeky (veja o histórico de edições)
Postado Setembro 1, 2020 4 anos 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.
Postado Setembro 2, 2020 4 anos 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.