Beiträge von Jeffry

    Du könntest es zum Beispiel auch über einen Dialog machen, hier ein Beispiel:


    Carlist[playerid][h][Cmats] += strval(inputtext);
    Das wäre der "Befehl" um die eingegebenen Materialien hinzuzufügen.


    Du kannst es auch über die params deines Commands machen, da steht eben anstatt inputtext params.

    Also die Speicherung sieht mir recht denkwürdig aus, mach das so:


    format(var, 256, "AH_Mats=%d\n", Carlist[playerid][h][Cmats]);
    fwrite(Carfile,var);
    Das macht mehr Sinn.



    Du willst einen Befehl, mit dem du Material in ein Auto legen kannst, also praktisch so:
    /legematerialinauto [Auto] [Menge]


    Oder wie? Falls so, dann fange doch erst mal mit dem Befehl selbst an und poste dann nochmal falls du den Befehl nicht zum Laufen bekommst, dann können wir dir den Befehl vervollständigen, das macht mehr Sinn als wenn ihn dir einfach jemand hinklatscht.

    Mit gewissen Einschränkungen, sicherlich. Kommt darauf an was du unter Skin Shop verstehst. Wenn du sowas schon im Code hast, dann auf jeden Fall, muss eben geändert werden. (Soweit ich weiß gehen die Kleidungs-Läden in SA-MP nicht, falls du die meinst.)


    Skin speichern kannst du ja mit GetPlayerSkin. Dann kannst du an den Schrank einen Checkpoint setzen, der eine Art selbst gemachte class Selektion öffnet, in der du über anklickbare Textdraws einen Skin weiter bzw einen zurück gehst (SetPlayerSkin). Die Skins die er schon hat speicherst du in einer datei oder Datenbank.


    Für alles Weitere musst du deine Fragestellung konkretisieren, falls nötig.

    Equ: (und an alle Weiteren die das lesen)


    Ich habe hier kurz was geschrieben, mit dem du alle Befehle in Sekundenschnelle ausgegeben bekommst:


    (Siehe Anhang)



    Einfach den Code (oben) als .vbs Datei speichern (oder im Anhang runterladen), in den Gamemodes-Ordner (bzw. Filterscripts, wo du es eben haben willst) einfügen, Doppelklick und schon hast du dort die AlleBefehle.txt stehen, darin alle Befehle. :thumbup:



    Viel Spaß damit!



    (Wäre nett wenn der Ein oder Andere mir ein Feedback geben könnte.)

    Schau in die jeweiligen enums.


    Verleih: RentVeh_daten
    ATM: ATMuTelefonzellenInfo


    Falls es dann noch nicht klar ist, poste diese enums und den Code mit dem du die Verleihe bzw die ATMs erstellst.

    Hast du den Code 1:1 so übernommen? Wenn nicht mach das bitte, und wenn doch, dann füge bitte jeweils unter den Format's einen print hin und poste was im Server Log steht.


    Beispiel:
    print(String4);

    Wie ich schon sagte...

    Wenn das Total Kills nicht in jeder Zeile angezeigt werden soll, musst es aus der Schleife nehmen und vor TextDrawSetString dem String anfügen.


    Hier:
    forward Endstand();
    public Endstand()
    {
    new String[24], String2[24], String3[1024], String4[1024];
    format(String, 24, "%s", TName1);
    TextDrawSetString(Textdraw0, String);
    format(String2, 24, "%s", TName2);
    TextDrawSetString(Textdraw1, String2);
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(!IsPlayerConnected(i)) continue;
    if(GetPlayerSkin(i) == T1Skin1 || GetPlayerSkin(i) == T1Skin2 || GetPlayerSkin(i) == T1Skin3)
    {
    new Name[24];
    GetPlayerName(i, Name, 24);
    format(String3, sizeof(String3), "%s%s Kills: %d Tode: %d\n", String3, Name, Kills[i], Tode[i]);
    }
    }
    format(String3, sizeof(String3), "%s\nTotal: Kills: %d Runden: %d", String3, Totalkillst1, Roundst1);
    TextDrawSetString(Textdraw2, String3);
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(!IsPlayerConnected(i)) continue;
    if(GetPlayerSkin(i) == T2Skin1 || GetPlayerSkin(i) == T2Skin2 || GetPlayerSkin(i) == T2Skin3)
    {
    new Name2[24];
    GetPlayerName(i, Name2, 24);
    format(String4, sizeof(String4), "%s%s Kills: %d Tode: %d\n", String4, Name2, Kills[i], Tode[i]);
    }
    }
    format(String4, sizeof(String4), "%s\nTotal: Kills: %d Runden: %d", String4, Totalkillst2, Roundst2);
    TextDrawSetString(Textdraw3, String4);
    return 1;
    }

    Wie gesagt, eventuell musst du die Größe anpassen, hast du das gemacht bzw geprüfte, ob die Größe stimmt?


    Wie sieht es denn genau aus, hast du ein Bild davon? (http://www.tinypic.com)


    Wird das public auch aufgerufen, hast du das geprüft?


    Hast du den Code auch mal debuggt, das heißt die Variablen via print auszugeben?

    forward Endstand();
    public Endstand()
    {
    new String[24], String2[24], String3[1024], String4[1024];
    format(String, 24, "%s", TName1);
    TextDrawSetString(Textdraw0, String);
    format(String2, 24, "%s", TName2);
    TextDrawSetString(Textdraw1, String2);
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(!IsPlayerConnected(i)) continue;
    if(GetPlayerSkin(i) == T1Skin1 || GetPlayerSkin(i) == T1Skin2 || GetPlayerSkin(i) == T1Skin3)
    {
    new Name[24];
    GetPlayerName(i, Name, 24);
    format(String3, sizeof(String3), "%s%s Kills: %d Tode: %d Total: Kills: %d Runden: %d\n", String3, Name, Kills[i], Tode[i], Totalkillst1, Roundst1);
    }
    }
    TextDrawSetString(Textdraw2, String3);
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(!IsPlayerConnected(i)) continue;
    if(GetPlayerSkin(i) == T2Skin1 || GetPlayerSkin(i) == T2Skin2 || GetPlayerSkin(i) == T2Skin3)
    {
    new Name2[24];
    GetPlayerName(i, Name2, 24);
    format(String4, sizeof(String4), "%s%s Kills: %d Tode: %d Total: Kills: %d Runden: %d\n", String4, Name2, Kills[i], Tode[i], Totalkillst2, Roundst2);
    }
    }
    TextDrawSetString(Textdraw3, String4);
    return 1;
    }


    Eventuell musst du es noch an die Größe deines Textdraws anpassen. Wenn das Total Kills nicht in jeder Zeile angezeigt werden soll, musst es aus der Schleife nehmen und vor TextDrawSetString dem String anfügen.

    ShowPlayerDialog(playerid, DIALOG_FACTION, DIALOG_STYLE_LIST, "{FFFFFF}Die Fraktion", "Finanzen\nRangnamen\nFahrzeuge\nKasse", "Auswählen", "Abbrechen");


    Und dann bei OnDialogResponse unter DIALOG_FACTION:
    case 3: return OnPlayerCommandText(playerid, "/fkasse");

    Hallo zusammen,


    mir ist eben aufgefallen, dass es keine Möglichkeit gibt, eine Meldung zurückzuziehen, zumindest so lange, bevor es ein Moderator überprüft hat. Das wäre wirklich sinnvoll, da es gut vorkommen kann, dass man kurz später merkt, dass die eigene Meldung falsch war.
    Mir ging es gerade eben so, dass ich fälschlicherweise einen Post gemeldet habe, und erst danach gemerkt habe, das ich falsch lag weil ich einen Teil übersehen habe (Entschuldigung an die Moderatoren!).


    Wie gesagt, es wäre sinnvoll eine solche Option hinzuzufügen.



    Danke.



    Jeffry 8)

    Martey:
    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if(!strcmp(cmdtext, "/zoll", true))
    {
    if(IsPlayerInRangeOfPoint(playerid, 10.0, 1729.86, 440.44, 30.65))
    MoveObject(zoll1, 1729.86, 440.44, 30.65, 0.02);
    SendClientMessage(playerid, 0xFFFF00FF,"Die Schranke schließt sich automatisch. Gute Weiterfahrt!");
    SetTimer("close", 5000, 0);
    GivePlayerMoney(playerid, -50);
    }
    return 1;
    }

    So meinst du das, ok. Ganz einfach:


    if(Supporter[playerid] == 1) format(string, sizeof(string), " %s(Supporter): %s", sendername, text);
    else format(string, sizeof(string), " %s: %s", sendername, text);


    Die Supporter Variable musst du eben mit der deinen ersetzen.

    Hallo,


    Dein erstes Problem verstehe ich nicht wirklich, kannst du das genauer ausführen?


    Zu deinem zweiten Problem:
    Setze bei SetPlayerChatBubble die Zeit (letzter Parameter). Zur Zeit hast du es auf 10 Sekunden (10000ms). Es geht dann automatisch weg. Wenn du es ganz weg haben willst, dann entferne einfach die Zeile mit SetPlayerChatBubble.