[SAMMELTHREAD] Kleine Scripting Fragen

Dein Problem konnte durch einen User gelöst werden? Bedank dich bei ihm indem du seinen Beitrag als Hilfreich markierst sowie einen Daumen oben dalässt
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
  • Hallo, ich habe da ein kleinen schönen Befehl erstellt, nur komme ich bei einer Stelle nicht weiter.


    Mein Befehl sieht so aus:



    ocmd:sgun(playerid,params[])
    {
    new str[256];
    if(Secretgun[playerid] == 1)
    {
    format(str, sizeof(str), "Secretgun {FF0000}deaktiviert{FFFFFF}.");
    Secretgun[playerid] = 0;
    ResetPlayerWeapons(playerid);
    SendClientMessage(playerid, 0xFFFFFFFF, str);
    }
    else
    {
    format(str, sizeof(str), "Secretgun {00FF00}aktiviert{FFFFFF}.");
    Secretgun[playerid] = 1;
    GivePlayerWeapon(playerid, 23, 10);
    SendClientMessage(playerid, 0xFFFFFFFF, str);
    }
    return 1;
    }



    Der Befehl funktioniert wie gewollt, doch anstatt das ich alle Waffen lösche nachdem ich den Befehl wieder eingebe, möchte ich das die AKTUELLE Waffe die ich in der Hand halte gelöscht wird.
    Ich habe es auch mit GetPlayerWeapon versucht doch komme nicht weiter..



    Dennoch habe ich noch eine andere Frage, insgesamt also:


    1. Wie lösche ich die aktuelle Waffe?
    2. Wie lösche ich die im Script bestimmte Waffen ID? Heißt ich habe in der Hand eine Deagle, eine Sniper und eine Shotgun. Ich habe die Shotgun in der Hand doch wenn ich den Befehl wieder eingebe soll sich die Deagle löschen. Ist das möglich?


    Mit freundlichen Grüßen
    JustMe.77 8)

  • Wieso wird die Zahl nicht ausgelesen?
    format(string,sizeof(string),""COLOR_HEX_BLUE"Waffenkammer FBI\n"COLOR_HEX_WHITE"%d/20000",Others[FBIMaterialien]);
    Create3DTextLabel(string,COLOR_WHITE,-1594.2123,716.2598,-4.9063,20.0,0,1);

  • Findet jemand den Fehler..?

    Code
    [18:51:04] [DEBUG] mysql_tquery - scheduling query "UPDATE `script_others` SET `Steuerklasse1`='21', `Steuerklasse2`='22', `Steuerklasse3`='23', `Steuerklasse4`='24', `Staatskasse`='250000',`LCNKasse`='250000', `GroveKasse`='250000', `YakuzaKasse`='250000', `HitmanKasse`='250000', `VagosKasse`='250000,`SAPDMaterialien`='20000', `LCNMaterialien`='10000', `GroveMaterialien`='10000', `FBIMaterialien`='20000', `YakuzaMaterialien`='9250' , `HitmanMaterialien`='10000' , `VagosMaterialien`='10000',`DeagleLCN`='700', `ShotgunLCN`='950', `MP5LCN`='800', `AK47LCN`='10"..
    [18:51:04] [DEBUG] CMySQLQuery::Execute[()] - starting query execution
    [18:51:04] [ERROR] CMySQLQuery::Execute[()] - (error #1064) You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '20000', `LCNMaterialien`='10000', `GroveMaterialien`='10000', `FBIMaterialien`='' at line 1


    format(secondQuery, sizeof(secondQuery), "UPDATE `script_others` SET `Steuerklasse1`='%d', `Steuerklasse2`='%d', `Steuerklasse3`='%d', `Steuerklasse4`='%d', `Staatskasse`='%d',",
    Others[Steuerklasse1], Others[Steuerklasse2], Others[Steuerklasse3], Others[Steuerklasse4], Others[Staatskasse]);
    strcat(mainQuery, secondQuery);
    format(secondQuery, sizeof(secondQuery), "`LCNKasse`='%d', `GroveKasse`='%d', `YakuzaKasse`='%d', `HitmanKasse`='%d', `VagosKasse`='%d,",
    Others[LCNKasse],Others[GroveKasse],Others[YakuzaKasse],Others[HitmanKasse],Others[VagosKasse]);
    strcat(mainQuery, secondQuery);
    format(secondQuery, sizeof(secondQuery), "`SAPDMaterialien`='%d', `LCNMaterialien`='%d', `GroveMaterialien`='%d', `FBIMaterialien`='%d', `YakuzaMaterialien`='%d' , `HitmanMaterialien`='%d' , `VagosMaterialien`='%d',",
    Others[SAPDMaterialien],Others[LCNMaterialien],Others[GroveMaterialien],Others[FBIMaterialien],Others[YakuzaMaterialien],Others[HitmanMaterialien],Others[VagosMaterialien]);
    strcat(mainQuery, secondQuery);
    format(secondQuery, sizeof(secondQuery), "`DeagleLCN`='%d', `ShotgunLCN`='%d', `MP5LCN`='%d', `AK47LCN`='%d',",
    Others[DeagleLCN],Others[ShotgunLCN],Others[MP5LCN],Others[AK47LCN]);
    strcat(mainQuery, secondQuery);
    format(secondQuery, sizeof(secondQuery), "`DeagleGrove`='%d', `ShotgunGrove`='%d', `MP5Grove`='%d', `AK47Grove`='%d',",
    Others[DeagleGrove],Others[ShotgunGrove],Others[MP5Grove],Others[AK47Grove]);
    strcat(mainQuery, secondQuery);
    format(secondQuery, sizeof(secondQuery), "`DeagleYakuza`='%d', `ShotgunYakuza`='%d', `MP5Yakuza`='%d', `AK47Yakuza`='%d',",
    Others[DeagleYakuza],Others[ShotgunYakuza],Others[MP5Yakuza],Others[AK47Yakuza]);
    strcat(mainQuery, secondQuery);
    format(secondQuery, sizeof(secondQuery), "`DeagleHitman`='%d', `ShotgunHitman`='%d', `SniperHitman`='%d', `AK47Hitman`='%d',",
    Others[DeagleHitman],Others[ShotgunHitman],Others[SniperHitman],Others[AK47Hitman]);
    strcat(mainQuery, secondQuery);
    format(secondQuery, sizeof(secondQuery), "`DeagleVagos`='%d', `ShotgunVagos`='%d', `MP5Vagos`='%d', `AK47Vagos`='%d'",
    Others[DeagleVagos],Others[ShotgunVagos],Others[MP5Vagos],Others[AK47Vagos]);
    mysql_function_query(myCon, mainQuery, false, "", "");


    Jeffry: Doch ist ein Wert vorhanden.

  • Du meinst diese Funktion unten in mein Filterscript richtig?



    stock IsValidWeaponID(weaponid)
    {
    switch(weaponid)
    {
    case 0..18:return 1;
    case 22..46:return 1;
    default:return 0;
    }
    return 0;
    }



    Weil der Error noch bleibt


    Mit freundlichen Grüßen
    JustMe.77 8)

  • @Homez:
    format(secondQuery, sizeof(secondQuery), "`LCNKasse`='%d', `GroveKasse`='%d', `YakuzaKasse`='%d', `HitmanKasse`='%d', `VagosKasse`='%d,",
    zu:
    format(secondQuery, sizeof(secondQuery), "`LCNKasse`='%d', `GroveKasse`='%d', `YakuzaKasse`='%d', `HitmanKasse`='%d', `VagosKasse`='%d',",
    Zwecks dem anderen Problem: Steht da 0 drin?



    @[LnD]JustMe.77:
    Nein, die hier: http://forum.sa-mp.de/gta-mult…eschnipsel-56#post1949049

  • Er gibt mir immer noch einen Error aus.. wo liegt mein Fehler?

    Code
    [19:01:14] [DEBUG] mysql_tquery - scheduling query "UPDATE `script_others` SET `Steuerklasse1`='21', `Steuerklasse2`='22', `Steuerklasse3`='23', `Steuerklasse4`='24', `Staatskasse`='250000',`LCNKasse`='250000', `GroveKasse`='250000', `YakuzaKasse`='250000', `HitmanKasse`='250000', `VagosKasse`='250000',`SAPDMaterialien`='20000', `LCNMaterialien`='10000', `GroveMaterialien`='10000', `FBIMaterialien`='20000', `YakuzaMaterialien`='9250' , `HitmanMaterialien`='10000' , `VagosMaterialien`='10000',`DeagleLCN`='700', `ShotgunLCN`='950', `MP5LCN`='800', `AK47LCN`='1"..
    [19:01:14] [DEBUG] CMySQLQuery::Execute[()] - starting query execution
    [19:01:14] [ERROR] CMySQLQuery::Execute[()] - (error #1064) You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
  • Jeffry:


    Du meinst doch diese Funktion hier oder?


    stock GetWeaponSlot(weaponid) //©Jeffry
    {
    switch(weaponid)
    {
    case 0,1: return 0;
    case 2..9: return 1;
    case 22..24: return 2;
    case 25..27: return 3;
    case 28,29,32: return 4;
    case 30,31: return 5;
    case 33,34: return 6;
    case 35..38: return 7;
    case 16..18,39: return 8;
    case 41..43: return 9;
    case 10..15: return 10;
    case 44..46: return 11;
    case 40: return 12;
    default: return -1;
    }
    return -1;
    }


    Wenn nicht dann weiß ich auch nicht, entweder du gibst mir die falsche Seite oder es liegt daran das ich 20 Beiträge pro Seite habe (ist so eingestellt)


    Mit freundlichen Grüßen
    JustMe.77 8)

  • Hä?? :huh:
    Die hier:
    stock RemovePlayerWeapon(playerid, weaponid, ammo = 0) //©Jeffry
    {
    new w = GetPlayerWeapon(playerid), plyWeapons[13], plyAmmo[13];
    for(new slot = 0; slot <= 12; slot++)
    {
    GetPlayerWeaponData(playerid, slot, plyWeapons[slot], plyAmmo[slot]);
    if(plyWeapons[slot] == weaponid)
    {
    if(ammo == 0 || plyAmmo[slot] <= ammo)
    {
    if(w == plyWeapons[slot]) w = 0;
    plyAmmo[slot] = 0;
    plyWeapons[slot] = 0;
    }
    else
    {
    plyAmmo[slot]-=ammo;
    }
    }
    }
    ResetPlayerWeapons(playerid);
    for(new slot = 0; slot <= 12; slot++)
    {
    GivePlayerWeapon(playerid, plyWeapons[slot], plyAmmo[slot]);
    }
    SetPlayerArmedWeapon(playerid, w);
    return 1;
    }


    @Homez: Achso. Dann ist möglicherweise die Variable zu klein, von dem Query.

  • Jeffry:


    Jetzt funktioniert es. Ich finde deine Funktion im Link nicht da ich hier im Forum eingestellt habe das ich mehrere Beiträge pro Seite habe, weswegen sich dein Post bei mir verschiebt, verstehst ?


    Aber danke, 0 Errors ich teste es mal aus :)


    Mit freundlichen Grüßen
    JustMe.77 8)

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen