Beiträge von Kinimod

    Das passiert bei mir manchmal, wenn man zu schnell F5 hintereinander drückt.
    Dann ist die amx noch geöffnet und kann dementsprechend nicht nochmal geöffnet werden.


    Passiert das bei jedem Mal F5? Wenn ja, schau mal in den Taskmanager, ob dort die pawncc.exe gestartet ist und beende sie mal.
    Oder versuch einen Neustart von PAWNO oder welchen Editor du sonst verwendest.

    Ergänzung zum Post von Icy: PlayerVariablen haben noch einen wichtigen Vorteil: Sie löschen sich beim Disconnect.

    Ja, stimmt. Habe ich eben übersehen.


    Stell es dir folgendermaßen vor: Du erstellst jede Sekunde ein neues Textdraw, da der Create Befehl im Timer ist, der jede Sekunde aufgerufen wird.
    Du hast dann also nach 10 Sekunden schon 10 Textdraws, die genau übereinander sind.


    Dadurch überlappt es sich und am Ende wird nur das Oberste ausgeblendet, die anderen bleiben allerdings bestehen. Daher entsteht der Eindruck, dass das Textdraw bleibt.


    Lösen kannst du das, indem du die Variable textid global (oben im Script) definierst und die TextDrawCreate() Zeile unter OnGameModeInit() packst, allerdings mit einer kleinen Abänderung:


    textid = TextDrawCreate(100.0, 300.0, "DM-Runde");

    Tag Mistach bedeutet nicht dass du sie doppelt hast, sondern das du ein Argument (Parameter) falsch eingegeben/vergessen hast.


    Falsch.


    Das bedeutet lediglich, dass ein falscher Tag angewendet wurde.
    Ein Tag ist bspw. "Float" oder "Bool".


    Du definierst in deinem Fall z.B. die Variable "Float: Cx".
    Das ist soweit richtig, weil es sich offenbar um eine Koordinate (Fließkommawert) handelt.


    Allerdings speicherst du sie als Integer in einer Playervariable, was nicht funktionieren kann.
    Daher erscheint der Error.


    Verwende stattdessen bei den Cx, Cy, Cz und Ca Variablen SetPVarFloat().


    Beispielsweise:

    SetPVarFloat(playerid,"VehicleX",Cx);

    Wofür die zwei Schleifen?
    Du brauchst sie garnicht, da du ja TextDrawShowForAll() und TextDrawHideForAll() verwendest und sie somit auf alle und nicht auf bestimmte Spieler anwendest.


    Mach es mal folgendermaßen:


    public Rundeal()
    {
    new Text:textid = TextDrawCreate(100.0, 300.0, "DM-Runde");


    if(runde_aktiv==1)
    {
    TextDrawShowForAll(textid);
    }
    else if(runde_aktiv==0)
    {
    TextDrawHideForAll(textid);
    }
    return 1;
    }

    Du hast mein Beispiel oben leicht missverstanden. ^^


    So sollte es funktionieren.


    Erster Fehler
    Du musst bestimmte Zeichen escapen, weil diese durch die Funktion RegExMatch() reserviert sind und erkannt werden.
    Die zu escapenden Zeichen kannst du dieser Seite entnehmen (unten unter "Remarks").
    http://www.autohotkey.com/docs/commands/RegExMatch.htm


    Zweiter Fehler
    RegExMatch() funktioniert nicht wie die format() Funtkion in PAWN.
    Du kannst nur eine Variable für die Ergebnisse angeben.
    An diese Variable wird immer ein Index angehangen. Dieser richtet sich nach der Reihenfolge im Text.


    In deinem Beispiel würde result0 also die Fischart enthalten und result1 das Gewicht.

    Code
    RegExMatch(line, "Hallo ich gebe dir (.*)$", result)
    if(result0 > 100){
        ;Größer 100
    }else{
        ;kleiner oder gleich 100
    }


    Eventuell musst du das Dollarzeichen backslashen, weiß ich grad nicht. Das würde dann so aussehen:


    Code
    RegExMatch(line, "Hallo ich gebe dir (.*)\$", result)
    if(result0 > 100){
        ;Größer 100
    }else{
        ;kleiner oder gleich 100
    }


    Ist beides ungetestet.

    Du wendest die Funktion falsch an.


    So ist es korrekt.


    GetPlayerHealth(playerid,health);
    dini_IntSet(Spielerdatei,"HP", _:health);


    Die Funktion ist Call by Reference, die HP wird in der Var. gespeichert, die als 2. Parameter in GetPlayerHealth() angegeben ist.
    Da die Variable aber ein Float ist, muss man es noch zu einem Integer konvertieren, daher das _: davor, das den Float Tag in der Deklaration der Variable "health" entfernt und sie somit wieder zu einem Integer macht.
    Diese Variable kannst du dann als Parameter für die Dini Funktion nehmen.


    //E: Erklärung bearbeitet
    //E²: Edithinweise hinzugefügt (wer hat diese Regel erfunden? :X)
    //E³: Grammatikfehler entfernt