Beiträge von Piranha

    public OnPlayerRequestClass(playerid, classid)
    {
    // ...
    switch(classid)
    {
    case 147: gTeam[playerid] = TEAM_ONE;
    case 189: gTeam[playerid] = TEAM_TWO;
    }
    return 1;
    }
    classid ist nicht die Skin ID.
    Die ID's deiner beiden Klassen kannst du über den Rückgabewert von "AddPlayerClass(Ex)" ermitteln.


    // Globale Variablen:
    new class_one, class_two;


    // OnGameModeInit:
    class_one = AddPlayerClassEx(0,147, 0.0, 0.0, 0.0, 0.0, 0, 0, 0, 0, 0, 0); // Variable class_one speichert den Rückgabewert von AddPlayerClassEx (= classid)
    class_two = AddPlayerClassEx(1,189, 0.0, 0.0, 0.0, 0.0, 0, 0, 0, 0, 0, 0); // -"-


    // OnPlayerRequestClass:
    switch(classid)
    {
    case class_one: gTeam[playerid] = TEAM_ONE;
    case class_two: gTeam[playerid] = TEAM_TWO;
    }

    Du willst einen String auslesen. Dementsprechend müssen die Variablen, worin der ausgelesene
    String gespeichert werden soll, auch Strings sein.


    Beispiel:
    new lspd[MAX_PLAYER_NAME+1] = dini_Get("fraktionen.txt", "LSPD");

    _: steht dafür, dass die Variable keinen bestimmten Tag hat.
    Variablen ohne Tag bekommen diesen automatisch zu gewiesen.


    Wenn man eine Variable bspw. mit "new id;" dann hat diese genau genommen auch den Tag "_:" (man könnte sie daher auch über "_:id" statt nur "id" ansprechen) - jedoch braucht man sich
    darum nicht zu kümmern, weil das automatisch gemacht wird.


    In diesem Fall bewirkt es halt, dass der Compiler den Tag "Text3D:" der Variablen "labelid" ignoriert, weil er durch den Tag "_:" davor, die Variable wie andere Variablen mit dem Tag "_:" (sprich "normale
    Variablen") behandelt.


    (schwer zu erklären.. :D )

    new Text3D:labelid = Text3D:mysql_GetInt("haus","LabelID","ID",id);


    new Text3D:labelid = CreateDynamic3DTextLabel(string, COLOR_RED, HouseX, HouseY, HouseZ+1.0, 20.0);
    mysql_SetInt("haus", "LabelID", _:labelid, "ID", id);
    Beim Ersten bin ich mir nicht sicher, ob es problemlos funktioniert.
    Die Warnings sollten so jedenfalls weg sein.

    KING136:
    Quatsch..
    "argument type mismatch" heißt soviel, wie dass der angegebene Parameter nicht dem richtigen Typ entspricht.
    Zumal dort kein Parameter zuviel angegeben ist.


    Zum Thema:
    Ich würde immer noch gerne sehen, welchen Wert HTML_WHITE bei dir hat.

    TutorialTimer ist bei dir ein Array.
    Also musst du auch angeben, welches Element aus dem Array du ansprechen möchtest:
    KillTimer(TutorialTimer[playerid]);

    Das mit dem return 0; ist schon mal der richtige Weg.


    return 0; unter OnDialogResponse bedeutet, dass der Dialog zum nächsten Script übergeben wird und dort dann
    wiederum OnDialogResponse mit dem Dialog durchlaufen wird.


    Vermutlich wird das durch deinen Gamemode (oder andere Scripts) verhindert, indem irgendwo unter
    OnDialogResponse (in einem anderen Script) return 1; zurückgegeben wird.

    Update3DTextLabelText(drogenbiz1,WEIS,string);
    DeletePlayer3DTextLabel(playerid,drogenbiz1);
    Ja, was denn nun? Entweder Player3DTextLabel oder ein normales 3DTextLabel.

    if((newkeys & KEY1) && (newkeys & KEY2))
    So fragt man ab, ob mehrere Tasten gleichzeitig gedrückt werden (& = Bitweise und).


    Wenn man mit if(newkeys == KEY1) abfragt, dann würde es nur funktionieren, wenn der Spieler wirklich nur KEY1 und keine andere Taste zum gleichen Zeitpunkt gedrückt hat.
    Sobald er noch eine weitere Taste dazu drückt, ist der Wert von newkeys nämlich nicht mehr gleich KEY1.
    Weiterführende Informationen sind im englischen Wiki vorhanden.


    Ist wohl einer der häufigsten Fehler, die gemacht werden (kann allerdings auch beabsichtigt sein). ;)


    Ja, KEY_AIM müsste die Taste zum anvisieren sein (wenn zu Fuß unterwegs).

    Immerhin sind wir jetzt schon mal einen kleinen Schritt weiter. :)
    Sehe aber, dass die meisten Fehler, die ich eben bereits angesprochen habe, nicht (oder falsch) verbessert wurden.


    dcmd(fahrstundeauto(14, cmdtext);
    Fast derselbe Fehler wie vorhin - immer noch eine falsche Syntax.
    dcmd(fahrstundeauto, 14, cmdtext);
    So ist sie richtig.


    if(sscanf(params,"u",pID,text))
    Wofür soll die Variable text (welche wahrscheinlich nicht einmal existiert) da nützlich sein? Weg damit. :D


    Die Variablen "string" und "string2" sollten auch als Stringserstellt werden und nicht als Integer.


    SetPVarInt(piD,"fahrstundeauto") = 1;
    Schau dir mal die Funktion SetPVarInt an - besonders die Syntax (aber auch das Beispiel dazu).
    ACHTUNG: PAWN ist Case-sensitive - d.h. PAWN unterscheidet zwischen Groß- und Kleinschreibung.
    piD ist also nicht dasselbe wie pID.
    Daher in diesem Fall "piD" durch "pID" ersetzen.


    SendClientMessage(playerdi, COLOR_LIGHTBLUE, string2);
    Einen Schreibfehler hast du beim Überarbeiten vergessen. ;)


    .. ganz schön lange Liste.
    Nimm dir Zeit beim Überarbeiten und schau bei Bedarf auch im Wiki nach.