Beiträge von legend

    Moin moin,


    ich hätte da ne kleine Frage.
    Ich möchte gerne mittels SELECT einen Datensatz aus der Datenbank selektieren (Mehrere Reihen).
    Jetzt möchte ich jedes einzelne Feld jeder Zeile in ein Array speichern.


    Mein Code sieht bisher so aus:

    new i = 1;
    while(i <= numRowsGetHouse)
    {
    mysql_fetch_row();
    mysql_fetch_field("stadt", strHouseStadt[i]);
    mysql_fetch_field("houseRef", houseRef[i]);
    i++;
    }



    Danach möchte ich für einen ListenDialog eine String-Variable(255) mit allen Elementen aus strHouseStadt befüllen lassen mit abschließendem \n.


    Kann ich dies mit in der Schleife tun, oder benötige ich nach dem mysql_free_result eine neue Schleife?
    Besser gesagt, stimmen meine Zuweisungen überhaupt; läuft er so alle Zeilen meines Ergebnisses durch?


    Viele Grüße


    Zusatzinfo: Ich benutze das MySQL-Plugin von StrickenKid in der Version 2.1.1


    *push*

    @legion: Definiert ist es so "#define dialogPaketAufgebenS1" (Nach den Includes, aber vor dem main).
    Kaliber: Mache ich, sobald ein weiterer Dialog dazu kommt ^^



    /EDIT: Arr wie peinlich, ich hab den Fehler. Hab ganz einfach die fortlaufende Nummerierung vergessen bei den Dialogen.


    Danke für die Hilfe!

    Guten Abend,


    wieder mal habe ich ein kleines Problem.


    Bei folgendem Code haut der Compiler Fehler:
    public OnPlayerPickUpPickup(playerid, pickupid)
    {
    if (pickupid == pickupPaketAufgeben)
    {
    if(GetPlayerSkin(playerid) != 71) //Der Dialog soll nur erscheinen, wenn der Spieler kein Mitarbeiter von Spand ist | Bzw. nicht im Dienst ist
    {
    new weapon[32], ausgabeWeaponDialog[255];


    GetWeaponName(GetPlayerWeapon(playerid), weapon, sizeof(weapon));


    //Ausgabe für den Dialog zusammensetzen
    strcat(ausgabeWeaponDialog, "Willkommen beim Spand Paketservice. \nDu möchtest folgendes Item versenden: ");
    strcat(ausgabeWeaponDialog, weapon);


    //Dialog anzeigen
    -->FEHLER ShowPlayerDialog(playerid, dialogPaketAufgebenS1, DIALOG_STYLE_MSGBOX, "Spand - Paketlieferservice 1/4", ausgabeWeaponDialog, "Weiter", "Abbrechen");

    } else
    {
    SendClientMessage(playerid, GREEN, "Du bist im Dienst.");
    }
    }
    return 1;
    }


    Folgende Fehler (alle in einer Zeile):
    error 029: invalid expression, assumed zero
    error 001: expected token: ";", but found ")"
    invalid expression, assumed zero


    a_samp habe ich natürlich eingebunden.

    Hallo Leute,


    kann mir jemand verraten, wie ich eine bestimmte Waffe für einen Spieler in einer bestimmten Anzahl entfernen kann?
    Bsp.: /removeplayerweapon <UserName> <WeaponID> <Ammo>


    Für Antworten wäre ich sehr dankbar.


    RemovePlayerWeapon


    stock RemovePlayerWeapon(playerid, weaponid)
    {
    new plyWeapons[12];
    new plyAmmo[12];
    for(new slot=0; slot != 12; slot++)
    {
    new wep, ammo;
    GetPlayerWeaponData(playerid, slot, wep, ammo);

    RemovePlayerWeapon
    if(wep != weaponid)
    {
    GetPlayerWeaponData(playerid, slot, plyWeapons[slot], plyAmmo[slot]);
    }
    }
    ResetPlayerWeapons(playerid);
    for(new slot = 0; slot != 12; slot++)
    {
    GivePlayerWeapon(playerid, plyWeapons[slot], plyAmmo[slot]);
    }
    }

    In Zeile 10 und Zeile 12 hast du jeweils am Schluss eine schließende runde Klammer vergessen.


    ocmd:gm(playerid, params[])
    {
    new giveplayerid, string[128];
    if(GetPVarInt(playerid,"Adminlevel") <1337)return SendClientMessage(playerid,Rot,"Dazu bist Du nicht befugt.");
    {
    if(sscanf(params, "u",giveplayerid)) return SendClientMessage(playerid, Blau,"Benutzung: /GM [ID]");
    if(giveplayerid == INVALID_PLAYER_ID) return SendClientMessage(playerid, Rot,"[Fehler] {FFFFFF}Der Spieler ist nicht Online.");
    else
    {
    format(string, sizeof(string), "[Admin Control] {FF6E00}%s{FFFFFF} hat dich Unverwundbar gemacht!.", SpielerName(giveplayerid));
    SendClientMessage(giveplayerid, Blau, string);
    format(string, sizeof(string),"[Admin Control] {FFFFFF}Du hast {FF6E00}%s {FFFFFF} Unverwundbar gemacht.", SpielerName(giveplayerid));
    SendClientMessage(playerid, Blau, string);
    }
    return 1;
    }

    Du hast mich falsch verstanden, nimm mal folgendes:
    public OnPlayerDeath(playerid, killerid, reason)
    {
    ResetPlayerWeapons(playerid);
    new wantedLevel = GetPlayerWantedLevel(playerid);
    if(wantedLevel)
    {
    new string[128];
    format(string,sizeof(string),"Du bist mit Wanted %i gestorben. Kosten: %i",wantedLevel,wantedLevel*3000);
    SendClientMessage(playerid,ROT,string);
    GivePlayerMoney(playerid,wantedLevel*(-3000));
    ResetPlayerWeapons(playerid);
    return 1;
    }
    return 1;
    }


    //EDIT: Verwende das neue.


    public OnPlayerDeath(playerid, killerid, reason)
    {
    new wantedLevel = GetPlayerWantedLevel(playerid);new money;


    if(wantedLevel)
    {
    new string[128];
    format(string,sizeof(string),"Du bist mit Wanted %i gestorben. Kosten: %i",wantedLevel,wantedLevel*3000); //Du legst hier einen String an, den du mit 2 Variablen befüllst; Diese Variablen schreibst du hinter dem Komma
    SendClientMessage(playerid,ROT,string");
    money = GetPlayerMoney(playerid);
    GivePlayerMoney(playerid,wantedLevel*(-3000));
    ResetPlayerWeapons(playerid);
    return 1;
    }return 1;
    }

    • Das ">= 2" ist hier unnötig. Wenn wantedLevel 0 ist, dann würde da stehen if (0) und dann springt er sowieso nicht in das If. ;)
    • Das else kannst du dir hier sparen, brauchen wir nicht. ;)

    Nabend,



    public OnPlayerDeath(playerid, killerid, reason)
    {
    new wantedLevel = GetPlayerWantedLevel(playerid);


    if(wantedLevel)
    {
    new string[128];
    format(string,sizeof(string),"Du bist mit Wanted %i gestorben. Kosten: %i",wantedLevel,wantedLevel*3000); //Du legst hier einen String an, den du mit 2 Variablen befüllst; Diese Variablen schreibst du hinter dem Komma
    SendClientMessage(playerid,ROT,string");
    money = GetPlayerMoney(playerid);
    GivePlayerMoney(playerid,wantedLevel*(-3000));
    ResetPlayerWeapons(playerid);
    return 1;
    }
    return 1;
    }