AdminMod.de https://www.adminmod.de/ |
|
Neues script was text im spiel einblendet. https://www.adminmod.de/viewtopic.php?t=2752 |
Seite 1 von 2 |
Autor: | MrSpoocy [ 28.04.2002, 23:21 ] |
Betreff des Beitrags: | Neues script was text im spiel einblendet. |
Also , so langsam seh ich nicht mehr durch........ z.b strbreak(str, x, y, MAX_TEXT_LENGTH); bei einiegen seh ich das anstellen von MAX_TEXT_LENGTH was anderes steht, (MAX_NAME_LENGTH. MAX_DATA_LENGTH). lann mir mal einer den unterschied zwischen den ganzen MAX_XXX_LENGTH nennen ? Geht um dieses script: Code: new str[MAX_DATA_LENGTH]; new rest[MAX_DATA_LENGTH]; new R[MAX_DATA_LENGTH]; new G[MAX_DATA_LENGTH]; new B[MAX_DATA_LENGTH]; new d[MAX_DATA_LENGTH]; new msg[MAX_DATA_LENGTH]; if (readfile(TextFile, str, i, MAX_TEXT_LENGTH) != 0) { strbreak(str, R, rest, MAX_DATA_LENGTH); strbreak(rest, G, rest, MAX_DATA_LENGTH); strbreak(rest, B, rest, MAX_DATA_LENGTH); strbreak(rest, d, msg, MAX_DATA_LENGTH); centersay(msg,d,R,G,B); }im textfile würde dann folgendes stehen Zitat: 255 0 0 10 Text
|
Autor: | daRope [ 28.04.2002, 23:31 ] |
Betreff des Beitrags: | |
Kuck in admin.inc. In Deinem Fall wuerde ich z.B. statt new R[MAX_DATA_LENGTH]; einfach new R[4]; empfehlen, wenn Du schon weisst, dass nur dreistellige Zahlen da rein sollen. Vier, weil Du die abschliessende '^0' nicht vergessen darfst, mit der ein String immer terminiert wird. |
Autor: | MrSpoocy [ 28.04.2002, 23:36 ] |
Betreff des Beitrags: | |
Code: public go() { new TextFile[MAX_DATA_LENGTH]; new counter = 0; new str[MAX_DATA_LENGTH]; new rest[MAX_DATA_LENGTH]; new R[4]; new G[4]; new B[4]; new d[MAX_DATA_LENGTH]; new msg[MAX_DATA_LENGTH]; new text[MAX_TEXT_LENGTH]; strcpy(TextFile, "msg.txt", MAX_DATA_LENGTH); if (fileexists(TextFile) == 1) { counter = filesize(TextFile, 1); } else { return PLUGIN_HANDLED; } if(i>counter) { i = 1; } if (readfile(TextFile, str, i, MAX_TEXT_LENGTH) != 0) { strbreak(str, R, rest, MAX_DATA_LENGTH); strbreak(rest, G, rest, MAX_DATA_LENGTH); strbreak(rest, B, rest, MAX_DATA_LENGTH); strbreak(rest, d, msg, MAX_DATA_LENGTH); if(strlen(R)==0 || strlen(G)==0 || strlen(B)==0 || strlen(d)==0 || strlen(msg)==0) { snprintf(text, MAX_TEXT_LENGTH, "Die nachricht in Zeihle %i weist einen fehler auf.", i); consgreet(text); return PLUGIN_HANDLED; } centersay(msg,d,R,G,B); i++; } return PLUGIN_CONTINUE; }Error meldung: Zitat: plugin_msg.sma(88) Error [35]: argument type mismatch (argument 2)
Zeihle 88 ist die mit dem centersay();
|
Autor: | Warhead [ 28.04.2002, 23:49 ] |
Betreff des Beitrags: | |
Das ist derselbe Fehler den Du immer wieder machst, in Deinem Beispiel sind R,G und B Strings, in der centersay-Funktion werden jedoch Integer erwartet. |
Autor: | MrSpoocy [ 28.04.2002, 23:51 ] |
Betreff des Beitrags: | |
1. centersay(msg,d[0],R[0],G[0],B[0]); 2. R = numtostr(R); 3. R = strtonum(R); einer von denen ? Wird auch noch nee weihle dauern bis ich es lehrne Nachtrag: Und machst auch immer den gleichen fehler, du schreibst zwar was ich falsch mache aber nicht wie ich es löse , alleine bekomm ich es nicht hin , sonnst hätte ich ja nicht ins forum gepostet |
Autor: | Warhead [ 29.04.2002, 00:05 ] |
Betreff des Beitrags: | |
Da der Fehler nun schon ein 2. Mal von Dir hier gepostet wurde, benutze doch einfach die Suchfunktion des Forums oder schaue in Deinen Code, in dem Du das Problem damals gelöst hattest. Du bist ja schließlich so ein toller PHP-Coder, da sollte Dir sowas eigentlich selbst einfallen. |
Autor: | MrSpoocy [ 29.04.2002, 00:10 ] |
Betreff des Beitrags: | |
Ich hab mich für den suchbegriff "Integer" endscheiden , aber er hat nur den post hier gefunden. |
Autor: | Warhead [ 29.04.2002, 00:12 ] |
Betreff des Beitrags: | |
Dann musst Du halt in Deinen Code schauen... |
Autor: | MrSpoocy [ 29.04.2002, 00:17 ] |
Betreff des Beitrags: | |
Hab ich , und auch gefunden: Code: new TextFile[MAX_DATA_LENGTH]; new counter = 0; new str[MAX_DATA_LENGTH]; new rest[MAX_DATA_LENGTH]; new R[4]; new G[4]; new B[4]; new d[MAX_DATA_LENGTH]; new msg[MAX_DATA_LENGTH]; new text[MAX_TEXT_LENGTH]; new temp[MAX_DATA_LENGTH]; ... .. . strbreak(str, temp, rest, MAX_DATA_LENGTH); R = strtonum(temp); strbreak(rest, temp, rest, MAX_DATA_LENGTH); G = strtonum(temp); strbreak(rest, temp, rest, MAX_DATA_LENGTH); B = strtonum(temp); strbreak(rest, temp, msg, MAX_DATA_LENGTH); d = strtonum(temp);nur geht auch auch nicht Zitat: plugin_msg.sma(79) Error [33]: array must be indexed (variable "R")
plugin_msg.sma(81) Error [33]: array must be indexed (variable "G") plugin_msg.sma(83) Error [33]: array must be indexed (variable "B") plugin_msg.sma(85) Error [33]: array must be indexed (variable "d") plugin_msg.sma(93) Error [35]: argument type mismatch (argument 3) |
Autor: | Sir Drink a lot [ 29.04.2002, 00:56 ] |
Betreff des Beitrags: | |
aber der Unterschied zwischen einem Integer und einem String ist doch klar, oder ? Du bringst alles durcheinander. Jetzt ist ja R G B bei Dir ein Integer. Dann brauchst Du die [4] nicht. |
Autor: | MrSpoocy [ 29.04.2002, 02:04 ] |
Betreff des Beitrags: | Script fertig |
So, script ist fertig und geht sogar ) Code: #include <core> #include <console> #include <string> #include <admin> #include <adminlib> new STRING_VERSION[MAX_DATA_LENGTH] = "1.0"; new time; new i=1; new stimer = 180; public admin_msg(HLCommand,HLData,HLUserName,UserIndex) { new User[MAX_NAME_LENGTH]; new Data[MAX_DATA_LENGTH]; new Command[MAX_COMMAND_LENGTH]; convert_string(HLCommand,Command,MAX_COMMAND_LENGTH); convert_string(HLData,Data,MAX_DATA_LENGTH); convert_string(HLUserName,User,MAX_NAME_LENGTH); if(strcasestr(Data, "stop")!=-1) { kill_timer(time); consgreet("[SERVER]: Nachrichten werden nicht mehr eingeblendet."); return PLUGIN_HANDLED; } if(strcasestr(Data, "start")!=-1) { kill_timer(time); time = set_timer("go", stimer, 99999); consgreet("[SERVER]: Nachrichten werden wieder eingeblendet."); return PLUGIN_HANDLED; } if(strcasestr(Data, "start")==-1 && strcasestr(Data, "stop")==-1) { consgreet("Es fehlt leider ein command. admin_msg <start/stop>"); return PLUGIN_HANDLED; } return PLUGIN_CONTINUE; } public go() { new TextFile[MAX_DATA_LENGTH]; new counter = 0; new str[MAX_DATA_LENGTH]; new rest[MAX_DATA_LENGTH]; new R; new G; new B; new T; new msg[MAX_DATA_LENGTH]; new temp[MAX_DATA_LENGTH]; strcpy(TextFile, "msg.txt", MAX_DATA_LENGTH); if (fileexists(TextFile) == 1) { counter = filesize(TextFile, 1); } else { return PLUGIN_HANDLED; } if(i>=counter) { i = 1; } if (readfile(TextFile, str, i, MAX_TEXT_LENGTH) != 0) { strbreak(str, temp, rest, MAX_DATA_LENGTH); R = strtonum(temp); strbreak(rest, temp, rest, MAX_DATA_LENGTH); G = strtonum(temp); strbreak(rest, temp, rest, MAX_DATA_LENGTH); B = strtonum(temp); strbreak(rest, temp, msg, MAX_DATA_LENGTH); T = strtonum(temp); centersay(msg,T,R,G,B); } i++; return PLUGIN_CONTINUE; } public plugin_init() { plugin_registerinfo("Center-Say nachrichten.","Codet bei MrSpoocy www.foc-clan.de",STRING_VERSION); plugin_registercmd("admin_msg","admin_msg",128,"Mit diesem Plug in werden bestimmte nachrichten regelmaesig eingeblendet. admin_msg <stat/stop>"); new VaultData[MAX_DATA_LENGTH]; if(get_vaultdata("msgsek", VaultData, MAX_DATA_LENGTH) != 0) { stimer = strtonum(VaultData); } time = set_timer("go", stimer, 99999); return PLUGIN_CONTINUE; }Befele: ->admin_msg <start/stop> Benötigte rechte: ->128 Server einstellung: ->file_access_read 1 ->in der vault.ini muß msgsek <sek> gesetzt sein (z.b msgsek 30) dann blendet er alle 30 sek einen satz ein. ->Eine msg.txt muß erstellt werden und in folgendem format geschrieben werden. <R> <G> <B> <sek> <Text> //sek steht für die dauer des einbelndens 255 0 0 10 Dieser text ist Rot und wird 10 sek eingeblendet. Anmerkung: ->Das script geht jede zeihle durch, und ist auf endlos gestellt. ->Wenn ein text im falschen format geschrieben ist passiert nix, das script leuft weiter , also keine angst der server schmiert nicht ab Dankeschreiben: ->Warhead ->daRope ->Sir Drink a lot |
Autor: | [WING] Black Knight [ 29.04.2002, 09:55 ] |
Betreff des Beitrags: | |
Vielleicht als Info für alle, die PHPnicht so gut kennen. In PHP ist keine Variablen-Definition notwendig. Dadurch ist vielleicht verständlich, dass er ein paar Verständnisprobleme hat, wenn es seine erste Programmiersprache ist. |
Autor: | Warhead [ 29.04.2002, 11:00 ] |
Betreff des Beitrags: | |
Trotzdem sollte man als PHP-Coder in der Lage sein, Fehler interpretieren und Dokus lesen zu können. |
Autor: | daRope [ 29.04.2002, 19:26 ] |
Betreff des Beitrags: | |
Ssssshhhhhhhhhhhhhhhh |
Autor: | backbone [ 02.05.2002, 18:51 ] |
Betreff des Beitrags: | |
black des so nich ganz richtig in php muss man auch ab und zu variiablen genau definieren um sie für eine funktion zu verwenden.... |
Autor: | [WING] Black Knight [ 02.05.2002, 19:49 ] |
Betreff des Beitrags: | |
Beispiel? Mir fällt spontan keines ein. Bin jetzt ein wenig irritiert. Meinst Du in "function beispiel(var1, var2, &var3, var4)"? Aber das ist keine Variablendefinition, sondern eine Übergabe. Bitte mal näher erklären, was Du meinst. |
Autor: | backbone [ 03.05.2002, 12:25 ] |
Betreff des Beitrags: | |
wenn du zB beispiel einen string aus einer datei ausließt und in dem string nur die zahlen rausfilters und möchtest die dann in mathemaitschen rechnugen/funktionen verwenden musst du sie in integer wert konvertieren |
Autor: | [WING] Black Knight [ 03.05.2002, 12:52 ] |
Betreff des Beitrags: | |
Wie heißt die Funktion, die Strings in Integer umwandelt? Sowas ist mir bisher NIE untergekommen. Das hat PHP grundsätzlich selber übernommen. Ich wünschte ich hätte da Einflussnahme, denn jede Umwandlung kostet Zeit. |
Autor: | Sir Drink a lot [ 03.05.2002, 12:56 ] |
Betreff des Beitrags: | |
für adminmod: numtostr(iX,X) oder eben iX = strtonum( sString[] ). Aber das hilft dir jetzt nicht weiter für php Aber wenn das jetzt eine PHP - Thread wird...bitte im offtopic. (*ist nicht böse gemeint Blacky !!!!*) |
Autor: | backbone [ 03.05.2002, 12:57 ] |
Betreff des Beitrags: | |
funktion is settype() die verlangt 2 parameter: 1. die variiable wo der type festgelegt werden soll 2. was für ein type des werden soll diese typen kannste einsetzen: "integer" "double" "string" "array" "object" wenn der string buchstaben oder andere zeichen enthält die keine zahlen sind wird der wert 1! |
Seite 1 von 2 | Alle Zeiten sind UTC+01:00 |
Powered by phpBB® Forum Software © phpBB Limited https://www.phpbb.com/ |