Beiträge von Ap0llinaris

    Hallo.
    Ich habe ein Problem, undzwar fährt dieser sich manchmal einfach runter. Also aufeinmal passiert nichtsmehr. Kein Befehl geht, man sieht die Spieler nichtmehr oder sie bewegen sich nicht usw.
    Dann nach einer Zeit geht der Server aus, wenn man joinen will kommt nurnoch Connecting to .. Connected.. Joining the game usw. aber mehr dann nicht.
    Sprich die ClientMessage usw. erscheint nicht beim Joinen, nix geht mehr dann. Ich müsste dann den Server restarten. Dass passiert so 2-5x am Tag.


    Kann mir jemand dabei helfen? :/
    Hab das Crash Detect Plugin drin, und bei dem letzten Server-Crash stand nurnoch das hier drin:


    [13:31:25] [GC] [Verentiz19]: ?
    [13:31:33] [debug] Run time error 4: "Array index out of bounds"
    [13:31:33] [debug] Accessing element at index 555 past array upper bound 4
    [13:31:33] [debug] AMX backtrace:
    [13:31:33] [debug] #0 0007256c in public OnPlayerStateChange () from visualtest.amx
    [13:32:09] Ap0llinaris ändert Geld von Ap0llinaris in 1000000


    Mehr dann auch nicht. :/
    Kann jemand helfen?

    @Tigerreiter2
    Was soll das sein??!
    Wth, übertreib omg.


    CMD:gcoff(playerid)
    {
    new string[128];
    if(Spieler[playerid][pAdmin] < 3)return SendClientMessage(playerid, COLOR_GREY, "Du besitzt nicht die benötigten Rechte.");
    if(GCOff == 0)
    {
    GCOff = 1;
    format(string, sizeof(string), "Der Globale Chat wurde von %s deaktiviert.", GetName(playerid));
    SendClientMessageToAll(COLOR_GREEN, string);
    }
    else if(GCOff == 1)
    {
    GCOff = 0;
    format(string, sizeof(string), "Der Globale Chat wurde von %s aktiviert.", GetName(playerid));
    SendClientMessageToAll(COLOR_GREEN, string);
    }
    return 1;
    }


    ...

    Hallo.
    Undzwar habe ich ein kleines Problem mit meinem HouseLoad, BizLoad und TankeLoad.
    Wenn ich bei den folgenden 3 Funktionen die Zeilen drinnen habe, welche abfragen ob die Koordinaten 0 betragen, und dann ein Haus erstelle im Spiel, dann ändert sich der 3DText von Haus zu Tanke.


    forward TankeLoad();
    public TankeLoad()
    {
    new tanke[12];
    for(new i=1;i<MAX_TANKEN;i++)
    {
    format(tanke, sizeof(tanke), "%d", i);
    Tanke[i][tID] = mysql_GetInt("tanken", "ID", "ID", tanke);
    Tanke[i][EnterX] = mysql_GetFloat("tanken", "EnterX", "ID", tanke);
    Tanke[i][EnterY] = mysql_GetFloat("tanken", "EnterY", "ID", tanke);
    Tanke[i][EnterZ] = mysql_GetFloat("tanken", "EnterZ", "ID", tanke);
    format(Tanke[i][tBesitzer], MAX_PLAYER_NAME, "%s", mysql_GetString("tanken", "Besitzer", "ID", tanke));
    format(Tanke[i][tName], 32, "%s", mysql_GetString("tanken", "Name", "ID", tanke));
    Tanke[i][tFillCost] = mysql_GetInt("tanken", "FillCost", "ID", tanke);
    Tanke[i][tKasse] = mysql_GetInt("tanken", "Kasse", "ID", tanke);
    Tanke[i][tBenzin] = mysql_GetInt("tanken", "Benzin", "ID", tanke);
    Tanke[i][tMaxBenzin] = mysql_GetInt("tanken", "MaxBenzin", "ID", tanke);
    Tanke[i][tPreis] = mysql_GetInt("tanken", "Preis", "ID", tanke);
    new tStr[128];
    if(Tanke[i][EnterX] == 0.0)
    {
    Tanke[i][tPickup] = CreatePickup(1239, 0, 0.0, 0.0, -20, 0);
    Tanke[i][tText] = Create3DTextLabel("-", COLOR_PROP, 0.0, 0.0, -20, 10.0, 0,0);
    return 1;
    }
    if(strcmp(Tanke[i][tBesitzer], "Niemand", true) == 0)
    {
    format(tStr, sizeof(tStr), "Diese Tankstelle ist zu verkaufen\n\nBeschreibung: %s\nPreis: %d$\nZum kaufen tippe /buytanke ein", Tanke[i][tName], Tanke[i][tPreis]);
    Tanke[i][tPickup] = CreatePickup(1239, 0, Tanke[i][EnterX], Tanke[i][EnterY], Tanke[i][EnterZ], 0);
    Tanke[i][tText] = Create3DTextLabel(tStr, COLOR_PROP, Tanke[i][EnterX], Tanke[i][EnterY], Tanke[i][EnterZ],10.0, 0,0);
    }
    else
    {
    format(tStr, sizeof(tStr), "%s\n\nBesitzer: %s\nBenzin-Preis: %d$\nBenzin: %d/%d", Tanke[i][tName], Tanke[i][tBesitzer], Tanke[i][tFillCost], Tanke[i][tBenzin], Tanke[i][tMaxBenzin]);
    Tanke[i][tPickup] = CreatePickup(1239, 0, Tanke[i][EnterX], Tanke[i][EnterY], Tanke[i][EnterZ], 0);
    Tanke[i][tText] = Create3DTextLabel(tStr, COLOR_PROP, Tanke[i][EnterX], Tanke[i][EnterY], Tanke[i][EnterZ],10.0, 0,0);
    }
    }
    return 1;
    }



    forward BizLoad();
    public BizLoad()
    {
    new biz[12];
    for(new i=1;i<MAX_BIZES;i++)
    {
    format(biz, sizeof(biz), "%d", i);
    Biz[i][bID] = mysql_GetInt("bizes", "ID", "ID", biz);
    Biz[i][EnterX] = mysql_GetFloat("bizes", "EnterX", "ID", biz);
    Biz[i][EnterY] = mysql_GetFloat("bizes", "EnterY", "ID", biz);
    Biz[i][EnterZ] = mysql_GetFloat("bizes", "EnterZ", "ID", biz);
    Biz[i][ExitX] = mysql_GetFloat("bizes", "ExitX", "ID", biz);
    Biz[i][ExitY] = mysql_GetFloat("bizes", "ExitY", "ID", biz);
    Biz[i][ExitZ] = mysql_GetFloat("bizes", "ExitZ", "ID", biz);
    format(Biz[i][bBesitzer], MAX_PLAYER_NAME, "%s", mysql_GetString("bizes", "Besitzer", "ID", biz));
    format(Biz[i][bName], 32, "%s", mysql_GetString("bizes", "Name", "ID", biz));
    Biz[i][bPreis] = mysql_GetInt("bizes", "Preis", "ID", biz);
    Biz[i][bLock] = mysql_GetInt("bizes", "Lock", "ID", biz);
    Biz[i][bInterior] = mysql_GetInt("bizes", "Interior", "ID", biz);
    Biz[i][bKasse] = mysql_GetInt("bizes", "Kasse", "ID", biz);
    Biz[i][bEintritt] = mysql_GetInt("bizes", "Eintritt", "ID", biz);
    Biz[i][bWaren] = mysql_GetInt("bizes", "Waren", "ID", biz);
    Biz[i][bMaxWaren] = mysql_GetInt("bizes", "MaxWaren", "ID", biz);
    Biz[i][bWarenPreis] = mysql_GetInt("bizes", "WarenPreis", "ID", biz);
    //Erstellen der Pickups etc.
    new bStr[128];
    if(Biz[i][EnterX] == 0.0)
    {
    Biz[i][tPickup] = CreatePickup(1239, 0, 0.0, 0.0, -20, 0);
    Biz[i][tText] = Create3DTextLabel("-", COLOR_PROP, 0.0, 0.0, -20, 10.0, 0,0);
    return 1;
    }
    if(strcmp(Biz[i][bBesitzer], "Niemand", true) == 0)
    {
    format(bStr, sizeof(bStr), "Dieses Geschäft ist zu verkaufen\n\nBeschreibung: %s\nPreis: %d$\nZum kaufen tippe /buybiz ein", Biz[i][bName], Biz[i][bPreis]);
    Biz[i][bPickup] = CreatePickup(1239, 0, Biz[i][EnterX], Biz[i][EnterY], Biz[i][EnterZ], 0);
    Biz[i][bText] = Create3DTextLabel(bStr, COLOR_PROP, Biz[i][EnterX], Biz[i][EnterY], Biz[i][EnterZ], 10.0, 0, 0);
    }
    else
    {
    format(bStr, sizeof(bStr), "%s\n\nBesitzer: %s\nEintritt: %d$\nWaren-Preis: %d$\nWaren: %d/%d", Biz[i][bName], Biz[i][bBesitzer], Biz[i][bEintritt], Biz[i][bWarenPreis], Biz[i][bWaren], Biz[i][bMaxWaren]);
    Biz[i][bPickup] = CreatePickup(1239, 0, Biz[i][EnterX], Biz[i][EnterY], Biz[i][EnterZ], 0);
    Biz[i][bText] = Create3DTextLabel(bStr, COLOR_PROP, Biz[i][EnterX], Biz[i][EnterY], Biz[i][EnterZ], 10.0, 0, 0);
    }
    }
    return 1;
    }


    forward HouseLoad();
    public HouseLoad()
    {
    new house[12];
    for(new i=1;i<MAX_HOUSES;i++)
    {
    format(house, sizeof(house), "%d", i);
    Haus[i][hID] = mysql_GetInt("houses", "ID", "ID", house);
    Haus[i][EnterX] = mysql_GetFloat("houses", "EnterX", "ID", house);
    Haus[i][EnterY] = mysql_GetFloat("houses", "EnterY", "ID", house);
    Haus[i][EnterZ] = mysql_GetFloat("houses", "EnterZ", "ID", house);
    Haus[i][ExitX] = mysql_GetFloat("houses", "ExitX", "ID", house);
    Haus[i][ExitY] = mysql_GetFloat("houses", "ExitY", "ID", house);
    Haus[i][ExitZ] = mysql_GetFloat("houses", "ExitZ", "ID", house);
    Haus[i][hInterior] = mysql_GetInt("houses", "Interior", "ID", house);
    format(Haus[i][hBesitzer], MAX_PLAYER_NAME, "%s", mysql_GetString("houses", "Besitzer", "ID", house));
    format(Haus[i][hName], 32, "%s", mysql_GetString("houses", "Name", "ID", house));
    Haus[i][hPreis] = mysql_GetInt("houses", "Preis", "ID", house);
    Haus[i][hMieten] = mysql_GetInt("houses", "Mieten", "ID", house);
    Haus[i][hLock] = mysql_GetInt("houses", "Lock", "ID", house);
    Haus[i][hMietPreis] = mysql_GetInt("houses", "MietPreis", "ID", house);
    //Erstellen der Pickups etc.
    if(Haus[i][EnterX] == 0.0)
    {
    Haus[i][tPickup] = CreatePickup(1239, 0, 0.0, 0.0, -20, 0);
    Haus[i][tText] = Create3DTextLabel("-", COLOR_PROP, 0.0, 0.0, -20, 10.0, 0,0);
    return 1;
    }
    if(strcmp(Haus[i][hBesitzer], "Niemand", true) == 0)
    {
    new hStr[128];
    format(hStr, sizeof(hStr), "Dieses Haus ist zu verkaufen\n\nBeschreibung: %s\nPreis: %d$\nZum kaufen tippe /buyhouse ein", Haus[i][hName], Haus[i][hPreis]);
    Haus[i][hPickup] = CreatePickup(1239, 0, Haus[i][EnterX], Haus[i][EnterY], Haus[i][EnterZ], 0);
    Haus[i][hText] = Create3DTextLabel(hStr, COLOR_PROP, Haus[i][EnterX], Haus[i][EnterY], Haus[i][EnterZ], 10, 0, 0);
    }
    else
    {
    if(Haus[i][hMieten] == 0)
    {
    new hStr[128];
    format(hStr, sizeof(hStr), "Besitzer: %s\nBeschreibung: %s", Haus[i][hBesitzer], Haus[i][hName]);
    Haus[i][hPickup] = CreatePickup(1239, 0, Haus[i][EnterX], Haus[i][EnterY], Haus[i][EnterZ], 0);
    Haus[i][hText] = Create3DTextLabel(hStr, COLOR_PROP, Haus[i][EnterX], Haus[i][EnterY], Haus[i][EnterZ], 10, 0, 0);
    }
    else if(Haus[i][hMieten] == 1)
    {
    new hStr[128];
    format(hStr, sizeof(hStr), "Dieses Haus ist zu vermieten\n\nBesitzer: %s\nBeschreibung: %s\nMiet-Preis: %d$\nZum mieten tippe /hausmieten ein", Haus[i][hBesitzer],Haus[i][hName], Haus[i][hMietPreis]);
    Haus[i][hPickup] = CreatePickup(1239, 0, Haus[i][EnterX], Haus[i][EnterY], Haus[i][EnterZ], 0);
    Haus[i][hText] = Create3DTextLabel(hStr, COLOR_PROP, Haus[i][EnterX], Haus[i][EnterY], Haus[i][EnterZ], 10, 0, 0);
    }
    }
    }
    return 1;
    }

    Sprich z.B. if(Haus[i][EnterX] == 0.0)
    Wenn ich das draußen habe und ein Haus erstelle klappt alles gut.
    Ist es aber drinnen buggt alles und der Haus-3DText wird zum Tanken-3DText.
    Ich möchte, wenn die Position von einem Haus auf 0 ist, sprich noch nicht erstellt o.ä dass diese -20 Meter geht, sodass diese niemand stören und diese niemand sieht.
    Kann jemand helfen?

    Danke, klappt wunderbar.
    Gibt es noch irgendwelche Sachen wodurch man einen Spieler crashen lassen könnte durch Textdraws? Also die ~ sind jetzt weg.


    PS:

    Zitat

    Dann habe ich noch eine andere Frage, undzwar hat die Tage jemand ein Thema oder Beitrag geschrieben mit irgendeinem MaxTank oder Tank-System wo er eine Funktion gepostet hat die irgendwie GetMaxCarTank oderso hieß, diese suche ich.


    Quote Mote :D

    Hallo.
    Ich habe eine Frage bzgl. strfind.
    Ich möchte einen /werbung befehl machen, welcher dann in einem Textdraw Angezeigt wird.
    Das ganze habe ich so:

    CMD:werbung(playerid, params[])
    {
    new entry[64], string[512];
    if(sscanf(params, "s[30]", entry))return SendClientMessage(playerid, COLOR_GREY, "* Benutze /werbung [Nachricht(max. 30 Zeichen)]");
    if(strfind(entry, "~", true) == 0)return SendClientMessage(playerid, COLOR_GREY, "Keine Spezialzeichen wie \"~\" etc!");
    if(WriteAD == 0)
    {
    if(GetPlayerMoney(playerid) < 500)return SendClientMessage(playerid, COLOR_GREY, "Das schalten einer Werbung kostet 500$!");
    GivePlayerCash(playerid, -500);
    format(string, sizeof(string), "~g~Werbung: ~w~%s, ~g~Name: ~w~%s, ~g~Nummer: ~w~%d", entry, GetName(playerid), Spieler[playerid][pHandyNr]);
    TextDrawSetString(Werbung, string);
    SendClientMessage(playerid, COLOR_WHITE, "Du hast die Werbung erfolgreich geschrieben. Es gibt nun eine 10 minütige Werbungs Sperre für Alle!");
    WriteAD = 600;
    }
    else
    {
    format(string, sizeof(string), "Du kannst noch keine Werbung schreiben, warte noch %d Sekunden.", WriteAD);
    SendClientMessage(playerid, COLOR_GREY, string);
    return 1;
    }
    return 1;
    }


    Wenn ich aber nun im Chat Tippe: /werbung TestTest~
    Dann kann ich trotzdem "~" benutzen, und der Server hängt sich dann auf, bzw. der Client.


    Dann habe ich noch eine andere Frage, undzwar hat die Tage jemand ein Thema oder Beitrag geschrieben mit irgendeinem MaxTank oder Tank-System wo er eine Funktion gepostet hat die irgendwie GetMaxCarTank oderso hieß, diese suche ich.


    Ich hoffe ihr könnt mir helfen, danke. ;D

    Kommt drauf an.
    Welches MySQL Plugin verwendest du?


    Ansonsten als Query
    "UPDATE 'accounts' WHERE 'Name' = '%s' SET 'Adminlevel' = '%d'"
    Bei Accounts, Name und Adminlevel müssen die anderen ' hin. Sprich die nach Links zeigen.
    Obs geht weiß ich net. ^^

    Hallo.


    Ich habe ein kleines Problem, undzwar suche ich einen Editor für SA-MP oder allgemein einen, wodurch ich die HEX-Codes (Farben) mit Alpha-Code oder wie man es nennt herausfindet.
    Denn ich möchte manche 3DText Labels o.ä nicht ganz farbig haben sondern etwas durchsichtig und manche sollten komplett farbig sein.


    Ich hoffe ihr könnt helfen. ;)


    stock mktime(hour,minute,second,day,month,year)
    {
    new timestamp2;


    timestamp2 = second + (minute * 60) + (hour * 3600);


    new days_of_month[12];


    if ( ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0) ) {
    days_of_month = {31,29,31,30,31,30,31,31,30,31,30,31}; // Schaltjahr
    } else {
    days_of_month = {31,28,31,30,31,30,31,31,30,31,30,31}; // keins
    }
    new days_this_year = 0;
    days_this_year = day;
    if(month > 1) { // No January Calculation, because its always the 0 past months
    for(new i=0; i<month-1;i++) {
    days_this_year += days_of_month[i];
    }
    }
    timestamp2 += days_this_year * 86400;


    for(new j=1970;j<year;j++) {
    timestamp2 += 31536000;
    if ( ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0) ) timestamp2 += 86400; // Schaltjahr + 1 Tag
    }


    return timestamp2;
    }


    stock ConvertUnix(unix, &hour, &minute, &second, &day, &month, &year)
    {
    new h = 0, m = 0, s = 0, da = 1, mo = 1, ye = 1970;
    for(;;) { ye++; if(((zeitpunkt) - (mktime(h, m, s, da, mo, ye))) < 0) { ye--; break; } }
    for(;;) { mo++; if(((zeitpunkt) - (mktime(h, m, s, da, mo, ye))) < 0) { mo--; break; } }
    for(;;) { da++; if(((zeitpunkt) - (mktime(h, m, s, da, mo, ye))) < 0) { da--; break; } }
    for(;;) { h++; if(((zeitpunkt) - (mktime(h, m, s, da, mo, ye))) < 0) { h--; break; } }
    for(;;) { m++; if(((zeitpunkt) - (mktime(h, m, s, da, mo, ye))) < 0) { m--; break; } }
    for(;;) { s++; if(((zeitpunkt) - (mktime(h, m, s, da, mo, ye))) < 0) { s--; break; } }
    hour = h; minute = m; second = s; day = da; month = mo; year = ye; return 1;
    }


    //Verwendung
    new Stunde, Minute, Sekunde, Tag, Monat, Jahr;
    ConvertUnix(dini_Int(datei, "Zeit"), Stunde, Minute, Sekunde, Tag, Monat, Jahr);


    Viel Spaß. :)
    (edit):
    Du brauchst natürlich noch die mktime-Funktion, welche ich dir noch hinzugefügt habe. Die ist für dich aber so gesehen => Unwichtig! ;)

    Hallo.
    Ich wollte vorhin einen 3DText erstellen, dass wenn man Wanteds hat es für alle sichtbar wird.
    Dann hat mir ein Spieler Wanteds gegeben und auf einmal erschien "Diese Tankstelle ist zu verkaufen..."
    Hier mal ein Ausschnitt:

    //Oben
    new Text3D:WTDLabel[MAX_PLAYERS];


    //OnPlayerSpawn
    Delete3DTextLabel(WTDLabel[playerid]);
    if(Spieler[playerid][pWanteds] > 0)
    {
    WTDLabel[playerid] = Create3DTextLabel("Gesucht", COLOR_RED, 0,0,0,13,0,0);
    Attach3DTextLabelToPlayer(WTDLabel[playerid], playerid, 0.0, 0.0, 1.0);
    }


    //OnPlayerDeath
    if(Spieler[playerid][pWanteds] > 0)
    {
    Delete3DTextLabel(WTDLabel[playerid]);
    }


    //Einsperren
    Delete3DTextLabel(WTDLabel[playerid]);


    //OnPlayerDisconnect
    if(Spieler[playerid][pWanteds] > 0)
    {
    Delete3DTextLabel(WTDLabel[playerid]);
    }


    //Und hier noch mal das andere Zeug sprich die Tanken usw.
    //PS: Wird bei OnGameModeInit ausgeführt
    public TankeLoad()
    {
    new tanke[12];
    for(new i=1;i<MAX_TANKEN;i++)
    {
    format(tanke, sizeof(tanke), "%d", i);
    Tanke[i][tID] = mysql_GetInt("tanken", "ID", "ID", tanke);
    Tanke[i][EnterX] = mysql_GetFloat("tanken", "EnterX", "ID", tanke);
    Tanke[i][EnterY] = mysql_GetFloat("tanken", "EnterY", "ID", tanke);
    Tanke[i][EnterZ] = mysql_GetFloat("tanken", "EnterZ", "ID", tanke);
    format(Tanke[i][tBesitzer], MAX_PLAYER_NAME, "%s", mysql_GetString("tanken", "Besitzer", "ID", tanke));
    format(Tanke[i][tName], 32, "%s", mysql_GetString("tanken", "Name", "ID", tanke));
    Tanke[i][tFillCost] = mysql_GetInt("tanken", "FillCost", "ID", tanke);
    Tanke[i][tKasse] = mysql_GetInt("tanken", "Kasse", "ID", tanke);
    Tanke[i][tBenzin] = mysql_GetInt("tanken", "Benzin", "ID", tanke);
    Tanke[i][tMaxBenzin] = mysql_GetInt("tanken", "MaxBenzin", "ID", tanke);
    Tanke[i][tPreis] = mysql_GetInt("tanken", "Preis", "ID", tanke);
    if(Tanke[i][tPreis] > 0)
    {
    new tStr[128];
    if(strcmp(Tanke[i][tBesitzer], "Niemand", true) == 0)
    {
    format(tStr, sizeof(tStr), "Diese Tankstelle ist zu verkaufen\n\nBeschreibung: %s\nPreis: %d$\nZum kaufen tippe /buytanke ein", Tanke[i][tName], Tanke[i][tPreis]);
    Tanke[i][tPickup] = CreatePickup(1239, 0, Tanke[i][EnterX], Tanke[i][EnterY], Tanke[i][EnterZ], 0);
    Tanke[i][tText] = Create3DTextLabel(tStr, COLOR_PROP, Tanke[i][EnterX], Tanke[i][EnterY], Tanke[i][EnterZ],10.0, 0,0);
    }
    else
    {
    format(tStr, sizeof(tStr), "%s\n\nBesitzer: %s\nBenzin-Preis: %d$\nBenzin: %d/%d", Tanke[i][tName], Tanke[i][tBesitzer], Tanke[i][tFillCost], Tanke[i][tBenzin], Tanke[i][tMaxBenzin]);
    Tanke[i][tPickup] = CreatePickup(1239, 0, Tanke[i][EnterX], Tanke[i][EnterY], Tanke[i][EnterZ], 0);
    Tanke[i][tText] = Create3DTextLabel(tStr, COLOR_PROP, Tanke[i][EnterX], Tanke[i][EnterY], Tanke[i][EnterZ],10.0, 0,0);
    }
    }
    }
    }


    Ich hoffe mir kann jemand helfen! ;)
    Falls ihr noch etwas braucht, lasst es mich wissen! ;)


    (e):
    Hier noch ein Bild davon:

    (e2):
    Any idea? :o
    (e3):
    Hab Server-Restart etc. versucht kein Erfolg :(