Guten Tag,
ich brauche hilfe bei OOC ich habe keine Ahnung von diesem System bzw. ich weis nicht wie ich es anfangen soll.
Bitte helft mir.
Guten Tag,
ich brauche hilfe bei OOC ich habe keine Ahnung von diesem System bzw. ich weis nicht wie ich es anfangen soll.
Bitte helft mir.
Schau in einem Godfather nach, dort ist meistens immer der /ooc befehl drinne.
Ja ne ich will das nicht aus einem Gotfather bzw. ich hab das nicht.
Habe einen Code hab aber dann 26 Fehler
if(strcmp(cmd, "/ooc", true) == 0 || strcmp(cmd, "/o", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if(gPlayerLogged[playerid] == 0)
{
SendClientMessage(playerid, GRAU, " Du bist noch nicht Eingeloggt !");
return 1;
}
if(PlayerInfo[playerid][pMuted] == 1)
{
SendClientMessage(playerid, ROT, " Du kannst nicht sprechen, du bist gemutet !");
return 1;
}
GetPlayerName(playerid, sendername, sizeof(sendername));
new length = strlen(cmdtext);
while ((idx < length) && (cmdtext[idx] <= ' '))
{
idx++;
}
new offset = idx;
new result[64];
while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
{
result[idx - offset] = cmdtext[idx];
idx++;
}
result[idx - offset] = EOS;
if(!strlen(result))
{
SendClientMessage(playerid, GELB, "NUTZUNG: (/o)oc [ooc chat]");
return 1;
}
if(PlayerInfo[playerid][pSupporter] == 1)
{
format(string, sizeof(string),"(( Supporter %s: %s))", sendername, result);
}
else if(PlayerInfo[playerid][pAdmin] == 1)
{
format(string, sizeof(string),"(( Moderator %s: %s))", sendername, result);
}
else if(PlayerInfo[playerid][pAdmin] == 2)
{
format(string, sizeof(string),"(( Super-Moderator %s: %s))", sendername, result);
}
else if(PlayerInfo[playerid][pAdmin] == 3)
{
format(string, sizeof(string),"(( Administrator %s: %s))", sendername, result);
}
else if(PlayerInfo[playerid][pAdmin] == 4)
{
format(string, sizeof(string),"(( High-Admin %s: %s))", sendername, result);
}
else if(PlayerInfo[playerid][pAdmin] == 5)
{
else { format(string, sizeof(string),"(( User %s: %s))", sendername, result); /* User kannst du zu Spieler oder sonst was ändern */ }
OOCOff(COLOR_OOC,string);
Log("OA-Chat.txt",string);
}
return 1;
}
Das habe ich in diesem Forum gefunden
Weißt du wenigstens wofür OOC steht?
Ja das das alle Spieler lesen können
Ich weis nicht aber irgendwas mit Chat
ocmd:ooc(playerid,params[])
{
new text[128];
if(sscanf(params,"s",text))return SendClientMessage(playerid,ROT,"Benutze: /ooc [Nachricht]");
format(text,sizeof(text),"%s: %s",SpielerName(playerid),text);
SendClientMessageToAll(DEINE FARBE,text);
return 1;
}
Alles anzeigenocmd:ooc(playerid,params[])
{
new text[128];
if(sscanf(params,"s",text))return SendClientMessage(playerid,ROT,"Benutze: /ooc [Nachricht]");
format(text,sizeof(text),"%s: %s",SpielerName(playerid),text);
SendClientMessageToAll(DEINE FARBE,text);
return 1;
}
stock SpielerName(playerid)
{
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,MAX_PLAYER_NAME);
return name;
}
Das muss dann aber auch noch unten ins Script, wenn du SpielerName verwendest
Dein Code ist total sinnlos. Sind Fehler enthalten etc.
Um einen OOC zu gestalten, musst du dir erst ein paar Fragen stellen.
-Wer soll schreiben können
-Wer soll das lesen können
-Kann man ihn aktivieren/deaktivieren?
Hier mal ein kleiner Code mit erklärung für dich
stock SpielerName(playerid)
{
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
return name;
}
Hiermit bekommen wir den Namen des Spielers
Ich arbeite hier mal mit ocmd &sscanf
new gc = 0;
Ganz oben erstellen, damit wir wissen, ob der chat an oder aus ist.
ocmd@2:gc,globalerchat(playerid,params[])
{
new text[128];//neuer string
if(gc == 0)return SendClientMessage(playerid, -1, "Der Globale Chat wurde deaktiviert!");//wenn der chat aus ist
if(sscanf(params,"s[128]", text))return SendClientMessage(playerid, -1, " /gc <text>");//sollten keine parameter angegeben worden sein
new string[128];//neuer string zum formatieeren
format(string,sizeof(string)," %s: %s",SpielerName(playerid),text);//wir formatieren den string, da wir %s bei der native SendClientMessageToAll nicht verwenden können
SendClientMessageToAll(-1, string);//wir senden den string an alle Spieler
return 1;
}
ocmd:gca(playerid,params[])
{
new status;//neue variable
if(sscanf(params, "i", status))return SendClientMessage(playerid, -1, " /gca < 1 = ja > < 2 = nein >");//wir können den chat mit /gca 1 anschalten, mit /gca 2 ausschalten
if(status > 2 || status < 1)return SendClientMessage(playerid,-1," Nur 1 oder 2 möglich!");//man kann nur 1 oder 2 eingeben
if(status == 1 && gc != 1)//falls wir 1 eingegeben haben und der chat nicht an ist
{
gc = 1;//globale var auf 1 gesetzt
SendClientMessageToAll( -1, "Globaler Chat aktiviert!");
}
else if(status == 2 && gc !=2)//falls wir 2 (nein) angegeben haben und der chat nicht aus ist
{
gc =0;//var wird auf 0 gesetzt
SendClientMessageToAll( -1, " Globaler Chat deaktiviert!");
}
return 1;
}
Und wenn ein einer Admin ist soll davor sein Rank Name stehen wie mache ich das?
PS : Das Funktioniert nicht habe 0 Fehler aber unknow Command auf dem Server
stock GetRank(playerid)
{
new str[31];
switch(SpielerInfo[playerid][pAdminlevel])//ich nehme mal an, du speicherst so deine adminlevel
{
case 0:
{
strcat(str,"Spieler");
}
case 1:
{
strcat(str,"Probesupporter");
}
case 2:
{
strcat(str,"Supporter");
}
case 3:
{
strcat(str,"Moderator");
}
case 4:
{
strcat(str,"Administrator");
}
case 5:
{
strcat(str,"Teamleiter");
}
case 6:
{
strcat(str,"Projektleiter");
}
case 7:
{
strcat(str,"Scripter");
}
}
return str;
}
Genau diese Range will ich anzeigen lassen wie? in diesem Code :
ocmd:ooc(playerid,params[])
{
new text[128];
if(sscanf(params,"s",text))return SendClientMessage(playerid,ROT,"Benutze: /ooc [Nachricht]");
format(text,sizeof(text),"*((%s: %s))",Spielername(playerid),text);
SendClientMessageToAll(BLAU,text);
}
else
{
if(IsPlayerAnAdmin(playerid,2))return SendClientMessage(playerid,ROT,"*((Team Mitglied %s: %s))",Spielername(playerid,text);
}
return 1;
}
Alles anzeigenocmd:ooc(playerid,params[])
{
new text[128];
if(sscanf(params,"s",text))return SendClientMessage(playerid,ROT,"Benutze: /ooc [Nachricht]");
format(text,sizeof(text),"*((%s: %s))",Spielername(playerid),text);
SendClientMessageToAll(BLAU,text);
}
else
{
if(IsPlayerAnAdmin(playerid,2))return SendClientMessage(playerid,ROT,"*((Team Mitglied %s: %s))",Spielername(playerid,text);
}
return 1;
}
if(IsPlayerAnAdmin(playerid,2))return SendClientMessage(playerid,ROT,"*((%s %s: %s))",GetRang(playerid),Spielername(playerid,text);
Füge einfach dann noch meinen stock hinzu
Wofür steht die zwei hinter playerid ? (IsPlayerAnAdmin) ?
Das ist dein Code. Musst doch du wissen
ocmd:ooc(playerid,params[])
{
new text[128];
if(sscanf(params,"s",text))return SendClientMessage(playerid,ROT,"Benutze: /ooc [Nachricht]");
format(text,sizeof(text),"*((%s: %s))",Spielername(playerid),text);
SendClientMessageToAll(BLAU,text);
{
else//Fehler laut Pawno
}
if(!isPlayerAnAdmin(playerid,2))return SendClientMessage(playerid,ROT,"*((%s %s: %s))",GetRang(playerid),Spielername(playerid,text));//Fehler laut Pawno
return 1;
}
Meine Fehler :
C:\Users\Patrick\Desktop\Server\gamemodes\IRP-City.pwn(335) : warning 202: number of arguments does not match definition
C:\Users\Patrick\Desktop\Server\gamemodes\IRP-City.pwn(359) : error 029: invalid expression, assumed zero
C:\Users\Patrick\Desktop\Server\gamemodes\IRP-City.pwn(361) : error 017: undefined symbol "GetRang"
C:\Users\Patrick\Desktop\Server\gamemodes\IRP-City.pwn(398) : warning 217: loose indentation
C:\Users\Patrick\Desktop\Server\gamemodes\IRP-City.pwn(402) : warning 202: number of arguments does not match definition
C:\Users\Patrick\Desktop\Server\gamemodes\IRP-City.pwn(409) : warning 217: loose indentation
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
2 Errors.
Danke für eure hilfe
ocmd:ooc(playerid,params[])
{
new text[128];
if(sscanf(params,"s",text))return SendClientMessage(playerid,ROT,"Benutze: /ooc [Nachricht]");
format(text,sizeof(text),"*((%s: %s))",Spielername(playerid),text);
SendClientMessageToAll(BLAU,text);
}
else//Fehler laut Pawno
{
if(IsPlayerAnAdmin(playerid,2) return SendClientMessage(playerid,ROT,"*((%s %s: %s))",GetRang(playerid),Spielername(playerid,text);//Fehler laut Pawno
return 1;
}
ocmd:ooc(playerid,params[])
{
new Inhalt[128],string[128];
if(sscanf(params,"s",Inhalt))return SendClientMessage(playerid,ROT,"Benutze: /ooc [Nachricht]");
format(string,sizeof(string),"*((%s: %s))",Spielername(playerid),text);
SendClientMessageToAll(BLAU,text);
if(isPlayerAnAdmin(playerid,2))
{
format(string, sizeof(string), "((%s %s: %s))",GetRang(playerid),Spielername(playerid),text);
SendClientMessage(playerid,ROT,string;
return 1;
}
return 1;
}
Benutzt das mal
Hat sich erledigt, habs hingekriegt.
Close
So ist es richtig:
ocmd:ooc(playerid,params[])
{
new text[128],string[128];
if(sscanf(params,"s",text))return SendClientMessage(playerid,ROT,"Benutze: /ooc [Nachricht]");
if(isPlayerAnAdmin(playerid,2))// Wenn er Admin ist
{ // dann
format(string, sizeof(string), "((%s %s: %s))",GetRang(playerid),Spielername(playerid),text);
return SendClientMessage(playerid,ROT,string);
}
else // wenn nicht
{ // dann
format(string,sizeof(string),"*((%s: %s))",Spielername(playerid),text);
SendClientMessageToAll(BLAU,text);
}
return 1;
}
MrPawn:
Bei dir würde er, wenn er Admin ist, 2x ne Nachricht schicken!
Ok Funktioniert doch nicht hat jemand es richtig?