Wie es im Titel schon steht wie mach ich einen /a Chat nur für Admins da ich sowas noch nie gemacht habe gibt es hier ein paar Tutorials?
Liebe Grüße
Wie es im Titel schon steht wie mach ich einen /a Chat nur für Admins da ich sowas noch nie gemacht habe gibt es hier ein paar Tutorials?
Liebe Grüße
ocmd:a(playerid, params[])
{
if(SpielerInfo[playerid][aLevel] < 1) return SendClientMessage(playerid, 0xFF0000FF, "Nur für Admins.");
if(!params[0])) return SendClientMessage(playerid, 0xFF0000FF, "Nutze: /a [Text]");
new str[145];
GetPlayerName(playerid, str, MAX_PLAYER_NAME);
format(str, sizeof(str), "[Admin] %s: %s", str, params);
for(new i=0; i<MAX_PLAYERS; i++) if(SpielerInfo[i][aLevel] > 0) SendClientMessage(i, 0xFFFFFFFF, str);
return 1;
}
EDIT:
Sorry, [] bei params vergessen, danke Red_Romeo:.
Alles anzeigenocmd:a(playerid, params)
{
if(SpielerInfo[playerid][aLevel] < 1) return SendClientMessage(playerid, 0xFF0000FF, "Nur für Admins.");
if(!params[0])) return SendClientMessage(playerid, 0xFF0000FF, "Nutze: /a [Text]");
new str[145];
GetPlayerName(playerid, str, MAX_PLAYER_NAME);
format(str, sizeof(str), "[Admin] %s: %s", str, params);
for(new i=0; i<MAX_PLAYERS; i++) if(SpielerInfo[i][aLevel] > 0) SendClientMessage(i, 0xFFFFFFFF, str);
return 1;
}
Danke, aber ich habe ein Fehler bei meinem /mute System bekomme ein Error :
C:\Users\W\Desktop\Alle Programme\German Virtual D Deatmatch\gamemodes\virtual.pwn(36) : error 021: symbol already defined: "SetTimer"
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
1 Error.
forward UnMuteTimer();
forward sekunde();
forward unfreezePlayer(playerid);
SetTimer("UnMuteTimer",60000,1);
public UnMuteTimer()
{
for(new i;i<MAX_PLAYERS;i++)
{
if(GetPVarInt(i,"Mute")>0)
{
new wert = GetPVarInt(i,"Mute" )-1;
SetPVarInt(i,"Mute",wert);
if(GetPVarInt(i,"Mute") == 0) return SendClientMessage(i,COLOR_GREEN,"You have been Unmuted.");
return 1;
}
}
return 1;
}
ocmd:unmute(playerid,params[])
{
if(isPlayerAnAdmin(playerid,1))//<-- Abfrage anpassen!
{
new pID;
if(sscanf(params,"u",pID))return SendClientMessage(playerid,COLOR_GREY,"Usage: /unmute [PlayerID]");
{
if(GetPVarInt(pID,"Mute")!=0)
{
new string[128];
format(string,sizeof(string),"You have been unmuted by Admin %s",SpielerName(playerid));
SetPVarInt(pID,"Mute",0);
SendClientMessage(pID,COLOR_GREEN,string);
SendClientMessage(playerid,COLOR_GREEN,"Successfully done.");
return 1;
}
}
}
return 1;
}
ocmd:mute(playerid,params[])
{
if(isPlayerAnAdmin(playerid,1))//<-- Abfrage anpassen
{
#define Copy & Paste ist für Dummis
new pID;
new reason[64];
new time;
if(sscanf(params,"uis",pID,time,reason))return SendClientMessage(playerid,COLOR_GREY,"Usage: /mute [PlayerID] [Time (In Minutes)] [Reason]");
{
if(isPlayerAnAdmin(pID,1))//<-- Abfrage anpassen
{
SendClientMessage(playerid,COLOR_RED,"You can't mute an Admin");
return 1;
}
else if(time > 0 && time < 999999)
{
new string[128],tmptime = time;//Das ganze wird bereits in Minuten gespeichert!
format(string,sizeof(string),"%s has been Muted by Admin %s for %i Minutes. Reason: %s",SpielerName(pID),SpielerName(playerid),tmptime,reason);//Hier wird der String definiert, eig ganz einfach
SendClientMessageToAll(COLOR_RED,string);//sollte klar sein
SendClientMessage(playerid,COLOR_GREEN,"Successfully done.");//sollte klar sein
SetPVarInt(pID,"Mute",tmptime);//Hier wird die Zeit in die PlayerVariable gespeichert
return 1;
#define Copy & Paste ist für Dummis
}
}
}
return 1;
}
Das muss bei OnGameModeInit hin, nicht zu den forwards.
SetTimer("UnMuteTimer",60000,1);
Und der Timer so:
public UnMuteTimer()
{
for(new i;i<MAX_PLAYERS;i++)
{
if(GetPVarInt(i,"Mute")>0)
{
new wert = GetPVarInt(i,"Mute" )-1;
SetPVarInt(i,"Mute",wert);
if(GetPVarInt(i,"Mute") == 0) SendClientMessage(i,COLOR_GREEN,"You have been Unmuted.");
}
}
return 1;
}
Lösch einfach die Zeile 36 in deinem Script.
Lösch einfach die Zeile 36 in deinem Script.
Nein, dann startet der Timer nicht. Die Zeile 36 muss wie gesagt zu OnGameModeInit verschoben werden.
Alles anzeigenDas muss bei OnGameModeInit hin, nicht zu den forwards.
SetTimer("UnMuteTimer",60000,1);
Und der Timer so:
public UnMuteTimer()
{
for(new i;i<MAX_PLAYERS;i++)
{
if(GetPVarInt(i,"Mute")>0)
{
new wert = GetPVarInt(i,"Mute" )-1;
SetPVarInt(i,"Mute",wert);
if(GetPVarInt(i,"Mute") == 0) SendClientMessage(i,COLOR_GREEN,"You have been Unmuted.");
}
}
return 1;
}
Danke jetzt bekomme ich einen SSCANF warning bei Server.exe
if(sscanf(params,"uis",pID,time,reason))
zu:
if(sscanf(params,"uis[64]",pID,time,reason))
Das wäre für den ersten Fehler.
Bei welchem Code kommt der zweite Fehler?
PS: Lasse bitte diese Vollzitate, die machen keinen Sinn.
Okay hier kommt noch so ein warning bei /say
ocmd:say(playerid,params[])
{
if(!isPlayerAnAdmin(playerid,2))return SendClientMessage(playerid,0xFFFFFFFF,"Du bist nicht befugt!.");
new string[500],stringz[500];
if(sscanf(params,"s[500]",string))return SendClientMessage(playerid,BLAU,"Benutze /say [text]");
format(string,sizeof(string),"[ ADMIN ]: {FEFEFE}%s",string);
SendClientMessageToAll(BLAU,string);
format(stringz,sizeof(stringz),"%s : %s",SpielerName(playerid),string);
return 1;
}
Alles anzeigenOkay hier kommt noch so ein warning bei /say
ocmd:say(playerid,params[])
{
if(!isPlayerAnAdmin(playerid,2))return SendClientMessage(playerid,0xFFFFFFFF,"Du bist nicht befugt!.");
new string[500],stringz[500];
if(sscanf(params,"s[500]",string))return SendClientMessage(playerid,BLAU,"Benutze /say [text]");
format(string,sizeof(string),"[ ADMIN ]: {FEFEFE}%s",string);
SendClientMessageToAll(BLAU,string);
format(stringz,sizeof(stringz),"%s : %s",SpielerName(playerid),string);
return 1;
}
Versuchs mal so:
ocmd:say(playerid,params[])
{
if(!isPlayerAnAdmin(playerid,2))return SendClientMessage(playerid,0xFFFFFFFF,"Du bist nicht befugt!.");
new string[500],stringz[500];
if(sscanf(params,"s[500]",string))return SendClientMessage(playerid,BLAU,"Benutze /say [text]");
format(string,sizeof(string),"[ ADMIN ]: {FEFEFE}%s",string);
SendClientMessageToAll(BLAU,string);
format(stringz,sizeof(stringz),"%s : %s",SpielerName(playerid),string);
return 1;
}
Ein string für SendClientMessage der mehr als 145 Zeichen hat ist nicht notwendig, da SendClientMessage nicht mehr anzeigen kann.
Danke, bin weiterhin noch auf der Suche für ein /a Caht
Der steht doch in Post #2 bereits.
Der steht doch in Post #2 bereits.
C:\Users\\Desktop\Alle Programme\German Virtual D Deatmatch\gamemodes\virtual.pwn(375) : error 028: invalid subscript (not an array or too many subscripts): "params"
C:\Users\\Desktop\Alle Programme\German Virtual D Deatmatch\gamemodes\virtual.pwn(375) : warning 215: expression has no effect
C:\Users\\Desktop\Alle Programme\German Virtual D Deatmatch\gamemodes\virtual.pwn(375) : error 001: expected token: ";", but found "]"
C:\Users\\Desktop\Alle Programme\German Virtual D Deatmatch\gamemodes\virtual.pwn(375) : error 029: invalid expression, assumed zero
C:\Users\\Desktop\Alle Programme\German Virtual D Deatmatch\gamemodes\virtual.pwn(375) : fatal error 107: too many error messages on one line
Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
4 Errors.
ocmd:a(playerid, params)zuocmd:a(playerid, params[])