Handling1 = {
{"ونية ساحر هجوله امامي","VINCENT 2332 8100 0.1 0 0 0 79 0.69 0.67 0.733 5 40000 90 130 f p 7.3 0.999 false 35 0.95 0.14 0 0.8 -0.35 0.43 0.3 0 0 19000 0 0 0 3 0"},
{"وزنية يركدون هجوله رباعي","1601.0 2200.0 0.-1 0.0 0.-0 -0.05 -70 0.30 0.8 0.70 5 260.0 33.0 33.0 F P 5.4 0.90 1 50.0 0.85 0.14 0.0 0.40 -0.14 0.5 0.0 0.26 0.00 19000 0 0 0 3 0"},
{"وزنية صهيب هجوله امامي","VINCENT 2222 8164 0.1 0 0 -0.176 70 0.65 0.8 0.72 3 91919 76 16 f p 7.1 0.988 false 45 0.95 0.14 0 0.8 -0.23 0.41 0 0 0 19000 0 0 0 3 0"},
{"وزنية جنرز هجوله امامي","VINCENT 2222 7204 0.1 0 0 -0.35 80 0.64 0.85 0.76 5 200000 59 90 f p 7.1 0.988 false 35 0.95 0.14 0.5 0.8 -0.25 0.45 0.9 0 0 19000 0 8400 0 3 0"},
{"وزنية ميمو هجوله امامي","VINCENT 2222 6200 0.1 0 0 -0.05 70 0.63 0.82 0.78 5 40000 60 90 f p 5.4 0.999 false 35 0.95 0.14 0 0.8 -0.3 0.45 0.3 0 0 19000 0 0 0 3 0"},
{"وزنية جنون هجوله امامي","VINCENT 2222 6200 0.1 0 0 -0.05 70 0.84 0.82 0.73 5 40000 100 90 f p 5.4 0.999 false 35 0.95 0.14 0 0.8 -0.3 0.5 0.3 0 0 19000 0 0 0 3 0"},
{"وزنية فورد هجوله رباعي ","VINCENT 2222 7200 0.1 0 0 -0.05 79 0.71 0.8 0.72 5 79000 59 70 f p 5.4 0.988 false 35 0.95 0.14 0 0.6 -0.2 0.4 0.2 0 0 19000 0 8400 0 3 0"},
{"وزنية حسحس هجوله امامي","VINCENT 2222 6200 0.1 0 0 -0.05 70 0.63 0.82 0.78 5 40000 60 90 f p 5.4 0.999 false 35 0.95 0.14 0 0.8 -0.3 0.45 0.3 0 0 19000 0 0 0 3 0"},
{"وزنية ايهم هجوله امامي","VINCENT 2222 6200 0.1 0 0 -0.05 70 0.63 0.82 0.73 5 40000 60 90 f p 5.4 0.999 false 35 0.95 0.14 0 0.8 -0.3 0.45 0.3 0 0 19000 0 0 0 3 0"},
{"وزنية امبيه هجوله رباعي","VINCENT 100000 780000 0.1 0 0 -0.6 70 0.79 1.1 0.54 5 200000 100000 16 4 p 2 0.9 false 79 0.95 0.14 0 0.8 -0.25 0.5 0.35 0 0 19000 0 0 0 3 0"},
{"وزنية هاني هجوله امامي","VINCENT 2332 8100 0.1 0 0 -0.433 79 0.69 0.81 0.733 5 97029 99 130 f p 7.3 0.999 false 35 0.95 0.14 0 0.8 -0.35 0.43 0.3 0 0 19000 0 0 0 3 0"},
{"وزنية شكور هجوله رباعي","VINCENT 100000 200000 0.1 0 0 -0.05 70 0.5 0.8 0.7 3 999 9999 1000 4 p 5.4 0.9 false 90 0.95 0.14 0 0.8 -0.3 0.6 0.3 0 0 19000 0 0 0 3 0"},
{"وزنية طلال هجوله رباعي","VINCENT 1600 2200 0.1 0 0 -0.05 70 0.46 0.8 0.7 5 20000 20000 16 4 p 5.4 0.13 false 45 0.95 0.14 0 0.8 -0.33 0.5 0.3 0 0 19000 0 0 0 3 0"},
{"وزنية شكور هجوله امامي","VINCENT 100000 200000 0.1 0 0 -0.05 70 0.63 0.82 0.73 5 40000 60 90 f p 5.4 0.999 false 43 0.95 0.14 0 0.8 -0.3 0.45 0.3 0 0 19000 0 400000 0 3 0"},
{"وزنية شايب هجوله رباعي","VINCENT 100000 600000 0.1 0 0 -0.6 70 0.79 1 0.547 5 200000 100000 16 4 p 2 0.9 false 79 1 25.79 0 0.8 -0.25 0.5 0.35 0 0 19000 0 0 0 3 0"},
{"وزنية ابو سعيد هجوله رباعي","VINCENT 1601 2200 2.2 0 0 -0.05 75 0.3 0.8 0.7 5 260 33 33 4 p 5.4 0.9 false 50 0.85 0.14 0 0.4 -0.14 0.5 0 0.26 0 19000 0 0 0 3 0"},
{"وزنية فهوودي هجوله امامي","VINCENT 2222 9777 0.1 0 0 -0.36 79 0.65 0.8 0.72 5 79079 59 90 f p 5.4 0.988 false 35 0.95 0.14 0 1.1 -0.4 0.4 0.2 0 0 19000 0 8400 0 3 0"},
{"وزنية بانك هجوله رباعي","VINCENT 100000 1000000 0.1 0 0 -0.8 70 1 1.15 0.524 5 200000 100000 16 4 p 2 0.9 false 90 0.95 0.14 0 0.8 -0.25 0.5 0.35 0 0 19000 0 0 0 3 0"},
{"وزنية عبود هجوله امامي","VINCENT 2222 9777 0.1 0 0 -0.36 79 0.65 0.8 0.72 5 79079 59 90 f p 5.4 0.988 false 35 0.95 0.14 0 1.1 -0.4 0.45 0.2 0 0 19000 0 8400 0 3 0"},
{"وزنية تاز هجوله امامي","VINCENT 2222 8164 0.1 0 0 -0.176 79 0.63 0.8 0.72 5 79079 59 90 f p 7.1 0.988 false 35 0.95 0.14 0 0.853 -0.32 0.42 0.1 0 0 19000 0 8400 0 3 0"},
{"وزنية كوريد هجوله رباعي","VINCENT 1600 2200 0.1 0 0 -0.05 70 0.5 0.8 0.7 5 180 200 16 4 p 5.4 0.9 false 45 0.95 0.14 0 0.8 -0.4 0.5 0.4 0 0 19000 0 0 0 3 0"},
{"وزنية مطنوخ هجوله امامي","VINCENT 2222 7200 0.1 0 0 -0.05 79 0.71 0.8 0.72 5 79000 59 70 f p 5.4 0.988 false 35 0.95 0.14 0 0.6 -0.2 0.4 0.2 0 0 19000 0 8400 0 3 0"},
{"وزنية كريزما هجوله رباعي","VINCENT 100000 710000 0.1 0 0 -0.6 70 0.89 1.089 0.537 5 200000 100000 16 4 p 2 0.9 false 90 1 25.79 0 0.8 -0.25 0.5 0.35 0 0 19000 0 0 0 3 0"},
{"وزنية جنرز هجوله رباعي","VINCENT 100000 780000 0.1 0 0 -0.6 70 0.79 1.1 0.54 5 200000 100000 16 4 p 2 0.9 false 79 0.95 0.14 0 0.8 -0.25 0.5 0.35 0 0 19000 0 0 0 3 0"},
{"وزنية نيمار هجوله امامي","VINCENT 2222 6200 0.1 0 0 -0.05 70 0.63 0.82 0.78 5 40000 60 90 f p 5.4 0.999 false 35 0.95 0.14 0 0.8 -0.3 0.45 0.3 0 0 19000 0 0 0 3 0"},
{"وزنية راكان هجوله امامي","VINCENT 2222 6200 0.1 0 0 -0.176 79 0.65 0.8 0.72 5 79079 59 90 f p 7.1 0.988 false 35 0.95 0.14 0 0.853 -0.32 0.42 0.1 0 0 19000 0 8400 0 3 0"},
{"وزنية خلوودي هجوله امامي","VINCENT 1600 4000 2.2 0 0 -0.2 99 0.55 0.75 0.6 5 9999 40 10 4 p 999 0.1 false 55 0.7 0.08 0 0.3 -0.1 0.45 0.3 0.2 0 19000 0 400000 0 3 0"},
{"وزنية بايسن هجوله رباعي","VINCENT 1600 2200 0.1 0 0 -0.9 70 0.46 0.8 0.7 5 50000 30000 280 4 p 5.4 0.13 false 55 0.95 0.14 0 0.8 -0.5 0.5 0 0 0 19000 0 0 0 3 0"},
{"وزنية هدرز هجوله رباعي","VINCENT 1600 4000 2.2 0 0 -0.2 99 0.55 0.75 0.6 5 9999 40 10 4 p 999 0.1 false 55 0.7 0.08 0 0.3 -0.1 0.45 0.3 0.2 0 19000 0 400000 0 3 0"},
{"وزنية شطحه هجوله رباعي","VINCENT 1600 2200 0.1 0 0 -0.05 70 0.5 0.8 0.7 1 10999 10999 1 4 d 5.4 0.9 false 45 0.95 0.14 0 0.8 -0.1 0.5 0.4 0 0 19000 0 0 0 3 0"},
{"وزنية عبادي هجوله امامي","BANSHEE 2332 8100 0.1 0 0 -0.433 79 0.69 0.81 0.733 5 97029 99 130 f p 7.3 0.999 false 35 0.95 0.14 0 0.8 -0.35 0.43 0.3 0 0 45000 0 0 1 1 1"},
{"وزنية جوكر هجوله رباعي","VINCENT 100000 100000 1 0 -0.4 0 75 0.75 0.65 0.58 5 300 400 90 4 p 100 0.53 false 67 0.5 0.12 0 0.28 -0.1 0.33 0 0.2 0 19000 40000000 10200008 0 3 0"},
{"وزنية شطوف هجوله رباعي","VINCENT 99999 99999 0.1 0 0 -0.05 70 0.9 0.7 0.8 5 99999 99 14 f p 5.4 0 false 70 0.95 0.14 0 0.8 -0.2 0.5 0.99 0 0 19000 0 0 0 3 0"},
{"وزنية بنق هجوله امامي","JESTER 2222 6200 0.1 0 0 -0.05 70 0.63 0.82 0.73 5 40000 60 90 f d 5.4 0.999 false 35 0.95 0.14 0 0.6 -0.3 0.45 0.3 0 0 35000 0 0 1 1 1"},
{"وزنية ابو داحم درفت خلفي","VINCENT 20000 60000 2.5 0 0 -0.2 80 0.6 0.89 0.45 5 1600 30 25 r p 5.4 0.45 false 55 1 0.05 0 0.6 -0.25 0.5 0.3 0.44 0 19000 20 4404 0 3 0"},
{"وزنية حسحس درفت خلفي","JESTER 99999 99999 0 0 0 -0.05 2 0.65 0.7 0.38 5 280 40 20 r d 4 0.5 false 35 1 1 1 0.5 -0.25 0.48 0.8 0.26 0 35000 202040 100004 1 1 1"},
{"وزنية بنق درفت خلفي","JESTER 1600 2200 2 0 0 -0.9 70 0.5 0.8 0.7 5 9000 2000 500 4 p 5.4 0.9 false 40 0.85 0.14 0 0.4 -0.14 0.5 0 0.26 0 35000 0 0 1 1 1"},
}
Handling2 = {
{"وزنية تطعيس ","1400 2725.3 0 0 0 -0.25 70 0.7 0.8 0.5 5 2500 15 0.2 R P 52 0.52 0 30 1.2 0.5 0 0.25 -0.1 0.5 0.4 0.37 0.045 95000 40002004 C04000 1 1 1"},
{"وزنية تطعيس","JESTER 5000 20000 3 0 0 -0.9 80 0.65 0.85 0.55 5 130 60 30 4 p 7 0.45 false 60 1.5 0.07 0 0.7 -0.6 0.5 0.3 0.44 0 35000 28 1300045 1 1 1"},
}
Handling3 = {
{"وزنية تفجير","JESTER 8000 2200 2 0 0 -0.05 70 0.4 0.3 0.5 5 220 33 16 4 p 5.4 0.9 false 40 0.85 0.3 0 0.7 -0.21 0.4 0 0.26 0 35000 0 0 1 1 1"},
{"وزنية تفجير","JESTER 1601 2200 1.8 0 0 -0.05 70 0.5 0.8 0.7 5 220 33 16 r p 5.4 0.9 false 40 0.85 0.14 0 0.4 -0.1 0.3 0 0.26 0 35000 0 0 1 1 1"},
{"وزنية تفجير","MOONBEAM 20000 22000 0.1 0 0 -0.05 70 0.7 0.6 0.9 5 300 33 16 f p 5.4 0.13 false 45 0.95 0.14 0 0.5 -0.3 0.3 0 0 0 16000 0 0 1 3 0"},
{"وزنية تفجير","MOONBEAM 20000 2200 0.1 0 0 -0.05 70 0.7 0.6 0.9 5 300 33 16 f p 5.4 0.13 false 45 0.95 0.14 0 0.5 -0.3 0.3 0 0 0 16000 0 0 1 3 0"},
{"وزنية تفجير","MOONBEAM 20000 22000 0.1 0 0 -0.05 70 0.7 0.6 0.9 5 3000 3300 16 4 p 5.4 0.13 false 45 0.95 0.14 0 0.5 -0.3 0.3 0 0 0 16000 0 0 1 3 0"},
}
Handling4 = {
{"وزنية ارتفاع السياره فوق","MOONBEAM 1 999999 3 0 0.05 -0.2 75 0.9 1 1 5 200000 100000 44 4 p 0.534 0.45 false 90 0.65 0.07 0 0.15 -50 0.5 0.3 0.25 0 16000 40292800 0 1 3 0"},
}
HajwalaWnd = guiCreateWindow(0.38, 0.13, 0.24, 0.56, "وزنيات الهجولة", true)
guiWindowSetSizable(HajwalaWnd, false)
guiSetProperty(HajwalaWnd, "CaptionColour", "FFFED100")
guiSetVisible(HajwalaWnd,false)
grid_haj = guiCreateGridList(0.03, 0.05, 0.93, 0.78, true, HajwalaWnd)
guiGridListAddColumn(grid_haj, "#", 0.9)
ok = guiCreateButton(0.06, 0.85, 0.87, 0.06, "x[ تطبيق الوزنية ]x", true, HajwalaWnd)
guiSetProperty(ok, "NormalTextColour", "FFFED100")
Tt3esWnd = guiCreateWindow(0.38, 0.13, 0.24, 0.56, "وزنيات تطعيس", true)
guiWindowSetSizable(Tt3esWnd, false)
guiSetProperty(Tt3esWnd, "CaptionColour", "FFFED100")
guiSetVisible(Tt3esWnd,false)
grid_63s = guiCreateGridList(0.03, 0.05, 0.93, 0.78, true, Tt3esWnd)
guiGridListAddColumn(grid_63s, "#", 0.9)
ok1 = guiCreateButton(0.06, 0.85, 0.87, 0.06, "x[ تطبيق الوزنية ]x", true, Tt3esWnd)
guiSetProperty(ok1, "NormalTextColour", "FFFED100")
TfjerWnd = guiCreateWindow(0.38, 0.13, 0.24, 0.56, "وزنيات تفجير", true)
guiWindowSetSizable(TfjerWnd, false)
guiSetProperty(TfjerWnd, "CaptionColour", "FFFED100")
guiSetVisible(TfjerWnd,false)
grid_tfg = guiCreateGridList(0.03, 0.05, 0.93, 0.78, true, TfjerWnd)
guiGridListAddColumn(grid_tfg, "#", 0.9)
ok2 = guiCreateButton(0.06, 0.85, 0.87, 0.06, "x[ تطبيق الوزنية ]x", true, TfjerWnd)
guiSetProperty(ok2, "NormalTextColour", "FFFED100")
guiSetVisible(TfjerWnd,false)
MoreWnd = guiCreateWindow(0.38, 0.13, 0.24, 0.56, "منـوعات", true)
guiWindowSetSizable(MoreWnd, false)
guiSetProperty(MoreWnd, "CaptionColour", "FFFED100")
guiSetVisible(MoreWnd,false)
grid_mno3 = guiCreateGridList(0.03, 0.05, 0.93, 0.78, true, MoreWnd)
guiGridListAddColumn(grid_mno3, "#", 0.9)
ok3 = guiCreateButton(0.06, 0.85, 0.87, 0.06, "x[ تطبيق الوزنية ]x", true, MoreWnd)
guiSetProperty(ok3, "NormalTextColour", "FFFED100")
wnd = guiCreateWindow(0.21, 0.00, 0.58, 0.13, "وزنيات السيرفر", true)
guiWindowSetSizable(wnd, false)
guiSetProperty(wnd, "CaptionColour", "FFFED100")
guiSetVisible(wnd,false)
btn_haj = guiCreateButton(0.01, 0.32, 0.23, 0.37, "وزنيات هجولة", true, wnd)
guiSetProperty(btn_haj, "NormalTextColour", "FFFED100")
btn_63s = guiCreateButton(0.26, 0.32, 0.23, 0.37, "وزنيات تطعيس", true, wnd)
guiSetProperty(btn_63s, "NormalTextColour", "FFFED100")
btn_tfger = guiCreateButton(0.51, 0.32, 0.23, 0.37, "وزنيات تفجير", true, wnd)
guiSetProperty(btn_tfger, "NormalTextColour", "FFFED100")
btn_mno3at = guiCreateButton(0.75, 0.32, 0.23, 0.37, "وزنيات منوعة", true, wnd)
guiSetProperty(btn_mno3at, "NormalTextColour", "FFFED100")
Flaver = guiCreateLabel(0.01, 0.75, 0.98, 0.15, "Welcome to the server | مرحبــا بـــكم فــي الســيرفـــر", true, wnd)
guiLabelSetColor(Flaver, 0, 253, 227)
addEventHandler("onClientGUIClick",root,
function()
if source == btn_haj then
guiSetVisible(HajwalaWnd,true)
guiSetVisible(TfjerWnd,false)
guiSetVisible(Tt3esWnd,false)
guiSetVisible(MoreWnd,false)
showCursor(true)
guiSetEnabled(btn_63s,true)
guiSetEnabled(btn_tfger,true)
guiSetEnabled(btn_mno3at,true)
guiSetEnabled(btn_haj,false)
elseif source == btn_63s then
guiSetVisible(Tt3esWnd,true)
guiSetVisible(HajwalaWnd,false)
guiSetVisible(TfjerWnd,false)
guiSetVisible(MoreWnd,false)
showCursor(true)
guiSetEnabled(btn_63s,false)
guiSetEnabled(btn_tfger,true)
guiSetEnabled(btn_mno3at,true)
guiSetEnabled(btn_haj,true)
elseif source == btn_tfger then
guiSetVisible(Tt3esWnd,true)
guiSetVisible(HajwalaWnd,false)
guiSetVisible(TfjerWnd,true)
guiSetVisible(Tt3esWnd,false)
guiSetVisible(MoreWnd,false)
showCursor(true)
guiSetEnabled(btn_63s,true)
guiSetEnabled(btn_tfger,false)
guiSetEnabled(btn_mno3at,true)
guiSetEnabled(btn_haj,true)
elseif source == btn_mno3at then
guiSetVisible(HajwalaWnd,false)
guiSetVisible(TfjerWnd,false)
guiSetVisible(Tt3esWnd,false)
guiSetVisible(MoreWnd,true)
guiSetVisible(MoreWnd,true)
showCursor(true)
guiSetEnabled(btn_63s,true)
guiSetEnabled(btn_tfger,true)
guiSetEnabled(btn_mno3at,false)
guiSetEnabled(btn_haj,true)
end end )
open = function()
guiSetVisible( wnd, not guiGetVisible( wnd ) )
showCursor( guiGetVisible( wnd ) )
guiSetVisible(HajwalaWnd,false)
guiSetVisible(TfjerWnd,false)
guiSetVisible(Tt3esWnd,false)
guiSetVisible(MoreWnd,false)
end
bindKey('x','down',open)
setTimer(function ()
guiSetVisible(Flaver,not guiGetVisible(Flaver))
end,1000, 0)
----------------------
for i,ha in ipairs(Handling1) do
local row = guiGridListAddRow(grid_haj)
guiGridListSetItemText(grid_haj,row,1,''..i..'-',false,false)
guiGridListSetItemText(grid_haj,row,2,ha[1],false,false)
guiGridListSetItemData(grid_haj,row,1,{ha[2],ha[3],ha[4]})
setTimer(function()
guiGridListSetItemColor(grid_haj,row,1,math.random ( 0, 255),math.random ( 0, 255 ),math.random ( 0, 255 ))
guiGridListSetItemColor(grid_haj,row,2,math.random ( 0, 255),math.random ( 0, 255 ),math.random ( 0, 255 ))
end,1000,0,true)
end
for i,ha in ipairs(Handling2) do
local row = guiGridListAddRow(grid_63s)
guiGridListSetItemText(grid_63s,row,1,''..i..'-',false,false)
guiGridListSetItemText(grid_63s,row,2,ha[1],false,false)
guiGridListSetItemData(grid_63s,row,1,{ha[2],ha[3],ha[4]})
setTimer(function()
guiGridListSetItemColor(grid_63s,row,1,math.random ( 0, 255),math.random ( 0, 255 ),math.random ( 0, 255 ))
guiGridListSetItemColor(grid_63s,row,2,math.random ( 0, 255),math.random ( 0, 255 ),math.random ( 0, 255 ))
end,1000,0,true)
end
for i,ha in ipairs(Handling3) do
local row = guiGridListAddRow(grid_tfg)
guiGridListSetItemText(grid_tfg,row,1,''..i..'-',false,false)
guiGridListSetItemText(grid_tfg,row,2,ha[1],false,false)
guiGridListSetItemData(grid_tfg,row,1,{ha[2],ha[3],ha[4]})
setTimer(function()
guiGridListSetItemColor(grid_tfg,row,1,math.random ( 0, 255),math.random ( 0, 255 ),math.random ( 0, 255 ))
guiGridListSetItemColor(grid_tfg,row,2,math.random ( 0, 255),math.random ( 0, 255 ),math.random ( 0, 255 ))
end,1000,0,true)
end
for i,ha in ipairs(Handling4) do
local row = guiGridListAddRow(grid_mno3)
guiGridListSetItemText(grid_mno3,row,1,''..i..'-',false,false)
guiGridListSetItemText(grid_mno3,row,2,ha[1],false,false)
guiGridListSetItemData(grid_mno3,row,1,{ha[2],ha[3],ha[4]})
setTimer(function()
guiGridListSetItemColor(grid_mno3,row,1,math.random ( 0, 255),math.random ( 0, 255 ),math.random ( 0, 255 ))
guiGridListSetItemColor(grid_mno3,row,2,math.random ( 0, 255),math.random ( 0, 255 ),math.random ( 0, 255 ))
end,1000,0,true)
end
----------
addEventHandler("onClientGUIClick",root,
function ()
local sel = guiGridListGetSelectedItem(grid_haj)
if source == ok then
if sel ~= -1 then
if not isPedInVehicle(localPlayer) then return outputChatBox("ليس لديك سيارة لتطبيق الوزنية",255,0,0,true) end;
local hand = unpack(guiGridListGetItemData(grid_haj,sel,1))
importHandling(getPedOccupiedVehicle(localPlayer), hand, "SA")
setTimer(function()
guiSetVisible (wnd, false)
end,900,1,true)
outputChatBox(" تم تركيب الوزنية بنجاح ",255,255,0)
else
outputChatBox(" الرجاء اختيار وزنية ",255,255,0)
end
end
end
)
addEventHandler("onClientGUIClick",root,
function ()
local sel = guiGridListGetSelectedItem(grid_63s)
if source == ok1 then
if sel ~= -1 then
if not isPedInVehicle(localPlayer) then return outputChatBox("ليس لديك سيارة لتطبيق الوزنية",255,0,0,true) end;
local hand = unpack(guiGridListGetItemData(grid_63s,sel,1))
importHandling(getPedOccupiedVehicle(localPlayer), hand, "SA")
setTimer(function()
guiSetVisible (wnd, false)
end,900,1,true)
outputChatBox(" تم تركيب الوزنية بنجاح ",255,255,0)
else
outputChatBox(" الرجاء اختيار وزنية ",255,255,0)
end
end
end
)
addEventHandler("onClientGUIClick",root,
function ()
local sel = guiGridListGetSelectedItem(grid_tfg)
if source == ok2 then
if sel ~= -1 then
if not isPedInVehicle(localPlayer) then return outputChatBox("ليس لديك سيارة لتطبيق الوزنية",255,0,0,true) end;
local hand = unpack(guiGridListGetItemData(grid_tfg,sel,1))
importHandling(getPedOccupiedVehicle(localPlayer), hand, "SA")
setTimer(function()
guiSetVisible (wnd, false)
end,900,1,true)
outputChatBox(" تم تركيب الوزنية بنجاح ",255,255,0)
else
outputChatBox(" الرجاء اختيار وزنية ",255,255,0)
end
end
end
)
addEventHandler("onClientGUIClick",root,
function ()
local sel = guiGridListGetSelectedItem(grid_mno3)
if source == ok3 then
if sel ~= -1 then
if not isPedInVehicle(localPlayer) then return outputChatBox("ليس لديك سيارة لتطبيق الوزنية",255,0,0,true) end;
local hand = unpack(guiGridListGetItemData(grid_mno3,sel,1))
importHandling(getPedOccupiedVehicle(localPlayer), hand, "SA")
setTimer(function()
guiSetVisible (wnd, false)
end,900,1,true)
outputChatBox(" تم تركيب الوزنية بنجاح ",255,255,0)
else
outputChatBox(" الرجاء اختيار وزنية ",255,255,0)
end
end
end
)
SERVER----------
function getResourceHandlingList ( resource )
resource = validateResourcePointer ( resource )
if not resource then
if DEBUGMODE then
error ( "Invalid resource at getResourceHandlingList!", 2 )
end
return false
end
--[[local list = {}
local handlingXML = xmlLoadFile ( ":"..resource.."/handling.xml" )
if not handlingXML then
outputDebugString ( "Resource "..resource.." has no handling XML!" )
return false
end
for _,node in ipairs ( xmlNodeGetChildren ( handlingXML ) ) do
local model = tonumber ( xmlNodeGetName ( node ) )
list[model] = {}
for property,value in pairs ( xmlNodeGetAttributes ( node ) ) do
list[model][property] = value
end
end]]
return list
end
function saveHandlingToResource ( vehicle, resource, model )
if not isValidVehicle ( vehicle ) then
if DEBUGMODE then
error ( "Invalid vehicle '"..tostring(vehicle).."' at saveHandlingToResource!", 2 )
end
return false
end
resource = validateResourcePointer ( resource )
if not resource then
if DEBUGMODE then
error ( "Invalid resource at saveHandlingToResource!", 2 )
end
return false
end
if not isValidVehicleModel ( model ) then
if DEBUGMODE then
error ( "Invalid model '"..tostring(model).."' at saveHandlingToResource!", 2 )
end
return false
end
if clientside then
local function trigger ( )
return triggerServerEvent ( "saveToResource", localPlayer, vehicle, resource, model )
end
if xmlCache.resourcesaves[resource] and xmlCache.resourcesaves[resource][model] then
guiCreateWarningMessage ( text.askToReplace, 2, {trigger} )
return true
end
trigger ( )
return true
end
if not fileExists ( ":"..resource.."/handling.lua" ) then
local loader = fileCreate ( ":"..resource.."/handling.lua" )
local copyfile = fileOpen ( "utils/resource_handlingloader" )
local copybuffer = fileRead ( copyfile, fileGetSize ( copyfile ) )
fileWrite ( loader, copybuffer )
fileClose ( loader )
fileClose ( copyfile )
outputDebugString ( "Created new handling loader script for resource '"..resource.."'" )
end
local resourceMeta = xmlLoadFile ( ":"..resource.."/meta.xml" )
local entryFound = false
for _,node in ipairs ( xmlNodeGetChildren ( resourceMeta ) ) do
if xmlNodeGetName ( node ) == "script" then
if xmlNodeGetAttribute ( node, "src" ) == "handling.lua" then
entryFound = true
if xmlNodeGetAttribute ( node, "type" ) ~= "server" then
xmlNodeSetAttribute ( node, "type", "server" )
end
break
end
end
end
if not entryFound then
local node = xmlCreateChild ( resourceMeta, "script" )
xmlNodeSetAttribute ( node, "src", "handling.lua" )
xmlNodeSetAttribute ( node, "type", "server" )
outputDebugString ( "Added meta.xml entry for the handling loader script in resource '"..resource.."'" )
end
xmlSaveFile ( resourceMeta )
xmlUnloadFile ( resourceMeta )
local handlingXML = xmlLoadFile ( ":"..resource.."/handling.xml" )
if not handlingXML then
handlingXML = xmlCreateFile ( ":"..resource.."/handling.xml", "root" )
outputDebugString ( "Created new handling file for resource '"..resource.."'" )
end
local xmlEntry = xmlFindChild ( handlingXML, tostring ( model ), 0 )
if not xmlEntry then
xmlEntry = xmlCreateChild ( handlingXML, tostring ( model ) )
end
for property,value in pairs ( getVehicleHandling ( vehicle ) ) do
xmlNodeSetAttribute ( xmlEntry, property, value )
end
xmlSaveFile ( handlingXML )
xmlUnloadFile ( handlingXML )
return true
end
if serverside then
addEvent ( "saveToResource", true )
addEventHandler ( "saveToResource", root, saveHandlingToResource )
end
function loadHandlingFromResource ( vehicle, resource, model )
if not isValidVehicle ( vehicle ) then
return false
end
resource = validateResourcePointer ( resource )
if not resource then
return false
end
if not isValidVehicleModel ( model ) then
return false
end
if clientside then
local function trigger ( )
return triggerServerEvent ( "loadFromResource", root, vehicle, resource, model )
end
if not isVehicleSaved ( vehicle ) then
guiCreateWarningMessage ( "text.askToLoad", 2, {trigger} )
return true
end
trigger ( )
return true
end
local handlingXML = xmlLoadFile ( ":"..resource.."/handling.xml" )
if not handlingXML then
outputDebugString ( "Can't retrieve resource handling as it has no handling file at 'loadHandlingFromResource'! ["..resource.."]", 2 )
return false
end
local xmlEntry = xmlFindChild ( handlingXML, tostring ( model ), 0 )
if not xmlEntry then
outputDebugString ( "There's no handling for model "..tostring(model).." in resource "..resource.." at 'loadHandlingFromResource'!", 2 )
return false
end
local handlingTable = {}
for property,value in pairs ( xmlNodeGetAttributes ( xmlEntry ) ) do
handlingTable[property] = stringToValue ( property, value )
end
loadHandlingTable ( handlingTable )
return true
end
if serverside then
addEvent ( "loadFromResource", true )
addEventHandler ( "loadFromResource", root, loadHandlingFromResource )
end
function saveHandlingToServer ( player, vehicle, name, description )
if not isValidPlayer ( player ) then
return false
end
if not isValidVehicle ( vehicle ) then
return false
end
if type ( name ) ~= "string" then
return false
end
if type ( description ) ~= "string" then
return false
end
local cache = xmlCache.serversaves[string.lower(name)]
if clientside then
local function trigger ( )
return triggerServerEvent ( "saveToServer", localPlayer, player, vehicle, name, description )
end
if cache then
guiCreateWarningMessage ( text.askToReplace, 2, {trigger} )
end
trigger ( )
return true
end
local handlingXML = xmlGetFile ( server_handling_file )
if not handlingXML then
handlingXML = xmlAddFile ( server_handling_file )
if DEBUGMODE then
outputDebugString ( "Created new server handling file ["..tostring(handlingXML).."]" )
end
end
if cache then
xmlDestroyNode ( cache.node.save )
end
local playerName = getPlayerName ( player )
local vehicleModel = tostring ( getElementModel ( vehicle ) )
local saveNode = xmlCreateChild ( handlingXML, "save" )
local handlingNode = xmlCreateChild ( saveNode, "handling" )
local addCache = {
name = name,
description = description,
player = playerName,
node = {
save = saveNode,
handling = handlingNode
},
handling = {}
}
xmlNodeSetAttribute ( saveNode, "name", name )
xmlNodeSetAttribute ( saveNode, "description", description )
xmlNodeSetAttribute ( saveNode, "player", playerName )
for property,value in pairs ( getVehicleHandling ( vehicle ) ) do
addCache.handling[property] = tostring ( value )
xmlNodeSetAttribute ( handlingNode, property, tostring ( value ) )
end
xmlSaveFile ( handlingXML )
cache = addCache
triggerClientEvent ( player, "updateClientCache", player, "serversaves", string.lower ( name ), addCache )
addLogEntry ( --[[ FILL ME ]] )
return true
end
if serverside then
addEvent ( "saveToServer", true )
addEventHandler ( "saveToServer", root, saveHandlingToServer )
end
function saveHandlingToClient ( vehicle, name, description )
if not isValidVehicle ( vehicle ) then
return false
end
local handlingXML = xmlGetFile ( client_handling_file )
if not handlingXML then
handlingXML = xmlAddFile ( client_handling_file )
if DEBUGMODE then
outputDebugString ( "Created new client handling file ["..tostring(handlingXML).."]" )
end
end
local cache = xmlCache.clientsaves[string.lower(name)]
local text = language[setting.language]
--------------------------------------------------
local function save ( )
local vehicleModel = tostring ( getElementModel ( vehicle ) ) -- MODEL NEEDED? its included with the handling!
local saveNode = xmlCreateChild ( handlingXML, "save" )
local handlingNode = xmlCreateChild ( saveNode, "handling" )
cache = {
model = vehicleModel,
name = name,
description = description,
node = {
save = saveNode,
handling = handlingNode
},
handling = {}
}
xmlNodeSetAttribute ( saveNode, "model", vehicleModel )
xmlNodeSetAttribute ( saveNode, "name", name )
xmlNodeSetAttribute ( saveNode, "description", description )
for property,value in pairs ( getVehicleHandling ( vehicle ) ) do
cache.handling[property] = tostring ( value )
xmlNodeSetAttribute ( handlingNode, property, tostring ( value ) )
end
xmlSaveFile ( handlingXML )
outputHandlingLog ( text.succesSavedClient )
showMenu ( previousMenu )
return true
end
--------------------------------------------------
if cache then
local function func ( )
xmlDestroyNode ( cache.node.save )
save ( )
end
guiCreateWarningMessage ( text.askToReplace, 2, {func} )
return true
end
save ( )
return true
end
function loadHandlingFromClient ( vehicle, lowerCaseName )
loadHandling ( vehicle, lowerCaseName, "clientsaves" )
return
end
function loadHandlingFromServer ( vehicle, lowerCaseName )
loadHandling ( vehicle, lowerCaseName, "serversaves" )
return
end
function loadHandling ( vehicle, lowerCaseName, cacheLib )
if not isValidVehicle ( vehicle ) then
return false
end
local cache = xmlCache[cachelib][lowerCaseName]
if not cache then
outputHandlingLog ( "unexisting save" )
return false
end
local function hndload ( )
loadHandlingTable ( vehicle, cache.handling )
showMenu ( previousMenu )
end
if not isSaved ( vehicle ) then
guiCreateWarningMessage ( text.askToLoad, 2, {hndload} )
return true
end
hndload ( )
end
function shareHandlingWithPlayer ( senderPlayer, targetPlayer, vehicle )
if not isValidPlayer ( senderPlayer ) then
return false
end
if not isValidPlayer ( targetPlayer ) then
return false
end
if not isValidVehicle ( vehicle ) then
return false
end
if clientside then
triggerServerEvent ( "shareHandling", localPlayer, senderPlayer, targetPlayer, vehicle )
--guiCreateWarningMessage ( "string to replace | send your handling to player "..getPlayerName ( targetPlayer ) )
return true
end
triggerClientEvent ( targetPlayer, "receiveHandling", targetPlayer, senderPlayer, vehicle )
return true
end
if serverside then
addEvent ( "shareHandling", true )
addEventHandler ( "shareHandling", root, shareHandlingWithPlayer )
end
function receiveSharedHandling ( senderPlayer, vehicle )
outputDebugString ( "Recieved handling from "..getPlayerName ( senderPlayer ).." :D" )
return true
end
addEvent ( "receiveHandling", true )
addEventHandler ( "receiveHandling", root, receiveSharedHandling )
--[[function guiSetTemplate ( template, default )
if not guiTemplate[template] then
outputHandlingLog ( "unexisting template" )
return false
end
if getUserConfig ( "template" ) == template then
outputHandlingLog ( "changed template" )
if default then
setUserConfig ( "template", template )
end
end
guiSetVisible ( resourceGUI.window.element, true )
return true
end
function guiSetLanguage ( lang, default )
if not language[lang] then
outputHandlingLog ( "unexisting language" )
return false
end
for k,v in pairs ( elementGUI ) do
local text
if language[lang] and language[lang][v.parent] and language[lang][v.parent][v.child] then
text = language[lang][v.parent][v.child]
end
outputChatBox ( tostring ( k ) )
if text then
guiSetText ( k, text )
end
end
-- Set HEADER text!
-- Reload menu text
if default then
setUserConfig ( "language", lang )
end
outputHandlingLog ( "changed language" )
return true
end
addCommandHandler ( "lang", function ( ) guiSetLanguage ( "spanish" ) end )]]