Beiträge von Jeffry

    Das muss bei OnGameModeInit hin, nicht zu den forwards.
    SetTimer("UnMuteTimer",60000,1);


    Und der Timer so:
    public UnMuteTimer()
    {
    for(new i;i<MAX_PLAYERS;i++)
    {
    if(GetPVarInt(i,"Mute")>0)
    {
    new wert = GetPVarInt(i,"Mute" )-1;
    SetPVarInt(i,"Mute",wert);
    if(GetPVarInt(i,"Mute") == 0) SendClientMessage(i,COLOR_GREEN,"You have been Unmuted.");
    }
    }
    return 1;
    }

    @Mencent: malE:


    dini_Int und dini_Bool sind genau gleich, es spielt keine Rolle welches man verwendet. Daher muss man (siehe Lösung) auch dini_Bool mit bool: casten.


    stock dini_IntSet(filename[],key[],value) {
    new valuestring[MAX_STRING];
    format(valuestring,sizeof(valuestring),"%d",value);
    return dini_Set(filename,key,valuestring);
    }


    stock dini_Int(filename[],key[]) {
    return strval(dini_Get(filename,key));
    }


    stock dini_BoolSet(filename[],key[],value) {
    new valuestring[MAX_STRING];
    format(valuestring,sizeof(valuestring),"%d",value);
    return dini_Set(filename,key,valuestring);
    }


    stock dini_Bool(filename[],key[]) {
    return strval(dini_Get(filename,key));
    }


    Quelle: dini.inc



    Eigentlich müsste dini_Bool so aussehen:
    forward bool:dini_Bool(filename[],key[]);
    stock bool:dini_Bool(filename[],key[]) {
    return bool:strval(dini_Get(filename,key));
    }


    Das könntest du in der dini.inc ändern, dann sparst du dir das casten im eigentlichen Code, da das unschön ist.

    new PlayerText:HausLabelTD[MAX_PLAYERS][10];


    Und bei OnPlayerConnect:

    Spoiler anzeigen
    HausLabelTD[playerid][0] = CreatePlayerTextDraw(playerid,496.799896, 232.311096, "_");
    PlayerTextDrawLetterSize(playerid,HausLabelTD[playerid][0], 0.424398, 18.230764);
    PlayerTextDrawTextSize(playerid,HausLabelTD[playerid][0], 604.600097, 0.000000);
    PlayerTextDrawBoxColor(playerid,HausLabelTD[playerid][0], 0x00000056);
    PlayerTextDrawSetShadow(playerid,HausLabelTD[playerid][0], 0);
    PlayerTextDrawAlignment(playerid,HausLabelTD[playerid][0], 1);
    PlayerTextDrawUseBox(playerid,HausLabelTD[playerid][0], 1);
    PlayerTextDrawBackgroundColor(playerid,HausLabelTD[playerid][0], 255);

    Spoiler anzeigen
    HausLabelTD[playerid][1] = CreatePlayerTextDraw(playerid,497.900268, 237.786712, " "); //Hausbesitzer
    PlayerTextDrawLetterSize(playerid,HausLabelTD[playerid][1], 0.205199, 0.942932);
    PlayerTextDrawAlignment(playerid,HausLabelTD[playerid][1], 1);
    PlayerTextDrawColor(playerid,HausLabelTD[playerid][1], 0x00E200BB);
    PlayerTextDrawSetShadow(playerid,HausLabelTD[playerid][1], 1);
    PlayerTextDrawSetOutline(playerid,HausLabelTD[playerid][1], 0);
    PlayerTextDrawBackgroundColor(playerid,HausLabelTD[playerid][1], 255);
    PlayerTextDrawFont(playerid,HausLabelTD[playerid][1], 1);
    PlayerTextDrawSetProportional(playerid,HausLabelTD[playerid][1], 1);
    PlayerTextDrawSetShadow(playerid,HausLabelTD[playerid][1], 0);

    Spoiler anzeigen
    HausLabelTD[playerid][2] = CreatePlayerTextDraw(playerid,498.300109, 257.697631, " "); //Kosten
    PlayerTextDrawLetterSize(playerid,HausLabelTD[playerid][2], 0.205199, 0.942932);
    PlayerTextDrawAlignment(playerid,HausLabelTD[playerid][2], 1);
    PlayerTextDrawColor(playerid,HausLabelTD[playerid][2], 0x00E200BB);
    PlayerTextDrawSetShadow(playerid,HausLabelTD[playerid][2], 1);
    PlayerTextDrawSetOutline(playerid,HausLabelTD[playerid][2], 0);
    PlayerTextDrawBackgroundColor(playerid,HausLabelTD[playerid][2], 255);
    PlayerTextDrawFont(playerid,HausLabelTD[playerid][2], 1);
    PlayerTextDrawSetProportional(playerid,HausLabelTD[playerid][2], 1);
    PlayerTextDrawSetShadow(playerid,HausLabelTD[playerid][2], 0);

    Spoiler anzeigen
    HausLabelTD[playerid][3] = CreatePlayerTextDraw(playerid,497.900115, 268.150970, " "); //Miete
    PlayerTextDrawLetterSize(playerid,HausLabelTD[playerid][3], 0.205199, 0.942932);
    PlayerTextDrawAlignment(playerid,HausLabelTD[playerid][3], 1);
    PlayerTextDrawColor(playerid,HausLabelTD[playerid][3], 0x00E200BB);
    PlayerTextDrawSetShadow(playerid,HausLabelTD[playerid][3], 1);
    PlayerTextDrawSetOutline(playerid,HausLabelTD[playerid][3], 0);
    PlayerTextDrawBackgroundColor(playerid,HausLabelTD[playerid][3], 255);
    PlayerTextDrawFont(playerid,HausLabelTD[playerid][3], 1);
    PlayerTextDrawSetProportional(playerid,HausLabelTD[playerid][3], 1);
    PlayerTextDrawSetShadow(playerid,HausLabelTD[playerid][3], 0);

    Spoiler anzeigen
    HausLabelTD[playerid][4] = CreatePlayerTextDraw(playerid,498.300201, 247.741973, " "); //Level
    PlayerTextDrawLetterSize(playerid,HausLabelTD[playerid][4], 0.205199, 0.942932);
    PlayerTextDrawAlignment(playerid,HausLabelTD[playerid][4], 1);
    PlayerTextDrawColor(playerid,HausLabelTD[playerid][4], 0x00E200BB);
    PlayerTextDrawSetShadow(playerid,HausLabelTD[playerid][4], 1);
    PlayerTextDrawSetOutline(playerid,HausLabelTD[playerid][4], 0);
    PlayerTextDrawBackgroundColor(playerid,HausLabelTD[playerid][4], 255);
    PlayerTextDrawFont(playerid,HausLabelTD[playerid][4], 1);
    PlayerTextDrawSetProportional(playerid,HausLabelTD[playerid][4], 1);
    PlayerTextDrawSetShadow(playerid,HausLabelTD[playerid][4], 0);

    Spoiler anzeigen
    HausLabelTD[playerid][5] = CreatePlayerTextDraw(playerid,497.899871, 278.604156, " "); //Mieterslots
    PlayerTextDrawLetterSize(playerid,HausLabelTD[playerid][5], 0.205199, 0.942932);
    PlayerTextDrawAlignment(playerid,HausLabelTD[playerid][5], 1);
    PlayerTextDrawColor(playerid,HausLabelTD[playerid][5], 0x00E200BB);
    PlayerTextDrawSetShadow(playerid,HausLabelTD[playerid][5], 1);
    PlayerTextDrawSetOutline(playerid,HausLabelTD[playerid][5], 0);
    PlayerTextDrawBackgroundColor(playerid,HausLabelTD[playerid][5], 255);
    PlayerTextDrawFont(playerid,HausLabelTD[playerid][5], 1);
    PlayerTextDrawSetProportional(playerid,HausLabelTD[playerid][5], 1);
    PlayerTextDrawSetShadow(playerid,HausLabelTD[playerid][5], 0);

    Spoiler anzeigen
    HausLabelTD[playerid][6] = CreatePlayerTextDraw(playerid,497.900299, 298.515197, "Mieterliste:");
    PlayerTextDrawLetterSize(playerid,HausLabelTD[playerid][6], 0.259200, 1.022577);
    PlayerTextDrawAlignment(playerid,HausLabelTD[playerid][6], 1);
    PlayerTextDrawColor(playerid,HausLabelTD[playerid][6], 0x00E200BB);
    PlayerTextDrawSetShadow(playerid,HausLabelTD[playerid][6], 1);
    PlayerTextDrawSetOutline(playerid,HausLabelTD[playerid][6], 0);
    PlayerTextDrawBackgroundColor(playerid,HausLabelTD[playerid][6], 255);
    PlayerTextDrawFont(playerid,HausLabelTD[playerid][6], 1);
    PlayerTextDrawSetProportional(playerid,HausLabelTD[playerid][6], 1);
    PlayerTextDrawSetShadow(playerid,HausLabelTD[playerid][6], 0);

    Spoiler anzeigen
    HausLabelTD[playerid][7] = CreatePlayerTextDraw(playerid,497.899871, 309.466400, " "); //Mietername
    PlayerTextDrawLetterSize(playerid,HausLabelTD[playerid][7], 0.205199, 0.942932);
    PlayerTextDrawAlignment(playerid,HausLabelTD[playerid][7], 1);
    PlayerTextDrawColor(playerid,HausLabelTD[playerid][7], WEISS);
    PlayerTextDrawSetShadow(playerid,HausLabelTD[playerid][7], 1);
    PlayerTextDrawSetOutline(playerid,HausLabelTD[playerid][7], 0);
    PlayerTextDrawBackgroundColor(playerid,HausLabelTD[playerid][7], 255);
    PlayerTextDrawFont(playerid,HausLabelTD[playerid][7], 1);
    PlayerTextDrawSetProportional(playerid,HausLabelTD[playerid][7], 1);
    PlayerTextDrawSetShadow(playerid,HausLabelTD[playerid][7], 0);

    Spoiler anzeigen
    HausLabelTD[playerid][8] = CreatePlayerTextDraw(playerid,478.400054, 289.057800, ".");
    PlayerTextDrawLetterSize(playerid,HausLabelTD[playerid][8], 13.061003, 0.717690);
    PlayerTextDrawAlignment(playerid,HausLabelTD[playerid][8], 1);
    PlayerTextDrawColor(playerid,HausLabelTD[playerid][8], WEISS);
    PlayerTextDrawSetShadow(playerid,HausLabelTD[playerid][8], 0);
    PlayerTextDrawSetOutline(playerid,HausLabelTD[playerid][8], 0);
    PlayerTextDrawBackgroundColor(playerid,HausLabelTD[playerid][8], 255);
    PlayerTextDrawFont(playerid,HausLabelTD[playerid][8], 1);
    PlayerTextDrawSetProportional(playerid,HausLabelTD[playerid][8], 1);
    PlayerTextDrawSetShadow(playerid,HausLabelTD[playerid][8], 0);

    Spoiler anzeigen
    HausLabelTD[playerid][9] = CreatePlayerTextDraw(playerid,495.600036, 220.862182, " "); //Hausnummer
    PlayerTextDrawLetterSize(playerid,HausLabelTD[playerid][9], 0.400000, 1.600000);
    PlayerTextDrawAlignment(playerid,HausLabelTD[playerid][9], 1);
    PlayerTextDrawColor(playerid,HausLabelTD[playerid][9], WEISS);
    PlayerTextDrawSetShadow(playerid,HausLabelTD[playerid][9], 1);
    PlayerTextDrawSetOutline(playerid,HausLabelTD[playerid][9], 0);
    PlayerTextDrawBackgroundColor(playerid,HausLabelTD[playerid][9], 255);
    PlayerTextDrawFont(playerid,HausLabelTD[playerid][9], 1);
    PlayerTextDrawSetProportional(playerid,HausLabelTD[playerid][9], 1);
    PlayerTextDrawSetShadow(playerid,HausLabelTD[playerid][9], 0);


    Dann kannst du den String der Textdraws entsprechend dem jeweiligen Haus dem Spieler dann setzen, wenn es angezeigt werden soll.

    ocmd:a(playerid, params[])
    {
    if(SpielerInfo[playerid][aLevel] < 1) return SendClientMessage(playerid, 0xFF0000FF, "Nur für Admins.");
    if(!params[0])) return SendClientMessage(playerid, 0xFF0000FF, "Nutze: /a [Text]");
    new str[145];
    GetPlayerName(playerid, str, MAX_PLAYER_NAME);
    format(str, sizeof(str), "[Admin] %s: %s", str, params);
    for(new i=0; i<MAX_PLAYERS; i++) if(SpielerInfo[i][aLevel] > 0) SendClientMessage(i, 0xFFFFFFFF, str);
    return 1;
    }


    EDIT:
    Sorry, [] bei params vergessen, danke Red_Romeo:.

    Sollte irgendeine Nachricht kommen in der cmd.exe?


    Nein, man sieht es im Download Center dann. Aber auch das geht, wie ich gerade gehört habe, nicht bei allen.


    Soweit ist er bei mir momentan. Die 2.7GB hat er, was er jetzt macht, keine Ahnung. So steht er seit 15 Minuten.


    Vielleicht noch das 1GB Update von dem gesprochen wurde, da er trotzdem noch wie wild runterlädt, wenn auch nur noch mit 1MBit/s :huh:


    Wenn's erst morgen fertig ist machts auch nichts. Ich habs ja auf dem einen Laptop schon, aus der Insider-Phase. Finde es klasse.

    Wird durch das Starten dieser Exe Der Download gestartet,oder sollte man besser auf die Benachrichtigung von Microsoft warten?


    Wenn du alle Updates drauf hast, und er dir sagt du sollst auf die Benachrichtigung warten, dann kannst du es in der cmd.exe über

    Code
    wuauclt.exe/updatenow


    anstoßen, dann siehst du im Update Center, dass er es runter lädt. Hab ich so gemacht, er bereitet die Installation gerade vor.

    So wie das aussieht, ist die Funktion GetFlameSlot bereits definiert.
    Entferne den Code-Teil mal, oder suche, wo sie bereits definiert ist.

    Du willst das ganze System von ocmd/dini in zcmd/MySQL konvertiert haben?
    Dann solltest du dich im Marktplatz umsehen, ob dir das jemand macht.


    Sinnvoller wäre es, den Code einfach so zu nutzen, als Filterscript.

    new pname[MAX_PLAYER_NAME], id;
    GetPlayerName(playerid, pname, MAX_PLAYER_NAME);
    if(!strcmp(CarInfo[i][Besitzer], pname) && strlen(CarInfo[i][Besitzer]) > 2 && CarInfo[i][modelID] > 0)
    {
    format(string, sizeof(string), "%s%s (ID: %d)\n", string, PlayerVehicle[CarInfo[i][modelID]-400], id);
    id++;
    }
    zu:
    new pname[MAX_PLAYER_NAME], id;
    GetPlayerName(playerid, pname, MAX_PLAYER_NAME);
    printf("i: %d | Besitzer: %s | pname: %s | len: %d | model: %d", i, CarInfo[i][Besitzer], pname, strlen(CarInfo[i][Besitzer]), CarInfo[i][modelID]);
    if(!strcmp(CarInfo[i][Besitzer], pname) && strlen(CarInfo[i][Besitzer]) > 2 && CarInfo[i][modelID] > 0)
    {
    printf("Füge Fahrzeug hinzu.");
    printf("%s (ID: %d)", PlayerVehicle[CarInfo[i][modelID]-400], id);
    format(string, sizeof(string), "%s%s (ID: %d)\n", string, PlayerVehicle[CarInfo[i][modelID]-400], id);
    id++;
    }
    printf("Fertig. id: %d", id);


    Was steht dann im Server Log, wenn du die Liste anzeigen lassen willst?

    Poste bitte deinen gesamten Code, so wie das aussieht, hast du das an einer falschen Stelle eingefügt, oder hast einen Klammerfehler.
    Alternativ, füge diese beiden Funktionen samt forward ganz unten im Code ein.

    Geht es so?
    ocmd:plist(playerid)
    {
    new pflanzenname[60], string[54], frak, dialog[100];
    for(new drugid=1;drugid<MAX_DRUGS;drugid++)
    {
    format(string,sizeof(string),"/Drogenpflanzen/%i.ini",drugid);
    if(dini_Exists(string))
    {
    frak = dini_Int(string, "Fraktionsnummer"); //Gegebenenfalls auch hier: DrugSys[drugid][DrogenFraktion]
    if(frak == PlayerDaten[playerid][pFraktion])
    {
    switch(DrugSys[drugid][DrogenID])
    {
    case 1:{pflanzenname="HANFPFLANZE";}
    case 2:{pflanzenname="-";}
    case 3:{pflanzenname="-";}
    }
    format(dialog, sizeof(dialog), "[%s] | Drogenmenge: %dg | Wasserstand: %d%", pflanzenname, DrugSys[drugid][DrogenMenge], DrugSys[drugid][DrogenWasserstand]);
    SendClientMessage(playerid, ORANGE, dialog);
    }
    }
    }
    if(!strlen(dialog)) SendClientMessage(playerid, 0xFF0000FF, "Die Fraktion hat keine Drogenpflanzen gepflanzt!");
    return 1;
    }

    Wenn nicht, dann stimmt vielleicht was mit der Fraktionsnummer nicht.

    Das kannst du so machen:
    ocmd:plist(playerid)
    {
    new string[54], frak, dialog[512];
    for(new drugid=1;drugid<MAX_DRUGS;drugid++)
    {
    format(string,sizeof(string),"/Drogenpflanzen/%i.ini",drugid);
    if(dini_Exists(string))
    {
    frak = dini_Int(string, "FraktionsID");
    if(frak == SpielerInfo[playerid][FrakID])
    {
    format(dialog, sizeof(dialog), "%sPflanze %d\n", dialog, drugid);
    }
    }
    }
    if(strlen(dialog)) ShowPlayerDialog(playerid, DIALOG_PFLANZEN, DIALOG_STYLE_LIST, "Pflanzen", dialog, "Ok", "Abbrechen");
    else SendClientMessage(playerid, 0xFF0000FF, "Error: Keine Pflanzen in der Fraktion.");
    return 1;
    }
    Dann hättest du eine Liste mit allen Pflanzen der Fraktion des Spielers. Die Bezeichnungen der Variablen etc musst du natürlich anpassen.

    Bei Where ID = %d haben die Apostrophe gefehlt.


    Sie braucht man bei Integers nicht zwangsläufig ;)


    Zum Problem:
    Bist du dir sicher, dass du eine Verbindung mit der Datenbank hast? Wird das Geld zum Beispiel gespeichert?


    Und aktualisierst du die Ansicht der Tabelle, nachdem der Spieler gespeichert wird?

    Möglicherweise ist da der Lag schuld.
    Versuche es so:
    COMMAND:setskin(playerid, params[])
    {
    new cID, sID, String[128], TargetName[MAX_PLAYER_NAME];
    if(!IsAdmin(playerid,2)) return SendClientMessage(playerid, COLOR_RED, "Du besitzt nicht die benötigten Rechte!");
    if(sscanf(params, "ui", cID, sID)) return SendClientMessage(playerid, COLOR_YELLOW, "Verwendung: /setskin [Spieler-ID] [Skin-ID]");
    GetPlayerName(cID, TargetName, sizeof(TargetName));
    if(cID == INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_RED, "Der Spieler ist nicht Online!");
    SetPlayerSkin(cID, sID);
    SpielerInfo[cID][pSkin] = sID;
    format(String, sizeof(String), "%s %s (ID: %d) hat deinen Skin zu %i gesetzt.", AdminRanks(playerid), GetName(playerid), playerid, sID);
    SendClientMessage(cID, COLOR_YELLOW, String);
    format(String, sizeof(String), "Du hast %s (ID: %d) seinen Skin zur ID: %i geändert.", TargetName, cID, sID);
    SendClientMessage(playerid, COLOR_YELLOW, String);
    OnAccountSave(cID);
    return 1;
    }


    forward OnAccountSave(playerid);
    public OnAccountSave(playerid)
    {
    new Query[380];
    mysql_format(Handle, Query, sizeof(Query), "UPDATE `spieler` SET `IP`='%s', `Admin`='%d', `VIP`='%d', `Kills`='%d', `Deaths`='%d', `Level`='%d', `Money`='%d', `Tutorial`='%d', `Skin`='%i' WHERE `ID`=%d",\
    IP[playerid], SpielerInfo[playerid][pAdmin], SpielerInfo[playerid][pVIP], SpielerInfo[playerid][pKills], SpielerInfo[playerid][pDeaths], GetPlayerScore(playerid), SpielerInfo[playerid][pMoney],
    SpielerInfo[playerid][pTutorialFinished], SpielerInfo[playerid][pSkin], SpielerInfo[playerid][pID]);
    mysql_tquery(Handle, Query, "", "");
    return 1;
    }