Beiträge von Knolle

    Naja, es gibt ja in der Pawn.exe IDE auch die Option "Compile/Run".
    So wie ich das verstehe, führt das die Hauptfunktion aus.
    Genau wie bei normalen Anwendungen. Da gibt es ja auch immer eine Main Funktion. Die Funktion, die zu aller erst ausgeführt wird. Und genau hier will ich ansetzen und mir ein Test schreiben.


    EDIT:
    Ja gut, das mit dem Gamemode und da drin ist auch eine Option.

    Moin.


    @Jeffry


    Ich möchte eine Funktion auf ihre Richtigkeit überprüfen.
    Allerdings ist mir bekannt wie das Resultalt aussehen soll.


    Den Test möchte ich hierfür einfach über die Main ausführen lassen. Doch dies geht nicht. Zumindest greift pawn.exe diese nicht.


    Wie bekomme ich das hin? Ich habe nicht gerade Lust für alles immer den Server anzumscheißen.
    Manches sind ja nur simple Funktionen und benötigen einfache Parameter Werte.

    Moin


    @Jeffry


    Ich bastel mir derzeitig eine eigene Bibliothek, um einfacher neue Scripte erstellen zu können sowie auch per STRG+Leertaste arbeiten zu können.
    Allerdings sagt mir der Compiler, das meine gewünschte Funktion nicht vorhanden ist.
    Mein Script sieht folgendermaßen aus:


    Natürlich beinhaltet meine Bibliothek mehr. Und soll auf dauer wachsen.
    Aber ich verstehe nicht die auftretende Fehlermeldung:



    C
    error 017: undefined symbol "User_IsAdmin"


    Warum kommt die Meldung? Ich kann es nicht nachvollziehen.

    Moin.


    @Jeffry



    Ich habe eine Public Function und übergebe Variablen.
    Diese Function wird via CallRemoteFunction aufgerufen, da der aufruf aus einem anderen Script kommt.
    In der Public Function selbst wird erfolgreich der Wert wie es von mir gewünscht ist, in die Variable geschrieben (SendClientMessage Debugging)
    Doch die Referenzen bleiben nicht bestehen. Ich bekomme nicht im anderen Script (dort wo der CallRemote herkommt) die abgeänderte Variable zurück.
    PS: Es handelt sich um ein Array Object.

    Versuche es mit diesem Installationspaket: All in One Runtimes - Download - CHIP
    Knolle:
    Sowas?
    forward checkTimer(count);public checkTimer(count){ if(count >= 90) { //Hier sind 90 Sekunden rum return 1; } else { //Hier noch nicht. } return SetTimerEx("checkTimer", 1000, false, "d", count + 1);}

    Dies erzeugt auch keinen global freeze oder? Sprich: Alles liegt brach und diese Funktion hält den Server für 90sek.
    Würde es ggf. stumpf anfänglich in eine Abfrage einbauen und dann eben auf eine Antwort von dem checkTimer warten.



    EDIT: Habe das nun etwas abgewandelt und eingebaut.
    Funktioniert nun. Ich danke dir. :)

    Ich habe eine Schleife um "waitS(1)" drum herum. In meinem Post habe ich ja auch geschrieben gehabt

    Code
    Wie erzeuge ich am besten eine Delay Funktion?
    Ich möchte das eine Schleife 90x durchlaufen wird á 1sek ergo 90sek.


    Welches folgenden Lösungsansatz hervorhebt

    C
    for(new i=0;i<90;i++){
    
    	if([überprüfung] == false) break;
    	if(i+1==90){
    		[...mache was, sofern 90 sekunden verstrichen sind...]
    	} 
    	waitS(1);
    }

    @Jeffry


    Wie erzeuge ich am besten eine Delay Funktion?
    Ich möchte das eine Schleife 90x durchlaufen wird á 1sek ergo 90sek.

    Code
    forward nothing();
    public nothing(){}
    forward waitS(time);
    public waitS(time){
    	new waitTime = time*1000;
        return SetTimer("nothing",waitTime,0);
    }


    Und dann folgendes irgendwo im Code, wo ich dann eine Verzögerung haben möchte.

    Code
    [...]
    waitS(1);
    [...]


    Allerdings ist mein Timer nach gefühlt 500milliseconds durch.

    @Jeffry

    Code
    SelectOwnAndMaxCarByFactionID(fID,owningCars,maxCars){
    [...]
    owningCars = value;
    maxCars = value;
    [...]
    }

    Ich habe das problem, das meine beigelegte Variablen nicht per Referenz geändert werden.
    Die Wirkung soll ähnlich sein wie bei GetPlayerPos usw.
    Sprich: Variablen beifügen und diese modifizert wieder erhalten.
    Doch hier erhalte ich nur 0 zurück.
    Vorher initialisiert mit dem Standardwert 0 und bekomme 0 (unmodifiziert) zurück.
    Aber wo ich die Werte debugged habe, so habe ich den erhofften Wert erhalten. Wohl gemerkt nur in der Funktion/Methode selbst.

    Versuche es mit einem kleinen p anstatt dem großen P in sscanf.

    Nope, hat nichts gebracht. Ich habe es nun erstmal anders gemacht. War in meinem extremfall zum glück mysql - direkt zugriff auf die Felder.
    Oder ist es mit sscanf inperformanter, als mysql eigene funktionen und dann nachträglich mit a_samp funktionen konventieren, sprich string zu float/int/boolean?

    @Jeffry

    Code
    new testString[32];
    	testString = "ich|20|20.0";
    	new testSInt,
    	    Float:testSFloat,
    	    testSString[10];
    	sscanf(testString,"P<|>s[3]if",
    	    testSString,
    	    testSInt,
    	    testSFloat
    	);

    Wenn ich meine TestObjekte ausgeben lasse, sprich: testSString, testSInt, testSFloat, so steht alles direkt nur im testSString, aber im int sowie float steht einfach mal nichts drin.
    Ich Erkenne den Fehler nicht.
    Ich verwende sscanf2 sowie auch die neuste Plugin Version.
    Ich habe auch danach eine größere Abfrage, die mein Datenbank resultat, was ich pro Zeile erhalte, auf die gleiche weiße wieder aufteilen, aber versage hierbei ebenso sehr.
    Help :/