Beiträge von Dom_i

    Hey liebe Community,


    ich bin auf der Suche nach einigen schicken Ranggrafiken für ein WBB4-Forum.
    Leider finde ich im Internet nur hässlichen Datenmüll und frage daher hier im Forum, ob ihr villeicht Anlaufstellen habt,
    bzw. selbst welche habt/machen könnt.


    Die Grafiken sollten die Standart-SAMP Server Title haben, z.B.:


    - Projektleitung
    - Head Admin
    - High Admin
    - Administrator
    - Moderator
    - Supporter


    Es könnten ggf. auch "Sondertitel" geben, wie:


    - Community Leitung/Manager
    - Server Techniker
    - Scripter
    - usw. :)


    Villeicht meldet ihr euch ja! ;)


    P.S: Selbstverständlich könnt ihr euch auch via PN melden!


    Gruß
    R.

    ocmd:duty(playerid,params[])
    {
    if(Duty[playerid] == 0)
    {
    SendClientMessage(playerid,GELB,"Du bist nun im Dienst!");
    Duty[playerid] = 1;
    }
    else
    {
    SendClientMessage(playerid,GELB,"Du bist nun außer Dienst!");
    Duty[playerid] = 0;
    return 1;
    }
    }Ist doch ganz einfach :)


    Oben im Script definieren:
    new Duty[MAX_PLAYERS];


    Dann einfach einen Befehl einbauen und die Playervariable auf 1 setzen.


    Mit der Variable kannst du dann weiter arbeiten :)

    SetPlayerMarkerForPlayer(SPIELER DER DEN MARKER ANGEZEIGT BEKOMMT,SPIELER DESSEN FARBE GEÄNDERT WIRD,FARBE);


    Um das jedoch nutzen zu können solltest du bei OnGameModeInit folgendes machen:


    ShowPlayerMarkers(1);


    Du kannst anstatt der 1 auch andere Zahlen mit folgender Bedeutung eintragen:


    0 = OFF ---> Marker werden nicht angezeugt
    1 = GLOBAL ---> Die Marker werden Global (egal wo sich der Spieler befindet) angezeigt
    2 = Streamed --> Die Marker werden nur angezeigt, sobald sich der Spieler in der Nähe eines anderen befindet.


    Die Stream-Range kann individuell eingestellt werden!

    Einfach das hier:


    stock GetFreeDrogenID(playerid)
    {
    for(new i=0; i<MAX_ANPFLANZEN; i++)
    {
    if(drogenstatus[playerid][i] == 0) return i;
    } return -1; }




    Du musst es natürlich noch richtig einrücken :)

    Naja, ich glaube nicht, dass er damit viel anfängt, das ist ja nur ein Zähler, der hier gar nichts bringt, denn er kann die fertigen Drogen ja in unterschiedlicher Reigenfolge abholen.

    Upps :)


    An diesen ganzen typischen Drogenkram (die braucht ne Stunde zum wachsen usw.) habe ich gar nicht gedacht :D


    Es war ja auch schon spät in der Nacht X(

    Hey Leute,


    es geht mal wieder um das wunderschöne Theam "MySQL".


    Ich bin gerade an einem Gangfight System dran, was über MySQL laufen soll.


    Dabei habe ich zwei stocks, die die Daten der Gangzonen laden/speichern.


    Beim Speichern wird in meinem Table "gangwar" ein einziges Column mit den ganzen Daten der ersten Gangzone erstellt.


    Obwohl ich 9 Zonen eingebaut habe X(



    Da ich was MySQL betrifft noch selbst am lernen bin, habe ich hier den Code einmal:


    stock SaveZones()
    {
    new str[5];
    for(new zid=0; zid<sizeof(Zonen);zid++)
    {
    format(str, sizeof(str), "%d", zid);
    mysql_SetInt("gangwar","Owner",Zonen[zid][gOwner],"Zone",str);
    mysql_SetInt("gangwar","Aktiv",Zonen[zid][gOn],"Zone", str);
    mysql_SetInt("gangwar","Stand1",Zonen[zid][gStand1],"Zone", str);
    mysql_SetInt("gangwar","Stand2",Zonen[zid][gStand2],"Zone", str);
    mysql_SetInt("gangwar","Angreifer",Zonen[zid][gAngreifer],"Zone", str);
    mysql_SetInt("gangwar","Zeit",Zonen[zid][gZeit],"Zone", str);
    mysql_SetInt("gangwar","Kasse",Zonen[zid][gKasse],"Zone", str);
    mysql_SetInt("gangwar","Typ",Zonen[zid][gTyp],"Zone", str);
    mysql_SetInt("gangwar","Capture",Zonen[zid][capture_cd],"Zone", str);
    mysql_SetFloat("gangwar","MinX",Zonen[zid][gMinX],"Zone", str);
    mysql_SetFloat("gangwar","MinY",Zonen[zid][gMinY],"Zone", str);
    mysql_SetFloat("gangwar","MaxX",Zonen[zid][gMaxX],"Zone", str);
    mysql_SetFloat("gangwar","MaxY",Zonen[zid][gMaxY],"Zone", str);
    }
    return 1;
    }


    Seht ihr da etwas? :)

    Die Zeile ist zu lang, deshalb wandelt das Script die Zeile 6 (in deinen geposteten Code) in mehrere Zeilen um !


    Mache es am besten einfach so:


    new name[MAX_PLAYER_NAME], string[24+MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, sizeof(name));
    new string[500];
    format(string, sizeof string, "Statistiken von %s\n",name); // Anfang
    format(string, sizeof string, "%sLevel: %i Skin ID: %i ...\n",string,GetPlayerScore(playerid),GetPlayerSkin(playerid));
    ShowPlayerDialog(playerid,DIALOG_STATS,DIALOG_STYLE_MSGBOX,"Statistiken",string,"O.K","");


    So sollte das klappen :)


    Musst natürlich deinen kram noch einfügen!

    Ich zeige es dir mal, so wie ich es machen würde:



    Oben im Script
    new Pflanzen[MAX_PLAYERS]; // definiert eine Playervariable


    Nun baust du beim "Pflanzen-Befehl" folgendes ein:


    if(Pflanzen[playerid] >= 10) return SCM(playerid,FARBE,"Du kannst maximal 10 Pflanzen pflanzen!");


    Sobald ein Spieler eine Pflanze gepflanzt hat, addierst du der Variable "Pflanzen" einen Wert +.


    Sprich:


    Pflanzen[playerid] ++;

    Versuche mal als Pickup-Typ "23" zu nehmen...
    Ich nutze das sehr oft :)


    Also:
    drogenpickup[playerid]=CreatePickup(19473,23,dInfo[playerid][dX],dInfo[playerid][dX],dInfo[playerid][dX],GetPlayerVirtualWorld(playerid));

    [12:38:46] [debug] Run time error 4: "Array index out of bounds"
    [12:38:46] [debug] Accessing element at index 500 past array upper bound 499
    [12:38:46] [debug] AMX backtrace:
    [12:38:46] [debug] #0 00036574 in ?? () from gr.amx
    [12:38:46] [debug] #1 0017a330 in ?? () from gr.amx
    [12:38:46] [debug] #2 000364b0 in ?? () from gr.amx
    [12:38:46] [debug] #3 0000d35c in public gOnPlayerDisconnect () from gr.amx
    [12:38:46] [debug] #4 native CallLocalFunction () [080dbf60] from samp03svr
    [12:38:46] [debug] #5 00000f74 in ?? () from gr.amx
    [12:38:46] [debug] #6 00000a5c in public OnPlayerDisconnect () from gr.amxIch habe es im Script geändert, jedoch hat sich nichts verändert und in der Log wird wieder folgendes ausgegeben:

    Hey Leute,


    bei meinem Haussystem habe ich folgende Fehler in der server.log, sobald ich die Speicherungs-Stocks nutze:


    [12:38:46] [debug] Run time error 4: "Array index out of bounds"
    [12:38:46] [debug] Accessing element at index 500 past array upper bound 499
    [12:38:46] [debug] AMX backtrace:
    [12:38:46] [debug] #0 00036574 in ?? () from gr.amx
    [12:38:46] [debug] #1 0017a330 in ?? () from gr.amx
    [12:38:46] [debug] #2 000364b0 in ?? () from gr.amx
    [12:38:46] [debug] #3 0000d35c in public gOnPlayerDisconnect () from gr.amx
    [12:38:46] [debug] #4 native CallLocalFunction () [080dbf60] from samp03svr
    [12:38:46] [debug] #5 00000f74 in ?? () from gr.amx


    Die Stocks:


    stock saveHausDaten()
    {
    for(new i = 0; MAX_HAUS >= i; i++)
    {
    new hausid[128];
    format(hausid,sizeof(hausid),"/Haus/Haus%i.cfg",i);
    dini_Set(hausid,"Besitzer",haus[i][hbesitzer]);
    dini_IntSet(hausid,"Mietbar",haus[i][hmietbar]);
    dini_IntSet(hausid,"Interior",haus[i][hinterior]);
    dini_IntSet(hausid,"Mietpreis",haus[i][hmietpreis]);
    dini_IntSet(hausid,"Kasse",haus[i][hkasse]);
    dini_IntSet(hausid,"Offen",haus[i][hoffen]);
    }
    return 1;
    }


    stock saveSpielerDaten()
    {
    for(new i = 0; MAX_PLAYERS > i; i++)
    {
    new SDatei[128];
    format(SDatei,sizeof(SDatei),"/HSpieler/%s.cfg",SpielerName(i));
    dini_IntSet(SDatei,"Anzahl_Häuser",playerD[i][ahaus]);
    }
    return 1;
    }


    Wisst ihr was bzw. wo der Fehler sein kann?


    Laut Fehlermeldung ist ein Array über den definierten Wert (upper bound).


    Aber welcher? :o

    Hey Leute,


    ich habe ein Logsystem auf meinem Server, welches z.B. den generellen Chat loggt.


    Problem ist, dass es alles aneinander geklatscht wird:


    Code
    Spieler1 sagt: Dies ist ein TestSpieler3 sagt: was willst du?Spieler2 sagt: Alles klebt aneinander...


    Ich möchte das ganze umformatieren, so dass es so dort steht:


    Code
    Spieler1 sagt: Hey was geht?
    Spieler2 sagt: Alles was Beine hat!
    Spieler3 sagt: haha witzig...



    Derzeit wird es so geloggt:


    stock ChatLog(string[])
    {
    new entry[256];
    format(entry, sizeof(entry), "%s\n",string);
    new File:hFile;
    hFile = fopen("logs/chatlog.log", io_append);
    fwrite(hFile, entry);
    fclose(hFile);
    }


    Habt ihr eine Idee? ;)