Hey Leute,
ich brauche dringende Hilfe bei einem Serverproblem, da es meinen kompletten Gamemode sehr stark beeinträchtigt.
Ich habe in meine Script eine "Funktion" eingebaut die es ermöglicht "ClientMessage's" an Spieler mit einem String zu senden, so dass man nich permanent
dieses "fortmat(...." machen muss.
Das ganze sieht so aus:
stock SCMF(playerid, color, fstring[], {Float, _}:...)
{
	static const STATIC_ARGS = 3;
	new n = (numargs() - STATIC_ARGS) * BYTES_PER_CELL;
	if(n)
	{
    	new message[144],arg_start,arg_end;
    	#emit CONST.alt    	fstring
    	#emit LCTRL      	5
    	#emit ADD
    	#emit STOR.S.pri    	arg_start
    	#emit LOAD.S.alt    	n
    	#emit ADD
    	#emit STOR.S.pri    	arg_end
    	do
    	{
        	#emit LOAD.I
        	#emit PUSH.pri
        	arg_end -= BYTES_PER_CELL;
        	#emit LOAD.S.pri  	arg_end
    	}
    	while(arg_end > arg_start);
    	#emit PUSH.S      	fstring
    	#emit PUSH.C      	144
    	#emit PUSH.ADR     	message
    	n += BYTES_PER_CELL * 3;
    	#emit PUSH.S      	n
    	#emit SYSREQ.C     	format
    	n += BYTES_PER_CELL;
    	#emit LCTRL      	4
    	#emit LOAD.S.alt    	n
    	#emit ADD
    	#emit SCTRL      	4
    	if(playerid == INVALID_PLAYER_ID)
    	{
        	#pragma unused playerid
        	return SendClientMessageToAll(color, message);
    	} else {
        	return SCM(playerid, color, message);
    	}
	} else {
    	if(playerid == INVALID_PLAYER_ID)
    	{
        	#pragma unused playerid
        	return SendClientMessageToAll(color, fstring);
    	} else {
        	return SCM(playerid, color, fstring);
    	}
	}
}
Nun habe ich diese "Funktion" auch sehr oft in meinem Gamemode eingebaut und alles lief auch ohne Probleme.
Irgendwann jedoch habe ich sehr viel an meinem Gamemode gebastelt, so dass ich dann irgendwann das Problem hatte, dass 
wenn ich gewisse Commands eingebe (Beispiel unten: ocmd:setlevel) der ganze Server crasht und folgende Sachen in der Log ausspuckt:
Server Log:
[00:15:02] [debug] Server crashed while executing inventar.amx
[00:15:02] [debug] AMX backtrace:
[00:15:02] [debug] #0 native format () [080da300] from samp9915_6
[00:15:02] [debug] #1 0000a7b8 in SCMF (playerid=0, color=-65366, fstring[]=@0x00c725b4 "%s hat dir Level %s gegeben", ... <2 variable arguments>) at D:\Domi\Spiele\GTA San Andreas\Selfmade\gamemodes\inventar.pwn:138
[00:15:02] [debug] #2 00101b90 in public ocmd_setlevel (playerid=0, params[]=@0x00caf580 "0 10") at D:\Domi\Spiele\GTA San Andreas\Selfmade\gamemodes\inventar.pwn:19421
[00:15:02] [debug] #3 native CallLocalFunction () [080dce40] from samp9915_6
[00:15:02] [debug] #4 00000b0c in public OnPlayerCommandText (playerid=0, cmdtext[]=@0x00caf544 "_setlevel 0 10") at D:\Domi\Spiele\GTA San Andreas\Selfmade\pawno\include\ocmd.inc:33Beim Script compilen kommen zwar keine Fehler oder Warnings, jedoch aber diese Meldung:
Header size:      	13924 bytes
Code size:      	1613964 bytes
Data size:     	13301060 bytes
Stack/heap size:  	16384 bytes; estimated max. usage: unknown, due to recursion
Total requirements:14945332 bytes
Der Beispielcommand sieht folgendermaßen aus:
ocmd:setlevel(playerid,params[])
{
	if(isPlayerAnAdmin(playerid,5))
	{
		new pID;
 		new string[200];
 		new sender[32];
 		new player[32];
 		new level;
 		GetPlayerName(playerid,sender,sizeof(sender));
 		GetPlayerName(pID,player,sizeof(player));
 		if(sscanf(params,"ui",pID,level))return SCM(playerid, COLOR_FADE3,"/setlevel [Name/ID] [Level]");
 		if(level<1||level>30)return SCM(playerid, COLOR_FADE3,"Du musst zwischen Level 1 und 30 geben!");
    	if(pID != INVALID_PLAYER_ID)
   		{
    		SetPlayerScore(pID,level);
        	SCMF(playerid,COLOR_YELLOW,"%s hat dir Level %s gegeben",sender,level);
        	format(string, sizeof(string),"[AdmMsg] %s hat %s Level %s gegeben.", sender, player,level);
        	ABroadCast(ROT,string,1);
        	return 1;
    	}
    	SCM(playerid,ROT,"Der Spieler ist ungültig!");
    	return 1;
	}
	SCM(playerid,ROT,"Dir fehlen die benötigten Rechte!");
	return 1;
}
Ich bitte jeden der das Problem versteht mir zu helfen, da ich einfach nicht mehr weiter weiß!
Mein Server crasht nach fast jedem Command und das macht mich jetzt mittlerweile schon beinah depressiv  :S 
Vielen Dank für eure Hilfe!  :love: 
 
		 
		
		
	 
			
									
		