Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Made by LeonMrBonnie für Azgeda Reallife
- #define FILTERSCRIPT
- #include <a_samp>
- #include <zcmd>
- #include <streamer>
- //****************** DEFINES ********************
- #define MAX_FARMCPS 5 //Anzahl an Checkpoints die abgefahren werden müssen
- #define MAX_CROPS 5 //Anzahl an Ernten die eingesammelt werden müssen
- //******************* VARIABLEN ******************
- new FarmerVehicle[10];
- enum FarmerInfo
- {
- bool:IsFarmer,
- VehicleID,
- Checkpoints,
- Timer,
- CurrentCheckpoint,
- CurrentPickup[MAX_CROPS],
- Object[MAX_CROPS]
- };
- new Float:FarmerCheckpoints[][] =
- {
- {-132.2704,49.2360,3.1172},
- {-158.3712,33.5675,3.1172},
- {-177.8053,49.0988,3.1028},
- {-196.9916,67.2540,3.1172},
- {-215.5738,72.9736,2.8733},
- {-220.3107,63.0927,2.8472},
- {-214.6486,54.1348,3.1172},
- {-202.9189,29.2320,3.2286},
- {-174.3460,-7.8542,3.1172},
- {-175.8239,-44.3263,3.1172},
- {-187.5371,-69.5558,3.1172},
- {-215.5495,-74.7864,3.1172},
- {-244.1431,-66.3051,3.1172},
- {-261.5512,-54.8958,3.1172},
- {-273.3666,-41.1953,2.4805},
- {-265.3297,-21.3529,2.2943},
- {-237.5191,18.5974,2.8085},
- {-173.6121,32.2485,3.1172},
- {-185.0257,8.4878,3.1843},
- {-201.1083,-15.4735,3.1172},
- {-195.5466,-34.9722,3.1172},
- {-212.7732,-43.5486,3.1172},
- {-226.0848,-57.8588,3.1172},
- {-244.3097,-60.8449,3.1172},
- {-248.3990,-44.3875,3.1172},
- {-245.6273,8.8466,2.6481},
- {-153.6711,47.8707,3.1172},
- {-132.5385,54.4717,3.1172},
- {-142.7278,19.8991,3.1172},
- {-152.5054,-8.8565,3.1172},
- {-159.6974,-29.1650,3.1172}
- };
- new FarmerEnum[MAX_PLAYERS][FarmerInfo];
- //****************** DEFINES ************************
- #define HTML_RED "{f44242}"
- #define HTML_WHITE "{FFFFFF}"
- #define COLOR_CYAN 0x99FFFFAA
- //**************** FUNKTIONEN ********************
- public OnFilterScriptInit()
- {
- print("Farmer Job geladen!");
- LoadFarmerVehicles();
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- FarmerEnum[playerid][IsFarmer] = false;
- FarmerEnum[playerid][Timer] = -1;
- FarmerEnum[playerid][Checkpoints] = -1;
- FarmerEnum[playerid][CurrentCheckpoint] = -1;
- for(new i; i<MAX_CROPS; i++)
- {
- FarmerEnum[playerid][CurrentPickup][i] = -1;
- }
- for(new i; i<MAX_CROPS; i++)
- {
- FarmerEnum[playerid][Object][i] = -1;
- }
- FarmerEnum[playerid][VehicleID] = -1;
- FarmerEnum[playerid][Object] = -1;
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- if(FarmerEnum[playerid][VehicleID] != -1)
- {
- SetVehicleToRespawn(FarmerEnum[playerid][VehicleID]);
- }
- return 1;
- }
- public OnPlayerEnterDynamicCP(playerid, checkpointid)
- {
- if(checkpointid == FarmerEnum[playerid][CurrentCheckpoint])
- {
- new curstate = FarmerEnum[playerid][Checkpoints], gametext[32];
- PlayerPlaySound(playerid, 1139, 0.0, 0.0, 0.0);
- if(curstate == -1)
- {
- DestroyDynamicCP(FarmerEnum[playerid][CurrentCheckpoint]);
- SendInfoMessage(playerid, "Steig nun in einen Traktor ein.");
- FarmerEnum[playerid][VehicleID] = -1;
- }
- else if(curstate == -1)
- {
- FarmerEnum[playerid][Checkpoints] = 0;
- //FarmerEnum[playerid][VehicleID] = CreateVehicle(531, x, y, z, a, -1, -1, -1);
- if(IsPlayerInAnyVehicle(playerid)) RemovePlayerFromVehicle(playerid);
- PutPlayerInVehicle(playerid, FarmerEnum[playerid][VehicleID], 0);
- SendInfoMessage(playerid, "Du musst zuerst die Felder bepflanzen. Fahre nun dafür die Checkpoints ab.");
- if(IsValidDynamicCP(FarmerEnum[playerid][CurrentCheckpoint])) DestroyDynamicCP(FarmerEnum[playerid][CurrentCheckpoint]);
- CreateRandomFarmCP(playerid);
- }
- else if(curstate > -1 && curstate < MAX_FARMCPS-1)
- {
- FarmerEnum[playerid][Checkpoints]++;
- format(gametext,sizeof(gametext),"%d/%d~n~FELDER BEPFLANZT",FarmerEnum[playerid][Checkpoints],MAX_FARMCPS);
- GameTextForPlayer(playerid, gametext, 3000, 6);
- if(IsValidDynamicCP(FarmerEnum[playerid][CurrentCheckpoint])) DestroyDynamicCP(FarmerEnum[playerid][CurrentCheckpoint]);
- CreateRandomFarmCP(playerid);
- }
- else if(curstate == MAX_FARMCPS-1)
- {
- FarmerEnum[playerid][Checkpoints]++;
- format(gametext,sizeof(gametext),"%d/%d~n~FELDER BEPFLANZT",FarmerEnum[playerid][Checkpoints],MAX_FARMCPS);
- GameTextForPlayer(playerid, gametext, 3000, 6);
- if(IsValidDynamicCP(FarmerEnum[playerid][CurrentCheckpoint])) DestroyDynamicCP(FarmerEnum[playerid][CurrentCheckpoint]);
- SendInfoMessage(playerid, "Du hast nun alle Felder bepflanzt. Sammle jetzt die Ernte ein.");
- for(new i; i<MAX_CROPS; i++)
- {
- CreateFarmCrop(playerid, i);
- }
- }
- else if(curstate == MAX_FARMCPS + MAX_CROPS)
- {
- SetVehicleVelocity(FarmerEnum[playerid][VehicleID], 0, 0, 0);
- TogglePlayerControllable(playerid, 0);
- GameTextForPlayer(playerid, "ERNTE WIRD ABGELADEN...", 3500, 6);
- SetTimerEx("SendBack", 3000, 0, "d", playerid);
- }
- else if(curstate == MAX_FARMCPS + MAX_CROPS + 1)
- {
- SetVehicleVelocity(FarmerEnum[playerid][VehicleID], 0, 0, 0);
- if(IsValidDynamicCP(FarmerEnum[playerid][CurrentCheckpoint])) DestroyDynamicCP(FarmerEnum[playerid][CurrentCheckpoint]);
- SendInfoMessage(playerid, "Du hast deine Tour als Farmer beendet.");
- ShowPlayerDialog(playerid, 12504, DIALOG_STYLE_MSGBOX, "Tour beenden","Möchtest du weiterjobben?", "Weiter", "Aufhören");
- }
- }
- return 1;
- }
- forward SendBack(playerid);
- public SendBack(playerid)
- {
- TogglePlayerControllable(playerid, 1);
- FarmerEnum[playerid][Checkpoints]++;
- if(IsValidDynamicCP(FarmerEnum[playerid][CurrentCheckpoint])) DestroyDynamicCP(FarmerEnum[playerid][CurrentCheckpoint]);
- FarmerEnum[playerid][CurrentCheckpoint] = CreateDynamicCP(-64.1162,-9.1987,3.1172, 2.5, -1, -1, playerid, 5000);
- SendInfoMessage(playerid, "Fahre nun zurück zur Farm.");
- }
- public OnPlayerPickUpDynamicPickup(playerid, pickupid)
- {
- for(new i; i<MAX_CROPS+1; i++)
- {
- if(pickupid == FarmerEnum[playerid][CurrentPickup][i])
- {
- new gametext[64];
- FarmerEnum[playerid][Checkpoints]++;
- format(gametext,sizeof(gametext),"%d/%d~n~ERNTEN GESAMMELT",FarmerEnum[playerid][Checkpoints]-MAX_FARMCPS,MAX_CROPS);
- GameTextForPlayer(playerid, gametext, 3000, 6);
- if(IsValidDynamicPickup(FarmerEnum[playerid][CurrentPickup][i])) DestroyDynamicPickup(FarmerEnum[playerid][CurrentPickup][i]);
- if(IsValidDynamicObject(FarmerEnum[playerid][Object][i])) DestroyDynamicObject(FarmerEnum[playerid][Object][i]);
- if(FarmerEnum[playerid][Checkpoints] == MAX_FARMCPS + MAX_CROPS)
- {
- SendInfoMessage(playerid, "Du hast nun die Ernte eingesammelt. Liefer sie nun bei Fleischberg ab.");
- FarmerEnum[playerid][CurrentCheckpoint] = CreateDynamicCP(-156.6296,-289.4840,3.9053, 5.0, -1, -1, playerid, 1000);
- }
- }
- }
- }
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- if(dialogid == 12504)
- {
- if(response)
- {
- FarmerEnum[playerid][Checkpoints] = 0;
- SendInfoMessage(playerid, "Du musst zuerst die Felder bepflanzen. Fahre nun dafür die Checkpoints ab.");
- if(IsValidDynamicCP(FarmerEnum[playerid][CurrentCheckpoint])) DestroyDynamicCP(FarmerEnum[playerid][CurrentCheckpoint]);
- CreateRandomFarmCP(playerid);
- }
- else
- {
- FarmerEnum[playerid][IsFarmer] = false;
- FarmerEnum[playerid][Checkpoints] = -1;
- RemovePlayerFromVehicle(playerid);
- SetVehicleToRespawn(FarmerEnum[playerid][VehicleID]);
- FarmerEnum[playerid][VehicleID] = -1;
- }
- }
- return 0;
- }
- public OnVehicleDeath(vehicleid, killerid)
- {
- for(new i; i<GetPlayerPoolSize(); i++)
- {
- if(FarmerEnum[i][VehicleID] == vehicleid)
- {
- SendInfoMessage(i, "Die Tour wurde vorzeitig beendet, weil dein Fahrzeug zerstört wurde.");
- FarmerEnum[i][IsFarmer] = false;
- FarmerEnum[i][Checkpoints] = -1;
- FarmerEnum[i][VehicleID] = -1;
- for(new i2; i2<MAX_CROPS+1; i2++)
- {
- FarmerEnum[i][CurrentPickup][i2] = -1;
- }
- for(new i2; i2<MAX_CROPS+1; i2++)
- {
- FarmerEnum[i][Object][i2] = -1;
- }
- if(IsValidDynamicPickup(FarmerEnum[i][CurrentPickup])) DestroyDynamicPickup(FarmerEnum[i][CurrentPickup]);
- if(IsValidDynamicCP(FarmerEnum[i][CurrentCheckpoint])) DestroyDynamicCP(FarmerEnum[i][CurrentCheckpoint]);
- FarmerEnum[i][CurrentCheckpoint] = -1;
- }
- }
- }
- public OnPlayerDeath(playerid)
- {
- if(FarmerEnum[playerid][IsFarmer])
- {
- SendInfoMessage(playerid, "Die Tour wurde vorzeitig beendet, weil du gestorben bist.");
- FarmerEnum[playerid][IsFarmer] = false;
- SetVehicleToRespawn(FarmerEnum[playerid][VehicleID]);
- FarmerEnum[playerid][Checkpoints] = -1;
- FarmerEnum[playerid][VehicleID] = -1;
- for(new i2; i2<MAX_CROPS+1; i2++)
- {
- FarmerEnum[playerid][CurrentPickup][i2] = -1;
- }
- for(new i2; i2<MAX_CROPS+1; i2++)
- {
- FarmerEnum[playerid][Object][i2] = -1;
- }
- if(IsValidDynamicPickup(FarmerEnum[playerid][CurrentPickup])) DestroyDynamicPickup(FarmerEnum[playerid][CurrentPickup]);
- if(IsValidDynamicCP(FarmerEnum[playerid][CurrentCheckpoint])) DestroyDynamicCP(FarmerEnum[playerid][CurrentCheckpoint]);
- FarmerEnum[playerid][CurrentCheckpoint] = -1;
- }
- }
- public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
- {
- if(FarmerEnum[playerid][Checkpoints] == -1 && FarmerEnum[playerid][IsFarmer])
- {
- for(new i; i<(sizeof FarmerVehicle); i++)
- {
- if(vehicleid == FarmerVehicle[i])
- {
- FarmerEnum[playerid][Checkpoints] = 0;
- FarmerEnum[playerid][VehicleID] = vehicleid;
- SendInfoMessage(playerid, "Du musst zuerst die Felder bepflanzen. Fahre nun dafür die Checkpoints ab.");
- if(IsValidDynamicCP(FarmerEnum[playerid][CurrentCheckpoint])) DestroyDynamicCP(FarmerEnum[playerid][CurrentCheckpoint]);
- CreateRandomFarmCP(playerid);
- }
- }
- }
- if(FarmerEnum[playerid][Timer] != -1)
- {
- KillTimer(FarmerEnum[playerid][Timer]);
- FarmerEnum[playerid][Timer] = -1;
- }
- return 1;
- }
- public OnPlayerExitVehicle(playerid, vehicleid)
- {
- if(vehicleid == FarmerEnum[playerid][VehicleID])
- {
- SendInfoMessage(playerid, "Die Tour wird nach 2 Minuten beendet, wenn du dein Fahrzeug nicht betrittst.");
- FarmerEnum[playerid][Timer] = SetTimerEx("RespawnFarmVehicle", 125000, 0, "d", playerid);
- }
- return 1;
- }
- forward RespawnFarmVehicle(playerid);
- public RespawnFarmVehicle(playerid)
- {
- SendInfoMessage(playerid, "Die Tour wurde vorzeitig beendet, weil du dein Fahrzeug verlassen hast.");
- SetVehicleToRespawn(FarmerEnum[playerid][VehicleID]);
- FarmerEnum[playerid][IsFarmer] = false;
- FarmerEnum[playerid][Checkpoints] = -1;
- FarmerEnum[playerid][CurrentCheckpoint] = -1;
- FarmerEnum[playerid][VehicleID] = -1;
- for(new i2; i2<MAX_CROPS+1; i2++)
- {
- FarmerEnum[playerid][CurrentPickup][i2] = -1;
- }
- for(new i2; i2<MAX_CROPS+1; i2++)
- {
- FarmerEnum[playerid][Object][i2] = -1;
- }
- if(IsValidDynamicPickup(FarmerEnum[playerid][CurrentPickup])) DestroyDynamicPickup(FarmerEnum[playerid][CurrentPickup]);
- if(IsValidDynamicCP(FarmerEnum[playerid][CurrentCheckpoint])) DestroyDynamicCP(FarmerEnum[playerid][CurrentCheckpoint]);
- return 1;
- }
- //*************** BEFEHLE ******************
- CMD:startjob(playerid)
- {
- if(FarmerEnum[playerid][IsFarmer] == true) return SendInfoMessage(playerid, "Du bist bereits Farmer im Dienst. Du kannst den Job mit /canceljob beenden.");
- FarmerEnum[playerid][IsFarmer] = true;
- SendInfoMessage(playerid, "Du bist nun als Farmer im Dienst. Begib dich nun zur Farm.");
- FarmerEnum[playerid][CurrentCheckpoint] = CreateDynamicCP(-64.1162,-9.1987,3.1172, 3.0, -1, -1, playerid, 5000);
- return 1;
- }
- CMD:canceljob(playerid)
- {
- if(FarmerEnum[playerid][IsFarmer] == false) return SendInfoMessage(playerid, "Du bist nicht als Farmer im Dienst. Du kannst den Job mit /startjob starten.");
- FarmerEnum[playerid][IsFarmer] = false;
- FarmerEnum[playerid][Checkpoints] = -1;
- for(new i; i<MAX_CROPS; i++)
- {
- FarmerEnum[playerid][CurrentPickup][i] = -1;
- }
- for(new i; i<MAX_CROPS; i++)
- {
- FarmerEnum[playerid][Object][i] = -1;
- }
- if(IsValidDynamicPickup(FarmerEnum[playerid][CurrentPickup])) DestroyDynamicPickup(FarmerEnum[playerid][CurrentPickup]);
- if(IsValidDynamicCP(FarmerEnum[playerid][CurrentCheckpoint])) DestroyDynamicCP(FarmerEnum[playerid][CurrentCheckpoint]);
- FarmerEnum[playerid][CurrentCheckpoint] = -1;
- DestroyVehicle(FarmerEnum[playerid][VehicleID]);
- SendInfoMessage(playerid, "Du hast den Job als Farmer vorzeitig abgebrochen.");
- return 1;
- }
- //*************** FUNKTIONEN *****************
- SendInfoMessage(playerid, text[])
- {
- new message[100];
- format(message,sizeof(message),"[FARMER]: "HTML_WHITE"%s",text);
- SendClientMessage(playerid, COLOR_CYAN, message);
- return 1;
- }
- CreateRandomFarmCP(playerid)
- {
- new cprandom = random(sizeof FarmerCheckpoints);
- FarmerEnum[playerid][CurrentCheckpoint] = CreateDynamicCP(FarmerCheckpoints[cprandom][0], FarmerCheckpoints[cprandom][1], FarmerCheckpoints[cprandom][2], 5.0, -1, -1, playerid, 800);
- }
- CreateFarmCrop(playerid, id)
- {
- new cprandom = random(sizeof FarmerCheckpoints);
- FarmerEnum[playerid][CurrentPickup][id] = CreateDynamicPickup(19300, 14, FarmerCheckpoints[cprandom][0], FarmerCheckpoints[cprandom][1], FarmerCheckpoints[cprandom][2], -1, -1, playerid);
- FarmerEnum[playerid][Object][id] = CreateDynamicObject(819, FarmerCheckpoints[cprandom][0], FarmerCheckpoints[cprandom][1], FarmerCheckpoints[cprandom][2], 0.0, 0.0, 0.0, -1, -1, playerid, 800);
- }
- LoadFarmerVehicles()
- {
- FarmerVehicle[0] = CreateVehicle(531, -29.0494, -4.7820, 3.0567, 59.3324, 37, 0, 125); //Tractor
- FarmerVehicle[1] = CreateVehicle(531, -33.6989, -14.3286, 3.0750, 64.1862, 37, 0, 125); //Tractor
- FarmerVehicle[2] = CreateVehicle(531, -30.2467, -7.1155, 3.0569, 65.6999, 37, 0, 125); //Tractor
- FarmerVehicle[3] = CreateVehicle(531, -31.5101, -9.4533, 3.0925, 65.2910, 37, 0, 125); //Tractor
- FarmerVehicle[4] = CreateVehicle(531, -32.5808, -11.9046, 3.0834, 63.0222, 37, 0, 125); //Tractor
- FarmerVehicle[5] = CreateVehicle(531, -34.7987, -16.7234, 3.1018, 66.4541, 37, 0, 125); //Tractor
- FarmerVehicle[6] = CreateVehicle(531, -39.5843, -26.7351, 3.0768, 60.0999, 37, 0, 125); //Tractor
- FarmerVehicle[7] = CreateVehicle(531, -35.8714, -19.2989, 3.0804, 64.4000, 37, 0, 125); //Tractor
- FarmerVehicle[8] = CreateVehicle(531, -37.1050, -21.9419, 3.0847, 65.6999, 37, 0, 125); //Tractor
- FarmerVehicle[9] = CreateVehicle(531, -38.4430, -24.3589, 3.0749, 62.5000, 37, 0, 125); //Tractor
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement