GTAvision.com - Forum - Grand Theft Auto News, Downloads, Community and more...

Position: Grand Theft Auto: San Andreas » Multiplayer » [SA-MP] Wie kan mann einen clan chat machen? » Druckansicht
Speed12, 26.12.2007, 19:28
HI ich bin neu hier.Wollte ma fragen wie mann einen clan chat machen kann der nur für eingeloggte
sichtbar ist und wo die eingelogten mit

# text

rein schreiben können.Wie geht sowas?
dödel, 26.12.2007, 19:31
Hm... also es wäre schonmal viel einfacher
wenn man zb. /clan test eingeben muss,
also hauptsache mit / und einem Buchstaben/einer Zahl am Anfang

denn dann kann man ganz bequem dcmd nutzen :)
Speed12, 26.12.2007, 19:34
Ich weiß aber nciht wie mann das macht.Kannst du mir das erklären?
Sh3LteR, 26.12.2007, 19:36
Code:
1
2
3
4
5
6
7
8
9
10
11
for(new i; i<MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i) && IsPlayerAdmin(i))
{
new str[256];
new pName[30];
GetPlayerName(playerid, pName, 30);
format(str, sizeof(str), "Adminchat: %s: %s", pName, text);
SendClientMessage(i, COLOR_WHITE, str);
}
}



Und den musste halt umformen.....
Speed12, 26.12.2007, 19:38
Wo muss das hin??Habe keine ahnung wie mann so einen chat macht.
dödel, 26.12.2007, 19:40
ok
Wie und als Was einloggen (Adminlogin oder /login (per Userdatamanegement) )
Speed12, 26.12.2007, 19:42
Ich meine /login.
dödel, 26.12.2007, 19:44
Per Filterscript
oder im Mode ?

und welche Variable überprüft,
ob du eingeloggt bist?

zb. logged[playerid]
Speed12, 26.12.2007, 19:46
jap logged[playerid].
dödel, 26.12.2007, 20:16
Ok, in den Tutorials müsste stehen inwiefern etwas eingebaut wird ;)

Hier der Code dafür:

Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
<?

//includes

#define COLOR_2RED 0xAA3333AA
#define COLOR_2BLUE 0x00C7FFAA

#define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dc
md_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1

//main

public OnPlayerCommandText(playerid, cmdtext[])
{

dcmd(cc,2,cmdtext); // cc wie clanchat :P | 2 = anzahl buchstaben | cmdtext - lass es lieber so *g*

return 0;
}

dcmd_cc(playerid,params[]) //cc muss das oben angebene sein :)
{

new saystring[256];
new sayname[256];
GetPlayerName(playerid, sayname, sizeof(sayname));

new tmp[256];
new idx;

tmp = strtok(params, idx);

if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_2RED, "Du hast keinen Text eingeben");
return 1;
}

if(logged[playerid] == 0)
{
SendClientMessage(playerid, COLOR_2RED, "Du bist nicht eingeloggt");
}
else
{
format(saystring, sizeof(saystring), "[ClanChat] %s: %s", sayname , params);
for(new i; i<MAX_PLAYERS; i++)
{
if(logged[i] != 0)
{
SendClientMessage(i, COLOR_2BLUE, saystring);
}
}
}

return 1;
}

?>
Speed12, 26.12.2007, 20:20
Danke für den code habe ihn gerade eingesetzt aber da das mit den lotto net richtig geht muss ich
warten bis es geht.

Edit: Irgendwie führt der code dazu das der compilier bericht leer ist.
Speed12, 27.12.2007, 11:33
Ich habe jetzt ma meine eigen code gemacht der heist so:

Code:
1
2
3
4
5
6
public OnPlayerText(playerid,text[]) {
 if(text[0] == '#' && logged[playerid] == 1){
     new string[256],name[24]; GetPlayerName(playerid,name,24); format(string,256,"Gtain %s: %s",nam
e,text[1]); SendClientMessageToGtain(string);
     return 1;
     }
     }


Ein freund sagte mir das sei richtig jedoch kommt beim compilieren 1 error und 1warning die heisen:

D:\PROGRA~1\ROCKST~1\GRANDT~1\rpg.pwn(2344) : error 035: argument type mismatch (argument 1)
D:\PROGRA~1\ROCKST~1\GRANDT~1\rpg.pwn(2347) : warning 209: function "OnPlayerText" should return a
value

Hilfe! :-(
FleX, 27.12.2007, 11:49

Code:
1
2
3
4
5
6
7
8
9
10
11
public OnPlayerText(playerid,text[])
{
     if(text[0] == '#' && logged[playerid] == 1)
     {
     new string[256],name[MAX_PLAYER_NAME]; 
     GetPlayerName(playerid,name,sizeof(name)); 
     format(string,sizeof(string),"Gtain %s: %s",name,text[1])
     SendClientMessageToGtain(string);
     }
     return 0;
}


probire es mal so ;)
Speed12, 27.12.2007, 12:38
leider 2 errors:

D:\PROGRA~1\ROCKST~1\GRANDT~1\rpg.pwn(2349) : error 001: expected token: ";", but found
"-identifier-"
D:\PROGRA~1\ROCKST~1\GRANDT~1\rpg.pwn(2349) : error 035: argument type mismatch (argument 1)

zeile 2349 ist:

SendClientMessageToGtain(string);
Rafioso, 27.12.2007, 16:43
Hinter der format-Zeile fehlt ein ';'

Btw. was ist "SendClientMessageToGtain(string);"
Warum benutzt du nicht einfach: SendClientMessage()


=) =) :D :D =) =)
Speed12, 27.12.2007, 18:07
Es soll ja ein clan chat sein kein öffentlicher.

Edit: Jetzt is noch 1 error:

D:\PROGRA~1\ROCKST~1\GRANDT~1\rpg.pwn(2361) : error 035: argument type mismatch (argument 1)
Rafioso, 27.12.2007, 18:34
Wie wärs wenn mal deine Superspezialfunktion "SendClientMessageToGtain()" hier zeigst?

Dann könnt man sagen was da falsch ist.

=) =) :D :D =) =)
Speed12, 27.12.2007, 18:36
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public SendClientMessageToGtain(color,const string[])
{
        for(new i = 0; i < MAX_PLAYERS; i++)
        {
                if(IsPlayerConnected(i))
                {
                        if (logged[i] == 1)
                        {
                                SendClientMessage(i, color, string);
                                printf("%s", string);
                        }
                }
        }
        return 1;
}
Rafioso, 27.12.2007, 18:46
Der Vorteil von der neuen Sendeart ist, dass man auch das "format(string,sizeof(string),"Gtain %s:
%s",name,text[1])" dort einbauen kann ;)

=) =) :D :D =) =)
Speed12, 27.12.2007, 18:49
Begreif jetzt nicht was du meinst.
Rafioso, 27.12.2007, 19:06
...wurscht.

Da fehlt einfach die Farbe ;)

Code:
1
SendClientMessage(i, color, string);

Du hast dein 'i' dein 'string' aber die Farbe ist nicht definiert.

Musst du hier nachhohlen:
Code:
1
SendClientMessageToGtain(string);


z.B. so:

Code:
1
SendClientMessageToGtain(0xFF0000AA, string);


=) =) :D :D =) =)
Speed12, 27.12.2007, 19:20
Achso.Danke es geht danke,danke,danke,danke.......

Edit: Soweit geht es aber uneingeloggte können mit # text in den chat reinschreiben ihn aber nciht
lesen kann mann das abschalten das wenn normale user # text schreben und bestätigen der text im
normalen chat erscheint??
Rafioso, 27.12.2007, 19:40
mach doch einfach ein "else" bei deiner SuperTextErstellungsFunktion *g*

=) =) :D :D =) =)
Speed12, 27.12.2007, 19:45
Ok es geht.
GTAvision.com :: Forumregeln :: FAQ :: Impressum :: Kontakt :: RDRvision.com :: LANOIREvision.com :: MaxPayneVision.com
NetVisionWork.NET
.: © 2006-2014 by GTAvision.com :.

Rockstar GamesTake-Two Interactive Deutschland

Free Grand Theft Auto Downloads