Waffen speichern

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Hi,


    habe ein Problem mit dem speichern von Waffen. Sobald man mit /job in Dienst geht startet der Timer Weapons(playerid) und sollte die Waffen in strings speichern ...


    public Weapons(playerid)
    {
    GetPlayerWeaponData(playerid, 0, JobInfo[playerid][Weapon1], JobInfo[playerid][Ammo1]);
    GetPlayerWeaponData(playerid, 1, JobInfo[playerid][Weapon2], JobInfo[playerid][Ammo2]);
    GetPlayerWeaponData(playerid, 2, JobInfo[playerid][Weapon3], JobInfo[playerid][Ammo3]);
    GetPlayerWeaponData(playerid, 3, JobInfo[playerid][Weapon4], JobInfo[playerid][Ammo4]);
    GetPlayerWeaponData(playerid, 4, JobInfo[playerid][Weapon5], JobInfo[playerid][Ammo5]);
    GetPlayerWeaponData(playerid, 5, JobInfo[playerid][Weapon6], JobInfo[playerid][Ammo6]);
    GetPlayerWeaponData(playerid, 6, JobInfo[playerid][Weapon7], JobInfo[playerid][Ammo7]);
    GetPlayerWeaponData(playerid, 7, JobInfo[playerid][Weapon8], JobInfo[playerid][Ammo8]);
    GetPlayerWeaponData(playerid, 8, JobInfo[playerid][Weapon9], JobInfo[playerid][Ammo9]);
    GetPlayerWeaponData(playerid, 9, JobInfo[playerid][Weapon10], JobInfo[playerid][Ammo10]);
    JobUpdate(playerid);
    return 1;
    }


    Ich habe mir auch mal per SendClientMessage die Strings auslesen lassen, alle zeigen 0 an obwohl ich die 9 mm Pistole hatte .. :thumbdown:
    hat jmd ne Idee?


    Gruß samu

  • so kann man viel schneller waffendaten auslesen:


    new weapons[13][2];
    new msg[256];
    for (new i = 0; i < 13; i++)
    {
    GetPlayerWeaponData(playerid, i, weapons[i][0], weapons[i][1]);
    //zur Kontrolle ob es richtig ausgelesen hat
    if(weapons[i][0] != 0 && weapons[i][1] != 0)
    {
    new waffenname[32];
    GetWeaponName(weapons[i][0],waffenname,sizeof(waffenname));
    format(msg,sizeof(msg),"Du hast eine %s mit %d Schuss",waffenname,weapons[i][1]);
    SendClientMessage(playerid,COLOR_iwas,msg); //i-eine Farbe, weiß grad keinen Farbcode auswendig :P
    }
    }

  • habe jetzt mal zum Test das in den Cmd "/waffen" eingebaut:


    if(strcmp(cmd, "/waffen", true) == 0)
    {
    new weapons[13][2];
    new msg[256];
    for (new i = 0; i < 13; i++)
    {
    GetPlayerWeaponData(playerid, i, weapons[i][0], weapons[i][1]);
    //zur Kontrolle ob es richtig ausgelesen hat
    if(weapons[i][0] != 0 && weapons[i][1] != 0)
    {
    new waffenname[32];
    GetWeaponName(weapons[i][0],waffenname,sizeof(waffenname));
    format(msg,sizeof(msg),"Du hast eine %s mit %d Schuss", waffenname, weapons[i][1]);
    SendClientMessage(playerid, YELLOW, msg);
    JobInfo[playerid][Waffe] = weapons;
    JobUpdate(playerid);
    }
    }
    return 1;
    }


    Nur dann kommt der Error "must be assigned to an array"
    Die Zeile: JobInfo[playerid][Waffe] = weapons;


    :|

  • if(strcmp(cmd, "/waffen", true) == 0)
    {
    new weapons[13][2];
    new msg[256];
    for (new i = 0; i < 13; i++)
    {
    GetPlayerWeaponData(playerid, i, weapons[i][0], weapons[i][1]);
    //zur Kontrolle ob es richtig ausgelesen hat
    if(weapons[i][0] != 0 && weapons[i][1] != 0)
    {
    new waffenname[32];
    GetWeaponName(weapons[i][0],waffenname,sizeof(waffenname));
    format(msg,sizeof(msg),"Du hast eine %s mit %d Schuss", waffenname, weapons[i][1]);
    SendClientMessage(playerid, YELLOW, msg);
    JobInfo[i][Waffe] = weapons;
    JobUpdate(i);
    }
    }
    return 1;
    }


    versuch mal das