Hats geholfen? 111
-
Ja (58) 52%
-
Naja es lässt noch Fragen offen (32) 29%
-
Nein (26) 23%
-
Sowas interresiert mich garnicht (17) 15%
Besonders bezogen auf den Thread http://samp.breadfish.de/wbb/san-andreas-multiplayer/scripting-base/showroom/3784-müllabfuhr/
Ich hoffe ihr könnt dieses Tut gebrauchen, hier werdet ihr sehen wie man Jobs ins Godfather hinzufügt
Das ist garnicht so schwer und geht eingentlich auch schnell:
Ihr müsst erstmal euren Job einen Namen geben (steht später unter /stats):
Sucht mal nach dieser Zeile hier:
else if(PlayerInfo[targetid][pJob] == 16) { jtext = "Trucker"; }
und jetzt schreibt dadrunter das gleiche nur mit der Zahl 17 (ist logisch!) und mit eurem Namen:
else if(PlayerInfo[targetid][pJob] == 17) { jtext = "Müllmann"; }
So wenn der Spieler jetzt den Job Nummer 17 hat steht unter /stats Müllmann.
Aber man braucht jetzt auch die Stelle wo man den Job annehmen soll:
Dazu macht ihr jetzt ein neues Pickup mit AddStaticPickup
AddStaticPickup(1239, 2, -546.9002,-488.6077,25.2961); //Müllmann Pickup
Jetzt kommt der /join Befehl
Im eurem Script müsste es sowas geben (Sofern ihr nichts verändert habt):
else if (GetPlayerState(i) == 1 && PlayerToPoint(2.0, i,-77.7288,-1136.3896,1.0781))
{
if(PlayerInfo[i][pJob] > 0 || PlayerInfo[i][pMember] > 0) {}
else { GameTextForPlayer(i, "~g~Welcome,~n~~y~you can become a ~r~Trucker~y~ here ~n~~w~Type /join if you wish to become one", 5000, 3); }
}
Dadrunter setzt ihr einfach das gleiche nur mit eurem Beruf und euren Koordinaten:
else if (GetPlayerState(i) == 1 && PlayerToPoint(2.0, i,-77.7288,-1136.3896,1.0781))
{
if(PlayerInfo[i][pJob] > 0 || PlayerInfo[i][pMember] > 0) {}
else { GameTextForPlayer(i, "~g~Welcome,~n~~y~you can become a ~r~Trucker~y~ here ~n~~w~Type /join if you wish to become one", 5000, 3); }
}
// Müllmann <begin>
else if (GetPlayerState(i) == 1 && PlayerToPoint(2.0, i,-546.9002,-488.6077,25.2961)) // Das sind nur meine Koordinaten, die müsst ihr ändern.
{
if(PlayerInfo[i][pJob] > 0 || PlayerInfo[i][pMember] > 0) {} // Was passiert wenn der Spieler schon einen Job hat oder schon in einer Fraktion ist
else { GameTextForPlayer(i, "~g~Welcome,~n~~y~hier kannst du den Beruf ~r~Muellmann~y~ bekommen ~n~~w~Tippe /join falls du ihn möchtest", 5000, 3); } // Was passiert wenn du das Pickup betrittst
}
// Müllmann <end>
Jetzt der eigentliche Befehl
Sucht in eurem Script nach dem Befehl /join
Da schreibt ihr unter dem Trucker Befehl euren:
else if (GetPlayerState(playerid) == 1 && PlayerToPoint(3.0, playerid,-77.7288,-1136.3896,1.0781))
{
if(PlayerInfo[playerid][pMember] > 0 || PlayerInfo[playerid][pFMember] < 255) { SendClientMessage(playerid, COLOR_GREY, " Families cannot take on this Job !"); return 1; }
SendClientMessage(playerid, COLOR_LIGHTBLUE, "* You are about to become a Trucker, and get a 5 hour Contract.");
SendClientMessage(playerid, COLOR_LIGHTBLUE, "* You have to forfill this Contract first, if you want to Quit the job later.");
SendClientMessage(playerid, COLOR_LIGHTBLUE, "* If you are sure to become a Trucker, type /accept job.");
GettingJob[playerid] = 16;
}
// Müllmann Job <begin>
else if (GetPlayerState(playerid) == 1 && PlayerToPoint(3.0, playerid,/* Eure Koordinaten*/-546.9002,-488.6077,25.2961))
{
if(PlayerInfo[playerid][pMember] > 0 || PlayerInfo[playerid][pFMember] < 255) { SendClientMessage(playerid, COLOR_GREY, " Families cannot take on this Job !"); return 1; }
SendClientMessage(playerid, COLOR_LIGHTBLUE, "* Du bist dabei einen 5 Stunden Vertrag für den Job Müllmann abzuschließen.");
SendClientMessage(playerid, COLOR_LIGHTBLUE, "* Du musst erst den Vertrag erledigen damit du den Job kündigen darfst.");
SendClientMessage(playerid, COLOR_LIGHTBLUE, "* Wenn du sicher bist das du diesen Job willst, tippe /accept job.");
GettingJob[playerid] = 17; // Eure Job Nummer
}
// Müllmann Job <end>
An dem /accept job Befehl müsst ihr eigentlich nichts hinzufügen oder verändern.
Jetzt könnt ihr Autos und Befehle für den Beruf machen:
Das macht man genauso wie mit den Fraktionen mit
if(PlayerInfo[playerid][pJob] ==1 7){
Beispiel:
if (strcmp(cmdtext, "/kill", true)==0) {
if(PlayerInfo[playerid][pJob] == 17)
{
SetPlayerHealth(playerid, 0);
}
else
{
SendClientMessage(playerid, COLOR_RED, "Das darfst du nicht!");
}
return 1;
}[/pwn}
Hier ein /kill Befehl der nur für den neuen Beruf (17) ist, ist der Beruf des Spielers nicht 17, wird die Nachricht "Du darfst das nicht" in rot gesendet.
Nun können wir noch den anderen Müllmännern die Nachricht schicken das *** sich umgebracht hat, mit
[pwn]SendJobMessage
BeispieL:
if (strcmp(cmdtext, "/kill", true)==0) {
if(PlayerInfo[playerid][pJob] == 17)
{
SetPlayerHealth(playerid, 0);
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "**Der Müllmann %s hat sich umgebrahct", sendername);
SendJobMessage(17, COLOR_RED, string); // Sendet die Nachricht an Job 17 in Farbe Grün
}
else
{
SendClientMessage(playerid, COLOR_RED, "Das darfst du nicht!");
}
return 1;
}
So hoffe ihr habt das mit den Befehlen verstanden, und mit den Autos macht ihr das genauso.
*Edit: Habe Autos hinzugefügt.
Also ihr erstellt einfach neue Autos (fügt sie einfach in euer script ein), dann steigt ihr ein macht /oldcar schreibt euch die ID auf und macht dann folgendes:
OnPlayerStateChange:
if(newcar == /* ID*/ || newcar == /* Vielleicht noch ne ID*/)
{
if(PlayerInfo[playerid][pJob] == 17)
{
}
else
{
SendClientMessage(playerid,COLOR_GREY," Du bist kein Müllmann !");
RemovePlayerFromVehicle(playerid);
}
}
MFG Alex
PS. Falls es sowas schon gibt, dann sorry, schiebt es einfach unter mein Filterscript
*Wäre mal nicht schlecht zu wissen warum ihr Nein ankreutzt?!