- Регистрация
- 29 Авг 2018
- Сообщения
- 89
- Лучшие ответы
- 0
- Репутация
- 1
Привет, хочу сказать что я делал спидометр с вырезками чего-то из другого мода. А так-же добавлял своё!
Оцените!
Для начала
Вот сам TD - [Ссылка]
В начало мода
В public OnGameModeInit()
В public OnVehicleSpawn(vehicleid)
В public OnPlayerStateChange(playerid, newstate, oldstate)
В public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
В конец мода
У кого нету временных переменных, держите вставьте в начало мода
Так-же супер скриптеры, если у меня что-то не так прошу сказать)
Для опыта изучу и буду знать!
Оцените!
Для начала
Вот сам TD - [Ссылка]
В начало мода
PHP:
new PlayerText:Speed_TD[MAX_PLAYERS][21];
new bool:lightscar[MAX_VEHICLES];
enum vehicle
{
VID,
Float:VX,
Float:VY,
Float:VZ,
Float:VA,
bool: VCHECKDELAY,
bool: VSPAWNED,
bool: VENGINE,
Float:VMILEAGE,
Float:VFUEL,
Float:VHEALTH,
VLOCK,
VAREA,
}
new veh_info[MAX_VEHICLES][vehicle];
new gVehicleDriver[MAX_VEHICLES];
stock SetVehicleParamsExEx(vehicleid,engine,lights,alarm,doors,bonnet,boot,objective)
{
if(engine == 1)
{
veh_info[vehicleid-1][VENGINE] = true;
}
else veh_info[vehicleid-1][VENGINE] = false;
SetVehicleParamsEx(vehicleid,engine,lights,alarm,doors,bonnet,boot,objective);
}
#define SetVehicleParamsEx SetVehicleParamsExEx
PHP:
ManualVehicleEngineAndLights();
for(new i; i < MAX_VEHICLES; i++)
{
gVehicleDriver[i] = INVALID_PLAYER_ID;
veh_info[i][VOWNERID] = INVALID_PLAYER_ID;
veh_info[i][VID] = INVALID_VEHICLE_ID;
veh_info[i][VFUEL] = 40;
veh_info[i][VMILEAGE] = 0;
}
PHP:
GetVehiclePos(vehicleid, veh_info[vehicleid - 1][VX], veh_info[vehicleid - 1][VY], veh_info[vehicleid - 1][VZ]);
GetVehicleZAngle(vehicleid, veh_info[vehicleid -1][VA]);
veh_info[vehicleid-1][VCHECKDELAY] = true;
veh_info[vehicleid-1][VSPAWNED] = true;
veh_info[vehicleid-1][VFUEL] = 40;
veh_info[vehicleid-1][VLOCK] = false;
PHP:
new vehicleid = GetPlayerVehicleID(playerid);
if(oldstate == PLAYER_STATE_DRIVER)
{
if(temp_info[playerid][CARINFOTIMER] != 0)
{
for(new i;i<21; i++)
{
PlayerTextDrawHide(playerid, Speed_TD[playerid][i]);
}
KillTimer(temp_info[playerid][CARINFOTIMER]);
temp_info[playerid][CARINFOTIMER] = 0;
}
}
if(newstate == PLAYER_STATE_DRIVER)
{
for(new i;i<21; i++)
{
PlayerTextDrawShow(playerid, Speed_TD[playerid][i]);
}
temp_info[playerid][CARINFOTIMER] = SetTimerEx("UpdateCarInfo",500,true,"iii",playerid,vehicleid,0);
}
PHP:
if(newkeys & KEY_ACTION)
{
if(ToggleEngine(vehicleid) == -1) With(playerid,CWHITE,"• {FF0000}[Ошибка]{FFFFFF} Двигатель не заводится. Вызовите механика {FFFF00}/call");
}
PHP:
forward UpdateCarInfo(playerid,const vehicleid,speedonly);
public UpdateCarInfo(playerid,const vehicleid,speedonly)
{
if(!IsPlayerConnected(playerid) || IsKicked(playerid))
{
for(new i; i < 21; i ++) PlayerTextDrawHide(playerid, Speed_TD[playerid][i]);
KillTimer(temp_info[playerid][CARINFOTIMER]);
temp_info[playerid][CARINFOTIMER] = 0;
return 1;
}
new info[9][40], string[70];
new Float:X, Float:Y, Float:Z, marks[4];
marks[0] = 'w';
marks[1] = 'r';
marks[2] = 'r';
marks[3] = 'g';
new lights, engine;
engine = GetEngineStatL(vehicleid,lights);
if(!speedonly)
{
GetVehiclePos(vehicleid, X, Y, Z);
if(X > 10000.0 || Y > 10000.0 || Z > 10000.0 || X < -10000.0 || Y < -10000.0 || Z < -10000.0)
{
SendClientMessage(playerid,CWHITE, !"• {FF0000}[Ошибка]{FFFFFF} Вы были кикнуты анти-читом. Если считаете что это была ошибка, напишите жалобу на форум forum.folora-rp.ru");
NewKick(playerid);
SetVehicleToRespawnEx(vehicleid);
return 1;
}
if(engine == 1)
{
marks[0] = 'g';
veh_info[vehicleid-1][VFUEL] -= 0.01;
if(veh_info[vehicleid-1][VFUEL] <= 0.0)
{
veh_info[vehicleid-1][VFUEL] = 0.0;
ToggleEngine(vehicleid);
SendClientMessage(playerid,CWHITE, !"• {FF0000}[Ошибка]{FFFFFF} В автомобиле закончился бензин. Двигатель заглох!");
}
else if(veh_info[vehicleid-1][VHEALTH] <= 300.0)
{
veh_info[vehicleid-1][VHEALTH] = 300.0;
ToggleEngine(vehicleid);
SendClientMessage(playerid,CWHITE, !"• {FF0000}[Ошибка]{FFFFFF} Автомобиль в критическом состоянии. Двигатель заглох!");
}
}
veh_info[vehicleid-1][VX] = X;
veh_info[vehicleid-1][VY] = Y;
veh_info[vehicleid-1][VZ] = Z;
}
GetVehicleVelocity(vehicleid,X,Y,Z);
new Float:speed = floatsqroot(floatadd(floatadd(floatpower(X, 2), floatpower(Y, 2)), floatpower(Z, 2))) * 100.3;
new lims[64];
if(temp_info[playerid][SLIMIT])
{
format(lims,sizeof(lims),"(%d)",temp_info[playerid][SLIMIT]);
if(speed > temp_info[playerid][SLIMIT])
{
marks[3] = 'r';
new Float:dif = temp_info[playerid][SLIMIT] / speed;
SetVehicleVelocity(vehicleid,X*dif,Y*dif,Z);
speed = temp_info[playerid][SLIMIT];
}
}
format(info[8],20,"%s", GetVehicleName(GetVehicleModel(vehicleid-1)));
PlayerTextDrawSetString(playerid,Speed_TD[playerid][8],info[8]);
if(engine == 1)
{
veh_info[vehicleid-1][VMILEAGE] += 0.09;
format(string, sizeof(string), "%06.0f", veh_info[vehicleid-1][VMILEAGE]);
PlayerTextDrawSetString(playerid, Speed_TD[playerid][16], string);
}
if(lightscar[GetPlayerVehicleID(playerid)] == true)//Горят
{
PlayerTextDrawColor(playerid,Speed_TD[playerid][5],16711935);//ФАРЫ
PlayerTextDrawShow(playerid,Speed_TD[playerid][5]);
}
else
{
PlayerTextDrawColor(playerid,Speed_TD[playerid][5],-16776961);//ФАРЫ
PlayerTextDrawShow(playerid,Speed_TD[playerid][5]);
}
if(engine == 1)
{
PlayerTextDrawColor(playerid,Speed_TD[playerid][4],16711935);//Двигатель
PlayerTextDrawShow(playerid,Speed_TD[playerid][4]);
}
else
{
PlayerTextDrawColor(playerid,Speed_TD[playerid][4],-16776961);//Двигатель
PlayerTextDrawShow(playerid,Speed_TD[playerid][4]);
}
if(veh_info[vehicleid-1][VLOCK] == 1)
{
PlayerTextDrawColor(playerid,Speed_TD[playerid][6],-16776961);//Двери
PlayerTextDrawShow(playerid,Speed_TD[playerid][6]);
}
else
{
PlayerTextDrawColor(playerid,Speed_TD[playerid][6],16711935);//Двери
PlayerTextDrawShow(playerid,Speed_TD[playerid][6]);
}
marks[1] = veh_info[vehicleid-1][VLOCK] == 1 ? 'g':'r';
marks[2] = lights > 0 ? 'g':'l';
format(info[0],20,"%.0fL", veh_info[vehicleid-1][VFUEL]);
PlayerTextDrawSetString(playerid,Speed_TD[playerid][20],info[0]);//Бенз!!!
format(info[1],20,"%.0f", speed);
PlayerTextDrawSetString(playerid,Speed_TD[playerid][15],info[1]);//Скорость!!!
format(info[6],20,"%.0f%",veh_info[vehicleid-1][VHEALTH]/10);//ХП АВТО
PlayerTextDrawSetString(playerid,Speed_TD[playerid][19],info[6]);//ХП АВТО
GetVehicleHealth(vehicleid,veh_info[vehicleid-1][VHEALTH]);
return 1;
}
stock VehicleSpeed(carid)
{
new Float:X, Float:Y, Float:Z;
GetVehicleVelocity(carid, X, Y, Z);
return floatround( floatsqroot( X * X + Y * Y + Z * Z ) * 180.0 );
}
stock NoShowSpeed(carid)
{
switch(GetVehicleModel(carid))
{
case 510,509,481: {return true;}
}
return false;
}
stock CreateVehicleEx(modelid, Float: X, Float: Y, Float: Z, Float: A, Color1, Color2, SpawnDelay)
{
new id = CreateVehicle(modelid, X, Y, Z, A, Color1, Color2, SpawnDelay);
veh_info[id - 1][VCHECKDELAY] = true;
veh_info[id - 1][VX] = X;
veh_info[id - 1][XY] = Y;
veh_info[id - 1][VZ] = Z;
veh_info[id - 1][VA] = A;
veh_info[id - 1][VSPAWNED] = true;
veh_info[id - 1][VCHECKDELAY] = true;
return id;
}
stock GetEngineStat(vehicleid)
{
new engine, lights, alarm, doors, bonnet, boot, objective;
GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
return engine;
}
stock GetEngineStatL(vehicleid,&lights)
{
new engine, alarm, doors, bonnet, boot, objective;
GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
return engine;
}
stock GetVehicleName(model)
{
new name[32];
switch(model)
{
case 400: name = "Landstalker";
case 401: name = "Bravura";
case 402: name = "Buffalo";
case 403: name = "Linerunner";
case 404: name = "Perenniel";
case 405: name = "Sentinel";
case 406: name = "Dumper";
case 407: name = "Firetruck";
case 408: name = "Trashmaster";
case 409: name = "Stretch";
case 410: name = "Manana";
case 411: name = "Infernus";
case 412: name = "Voodoo";
case 413: name = "Pony";
case 414: name = "Mule";
case 415: name = "Cheetah";
case 416: name = "Ambulance";
case 417: name = "Leviathan";
case 418: name = "Moonbeam";
case 419: name = "Esperanto";
case 420: name = "Taxi";
case 421: name = "Washington";
case 422: name = "Bobcat";
case 423: name = "Mr Whoopee";
case 424: name = "BF Injection";
case 425: name = "Hunter";
case 426: name = "Premier";
case 427: name = "Enforcer";
case 428: name = "Securicar";
case 429: name = "Banshee";
case 430: name = "Predator";
case 431: name = "Bus";
case 432: name = "Rhino";
case 433: name = "Barracks";
case 434: name = "Hotknife";
case 435: name = "Article Trailer";
case 436: name = "Previon";
case 437: name = "Coach";
case 438: name = "Cabbie";
case 439: name = "Stallion";
case 440: name = "Rumpo";
case 441: name = "RC Bandit";
case 442: name = "Romero";
case 443: name = "Packer";
case 444: name = "Monster";
case 445: name = "Admiral";
case 446: name = "Squallo";
case 447: name = "Seasparrow";
case 448: name = "Pizzaboy";
case 449: name = "Tram";
case 450: name = "Article Trailer 2";
case 451: name = "Turismo";
case 452: name = "Speeder";
case 453: name = "Reefer";
case 454: name = "Tropic";
case 455: name = "Flatbed";
case 456: name = "Yankee";
case 457: name = "Caddy";
case 458: name = "Solair";
case 459: name = "Berkley's RC Van";
case 460: name = "Skimmer";
case 461: name = "PCJ-600";
case 462: name = "Faggio";
case 463: name = "Freeway";
case 464: name = "RC Baron";
case 465: name = "RC Raider";
case 466: name = "Glendale";
case 467: name = "Oceanic";
case 468: name = "Sanchez";
case 469: name = "Sparrow";
case 470: name = "Patriot";
case 471: name = "Quad";
case 472: name = "Coastguard";
case 473: name = "Dinghy";
case 474: name = "Hermes";
case 475: name = "Sabre";
case 476: name = "Rustler";
case 477: name = "ZR-350";
case 478: name = "Walton";
case 479: name = "Regina";
case 480: name = "Comet";
case 481: name = "BMX";
case 482: name = "Burrito";
case 483: name = "Camper";
case 484: name = "Marquis";
case 485: name = "Baggage";
case 486: name = "Dozer";
case 487: name = "Maverick";
case 488: name = "SAN News Maverick";
case 489: name = "Rancher";
case 490: name = "FBI Rancher";
case 491: name = "Virgo";
case 492: name = "Greenwood";
case 493: name = "Jetmax";
case 494: name = "Hotring Racer";
case 495: name = "Sandking";
case 496: name = "Blista Compact";
case 497: name = "Police Maverick";
case 498: name = "Boxville";
case 499: name = "Benson";
case 500: name = "Mesa";
case 501: name = "RC Goblin";
case 502: name = "Hotring Racer";
case 503: name = "Hotring Racer";
case 504: name = "Bloodring Banger";
case 505: name = "Rancher";
case 506: name = "Super GT";
case 507: name = "Elegant";
case 508: name = "Journey";
case 509: name = "Bike";
case 510: name = "Mountain Bike";
case 511: name = "Beagle";
case 512: name = "Cropduster";
case 513: name = "Stuntplane";
case 514: name = "Tanker";
case 515: name = "Roadtrain";
case 516: name = "Nebula";
case 517: name = "Majestic";
case 518: name = "Buccaneer";
case 519: name = "Shamal";
case 520: name = "Hydra";
case 521: name = "FCR-900";
case 522: name = "NRG-500";
case 523: name = "HPV1000";
case 524: name = "Cement Truck";
case 525: name = "Towtruck";
case 526: name = "Fortune";
case 527: name = "Cadrona";
case 528: name = "FBI Truck";
case 529: name = "Willard";
case 530: name = "Forklift";
case 531: name = "Tractor";
case 532: name = "Combine Harvester";
case 533: name = "Feltzer";
case 534: name = "Remington";
case 535: name = "Slamvan";
case 536: name = "Blade";
case 537: name = "Freight";
case 538: name = "Brownstreak";
case 539: name = "Vortex";
case 540: name = "Vincent";
case 541: name = "Bullet";
case 542: name = "Clover";
case 543: name = "Sadler";
case 544: name = "Firetruck LA";
case 545: name = "Hustler";
case 546: name = "Intruder";
case 547: name = "Primo";
case 548: name = "Cargobob";
case 549: name = "Tampa";
case 550: name = "Sunrise";
case 551: name = "Merit";
case 552: name = "Utility Van";
case 553: name = "Nevada";
case 554: name = "Yosemite";
case 555: name = "Windsor";
case 556: name = "Monster A";
case 557: name = "Monster B";
case 558: name = "Uranus";
case 559: name = "Jester";
case 560: name = "Sultan";
case 561: name = "Stratum";
case 562: name = "Elegy";
case 563: name = "Raindance";
case 564: name = "RC Tiger";
case 565: name = "Flash";
case 566: name = "Tahoma";
case 567: name = "Savanna";
case 568: name = "Bandito";
case 569: name = "Freight Flat Trailer";
case 570: name = "Streak Trailer";
case 571: name = "Kart";
case 572: name = "Mower";
case 573: name = "Dune";
case 574: name = "Sweeper";
case 575: name = "Broadway";
case 576: name = "Tornado";
case 577: name = "AT400";
case 578: name = "DFT-30";
case 579: name = "Huntley";
case 580: name = "Stafford";
case 581: name = "BF-400";
case 582: name = "Newsvan";
case 583: name = "Tug";
case 584: name = "Petrol Trailer";
case 585: name = "Emperor";
case 586: name = "Wayfarer";
case 587: name = "Euros";
case 588: name = "Hotdog";
case 589: name = "Club";
case 590: name = "Freight Box Trailer";
case 591: name = "Article Trailer 3";
case 592: name = "Andromada";
case 593: name = "Dodo";
case 594: name = "RC Cam";
case 595: name = "Launch";
case 596: name = "Police Car (LSPD)";
case 597: name = "Police Car (SFPD)";
case 598: name = "Police Car (LVPD)";
case 599: name = "Police Ranger";
case 600: name = "Picador";
case 601: name = "S.W.A.T.";
case 602: name = "Alpha";
case 603: name = "Phoenix";
case 604: name = "Glendale Shit";
case 605: name = "Sadler Shit";
case 606: name = "Baggage Trailer A";
case 607: name = "Baggage Trailer B";
case 608: name = "Tug Stairs Trailer";
case 609: name = "Boxville";
case 610: name = "Farm Trailer";
case 611: name = "Utility Trailer";
default: name = "No-ne";
}
return name;
}
stock ToggleEngine(vehicleid)
{
new engine, lights, alarm, doors, bonnet, boot, objective;
GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
if(engine <= 0)
{
new modelid = GetVehicleModel(vehicleid) - 400;
if(modelid < 0) return 1;
if(veh_info[vehicleid-1][VFUEL] <= 0.0 || veh_info[vehicleid-1][VHEALTH] <= 300) return -1;
else engine = 1;
engine = 1;
}
else if(engine > 0) engine = 0;
SetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
return engine;
}
stock SetVehicleToRespawnEx(vehid)
{
SetVehicleToRespawn(vehid);
veh_info[vehid-1][VFUEL] = 40;
veh_info[vehid-1][VLOCK] = 0;
}
stock With(playerid, color, message[])
{
SetPVarInt(playerid,"FloodNewkeys",gettime() + 15);
SendClientMessage(playerid, color, message);
return 1;
}
PHP:
enum temporary
{
CARINFOTIMER,
SLIMIT
}
new temp_info[MAX_PLAYERS][temporary];
Для опыта изучу и буду знать!
Последнее редактирование: