Mit strins kannst du einen String an einem anderen String dran hängen:
https://wiki.sa-mp.com/wiki/strins
[SAMMELTHREAD] Kleine Scripting Fragen
- Rafelder
- Unerledigt
Dein Problem konnte durch einen User gelöst werden? Bedank dich bei ihm indem du seinen Beitrag als Hilfreich markierst sowie einen Daumen oben dalässt
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!
Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
-
-
Wie kann ich bei einem Dialog MSG Style Box bestimmte Parts nur für bestimmte Leute anzeigen lassen? Sprich Admin Level 1 sieht nur Admin Level 1 befehle, Admin Level 2 sieht Admin Level 1-2 etc..
Du lässt den Dialog je nach Adminrang neu öffnen.
Überall einfach die Admin Abfrage drüber, welches Level derjenige hat, und darunter dann den Dialog der gezeigt werden soll.
Und unten dann else... Du hast nicht den benötigten Adminrang.
Ungefähr verstanden was ich meine? -
-
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.
Code
Alles anzeigenocmd: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; }
-
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); -
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);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:
Code
Alles anzeigenif(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); } } }
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
vehicleidDa 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.
Code
Alles anzeigenif(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); } } }
-
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.