Beiträge von [EGC] selEcT

    Hallo


    Habe ein kleines Problem, dass mich aber nervt.


    Ich erstelle ein Pickup mit einem Array, also


    new PickupTest[MAX_TEST];


    dies fülle ich durch einen Befehl:


    PickupTest[1] = CreateDynamicPickup(blablabla);


    Dies ist das erste Pickup.


    Nun mach ich den Befehl nochmal und hab noch ein Pickup:


    PickupTest[2] = CreateDynamicPickup(blablabla);


    Nun möchte ich das erste Pickup durch einen Befehl wieder entfernen:


    DestroyDynamicPickup(PickupTest[1]);


    Nur bleibt jetzt das Pickup.


    Wenn ich allerdings das 2. Pickup lösche, dann ist auch das Icon weg.


    Nach dem löschen frage ich ab, ob das Pickup gültig ist
    if(IsValidDynamicPickup(PickupTest[1]))


    und lasse "Ja" anzeigen (print("Ja")), wenn es gültig ist. Doch das Ja kommt gar nicht. Das heisst für mich, dass das Pickup gelöscht ist.


    Aber wieso ist das dann noch da?


    Hat da jemand ne Ahnung?


    MFG

    Hallo Leute


    Ich hab da ein komisches Problem.


    Die Blickrichtung des Fahrzeuges wird beim Parken gespeichert.
    Nun möchte ich, nachdem das Fahrzeug zerstört wurde (OnVehicleDeath), dass das Fahrzeug wieder gespawnt wird, an der Position wo es geparkt wurde.
    Es funktioniert alles wie es soll, nur wird die Blickrichtung nicht gesetzt!


    Ich mach das mit SetVehicleZAngle.



    public OnVehicleDeath(vehicleid,killerid)
    {
    //ladet positionen
    SetVehicleToRespawn(vehicleid);
    SetVehiclePos(vehicleid,posx,posy,posz); LinkVehicleToInterior(vehicleid,inte); SetVehicleVirtualWorld(vehicleid,vw);
    SetVehicleZAngle(vehicleid,angle);
    return 1;
    }


    Jemand ne Idee?


    MFG

    Hallo zusammen


    Ich habe ein kleines Problem.


    Ich möchte gerne etwas aus der Datenbank lesen, den Wert bearbeiten und im selben Zug wieder raufladen.
    Da das Auslesen mit einer while schleife funktioniert (while(mysql_fetch_row(data)), wird leider das Auslesen unterbrochen, sobald man mit dem Einlesen beginnt (neue Query).


    Hat da jemand eine Idee?


    MFG


    //edit: funktioniert das überhaupt, was ich möchte?

    Zeig mal den Code wie du es gemacht hast

    Wenn du die 0.02 zu 0.021 änderst, dann würde er das ausgeben 0.02
    wenn du es mit %.2f machst
    ich weiß ja nicht wie du es gemacht hast daher währe es mal vorteilhaft wenn man es sehen kann


    Die 0.02 steht in der mysql, ich mach nix anders als die auszulesen und auszugeben:



    new Float:zahl,string[16];
    MySQLGetFloat("Zahl",zahl);
    format(string,sizeof(string),"%0.2f",zahl);
    return ShowPlayerDialog(playerid, Dialogid, DIALOG_STYLE_LIST, "Titel",string,"OK","Zurück");


    Mehr wird da nicht gemacht.


    edit:


    die mysql ausgabe funzt so:



    stock MySQLGetFloat(field[],&Float:value)
    {
    new query[128],data[128];
    format(query, sizeof(query), "SELECT %s FROM table",field);
    mysql_query(query); mysql_store_result();
    if(mysql_num_rows())
    {
    mysql_fetch_field(field,data);
    value = floatstr(data);
    }
    else
    {
    value = -1;
    }
    mysql_free_result();
    return 1;
    }


    edit: Da die Zahl eigentlich eine Prozentzahl darstellen sollte, funzt es leider auch nicht, wenn ich die %% dahinter wegnehme.. andere ideen?


    edit2: sorry fürs editieren :D der Fehler liegt sehr wahrscheinlich an floatstr, da ich mit %s die richtige anzeige bekomme. Wenn keine andere Lösung da ist, werde ich es als string auslesen..

    Hiho


    Hab ein kleines Problem.


    Wenn ich ein Float mit 2 Stellen nach dem Komma angeben will (%.2f), dann zeigt es die falsche Zahl an.
    Also z.B. die Zahl ist 0.02, diese möchte ich nun mit %.2f ausgeben --> es steht aber 0.01! wenn ich das float ohne die 2 angebe (also nur %f), dann steht 0.019999!


    Wie das?


    MFG

    Huhu


    Ich wollt mal fragen, ob es eine Funktion gibt, in der eine Zahl restlos geteilt wird.


    Also z.B. es soll getestet werden, ob eine Zahl restlos z.B. durch 3 teilbar ist (also 3,6,9,12 etc.).


    Konnte leider nichts finden in der SuFu, von daher ^^


    MFG

    Hmm..
    Waer ich du, wuerde ich erstmal ein paar Tutorials ansehen, und mit der Zeit wuerdest du lernen.
    Am Anfang ist Godfather, sag ich jetzt mal, schlecht.
    Da du garnicht weißt wie und was "aufgebaut" wurde, also kannst du dich schlecht an Godfather orientieren.


    Fang am besten mit einem Selfmade an.


    Naja, ich hab mit dem GF scripten gelernt ;) Aber hab halt Erfahrung von anderen Programmiersprachen, von daher..


    @IceBoyTea:
    Das Problem bei fertigen Scripts ist, dass jeder einen anderen Scriptstil hat. Somit ist es schwierig zu sagen, wie man am besten durchblickt.


    Aber wenn man die Grundsachen (if-Abfragen, while & for schleifen, callbacks, funktionen etc.) beherrscht, sollte es nicht mehr so schwierig sein.


    edit:
    Kommentare mach ich bei all meinen Scripts. Ausserdem setz ich oben im Script die Funktionen und Befehle in einem Gesamtüberblick rein. Einen übersichtlichen Scriptstil macht meiner Meinung einen guten Scripter aus.

    Hiho


    Ich hab da ein Problem.


    Die Funktion mktime stimmt um 25 Stunden (90000 Sekunden) bei mir nicht (heisst, wenn ich in MySQL SELECT UNIX_TIMESTAMP(Datum) FROM Table Where id=1 mache, wird eine andere Zeit angezeigt, als wenn ich den Timestamp nach dem auslesen printe).


    "Meine" Funktion:



    stock mktime(mhour, mminute, msecond, mday, mmonth, myear)
    {
    static days_of_month[12] = {31,29,31,30,31,30,31,31,30,31,30,31},lMinute,lHour,lDay,lMonth,lYear,lMinuteS,lHourS,lDayS,lMonthS,lYearS;
    if(myear != lYear)
    {
    lYearS = 0;
    for (new j = 1970; j < myear; j++)
    {
    lYearS += 31536000;
    if ((!(j % 4) && (j % 100)) || !(j % 400)) lYearS += 86400;
    }
    lYear = myear;
    }
    if (mmonth != lMonth)
    {
    lMonthS = 0;
    mmonth--;
    for (new i = 0; i < mmonth; i++)
    {
    lMonthS += days_of_month[i] * 86400;
    if ((i == 1) && ((!(myear % 4) && (myear % 100)) || !(myear % 400))) lMonthS += 86400;
    }
    lMonth = mmonth;
    }
    if (mday != lDay)
    {
    lDayS = mday * 86400;
    lDay = mday;
    }
    if (mhour != lHour)
    {
    lHourS = mhour * 3600;
    lHour = mhour;
    }
    if (mminute != lMinute)
    {
    lMinuteS = mminute * 60;
    lMinute = mminute;
    }
    return lYearS + lMonthS + lDayS + lHourS + lMinuteS + msecond;
    }


    Die Zeitangaben stimmen (23.2.2013 13:17:25), konnte ich mit splitter aufteilen und printen.


    Stimmt die Funktion? Bzw. habt ihr eine, die funktioniert?


    MFG



    edit: Vom Server her (mit mktime) kommt die 1361711845 (falsch) und von der MySQL-Tabelle kommt die 1361621845 (richtig)


    edit2: auch wenn ich das Problem umgehen konnte, nimmt es mich trotzdem wunder..

    dann baust du nen Geldtest ein. d.h.


    if(GetPlayerMoney(playerid) < geld) return SendClientMessage(playerid, COLOR_RED, "Du hast nicht soviel Geld!");


    edit: es wird dir nicht angezeigt, das du selber geld bekommst :D ich würde das mit einem anderen Spieler testen

    Hiho


    Ich steh grad auf der Leitung :D


    Wie kann ich das Format Datetime auseinander nehmen und in Tag, Monat, Jahr, Stunde, Minute und Sekunde aufteilen?


    Ich les das Feld aus MySQL aus. Nun möchte ich den Inhalt aufteilen und danach mit mktime in den Timestamp konvertieren.


    Jemand ne Ahnung?


    MFG selEcT

    Ah, die pawn.cfg hab ich ja komplett vergessen :D


    Hab -d3 aus den Run Options rausgenommen, aber hat nicht geklappt.


    Klar, die pawn.cfg. -d3 rausgenommen und tada, funktioniert.


    Danke euch allen und sorry für den eher "unnötigen" Thread :D


    Und wie schon gesagt wurde, #pragma dynamic ist keine schöne Lösung. Wollte ich eigentlich auch nicht verwenden.


    MFG


    Dein Heapspace ist überlastet, schreibe folgendes in dein Script:


    #pragma dynamic 16480


    mfg. :thumbup:




    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase


    Header size: 152 bytes
    Code size: 492 bytes
    Data size: 452 bytes
    Stack/heap size: 65920 bytes; estimated max. usage=34 cells (136 bytes)
    Total requirements: 67016 bytes



    :thumbup::thumbup::thumbup: