Hey, hab mal eine frage habe ein Ballon sys geschrieben aber weiß nicht wie ich am besten die Koordinaten machen soll wie er fliegen soll gibts dafür speziell was?
[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
-
-
Hey, hab mal eine frage habe ein Ballon sys geschrieben aber weiß nicht wie ich am besten die Koordinaten machen soll wie er fliegen soll gibts dafür speziell was?
Ich würde die Koordinaten mit dem Hubschrauber per /save machen
-
Mit einem Objekt Editor kann man das auch ganz einfach machen.
Man brauch ja immer nur bestimmte Punkte
-
Beitrag von Dr. Frauenarzt ()
Dieser Beitrag wurde vom Autor aus folgendem Grund gelöscht: Fehler gefunden (). -
So mein Rundensystem konnte ich bereits beheben
Nun bleibt noch das Problem: Ich brauche eine Funktion um zu checken welches Team das einzig uebrig gebliebene ist.
Um zu schauen wieviele aktive Teams es gibt habe ich eine Funktion GetActiveTeamCount(), welche die Anzahl der aktuell exisitierenden Teams returned.
Die Teams haben IDs 1-6.
Weiterhin soll die Funktion die ID des letzten verbleibenden Teames returnen (Abgefragt das nur noch ein Team exisitert wird durch eine if Bedingungen mit GetActiveTeamCount == 1))Hat da jemand eine Idee wie ich das realisiere? Bisher habe ich den Ansatz mit der rekursiven Funktion, jedoch ist der maximal wartungsunfreundlich, und ich kann nach fast 2 Jahren die FUnktion nicht mehr genau nachvollziehen.
C
Alles anzeigenstock TeamsAlive(bool:value) { new i=0,count=0; while(i<TEAMSIZE) { if(GetTeamPlayerCount(i) > 0) { count++; } i++; } if(bool:value == false) switch(count) { case 1: { switch(TeamsAlive(true)) { case FIRST_TEAM: { for(new d;d<MAX_PLAYERS;d++) { SendClientMessageEx(d,COLOR_WHITE,"SERVER: All remaining teams have been wiped. Team %s {FFFFFF}has won the game!",FIRST_TEAM_COLOR_TAG); printf("SERVER: All remaining teams have been wiped. Team %s has won the game!",FIRST_TEAM_COLOR_TAG); } } case SECOND_TEAM: { for(new d;d<MAX_PLAYERS;d++) { SendClientMessageEx(d,COLOR_WHITE,"SERVER: All remaining teams have been wiped. Team %s {FFFFFF}has won the game!",SECOND_TEAM_COLOR_TAG); printf("SERVER: All remaining teams have been wiped. Team %s has won the game!",SECOND_TEAM_COLOR_TAG); } } #if defined TEAMSIZE #if TEAMSIZE >= 3 case THIRD_TEAM: { for(new d;d<MAX_PLAYERS;d++) { SendClientMessageEx(d,COLOR_WHITE,"SERVER: All remaining teams have been wiped. Team %s {FFFFFF}has won the game!",THIRD_TEAM_COLOR_TAG); printf("SERVER: All remaining teams have been wiped. Team %s has won the game!",THIRD_TEAM_COLOR_TAG); } } #endif #endif #if defined TEAMSIZE #if TEAMSIZE >= 4 case FOURTH_TEAM: { for(new d;d<MAX_PLAYERS;d++) { SendClientMessageEx(d,COLOR_WHITE,"SERVER: All remaining teams have been wiped. Team %s {FFFFFF}has won the game!",FOURTH_TEAM_COLOR_TAG); printf("SERVER: All remaining teams have been wiped. Team %s has won the game!",FOURTH_TEAM_COLOR_TAG); } } #endif #endif #if defined TEAMSIZE #if TEAMSIZE >= 5 case FIFTH_TEAM: { for(new d;d<MAX_PLAYERS;d++) { SendClientMessageEx(d,COLOR_WHITE,"SERVER: All remaining teams have been wiped. Team %s {FFFFFF}has won the game!",FIFTH_TEAM_COLOR_TAG); printf("SERVER: All remaining teams have been wiped. Team %s has won the game!",FIFTH_TEAM_COLOR_TAG); } } #endif #endif #if defined TEAMSIZE #if TEAMSIZE == 6 case SIXTH_TEAM: { for(new d;d<MAX_PLAYERS;d++) { SendClientMessageEx(d,COLOR_WHITE,"SERVER: All remaining teams have been wiped. Team %s {FFFFFF}has won the game!",SIXTH_TEAM_COLOR_TAG); printf("SERVER: All remaining teams have been wiped. Team %s has won the game!",SIXTH_TEAM_COLOR_TAG); } } #endif #endif } for(new o;o<MAX_PLAYERS;o++) { ResetPlayerData(o); } FinishedGame(); } } return i; }
Weiterhin eine abgewandelte Funktion, welche beim Start prueft, ob mindetens 1 Spieler in mindestens 2 Teams ist, und wenn nicht, die IDs der jeweiligen Teams ausgibt wo ein Spieler fehlt.
Da ist ja die Schwierigkeit dass ich nicht 2 IDs auf einmal returnen kann.//edit: Ersteres habe ich bereits hinbekommen.
C
Alles anzeigenTeamRemaining() { new remainingTeamID; if(GetActiveTeamCount() < 2) { for(new i;i<TEAMSIZE;i++) { if(GetTeamPlayerCount(i) > 0) { remainingTeamID=i; break; } else { continue; } } } else { return 0; } switch(remainingTeamID) { case FIRST_TEAM: { for(new d;d<MAX_PLAYERS;d++) { SendClientMessageEx(d,COLOR_WHITE,"SERVER: All remaining teams have been wiped. Team %s {FFFFFF}has won the game!",FIRST_TEAM_COLOR_TAG); printf("SERVER: All remaining teams have been wiped. Team %s has won the game!",FIRST_TEAM_COLOR_TAG); } } case SECOND_TEAM: { for(new d;d<MAX_PLAYERS;d++) { SendClientMessageEx(d,COLOR_WHITE,"SERVER: All remaining teams have been wiped. Team %s {FFFFFF}has won the game!",SECOND_TEAM_COLOR_TAG); printf("SERVER: All remaining teams have been wiped. Team %s has won the game!",SECOND_TEAM_COLOR_TAG); } } #if defined TEAMSIZE #if TEAMSIZE >= 3 case THIRD_TEAM: { for(new d;d<MAX_PLAYERS;d++) { SendClientMessageEx(d,COLOR_WHITE,"SERVER: All remaining teams have been wiped. Team %s {FFFFFF}has won the game!",THIRD_TEAM_COLOR_TAG); printf("SERVER: All remaining teams have been wiped. Team %s has won the game!",THIRD_TEAM_COLOR_TAG); } } #endif #endif #if defined TEAMSIZE #if TEAMSIZE >= 4 case FOURTH_TEAM: { for(new d;d<MAX_PLAYERS;d++) { SendClientMessageEx(d,COLOR_WHITE,"SERVER: All remaining teams have been wiped. Team %s {FFFFFF}has won the game!",FOURTH_TEAM_COLOR_TAG); printf("SERVER: All remaining teams have been wiped. Team %s has won the game!",FOURTH_TEAM_COLOR_TAG); } } #endif #endif #if defined TEAMSIZE #if TEAMSIZE >= 5 case FIFTH_TEAM: { for(new d;d<MAX_PLAYERS;d++) { SendClientMessageEx(d,COLOR_WHITE,"SERVER: All remaining teams have been wiped. Team %s {FFFFFF}has won the game!",FIFTH_TEAM_COLOR_TAG); printf("SERVER: All remaining teams have been wiped. Team %s has won the game!",FIFTH_TEAM_COLOR_TAG); } } #endif #endif #if defined TEAMSIZE #if TEAMSIZE == 6 case SIXTH_TEAM: { for(new d;d<MAX_PLAYERS;d++) { SendClientMessageEx(d,COLOR_WHITE,"SERVER: All remaining teams have been wiped. Team %s {FFFFFF}has won the game!",SIXTH_TEAM_COLOR_TAG); printf("SERVER: All remaining teams have been wiped. Team %s has won the game!",SIXTH_TEAM_COLOR_TAG); } } for(new o;o<MAX_PLAYERS;o++) { ResetPlayerData(o); } FinishedGame(); #endif #endif } return 1; }
Jedoch habe ich da noch irgendas drinnen was den Compiler crasht.
-
Hey,
Habe mal eine kurze frage...
C
Alles anzeigenif(response == 1) { if(strlen(inputtext) > 50 || strlen(inputtext) < 0) { ShowPlayerDialog(playerid, DIALOG_NEWS_DODO2, DIALOG_STYLE_INPUT,"Werbung","Gebe bitte nun einen Text ein, welchen\ndie Dodo herumfliegen soll.\nMaximal 50 Zeichen!","Weiter","Abbruch"); return SendClientMessage(playerid, COLOR_WHITE,"Maximal 50 Zeichen und mindestens 1 Zeichen !"); } SendClientMessage(playerid, COLOR_WHITE,"{AFAFAF}Du hast den Auftrag mit folgenden Text gegeben:"); format(string,sizeof(string),"{FFFFFF}%s",inputtext); SendClientMessage(playerid, COLOR_WHITE, string); if(WerbungVAR[playerid] == 1) { DestroyObject(WerbungObjekt[4]); DestroyObject(WerbungObjekt[8]); WerbungObjekt[4] = CreateObject(4988, 0, 0, -1000, 0 ,0, 0, 100); WerbungObjekt[8] = CreateObject(4988, 0, 0, -1000, 0, 0, 0, 100); SetObjectMaterialText(WerbungObjekt[4], inputtext,0, 120, "Arial", 26, 1, -256, -8092540, 1); SetObjectMaterialText(WerbungObjekt[8], inputtext,0, 120, "Arial", 26, 1, -256, -8092540, 1); mysql_format(MySqlConnection, query, sizeof(query), "UPDATE `server_werbung` SET `Text`='%s' WHERE `wid`='%d'", inputtext, WerbungVAR[playerid]); mysql_tquery(MySqlConnection, query, "", ""); WerbungVAR[playerid] = -1; return 1; } if(WerbungVAR[playerid] == 2) { DestroyObject(WerbungObjekt[5]); DestroyObject(WerbungObjekt[9]); WerbungObjekt[5] = CreateObject(4988, 0, 0, -1000, 0, 0, 0, 100); WerbungObjekt[9] = CreateObject(4988, 0, 0, -1000, 0, 0, 0, 100); SetObjectMaterialText(WerbungObjekt[5], inputtext, 0, 120, "Arial", 26, 1, -256, -8092540, 1); SetObjectMaterialText(WerbungObjekt[9], inputtext, 0, 120, "Arial", 26, 1, -256, -8092540, 1); mysql_format(MySqlConnection, query, sizeof(query), "UPDATE `server_werbung` SET `Text`='%s' WHERE `wid`='%d'", inputtext, WerbungVAR[playerid]); mysql_tquery(MySqlConnection, query, "", ""); WerbungVAR[playerid] = -1; return 1; } if(WerbungVAR[playerid] == 3) { DestroyObject(WerbungObjekt[6]); DestroyObject(WerbungObjekt[10]); WerbungObjekt[6] = CreateObject(4988, 0, 0, -1000, 0, 0, 0, 100); WerbungObjekt[10] = CreateObject(4988, 0, 0, -1000, 0, 0, 0, 100); SetObjectMaterialText(WerbungObjekt[6], inputtext, 0, 120, "Arial", 26, 1, -256, -8092540, 1); SetObjectMaterialText(WerbungObjekt[10], inputtext, 0, 120, "Arial", 26, 1, -256, -8092540, 1); mysql_format(MySqlConnection, query, sizeof(query), "UPDATE `server_werbung` SET `Text`='%s' WHERE `wid`='%d'", inputtext, WerbungVAR[playerid]); mysql_tquery(MySqlConnection, query, "", ""); WerbungVAR[playerid] = -1; return 1; } if(WerbungVAR[playerid] == 4) { DestroyObject(WerbungObjekt[7]); DestroyObject(WerbungObjekt[11]); WerbungObjekt[7] = CreateObject(4988, 0, 0, -1000, 0, 0, 0, 100); WerbungObjekt[11] = CreateObject(4988, 0, 0, -1000, 0, 0, 0, 100); SetObjectMaterialText(WerbungObjekt[7], inputtext, 0, 120, "Arial", 26, 1, -256, -8092540, 1); SetObjectMaterialText(WerbungObjekt[11], inputtext, 0, 120, "Arial", 26, 1, -256, -8092540, 1); mysql_format(MySqlConnection, query, sizeof(query), "UPDATE `server_werbung` SET `Text`='%s' WHERE `wid`='%d'", inputtext, WerbungVAR[playerid]); mysql_tquery(MySqlConnection, query, "", ""); WerbungVAR[playerid] = -1; return 1; } } }
Wen ich eine Neue Werbung auf das Objekt mache verschwindet das Object einfach aber warum?
Wen ich den Server Neustarte ist es da mit den akuellen tex :o -
DestroyObject(WerbungObjekt[4]);
DestroyObject(WerbungObjekt[8]);
WerbungObjekt[4] = CreateObject(4988, 0, 0, -1000, 0 ,0, 0, 100);
WerbungObjekt[8] = CreateObject(4988, 0, 0, -1000, 0, 0, 0, 100);Du löschst das jeweilige Werbeobjekt und erstellst es an Position 0.0, 0.0, -1000.0 neu, das erklärt das "Verschwinden", kann mir nicht vorstellen dass diese Position beabsichtigt ist.
-
@Sub Royal Anstatt so viel redundanten Code zu haben, würde ich einfach *_TEAM_COLOR_TAG in ein Array schmeißen und per remainingTeamID auf den jeweiligen Index zu greifen. Dann hast du deutlich weniger Zeilen, sparst dir das mit den Markos und das hinzufügen / entfernen weiterer Teams (im Allgemeinen die Wartbarkeit) erleichtert sich deutlich.
-
@Sub Royal Anstatt so viel redundanten Code zu haben, würde ich einfach *_TEAM_COLOR_TAG in ein Array schmeißen und per remainingTeamID auf den jeweiligen Index zu greifen. Dann hast du deutlich weniger Zeilen, sparst dir das mit den Markos und das hinzufügen / entfernen weiterer Teams (im Allgemeinen die Wartbarkeit) erleichtert sich deutlice
Danke dir schonmal dafuer. So werde ich definitiv viele hundert Zeilen an Code einsparen.
Wie ist es jedoch am effizientesten die Strings in den Arrays zu speichern? Genau da scheiter ich gerade heh. Sowas habe ich nie zuvor probiert.Habe folgendes 2D Array dazu erstellt, wie packe ich am besten die Strings dort rein, und wie rufe ich diese ab? (Strings sind die TEAM_COLOR_TAG Werte) Bspw. per strcpy?
TEAMSIZE ist maximal 6, je nachdem wieviele Teams ich eingestellt habe.
-
Du kannst das so schreiben:
C
Alles anzeigenstock CountTeams() { new count; for(new i; i<TEAMSIZE; i++) if(GetTeamPlayerCount(i) > 0) count++; return count; } stock TeamsAlive(bool:value) { if(CountTeams() != 1) return 1; static const teams[][] = { FIRST_TEAM_COLOR_TAG, SECOND_TEAM_COLOR_TAG, THIRD_TEAM_COLOR_TAG, FOURTH_TEAM_COLOR_TAG, FIFTH_TEAM_COLOR_TAG, SIXTH_TEAM_COLOR_TAG }; new string[128]; format(string,sizeof(string),"SERVER: All remaining teams have been wiped. Team %s {FFFFFF}has won the game!",teams[TeamsAlive(true)]); for(new i=GetPlayerPoolSize(); i!=-1; i--) { if(!IsPlayerConnected(i) || IsPlayerNPC(i)) continue; SendClientMessage(i,-1,string), printf(string), ResetPlayerData(i); } FinishedGame(); return i; }
Weiß nicht, was du mit der value als Parameter vor hast.
Es ist besser vor der Schleife einmal den String zu formatieren, ansonsten wird er bei jedem durchlauf formatiert, das ist ja ineffizient.
TeamsAlive(true) gibt hoffentlich 0 als ersten Index zurück
-
Alles klar, werde ich mal probieren!
Nun ein anderes kleines Problem.
Habe 2 gloable Variablen welche ich nicht mehr nutze, welche nirgendwo gebraucht werden, und deshalb warnings bringen.
Wenn ich diese streiche schmiert jedoch der Compiler immer ab, wie geht man da bei der Fehlersuche am besten vor?
Weil die werden letztendlich nur einmalig im Script genutzt, undzwar da wo ich die definiere. -
Probiere sie mal als new stock zu deklarieren
-
Danke dir, der Fehler ist weg. Jedoch muss ich mal den Gamemode komplett auf den Kopf stellen, denn jegliche Aenderungen an den forwards und Variablen, egal ob hinzufuegen oder entfernen fuehrt zu einem crashen des Compilers
//edit: Sehe gerade, wenn ich #include <YSI\y_ini> von meinem Mode streiche kackt der Compiler ab, ohne das zu streichen geht er ohne Fehler durch heh.
Die einzige Funktion die ich zu nutzen scheine ist strcpy.//edit2: Habe gerade mal eine andere strcpy Funktion direkt im Script implementiert, aber auch dann schmiert der Compiler ab. Wird vielleicht irgendwas aus den YSI Bibliotheken genutzt was ich nicht weiss?
-
//edit2: Habe gerade mal eine andere strcpy Funktion direkt im Script implementiert, aber auch dann schmiert der Compiler ab. Wird vielleicht irgendwas aus den YSI Bibliotheken genutzt was ich nicht weiss?
Check dein Skript evtl mal auf Klammerfehler.
Ansonsten kann es gut sein, dass ysi Probleme macht, bin mir grad gar nicht sicher, ob du dafür inzwischen schon den Zeex Compiler verwenden musst...
-
Moin!
Ich hätt jetzt ne Lösung wie ich das mache mit den mehreren Verwalter Rängen.
Verwalter1
Verwalter2
Verwalter3
Verwalter4Als Spalten in der DB
/makeadmin SpielerID Verwalter 1 - 4 Rang 1 -7
Wie kann ich das machen das ich den Rang in einer der 4 Veralter Spalten setze und wenn zb in der ersten Spalte er den Rang 4 schon hat dass ich diesen in keienr anderen vergeben kann?
-
Danke euch!
Habe nun noch eine kleine Sache.
Habe hier den Teil dank @Kaliber, mit welchem ich jetzt mein Scoreboard machen kann.
Aber wie packe ich das ganze vernuenftig in den Dialog?Ich will dort nur die Spieler angeben die ich auch drin habe, also wenn ich bspw. nur 2 Spieler habe, soll in dem String kein 3rd place etc sein.
Dementsprechend faellt ja auch abhaengig von der Spieleranzahl die Anzahl an Arrayeintraegen niedriger aus die ich in Format reinpacke.Versteht man das was ich vor habe?
Ist das eventuell zu aufwaendig umzusetzen?Eine Idee waere fuer jeden Platz einen eigenen String zu machen, und dann in nem Switch case zu schauen wieviele Spieler tatsaechlich drin sind, und dementsprechend fuer jeden Fall eine eigene Format Linie.
C
Alles anzeigenFinishedGame() { new scoreTable[MAX_PLAYERS][2], idx; for(new i = GetPlayerPoolSize(); i!=-1; i--) { if(!IsPlayerConnected(i) || IsPlayerNPC(i)) continue; scoreTable[i][0] = playerdataInfo[i][pKills]; scoreTable[i][1] = i; } SortDeepArray(scoreTable, 0, .order = SORT_DESC); new scorestring[512]; new minutes,seconds; minutes = totaltime / 60; seconds = seconds % 60; format(scorestring,sizeof(scorestring),"Duration of the game: %d:%d \n 1st Place: ",minutes, seconds,); ShowPlayerDialog(playerid, 1234, DIALOG_STYLE_MSGBOX, "Scoreboard",scorestring, "", ""); SetTimer("GMX",15000,false); return 1; }
-
Wie kann ich das machen das ich den Rang in einer der 4 Veralter Spalten setze und wenn zb in der ersten Spalte er den Rang 4 schon hat dass ich diesen in keienr anderen vergeben kann?
z.B. so:
C
Alles anzeigen#define MAX_VERWALTER 4 #define ExistVerwalter(%0) (Verwalter[%0][0]!=EOS) new Verwalter[MAX_VERWALTER][MAX_PLAYER_NAME]; new id; if(ExistVerwalter(id)) return SCM(playerid,-1,"Ein verwalter existiert bereits!"); format(Verwalter[id],MAX_PLAYER_NAME, GetName(pID)); //Setzt den Verwalter
Ist das eventuell zu aufwaendig umzusetzen?
Kannst es so machen:
C
Alles anzeigenFinishedGame() { new scoreTable[MAX_PLAYERS][2], idx, counter; for(new i = GetPlayerPoolSize(); i!=-1; i--) { if(!IsPlayerConnected(i) || IsPlayerNPC(i)) continue; scoreTable[i][0] = playerdataInfo[i][pKills]; scoreTable[i][1] = i; counter++; } SortDeepArray(scoreTable, 0, .order = SORT_DESC); new scorestring[512], minutes,seconds; minutes = totaltime / 60; seconds = seconds % 60; format(scorestring,sizeof(scorestring),"Duration of the game: %d:%d",minutes,seconds); for(new i,pID; i<counter; i++) { pID = scoreTable[i][1]; format(scorestring,sizeof(scorestring),"%s\n%d. Place: %d",scorestring,(i+1),playerdataInfo[pID][pKills]); } ShowPlayerDialog(playerid, 1234, DIALOG_STYLE_MSGBOX, "Scoreboard",scorestring, "", ""); SetTimer("GMX",15000,false); return 1; }
-
Danke Typisch Kaliber.
Deine Loesung hat nur 1/8 der Codelaenge meiner Loesung und funktioniert prima. Vielen Dank nochmal. -
Danke!
Mein /makeverwalter sieht aktuell so aus.
ocmd:makeverwalter(playerid, params[])
{
//if(SD[playerid][pEingeloggt] == 0)return SCM(playerid, GRAU, "Du bist nicht eingeloggt!");
new pID, verwid, string[128];
if(!iPAA(playerid,5))
{
if(sscanf(params, "ui", pID, verwid))return makeadmin;
//if(adminid < 2)return SCM(playerid, GRAU, "Du kannst nur ab Rang 2 vergeben.");
if(IPN(pID))return 1;
//if(IsPlayerNPC(pID))return 1;
//if(!Eingeloggt[pID])return SCM(playerid, GRAU, "Dieser Spieler ist nicht eingeloggt!");
//if(SD[pID][pIntro] < 1)return SCM(playerid, GRAU, "Der Spieler ist noch im Tutorial.");
if(verwid == 0){
format(string,sizeof(string), GVRN(playerid));
SD[pID][pVerwalter] = verwid;
format(string, sizeof(string), "Du hast %s %s aus dem Teamposten %s entlassen", string,SD[pID][pName], string);
SCM(playerid, BLAU, string);
format(string,sizeof(string), GVRN(playerid));
SD[pID][pVerwalter] = verwid;
format(string, sizeof(string), "%s %s hat dir den Rang %s entzogenn!", string,SD[playerid][pName],GVRN(pID));
SCM(pID, BLAU, string);
format(string,sizeof(string), GVRN(playerid));
SD[pID][pVerwalter] = verwid;
format(string, sizeof(string), "AdmCMD: %s %s hat %s %s den Rang %s entzogen!", string,SD[playerid][pName],string, SD[pID][pName],GVRN(pID));
SAM(BLAU, string);
SD[pID][pVerwalter] = 0;
SUS(pID);
return 1;
}
if(verwid < 1 || verwid > 7)return adminrangnichtexistent;
format(string,sizeof(string), GVRN(pID));
SD[pID][pVerwalter] = verwid;
format(string, sizeof(string), "Du hast %s %s den Teamrang %s gegeben", string,SD[pID][pName], GVRN(pID));
SCM(playerid, BLAU, string);
format(string, sizeof(string), "%s %s hat dir den Teamrang %s gegeben",GVRN(playerid),SD[playerid][pName],GVRN(pID));
SCM(pID, BLAU, string);
format(string,sizeof(string), GVRN(pID));
SD[pID][pVerwalter] = verwid;
format(string, sizeof(string), "AdmCMD: %s %s hat %s %s zum %s ernannt.",string, SD[playerid][pName],string, SD[pID][pName], GVRN(pID));
SAM(BLAU,string);
SUS(pID);
return 1;
}
else {SCM(playerid, GRAU, "Du hast nicht genügend Rechte für diesen Befehl.");}
return 1;
}Wo müsste ich da deinen letzten Code einsetzen? Brauch ich da nicht irgendwo pVerwalter1 - pVerwalter4?
-
Was ist die Standardfarbe von der Dialogschrift in den Dialogboxen?
Weil ich nutze fuer mein TEAM_COLOR_TAG eine Inline Farbe, und dannach wird das ja so weitergemacht. Jedoch will ich da wieder auf die normale Farbe wechseln.