سلام عليكم
آبي لمآ مود آلديربي يشتغل , آو لمآ آلمهمة تشتغل , ينقل كل آلآعبين آلي بآلسيرفر بآلديربي كآنهم كتبو ديربي
بقدر آعدل علي آلمود وآسويهآ , ولآ آسوي مود جديد وخلاص ؟
spawns = {}
setElementData(resourceRoot,"map","no")
setElementData(resourceRoot,"winMoney","0")
addEventHandler("onPlayerChat",getRootElement(),function(message)
if tostring(message) == "ديربي" and checkDuel(source) == "prestart" and ( not checkExistPlrOnDuel(source) ) then
online = countPlayersOnDerby()
if tonumber(online)+1 < 32 then
setData(source,"onCrossMap","yes")
outputChatBox("* #00BCCD≈ - ( #555555Derby #00BCCD} :الرجاء الانتظار ..",source,255,255,0,true)
setD(source)
spawnOnMap(source)
else
outputChatBox("* #00BCCD≈ - ( #555555Derby #00BCCD) : لم يبق مكان بالديـربي الرجآء, الانتظآر الديربي القآدم,",source,0,255,0,true)
end
end end)
function checkDuel(p)
if tostring(getElementData(resourceRoot,"map")) == "yes" then
outputChatBox("* #ff0000≈ #ffffff[#ff0000 DerbySystem #ffffff ] #00BCCD≈",p,255,255,0,true)
elseif tostring(getElementData(resourceRoot,"map")) == "no" then
outputChatBox("* #00BCCD≈ - ( #555555Derby #00BCCD) : الرجآء الانتظآر,حتى يبدء الديربي",p,255,255,0,true)
end
return tostring(getElementData(resourceRoot,"map"))
end
function checkExistPlrOnDuel(p)
per = getElementData(p,"onCrossMap")
if tostring(per) == "yes" then
return true
else
return false
end
end
function setData(element,key,vlr)
setElementData(element,key,vlr)
end
function setD(element)
setElementDimension(element,30)
end
function spawnOnMap(p)
count = countPlayersOnDerby()
spawned = "no"
for i,data in pairs(spawns)do
if tonumber(data.id) == tonumber(count) then
spawned = "yes"
v = createVehicle(411,data.x,data.y,data.z,data.rx,data.ry,data.rz)
setElementDimension(v,30)
setElementFrozen(v,true)
setElementData(v,"creatorDerby","yes")
break
end
end
if spawned == "no" then
randomS = math.random("1","32")
for i,data in pairs(spawns)do
if tonumber(data.id) == tonumber(randomS) then
v = createVehicle(411,data.x,data.y,data.z,data.rx,data.ry,data.rz)
setElementDimension(v,30)
setElementFrozen(v,true)
setElementData(v,"creatorDerby","yes")
break
end end
end
toggleControl(p,"enter_exit", false )
warpPedIntoVehicle(p,v)
setCameraTarget(p,p)
end
function countPlayersOnDerby()
c = -1
for i,p in pairs(getElementsByType("player"))do
if checkExistPlrOnDuel(p) then
c = c+1
end
end
return tonumber(c)
end
function eventCheck ()
if checkExistPlrOnDuel(source) then
toggleControl(source,"enter_exit",true )
setData(source,"onCrossMap","no")
checkEnd()
end
end
addEventHandler("onPlayerWasted",getRootElement(),eventCheck)
addEventHandler("onPlayerQuit",getRootElement(),eventCheck)
addEventHandler("onPlayerJoin",getRootElement(),function()
outputChatBox("",source,255,255,0,true)
setData(source,"onCrossMap","no")
end)
for i,p in pairs(getElementsByType("player"))do
setData(p,"onCrossMap","no")
end
function checkEnd()
c = 0
for i,p in pairs(getElementsByType("player"))do
if checkExistPlrOnDuel(p) then
c = c+1
winner = p
end end
if tonumber(c) == 1 then
givePlayerMoney(winner,tonumber(getElementData(resourceRoot,"winMoney")))
n = string.gsub(getPlayerName(winner), "#%x%x%x%x%x%x", "")
outputChatBox("* #ff0000≈[ #ff0000 " .. n .. " #FF9700 Won the Derby and win#00FF00 " .. tonumber(getElementData(resourceRoot,"winMoney")) .. "$ ##ff0000]≈",getRootElement(),255,255,0,true)
setElementData(resourceRoot,"map","no")
endDerby()
setTimer(newDuel,30000,1)
end
end
function newDuel()
for i,p in pairs(getElementsByType("player"))do
setData(p,"onCrossMap","no")
end
setElementData(resourceRoot,"map","prestart")
outputChatBox("* #00BCCD≈ - ( #555555Derby #00BCCD) : لدخول الديربي,اكتب في الشـآت ديربي.",getRootElement(),255,255,0,true)
RMoney = math.random("50000","300000")
setElementData(resourceRoot,"winMoney",tonumber(RMoney))
outputChatBox("* #00BCCD≈ - ( #555555Derby #00BCCD) : سيحصل الفآئز في الديربي على #00FF00|" .. RMoney .. "|$",getRootElement(),0,255,0,true)
setTimer(checkPlrs,30000,1)
end
function checkPlrs ()
c = 0
for i,p in pairs(getElementsByType("player"))do
if checkExistPlrOnDuel(p) then
c = c+1
end end
if tonumber(c) > 1 then
setElementData(resourceRoot,"map","yes")
for i,p in pairs(getElementsByType("player"))do
if checkExistPlrOnDuel(p) then
setElementCollisionsEnabled(getPedOccupiedVehicle(p),true)
outputChatBox("* #00BCCD≈ - ( #555555Derby #00BCCD) : لقد بدآء الديربي , يمكنك الانطلاق",p,0,255,0,true)
setElementFrozen(getPedOccupiedVehicle(p),false)
end end
else
endDerby()
setElementData(resourceRoot,"map","no")
outputChatBox("* #00BCCD≈ - ( #555555Derby #00BCCD) : لم يبدآء الديربي, لعدم توفر الاعبين",getRootElement(),255,255,0,true)
setTimer(newDuel,60000,1)
end
end
setTimer(newDuel,3000,1)
function onStartLoadSpawns ()
file = fileOpen("map.map")
localFile = fileOpen("map.xml")
fileWrite(localFile,"")
data = fileRead(file,999999)
fileWrite(localFile,data)
fileClose(localFile)
xml = xmlLoadFile("map.xml")
c = 0
for i,data in pairs(xmlNodeGetChildren(xml)) do
if xmlNodeGetName(data) == "spawnpoint" then
c = c+1
v,xx,yy,zz,rxx,ryy,rzz = xmlNodeGetAttribute(data,"vehicle"),xmlNodeGetAttribute(data,"posX"),xmlNodeGetAttribute(data,"posY"),xmlNodeGetAttribute(data,"posZ"),xmlNodeGetAttribute(data,"rotX"),xmlNodeGetAttribute(data,"rotY"),xmlNodeGetAttribute(data,"rotZ")
table.insert(spawns,{id = c,model = v,x = xx,y = yy,z = zz,rx = rxx,ry = ryy,rz = rzz})
end
end
for i,data in pairs(xmlNodeGetChildren(xml)) do
if xmlNodeGetName(data) == "object" then
m,xx,yy,zz,rxx,ryy,rzz = xmlNodeGetAttribute(data,"model"),xmlNodeGetAttribute(data,"posX"),xmlNodeGetAttribute(data,"posY"),xmlNodeGetAttribute(data,"posZ"),xmlNodeGetAttribute(data,"rotX"),xmlNodeGetAttribute(data,"rotY"),xmlNodeGetAttribute(data,"rotZ")
object = createObject(m,xx,yy,zz,rxx,ryy,rzz)
setElementDimension(object,30)
end end
end
setTimer(onStartLoadSpawns,3000,1)
function endDerby()
for i,p in pairs(getElementsByType("player"))do
if checkExistPlrOnDuel(p) then
killPed(p)
end end
for i,v in pairs(getElementsByType("vehicle"))do
if getElementData(v,"creatorDerby") then
destroyElement(v)
end end
end
setTimer(function()
for i,p in pairs(getElementsByType("player"))do
sea(p)
resetHan(p)
checkVeh(p)
checkModel(p)
end
end,1000,0)
outputChatBox("",getRootElement(),255,255,0,true)
function sea(p)
if checkExistPlrOnDuel(p) then
x,y,z = getElementPosition(p)
if tonumber(z) <= 0 then
killPed(p)
end
end
end
function checkVeh(p)
if (tonumber(getElementDimension(p)) == 30) and not (isPedInVehicle(p))then
killPed(p)
end
end
function resetHan(p)
if checkExistPlrOnDuel(p) then
setVehicleHandling (getPedOccupiedVehicle(p), true )
end
end
function checkModel(p)
if checkExistPlrOnDuel(p) and isPedInVehicle(p) then
if tonumber(getElementModel(getPedOccupiedVehicle(p))) ~= 411 then
killPed(p)
end end
end