[Hilfe]Waffemachen

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
  • also ich tüftle schon so ne stunde an dem commando aber finde den fehler nicht


    dcmd_waffemachen(playerid,params[])
    {
    if(gTeam[playerid] == 14)
    {
    new zname[512];
    new name[512];
    new save[128];
    GetPlayerName(playerid, name, sizeof(name));
    format(save,sizeof(save),"/Acc/%s.ini",name);
    new waffe[128];
    new ziel, ammu, geld, zgeld;
    new string[512],string1[512];
    new Float:pmats, Float:ammumatssum, Float:x, Float:y, Float:z;
    pmats = dini_Float(save, "Mats");
    if(sscanf(params, "us[512]dd", ziel, waffe, ammu, geld))
    {
    SendClientMessage(playerid,COLOR_YELLOW,"Benutzung: /waffemachen [playerid] [Waffe] [Munition] [Geld]");
    SendClientMessage(playerid,COLOR_YELLOW,"Waffen: M4(2Mats je Schuss), AK47");
    return 1;
    }
    zgeld = GetPlayerMoney(ziel);
    GetPlayerPos(ziel, x,y,z);
    GetPlayerName(ziel, zname, sizeof(zname));
    if(strcmp(waffe,"M4",true) == 0)
    {
    ammumatssum = floatmul(ammu, 2);
    if(pmats >= ammumatssum)
    {
    if(zgeld >= geld)
    {
    if(IsPlayerInRangeOfPoint(playerid, 5, x,y,z))
    {
    WaffenOffer[ziel] = playerid;
    DealMoney[ziel] = geld;
    DealWaffe[ziel] = 1;
    DealWaffeAmmu[ziel] = ammu;
    format(string, sizeof(string), "Du hast %s, eine M4 mit %i Munition, für %i$ gebobten!", zname, ammu, geld);
    SendClientMessage(playerid, COLOR_WHITE, string);
    format(string1, sizeof(string1), "%s hat dir ,eine M4 mit %i Munition, für %i$ gebobten!", name, ammu, geld);
    SendClientMessage(ziel, COLOR_WHITE, string1);
    SendClientMessage(ziel, COLOR_WHITE, "Nutze /annehmen deal");
    }
    }
    }
    }
    if(strcmp(waffe,"AK47",true) == 0)
    {
    ammumatssum = floatmul(ammu, 2);
    if(pmats >= ammumatssum)
    {
    if(zgeld >= geld)
    {
    if(IsPlayerInRangeOfPoint(playerid, 5, x,y,z))
    {
    WaffenOffer[ziel] = playerid;
    DealMoney[ziel] = geld;
    DealWaffe[ziel] = 2;
    DealWaffeAmmu[ziel] = ammu;
    }
    }
    }
    }
    }
    return 1;
    }


    also wenn das kommando im scrip drinne ist gehen keine kommndos mehr aber das script zeigt keinen error an


    kann da mal wer helfen

  • Hatte mal das gleiche Problem. Bei mir war damals ne Klammer zuviel.
    Vllt so:



    if(strcmp(waffe,"AK47",true) == 0)
    {
    ammumatssum = floatmul(ammu, 2);
    if(pmats >= ammumatssum)
    {
    if(zgeld >= geld)
    {
    if(IsPlayerInRangeOfPoint(playerid, 5, x,y,z))
    {
    WaffenOffer[ziel] = playerid; DealMoney[ziel] = geld; DealWaffe[ziel] = 2; DealWaffeAmmu[ziel] = ammu;
    }
    }
    }
    }
    return 1;
    }


    Also hab jetzt die letzte Klammer entfernt.

  • ne die letzte klammer schließt das gTeam[playerid]==14


    es muss was mit
    if(sscanf(params, "us[512]dd", ziel, waffe, ammu, geld))
    {
    SendClientMessage(playerid,COLOR_YELLOW,"Benutzung: /waffemachen [playerid] [Waffe] [Munition] [Geld]");
    SendClientMessage(playerid,COLOR_YELLOW,"Waffen: M4(2Mats je Schuss), AK47");
    return 1;
    }
    sein, weil es kommt ja nicht einmal zur ersten abfrage

  • Ich hab zwar ganz ehrlich keine ahnung da ich selber Scriptanfänger bin aber probier doch mal
    if(sscanf(params, "us[512]dd", ziel, waffe, ammu, geld))
    ->
    if(sscanf(params, "us[512]ii", ziel, waffe, ammu, geld))
    und warum definierst du das waffe nicht oben schon?
    warum nimmst du so große bytes? 512 ist doch total unnötig.