Hello everyone, im new in this forum, and im just have a little time with scripting, my english is not so good, i have a bug with the dxDrawText, and i think some more little problems, it is a script for plasma freeroam pokeserver, but i think it is not opened now, im not his owner, i just make cheap scripts for it.
Im trying to make a race event zone, when a player enter /carrera1 he teletransport to the zone, or if the player simply enter there, appear a green message, the message timer is 5 sec, and if he leave quit the message, or simply quit the message in 4 sec, when the race event is created, start a timer, when it timer end, start next timer and say a message in the chatbox, when the final time end create a marker in a zone and attach a blip, begin the countdown 5, 4, 3, 2, 1, Go, the first player who go there and hit the marker, win 20000$ and a ACL rank, but if you leave the zone and the race doesnt begin, if you go to the marker, the marker doesnt do anything.
Bug i detected: when a player hit the area, the message appear and disapear in just 1 milsecond, and the second message doesnt appear.
Client side:
function countdown5 ()
playSound ("n5.mp3")
dxDrawText("5!", 527, 240, 765, 539, tocolor(0, 0, 0, 255), 9.00, "beckett", "center", "center", true, false, true, false, false)
dxDrawText("5!", 527, 238, 765, 537, tocolor(0, 0, 0, 255), 9.00, "beckett", "center", "center", true, false, true, false, false)
dxDrawText("5!", 525, 240, 763, 539, tocolor(0, 0, 0, 255), 9.00, "beckett", "center", "center", true, false, true, false, false)
dxDrawText("5!", 525, 238, 763, 537, tocolor(0, 0, 0, 255), 9.00, "beckett", "center", "center", true, false, true, false, false)
dxDrawText("5!", 526, 239, 764, 538, tocolor(255, 0, 0, 255), 9.00, "beckett", "center", "center", true, false, true, false, false)
end
addEvent ("N5", true)
addEventHandler ("N5", getRootElement(), countdown5)
function countdown4 ()
playSound ("n4.mp3")
dxDrawText("4!", 527, 240, 765, 539, tocolor(0, 0, 0, 255), 9.00, "beckett", "center", "center", true, false, true, false, false)
dxDrawText("4!", 527, 238, 765, 537, tocolor(0, 0, 0, 255), 9.00, "beckett", "center", "center", true, false, true, false, false)
dxDrawText("4!", 525, 240, 763, 539, tocolor(0, 0, 0, 255), 9.00, "beckett", "center", "center", true, false, true, false, false)
dxDrawText("4!", 525, 238, 763, 537, tocolor(0, 0, 0, 255), 9.00, "beckett", "center", "center", true, false, true, false, false)
dxDrawText("4!", 526, 239, 764, 538, tocolor(255, 0, 0, 255), 9.00, "beckett", "center", "center", true, false, true, false, false)
end
addEvent ("N4", true)
addEventHandler ("N4", getRootElement(), countdown4)
function countdown3 ()
playSound ("n3.mp3")
dxDrawText("3!", 527, 240, 765, 539, tocolor(0, 0, 0, 255), 9.00, "beckett", "center", "center", true, false, true, false, false)
dxDrawText("3!", 527, 238, 765, 537, tocolor(0, 0, 0, 255), 9.00, "beckett", "center", "center", true, false, true, false, false)
dxDrawText("3!", 525, 240, 763, 539, tocolor(0, 0, 0, 255), 9.00, "beckett", "center", "center", true, false, true, false, false)
dxDrawText("3!", 525, 238, 763, 537, tocolor(0, 0, 0, 255), 9.00, "beckett", "center", "center", true, false, true, false, false)
dxDrawText("3!", 526, 239, 764, 538, tocolor(255, 0, 0, 255), 9.00, "beckett", "center", "center", true, false, true, false, false)
end
addEvent ("N3", true)
addEventHandler ("N3", getRootElement(), countdown3)
function countdown2 ()
playSound ("n2.mp3")
dxDrawText("2!", 527, 240, 765, 539, tocolor(0, 0, 0, 255), 9.00, "beckett", "center", "center", true, false, true, false, false)
dxDrawText("2!", 527, 238, 765, 537, tocolor(0, 0, 0, 255), 9.00, "beckett", "center", "center", true, false, true, false, false)
dxDrawText("2!", 525, 240, 763, 539, tocolor(0, 0, 0, 255), 9.00, "beckett", "center", "center", true, false, true, false, false)
dxDrawText("2!", 525, 238, 763, 537, tocolor(0, 0, 0, 255), 9.00, "beckett", "center", "center", true, false, true, false, false)
dxDrawText("2!", 526, 239, 764, 538, tocolor(255, 0, 0, 255), 9.00, "beckett", "center", "center", true, false, true, false, false)
end
addEvent ("N2", true)
addEventHandler ("N2", getRootElement(), countdown2)
function countdown1 ()
playSound ("n1.mp3")
dxDrawText("1!", 527, 240, 765, 539, tocolor(0, 0, 0, 255), 9.00, "beckett", "center", "center", true, false, true, false, false)
dxDrawText("1!", 527, 238, 765, 537, tocolor(0, 0, 0, 255), 9.00, "beckett", "center", "center", true, false, true, false, false)
dxDrawText("1!", 525, 240, 763, 539, tocolor(0, 0, 0, 255), 9.00, "beckett", "center", "center", true, false, true, false, false)
dxDrawText("1!", 525, 238, 763, 537, tocolor(0, 0, 0, 255), 9.00, "beckett", "center", "center", true, false, true, false, false)
dxDrawText("1!", 526, 239, 764, 538, tocolor(255, 0, 0, 255), 9.00, "beckett", "center", "center", true, false, true, false, false)
end
addEvent ("N1", true)
addEventHandler ("N1", getRootElement(), countdown1)
function countdowngo ()
playSound ("go.mp3")
dxDrawText("GO!", 527, 240, 765, 539, tocolor(0, 0, 0, 255), 9.00, "beckett", "center", "center", true, false, true, false, false)
dxDrawText("GO!", 527, 238, 765, 537, tocolor(0, 0, 0, 255), 9.00, "beckett", "center", "center", true, false, true, false, false)
dxDrawText("GO!", 525, 240, 763, 539, tocolor(0, 0, 0, 255), 9.00, "beckett", "center", "center", true, false, true, false, false)
dxDrawText("GO!", 525, 238, 763, 537, tocolor(0, 0, 0, 255), 9.00, "beckett", "center", "center", true, false, true, false, false)
dxDrawText("GO!", 526, 239, 764, 538, tocolor(255, 0, 0, 255), 9.00, "beckett", "center", "center", true, false, true, false, false)
end
addEvent ("Go", true)
addEventHandler ("Go", getRootElement(), countdowngo)
function EnterAreaSrv ()
dxDrawText("Has Entrado a la Zona de Carrera", 300, 648, 1108, 698, tocolor(0, 0, 0, 255), 4.00, "default", "center", "center", true, false, true, false, false)
dxDrawText("Has Entrado a la Zona de Carrera", 300, 646, 1108, 696, tocolor(0, 0, 0, 255), 4.00, "default", "center", "center", true, false, true, false, false)
dxDrawText("Has Entrado a la Zona de Carrera", 298, 648, 1106, 698, tocolor(0, 0, 0, 255), 4.00, "default", "center", "center", true, false, true, false, false)
dxDrawText("Has Entrado a la Zona de Carrera", 298, 646, 1106, 696, tocolor(0, 0, 0, 255), 4.00, "default", "center", "center", true, false, true, false, false)
dxDrawText("Has Entrado a la Zona de Carrera", 299, 647, 1107, 697, tocolor(0, 255, 0, 255), 4.00, "default", "center", "center", true, false, true, false, false)
end
addEvent ("Enter1", true)
addEventHandler ("Enter1", getRootElement(), EnterAreaSrv)
function ExitAreaSrv ()
dxDrawText("Has Salido de la Zona de Carrera", 300, 648, 1108, 698, tocolor(0, 0, 0, 255), 4.00, "default", "center", "center", true, false, true, false, false)
dxDrawText("Has Salido de la Zona de Carrera", 300, 646, 1108, 696, tocolor(0, 0, 0, 255), 4.00, "default", "center", "center", true, false, true, false, false)
dxDrawText("Has Salido de la Zona de Carrera", 298, 648, 1106, 698, tocolor(0, 0, 0, 255), 4.00, "default", "center", "center", true, false, true, false, false)
dxDrawText("Has Salido de la Zona de Carrera", 298, 646, 1106, 696, tocolor(0, 0, 0, 255), 4.00, "default", "center", "center", true, false, true, false, false)
dxDrawText("Has Salido de la Zona de Carrera", 299, 647, 1107, 697, tocolor(255, 0, 0, 255), 4.00, "default", "center", "center", true, false, true, false, false)
end
addEvent ("Exit1", true)
addEventHandler ("Exit1", getRootElement(), ExitAreaSrv)
function dxWinRace ()
playSound ("win.mp3")
dxDrawText("Enorabuena! Has Ganado la Carrera!", 295, 342, 1008, 392, tocolor(0, 0, 0, 255), 1.80, "pricedown", "center", "center", true, false, true, true, false)
dxDrawText("Enorabuena! Has Ganado la Carrera!", 295, 340, 1008, 390, tocolor(0, 0, 0, 255), 1.80, "pricedown", "center", "center", true, false, true, true, false)
dxDrawText("Enorabuena! Has Ganado la Carrera!", 293, 342, 1006, 392, tocolor(0, 0, 0, 255), 1.80, "pricedown", "center", "center", true, false, true, true, false)
dxDrawText("Enorabuena! Has Ganado la Carrera!", 293, 340, 1006, 390, tocolor(0, 0, 0, 255), 1.80, "pricedown", "center", "center", true, false, true, true, false)
dxDrawText("Enorabuena! Has Ganado la Carrera!", 294, 341, 1007, 391, tocolor(0, 255, 0, 255), 1.80, "pricedown", "center", "center", true, false, true, true, false)
end
addEvent ("WinRace1", true)
addEventHandler ("WinRace1", getRootElement(), dxWinRace)
function generalCountdown ()
if countdown5 then
addEventHandler ("onClientRender", getRootElement(), countdown5)
setTimer (countdown4, 1000, 1)
setTimer(function() removeEventHandler("onClientRender",getRootElement(),countdown5) end,1000,1)
if countdown4 then
addEventHandler ("onClientRender", getRootElement(), countdown4)
setTimer (countdown3, 1000, 1)
setTimer(function() removeEventHandler("onClientRender",getRootElement(),countdown4) end,1000,1)
if countdown3 then
addEventHandler ("onClientRender", getRootElement(), countdown3)
setTimer (countdown2, 1000, 1)
setTimer(function() removeEventHandler("onClientRender",getRootElement(),countdown3) end,1000,1)
if countdown2 then
addEventHandler ("onClientRender", getRootElement(), countdown2)
setTimer (countdown1, 1000, 1)
setTimer(function() removeEventHandler("onClientRender",getRootElement(),countdown2) end,1000,1)
if countdown1 then
addEventHandler ("onClientRender", getRootElement(), countdown1)
setTimer (countdowngo, 1000, 1)
setTimer(function() removeEventHandler("onClientRender",getRootElement(),countdown1) end,1000,1)
if countdowngo then
addEventHandler ("onClientRender", getRootElement(), countdowngo)
setTimer(function() removeEventHandler("onClientRender",getRootElement(),countdowngo) end,1000,1)
end
end
end
end
end
end
end
function enterExit ()
if EnterAreaSrv then
addEventHandler ("onClientRender", getRootElement(), EnterAreaSrv)
setTimer(function() removeEventHandler("onClientRender",getRootElement(),EnterAreaSrv) end,5000,1)
if ExitAreaSrv then
removeEventHandler ("onClientRender", getRootElement(), EnterAreaSrv)
addEventHandler ("onClientRender", getRootElement(), ExitAreaSrv)
setTimer(function() removeEventHandler("onClientRender",getRootElement(),ExitAreaSrv) end,4000,1)
end
end
end
function winRaceEvent ()
if dxWinRace then
addEventHandler ("onClientRender", getRootElement(), dxWinRace)
setTimer(function() removeEventHandler("onClientRender",getRootElement(),winRaceEvent) end,8000,1)
end
end
Server side
function eventoFalse(source, cmd, ...)
for _, group in ipairs ({"Adm.Plasma", "SMod.Plasma", "Mod.Plasma", "D.Plasma", "SL.Plasma", "SD.Plasma", "L.Plasma"}) do
local playerAccount = getPlayerAccount(source)
if (not playerAccount) then return end
local accountName = getAccountName(playerAccount)
if isObjectInACLGroup ( "user.".. accountName, aclGetGroup ( group ) ) then
if (isElement(theMarker)) then
destroyElement(theMarker)
local nombre2 = getPlayerName(source)
outputChatBox("#FF0000[Atencion] La Carrera Se Ha Cancelado Por #0000FF"..nombre2.."#00FF00.", getRootElement(), 255, 255, 255, true)
removeCommandHandler("eliminar")
end
end
end
end
addCommandHandler ("eliminar", eventoFalse)
function eventoTrue ()
theColShape = createColCuboid (2462.4877929688, -1716.8363037109, 13.513750076294, 40.0, 40.0, 40.0)
theMarker = createMarker ( 2429.3806152344, -1659.1734619141, 13.3828125, "checkpoint", 2, 255, 0, 0, 100 )
addEventHandler ("onColShapeHit", getRootElement(), enterAreaRace1)
outputChatBox("#FF0000[Atencion]#00FF00Una Carrera Va a Dar Comienzo Preparate!!!", getRootElement(), 255, 255, 255, true)
outputChatBox("#00FF00Pon #0000FF/carrera #00FF00Para Para Participar.", getRootElement(), 255, 255, 255, true)
addCommandHandler("carrera", eventowarp)
end
addCommandHandler("carrera1", eventoTrue)
function enterAreaRace1()
if isElement(theColShape) then
triggerClientEvent ("Enter1", getRootElement(), true)
if timeon then
outputChatBox ("#FF0000La Carrera Empieza en 1 Minuto, #00FF00Escoge un Infernus y Preparate!", source, 255, 255, 255, true)
if timebegin then
triggerClientEvent ("N5", source, true)
triggerClientEvent ("N4", source, true)
triggerClientEvent ("N3", source, true)
triggerClientEvent ("N2", source, true)
triggerClientEvent ("N1", source, true)
triggerClientEvent ("Go", source, true)
winmarker1 = createMarker (213.96672058105, 1873.9555664063, 13.140625, "checkpoint", 8.0, 255, 0, 0, 255)
createBlipAttachedTo (winmarker1, 41, 2)
else
addEventHandler ("onColShapeLeave", getRootElement(), enterRaceArea1)
triggerClientEvent ("Exit1", getRootElement(), true)
removeEventHandler ("onMarkerHit", getRootElement(), winRace)
end
end
end
end
function winRace()
if winmarker1 then
addEventHandler ("onMarkerHit", getRootElement(), winRace)
setPlayerMoney (source, 20000)
local accname = getPlayerAccount (source)
aclGroupAddObject (aclGetGroup("Pro"), "user."..accname)
triggerClientEvent ("WinRace1", source, true)
end
end
function eventowarp()
if isElement(theMarker) then
setElementPosition (source, 2429.3806152344, -1659.1734619141, 13.3828125)
timeon = setTimer (theMarker, 50000, 1)
timebegin = setTimer (timeon, 60000, 1)
if timeon then
outputChatBox ("#FF0000La Carrera Empieza en 1 Minuto, #00FF00Escoge un Infernus y Preparate!", source, 255, 255, 255, true)
if timebegin then
triggerClientEvent ("N5", source, true)
triggerClientEvent ("N4", source, true)
triggerClientEvent ("N3", source, true)
triggerClientEvent ("N2", source, true)
triggerClientEvent ("N1", source, true)
triggerClientEvent ("Go", source, true)
end
end
end
end