Beiträge von Sub Royal


    Habe hier meinen /pm Command jetzt in der gewuenschten Form :D
    Da stellt sich mir jedoch die Frage: Inwiefern ist das mit sscanf besser als alles mit strtok zu machen? Ist das schneller und/oder ressourcensparender?



    Oder alternativ mein alter /get command mit strtok und der neue mit sscanf


    Danke schonmal Kaliber, das werde ich mal so uebernehmen :D
    Also wenn ich das richtig verstehe kann ich sscanf nur in Verbindung mit anderen Kommandodingern nutzen wie ocmd oder dcmd?



    Die Assemblervariante gefaellt mir super!


    Schade :( Bin eigentlich super zufrieden mit der C Syntax


    Weil wenn ich das richtig sehe kriege ich sonst kein params[] sondern nur cmdtext[] durch OnPlayerCommandText


    Oder wenn ich mist Lage Re entschuldigt :D Hat jemand eventuell ein Beispiel mit Strtok wie ich es hinkriege 2 oder mehr integer da rauszuholen aus einem Befehl ?

    Ich gruesse euch kleine Frage
    Habe so ein tolles Include und Plugin namens sscanf gefunden.
    Leider finde ich Anwendungen nur mit dcmd zcmd etc. aber nicht mit den normalen Stuff


    Kann jemand mir eventuell ein Beispiel machen, wie und ob ich sscanf hier bei diesem Befehl sinnvoll einsetzen kann?



    Versuche mich gerade an einen /givecash command, aber die Sache mit 2 Integern bereitet mir Probleme, und da dachte ich dass sscanf mir Abhilfe schaffen koennte

    Gibt es eigentlich die Moeglichkeit XOR Operationen zu realisieren?


    Weiss nicht ob das geht, kenne nur das hier 0101 XOR 1011 = 1110
    Kann man dann auch z.B. mit arrays machen? array1={0101} XOR array2={1011} = array3={1110} ? Also wie kann man sowas in PAWN realisieren?


    Weiterhin habe ich das Problem:


    Wenn ich Pi definiere new const Float:pi=3.14; und dann in main ausgeben will mit printf("%d",pi); warum erhalte ich da einen wert von ueber 100000?

    Vielen Dank fuer eure Vorschlaege!
    Ich werde das mal durchschauen, habe aber aktuell folgendes probiert



    Eine Funktion erstellt


    Welche die gewuenschten Sachen wie ueberpruefung des Geldes, und Fehlermessage direkt verbindet
    Ich werde mal schauen ob das funktioniert

    @Kaliber :D Da habe ich aber ein dickes Problem wo ich bisher keinen anderen Weg als goto wusste


    Habe in meinem OnPlayerMenuSwitch oder aehnlich Teil ueber 20 solcher Menus, teils auch mit 20 cases.
    Bei jedem der Menu will ich jedoch ueberpruefen ob der Spieler genug Geld hat um sich die Waffen zu kaufen, und wenn nicht nen Fehler ausgeben.
    Das ist super umstaendlich hunderte male if-else zu machen, und ich habe daher keinen ressourcensparenderen Weg gefunden als jedes mal goto zur Fehlerausgabe zu machen anstatt jedes mal die gleiche Nachricht da zu verpacken.


    Hat jemand eventuell ne Idee wie ich das ganze geschickter gestalten kann anstatt imer if-else zu nutzen bei jedem case, und das mit der Fehlerausgabe besser machen kann wenn der Spieler nicht genug Geld hat?

    Absolut klasse das hat so geklappt.
    Habe nun ein Problem mit einem Befehl.


    Wenn ich hier statt /soundvalid ID einfach nur /soundv eingebe erhalte ich schon die ClientMessage, obwohl /soundv ja nicht /soundvalid ist
    Wo liegt das Problem?


    Absolut Klasse! Das geht!
    Habe nun ein kleines Gedankenproblem womit ich mich befasse.


    Ich will mit meinem Befehl ueberpruefen bei welcher der Koordinaten aus dem Array der Spieler sich befindet, aus dem Array hier


    C
    new Float:beds[][3] = {
    	{268.1000100,1881.5000000,-31.4000000},//Grey
    	{417.6000100,2536.2000000,8.9000000},//Blue
    	{-955.2665,1867.7350,5.6661},//Red
    	{-391.0000000,2227.0000000,41.4000000}//Unspecified
    };


    Ich weiss jetzt nicht wie ich feststellen kann ueber meinen Befehl ob der Spieler bei Grey ist, oder bei Blue etc. da faellt mir aktuell einfach nix zu ein :/
    Habe eventuell gedacht irgendwas richtung if(beds[i] == beds[1] ) oder sowas zu machen, aber ich denke da gibt es eventuell effizientere Loesungsansaetze


    Leider weiss ich nicht wie man Zeilen aus Arrays vergleichen kann

    Für was wird das genutzt?Du setzt die Variable direkt auf 1 und fragst gleichzeitig ab ob running !=1 && ....
    Also running nicht auf 1 setzen und/oder running !=1 &&  aus der Abfrage entfernen.

    Moin


    Das nutze ich dafuer dass der Befehl nicht nochmal ausgefuehrt wird waehrend der am laufen ist.
    Das wird dann nachher wieder auf 0 gesetzt im Timer


    Jeffrey: Gibts noch ne andere Moeglichkeit 0 zu returnen oder nen Fehler auszugeben, und dabei nicht die Schleife abzubrechen?



    Vielen Dank schonmal mit dem else, damit hats geklappt

    Hier mal der ganze Befehl


    Moin


    Habe hier einen Teil meines Scripts welcher nicht funktioniert.


    Code
    if(running !=1 && IsPlayerInRangeOfPoint(playerid,10.0,beds[i][0],beds[i][1],beds[i][2]))


    Dazu das entsprechende Array


    C
    new Float:beds[][3] = {
    	{268.1000100,1881.5000000,-31.4000000},//Grey
    	{417.6000100,2536.2000000,8.9000000},//Blue
    	{-955.2665,1867.7350,5.6661},//Red
    	{-391.0000000,2227.0000000,41.4000000}//
    };

    Leider funktioniert die Ueberpruefung nur beim ersten Wert des Arrays, woran liegt das?


    Will damit ueberpruefen ob der Spieler sich in der Naehe irgendeiner dieser Koordinaten befindet

    Moin


    Erstelle in Bereichen Random Pickups und will max. 4000 haben, das klappt auch.



    Mein OnPlayerPickupPickup teil:



    Wenn ich jetzt in meinem ersten Abschnitt ganz viele Pickups erstelle, welche keine spezielle ID haben, sollte eigentlich der Teil nach dem else in OnPlayerPickUpPickup dafuer verantwortlich sein.
    Jedoch ist das Problem: Wenn ich sagen wir mal 3000-4000 Pickups habe, dann wird auch bei Pickups welche nicht die IDs shopteamblue etc. der Code mit ShowPlayerMenu ausgefuehrt, als wuerde es keine Unterscheidung mehr zwischen den Pickups geben.


    Was soll das bzw. was kann ich dagegen tun?

    Danke schonmal @ Kaliber
    Ich konnte es einfach nicht sein lassen mit der Generierung :D Habe daher ne Funktion gebaut um random Floats zu generieren, jetzt sieht es sogar halbwegs vernuenftig aus.



    Ist eigentlich Heapsort realisierbar in PAWN,oder gibt es da andere Algorithmen welche unter PAWN besser laufen?


    Hast du ausserdem schonmal das Pointer Include fuer PAWN genutzt, um Pointer in PAWN zu nutzen?
    Hat PAWN ausserdem ne max. Groesse fuer Arrays? Habe naehmlich vor das Sound Array hier http://pastebin.com/A1PbQZPd mit Heapsort zu sortieren

    Moin



    Weiterhin noch ne Sache.


    Aktuell generiere ich zufaellig Pickups in einer Zone, jedoch sah das katastrophal aus.
    Das ganze sah dann ingame so aus, als waeren die Geldstueck wie an einem Raster angeordnet, und nicht random erstellt.





    Weiterhin wird ab einem Wert von moneyval = 15000 der ObjectMaterialText nicht mehr aktualisiert.
    Gibt es weiterhin noch eine Moeglichkeit, bei Setzen eines ObjectMaterialTexts dieses Flackern des Materials zu verhindern? Habe ein unsichtbares Objekt, jedoch sieht man immer das Material kurz aufploppen beim aendern des Texts.


    Habe alternativ versucht nen Float zusammenzusetzen da es keine random Funktion fuer Floats gibts, aber das hat auch nicht hingehauen



    So ungefaehr


    C
    new Float:ra1=(((random(14)+239).(random(999))-1);new Float:ra2=(((random(8)+1797).(random(999))-1);

    Hoffe ihr koennt mir da helfen

    Moin


    Folgendes:
    Gibt es eine Moeglichkeit, ein Objekt zu "editieren" bzw. zu begeben wenn man dafuer vorher keine ID erstellt hat?


    Beispielsweise habe ich irgendwo ein Bett stehen welches mit CreateObject erstellt wurde, wie kann ich ich dann praktisch die "ID" dieses Betts rausfinden um es zu bewegen, ohne dass ich "bett = CreateObject.." verwende?
    Oder geht es nur auf diese Weise? Also irgendeinen Ansatz einem Objekt in der Naehe eines Spielers eine ID zuzuweisen, um es dann nachher zu bewegen oder zu loeschen

    So bin gerade dabei eine C Header Datei so umzuschreiben so dass ich Sie als Include fuer PAWN nutzen kann.
    Jedoch finde ich kein PAWN Aequivalent fuer "extern"


    Kennt da jemand was?


    Habe weiterhin vor double durch float zu ersetzen

    2. Sachen
    Gibt es die Moeglichkeit wie bei C, if-else Bedingungen mit xyz ? xyz: 2xyz auszudruecken? Also mit bool?


    2. Gibt es irgendein Include fuer pawn das Mathematische Funktionen wie z.B. um von einer Komplexen Zahl die komplex konjugierte Zahl zu bilden, oder um 2 Polynome zu falten oder sowas?
    Aktuell arbeite ich etwas mit C#, da gibt es Bibliotheken dafuer aber fuer PAWN habe ich bisher noch nichts dergleichen gefunden