Beiträge von German_ScripterHD

    Habe auch ein kleinen Problem, wenn ich den Befehl /fraktionen eingebe bekomme ich eine Debug Meldung in der Konsole.


    Fehlercode:

    C
    [21:41:56] [debug] Run time error 4: "Array index out of bounds"
    [21:41:56] [debug]  Accessing element at index 6 past array upper bound 5
    [21:41:56] [debug] AMX backtrace:
    [21:41:56] [debug] #0 00032e88 in public ocmd_fraktionen (playerid=0, ... <1 argument>) at C:\Users\xxx\xxx\xxx\xxx.pwn:1246
    [21:41:56] [debug] #1 native CallLocalFunction () from samp-server.exe
    [21:41:56] [debug] #2 0000104c in public OnPlayerCommandText (playerid=0, cmdtext[]=@00981ce8 "/fraktionen") at C:\Users\xxx\xxx\xxx\include\ocmd.inc:78


    Code:

    Supiiii es klappt jetzt. :)
    Eine Frage habe ich dann noch, undzwar habe ich mir noch eine Funktion gebastelt die normal alle Mitglieder zählen soll, jedoch auch hier erhalte ich keinen Rückgabewert, bzw. keine Ausgabe der prints.

    C
    stock GetFracMemberInt(fid){
    	new str[40];
    	format(str,sizeof(str),"SELECT * FROM `player_account` WHERE `pFraktion` = '%d' AND `pRang` != '0'",fid);
    	mysql_function_query(dbhandle, str, true, "_GetMemberCount", "s",fData[fid][fMemberInt]);
    	return 1;
    }


    Hallo Brotfische ;)


    Ich habe leider ein kleines Problem mit meiner Funktion GetFracLeader.
    Wie man schon aus der Überschrift entnehmen kann, gibt die Funktion keine Ausgabe wieder.


    C
    stock GetFracLeader(fid){
    	new str[40];
    	format(str,sizeof(str),"SELECT * FROM `player_account` WHERE  `pFraktion` == '%d' AND `pRang` == 6",fid);
    	mysql_function_query(dbhandle, str, true, "_GetLeader", "s[40]",fData[fid][fLeaderName]);
    	return 1;
    }

    @Jeffry

    Die Map gefällt mir persönlich garnicht.
    Man hätte mehr daraus zaubern können, aber wie gesagt dies ist meine Meinung dazu.
    Paar Texturen würde der Map auch nicht schaden, somit kommt vielleicht etwas frischer Wind in die Map :)


    Aber für deine Mühe gebe dich dir 2/10 Punkten.

    Hallo,


    Ich habe ein Problem mit meiner selbst geschriebener Funktion, mir wird leider immer nur 1 Mapicon angezeigt, jedoch sollte mehrere sichtbar sein.
    Woran könnte der Fehler liegen?


    Code:



    C
    Function UpdateMapIcon(id){
    	LOOP(MAX_PLAYERS,i){
    	    if(IsPlayerConnected(i)){
    	        SetPlayerMapIcon(i, id,MapIconData[id][mapicon_x], MapIconData[id][mapicon_y], MapIconData[id][mapicon_z], MapIconData[i][mapicon_markerid], 0, MapIconData[i][mapicon_type]);
    	    }
    	}
    	return 1;
    }

    Du kannst es aber auch so schreiben:


    C
    ocmd:job(playerid,params[])
    {
    	if(!IsPlayerInRangeOfPoint(playerid,2.0,362.1261,173.7344,1008.3828))return 1;
    	ShowMenuForPlayer(Stadthalle, playerid);
    	FreezePlayer(playerid);
    	return 1;
    }

    Habe dir eben eine Funktion gebastelt: (bitte anpassen)


    Verwendung:

    C
    //SendFracMessage(frakid, farbe, text);
    SendFracMessage(3, 0xFF0000FF, "Die Zellentüren wurden aufgebrochen!")

    Was macht die Funktion?
    Die Funktion senden den Text an alle Mitglieder der jeweiligen Fraktion die gerade Online sind.


    MfG :thumbup:

    Dein Fehler, ist folgender:
    Du benutzt return 1 in der for Schleife bei if(!IsPlayerConnected)return 1; dies hat zur Folge, das deine Schleife beendet wird.


    ändere:

    C
    for(new i = 0; i < MAX_PLAYERS; i++){
         if(!IsPlayerConnected(playerid)) return 1;
         format(text,sizeof(text), "\nID: %i, Name: %s, Geld: %i", pID, pData[pID][pName], pData[pID][pMoney]);
    }


    zu:


    C
    for(new i = 0; i < MAX_PLAYERS; i++){
        if(IsPlayerConnected(playerid)){
             format(text,sizeof(text), "\nID: %i, Name: %s, Geld: %i", pID, pData[pID][pName], pData[pID][pMoney]);
        }
    }

    warum machst du dir da soviel arbeit?
    Das geht auch einfacher ;)


    C
    stock ResetPlayer(playerid){
    	for(new i=0; i<sizeof(PlayerInfo[]); i++){
    	    PlayerInfo[playerid][NameDesEnums:i] = 0;
    	}
    	return 1;
    }

    Ich habe eine kurze Frage bezüglich der "for-Schleife".


    Zurzeit arbeite ich an meinem AntiAFK System, nur wird mir die folgende Nachricht mehr mals gesenden ("Bitte bestätige deine Anwesenheit mit '/confirmafk'.")
    Normal könnte man es ja mit einem return lösen, jedoch klappt das ja nicht in der "for-Schleife" da sonnst der Code beendet wird.
    Wie kann ich den Code umschreiben das ich nur einmal die Nachricht gesendet bekomme?


    Ausschnitt aus dem Code: