Hydra, Rhino, Dumper, Hunter, Monster is not allowed!
#1

I tried to wouldn't allow to sit in these transport, but i failed.. My car script:

Код:
#include <a_samp>

#define COLOUR_ORANGE 0xFF9900AA
#define COLOUR_BLUE 0x0099FFAA
new
    CreateCar[MAX_PLAYERS] = {-1,...};

new
    VehicleNames[212][] = {
	"Landstalker","Bravura","Buffalo","Linerunner","Pereniel","Sentinel","","Firetruck","Trashmaster","Stretch","Manana","Infernus",
	"Voodoo","Pony","Mule","Cheetah","Ambulance","Leviathan","Moonbeam","Esperanto","Taxi","Washington","Bobcat","Mr Whoopee","BF Injection",
	"","Premier","Enforcer","Securicar","Banshee","Predator","Bus","","Barracks","Hotknife","Trailer","Previon","Coach","Cabbie",
	"Stallion","Rumpo","RC Bandit","Romero","Packer","","Admiral","Squalo","Seasparrow","Pizzaboy","Tram","Trailer","Turismo","Speeder",
	"Reefer","Tropic","Flatbed","Yankee","Caddy","Solair","Berkley's RC Van","Skimmer","PCJ-600","Faggio","Freeway","RC Baron","RC Raider",
	"Glendale","Oceanic","Sanchez","Sparrow","Patriot","Quad","Coastguard","Dinghy","Hermes","Sabre","Rustler","ZR3 50","Walton","Regina",
	"Comet","BMX","Burrito","Camper","Marquis","Baggage","Dozer","Maverick","News Chopper","Rancher","FBI Rancher","Virgo","Greenwood",
	"Jetmax","Hotring","Sandking","Blista Compact","Police Maverick","Boxville","Benson","Mesa","RC Goblin","Hotring Racer A","Hotring Racer B",
	"Bloodring Banger","Rancher","Super GT","Elegant","Journey","Bike","Mountain Bike","Beagle","Cropdust","Stunt","Tanker","RoadTrain",
	"Nebula","Majestic","Buccaneer","Shamal","","FCR-900","NRG-500","HPV1000","Cement Truck","Tow Truck","Fortune","Cadrona","FBI Truck",
	"Willard","Forklift","Tractor","Combine","Feltzer","Remington","Slamvan","Blade","Freight","Streak","Vortex","Vincent","Bullet","Clover",
	"Sadler","Firetruck","Hustler","Intruder","Primo","Cargobob","Tampa","Sunrise","Merit","Utility","Nevada","Yosemite","Windsor","",
	"","Uranus","Jester","Sultan","Stratum","Elegy","Raindance","RC Tiger","Flash","Tahoma","Savanna","Bandito","Freight","Trailer",
	"Kart","Mower","Duneride","Sweeper","Broadway","Tornado","AT-400","DFT-30","Huntley","Stafford","BF-400","Newsvan","Tug","Trailer A","Emperor",
	"Wayfarer","Euros","Hotdog","Club","Trailer B","Trailer C","","Dodo","RC Cam","Launch","Police Car (LSPD)","Police Car (SFPD)",
	"Police Car (LVPD)","Police Ranger","Picador","S.W.A.T. Van","Alpha","Phoenix","Glendale","Sadler","Luggage Trailer A","Luggage Trailer B",
	"Stair Trailer","Boxville","Farm Plow","Utility Trailer"
};

public OnFilterScriptInit() { return 1; }

public OnPlayerDisconnect(playerid, reason)
{
  if(CreateCar[playerid] != -1)
    {
        DestroyVehicle(CreateCar[playerid]);
        CreateCar[playerid] = -1;
    }
  return 1;
}

public OnPlayerCommandText(playerid, cmdtext[])
{
    new
      cmd[128],
      tmp[32],
      tmp2[256], tmp3[256], tmp4[256],idx;
    cmd = strtok(cmdtext, idx);
    if(strcmp(cmd, "/car", true)==0)
    {
        
            if(IsPlayerInAnyVehicle(playerid)) { return SendClientMessage(playerid, COLOUR_ORANGE, "Tu jau turi masina"); }

            tmp = strtok(cmdtext, idx);
	  		tmp2 = strtok(cmdtext,idx);
	   		tmp3 = strtok(cmdtext,idx);
	   		tmp4 = strtok(cmdtext,idx);
            if(!strlen(tmp) || strlen(tmp) > 32) { return SendClientMessage(playerid, COLOUR_ORANGE, "Naudojimas: /car <pavadinimas> <spalva1> <spalva2> <numeriai>"); }

            new
              car,colour1, colour2;

            if(!IsNumeric(tmp)) { car = GetVehicleModelIDFromName(tmp); } else { car = strval(tmp); }
			if(!strlen(tmp2)) colour1 = random(126); else colour1 = strval(tmp2);
			if(!strlen(tmp3)) colour2 = random(126); else colour2 = strval(tmp3);
            if(car > 611 || car < 400) { return SendClientMessage(playerid, COLOUR_ORANGE, "Neteisingai ivestas masinos ID arba pavadinimas."); }

            if(CreateCar[playerid] != -1) { DestroyVehicle(CreateCar[playerid]); }

            new
                Float:pos[4];
            GetPlayerPos(playerid, pos[0], pos[1], pos[2]);
            GetPlayerFacingAngle(playerid, pos[3]);

            CreateCar[playerid] = CreateVehicle(car, pos[0], pos[1], pos[2], pos[3],colour1,colour2, 50000);
            SetVehicleNumberPlate(CreateCar[playerid], tmp4);
            SetVehicleToRespawn(CreateCar[playerid]);
            PutPlayerInVehicle(playerid, CreateCar[playerid], 0);
			SetVehicleVirtualWorld(CreateCar[playerid], GetPlayerVirtualWorld(playerid));
			
            new
              MaxPlayers = GetMaxPlayers();
            for(new i; i < MaxPlayers; i++)
            {
              if(!IsPlayerConnected(i) || i == playerid) continue;

              SetVehicleParamsForPlayer(CreateCar[playerid], i, 0, true);
            }

            new
              string[144];
            format(string, sizeof string, "Pasigaminai: %s", VehicleNames[car-400]);
            SendClientMessage(playerid, COLOUR_BLUE, string);

            return 1;
    }
    return 0;
}

stock IsNumeric(string[])
{
  for (new i = 0, j = strlen(string); i < j; i++)
  {
    if (string[i] > '9' || string[i] < '0') return false;
  }
  return true;
}

stock GetVehicleModelIDFromName(vname[])
{
    for(new i = 0; i < 210; i++)
    {
        if(strfind(VehicleNames[i], vname, true) != -1 )
            return i + 400;
    }
    return -1;
}

stock strtok(const string[], &index)
{
    new length = strlen(string);
    while ((index < length) && (string[index] <= ' '))
    {
        index++;
    }

    new offset = index;
    new result[32];
    while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
    {
        result[index - offset] = string[index];
        index++;
    }
    result[index - offset] = EOS;
    return result;
}
P.S When they write /car rhino, it doesn't works, but if they write vehicle ID, car spawns.
Reply
#2

Add them to the list of vehicle names. Make sure that it is in the correct order, the name should follow up to the next in line of the vehicle IDs. And if I may ask, why are you still using strcmp and strtok while ZCMD and sscanf are more efficient and easier to use?
Reply
#3

I don't use strcmp, its only filterscript, in gamemode i use zcmd.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)