Also ich hab hier:
public OnPlayerDeath(playerid, killerid, reason)
{
new name[MAX_PLAYER_NAME];
GetPlayerName(killerid, name, sizeof(name));
Delete3DTextLabel(label[playerid]);
TextDrawHideForPlayer(playerid,Textdraw0);
TextDrawHideForPlayer(playerid,Textdraw1);
SetPlayerWantedLevel(playerid, 0);
if(Wanted[killerid] >= 0)
{
new string[256];
SetPlayerWantedLevel(killerid, 1);
GivePlayerMoney(killerid, 1000);
format(string, sizeof(string), "Player: %s have now %i $.",name, GetPlayerMoney(killerid));
SendClientMessageToAll(COLOR_YELLOW, string);
if(killerid != INVALID_PLAYER_ID) SetPlayerScore(killerid, GetPlayerScore(killerid) + 1);
Wanted[killerid] = 1;
return 1;
}
if(Wanted[killerid] >= 1)
{
new string[256];
SetPlayerWantedLevel(killerid, 2);
GivePlayerMoney(killerid, 2000);
format(string, sizeof(string), "Player: %s have now %i $.",name, GetPlayerMoney(killerid));
SendClientMessageToAll(COLOR_YELLOW, string);
if(killerid != INVALID_PLAYER_ID) SetPlayerScore(killerid, GetPlayerScore(killerid) + 3);
Wanted[killerid] = 2;
return 1;
}
if(Wanted[killerid] >= 2)
{
new string[256];
SetPlayerWantedLevel(killerid, 3);
GivePlayerMoney(killerid, 3000);
format(string, sizeof(string), "Player: %s have now %i $.",name, GetPlayerMoney(killerid));
SendClientMessageToAll(COLOR_YELLOW, string);
if(killerid != INVALID_PLAYER_ID) SetPlayerScore(killerid, GetPlayerScore(killerid) + 6);
Wanted[killerid] = 3;
return 1;
}
if(Wanted[killerid] >= 3)
{
new string[256];
SetPlayerWantedLevel(killerid, 4);
GivePlayerMoney(killerid, 4000);
format(string, sizeof(string), "Player: %s have now %i $.",name, GetPlayerMoney(killerid));
SendClientMessageToAll(COLOR_YELLOW, string);
if(killerid != INVALID_PLAYER_ID) SetPlayerScore(killerid, GetPlayerScore(killerid) + 9);
Wanted[killerid] = 4;
return 1;
}
if(Wanted[killerid] >= 4)
{
new string[256];
SetPlayerWantedLevel(killerid, 5);
GivePlayerMoney(killerid, 5000);
format(string, sizeof(string), "Player: %s have now %i $.",name, GetPlayerMoney(killerid));
SendClientMessageToAll(COLOR_YELLOW, string);
if(killerid != INVALID_PLAYER_ID) SetPlayerScore(killerid, GetPlayerScore(killerid) + 12);
Wanted[killerid] = 5;
return 1;
}
if(Wanted[killerid] >= 5)
{
new string[256];
SetPlayerWantedLevel(killerid, 6);
GivePlayerMoney(killerid, 6000);
format(string, sizeof(string), "Player: %s have now %i $.",name, GetPlayerMoney(killerid));
SendClientMessageToAll(COLOR_YELLOW, string);
if(killerid != INVALID_PLAYER_ID) SetPlayerScore(killerid, GetPlayerScore(killerid) + 15);
Wanted[killerid] = 6;
return 1;
}
return 1;
}
Aber ingame bekomm ich nur Wanted Level 1 und bekomm nur 1000 $ Normaler Weise sollte sich das erhöhen.
Wanted geht nicht ?!
- SplInTeC
- Geschlossen
- Erledigt
-
-
Ist ja auch logisch,dass du niemals ein Wanted über Level1 bekommst.
Denn die ganze Struktur bei dir ist sehr unvorteilhaft.Du fragst zuerst ab ober das Wanted über / gleich 0 ist.Falls ja,beendest du am ende die Funktion.
Dann fragst du ab ob das Wanted über / gleich 1 ist.Das wird aber nie abgefragt. Denn wenn der Wanted
Level lediglich 0 oder größer ist,beendest du mit return 1; bereits. Dadurch ist es völlig egal
was danach folgt.
Ist das Level zum Beispiel 5. Dann wird es bereits den Block aufrufen für Level 0.( Es ist zwar nicht möglich da
du überall return 1; hast, es würde aber dann auch den Block für Level 1 - 4 aufrufen [ Wenn du dort kein return 1; hättest ] )
Du hättest es wenn dann überhaupt rückwärts aufbauen müssen.Zuerst fragen ob Level6,dann 5,4,3 usw.
Ich hab dir das aber mal neu strukturiert.
public OnPlayerDeath(playerid, killerid, reason)
{
new
name[MAX_PLAYER_NAME];
GetPlayerName(killerid, name, sizeof(name));
Delete3DTextLabel(label[playerid]);
TextDrawHideForPlayer(playerid,Textdraw0);
TextDrawHideForPlayer(playerid,Textdraw1);
SetPlayerWantedLevel(playerid, 0);if(killerid != INVALID_PLAYER_ID) {
{new
level,
string[128];
Wanted[killerid]++;
if(Wanted[killerid] > 6) {
level = 6;
}
else {
level = Wanted[killerid];
}
GivePlayerMoney(killerid, ( level * 1000 ) );
format(string, sizeof(string), "Player: %s have now %i $.",name, GetPlayerMoney(killerid));
SendClientMessageToAll(COLOR_YELLOW, string);
SetPlayerScore(killerid, GetPlayerScore(killerid) + 1);
SetPlayerWantedLevel(killerid, level);
// return 1; sicher,dass du danach nicht noch etwas machen willst?
}
return 1;
}//Edit: Blubb geändert.Benutzt es lieber so.
-
Also noch eine Frage: Auf meinem Server wenn ich Autos abballer gehen sie nicht schrott Wie kann ich machen das die autos auch schrott gehen wenn keiner drin ist ?
-
Geht nicht in SA:MP. Da kannst nichts machen.
Hab den Code oben nochmal abgeändert.
-
breadfish.de
Hat das Thema geschlossen.