Форум Pawn-Wiki.Ru - Воплоти мечту в реальность!: GetVehicleModelIDFromName - Форум Pawn-Wiki.Ru - Воплоти мечту в реальность!

Перейти к содержимому

Страница 1 из 1
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

GetVehicleModelIDFromName Получение ID модели транспорта по её названию Оценка: -----

#1
Пользователь офлайн   DeimoS 

  • Evil Scripter
  • Вставить ник
  • Раскрыть информацию
Описание:
Функция конвертирует название модели автомобиля в её ID.


Возвращаемое значение:
ID модели автомобиля или "INVALID_VEHICLE_ID", в случае, если переданный текст не совпадает с именем.


Код:
stock GetVehicleModelFromName(const model_name[])
{
    if ('0' <= model_name[0] <= '9')
    {
        new model;
    #if !defined sscanf
        for(new i = strlen(model_name)-1; i != -1; i--)
        {
            switch(model_name[i])
            {
                case '0'..'9':
                {
                    continue;
                }
                default:
                {
                    model = -1;
                    break;
                }
            }
        }
        if(model != -1)
        {
            model = strval(model_name);
        }
    #else
        sscanf(model_name, "i", model);
    #endif
        if(400 <= model <= 611)
        {
            return model;
        }
    }
 
    static const sVehicleModelName[212][] =
    {
        {!"Landstalker"}, {!"Bravura"}, {!"Buffalo"}, {!"Linerunner"}, {!"Perennial"},
        {!"Sentinel"}, {!"Dumper"}, {!"Fire Truck"}, {!"Trashmaster"}, {!"Stretch"},
        {!"Manana"}, {!"Infernus"}, {!"Voodoo"}, {!"Pony"}, {!"Mule"}, {!"Cheetah"},
        {!"Ambulance"}, {!"Leviathan"}, {!"Moonbeam"}, {!"Esperanto"}, {!"Taxi"},
        {!"Washington"}, {!"Bobcat"}, {!"Mr.Whoopee"}, {!"BF Injection"}, {!"Hunter"},
        {!"Premier"}, {!"Enforcer"}, {!"Securicar"}, {!"Banshee"}, {!"Predator"}, {!"Bus"},
        {!"Rhino"}, {!"Barracks"}, {!"Hotknife"}, {!"Article Trailer 1"}, {!"Previon"},
        {!"Coach"}, {!"Cabbie"}, {!"Stallion"}, {!"Rumpo"}, {!"RC Bandit"}, {!"Romero"},
        {!"Packer"}, {!"Monster"}, {!"Admiral"}, {!"Squalo"}, {!"Seasparrow"}, {!"Pizzaboy"},
        {!"Tram"}, {!"Article Trailer 2"}, {!"Turismo"}, {!"Speeder"}, {!"Reefer"},
        {!"Tropic"}, {!"Flatbed"}, {!"Yankee"}, {!"Caddy"}, {!"Solair"}, {!"Berkleys RC Van"},
        {!"Skimmer"}, {!"PCJ-600"}, {!"Faggio"}, {!"Freeway"}, {!"RC Baron"}, {!"RC Raider"},
        {!"Glendale"}, {!"Oceanic"}, {!"Sanchez"}, {!"Sparrow"}, {!"Patriot"}, {!"Quadbike"},
        {!"Coastguard"}, {!"Dinghy"}, {!"Hermes"}, {!"Sabre"}, {!"Rustler"}, {!"ZR-350"},
        {!"Walton"}, {!"Regina"}, {!"Comet"}, {!"BMX"}, {!"Burrito"}, {!"Camper"},
        {!"Marquis"}, {!"Baggage"}, {!"Dozer"}, {!"Maverick"}, {!"News Chopper"},
        {!"Rancher"}, {!"FBI Rancher"}, {!"Virgo"}, {!"Greenwood"}, {!"Jetmax"},
        {!"Hotring Racer"}, {!"Sandking"}, {!"Blista Compact"}, {!"Police Maverick"},
        {!"Boxville"}, {!"Benson"}, {!"Mesa"}, {!"RC Goblin"}, {!"Hotring Racer (A)"},
        {!"Hotring Racer (B)"}, {!"Bloodring Banger"}, {!"Rancher 2"},
        {!"Super GT"}, {!"Elegant"}, {!"Journey"}, {!"Bike"}, {!"Mountain Bike"},
        {!"Beagle"}, {!"Cropduster"}, {!"Stuntplane"}, {!"Tanker"}, {!"Roadtrain"},
        {!"Nebula"}, {!"Majestic"}, {!"Buccaneer"}, {!"Shamal"}, {!"Hydra"}, {!"FCR-900"},
        {!"NRG-500"}, {!"HPV1000"}, {!"Cement Truck"}, {!"Towtruck"}, {!"Fortune"}, {!"Cardona"},
        {!"FBI Truck"}, {!"Willard"}, {!"Forklift"}, {!"Tractor"}, {!"Combine Harvester"},
        {!"Feltzer"}, {!"Remington"}, {!"Slamvan"}, {!"Blade"}, {!"Freight"}, {!"Brown Streak"},
        {!"Vortex"}, {!"Vincent"}, {!"Bullet"}, {!"Clover"}, {!"Sadler"}, {!"Fire Truck 2"},
        {!"Hustler"}, {!"Intruder"}, {!"Primo"}, {!"Cargobob"}, {!"Tampa"}, {!"Sunrise"},
        {!"Merit"}, {!"Utility Van"}, {!"Nevada"}, {!"Yosemite"}, {!"Windsor"}, {!"Monster (A)"},
        {!"Monster (B)"}, {!"Uranus"}, {!"Jester"}, {!"Sultan"}, {!"Stratum"}, {!"Elegy"},
        {!"Raindance"}, {!"RC Tiger"}, {!"Flash"}, {!"Tahoma"}, {!"Savanna"}, {!"Bandito"},
        {!"Freight"}, {!"Brown Streak"}, {!"Kart"}, {!"Mower"}, {!"Dune"}, {!"Sweeper"},
        {!"Broadway"}, {!"Tornado"}, {!"AT-400"}, {!"DFT-30"}, {!"Huntley"}, {!"Stafford"},
        {!"BF-400"}, {!"Newsvan"}, {!"Tug"}, {!"Petrol Truck"}, {!"Emperor"}, {!"Wayfarer"},
        {!"Euros"}, {!"Hotdog"}, {!"Club"}, {!"Freight Box"}, {!"Article Trailer 3"}, {!"Andromada"},
        {!"Dodo"}, {!"RC Cam"}, {!"Launch"}, {!"Police (LSPD)"}, {!"Police (SFPD)"}, {!"Police (LVPD)"},
        {!"Ranger"}, {!"Picador"}, {!"S.W.A.T."}, {!"Alpha"}, {!"Phoenix"}, {!"Glendale 2"},
        {!"Sadler 2"}, {!"Baggage Box A"}, {!"Baggage Box B"}, {!"Stairs Trailer"}, {!"Boxville 2"},
        {!"Farm Trailer"}, {!"Utility Trailer"}
    };
    for(new i = 0; i < sizeof(sVehicleModelName); i++)
    {
        if(!strcmp(sVehicleModelName[i], model_name, true))
            return i+400;
    }
 
    for(new i = 0; i < sizeof(sVehicleModelName); i++)
    {
        if(strfind(sVehicleModelName[i], model_name, true) != -1)
            return i+400;
    }
    return INVALID_VEHICLE_ID;
}



Пример использования:
main()
{
    printf("%d", GetVehicleModelFromName("nrg"));
}



Эта же функция, но в виде кастомного спецификатора для sscanf [Показать]


Автор:
DeimoS

Сообщение отредактировал DeimoS: 11 Октябрь 2019 - 13:00

3

#2
Пользователь офлайн   DeimoS 

  • Evil Scripter
  • Вставить ник
  • Раскрыть информацию
Исправил ошибки в названиях автомобилей и изменил название функции.
Просьба модераторам убрать "ID" из названия функции в шапке.
1

Поделиться темой:


Страница 1 из 1
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

1 человек читают эту тему
0 пользователей, 1 гостей, 0 скрытых пользователей


Яндекс.Метрика