Befehl um eine Waffe zu nehmen

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
  • Tachchen,
    ich hatte vor, das man mit einem befehl (zb /nehmwaffe) eine Bestimme Waffe bekommt. Das sollte so ablaufen: man steht an einem punkt, gibt /nehmwaffe ein : dort erscheint SendClientMessage(playerid,0xFFFFFF,"Benutze: /nehmwaffe [Waffenname] ");
    SendClientMessage(playerid,0xFFFFFF,"Verfügbare Namen: ak47 (600) , deagle (250) , raketenwerfer (1300)");
    SendClientMessage(playerid,0xFFFFFF,"mp5 (350), rifle (700)"); return 1;


    dann gibt man zb /nehmwaffe ak47 und bekommt eine ak mit 250 schuss...
    nur leider will das bei mir nicht so ganz funken!
    entweder man bekommt alle waffen (also ak,deagle,raketenwerfer,mp5,rifle) oder garkeine. hier mal mein jetziger code (hatte vorher schonmal einen anderen):

    Spoiler anzeigen
    if(!strcmp(strget(cmdtext,0),"/nehmwaffe"))
    {
    if(PlayerToPoint(5.0, playerid, -728.1709,1545.3650,39.0132))
    {
    new gunz = strval(strget(cmdtext,1));
    new mats = PlayerInfo[playerid][Mats];
    if(!strlen(strget(cmdtext,1)))
    {
    SendClientMessage(playerid,0xFFFFFF,"Benutze: /nehmwaffe [Waffenname] ");
    SendClientMessage(playerid,0xFFFFFF,"Verfügbare Namen: ak47 (600) , deagle (250) , raketenwerfer (1300)");
    SendClientMessage(playerid,0xFFFFFF,"mp5 (350), rifle (700)"); return 1;
    }
    new ak47 = GivePlayerWeapon(playerid, 30, 250), deagle = GivePlayerWeapon(playerid, 24, 100) , raketenwerfer = GivePlayerWeapon(playerid, 35, 5), mp5 = GivePlayerWeapon(playerid, 29, 180), rifle = GivePlayerWeapon(playerid, 33, 50);
    if(gunz == ak47)
    {
    if(mats >= 599) { return SendClientMessage(playerid, 0xFFFFFF, "Du hast nicht genug Mats!"); }
    {
    GivePlayerWeapon(playerid , ak47, 0);
    SendClientMessage(playerid, 0xFFFFFF, "Du hast dir eine AK47 mit 250 Schuss geholt!");
    mats -=600;
    }}
    else if(gunz == deagle)
    {
    if(mats >= 249) { return SendClientMessage(playerid, 0xFFFFFF, "Du hast nicht genug Mats!"); }
    {
    GivePlayerWeapon(playerid, deagle, 0);
    SendClientMessage(playerid, 0xFFFFFF, "Du hast dir eine Deagle mit 100 Schuss geholt!");
    mats -=250;
    }}
    else if(gunz == raketenwerfer)
    {
    if(mats >= 1299) { return SendClientMessage(playerid, 0xFFFFFF, "Du hast nicht genug Mats!"); }
    {
    GivePlayerWeapon(playerid, raketenwerfer, 0);
    SendClientMessage(playerid, 0xFFFFFF, "Du hast dir einen Raketenwerfer mit 5 Schuss geholt");
    mats -=1300;
    }}
    else if(gunz == mp5)
    {
    if(mats >= 349) { return SendClientMessage(playerid, 0xFFFFFF, "Du hast nicht genug Mats!"); }
    {
    GivePlayerWeapon(playerid, mp5, 0);
    SendClientMessage(playerid, 0xFFFFFF, "Du hast dir eine MP5 mit 180 Schuss geholt!");
    mats -=350;
    }}
    else if(gunz == rifle)
    {
    if(mats >= 699) { return SendClientMessage(playerid, 0xFFFFFF, "Du hast nicht genug Mats!"); }
    {
    GivePlayerWeapon(playerid, rifle, 0);
    SendClientMessage(playerid, 0xFFFFFF, "Du hast dir eine Rifle mit 50 Schuss geholt!");
    mats -=700;
    }}
    }
    return 1;
    }


  • /*


    Dein Problem war, dass du immer ein if genommen hast. else if gehört hier rein.


    */


    if(!strcmp(strget(cmdtext,0),"/nehmwaffe"))
    {
    if(PlayerToPoint(5.0, playerid, -728.1709,1545.3650,39.0132)) { // wenn du 0.3 hast solltest du kein PlayerToPoint mehr benutzen ;)
    new gunz = strval(strget(cmdtext,1));
    new mats = PlayerInfo[playerid][Mats];


    if(!strlen(strget(cmdtext,1))) {
    SendClientMessage(playerid,0xFFFFFF,"Benutze: /nehmwaffe [Waffenname] ");
    SendClientMessage(playerid,0xFFFFFF,"Verfügbare Namen: ak47 (600) , deagle (250) , raketenwerfer (1300)");
    SendClientMessage(playerid,0xFFFFFF,"mp5 (350), rifle (700)");
    return true;
    }


    new ak47 = GivePlayerWeapon(playerid, 30, 250);
    new deagle = GivePlayerWeapon(playerid, 24, 100); // in dem Fall ist es echt übersichtlicher das so zu schreiben^^
    new raketenwerfer = GivePlayerWeapon(playerid, 35, 5);
    new mp5 = GivePlayerWeapon(playerid, 29, 180);
    new rifle = GivePlayerWeapon(playerid, 33, 50);


    if(gunz == ak47 && mats >= 600) {
    GivePlayerWeapon(playerid , ak47);
    SendClientMessage(playerid, 0xFFFFFF, "Du hast dir eine AK47 mit 250 Schuss geholt!");
    mats -=600;
    }
    else if(gunz == deagle && mats >= 250) { // aus 2 if Abfragen eine gemacht
    GivePlayerWeapon(playerid, deagle);
    SendClientMessage(playerid, 0xFFFFFF, "Du hast dir eine Deagle mit 100 Schuss geholt!");
    mats -=250;
    }
    else if(gunz == raketenwerfer && mats >= 1300) {
    GivePlayerWeapon(playerid, raketenwerfer);
    SendClientMessage(playerid, 0xFFFFFF, "Du hast dir einen Raketenwerfer mit 5 Schuss geholt");
    mats -=1300;
    }
    else if(gunz == mp5 && mats >= 350) {
    GivePlayerWeapon(playerid, mp5);
    SendClientMessage(playerid, 0xFFFFFF, "Du hast dir eine MP5 mit 180 Schuss geholt!");
    mats -=350;
    }
    else if(gunz == rifle && mats >= 700) {
    GivePlayerWeapon(playerid, rifle);
    SendClientMessage(playerid, 0xFFFFFF, "Du hast dir eine Rifle mit 50 Schuss geholt!");
    mats -=700;
    }
    }
    return true;
    }