Beiträge von Sniperwolfes

    heyho,
    bei meinem befehl klappt nun wieder etwas nicht. ich kann mir zwar eine waffe mit der anzahl munition holen, und die mats werden auch korrekt abgenommen etc, aber ich kann mir immer nur eine ak47 holen, keine deagle oder so

    Spoiler anzeigen
    if(!strcmp(strget(cmdtext,0),"/nehmwaffe"))
    {
    if(PlayerInfo[playerid][Terror] == 1)
    {
    if(IsPlayerInRangeOfPoint(playerid, 5.0, -728.1709,1545.3650,39.0132))
    {
    new ammo = strval(strget(cmdtext,2));
    new gun = strval(strget(cmdtext,1));
    new ammocharge;
    new gunid[16];
    if(strcmp(gunid, "ak47", true, strlen(gunid)) == 0)
    {
    gun = 30 ; ammocharge = 5*ammo ;
    }
    else if(strcmp(gunid, "schaufel", true, strlen(gunid)) == 0)
    {
    gun = 6 ; ammocharge = 30 ;
    }
    else if(strcmp(gunid, "deagle", true, strlen(gunid)) == 0)
    {
    gun = 24 ; ammocharge = 2*ammo ;
    }
    else if(strcmp(gunid, "shotgun", true, strlen(gunid)) == 0)
    {
    gun = 25 ; ammocharge = 3*ammo ;
    }
    else if(strcmp(gunid, "mp5", true, strlen(gunid)) == 0)
    {
    gun = 29 ; ammocharge = 3*ammo ;
    }
    else if(strcmp(gunid, "rifle", true, strlen(gunid)) == 0)
    {
    gun = 33 ; ammocharge = 7*ammo ;
    }
    else if(strcmp(gunid, "raketenwerfer", true, strlen(gunid)) == 0)
    {
    gun = 24 ; ammocharge = 150*ammo ;
    }
    {
    if(PlayerInfo[playerid][Mats] < ammocharge) return SendClientMessage(playerid, 0xFFFFFF, "Nicht genug Mats!");
    {
    PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0);
    GivePlayerWeapon(playerid, gun, ammo);
    PlayerInfo[playerid][Mats] -= ammocharge;
    }
    }
    }
    }
    return 1;
    }


    hoffe mir kann einer helfen

    also ich habs so gemacht bei mir:



    enum pInfo
    {
    Lol,
    };


    new lol[2];
    lol[0] = AddStaticVehicle(XXXXXXXX);


    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    new newcar = GetPlayerVehicleID(playerid);
    if(newstate == PLAYER_STATE_DRIVER)
    {
    if(LolCar(newcar))
    {
    if(PlayerInfo[playerid][Lol] == 1) { }
    else { RemovePlayerFromVehicle(playerid); SendClientMessage(playerid, 0xFFFFFF, "Du bist nicht lol"); }
    }}
    return 1;
    }


    public LolCar(carid)
    {
    if(carid == lol[0]) { return 1; }
    return 1;
    }

    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;
    }

    Also ich hab mich mal an nem bombenscript versucht... klappt auch alles soweit ganz gut nur ein problem gibt es: wenn ich den befehl eingebe, kommen so ca 100 bomben auf einmal...
    hier mal screen:





    code:

    Spoiler anzeigen
    if (strcmp("/plant", cmdtext, true, 10) == 0)
    {
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(PlayerInfo[playerid][Terror] == 1)
    {
    new string[128];
    GetPlayerPos(playerid, PlayerExplosionX[1], PlayerExplosionY[1], PlayerExplosionZ[1]);
    ApplyAnimation(playerid, "BOMBER", "BOM_Plant", 1.0, 0, 0, 0, 0, 0);
    bombe = CreateObject(1252, PlayerExplosionX[1], PlayerExplosionY[1], PlayerExplosionZ[1], 0.0, 0.0, 0.0);
    new planter[MAX_PLAYER_NAME];
    GetPlayerName(playerid, planter, sizeof(planter));
    SendClientMessage(playerid, 0xFFFFFF, "Die Bombe wurde erfolgreich gelegt!");
    SendClientMessage(playerid, 0xFFFFFF, "Sie wird in 2 Minuten explodieren!");
    SetTimer("Bombe",120000,0);
    if(PlayerInfo[i][Non] == 1)
    {
    format(string, sizeof(string), "%s hat eine Bombe gelegt! Achtung!, planter");
    SendClientMessage(i, 0xFFFFFF, string);
    }
    }
    }
    }
    return 1;
    }

    enum pInfo
    {
    kills
    };


    new PlayerInfo[MAX_PLAYERS][pInfo];
    forward KnastZeit();


    public OnPlayerDeath(playerid, killerid, reason)
    {
    PlayerInfo[killerid][kills] +=1;
    if(PlayerInfo[killerid][kills] == 5)
    {
    SetPlayerPos(killerid, 268.6998,86.0079,1001.0391);
    SetTimer("KnastZeit", 60000, 0);
    }
    return 1;
    }


    public KnastZeit()
    {
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    SetPlayerPos(i, 0,0,0); //da wo er nachher landen soll
    }
    return 1;
    }

    if(strcmp(cmd, "/waffen", true) == 0)
    {
    new weapons[13][2];
    new msg[256];
    for (new i = 0; i < 13; i++)
    {
    GetPlayerWeaponData(playerid, i, weapons[i][0], weapons[i][1]);
    //zur Kontrolle ob es richtig ausgelesen hat
    if(weapons[i][0] != 0 && weapons[i][1] != 0)
    {
    new waffenname[32];
    GetWeaponName(weapons[i][0],waffenname,sizeof(waffenname));
    format(msg,sizeof(msg),"Du hast eine %s mit %d Schuss", waffenname, weapons[i][1]);
    SendClientMessage(playerid, YELLOW, msg);
    JobInfo[i][Waffe] = weapons;
    JobUpdate(i);
    }
    }
    return 1;
    }


    versuch mal das

    if(!strcmp(strget(cmdtext,0),"/killtarget"))
    {
    if(PlayerInfo[playerid][pAdmin] >= 3)
    {
    if(!strlen(strget(cmdtext,1)))
    {
    SendClientMessage(playerid,COLOR_YELLOW,"Benutze: /killtarget [ID] "); return 1;
    }
    new id = strval(strget(cmdtext,1));
    if(id > 200 || id < 0)
    {
    SendClientMessage(playerid,0xFF6347AA,"Falsche ID!");
    return 1;
    }
    SetPlayerHealth(id, 0);
    }
    else
    {
    SendClientMessage(playerid, COLOR_LIGHTRED, "Du bist kein Admin!");
    }
    return 1;
    }