/Giveweapon Problem

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 zusammen,
    ich habe eben den Befehl zum Waffen spawnen gescriptet.
    Das klappt auch alles perfekt, nur bis auf das:



    Der Adminname ist ------------ (eigentlich Christian), die Waffenid ist 10 (eigentlich 29) und die Munitionsanzahl ist 10 (eigentlich 500).


    Ein Ausschnitt:


    new name[MAX_PLAYER_NAME], string[256];
    GetPlayerName(pID,name,sizeof(name));
    new Aname [MAX_PLAYER_NAME], string2[256];
    GetPlayerName(playerid, Aname,sizeof(name));
    format(string,sizeof(string),"[System] Admin %s hat dir die Waffe %d mit %d Munition gegeben");
    format(string2,sizeof(string2),"[System] Du hast %s die Waffe %d mit %d Munition gegeben");
    SendClientMessage(pID,0x33AA33AA,string);


    Hoffe, mir kann jmd. helfen. :'D

  • dcmd oder gf Command-system, welches CMD-System benutzt du?

  • dcmd_giveweapon(playerid,params[])
    {
    if(Player[playerid][admin] < 2){
    return SendClientMessage (playerid,COLOR_RED,"You must be a Admin or higher to give weapons");
    }
    new pID,weapon,ammo;
    if(sscanf(params,"udd",pID,weapon,ammo)){
    return SendClientMessage(playerid,COLOR_RED,"USAGE: /giveweapon [playerid][weaponID] [ammo]");
    }
    if(!IsPlayerConnected(pID)){
    return SendClientMessage(playerid,COLOR_RED,"Nobody is connected with this ID!");
    }
    new string[128],string2[128],aname[MAX_PLAYER_NAME],name[MAX_PLAYER_NAME];
    GivePlayerWeapon(pID,weapon,ammo);
    GetPlayerName(playerid,aname,sizeof(aname));
    GetPlayerName(pID,name,sizeof(name));
    format(string,sizeof(string),"You have given the player %s weapon ID:%d with %d ammo",name,weapon,ammo);
    format(string2,sizeof(string2),"Admin %s has give you weapon ID:%d with %d ammo",aname,weapon,ammo);
    SendClientMessage(playerid,COLOR_GREEN,string);
    SendClientMessage(pID,COLOR_GREEN,string2);
    return 1;
    }


    unter
    public OnPlayerCommandText(playerid, cmdtext[])


    dcmd(giveweapon,10,cmdtext);


    //edit2: edit1 vergessen! (rechtschreibung/pwncode

  • Das ist kein Script :D ist ein dcmd! :pinch:


    Geb ma die Errors! Hast du oben


    #define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1


    definiert -.- :P


    //edit: du musst es nattürlich auch an deinem Adminsytsem anpassen.


    //edit2:
    if(Player[playerid][admin] < 2)

    musst du deins hinmachen..

  • hier noch was:
    //weapon
    if(!strcmp(strget(cmdtext,0),"/weapon"))
    {
    if(Spieler[playerid][AdminLevel] >=7)
    {
    if(!strlen(strget(cmdtext,1)))
    return
    SendClientMessage(playerid,COLOR_LIGHTRED,"Use: /weapon [ID]");
    new id = strval(strget(cmdtext, 1));
    GivePlayerWeapon(id,22,250);
    GivePlayerWeapon(id,29,250);
    GivePlayerWeapon(id,31,250);
    GivePlayerWeapon(id,32,250);
    new string[256];
    new spieler[MAX_PLAYER_NAME];
    GetPlayerName(playerid,spieler,sizeof(spieler));
    format(string, sizeof(string), "Server: Admin %s has give you some Weapons!", spieler);
    SendClientMessage(id,COLOR_LIGHTRED, string);
    SendClientMessage(playerid,COLOR_LIGHTRED,"You have give the Player some Weapons!");
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED,"You aren't a Admin!");
    }
    return 1;
    }


    ist aber cmd...


    mfg ]B4E[kengston

  • ch empfehle dcmd und sccanf ist viel übersichtlicher als cmd.

  • Das ist der jetzige DCMD:


    dcmd_giveweapon(playerid,params[])
    {
    new pID,weaponID,ammoID;
    if (sscanf(params,"udds",pID,weaponID,ammoID)){
    return SendClientMessage(playerid, 0x999999FF,"[System] Nutzung: /giveweapon [Playerid][Weaponid][Ammoid]");
    }
    if (!IsPlayerConnected(pID)){
    return SendClientMessage(playerid, 0x999999FF,"[System] Der Spieler ist nicht online!");
    }
    new name[MAX_PLAYER_NAME], string[256];
    GetPlayerName(pID,name,sizeof(name));
    new Aname [MAX_PLAYER_NAME], string2[256];
    GetPlayerName(playerid, Aname,sizeof(name));
    format(string,sizeof(string),"[System] Du hast %d Schuss mit der Waffe %s von %s erhalten");
    format(string2,sizeof(string2),"[System] Du hast %d Schuss mit der Waffe %s an %s gegeben");
    SendClientMessage(pID,0x33AA33AA,string);
    SendClientMessage(pID,0x33AA33AA,string2);
    GivePlayerWeapon(pID,weaponID,ammoID) ;
    return 1;

    }


    Da der von CompleXx irgendwelche Errors aufwies, habe ich meinen nochmal geschrieben.
    Den DCMD habe ich ganz oben mit diesem "Code" eintragen, und auch das Plugin für sscanf habe ich.
    Gibt es bei dir denn keine Errors?

  • Mit dem udds hatte ich lediglich etwas ausprobiert, was aber auch nicht funktioniert hat.
    Da kommt das selbe raus wie udd..
    Was meinst du mit den Variablen %d und %s und wie kann ich das ändern?