Beiträge von maddin

    Du hast 3 angegeben, benutzt aber nur 2 sachen (id un name), zudem musst du weil du einen string benutzt noch die länge angeben. Mit nem enum lässt sich das konfortabler lösen.
    enum WeaponData
    {
    weaponID,
    weaponName[32],
    }
    new aWeaponNames[44][WeaponData] = {
    {331, "Brass Knuckles"},{333, "Golf Club"},{334, "Nite Stick"},{335, "Knife"},{336, "Baseball Bat"},{337, "Shovel"},{338, "Pool Cue"},
    {339, "Katana"},{341, "Chainsaw"},{321, "Purple Dildo"},{322, "Small White Vibrator"},{323, "Large White Vibrator"},{324, "Silver Vibrator"},
    {325, "Flowers"},{326, "Cane"},{342, "Grenade"},{343, "Tear Gas"},{344, "Molotov Cocktail"},{346, "9mm"},{347, "Silenced 9mm"},
    {348, "Desert Eagle"},{349, "Shotgun"},{350, "Sawn-off Shotgun"},{351, "Combat Shotgun"},{352, "Micro SMG"},{353, "MP5"},{355, "AK-47"},
    {356, "M4"},{372, "Tec9"},{357, "Country Rifle"},{358, "Sniper Rifle"},{359, "Rocket Launcher"},{360, "HS Rocket Launcher"},
    {361, "Flamethrower"},{362, "Minigun"},{363, "Satchel Charge"},{364, "Detonator"},{365, "Spraycan"},{366, "Fire Extinguisher"},{367, "Camera"},
    {368, "Nightvision Goggles"},{369, "Thermal Goggles"},{371, "Parachute"}
    };
    Ausserdem würd dein befehl nicht funktionieren da er direkt nach dem ersten schleifendurchlauf schon beendet wird durch das else return. Und du gibst die Waffe immer dem Spieler den den Befehl ausführt (playerid) und nicht dem, der als Spieler angegeben wurde (pid).
    Ich würde es so machen:
    dcmd_waffe(playerid, params[])
    {
    new pid, waffe[32], muni, string[128];
    if(sscanf(params, "us[32]i", pid, waffe, muni)) return SendClientMessage(playerid, COLOR_GRAU, "Verwendung: /waffe [Spieler/ID] [Waffe] [Munition]");
    for(new i = 0; i < 44; i++)
    {
    if(strfind(aWeaponNames[i][weaponName], waffe, true) != -1)
    {
    GivePlayerWeapon(pid, aWeaponNames[i][weaponID], muni);
    format(string,sizeof(string),"Du hast die Waffe %s mit %d Munition bekommen!",aWeaponNames[i][weaponName], muni);
    SendClientMessage(pid, COLOR_GRAU, string);
    return 1;
    }
    }
    format(string,sizeof(string),"Es wurde keine Waffe mit namen '%s' gefunden!",waffe);
    SendClientMessage(playerid, COLOR_GRAU, string);
    return 1;
    }

    Versuchs mal so:
    new aWeaponIDs[] = {
    331,333,334,335,336,337,338,339,341,321,322,323,324,325,326,342,343,344,346,347,348,349,
    350,351,352,353,355,356,372,357,358,359,360,361,362,363,364,365,366,367,368,369,371
    };
    Die größe wird dann automatisch erkannt. Das heisst du kannst weiterhin z.b
    sizeof(aWeaponIDs)
    usw. benutzen.

    VaTeR325
    new aWeaponIDs[44] = //array mit einer dimension erstellen
    {//erste dimension öffnen
    {331},//eine zweite dimension öffnen, wert eintragen (331) und dimension wieder schliessen.
    {333},{334},{335},{336},{337},{338},{339},{341},{321},{322},{323},{324},{325},{326},{342},{343},{344},{346},{347},{348},{349},
    {350},{351},{352},{353},{355},{356},{372},{357},{358},{359},{360},{361},{362},{363},{364},{365},{366},{367},{368},{369},{371}
    };
    Also erstellst du ein array mit nur einer Dimension, arbeitest dann aber mit einer 2.
    Ich hoffe das war verständlich^^
    So wäre es richtig:
    new aWeaponIDs[44] = {
    331,333,334,335,336,337,338,339,341,321,322,323,324,325,326,342,343,344,346,347,348,349,
    350,351,352,353,355,356,372,357,358,359,360,361,362,363,364,365,366,367,368,369,371
    };

    Tommyx3 warum so umständlich?
    if(waffe <= 1 && waffe <= 43 || waffe == 46)


    Zitat

    Ich fahre auf den CP zu, werd rausgeschmissen und das Auto rollt weiter, nach gewisser Zeit respawnt es dann wieder an der angedachten Position.


    Du müsstest schon dazu sagen was daran nicht richtig ist^^


    //E: arr danfai war schneller ^^

    /simsalabim


    Glaubst du wir können gedankenlesen? Wissen wir welches Script du hast?


    Kleiner Tipp: Script öffnen und selber nachschauen. Spart Zeit und Nerven :)

    Probiers mal so:
    carfinder(vname[], &vid, &vfullname[])
    {
    for(new i = 0; i < 211; i++)
    {
    if(strfind(vname, CarList[i], true) != 1)
    {
    vid = i + 400;
    format(vfullname, sizeof(CarList[]), CarList[i + 400]);
    return 1;
    }
    }
    return -1;
    }
    Ansonsten poste die fehler dazu die kommen^^

    Wie gut das ich gerade noch so viel verstand besitze um nicht auf jede X-Beliebeige .exe klicke.
    Hat er das hier im forum verteilt? und wenn ja, wie? Hätte doch den Sourcecode beilegen müssen und das wäre doch dann jemandem aufgefallen.