من فضلكم شباب عندي مود سباق اريد التعديل عليه . المود هو سباق سيارات لكن المشكلة لما تدخل السباق لا تقدر تلغي والسيارة لا تتحطم ولا تموت
اريد التعديل عليه حيث يصير سباق سيارة واحدة بوقت زمني محدد اذا تعديت المدة تخسر السباق وايضا اريد لما تصطدم بالسيارة تتحطم ويمكنك الغاء السباق بالخروج من السيارة ومباشرة تذهب الى احداثيات بداية السباق لتبدا من جديد وشكرا
client :
addEvent("c_raceStart",true)
l_markerposX={2366, 2343, 2244, 2219, 2215, 2269, 2688, 2715, 2542, 2528, 2494, 2487}
l_markerposY={-1658, -1706, -1732, -1870, -1951, -2065, -2049, -1952, -1932, -1756, -1732, -1670}
l_Z=13.2
l_Z2=13.5
l_marker={}
l_blip={}
l_target=0
l_count=nil
l_racecar=nil
l_player=nil
function f_race(who,is)
if(l_target>0)and(l_racecar~=nil)and(l_marker[l_target]==source)and(getPedOccupiedVehicle(who)==l_racecar)then
triggerServerEvent("s_checkpos",who,l_target)
outputChatBox("Checkpoint "..l_target.." Reached!")
playSoundFrontEnd(43)
destroyElement(source)
destroyElement(l_blip[l_target])
if(l_target<11)then
l_blip[l_target+1]=createBlipAttachedTo(l_marker[l_target+1],19)
l_marker[l_target+2]=createMarker(l_markerposX[l_target+2],l_markerposY[l_target+2],l_Z,"checkpoint",4,255,0,0,255)
addEventHandler("onClientMarkerHit",l_marker[l_target+2],f_race)
setMarkerTarget(l_marker[l_target+1],l_markerposX[l_target+2],l_markerposY[l_target+2],l_Z2)
l_target=l_target+1
elseif(l_target==11)then
l_blip[l_target+1]=createBlipAttachedTo(l_marker[l_target+1],53)
l_target=l_target+1
elseif(l_target==12)then
l_target=l_target+1
playSound("sound/mission_accomplished.mp3")
triggerServerEvent("s_finish",who,who,1)
end
triggerEvent("g_raceStart",localPlayer,l_target-1)
end
end
function f_raceStart(num)
l_player=num
guiSetVisible(g_winlog,false)
showCursor(false,false)
l_racecar=getPedOccupiedVehicle(localPlayer)
l_target=1
l_count=4
setTimer ( function()
l_count=l_count-1
if(l_count==3)then
g_cntdwn=guiCreateLabel(0.5,0.4375,0.125,0.125,"3",true)
guiSetFont(g_cntdwn,"sa-gothic")
playSoundFrontEnd(44)
elseif(l_count>0)then
guiSetText(g_cntdwn,tostring(l_count))
playSoundFrontEnd(44)
elseif(l_count==0)then
guiSetPosition(g_cntdwn,0.46875,0.4375,true)
guiSetText(g_cntdwn,"GO")
playSoundFrontEnd(45)
end
-- outputChatBox(tostring(l_count))
end, 1000, 4 )
setTimer(function()
triggerServerEvent("s_startEngine",localPlayer)
end,4000,1)
setTimer(function()
destroyElement(g_cntdwn)
end,5000,1)
outputChatBox("Vehicle: "..getVehicleName(l_racecar))
outputChatBox("Driver: "..getPlayerName(localPlayer))
triggerEvent("g_raceStart",localPlayer,l_target-1)
for i=1,2,1 do
l_marker=createMarker(l_markerposX,l_markerposY,l_Z,"checkpoint",4,255,0,0,255)
addEventHandler("onClientMarkerHit",l_marker,f_race)
if(i<2)then
l_blip=createBlipAttachedTo(l_marker,19)
setMarkerTarget(l_marker,l_markerposX[i+1],l_markerposY[i+1],l_Z2)
end
end
end
addEventHandler("c_raceStart",getRootElement(),f_raceStart)
gui:
addEvent("c_raceStart",true)
l_markerposX={2366, 2343, 2244, 2219, 2215, 2269, 2688, 2715, 2542, 2528, 2494, 2487}
l_markerposY={-1658, -1706, -1732, -1870, -1951, -2065, -2049, -1952, -1932, -1756, -1732, -1670}
l_Z=13.2
l_Z2=13.5
l_marker={}
l_blip={}
l_target=0
l_count=nil
l_racecar=nil
l_player=nil
function f_race(who,is)
if(l_target>0)and(l_racecar~=nil)and(l_marker[l_target]==source)and(getPedOccupiedVehicle(who)==l_racecar)then
triggerServerEvent("s_checkpos",who,l_target)
outputChatBox("Checkpoint "..l_target.." Reached!")
playSoundFrontEnd(43)
destroyElement(source)
destroyElement(l_blip[l_target])
if(l_target<11)then
l_blip[l_target+1]=createBlipAttachedTo(l_marker[l_target+1],19)
l_marker[l_target+2]=createMarker(l_markerposX[l_target+2],l_markerposY[l_target+2],l_Z,"checkpoint",4,255,0,0,255)
addEventHandler("onClientMarkerHit",l_marker[l_target+2],f_race)
setMarkerTarget(l_marker[l_target+1],l_markerposX[l_target+2],l_markerposY[l_target+2],l_Z2)
l_target=l_target+1
elseif(l_target==11)then
l_blip[l_target+1]=createBlipAttachedTo(l_marker[l_target+1],53)
l_target=l_target+1
elseif(l_target==12)then
l_target=l_target+1
playSound("sound/mission_accomplished.mp3")
triggerServerEvent("s_finish",who,who,1)
end
triggerEvent("g_raceStart",localPlayer,l_target-1)
end
end
function f_raceStart(num)
l_player=num
guiSetVisible(g_winlog,false)
showCursor(false,false)
l_racecar=getPedOccupiedVehicle(localPlayer)
l_target=1
l_count=4
setTimer ( function()
l_count=l_count-1
if(l_count==3)then
g_cntdwn=guiCreateLabel(0.5,0.4375,0.125,0.125,"3",true)
guiSetFont(g_cntdwn,"sa-gothic")
playSoundFrontEnd(44)
elseif(l_count>0)then
guiSetText(g_cntdwn,tostring(l_count))
playSoundFrontEnd(44)
elseif(l_count==0)then
guiSetPosition(g_cntdwn,0.46875,0.4375,true)
guiSetText(g_cntdwn,"GO")
playSoundFrontEnd(45)
end
-- outputChatBox(tostring(l_count))
end, 1000, 4 )
setTimer(function()
triggerServerEvent("s_startEngine",localPlayer)
end,4000,1)
setTimer(function()
destroyElement(g_cntdwn)
end,5000,1)
outputChatBox("Vehicle: "..getVehicleName(l_racecar))
outputChatBox("Driver: "..getPlayerName(localPlayer))
triggerEvent("g_raceStart",localPlayer,l_target-1)
for i=1,2,1 do
l_marker=createMarker(l_markerposX,l_markerposY,l_Z,"checkpoint",4,255,0,0,255)
addEventHandler("onClientMarkerHit",l_marker,f_race)
if(i<2)then
l_blip=createBlipAttachedTo(l_marker,19)
setMarkerTarget(l_marker,l_markerposX[i+1],l_markerposY[i+1],l_Z2)
end
end
end
addEventHandler("c_raceStart",getRootElement(),f_raceStart)
server:
addEvent("s_finish",true)
addEvent("s_vote",true)
addEvent("s_startEngine",true)
addEvent("s_checkpos",true)
r_markerposX=2463
r_markerposY=-1658
r_markerposZ=14
r_pos={[1]=0,[2]=0,[3]=0,[4]=0,[5]=0,[6]=0,[7]=0,[8]=0,[9]=0,[10]=0,[11]=0,[12]=0}
r_join={}
r_join2={}
r_player=0
r_finished=0
r_vehplate="RACE CAR"
r_startM=createMarker(r_markerposX,r_markerposY,r_markerposZ,"checkpoint",4,0,255,0,255,getRootElement())
r_startB=createBlipAttachedTo(r_startM,12, 0.5, 0 ,0, 0, 0, 0, 400)
r_voted=0
r_vote={}
r_started=0
r_play=0
function f_checkpos(check)
r_pos[check]=r_pos[check]+1
triggerClientEvent(client,"g_posShow",client,r_pos[check])
end
addEventHandler("s_checkpos",getRootElement(),f_checkpos)
function f_reset()
local join2={}
local newplayer=0
for key=1,r_player,1 do
if(r_join2[key]~=nil)then
newplayer=newplayer+1
join2[newplayer]=r_join2[key]
end
end
r_join2=nil
r_join2=join2
r_player=newplayer
end
function s_votestart()
if(r_vote[client]==1)then
r_vote[client]=0
r_voted=r_voted+1
if(r_voted==r_player)then
triggerClientEvent(r_join2,"c_raceStart",r_startM,r_player)
triggerClientEvent(r_join2,"g_reset",r_startM)
destroyElement(r_startM)
destroyElement(r_startB)
r_started=1
r_vote=nil
r_vote={}
r_join=nil
r_join={}
r_join2=nil
r_join2={}
r_voted=0
r_player=0
end
end
end
addEventHandler("s_vote",getRootElement(),s_votestart)
function f_start(mark,dim)
if(mark==r_startM)and(getVehicleType(getPedOccupiedVehicle(source))=="Automobile")and(r_player<5)then
outputChatBox("Type /join to join the race",source)
end
end
addEventHandler("onPlayerMarkerHit",getRootElement(),f_start)
function s_starter()
setVehicleEngineState(getPedOccupiedVehicle(client),true)
end
addEventHandler("s_startEngine",getRootElement(),s_starter)
function f_finish(who,num,id)
r_finished=r_finished-1
if(num>0)then
givePlayerMoney(who,5000*(r_pos[11]-r_pos[12]+1))
outputChatBox("Congratulations!",who,0,255,0)
elseif(num==0)then
setVehicleEngineState(getPedOccupiedVehicle(who),true)
r_vote[who]=nil
r_join2[r_join[who]]=nil
r_join[who]=nil
setVehiclePlateText(getPedOccupiedVehicle(who),"IMALOSER")
triggerClientEvent(getRootElement(),"g_exit",who,id)
f_reset()
end
if(r_finished==0)and(r_started==1)then
r_started=0
r_startM=createMarker(r_markerposX,r_markerposY,r_markerposZ,"checkpoint",4,0,255,0,255,getRootElement())
r_startB=createBlipAttachedTo(r_startM,12, 0.5, 0 ,0, 0, 0, 0, 400)
r_pos=nil
r_pos={[1]=0,[2]=0,[3]=0,[4]=0,[5]=0,[6]=0,[7]=0,[8]=0,[9]=0,[10]=0,[11]=0,[12]=0}
end
toggleControl(who,"enter_exit",true)
setVehicleDamageProof(getPedOccupiedVehicle(who),false)
-- destroyElement(r_car)
end
addEventHandler("s_finish",getRootElement(),f_finish)
function f_join(thePlayer)
if(isElementWithinMarker(thePlayer,r_startM))then
if(r_join[thePlayer]~=1)then
if(isPedInVehicle(thePlayer))then
r_veh=getPedOccupiedVehicle(thePlayer)
if(getVehicleType(r_veh)=="Automobile")and(r_player<5)then
r_player=r_player+1
r_finished=r_player
r_join[thePlayer]=1
r_vote[thePlayer]=1
r_join2[r_player]=thePlayer
removePedFromVehicle(thePlayer)
setElementPosition(r_veh,r_markerposX,(r_markerposY-15)+(6*r_player),r_markerposZ)
setElementRotation(r_veh,0,0,90)
setElementVelocity(r_veh,0,0,0)
warpPedIntoVehicle(thePlayer,r_veh)
-- r_car=createVehicle(r_vehtype,r_markerposX,r_markerposY,r_markerposZ,0,0,90)
setVehicleDamageProof(r_veh,true)
setVehiclePlateText(r_veh,r_vehplate)
setVehicleEngineState(r_veh,false)
toggleControl(thePlayer,"enter_exit",false)
triggerClientEvent(getRootElement(),"g_start",thePlayer,thePlayer)
triggerClientEvent(thePlayer,"g_show",thePlayer)
end
end
end
else
outputChatBox("You must enter the race marker first!",thePlayer)
end
end
addCommandHandler("join",f_join)