Wie erstell ich nen teamchat oder adminchat? ich bekomm das nit hin hab bei gf mal geschaut, das rall ich nit^^sufu hat nicht so wirklich was gebracht
teamchat
- Weed
- Geschlossen
- Erledigt
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
-
-
Du verwendest gTeam oder?
if(strcmp(cmdtext,"/tc",true,3)==0) {
if(!strlen[cmdtext[4])) return SendClientMessage(playerid,FARBE,"/tc Text");
new name[MAX_PLAYER_NAME], s[100];
GetPlayerName(playerid,name,sizeof(name));
format(s,sizeof(s),"%s: %s",name,cmdtext[4]);
for(new i=0; i<MAX_PLAYERS; i++) {
if(IsPlayerConnected(i)) {
if(gTeam[i]==gTeam[playerid]) {
SendClientMessage(i,FARBE,s); }}}
return 1;
}s -
Etwas einfacher:
public OnPlayerText(playerid, text[]) {
if(text[0] == '!') {// das '!' durch den Charakter ersetzen der den Admin Chat / Teamchat einleiten soll ^^
for(new p = 0; p < MAX_PLAYERS; p++) {
if(gTeam[p] == gTeam[playerid]) { // Falls Admin: if(Admin[p] >= 1) {
SendClientMessage(p, 0xFF00FFFF, text[1]);
return 0;
}
}
}
return 1;
} -
wie sieht das in dcmd aus?
-
public OnPlayerCommandText(playerid, cmdtext[]) {
dcmd(a,1,cmdtext);
return 0;
}dcmd_a(playerid, params[]) {
new msg[100],
str[128],
pname[16];
if(sscanf(params,"s",msg)) {
if(IsPlayerAdmin(playerid)) {
return SendClientMessage(playerid, 0xFF0000FF, "Benutzung: /a [Message].");
}
else {
SendClientMessage(playerid, 0xFF0000FF, "Du bist kein Admin!");
}
}
GetPlayerName(playerid, pname, sizeof(pname));
format(str, sizeof(str), "%s (Level: %d): %s", pname, AdminLevel[playerid]/* Oder wie es halt deklariert ist.*/, msg);
for(new i = 0; i < MAX_PLAYERS; i++) {
if(IsPlayerAdmin(i)) {
SendClientMessage(i, 0xFFFF00FF, str);
}
}
return 1;
} -
aber ich möchte das nit wie bei gf das man /a [text] macht sondern a und dann is der modchat an und dann einfach normal schreibt
-
Ich suche soetwas in der art, also,
wenn ich im chat (also wenn ich T gedrückt habe) und dann " ; " mach, soll ich im Admin chat schreiben (es sollen nur Admin lesen können)
ich benutze kein dcmd oder sonstiges, nur das normale halt
währe nett wenn mir da einer helfen könnte
-
Dafür müsste man wissen ,
wie dein Admin level deklaiert ist...
PlayerInfo[playerid][pAdmin] oder wie ist es deklaiert? -
Ich habe kein GF^^ also, n ganz normales script
-
ich deklariere es mit If(PlayerRank[playerid]>=1)
und ich benutzte bitte dcmd -
hier mal ein beispiel..
Header:
new IstModchatAn[MAX_PLAYERS];
forwars NahrichtAnAdmins(color,const string[],level);Dein Befehl mit /adminchatan:
//Bei deinen Befehl die Funktion IstModchatAn auf 1 Setzten so..
IstModchatAn[playerid] = 1;public NahrichtAnAdmins(color,const string[],level)
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
If(PlayerRank[playerid]>=1)
{
SendClientMessage(i, color, string);
printf("%s", string);
}
}
}
return 1;
}OnPlayerText:
If(IstModchatAn[playerid] == 1)
// mit einbaun..und nicht..
new stringx[10];
new sendername[MAX_PLAYERS];
format(stringx, sizeof(stringx), "Eine Nahricht von %s: %s", sendername, (result));
NahrichtAnAdmins(COLOR_LIGHTRED,stringx,1);
// vergessen =D -
Das selbe geht auch so mit Teams? geht das auch allgemein? also das man nit 50 eigene teamchat´s machen muss sonder einen cmd oder so was hat und das für alle geht?
und da fehlt noch GetPlayerName oder? -
Teamchat durch '!' vorm Text eingeleitet:
stock sendTeamMsg(teamid, color, str[])
{
for(new j = 0; j < MAX_PLAYERS; j++)
{
if(IsPlayerConnected(j) && gTeam[j] == teamid || gLeader[j] == teamid)
{
new string[128], name[16]; GetPlayerName(j, name, sizeof(name));
format(string, sizeof(string), "%s (Rank %d): %s", name, pRank[j], str);
SendClientMessage(j, color, string);
return 1;
}
}
return 1;
}public OnPlayerText(playerid, text[])
{
if(text[0] == '!')
{
sendTeamMsg(gTeam[playerid], 0xFFAA77FF, text[1]);
return 0;
}
return 1;
} -
if(strcmp("#", cmdtext, true, 10) == 0)
{
if(IsPlayerAdmin(playerid))
{
if(!strlen(cmdtext[4]))
return 1;
new name[128];
GetPlayerName(playerid,name,sizeof(name));
AdminMessage(COLOR_ADMIN,"%s: %s",name,cmdtext[4]);
return 1;
}
}
else
{
Nachricht(playerid,COLOR_DARKRED,"Du bist kein admin");
}gabe soeinen befehl gemacht, wenn man "#" macht wenn man "T" gedrückt hat, dann soll man in den adminchat schreiben können, jezz habe ich das problem ich weiß nicht wie ich das machen kann. (RCON ADMIN)
und ich habe 2 warnings
C:\Dokumente und Einstellungen\lukas \Desktop\Lukas\SA-MP Server\gamemodes\DM-Server.pwn(426) : warning 202: number of arguments does not match definition
C:\Dokumente und Einstellungen\lukas \Desktop\Lukas\SA-MP Server\gamemodes\DM-Server.pwn(426) : warning 202: number of arguments does not match definition
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase2 Warnings.
bitte um hilfe
//EDIT//
habe den adminchat definiert
-
public OnPlayerText(playerid, text[])
{
if(text[0] == '#' && IsPlayerAdmin(playerid)) {
new n[MAX_PLAYER_NAME], s[128];
GetPlayerName(playerid, n, sizeof(n));
format(s, sizeof(s), "%s: %s", n, text[1]);
AdminMessage(COLOR_ADMIN, s);
return 0;
}
return 1;
} -
wie kann ich einen teamchat machen.
wenn ein team mitglieg ;[text] macht sollen nur die teammitglieder das sehen.
aber jedes team soll ;[TEXT] machen könenn, aber nbur die teammitglieder sollen es lesen können wie geht das?
HABE KEIN GF
//EDIT//
Kann mir kener helfen?
-
wie unterteilst du in deinem gm die teams?
-
if(classid == 0 ||classid == 1 ||classid == 2)
{
GameTextForPlayer(playerid,"Grove",3000,3);
gTeam[playerid] = TEAM_Grove;
}//--------------------//
if(classid == 3 ||classid == 4 ||classid == 5)
{
GameTextForPlayer(playerid,"Polizei",3000,3);
gTeam[playerid] = TEAM_Polizei;
}//USW.
//USW.wenn du das meinst?
-
if(strcmp(cmdtext,"/tc",true,3)==0) {
if(!strlen[cmdtext[4])) return SendClientMessage(playerid,FARBE,"/tc Text");
new name[MAX_PLAYER_NAME], s[100];
GetPlayerName(playerid,name,sizeof(name));
format(s,sizeof(s),"%s: %s",name,cmdtext[4]);
for(new i=0; i<MAX_PLAYERS; i++) {
if(IsPlayerConnected(i)) {
if(gTeam[i]==gTeam[playerid]) {
SendClientMessage(i,FARBE,s); }}}
return 1;
}//edit oder so:
if(text[0] == '!') {// das '!' durch den Charakter ersetzen der den Admin Chat / Teamchat einleiten soll ^^
for(new p = 0; p < MAX_PLAYERS; p++) {
if(gTeam[p] == gTeam[playerid]) {
SendClientMessage(p, 0xFF00FFFF, text[1]);
return 0;
}
}
} -
1. ich wollte nochmals sagen das ich kein GF habe
2. Wo steht denn das team? oder können das alles teams und nur die im team können es lesen?