Hallo leute,
ich habe mich mal an einen Farmerjob rangewagt,
doch leider ist da irgendwo ein Fehler
und ich bin echt am Verzweifeln
Clientseitig:
local farmingJobTargetMarker, farmingAreaMarker
local playerToGroundLevel = 1.3085
local farmer_boden = {
[1]={-1079.5439,-1095.34460,129.21875},
[2]={-1089.5899658,-1095.5360107,129.21875},
[3]={-1104.4857177,-1095.616577,129.21875},
[4]={-1116.9200439453,-1095.7744140,129.21875},
[5]={-1129.0928955,-1095-3354492188,129.21875},
[6]={-1139.94982,-1095.595947,129.21875},
[7]={-1141.01538,-1084.146118,129.21875},
[8]={-1126.7314453125,-1084.2661132813,129.21875},
[9]={-1094.706787,-1084.253173,129.21875}
}
function showNextFarmerJobMarker ( x, y, z, typ )
local size = 1
if typ == 2 then
size = 10
elseif typ == 3 then
size = 10
end
local marker = createMarker ( tostring(x), tostring(y), tostring(z), "checkpoint", size, 200, 0, 0, 125, nil )
farmingJobTargetMarker = marker
local blip = createBlip ( tostring(x), tostring(y), tostring(z), 0, 2, 255, 0, 0, 255, 0, 99999 )
setElementParent ( blip, marker )
if typ == 1 then
addEventHandler ( "onClientMarkerHit", marker, farmerJobMarker1Hit )
elseif typ == 2 then
addEventHandler ( "onClientMarkerHit", marker, farmerJobMarker2Hit )
elseif typ == 3 then
addEventHandler ( "onClientMarkerHit", marker, farmerJobMarker3Hit )
end
end
addEvent ( "showNextFarmerJobMarker", true )
addEventHandler ( "showNextFarmerJobMarker", getRootElement(), showNextFarmerJobMarker )
function getNewFarmerLocation(player, ID)
local x, y, z = farmer_boden[ID][1], farmer_boden[ID][2], farmer_boden[ID][3]
showNextFarmerJobMarker (x,y,z,tonumber(getElementData(player,"farmerMod")))
end
function farmerJobRecieve(player, art)
setElementData(player,"farmerData",1)
setElementData(player,"farmerMod",1)
getNewFarmerLocation(player, tonumber(getElementData(player,"farmerData")))
end
addEvent ( "farmerJobRecieve", true )
addEventHandler ( "farmerJobRecieve", getRootElement(), farmerJobRecieve )
function farmerJobMarker1Hit ( player )
if player == lp and not getPedOccupiedVehicle ( player ) then
setElementFrozen ( lp, true )
local x, y, z = getElementPosition ( lp )
local z = z - playerToGroundLevel * 2
setTimer (
function ( x, y, z )
local crop = createObject ( 3409, x, y, z )
moveObject ( crop, 5000, x, y, z + playerToGroundLevel )
setTimer ( destroyElement, 60000, 1, crop )
setElementFrozen ( lp, false )
end,
1500, 1, x, y, z )
-- triggerServerEvent ( "farmerJobMarkerHit1", lp, 1 )
destroyElement ( source )
setElementData(lp,"FarmerData",tonumber(getElementData(hit,"farmerData"))+1)
getNewFarmerLocation(lp, tonumber(getElementData(lp,"farmerData")))
end
end
function farmerJobMarker2Hit ( player )
if getPedOccupiedVehicle ( lp ) and player == lp then
triggerServerEvent ( "farmerJobMarkerHit2", lp, 2 )
destroyElement ( source )
end
end
function farmerJobMarker3Hit ( player )
if getPedOccupiedVehicle ( lp ) and player == lp then
triggerServerEvent ( "farmerJobMarkerHit3", lp, 3 )
destroyElement ( source )
end
end
function startFarmingJob ()
farmingAreaMarker = createMarker ( -1186.4422607422, -1048.7531738281, 129.21875, "checkpoint", 450, 200, 0, 0, 125, nil )
addEventHandler ( "onClientMarkerLeave", farmingAreaMarker,
function ( player )
if player == lp then
cancel_farming ( "", "farming" )
end
end
)
end
addEvent ( "startFarmingJob", true )
addEventHandler ( "startFarmingJob", getRootElement(), startFarmingJob )
function cancel_farming ( cmd, arg )
if arg == "farming" or arg == "job" then
if isElement ( farmingAreaMarker ) then
destroyElement ( farmingAreaMarker )
end
if isElement ( farmingJobTargetMarker ) then
destroyElement ( farmingJobTargetMarker )
end
triggerServerEvent ( "cancelFarmingJob", lp )
infobox ( "Du hast die Arbeit\nabgebrochen.", 5000, 125, 0, 0 )
setElementData(player,"farmerData",0)
setElementData(player,"farmerMod",0)
end
end
addEvent ( "cancelFarming", true )
addEventHandler ( "cancelFarming", getRootElement(), cancel_farming )
addCommandHandler ( "cancel", cancel_farming )
function clientFarmerWasted ()
if isElement ( blip ) then
cancel_farming ( "", "farming" )
end
end
addEventHandler ( "onClientPlayerWasted", lp, clientFarmerWasted )
Server:
farm = createPickup ( -1057.5656, -1195.8160400, 129.1480255127, 3, 1239, 1000, 0 )
farmerColSphare = createColSphere ( -1057.5656, -1195.8160400, 129.1480255127, 5 )
function pick ( player )
if vioGetElementData ( player, "job" ) == "farmer" then
-- triggerClientEvent ( player, "prompt", getRootElement(), "\nLeider wurde dieser Job noch nichts ganz Fertiggestellt!", 10, 200, 200, 0 )
triggerClientEvent ( player, "showFarmingWindow", getRootElement())
--showFarmingWindow
end
if vioGetElementData ( player, "job" ) == "none" then
triggerClientEvent ( player, "infobox_start", getRootElement(), "Tippe: /job ein\num Farmer zu werden!", 7500, 255, 255, 0 )
end
end
addEventHandler ( "onPickupHit", farm, pick )
function FarmerJobRecieve(player)
triggerClientEvent ( player, "farmerJobRecieve", getRootElement())
end
addEvent ( "farmerJobRecieve", true )
addEventHandler ( "farmerJobRecieve", getRootElement(), FarmerJobRecieve )
function farmerJobMarkerHit1(player, cmd, marker)
vioSetElementData ( player, "money", vioGetElementData ( player, "money" ) + 7 )
givePlayerMoney ( player, 7 )
end
addEvent ( "farmerJobMarkerHit1", true )
addEventHandler ("farmerJobMarkerHit1", getRootElement(), farmerJobMarkerHit1)
function farmerJobRecieve(player, cmd, mode)
--if mode == "job1" then
triggerClientEvent ( player, "startFarmingJob", 0, 0, 0, 1)
triggerClientEvent ( player, "showNextFarmerJobMarker", 0, 0, 0, 2)
--end
end
addEvent ( "farmerJobRecieve", true )
addEventHandler ("farmerJobRecieve", getRootElement(), farmerJobRecieve)