Hey,
beschreibe bitte dein Vorhaben etwas genauer.
Magst du diese in einen String einfügen oder wie soll man das verstehen? ![]()
Hey,
beschreibe bitte dein Vorhaben etwas genauer.
Magst du diese in einen String einfügen oder wie soll man das verstehen? ![]()
#define sFraktion "LSPD"
#define sFraktion2 "Zivilist"
Sonst geht es nicht, dann bekommst du immer einen Fehler.
Auslesen kannst du es dann so:
printf("Frak1: %d / Frak2: %s", sFraktion, sFraktion2);
#define sFraktion "LSPD"#define sFraktion2 "Zivilist"
Sonst geht es nicht, dann bekommst du immer einen Fehler.
Auslesen kannst du es dann so:
printf("Frak1: %d / Frak2: %s", sFraktion, sFraktion2);
Danke erstmal! Ich habe mich nicht gut ausgedrückt. Ich möchte das bei %d der Fraktionsname ausgegebn wird, weiß nur leider noch nicht wie.
ocmd:makeleader(playerid,params[])
{
if(sSpieler[playerid][Adminlevel] >= 5)
{
new pid;
new frakid;
new sName[MAX_PLAYER_NAME];
GetPlayerName(pid,sName,sizeof(sName));
if(sscanf(params,"ud",pid,frakid)) return SendClientMessage(playerid,farbe_rot,"Benutzung: /makeleader [ID] [FraktionsID]");
if(frakid > 2 || frakid <= 0)
{
return SendClientMessage(playerid,farbe_rot,"Diese FraktionsID existiert nicht!");
}
if(pid == INVALID_PLAYER_ID)
{
return SendClientMessage(playerid,farbe_hellblau,"Ungültiger Spieler");
}
else
{
{
sSpieler[pid][Fraktion] = frakid;
SpielerSpeichern(playerid);
format(string, sizeof(string),"Du hast %s zum Leader der Fraktion %d gemacht!", sName, //FRAKTIONSNAME);
}
}
}
else
{
SendClientMessage(playerid,farbe_rot,"Du bist nicht befugt diesen Befehl zu nutzen!");
}
return 1;
}
Alles anzeigen
Dann musst du es so machen:
Unter den Includes:
new fName[5][16];
Bei OnGameModeInit:
fName[0] = "LSPD";
fName[1] = "Zivilist";
//...
Und dann so:
format(string, sizeof(string),"Du hast %s zum Leader der Fraktion %s gemacht!", sName, fName[frakid]);
SendClientMessage(playerid, 0xFFFFFFFF, string);
Alles anzeigenDann musst du es so machen:
Unter den Includes:
new fName[5][16];
Bei OnGameModeInit:
fName[0] = "LSPD";fName[1] = "Zivilist";//...
Und dann so:
format(string, sizeof(string),"Du hast %s zum Leader der Fraktion %s gemacht!", sName, fName[frakid]);SendClientMessage(playerid, 0xFFFFFFFF, string);
Vielen Dank!
Vielen Dank!
Gerne! ![]()
Noch einen Hinweis an dich:
Bitte vermeide es, ganze Posts mitsamt den ganzen Codes dazu zu zitieren. Es reicht - und dann macht die Zitatfunktion auch Sinn - wenn du eine assagekräftige Zeile zitierst, ohne Codes darin. Wäre super, wenn du darauf in Zukunft achtest. Danke!
Gerne!
![]()
Noch einen Hinweis an dich:
Bitte vermeide es, ganze Posts mitsamt den ganzen Codes dazu zu zitieren. Es reicht - und dann macht die Zitatfunktion auch Sinn - wenn du eine assagekräftige Zeile zitierst, ohne Codes darin. Wäre super, wenn du darauf in Zukunft achtest. Danke!
Okay werde ich in Zukunft beachten ![]()
Folgendes Problem:
if(IstSpielerInFraktion(playerid, 1))
{
for(new i = 0; i < sizeof(lspdcars); i++)
{
if(GetPlayerVehicleID(playerid) == lspdcars[i])
{
TogglePlayerControllable(playerid,0);
SendClientMessage(playerid,farbe_rot,"Du hast keinen Schlüssel für dieses Fahrzeug");
TogglePlayerControllable(playerid,1);
}
}
}
Alles anzeigen
Egal welches Auto ich versuche zu betreten, Es kommt die Fehlermeldung. Ich verstehe das ganz nicht, ich frage doch ab ob das Auto ein LSPD Car ist. Wie kommt er dann an die anderen Fahrzeuge?
Ändere
GetPlayerVehicleID(playerid)
Zu
vehicleid
Da der Spieler bei OnPlayerEnterVehicle noch nicht im Fahrzeug ist, somit gibt GetPlayerVehicleID 0 zurück.
Danke an @Jeffry ![]()
Warum werde ich als LSPD Member nicht ins Auto gelassen ist nun die Frage. Ich habe mal vesucht mein Code zu analysieren und finde den Fehler nicht.
if(IstSpielerInFraktion(playerid, 1)) //wenn fraktion LSDP
{
for(new i = 0; i < sizeof(lspdcars); i++) //Geht durch alle lspdcars und speichert sie im Array
{
if(vehicleid == lspdcars[i]) //wenn das Auto ein lspdcar ist
{
TogglePlayerControllable(playerid,0);
SendClientMessage(playerid,farbe_rot,"Du hast keinen Schlüssel für dieses Fahrzeug");
TogglePlayerControllable(playerid,1);
}
}
}
Alles anzeigen
Wenn du nur Leute sperren willst, die kein LSPD sind, dann setze vor das IstSpielerInFraktion ein Ausrufezeichen (= nicht LSPD).
Wenn du nur Leute sperren willst, die kein LSPD sind, dann setze vor das IstSpielerInFraktion ein Ausrufezeichen (= nicht LSPD).
Ach wow...
Das stand ich aber ziemlich auf dem Schlauch ![]()
Danke nochmal!
Warum erscheint die Nachricht nicht, wenn ich spawne?
public OnPlayerConnect(playerid)
{
new playerState = GetPlayerState(playerid);
if(playerState == PLAYER_STATE_SPAWNED )
{
SendClientMessage(playerid,-1,"Test1111");
return 1;
}
OnPlayerConnect macht da keinen Sinn. Setze das bei OnPlayerSpawn hin. ![]()
Wenn du spawnst wird OnPlayerConnect nicht aufgerufen, daher zeigt es die Nachricht nicht an.
GetPlayerState macht bei so einer Abfrage eher in einem Befehl oder ähnlichem Sinn.
Ich möchte OnPlayerSpawn nicht benutzen da die Nachricht dann immer nach jedem Tod erscheint. Möchte die Nachricht nur einmal beim connecten anzeigen lassen, und da dachte ich mir das dies die beste Lösung ist, aufgrund der Tatsache das ich die Nachricht erst senden möchte wenn der Spieler gespawnt ist.
Warum erscheint die Nachricht nicht, wenn ich spawne?
public OnPlayerConnect(playerid){ new playerState = GetPlayerState(playerid); if(playerState == PLAYER_STATE_SPAWNED ) { SendClientMessage(playerid,-1,"Test1111"); return 1; }
Das muss unter public OnPlayerSpawn
//EDIT Hat sich erledgit war zu Spät
Ich möchte OnPlayerSpawn nicht benutzen da die Nachricht dann immer nach jedem Tod erscheint. Möchte die Nachricht nur einmal beim connecten anzeigen lassen, und da dachte ich mir das dies die beste Lösung ist, aufgrund der Tatsache das ich die Nachricht erst senden möchte wenn der Spieler gespawnt ist.
Setze bei OnPlayerConnect eine Spielervariable auf 0, frage bei OnPlayerSpawn ab, ob sie 0 ist, wenn ja schickst du dem Spieler die SendClientMessage und setzt die Spielervariable auf 1.
Danke euch, ich hatte diese Frage ja etwas länger her gefragt und dort wurde mir das dann auch so wie Marvin das gemacht hat vorgeschlagen. Dann hast du, @Jeffry, gesagt dafür gibt es GetPlayerState ![]()
Habe mich aber wahrscheinlich falsch ausgedrückt oder du hast mich falsch verstanden. Trotzdem danke an alle ![]()