Hallo Lieber User ich wollte nachfragen wie ich ein Tutorial erstellen kann
im msgbox format?
Danke im voraus
Beiträge von [PeL]Smiley
-
-
SpielerInfo[pID][pAdminlevel] = Adminlevel;
Dank jetzt bekomme ich keine Warnings mehr :))
-
In welchen 2 Zeilen sind die Warnings genau?
MfGif(sscanf(params,"ui",pID,pAdminlevel))return SendClientMessage(playerid,Rot,""COLG"[Info:]"COLR"/setadmin [playerid] [adminlevel]");
SpielerInfo[pID][pAdminlevel]=pAdminlevel; -
SendClientMessage(playerid,Rot,"[Info:] /setadmin [playerid] [adminlevel]");
Probiere es erstmal so. Meines Wissens musst du die Farben mit " Hier ist Text {RRGGBB} Hier ist noch mehr Text {RRGGBB} Hier ist immernoch Text" ändern.Ne hat nichts gebracht genau die gleichen Errors
-
Welche Zeilen sind das? DIe hier?
SendClientMessage(playerid,Rot,""COLG"[Info:]"COLR"Möglich ab: "COLG" Adminrank: 4");
SendClientMessage(playerid,Rot,""COLG"[Info:]"COLR"/setadmin [playerid] [adminlevel]");Die hier:
if(sscanf(params,"ui",pID,pAdminlevel))return SendClientMessage(playerid,Rot,""COLG"[Info:]"COLR"/setadmin [playerid] [adminlevel]");
SpielerInfo[pID][pAdminlevel]=pAdminlevel; -
Warnings:
C:\Users\kev\Desktop\test\gamemodes\test.pwn(522) : warning 213: tag mismatch
C:\Users\kev\Desktop\test\gamemodes\test.pwn(523) : warning 213: tag mismatch
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase2 Warnings.
Code:
ocmd:setadmin(playerid,params[])
{
if(SpielerInfo[playerid][pAdminlevel] < 4)return SendClientMessage(playerid,Rot,""COLG"[Info:]"COLR"Möglich ab: "COLG" Adminrank: 4");
new pID;
if(sscanf(params,"ui",pID,pAdminlevel))return SendClientMessage(playerid,Rot,""COLG"[Info:]"COLR"/setadmin [playerid] [adminlevel]");
SpielerInfo[pID][pAdminlevel]=pAdminlevel;
SavePlayer(pID);
SendClientMessage(pID,Rot,"Dein Adminrang wurde geändert.");
SendClientMessage(playerid,Rot,"Du hast den Adminrang geändert.");
return 1;
} -
Aduty befehl | Need help
Hier wurde schonmal so eine Frage gestellt -
Also geht das mit dem Befehl von rocky,das man das mit dem selben Befehl auch wieder wegmachen kann?
-
Sag mir was du nicht verstehst und ich probiere es dir zu erklären
Oder liegt es einfach daran, dass bei mir der Zeilenumbruch nicht will ?
Das mit dem Zeilenumbruch denke ich auch ja,aber ich denke ich würde es besser verstehen in ocmd und vllt. genauere Erklärungen dabei.
Weil ich will ja mein TextDraw usebox anzeigen lassen mit /infos und mit /infos auch wieder Destroyen -
Also zu deiner ersten Frage: Ich mach dir mal ein Beispiel ( dafür benutze ich zur Demonstration mal ZCMD)
//oben im Scriptnew TextdrawState[MAX_PLAYERS] ;CMD:infos(playerid, params[]){if(TextdrawState[playerid] == 1){PlayerTextDrawShow(playerid,blabla);TextdrawState[playerid] = 0;return 1;}else if(TextdrawState[playerid] == 0){PlayerTextDrawHide(playerid,blabla);TextdrawState[playerid] = 1;return 1;} return 1;}//bei OnPlayerConnectTextdrawState[playerid]=0;
Irgendwie klappt das mit dem Zeilenumbruch bei mir wieder nicht, ich hoffe man kann es lesenIrgendwie verstehe ich es gerade nicht hmm...
-
Ich habe auch eine Frage bezüglich eines Textdraw's.
Undzwar:
Ich wollte einen Befehl /infos mit einer usebox Textdraw benutzen,wie kann ich daraus einen befehl machen ihn anzeigen lassen und dann beim zweiten mal den Code eingeben wieder destroyen?
Der Code:
http://pastebin.com/iPh82kZzUnd kann man das Textdraw noch verkleinern? Also "sparender" machen? auch mit den new Textdraw 0 und textdraw 1 blabla?
Danke im voraus -
Ähm, kann sein, dass ich grade verwirrt bin aber zeigt deine Abfrage die Nachricht nicht allen Admins mit den Admin Leveln 4 und höher ?
Wenn der Admin Level nicht kleiner als 4 ist..
Meiner Meinung nach ist die Abfrage mitif(SpielerInfo[playerid][pAdminlevel] < 4) return SendClientMessage(playerid,Rot,"Möglich ab: ´COLG´Adminrank 4");
Oder ich bin grade einfach verwirrt ...
Nein,es zeigt jeden einzelnen Spieler an,der nicht Adminlevel 4 oder dadrüber ist.
//edit: Thema gelöst,kann closed werden -
public OnPlayerCommandPerformed(playerid, cmdtext[], success)
{
new string[128];
format(string, sizeof string, "Der Befehl "COLO"%s"COLW" existiert nicht!", cmdtext);
if(!success)return SendClientMessage(playerid, Weiß, string);
return 1;
}Ich habe grade gegoogled.
Laut dem sa-mp.com Forum ist das ein Callback von zcmd und nicht von ocmd.
Ich weiß nicht ob es auch mittlw. in ocmd existiert, aber klammer mal diesen Callback aus.Dieses habe ich bereits schon ausgeklammet,und nun kommt : "Server unknown Command"
-
Diese Abfrage ist auch bescheuert:
if(!SpielerInfo[playerid][pAdminlevel] >= 4) return SendClientMessage(playerid,Rot,"Möglich ab: 'COLG' Adminrank 4");Versuch das mal:
if(SpielerInfo[playerid][pAdminlevel] < 4) return SendClientMessage(playerid,Rot,"Möglich ab: 'COLG' Adminrank 4");Nein so funktioniert es auch nicht?
Liegt es vllt. am ocmd include oderso? -
ocmd:restartserver(playerid,params[]){
if(!SpielerInfo[playerid][pAdminlevel] >= 4) return SendClientMessage(playerid,Rot,"Möglich ab: 'COLG' Adminrank 4");
SendClientMessageToAll(Grün,"Der Server wird neugestartet!Es werden alle Accounts gespeichert!");
for(new i;i<max_players;i++)
{
if(IsPlayerConnected(i))SavePlayer(i);
}
SendRconCommand("gmx");
return 1;
}das is ne schleife
PS: jeder verbundene Spieler wird gespeichert.Es funktioniert immernoch nicht es wird immernoch angezeigt das der Befehl nicht exestiert..
-
ocmd:restartserver(playerid,params[])
{
if(SpielerInfo[playerid][pAdminlevel] > 4) return SendClientMessage(playerid,Rot,"Möglich ab: "COLG" Adminrank 4");
SendClientMessageToAll(Grün,"Der Server wird neugestartet!Es werden alle Accounts gespeichert!");
SavePlayer(playerid);
SendRconCommand("gmx");
return 1;
}Der Befehl funktioniert nicht dann kommt andauernd "Der Befehl restartserver exestiert nicht"
Warum?Bräuchte dazu immernoch Hilfe
-
Zum Thema schleifen. Ist der Befehl denn ausserhalb eines Callbacks bzw Funktion ?
Ja ist ausserhalb
-
Befehl ist ausserhalb eines callbacks bzw einer anderen Funktion ? Ausserdem kannste auch noch mal den code block wo du die message ausgeben lässt zeigen. Zumal du speicherst nicht alle Spieler sondern nur denjenigen der den Befehl ausführt. Musste mit ne Schleife durch alle Spieler gehen und dann Speichern lassen.
public OnPlayerCommandPerformed(playerid, cmdtext[], success)
{
new string[128];
format(string, sizeof string, "Der Befehl "COLO"%s"COLW" existiert nicht!", cmdtext);
if(!success)return SendClientMessage(playerid, Weiß, string);
return 1;
}Und wie meinst du das mit der schleife? Bis jetzt habe ich noch keine schleife erstellt,könntest du dies vllt. in diesem Befehl einbauen?
-
ocmd:restartserver(playerid,params[])
{
if(SpielerInfo[playerid][pAdminlevel] > 4) return SendClientMessage(playerid,Rot,"Möglich ab: "COLG" Adminrank 4");
SendClientMessageToAll(Grün,"Der Server wird neugestartet!Es werden alle Accounts gespeichert!");
SavePlayer(playerid);
SendRconCommand("gmx");
return 1;
}Der Befehl funktioniert nicht dann kommt andauernd "Der Befehl restartserver exestiert nicht"
Warum? -
Also muss man damit Adminrank 1 besitzen und man kann den Befehl dann ausführen und alles über Adminrang 1? Also 2,3 usw.?