Guten Morgen liebe Community,
in den letzten Tagen, habe ich ein paar Tutorial Threads gelesen und habe gemerkt, dass Leute immernoch Probleme haben mit dem Erstellen von Jobs...
Aus diesem Grund diese Include, sie bietet eine angenehme und einfache Verwaltung von Jobs:
[tabmenu]
[tab='Allgemeine Informationen','http://forum.sa-mp.de/wcf/icon/infoM.png']
[subtab='Funktionen','http://forum.gamerzhost.de/wcf/icon/codeS.png']
Es gibt folgende Funktionen:
(Es sind alle nochmal mit Beispielen im "Beispiel-Sub Tab")
SetPlayerJob(playerid,jobid); //Setzt den Job für den Spieler
GetPlayerJob(playerid); //Returnt die Jobid
SetJobName(jobid,name[]); //Man kann den Namen des Jobs hier einstellen
GetJobName(jobid,name[],len); //Man kann den Jobnamen abfragen
CreateJobCar(jobid,model,Float:X,Float:Y,Float:Z,Float:A,c1,c2,respawn=-1); //Man kann ein Job Car erstellen
GetJobCar(veh); //Returnt die Jobid zu der dieses Auto gehört
SendJobMessage(jobid,farbe,string[]; //Sendet an alle Spieler mit dieser Jobid eine Nachricht
CreateJobIcon(jobid,Float:X,Float:Y,Float:Z,text[]); //Erstellt ein Pickup wo man einen Job annehmen kann
GetJobRange(playerid); //retunrt die jobid von dem Pickup (falls -1) dann ist er nicht in der Nähe von dem Pickup
SetJobSpawn(jobid,Float:x,Float:y,Float:z,Float:a,interior,world); //Setzt den Spawn für den Job (er wird auch direkt dahin gesetzt)
[subtab='Beispiele','http://www.damen-eishockey.de/images/lampe.gif']
//Hier nun einige Beispiele:
SetPlayerJob(playerid, 1); //Spieler wäre jetzt im Job 1
GetPlayerJob(playerid); //Würde 1 returnen
SetJobName(1,"LSPD"); //Wenn der Spieler jetzt in Job 1 wäre, wäre er im LSPD
new job[64]; // 64 = Maximale Länge des Namens eines Jobs
GetJobName(1,job,64); //In job würde jetzt als String LSPD stehen
//Alternative Abfrage:
GetJobName(GetPlayerJob(playerid),job,64); //In job steht jetzt der Jobname von dem Spieler
CreateJobCar(1,411,0.0,0.0,0.0,0.0,1,2); //erstellt einen Infernus (411) für den Job 1
//Unter OnPlayerEnterVehicle z.B. könnte man jetzt folgendes abfragen:
if(GetPlayerJob(playerid) != GetJobCar(vehicleid) && GetJobCar(vehicleid) > 0) {
//Hier dürfte playerid das Fahrzeug nicht fahren, da er nicht zu dem Job gehört
}
CreateJobIcon(1,1200.0,-2000.0,13.5,"Hier kann du Dedektiv werden, tippe:\n/accept job"); //Hier wird ein Pickup + 3D Text erstellt...
//Nun zu dem /accept job befehl, das müsste enthalten sein:
new j = GetJobRange(playerid);
if(j == -1) return SendClientMessage(playerid,rot,"Du befindest dich nicht in der Nähe eines Jobpickups !");
//wenn er keinen Job hat
SetPlayerJob(playerid, j);
new string[128],job[64];
GetJobName(j,job,64);
format(string,128,"Du bist erfolgreich %s geworden !",job);
SendClientMessage(playerid,blau,string);
[subtab='Zusätzliche Informationen','http://www.rezepte-guru.de/template/images/icon_stern.gif']
Man kann momentan maximal 20 Jobs erstellen, aber das kann man so ändern:
#define MAX_JOBS 25 //Jetzt könnte man 25 Jobs erstellen...
#include <job>
[subtab='Download','http://www.projekt-deutsch.de/templates/cback/images/download.gif']
Source-Code: Pastebin
Direkter-Download: Mediafire
[/tabmenu]
//Hier wäre ein Beispiel mit dini:
dini_IntSet(Spielerdatei,"Job",GetPlayerJob(playerid));
Würde mich über ein paar Feedbacks freuen
mfg.
-
Edits: SendJobMessage
-
Edits: CreateJobIcon + GetJobRange + Neuer Pastebin Link
-
Edits: Neue Links
-
Edits: Neue Funktion SetJobSpawn
-
Edits: Mediafire Direkt Downloadlink