Danke, so habe ich das Ganze noch gar nicht betrachtet. ![]()
Funktioniert.
[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
-
-
Danke, so habe ich das Ganze noch gar nicht betrachtet.

Funktioniert.
Musste gerade etwas noch mal an meinem Post überarbeiten...^^Nimm die Version jetzt

mfg.

-
Alles anzeigen
Mal als kleinen Verbesserungsvorschlag dieser Code:
ocmd:admins(playerid,params[]) {
new name[MAX_PLAYER_NAME],string[24 + MAX_PLAYER_NAME];
for(new i,l=GetMaxPlayers();i<l;i++) {
if(!IsPlayerConnected(i)) continue;
GetPlayerName(i,name,MAX_PLAYER_NAME);
switch(GetPVarInt(i,"Adminlevel")) { //evtl anpassen
case 0: continue;
case 1: format(string,sizeof(string),"Testsupporter: %s",name);
case 2: format(string,sizeof(string),"Supporter: %s",name);
case 3: format(string,sizeof(string),"ProSUP: %s",name);
case 4: format(string,sizeof(string),"Moderator: %s",name);
case 5: format(string,sizeof(string),"SupMOD: %s",name);
case 6: format(string,sizeof(string),"ProMOD: %s",name);
case 7: format(string,sizeof(string),"High Moderator: %s",name);
case 8: format(string,sizeof(string),"Admin: %s",name);
case 9: format(string,sizeof(string),"ProADM: %s",name);
case 10: format(string,sizeof(string),"High Admin: %s",name);
case 11: format(string,sizeof(string),"Stellv. Projektleiter: %s",name);
case 12: format(string,sizeof(string),"Projektleiter: %s",name);
}
SendClientMessage(playerid,COLOR_GRAD1,string);
}
return 1;
}PS: Achtet besonders auf die Schleife und die Deklaration der Variablen

mfg.

Um das ganze aber nicht jedes mal so zu nutzen kann man sich dafür auch einen Stock nutzen
Bsp:
stock Adminrang(playerid)
{
new rang[54];
switch(SpielerInfo[playerid][Adminlevel])
{
case 0:{rang="-/-";}
case 1:{rang="Test Supporter";}
case 2:{rang="Supporter";}
case 3:{rang="Moderator";}
case 4:{rang="Techniker";}
case 5:{rang="Administrator";}
case 6:{rang="Server Manager";}
case 7:{rang="Serverleitung";}
default:{rang="ERROR";}
}
return rang;
}Ich weiß mit einem format wäre es besser

-
Soweit komme ich damit voran.
Nun wird es soweit gut ausgegeben, dennoch ein Fehler:stock Adminrang(playerid)
{
new rang[54];
switch(GetPVarInt(playerid,"Adminlevel"))
{
case 0:{rang="0";}
case 1:{rang="Testsupporter";}
case 2:{rang="Supporter";}
case 3:{rang="ProSUP";}
case 4:{rang="Moderator";}
case 5:{rang="SupMOD";}
case 6:{rang="ProMOD";}
case 7:{rang="High Moderator";}
case 8:{rang="Admin";}
case 9:{rang="ProADM";}
case 10:{rang="High Admin";}
case 11:{rang="Stellv. Projektleiter";}
case 12:{rang="Projektleiter";}
}
return rang;
}format(string2,sizeof(string),"Du hast %s zu einem %s befördert.",name,Adminrang(pID));
Im Spiel wird mir nun angezeigt, dass der Spieler zu Rang 0 befördert wird, auch bei Eingabe der Zahlen 1-12.
format(string,sizeof(string),"Du wurdest von %s zu einem %s befördert.",name,Adminrang(pID));
SendClientMessage(pID,rot,string);
Zeigt es erst gar nicht an. -
Alles anzeigen
Soweit komme ich damit voran.
Nun wird es soweit gut ausgegeben, dennoch ein Fehler:stock Adminrang(playerid)
{
new rang[54];
switch(GetPVarInt(playerid,"Adminlevel"))
{
case 0:{rang="0";}
case 1:{rang="Testsupporter";}
case 2:{rang="Supporter";}
case 3:{rang="ProSUP";}
case 4:{rang="Moderator";}
case 5:{rang="SupMOD";}
case 6:{rang="ProMOD";}
case 7:{rang="High Moderator";}
case 8:{rang="Admin";}
case 9:{rang="ProADM";}
case 10:{rang="High Admin";}
case 11:{rang="Stellv. Projektleiter";}
case 12:{rang="Projektleiter";}
}
return rang;
}format(string2,sizeof(string),"Du hast %s zu einem %s befördert.",name,Adminrang(pID));
Im Spiel wird mir nun angezeigt, dass der Spieler zu Rang 0 befördert wird, auch bei Eingabe der Zahlen 1-12.
format(string,sizeof(string),"Du wurdest von %s zu einem %s befördert.",name,Adminrang(pID));
SendClientMessage(pID,rot,string);
Zeigt es erst gar nicht an.Kontext fehlt.
Höchstwahrscheinlich wird die Formatierung vor der Setzung des Adminrangs ausgeführt, was das bedeutet kannst du dir jetzt an 11 Fingern abzählen.
Übrigens:
format(string2,sizeof(string)Das würde ich so nicht lassen, es hat einen Grund warum die Größe des zu formatierenden Strings übergeben werden muss und du übergibst hier die Größe von string um string2 zu formatieren. Ist string2 nun größer als string, wirst du ein Problem haben wenn die volle Länge noch beansprucht werden soll.
-
Alles anzeigen
Kontext fehlt.
Höchstwahrscheinlich wird die Formatierung vor der Setzung des Adminrangs ausgeführt, was das bedeutet kannst du dir jetzt an 11 Fingern abzählen.
Übrigens:
format(string2,sizeof(string)Das würde ich so nicht lassen, es hat einen Grund warum die Größe des zu formatierenden Strings übergeben werden muss und du übergibst hier die Größe von string um string2 zu formatieren. Ist string2 nun größer als string, wirst du ein Problem haben wenn die volle Länge noch beansprucht werden soll.
ocmd:setadmin(playerid,params[])
{
if(IsPlayerAnAdmin(playerid,12))
{
new pID, rang, string[128], string2[128];
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,MAX_PLAYER_NAME);
if(sscanf(params,"ui",pID,rang)) return SendClientMessage(playerid,COLOR_GREY,"Funktion: /setadmin [PlayerID] [AdminLevel]");
if(rang <1 || rang > 12) return SendClientMessage(playerid,rot,"Ränge sind bis zu einer Stufe von 12 gültig.");
SetPVarInt(pID,"Adminlevel",rang);
format(string,sizeof(string),"Du wurdest von %s zu einem %s befördert.",name,Adminrang(pID));
SendClientMessage(pID,rot,string);
format(string2,sizeof(string2),"Du hast %s zu einem %s befördert.",name,Adminrang(pID));
SendClientMessage(playerid,rot,string2);
SpielerSpeichern(pID);
return 1;
}
else
{
SendClientMessage(playerid,rot,"Du bist nicht berechtigt.");
}
return 1;
}Ich bin mir mit der Formatierung nicht ganz sicher.

-
String 2 brauchst du nicht wenn du ihm die message schon einmal ausgegeben hast

-
String 2 brauchst du nicht wenn du ihm die message schon einmal ausgegeben hast

Ich möchte ja ihm und mir eine Message geben. -
Ich möchte ja ihm und mir eine Message geben.
Kannst du doch.. dafür reicht ein string.. du formatierst ihn danach ja nochmal bsp..format (string, sizeof (string),"text", parameter);
SendClientMessage (..);
format (string, sizeof (string),"text", parameter);
SendClientMessage (..); -
Kannst du doch.. dafür reicht ein string.. du formatierst ihn danach ja nochmal bsp..format (string, sizeof (string),"text", parameter);
SendClientMessage (..);
format (string, sizeof (string),"text", parameter);
SendClientMessage (..);
Wenn ich es so wie du mache, dann zeigt es mir gar nichts an.
-
Wenn ich es so wie du mache, dann zeigt es mir gar nichts an.
zeig deinen code..
-
format(string,sizeof(string),"Du wurdest von %s zu einem %s befördert.",name,Adminrang(pID));
SendClientMessage(pID,rot,string);
format(string,sizeof(string),"Du hast %s zu einem %s befördert.",name,Adminrang(pID));
SendClientMessage(playerid,rot,string);So wolltest du es haben ..
//E:
Nichts desto trotz, habe ich es dennoch so gemacht und es funktioniert:format(string,sizeof(string),"Du wurdest von %s zu einem %s befördert.",name,Adminrang(pID));
SendClientMessage(pID,rot,string);
format(string2,sizeof(string2),"Du hast %s zu einem %s befördert.",name,Adminrang(pID));
SendClientMessage(playerid,rot,string2);//E2: Man sollte schon seine ID statt die eines 0's angeben.
-
Alles anzeigen
format(string,sizeof(string),"Du wurdest von %s zu einem %s befördert.",name,Adminrang(pID));
SendClientMessage(pID,rot,string);
format(string,sizeof(string),"Du hast %s zu einem %s befördert.",name,Adminrang(pID));
SendClientMessage(playerid,rot,string);So wolltest du es haben ..
//E:
Nichts desto trotz, habe ich es dennoch so gemacht und es funktioniert:format(string,sizeof(string),"Du wurdest von %s zu einem %s befördert.",name,Adminrang(pID));
SendClientMessage(pID,rot,string);
format(string2,sizeof(string2),"Du hast %s zu einem %s befördert.",name,Adminrang(pID));
SendClientMessage(playerid,rot,string2);//E2: Man sollte schon seine ID statt die eines 0's angeben.
Wenn du die Parameter richtig angibst, funktioniert mein Code genauso und entlastet den Server ein wenig
-
Warum kommen in dieser Zeile:
format(string,sizeof(string), "Du hast auf die Farbe %s getippt, doch die richtige Farbe war %s. Dein Einsatz hat sich in Luft aufgelöst.", farbe, ( dice == 1 ) ? ("Rot") : ("Schwarz") : ("Gelb") );Diese Fehler:
C:\Users\hsj\Desktop\neu.pwn(55845) : error 029: invalid expression, assumed zero
C:\Users\hsj\Desktop\neu.pwn(55845) : warning 215: expression has no effect
C:\Users\hsj\Desktop\neu.pwn(55845) : error 001: expected token: ";", but found ")"
C:\Users\hsj\Desktop\neu.pwn(55845) : error 029: invalid expression, assumed zero
C:\Users\hsj\Desktop\neu.pwn(55845) : fatal error 107: too many error messages on one lineCompilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
4 Errors.
-
Zeig mal die Zeile darunter / darüber.
-
Alles anzeigen
Warum kommen in dieser Zeile:
format(string,sizeof(string), "Du hast auf die Farbe %s getippt, doch die richtige Farbe war %s. Dein Einsatz hat sich in Luft aufgelöst.", farbe, ( dice == 1 ) ? ("Rot") : ("Schwarz") : ("Gelb") );Diese Fehler:
C:\Users\hsj\Desktop\neu.pwn(55845) : error 029: invalid expression, assumed zero
C:\Users\hsj\Desktop\neu.pwn(55845) : warning 215: expression has no effect
C:\Users\hsj\Desktop\neu.pwn(55845) : error 001: expected token: ";", but found ")"
C:\Users\hsj\Desktop\neu.pwn(55845) : error 029: invalid expression, assumed zero
C:\Users\hsj\Desktop\neu.pwn(55845) : fatal error 107: too many error messages on one lineCompilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
4 Errors.
Schau dir das nochmal an:
http://wiki.sa-mp.com/wiki/Control_Structures#.3F:Das "Gelb" passt da nicht!
Wird aber beim Format da drin wohl nicht funktionieren.
Ich denke das musst du über dem Format gesondert machen. -
Ich möchte gerne, dass zusätzliche Objekte auch eine weite Erscheinungsrate habe.
Wie kann ich das anstellen, dass der Client die Objekte nur 1 mal laden muss? -
kleine Frage - keine antwort bei google :
Gibt es eine Möglichkeit den Vorderteil des Mähdreschers (Harvest) in SAMP rotieren zu lassen?
Bin mir nicht mehr sicher ob das im Singleplayer ging und da manche Fahrzeuge ja ähnliche Funktionen bieten dachte ich mir fragste einfach mal nach
-
-
kleine Frage - keine antwort bei google :
Gibt es eine Möglichkeit den Vorderteil des Mähdreschers (Harvest) in SAMP rotieren zu lassen?
Bin mir nicht mehr sicher ob das im Singleplayer ging und da manche Fahrzeuge ja ähnliche Funktionen bieten dachte ich mir fragste einfach mal nach
Die Rotieren doch schon oder nicht? (Jedenfalls genauso wie im Singleplayer)
//Offtopic:
Ich möchte gerne, dass zusätzliche Objekte auch eine weite Erscheinungsrate habe.
Wie kann ich das anstellen, dass der Client die Objekte nur 1 mal laden muss?Benötige immer noch Hilfe
