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: 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: Und dann baut man die if Verzweigung ein. Also wenn muted = 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): 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: "%s ist nicht mehr stummgeschaltet", mutename); %s = Text %d = Zahl mutename = Text/Zahl wovon Obenstehende Variante #2: >Ich hoffe das, dies einigen geholfen hat und nicht zu unübersichtlich war [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: |
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 |
---|
Graf 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 |
Recycler, 10.11.2007, 15:49 |
---|
TwIsTeR hat folgendes geschrieben: mir mach sogar jemand rein das mann sich erst einloggen muss bis mann ü-haupt schreiben kann 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 Über Main: new cmdmuted[MAX_PLAYERS]; |
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 =) =) =) =) |
Recycler, 10.11.2007, 22:03 |
---|
Rafioso 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: dödel hat folgendes geschrieben: MfG Recycler |
Graf, 11.11.2007, 13:27 |
---|
Zitat: Ich glaube allerding, es ist besser, wenn du dich mit einem anderen Hobbie beschäftigst, z.B. GTA-Modding 2. So wie mir das Recycler erklärt hat versteh ich das viel besser, danke |
Rafioso, 11.11.2007, 17:14 |
---|
Graf hat folgendes geschrieben: 1.Ich beschäftige mich bereits damit Na dann zeig doch mal was im Showroom Graf 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 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. =) =) =) =) |
FloRaX, 13.11.2007, 12:34 |
---|
hmm bei mir kommt so ein fehler denn ich nicht beheben kann So hab ichs eingefügt 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 : 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! 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 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" Und wieder was gelernt Recycler 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^^: klar wo das hignehört new muted[MAX_PLAYERS] brauchste nattürlich auch und das von OnPlayerText auch MfG Ripper |