Ein neues Thema erstellen  Auf das Thema antworten  [ 22 Beiträge ]  Gehe zu Seite 1 2 Nächste
Autor Nachricht
BeitragVerfasst: 28.04.2002, 23:21 

Registriert: 25.03.2002, 23:02
Beiträge: 131
Wohnort: Berlin
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


Zuletzt geändert von MrSpoocy am 29.04.2002, 02:06, insgesamt 1-mal geändert.

Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 28.04.2002, 23:31 
AM.de Team
Benutzeravatar

Registriert: 22.10.2001, 01:00
Beiträge: 839
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.

_________________
There are no stupid questions, only stupid people.


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 28.04.2002, 23:36 

Registriert: 25.03.2002, 23:02
Beiträge: 131
Wohnort: Berlin
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();


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 28.04.2002, 23:49 

Registriert: 17.12.2001, 01:00
Beiträge: 697
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.


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 28.04.2002, 23:51 

Registriert: 25.03.2002, 23:02
Beiträge: 131
Wohnort: Berlin
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


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 29.04.2002, 00:05 

Registriert: 17.12.2001, 01:00
Beiträge: 697
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.


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 29.04.2002, 00:10 

Registriert: 25.03.2002, 23:02
Beiträge: 131
Wohnort: Berlin
Ich hab mich für den suchbegriff "Integer" endscheiden , aber er hat nur den post hier gefunden. :-(


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 29.04.2002, 00:12 

Registriert: 17.12.2001, 01:00
Beiträge: 697
Dann musst Du halt in Deinen Code schauen...


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 29.04.2002, 00:17 

Registriert: 25.03.2002, 23:02
Beiträge: 131
Wohnort: Berlin
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)


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 29.04.2002, 00:56 
AM.de Team
Benutzeravatar

Registriert: 27.11.2001, 01:00
Beiträge: 3564
Wohnort: In der Nähe von Bonn
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.

_________________
Fehleranalyse: Poste den Inhalt Deiner liblist.gam, (listen)server.cfg, adminmod.cfg, users.ini, vault.ini, plugin.ini von adminmod und plugins.ini von metamod. Benutze auch die Such-Funktion


Nach oben
   
 Betreff des Beitrags: Script fertig
BeitragVerfasst: 29.04.2002, 02:04 

Registriert: 25.03.2002, 23:02
Beiträge: 131
Wohnort: Berlin
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


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 29.04.2002, 09:55 
AM.de Team
Benutzeravatar

Registriert: 23.11.2001, 00:00
Beiträge: 3842
Wohnort: Vor König Arthus
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.

_________________
Der schwarze Ritter triumphiert immer...
WING-Clan


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 29.04.2002, 11:00 

Registriert: 17.12.2001, 01:00
Beiträge: 697
Trotzdem sollte man als PHP-Coder in der Lage sein, Fehler interpretieren und Dokus lesen zu können.


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 29.04.2002, 19:26 
AM.de Team
Benutzeravatar

Registriert: 22.10.2001, 01:00
Beiträge: 839
Ssssshhhhhhhhhhhhhhhh

_________________
There are no stupid questions, only stupid people.


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 02.05.2002, 18:51 

Registriert: 02.05.2002, 15:08
Beiträge: 18
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....

_________________
<? echo 'cya'; ?>


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 02.05.2002, 19:49 
AM.de Team
Benutzeravatar

Registriert: 23.11.2001, 00:00
Beiträge: 3842
Wohnort: Vor König Arthus
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.

_________________
Der schwarze Ritter triumphiert immer...
WING-Clan


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 03.05.2002, 12:25 

Registriert: 02.05.2002, 15:08
Beiträge: 18
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

_________________
<? echo 'cya'; ?>


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 03.05.2002, 12:52 
AM.de Team
Benutzeravatar

Registriert: 23.11.2001, 00:00
Beiträge: 3842
Wohnort: Vor König Arthus
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.

_________________
Der schwarze Ritter triumphiert immer...
WING-Clan


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 03.05.2002, 12:56 
AM.de Team
Benutzeravatar

Registriert: 27.11.2001, 01:00
Beiträge: 3564
Wohnort: In der Nähe von Bonn
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 !!!!*)

_________________
Fehleranalyse: Poste den Inhalt Deiner liblist.gam, (listen)server.cfg, adminmod.cfg, users.ini, vault.ini, plugin.ini von adminmod und plugins.ini von metamod. Benutze auch die Such-Funktion


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 03.05.2002, 12:57 

Registriert: 02.05.2002, 15:08
Beiträge: 18
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!

_________________
<? echo 'cya'; ?>


Nach oben
   
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen  Auf das Thema antworten  [ 22 Beiträge ]  Gehe zu Seite 1 2 Nächste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Powered by phpBB® Forum Software © phpBB Limited
Deutsche Übersetzung durch phpBB.de
Original Design von "[ Half-Life Admin Mod © Alfred Reynolds 2000-2003 ] - [ site design by Jägermeister ]"