Wysłany: 2017-01-14, 14:35
NeroNix
Wiek: 27 Na forum: 3614 dni Posty: 69
Piwa : 1
Witam , mam problem, gdy? mam prace sweepera, kt?ry jest prawie na ka?dym serwerze tak? sam? jak na Its Your World. Liczy ona po 1 kg, a ja chcia?bym zrobi? ?eby liczy?o po 0.01 kg . Jak to zrobi? ?
Za pomoc piwko i respekt
CLIENT:
local czas = getTickCount ()
function speeed ( car )
local a1 , b1 , c1 = getElementVelocity ( car )
local fast = (( a1 ^ 2 + b1 ^ 2 + c1 ^ 2 )^( 0.5 ) * 180 )
return fast
end
local code = "Sweepers" -- kod pracy
tekstury = {
[ 0 ] = true ,
[ 1 ] = true ,
[ 2 ] = true ,
}
function render ( pojazd )
local x , y , z = getElementPosition ( pojazd )
fxAddWaterSplash ( x , y , z - 1.9 )
if ( getTickCount () - czas ) < 6000 then return end
czas = getTickCount ()
--if ( not isVehicleOnGround ( pojazd )) then outputDebugString ( "ground FALSE" ) return end
if speeed ( pojazd ) < 30 then return end
ziemia = getGroundPosition ( x , y , z ) - 0.001
hit , _ , _ , _ , _ , _ , _ , _ , material , _ , target = processLineOfSight ( x , y , z , x , y , ziemia , true , false , true , true , false , true )
if hit == false then
-- outputDebugString ( "HIT FALSE" )
return end
if ( not tekstury [ material ]) then
-- outputDebugString ( "MATERIAL FALSE" )
return end
local smiecie = getElementData ( pojazd , "vehicle:trash" )
local kg = math . random ( 0.8 , 1.2 )
if not getElementData ( localPlayer , "player:premium" ) then
limit = 200
else
limit = 250
end
if smiecie >= limit then return end
setElementData ( pojazd , "vehicle:trash" , smiecie + kg )
setElementData ( pojazd , "vehicle:desc" , "Nape?nienie zbiornika : [" .. smiecie .. " kg]" )
end
local function shit ()
local pojazd = getPedOccupiedVehicle ( localPlayer )
if not pojazd then return end
if not getVehicleEngineState ( pojazd ) then return end
if speeed ( pojazd ) < 4 then
toggleControl ( "brake_reverse" , false )
else
toggleControl ( "brake_reverse" , true )
end
render ( pojazd )
end
addEventHandler ( "onClientVehicleEnter" , resourceRoot ,
function( thePlayer , seat )
if thePlayer == getLocalPlayer () then
if getElementData ( source , "vehicle:job" ) == code then
addEventHandler ( "onClientRender" , root , shit )
end
end
end )
addEventHandler ( "onClientVehicleExit" , resourceRoot ,
function( thePlayer , seat )
if thePlayer == getLocalPlayer () then
if getElementData ( source , "vehicle:job" ) == code then
removeEventHandler ( "onClientRender" , root , shit )
end
end
end )
addEventHandler ( 'onClientResourceStart' , resourceRoot ,
function()
shader = dxCreateShader ( 'shader.fx' )
terrain = dxCreateTexture ( 'sweeper92decal128.png' )
dxSetShaderValue ( shader , 'gTexture' , terrain )
engineApplyShaderToWorldTexture ( shader , 'sweeper92decal128' )
end
)
Server:
local money = 35 -- ile dostajesz za 1 kg
local score = 6 -- Reputacji ile dostajesz
createBlip ( 1362.90 , - 1651.87 , 13.38 , 46 , 2 , 0 , 0 , 0 , 0 , 0 , 275 )
local code = "Sweepers" -- kod pracy
local jobOnline = false -- czy praca w ?? czona
local jobVehicles = { -- pozycj ? pojazd ? w
{ 574 , 1360.75 , - 1661.67 , 13.36 - 0.2 , 0.0 , 360.0 , 267.7 },
{ 574 , 1360.75 , - 1661.67 + 4 , 13.36 - 0.2 , 0.0 , 360.0 , 267.7 },
{ 574 , 1360.75 , - 1661.67 + 8 , 13.36 - 0.2 , 0.0 , 360.0 , 267.7 },
{ 574 , 1360.75 , - 1661.67 + 12 , 13.36 - 0.2 , 0.0 , 360.0 , 267.7 },
{ 574 , 1360.75 , - 1661.67 + 16 , 13.36 - 0.2 , 0.0 , 360.0 , 267.7 },
{ 574 , 1360.75 , - 1661.67 + 20 , 13.36 - 0.2 , 0.0 , 360.0 , 267.7 },
{ 574 , 1360.75 , - 1661.67 + 24 , 13.36 - 0.2 , 0.0 , 360.0 , 267.7 },
{ 574 , 1360.75 , - 1661.67 + 28 , 13.36 - 0.2 , 0.0 , 360.0 , 267.7 },
}
local jobMarker = createMarker ( 1375.67 , - 1632.17 , 13.38 - 0.90 , "corona" , 2.5 , 100 , 50 , 10 )
local text = createElement ( "text" )
setElementData ( text , "name" , "Punkt rozladowania" )
setElementPosition ( text , 1375.67 , - 1632.17 , 13.38 + 0.2 )
for i , v in ipairs ( jobVehicles ) do
local veh = createVehicle ( v [ 1 ], v [ 2 ], v [ 3 ], v [ 4 ], v [ 5 ], v [ 6 ], v [ 7 ])
setVehicleRespawnPosition ( veh , v [ 2 ], v [ 3 ], v [ 4 ], v [ 5 ], v [ 6 ], v [ 7 ])
setElementData ( veh , "vehicle:desc" , "Czyszczenie ulic" )
setElementData ( veh , "vehicle:mileage" , math . random ( 1000 , 50000 ))
setElementData ( veh , "vehicle:fuel" , 100 )
setElementData ( veh , "vehicle:job" , code )
setVehicleDamageProof ( veh , true )
toggleVehicleRespawn ( veh , true )
setVehicleIdleRespawnDelay ( veh , 10000 )
setElementFrozen ( veh , true )
removeVehicleSirens ( veh )
addVehicleSirens ( veh , 2 , 2 , true , true , false , true )
setVehicleSirens ( veh , 1 , - 0.3 , 0.4 , 1.3 , 255 , 255 , 0 , 104.6 , 91.8 )
setVehicleSirens ( veh , 2 , 0.3 , 0.4 , 1.3 , 255 , 255 , 0 , 104.6 , 91.8 )
end
addEventHandler ( "onVehicleStartEnter" , resourceRoot , function( plr , seat )
if seat ~= 0 then return end
if jobOnline == false then
outputChatBox ( "* Praca jest wy??czona." , plr , 255 , 0 , 0 )
cancelEvent ()
return
end
if getElementData ( plr , "player:job" ) then
outputChatBox ( "* Posiadasz aktywn? prac?!" , plr , 255 , 0 , 0 )
cancelEvent ()
return
end
end )
addEventHandler ( "onVehicleExit" , resourceRoot , function( plr , seat )
if seat ~= 0 then return end
setElementData ( source , "vehicle:desc" , "Czyszczenie ulic" )
setElementData ( plr , "player:job" , false )
toggleControl ( plr , "brake_reverse" , true )
end )
addEventHandler ( "onVehicleEnter" , resourceRoot , function( plr , seat )
if seat ~= 0 then return end
setElementFrozen ( source , false )
setVehicleDamageProof ( source , false )
setElementData ( source , "vehicle:trash" , 0 )
setElementData ( plr , "player:job" , code )
outputChatBox ( "* Rozpocz??e?(a?) prac?!" , plr )
outputChatBox ( "* Posprz?taj ulice miasta!" , plr )
if not getElementData ( plr , "player:premium" ) then
outputChatBox ( "* Pami?taj ?e maksymalne zape?nienie zbiornika to 200 kg!" , plr , 255 , 255 , 255 )
else
outputChatBox ( "* Pami?taj ?e maksymalne zape?nienie zbiornika to 250 kg!" , plr , 255 , 255 , 255 )
end
-- toggleControl ( plr , "brake_reverse" , false )
end )
addEventHandler ( "onVehicleRespawn" , resourceRoot , function()
veh = source
setElementData ( veh , "vehicle:desc" , "Czyszczenie ulic" )
setElementData ( veh , "vehicle:mileage" , math . random ( 1000 , 50000 ))
setElementData ( veh , "vehicle:fuel" , 100 )
setElementData ( veh , "vehicle:job" , code )
setElementData ( source , "vehicle:trash" , 0 )
setElementFrozen ( veh , true )
setVehicleDamageProof ( veh , true )
setVehicleOverrideLights ( veh , 1 )
removeVehicleSirens ( veh )
addVehicleSirens ( veh , 2 , 2 , true , true , false , true )
setVehicleSirens ( veh , 1 , - 0.3 , 0.4 , 1.3 , 255 , 255 , 0 , 104.6 , 91.8 )
setVehicleSirens ( veh , 2 , 0.3 , 0.4 , 1.3 , 255 , 255 , 0 , 104.6 , 91.8 )
end )
addEventHandler ( "onResourceStop" , resourceRoot , function()
for i , v in ipairs ( getElementsByType ( "player" )) do
if getElementData ( v , "player:job" )== code then
setElementData ( v , "player:job" , false )
toggleControl ( v , "brake_reverse" , true )
end
end
end , false , "high" )
function RGBToHex ( red , green , blue , alpha )
if(( red < 0 or red > 255 or green < 0 or green > 255 or blue < 0 or blue > 255 ) or ( alpha and ( alpha < 0 or alpha > 255 ))) then
return nil
end
if( alpha ) then
return string . format ( "#%.2X%.2X%.2X%.2X" , red , green , blue , alpha )
else
return string . format ( "#%.2X%.2X%.2X" , red , green , blue )
end
end
addEventHandler ( "onMarkerHit" , resourceRoot ,function( element , md )
if source ~= jobMarker then return end
local type = getElementType ( element )
if type == "player" then
if not getPedOccupiedVehicle ( element ) then return end
if getElementData ( getPedOccupiedVehicle ( element ), "vehicle:trash" ) and getElementData ( getPedOccupiedVehicle ( element ), "vehicle:trash" ) >= 10 then
local cash = getElementData ( getPedOccupiedVehicle ( element ), "vehicle:trash" )* money
local cash = math . floor ( cash )
local m = cash
local vt = getElementData ( getPedOccupiedVehicle ( element ), "vehicle:trash" )
setElementData ( getPedOccupiedVehicle ( element ), "vehicle:trash" , 0 )
setElementData ( getPedOccupiedVehicle ( element ), "vehicle:desc" , "Czyszczenie ulic" )
if getElementData ( element , "player:premium" ) then
local m = cash * 1.5
local m = math . floor ( m )
outputChatBox ( "[Premium]* Rozladowa?e? zbiornik ?mieci. Wynagrodzenie kt?re dostajesz za " .. vt .. "KG to 1.5x(" .. m .. "PLN) " , element , 0 , 160 , 0 , true )
givePlayerMoney ( element , m )
else
outputChatBox ( "* Rozladowa?e? zbiornik ?mieci. Wynagrodzenie kt?re dostajesz za " .. vt .. "KG 1.5x to " .. m .. "PLN" , element , 0 , 160 , 0 , true )
givePlayerMoney ( element , m )
end
end
end
end )
addEventHandler ( "onElementDestroy" , resourceRoot , function()
local type = getElementType ( source )
if type == "vehicle" then
cancelEvent ()
end
end )
addCommandHandler ( "sweep-toggle" ,function( plr , cmd )
if jobOnline == false then
jobOnline = true
outputChatBox ( "ODBLOKOWALES XD" , plr , 255 , 0 , 0 )
else
jobOnline = false
outputChatBox ( "ZABLOKOWALES XD" , plr , 255 , 0 , 0 )
end
end )
-- addEventHandler ( "onVehicleStartEnter" , resourceRoot ,function( plr ) if wylaczone then cancelEvent (); outputChatBox ( "**Trwaja testy" , plr , 255 , 0 , 0 ) return end end )
addCommandHandler ( "respsweepery" ,function( plr , cmd )
if exports [ "dutyadmin" ]: getAdmin ( plr , 4 ) or exports [ "dutyadmin" ]: getAdmin ( plr , 3 ) then
for i , v in ipairs ( jobVehicles ) do
local veh = createVehicle ( v [ 1 ], v [ 2 ], v [ 3 ], v [ 4 ], v [ 5 ], v [ 6 ], v [ 7 ])
setVehicleRespawnPosition ( veh , v [ 2 ], v [ 3 ], v [ 4 ], v [ 5 ], v [ 6 ], v [ 7 ])
setElementData ( veh , "vehicle:desc" , "Czyszczenie ulic" )
setElementData ( veh , "vehicle:mileage" , math . random ( 1000 , 50000 ))
setElementData ( veh , "vehicle:fuel" , 100 )
setElementData ( veh , "vehicle:job" , code )
setVehicleDamageProof ( veh , true )
toggleVehicleRespawn ( veh , true )
setVehicleIdleRespawnDelay ( veh , 10000 )
setElementFrozen ( veh , true )
removeVehicleSirens ( veh )
addVehicleSirens ( veh , 2 , 2 , true , true , false , true )
setVehicleSirens ( veh , 1 , - 0.3 , 0.4 , 1.3 , 255 , 255 , 0 , 104.6 , 91.8 )
setVehicleSirens ( veh , 2 , 0.3 , 0.4 , 1.3 , 255 , 255 , 0 , 104.6 , 91.8 )
addEventHandler ( "onVehicleExit" , veh ,function( plr , seat ) destroyElement ( source ); setElementData ( plr , "player:job" , false ) end )
addEventHandler ( "onVehicleRespawn" , veh ,function() destroyElement ( source ); end )
end
end
end )
Wysłany: 2017-01-14, 15:49
_Haze
Peace Yo!
Wiek: 24 Na forum: 4184 dni Posty: 1648
Nick w MP: Haze
Piwa : 2628
Po 1 masz tu 32132132 zmiennych kt?re nie s? potrzebne. A ?eby dawa? np 0.1 to tylko podmieniasz
kg = math.random(0.1,1.3) (w og?le to dziwi? si? ?e to dzia?a poniewa? trzeba podawa? liczby ca?kowite ale ok ) na kg = 0.1 jak nie umiesz tego zrobi? to masz kod tutaj
local czas = getTickCount ()
function speeed ( car )
local a1 , b1 , c1 = getElementVelocity ( car )
local fast = (( a1 ^ 2 + b1 ^ 2 + c1 ^ 2 )^( 0.5 ) * 180 )
return fast
end
local code = "Sweepers" -- kod pracy
tekstury = {
[ 0 ] = true ,
[ 1 ] = true ,
[ 2 ] = true ,
}
function render ( pojazd )
local x , y , z = getElementPosition ( pojazd )
fxAddWaterSplash ( x , y , z - 1.9 )
if ( getTickCount () - czas ) < 6000 then return end
czas = getTickCount ()
--if ( not isVehicleOnGround ( pojazd )) then outputDebugString ( "ground FALSE" ) return end
if speeed ( pojazd ) < 30 then return end
ziemia = getGroundPosition ( x , y , z ) - 0.001
hit , _ , _ , _ , _ , _ , _ , _ , material , _ , target = processLineOfSight ( x , y , z , x , y , ziemia , true , false , true , true , false , true )
if hit == false then
-- outputDebugString ( "HIT FALSE" )
return end
if ( not tekstury [ material ]) then
-- outputDebugString ( "MATERIAL FALSE" )
return end
local smiecie = getElementData ( pojazd , "vehicle:trash" )
local kg = 0.1
if not getElementData ( localPlayer , "player:premium" ) then
limit = 200
else
limit = 250
end
if smiecie >= limit then return end
setElementData ( pojazd , "vehicle:trash" , smiecie + kg )
setElementData ( pojazd , "vehicle:desc" , "Nape?nienie zbiornika : [" .. smiecie .. " kg]" )
end
local function shit ()
local pojazd = getPedOccupiedVehicle ( localPlayer )
if not pojazd then return end
if not getVehicleEngineState ( pojazd ) then return end
if speeed ( pojazd ) < 4 then
toggleControl ( "brake_reverse" , false )
else
toggleControl ( "brake_reverse" , true )
end
render ( pojazd )
end
addEventHandler ( "onClientVehicleEnter" , resourceRoot ,
function( thePlayer , seat )
if thePlayer == getLocalPlayer () then
if getElementData ( source , "vehicle:job" ) == code then
addEventHandler ( "onClientRender" , root , shit )
end
end
end )
addEventHandler ( "onClientVehicleExit" , resourceRoot ,
function( thePlayer , seat )
if thePlayer == getLocalPlayer () then
if getElementData ( source , "vehicle:job" ) == code then
removeEventHandler ( "onClientRender" , root , shit )
end
end
end )
addEventHandler ( 'onClientResourceStart' , resourceRoot ,
function()
shader = dxCreateShader ( 'shader.fx' )
terrain = dxCreateTexture ( 'sweeper92decal128.png' )
dxSetShaderValue ( shader , 'gTexture' , terrain )
engineApplyShaderToWorldTexture ( shader , 'sweeper92decal128' )
end
)
Tagi: praca :: sweepry
Anonymous
Na forum: 245 dni
Posty: 1
Anonymous Koniecznie zajrzyj na: