Nabend,
und zwar bräuchte ich ein Befehl wo man als Fraktionsmitglied sowie als Leader eine Nachricht senden kann so das alle Spieler die sehen.
Wäre sehr dankbar wen mir das einer machen würde.
Grüße
Nabend,
und zwar bräuchte ich ein Befehl wo man als Fraktionsmitglied sowie als Leader eine Nachricht senden kann so das alle Spieler die sehen.
Wäre sehr dankbar wen mir das einer machen würde.
Grüße
Du meinst sowas wie ... /Gov beispiels weisse aus dem LoH??
In der Art ja.
//edit : Ich möchte ihn aber für einige Fraktion jeweils individuell machen, sprich andere Farben usw. brauche aber eine Vorlage wie das auszusehen hat weil ich bekomme es nicht hin
if(strcmp(cmd, "/fwgov", true) == 0
{
if (PlayerInfo[playerid][pMember] == 22 || PlayerInfo[playerid][pLeader] == 22)
}
Sieht nach nem Godfather aus.
Such dir einen Befehl mit Text-Parameter z.B. /report Dort kopierste dir den Teil raus wo er das was der Spieler eingegeben hat (tmp müsste das lauten) raus und dann bauste den einfach um.
Also ich bin jetzt soweit, aber wie muss ich das jetzt schreiben das der Leader ein individuellen Text verfassen kann?
if(strcmp(cmd, "/fwgov", true) == 0
{
if(IsPlayerConnected(playerid))
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD1, "Benutze: /fwgov [Text]");
return 1;
}
SendClientMessageToAll(COLOR_WHITE, "|___________ Feuerwehr Zentrale ___________|");
if(PlayerInfo[playerid][pLeader] == 22)
{
Edit:
Also ich bin jetzt soweit das der Befehl halbwegs funktioniert, allerdings wen ich jetzt ingame eingebe /fwgov kommt ja die Beschreibung also "Benutze /fwgov [Text] so wen ich jetzt ingame eingebe /fwgov Test kommt trotzdem wieder die Beschreibung!
so sieht es bis jetzt aus
if(strcmp(cmd, "/fwgov", true) == 0)
{
if(IsPlayerConnected(playerid))
tmp = strtok(cmdtext, idx);
if(!strval(tmp))
{
SendClientMessage(playerid, COLOR_GRAD1, "Benutze: /fwgov [Text]");
return 1;
}
if(PlayerInfo[playerid][pLeader] == 22)
{
SendClientMessageToAll(COLOR_RED, "|___________ Feuerwehr Zentrale ___________|");
new stringfw[256];
format(stringfw, sizeof(stringfw), "%s", strval(tmp));
SendClientMessageToAll(COLOR_WHITE, stringfw);
}
return 1;
}
Anstatt
if(!strval(tmp))
musst du
if(!strlen(tmp))
Wen ich jetzt denn Befehl benutze sieht das ganze so aus:
//Der Code:
if(strcmp(cmd, "/fwgov", true) == 0)
{
if(IsPlayerConnected(playerid))
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD1, "Benutze: /fwgov [Text]");
return 1;
}
if(PlayerInfo[playerid][pLeader] == 22)
{
SendClientMessageToAll(COLOR_RED, "|___________ Feuerwehr Zentrale ___________|");
new stringfw[256];
format(stringfw, sizeof(stringfw), "%s", strval(tmp));
SendClientMessageToAll(COLOR_WHITE, stringfw);
}
return 1;
}
Benutze am besten eine Schleife, denke das ist am einfachsten.
Anstatt
if(!strval(tmp))
musst du
if(!strlen(tmp))
Das musst du bei format auch machen.
Das musst du bei format auch machen.
Hab ich jetzt gemacht aber wen ich jetzte:
/fwgov Test kommt nur "est"
und bei:
/fwgov Das ist ein test kommt nur "as"
sprich es erscheint immer nur das erste Wort und das aber ohne denn ersten Buchstaben
/code
if(strcmp(cmd, "/fwgov", true) == 0)
{
if(IsPlayerConnected(playerid))
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD1, "Benutze: /fwgov [Text]");
return 1;
}
if(PlayerInfo[playerid][pLeader] == 22)
{
SendClientMessageToAll(COLOR_RED, "|___________ Feuerwehr Zentrale ___________|");
new stringfw[256];
format(stringfw, sizeof(stringfw), "%s", strlen(tmp));
SendClientMessageToAll(COLOR_WHITE, stringfw);
}
return 1;
}
new stringfw[128];
format(stringfw, sizeof(stringfw),"%s",tmp);
Wieso fügst du "strlen(tmp)" bei format ein?
Du willst doch den eingegebenen Text ausgegeben haben und nicht die Länge. Zumal es bei der Länge dann auch %i sein müsste.
Und wofür ist die Abfrage, ob der Spieler auf dem Server ist (IsPlayerConnected) ?
Um den Befehl einzugeben, muss er sich auch auf dem Server befinden.
if(strcmp(cmd, "/fwgov", true) == 0)
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD1, "Benutze: /fwgov [Text]");
return 1;
}
if(PlayerInfo[playerid][pLeader] == 22)
{
SendClientMessageToAll(COLOR_RED, "|___________ Feuerwehr Zentrale ___________|");
new stringfw[256];
format(stringfw, sizeof(stringfw), "%s", tmp);
SendClientMessageToAll(COLOR_WHITE, stringfw);
}
return 1;
}
Alles anzeigenWieso fügst du "strlen(tmp)" bei format ein?
Du willst doch den eingegebenen Text ausgegeben haben und nicht die Länge. Zumal es bei der Länge dann auch %i sein müsste.
Und wofür ist die Abfrage, ob der Spieler auf dem Server ist (IsPlayerConnected) ?
Um den Befehl einzugeben, muss er sich auch auf dem Server befinden.
if(strcmp(cmd, "/fwgov", true) == 0)
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD1, "Benutze: /fwgov [Text]");
return 1;
}
if(PlayerInfo[playerid][pLeader] == 22)
{
SendClientMessageToAll(COLOR_RED, "|___________ Feuerwehr Zentrale ___________|");
new stringfw[256];
format(stringfw, sizeof(stringfw), "%s", tmp);
SendClientMessageToAll(COLOR_WHITE, stringfw);
}
return 1;
}
/edit: Also jetzt schreibt er schonmal ein ganzes Wort^^ aber wen ich ein Satz schreibe erscheint trotzdem nur das erste Wort
Sprich ich schreibe /fwgov Hallo User und erscheinen tut "Hallo" also immer nur das erste Wort egal was ich schreibe
/edit kann mir keiner helfen?