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

Position: Tutorials » Workshop » In Bearbeitung » [VWW] [SA-MP v2] Stummschalten von Spielern » Druckansicht
dödel, 17.10.2007, 22:41
Erstmal klein am Rande:

false = 0
true = 1

Nicht damit Fragen aufkommen, weil man bei returns immer sowas hinschreibt.

Und auch nochmal zu erwähnen, was man nun wirklich wissen müsste:

// Text
Werden wie kleine Notizen genommen und sind nur in .pwn (werden also nich compiled)
genauso wie:

/*
Text
Text
Text
*/



Und nun zum Wesentlichen:

Es gibt 2 Varianten:
entweder mit /mute und /unmute
oder mit per Array nur mit /mute.

(diese werden aber erst unten drankommen)


Aber erstmal alles von Anfang an:

Code:
1
2
3
4
5
6
#define COLOR_RED 0xAA3333AA
#define COLOR_WHITE 0xFFFFFFAA
#define COLOR_ORANGE 0xFF8C00AA
[color=#33FF00]//Farben nur wenn nicht vohanden einbauen[/color]

new muted[MAX_PLAYERS];


Kommt, wie die meisten wissen müssten/sollten, über Main.


Jetz wird (falls noch nicht vorhanden) erstmal das public OnPlayerText erstellt,
was denn ungefär so aussehen sollte:

Code:
1
2
3
4
5
public OnPlayerText(playerid, text[])
{

return 1;
}


Und dann baut man die if Verzweigung ein.
Also wenn muted = 1 .

Code:
1
2
3
4
5
6
7
8
9
10
11
public OnPlayerText(playerid, text[])
{

if(muted[playerid] == 1)
{
SendClientMessage(playerid, COLOR_RED, "Du wurdest stummmgeschaltet und keiner kann dich hören");
return 0;
}

return 1;
}


"Du wurdest stummmgeschaltet und keiner kann dich hören"
Ist der Text der bei dem Spieler angezeigt werden soll, der gemuted sprechen will.

return 1;
Bedeutet, das das public angenommen/ausgeführt wird.

return 0;
Bedeutet, das das public geblockt, also kein text vom spieler ausgegeben wird.

Und damit hätten wir schonmal die Abfrage ob man gemuted ist
und die Definitionen (new, #define) vollständig.


//-----------------------------------------------------------------


Nun kommt das auszuführende Kommando:

Wenn nicht vorhanden sollte man entweder
oben #include <Dini> zu stehen haben
oder wenn man Dini nicht hat nur diesen code (am besten einfach ganz unten):

Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
strtok(const string[], &index)
{
new length = strlen(string);
new offset = index;
new result[MAX_STRING];
while ((index < length) && (string[index] <= ' '))
{
result[index - offset] = string[index];
index++;
}
while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
{
result[index - offset] = string[index];
index++;
}
result[index - offset] = EOS;
return result;
}


Aber nun weiter im Thema...


Die folgenden codes kommen in:

public OnPlayerCommandText(playerid, cmdtext[])


wo unter anderem auch das stehen sollte:

new cmd[256];
new tmp[256];
new idx;

//und ganz wichtig hierfür

new muteid;
new mutestring[256];
new mutename[256];

cmd = strtok(cmdtext, idx);


Obenstehende Variante #1:


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
if(strcmp(cmd, "/mute", true) == 0) {
tmp = strtok(cmdtext, idx);
muteid = strval(tmp);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_WHITE, "Benutzung: /mute [Spieler-ID]");
return 1;
}

if(IsPlayerAdmin(playerid))
{
if(IsPlayerConnected(muteid))
{
muted[muteid] = 1;
GetPlayerName(muteid, mutename, sizeof(mutename));
format(mutestring, sizeof(mutestring), "%s wurde stummgeschaltet",mutename);
SendClientMessageToAll(COLOR_ORANGE, mutestring);
}
else
{
format(mutestring, sizeof(mutestring), "%d ist kein aktiver Spieler",muteid);
SendClientMessageToAll(COLOR_RED, mutestring);
}
}
else SendClientMessage(playerid, COLOR_RED, "Du bist nicht als Admin eingeloggt");
return 1;
}

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
if(strcmp(cmd, "/unmute", true) == 0) {
tmp = strtok(cmdtext, idx);
muteid = strval(tmp);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_WHITE, "Benutzung: /mute [Spieler-ID]");
return 1;
}

if(IsPlayerAdmin(playerid))
{
if(IsPlayerConnected(muteid))
{
muted[muteid] = 0;
GetPlayerName(muteid, mutename, sizeof(mutename));

//Da man bei SendClientMessage keine Variablen normal verwenden kann,
//kommt ein string zur Benutzung. (new mutestring[256];) den man per format definiert.

format(mutestring, sizeof(mutestring), "%s ist nicht mehr stummgeschaltet",mutename);
SendClientMessageToAll(COLOR_ORANGE, mutestring);
}
else
{
format(mutestring, sizeof(mutestring), "%d ist kein aktiver Spieler",muteid);
SendClientMessageToAll(COLOR_RED, mutestring);
}
}
else SendClientMessage(playerid, COLOR_RED, "Du bist nicht als Admin eingeloggt");
return 1;
}


"%s ist nicht mehr stummgeschaltet", mutename);

%s = Text
%d = Zahl

mutename = Text/Zahl wovon


Obenstehende Variante #2:

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
if(strcmp(cmd, "/mute", true) == 0) {
tmp = strtok(cmdtext, idx);
muteid = strval(tmp);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_WHITE, "Benutzung: /mute [Spieler-ID]");
return 1;
}

if(IsPlayerAdmin(playerid))
{
if(IsPlayerConnected(muteid))
{
if(muted[muteid] == 0)
{
muted[muteid] = 1;
GetPlayerName(muteid, mutename, sizeof(mutename));
format(mutestring, sizeof(mutestring), "%s wurde stummgeschaltet",mutename);
SendClientMessageToAll(COLOR_ORANGE, mutestring);
}
else
{
muted[muteid] = 0;
GetPlayerName(muteid, mutename, sizeof(mutename));
format(mutestring, sizeof(mutestring), "%s ist nicht mehr stummgeschaltet",mutename);
SendClientMessageToAll(COLOR_ORANGE, mutestring);
}
}
else
{
format(mutestring, sizeof(mutestring), "%d ist kein aktiver Spieler",muteid);
SendClientMessageToAll(COLOR_RED, mutestring);
}
}
else SendClientMessage(playerid, COLOR_RED, "Du bist nicht als Admin eingeloggt");
return 1;
}


>Ich hoffe das, dies einigen geholfen hat und nicht zu unübersichtlich war :D

[17.10.2007 23:20]Edit: hab noch einige kleine änderungen vorgenommen.


Außerdem wäre noch praktisch, wenn neue bei neuen Spielern mute ausgeschaltet wird.
(das machst ja nicht von alleine bei id´s)

Also einfach mal in OnPlayerConnect:

Code:
1
muted[playerid] = 0;
Ripper, 03.11.2007, 16:44
hat bei mir net gefunzt viel zu viele errors
dödel, 03.11.2007, 18:51
Hast du denn auch wie oben geschrieben schon strtok drin ?
Graf, 10.11.2007, 14:04
Ich habe mal eine Frage dazu: Geht es auch das man Playern verbietet commands zu benutzen?
dödel, 10.11.2007, 14:14
Welcher Art von Spielern willst du es denn verbieten ;)

Admins
"nicht"-Admins
Bestimmten Namen, wie "[*]lol"

oder anderes.
TwIsTeR, 10.11.2007, 14:38
ZitatGraf hat folgendes geschrieben:
Ich habe mal eine Frage dazu: Geht es auch das man Playern verbietet commands zu benutzen?

Das geht aber ich kann es dir nicht erkläen wie es geht

mir mach sogar jemand rein das mann sich erst einloggen muss bis mann ü-haupt schreiben kann :D
Recycler, 10.11.2007, 15:49
ZitatTwIsTeR hat folgendes geschrieben:

mir mach sogar jemand rein das mann sich erst einloggen muss bis mann ü-haupt schreiben kann :D


Code:
1
2
3
4
5
public OnPlayerText(playerid, text[])
{
if (!logged[playerid]) return 0;
return 1;
}


30 Sekunden-Arbeit, nichts schwieriges.

MfG
Recycler
Graf, 10.11.2007, 19:31
Sowas will ich nich haben, nur das man mit einem command das machen kann, das ein anderer keinen
command mehr benutzen kann.
dödel, 10.11.2007, 19:52
So, da haste :D


Über Main:

new cmdmuted[MAX_PLAYERS];

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
57
58
59
60
61
public OnPlayerConnect(playerid)
{
cmdmuted[muteid] = 0;
return 1;
}

[code]
public OnPlayerCommandText(playerid, cmdtext[])
{

//Muss ganz oben bei den Kommandos stehen - anfang

if(strcmp(cmd, "/mutecmd", true) == 0) {
new tmp[256];
new muteid;
new mutestring[256];
new mutename[256];
tmp = strtok(cmdtext, idx);
muteid = strval(tmp);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_WHITE, "Benutzung: /mute [Spieler-ID]");
return 1; }
if(IsPlayerAdmin(playerid))
{
if(IsPlayerConnected(muteid))
{
if(cmdmuted[muteid] == 0)
{
cmdmuted[muteid] = 1;
GetPlayerName(muteid, mutename, sizeof(mutename));
format(mutestring, sizeof(mutestring), "%s kann keine Kommandos mehr benutzen",mutename);
SendClientMessageToAll(COLOR_ORANGE, mutestring);
}
else
{
cmdmuted[muteid] = 0;
GetPlayerName(muteid, mutename, sizeof(mutename));
format(mutestring, sizeof(mutestring), "%s kann wieder Kommandos benutzen",mutename);
SendClientMessageToAll(COLOR_ORANGE, mutestring);
}
}
else
{
format(mutestring, sizeof(mutestring), "%d ist kein aktiver Spieler",muteid);
SendClientMessageToAll(COLOR_RED, mutestring);
}
}
else SendClientMessage(playerid, COLOR_RED, "Du bist nicht als Admin eingeloggt");
return 1;
}

if(cmdmuted[muteid] != 0)
{
SendClientMessage(playerid, COLOR_RED, "Du kannst keine Kommandos benutzen, da es dir Verboten wurde
!");
return 1;
}

//Muss ganz oben bei den Kommandos stehen - ende

return 1;
}
Graf, 10.11.2007, 21:05
Ich kapiers nich-,-
Rafioso, 10.11.2007, 21:32
Was gibt es da nicht zu verstehen?
Du musst einfach den Code bei dir einfügen.

Ich glaube allerding, es ist besser, wenn du dich mit einem anderen Hobbie beschäftigst, z.B.
GTA-Modding :)

=) =) :D :D =) =)
Recycler, 10.11.2007, 22:03
ZitatRafioso hat folgendes geschrieben:
Was gibt es da nicht zu verstehen?
Du musst einfach den Code bei dir einfügen.

Nunja, da muss ich Graf teilweise Recht geben, so einfach ist das nicht zu verstehen. Jedenfalls
kommste mit einfachem Einfügen nicht weiter ;-)
Hier wäre eine Struktur, damit du den Code besser verstehst:

Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
public OnPlayerCommandText(playerid, cmdtext[])
{
if(cmdmuted[playerid] != 0)
{
SendClientMessage(playerid, COLOR_RED, "Du kannst keine Kommandos benutzen, da es dir Verboten wurde
!");
return 1;
}
else
{
// Alle deine Commands hier, inklusive den CmdMute-Command
}
return 0;
}


Zitatdödel hat folgendes geschrieben:

Code:

1
2
3
4
5
if(cmdmuted[muteid] != 0) // muteid kann hier nicht verwendet werden, muss natürlich wieder playerid 
sein ;) (oben ist es schon richtig)
{
SendClientMessage(playerid, COLOR_RED, "Du kannst keine Kommandos benutzen, da es dir Verboten wurde
!");
return 1;
}



MfG
Recycler
Graf, 11.11.2007, 13:27
ZitatZitat:
Ich glaube allerding, es ist besser, wenn du dich mit einem anderen Hobbie beschäftigst, z.B.
GTA-Modding :)
1.Ich beschäftige mich bereits damit :-)
2. So wie mir das Recycler erklärt hat versteh ich das viel besser, danke
Rafioso, 11.11.2007, 17:14

ZitatGraf hat folgendes geschrieben:
1.Ich beschäftige mich bereits damit :-)


Na dann zeig doch mal was im Showroom :)

ZitatGraf hat folgendes geschrieben:

2. So wie mir das Recycler erklärt hat versteh ich das viel besser, danke


Ich verstehe nicht was es da besser zu verstehen gibt, als bei dem Beispiel von dödel :confused:
Weil es kürzer ist?
Also du musst dich schon drann gewöhnen, dass nicht alles aus 13 Zeilen besteht.


@Recyler
Mit dem Einfügen meinte ich, dass wenn er es nicht versteht, oder nicht lernen will, er es einfach
einfügen soll denn es funktioniert einwandfrei.
Alles was man ihm versucht zu erklären, ob TextDraw, oder ClanWar usw. versteht er nicht und ich
denke dass er es auch nie verstehen wird, wenn er nicht klein anfängt.
=) =) :D :D =) =)
FloRaX, 13.11.2007, 12:34
hmm bei mir kommt so ein fehler denn ich nicht beheben kann

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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
#include <a_samp>
#define COLOR_RED 0xAA3333AA
#define COLOR_WHITE 0xFFFFFFAA
#define COLOR_ORANGE 0xFF8C00AA
#include <Dini>
new muted[MAX_PLAYERS];
#if defined FILTERSCRIPT
#endif
public OnFilterScriptInit()
{
   print("\n--------------------------------------");
   print(" Blank Filterscript by your name here");
   print("--------------------------------------\n");
   return 1;
}
public OnGameModeInit()
{

   return 1;
}

OnPlayerConnect(playerid)
{
muted[playerid] = 0;
return 1;
}
public OnPlayerText(playerid, text[])
{
if(muted[playerid] == 1)
{
SendClientMessage(playerid, COLOR_RED, "Du wurdest stummmgeschaltet und keiner kann dich hören");
return 0;
}
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
new cmd[256];
new tmp[256];
new idx;
new muteid;
new mutestring[256];
new mutename[256];

cmd = strtok(cmdtext, idx);

if(strcmp(cmd, "/mute", true) == 0) {
tmp = strtok(cmdtext, idx);
muteid = strval(tmp);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_WHITE, "Benutzung: /mute [Spieler-ID]");
return 1;
}

if(IsPlayerAdmin(playerid))
{
if(IsPlayerConnected(muteid))
{
muted[muteid] = 1;
GetPlayerName(muteid, mutename, sizeof(mutename));
format(mutestring, sizeof(mutestring), "%s wurde stummgeschaltet",mutename);
SendClientMessageToAll(COLOR_ORANGE, mutestring);
else SendClientMessage(playerid, COLOR_RED, "Du bist nicht als Admin eingeloggt");
}
else
{
format(mutestring, sizeof(mutestring), "%d ist kein aktiver Spieler",muteid);
SendClientMessageToAll(COLOR_RED, mutestring);
}
}
else SendClientMessage(playerid, COLOR_RED, "Du bist nicht als Admin eingeloggt");
return 1;
}
if(strcmp(cmd, "/unmute", true) == 0) {
tmp = strtok(cmdtext, idx);
muteid = strval(tmp);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_WHITE, "Benutzung: /mute [Spieler-ID]");
return 1;
}

if(IsPlayerAdmin(playerid))
{
if(IsPlayerConnected(muteid))
{
muted[muteid] = 0;
GetPlayerName(muteid, mutename, sizeof(mutename));

//Da man bei SendClientMessage keine Variablen normal verwenden kann,
//kommt ein string zur Benutzung. (new mutestring[256];) den man per format definiert.

format(mutestring, sizeof(mutestring), "%s ist nicht mehr stummgeschaltet",mutename);
SendClientMessageToAll(COLOR_ORANGE, mutestring);
}
else
{
format(mutestring, sizeof(mutestring), "%d ist kein aktiver Spieler",muteid);
SendClientMessageToAll(COLOR_RED, mutestring);
}
}
else SendClientMessage(playerid, COLOR_RED, "Du bist nicht als Admin eingeloggt");
return 1;
}
if(strcmp(cmd, "/mute", true) == 0) {
tmp = strtok(cmdtext, idx);
muteid = strval(tmp);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_WHITE, "Benutzung: /mute [Spieler-ID]");
return 1;
}

if(IsPlayerAdmin(playerid))
{
if(IsPlayerConnected(muteid))
{
if(muted[muteid] == 0)
{
muted[muteid] = 1;
GetPlayerName(muteid, mutename, sizeof(mutename));
format(mutestring, sizeof(mutestring), "%s wurde stummgeschaltet",mutename);
SendClientMessageToAll(COLOR_ORANGE, mutestring);
}
else
{
muted[muteid] = 0;
GetPlayerName(muteid, mutename, sizeof(mutename));
format(mutestring, sizeof(mutestring), "%s ist nicht mehr stummgeschaltet",mutename);
SendClientMessageToAll(COLOR_ORANGE, mutestring);
}
}
else
{
format(mutestring, sizeof(mutestring), "%d ist kein aktiver Spieler",muteid);
SendClientMessageToAll(COLOR_RED, mutestring);
}
}
else SendClientMessage(playerid, COLOR_RED, "Du bist nicht als Admin eingeloggt");
return 1;
}
return 0;
}

So hab ichs eingefügt

Code:

1
2
3
4
5
6
7
C:\Dokumente und Einstellungen\Nina\Desktop\lalala.pwn(63) : error 029: invalid expression, assumed 
zero
C:\Dokumente und Einstellungen\Nina\Desktop\lalala.pwn(142) : warning 203: symbol is never used: "On
PlayerConnect"
C:\Dokumente und Einstellungen\Nina\Desktop\lalala.pwn(142) : warning 203: symbol is never used: "re
t_memcpy"
Pawn compiler 3.2.3664           Copyright (c) 1997-2006, ITB CompuPhase


1 Error.

Aber das kommt als fehler
dödel, 13.11.2007, 13:37
1. Das heißt: public OnPlayerConnect

2. entweder entferne einfach ret_memcpy probiers mal mit #pragma unused ret_memcpy

3. nimm dieses überflüssige else raus und der error is weg ;) :

Code:
1
2
3
4
5
6
7
8
if(IsPlayerConnected(muteid))
{
muted[muteid] = 1;
GetPlayerName(muteid, mutename, sizeof(mutename));
format(mutestring, sizeof(mutestring), "%s wurde stummgeschaltet",mutename);
SendClientMessageToAll(COLOR_ORANGE, mutestring);
// - else SendClientMessage(playerid, COLOR_RED, "Du bist nicht als Admin eingeloggt");  DIESES HIER
}



Edit: Zu 3. das war ein Fehler von mir, habs aber schon im gesamten geändert gehabt ;)
FloRaX, 13.11.2007, 19:26
Hey cool danke sehr!

Code:

1
2
3
4
5
6
C:\Dokumente und Einstellungen\Nina\Desktop\SA-MP Server\pawno\include\dutils.inc(461) : warning 219
: local variable "txt" shadows a variable at a preceding level
C:\Dokumente und Einstellungen\Nina\Desktop\SA-MP Server\pawno\include\dutils.inc(477) : warning 219
: local variable "txt" shadows a variable at a preceding level
Pawn compiler 3.2.3664           Copyright (c) 1997-2006, ITB CompuPhase


2 Warnings.


Hmm aber wenn ich ins gamemode einfüge kommen sollche warnings,wieso?
dödel, 14.11.2007, 16:14
Diese Warnungen kannst du eigentlich ignorieren,
wenn sie dich stören, brüchte ich mal den gesamten code,
ich kann ja schlecht sehen wo das gemacht wird ;)

aber falls bei diesen beiden Zeilen ein new ist, entferne diese einfach
und compile nochmal, denn wirste sehen ob er immernoch kommt.
Recycler, 14.11.2007, 16:53
Oh, diese Warnings sind sehr wichtig! Das heißt, das du eine lokale Variable erstellt hast, mit
einem Namen, den aber schon eine übergeordnete Variable hat. Das kann fatale Folgen haben :/

MfG
Recycler
dödel, 14.11.2007, 16:55
Denn könntest du mir auch mal erklären, welche Folgen das haben könnte ;)

Edit: Ich sehe auch gerade erst, das der Fehler in dutils ist :confused:
Also der ist mir noch nicht bekannt (jedenfalls nicht in dutils)
Recycler, 14.11.2007, 17:12
Eine Variable mit dem Namen "txt" besteht bereits. Eine neue Variable mit dem Namen "txt" wird
erstellt. Inhalt der ursprünglichen Variable wird überschrieben. Ich finde das fatal.

@ dödels Edit:

Du weißt schon, das der Fehler nicht in dutils liegt? Es gibt eben schon eine Variable in dem
Hauptscript mit dem Namen "txt". Wenn dutils jetzt auch zufällig so eine mit diesem Namen erstellt
ist das kein Fehler!

MfG
Recycler
dödel, 14.11.2007, 17:20
OK... danke, damit hast du mir gleich geholfen,
ich hab das auch bei etwas, kommen zwar keine Fehler,
aber jetzt weiß ich wo :)

Ich habe in meinem Mode ein "new mod; "
jedoch gibt es nähmlcih in einem include
ein "stock mod"

*thx*


Und wieder was gelernt :D


ZitatRecycler hat folgendes geschrieben:
Ich finde das fatal.


Ok, jetz seh ichs auch,
ich denke mal, das es nicht gut ist,
wenn eine Wichtige Funktion
überschrieben wird ;)
Ripper, 05.12.2007, 17:53
kann mir jemand bitte diese befehle machen und zwar so, dass es in "dcmd" ist????
dödel, 05.12.2007, 18:19
Du nimmst einfach das raus:

tmp = strtok(cmdtext, idx);


Und änderst
muteid = strval(tmp);
in
muteid = strval(params);

schon klappts im dcmd
Ripper, 05.12.2007, 18:33
ja hab nur ein problem: es geht so wie du's gepostet hast ja auch net!!! wenn ich's in den
adminfilter mach gehtz garnet und wenn ich das in den gm mach dann kann mans machen aber der
gemutete kann noch schreiben -.-


PS: ich werds mal mit dcmd probieren ;-)

dcmd fertig ;-) ich mach noch umute und teste das ganze dann wenn es geht dann passtz

also machbar wars ich werde mich jetz mal in den server verziehen und das probieren ;-)


es hat geklappt!! =) danke anders gigns net aber als dcmd schon ;-)

ich geb mal den code^^:

Code:
1
2
   dcmd(mute,4,cmdtext);
   dcmd(unmute,6,cmdtext);


klar wo das hignehört :D

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
57
58
59
dcmd_mute(playerid,params[]) {
new muteid;
new mutename[256];
new mutestring[256];
muteid = strval(params);
if(!strlen(params)) {
SendClientMessage(playerid, COLOR_WHITE, "Benutzung: /mute [Spieler-ID]");
return 1;
}

if(IsPlayerAdmin(playerid))
{
if(IsPlayerConnected(muteid))
{
muted[muteid] = 1;
GetPlayerName(muteid, mutename, sizeof(mutename));
format(mutestring, sizeof(mutestring), "%s wurde stummgeschaltet",mutename);
SendClientMessageToAll(COLOR_ORANGE, mutestring);
}
else
{
format(mutestring, sizeof(mutestring), "%d ist kein aktiver Spieler",muteid);
SendClientMessageToAll(COLOR_RED, mutestring);
}
}
else SendClientMessage(playerid, COLOR_RED, "Du bist nicht als Admin eingeloggt");
return 1;
}

dcmd_unmute(playerid,params[]) {
new muteid;
new mutename[256];
new mutestring[256];
muteid = strval(params);
if(!strlen(params)) {
SendClientMessage(playerid, COLOR_WHITE, "Benutzung: /unmute [Spieler-ID]");
return 1;
}

if(IsPlayerAdmin(playerid))
{
if(IsPlayerConnected(muteid))
{
muted[muteid] = 0;
GetPlayerName(muteid, mutename, sizeof(mutename));


format(mutestring, sizeof(mutestring), "%s ist nicht mehr stummgeschaltet",mutename);
SendClientMessageToAll(COLOR_ORANGE, mutestring);
}
else
{
format(mutestring, sizeof(mutestring), "%d ist kein aktiver Spieler",muteid);
SendClientMessageToAll(COLOR_RED, mutestring);
}
}
else SendClientMessage(playerid, COLOR_RED, "Du bist nicht als Admin eingeloggt");
return 1;
}


new muted[MAX_PLAYERS] brauchste nattürlich auch und das von OnPlayerText auch *rofl*

MfG Ripper
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