reyg
Ученик
Новая система спидометра. Все баги и недочеты прошу написать в комментарии.
И так, начнем.Ко всем
PHP:
new
PHP:
new Text: gSpeed[6];
new Text: pSpeed[5][MAX_PLAYERS];
new SpeedTimer[MAX_PLAYERS];
PHP:
OnPlayerConnect
PHP:
PlayerTextDraws(playerid);
PHP:
OnGameModeInit
PHP:
TextDraws();
PHP:
OnPlayerStateChange(playerid, newstate, oldstate)
PHP:
new vehicleid = GetPlayerVehicleID(playerid);
if(newstate == PLAYER_STATE_DRIVER)
{
if(!IsAPlane(vehicleid) && !IsABoat(vehicleid) && !IsANoSpeed(vehicleid))
{
for(new i; i != 5; i++) TextDrawShowForPlayer(playerid, pSpeed[i][playerid]);
for(new i; i != 6; i++) TextDrawShowForPlayer(playerid, gSpeed[i]);
SpeedTimer[playerid] = SetTimerEx("UpdateSpeed",100,1,"d",playerid);
}
}
if(newstate == PLAYER_STATE_ONFOOT)
{
if(!IsAPlane(vehicleid) && !IsABoat(vehicleid) && !IsANoSpeed(vehicleid))
{
KillTimer(SpeedTimer[playerid]);
for(new i; i != 5; i++) TextDrawHideForPlayer(playerid, pSpeed[i][playerid]);
for(new i; i != 6; i++) TextDrawHideForPlayer(playerid, gSpeed[i]);
}
}
Не забываем табулировать код!
Далее, создаем сток с обновлением информации на спидометре
PHP:
forward UpdateSpeed(playerid);
public UpdateSpeed(playerid)
{
new string[256];
new v = GetPlayerVehicleID(playerid);
new Float:carhp;
GetVehicleHealth(v,carhp);
switch(SpeedVehicle(playerid))
{
case 0..1: TextDrawSetString(pSpeed[2][playerid],"~w~~h~I");
case 2..5: TextDrawSetString(pSpeed[2][playerid],"~w~~h~II");
case 6..10: TextDrawSetString(pSpeed[2][playerid],"~w~~h~IIII");
case 11..15: TextDrawSetString(pSpeed[2][playerid],"~w~~h~IIIIII");
case 16..20: TextDrawSetString(pSpeed[2][playerid],"~w~~h~IIIIIIII");
case 21..25: TextDrawSetString(pSpeed[2][playerid],"~w~~h~IIIIIIIII");
case 26..30: TextDrawSetString(pSpeed[2][playerid],"~w~~h~IIIIIIIIIII");
case 31..35: TextDrawSetString(pSpeed[2][playerid],"~w~~h~IIIIIIIIIII~g~II");
case 36..40: TextDrawSetString(pSpeed[2][playerid],"~w~~h~IIIIIIIIIII~g~IIII");
case 41..45: TextDrawSetString(pSpeed[2][playerid],"~w~~h~IIIIIIIIIII~g~IIIIII");
case 46..50: TextDrawSetString(pSpeed[2][playerid],"~w~~h~IIIIIIIIIII~g~IIIIIIII");
case 51..55: TextDrawSetString(pSpeed[2][playerid],"~w~~h~IIIIIIIIIII~g~IIIIIIIIIII");
case 56..60: TextDrawSetString(pSpeed[2][playerid],"~w~~h~IIIIIIIIIII~g~IIIIIIIIIIIII");
case 61..65: TextDrawSetString(pSpeed[2][playerid],"~w~~h~IIIIIIIIIII~g~IIIIIIIIIIIIIII");
case 66..70: TextDrawSetString(pSpeed[2][playerid],"~w~~h~IIIIIIIIIII~g~IIIIIIIIIIIIIII~y~~h~II");
case 71..75: TextDrawSetString(pSpeed[2][playerid],"~w~~h~IIIIIIIIIII~g~IIIIIIIIIIIIIII~y~~h~IIII");
case 76..80: TextDrawSetString(pSpeed[2][playerid],"~w~~h~IIIIIIIIIII~g~IIIIIIIIIIIIIII~y~~h~IIIIII");
case 81..85: TextDrawSetString(pSpeed[2][playerid],"~w~~h~IIIIIIIIIII~g~IIIIIIIIIIIIIII~y~~h~IIIIIIII");
case 86..90: TextDrawSetString(pSpeed[2][playerid],"~w~~h~IIIIIIIIIII~g~IIIIIIIIIIIIIII~y~~h~IIIIIIIIII");
case 91..95: TextDrawSetString(pSpeed[2][playerid],"~w~~h~IIIIIIIIIII~g~IIIIIIIIIIIIIII~y~~h~IIIIIIIIII~r~~h~~h~II");
case 101..105: TextDrawSetString(pSpeed[2][playerid],"~w~~h~IIIIIIIIIII~g~IIIIIIIIIIIIIII~y~~h~IIIIIIIIII~r~~h~~h~IIII");
case 106..110: TextDrawSetString(pSpeed[2][playerid],"~w~~h~IIIIIIIIIII~g~IIIIIIIIIIIIIII~y~~h~IIIIIIIIII~r~~h~~h~IIIIIIII");
case 111..115: TextDrawSetString(pSpeed[2][playerid],"~w~~h~IIIIIIIIIII~g~IIIIIIIIIIIIIII~y~~h~IIIIIIIIII~r~~h~~h~IIIIIIIIII");
case 116..120: TextDrawSetString(pSpeed[2][playerid],"~w~~h~IIIIIIIIIII~g~IIIIIIIIIIIIIII~y~~h~IIIIIIIIII~r~~h~~h~IIIIIIIIIIII");
case 121..190: TextDrawSetString(pSpeed[2][playerid],"~w~~h~IIIIIIIIIII~g~IIIIIIIIIIIIIII~y~~h~IIIIIIIIII~r~~h~~h~IIIIIIIIIIIIII");
}
switch(SpeedVehicleC(playerid))
{
case 0..1: TextDrawSetString(pSpeed[4][playerid],"R ~p~N ~w~1 2 3 4 5");
case 2..5: TextDrawSetString(pSpeed[4][playerid],"R N ~p~1 ~w~2 3 4 5");
case 31..35: TextDrawSetString(pSpeed[4][playerid],"R N 1 ~p~2 ~w~3 4 5");
case 51..55: TextDrawSetString(pSpeed[4][playerid],"R N 1 2 ~p~3 ~w~4 5");
case 71..75: TextDrawSetString(pSpeed[4][playerid],"R N 1 2 3 ~p~4 ~w~5");
case 101..105: TextDrawSetString(pSpeed[4][playerid],"R N 1 2 3 4 ~p~5");
}
format(string,sizeof(string),"%d",SpeedVehicle(playerid));
TextDrawSetString(pSpeed[1][playerid], string);
format(string,sizeof(string),"H: %.0f",carhp);
TextDrawSetString(pSpeed[3][playerid], string);
format(string,sizeof(string), "%s",VehicleNames[GetVehicleModel(v)-400]);
TextDrawSetString(pSpeed[0][playerid], string);
return true;
}
Теперь в конец мода вставим остальные стоки
PHP:
stock SpeedVehicle(playerid)
{
new Float: ST[4];
new carid = GetPlayerVehicleID(playerid);
if(IsPlayerInAnyVehicle(playerid)) GetVehicleVelocity(carid,ST[0],ST[1],ST[2]);
else GetPlayerVelocity(playerid,ST[0],ST[1],ST[2]);
ST[3] = floatsqroot(floatpower(floatabs(ST[0]), 2.0) + floatpower(floatabs(ST[1]), 2.0) + floatpower(floatabs(ST[2]), 2.0)) * 100.3;
return floatround(ST[3]);
}
stock SpeedVehicleC(playerid)
{
new Float: ST[4];
new carid = GetPlayerVehicleID(playerid);
if(IsPlayerInAnyVehicle(playerid)) GetVehicleVelocity(carid,ST[0],ST[1],ST[2]);
else GetPlayerVelocity(playerid,ST[0],ST[1],ST[2]);
ST[3] = floatsqroot(floatpower(floatabs(ST[0]), 2.0) + floatpower(floatabs(ST[1]), 2.0) + floatpower(floatabs(ST[2]), 2.0)) * 100.3;
return floatround(ST[3]);
}
stock TextDraws
{
gSpeed[0] = TextDrawCreate(441.347015, 349.416687, "LD_SPAC:white");
TextDrawLetterSize(gSpeed[0], 0.000000, 0.000000);
TextDrawTextSize(gSpeed[0], 137.276702, 72.916625);
TextDrawAlignment(gSpeed[0], 1);
TextDrawColor(gSpeed[0], 16777215);
TextDrawSetShadow(gSpeed[0], 0);
TextDrawSetOutline(gSpeed[0], 0);
TextDrawFont(gSpeed[0], 4);
gSpeed[1] = TextDrawCreate(441.815521, 350.000000, "LD_SPAC:white");
TextDrawLetterSize(gSpeed[1], 0.000000, 0.000000);
TextDrawTextSize(gSpeed[1], 136.339691, 71.750000);
TextDrawAlignment(gSpeed[1], 1);
TextDrawColor(gSpeed[1], -2139062017);
TextDrawSetShadow(gSpeed[1], 0);
TextDrawSetOutline(gSpeed[1], 0);
TextDrawFont(gSpeed[1], 4);
gSpeed[2] = TextDrawCreate(443.689666, 355.833343, "LD_BEAT:chit");
TextDrawLetterSize(gSpeed[2], 0.000000, 0.000000);
TextDrawTextSize(gSpeed[2], 46.852111, 52.500015);
TextDrawAlignment(gSpeed[2], 1);
TextDrawColor(gSpeed[2], 16777215);
TextDrawSetShadow(gSpeed[2], 0);
TextDrawSetOutline(gSpeed[2], 0);
TextDrawFont(gSpeed[2], 4);
gSpeed[3] = TextDrawCreate(441.815521, 402.500000, "LD_SPAC:white");
TextDrawLetterSize(gSpeed[3], 0.000000, 0.000000);
TextDrawTextSize(gSpeed[3], 136.808197, 0.583374);
TextDrawAlignment(gSpeed[3], 1);
TextDrawColor(gSpeed[3], 16777215);
TextDrawSetShadow(gSpeed[3], 0);
TextDrawSetOutline(gSpeed[3], 0);
TextDrawFont(gSpeed[3], 4);
gSpeed[4] = TextDrawCreate(491.010345, 403.083312, "LD_SPAC:white");
TextDrawLetterSize(gSpeed[4], 0.000000, 0.000000);
TextDrawTextSize(gSpeed[4], 0.468505, -40.249980);
TextDrawAlignment(gSpeed[4], 1);
TextDrawColor(gSpeed[4], 16777215);
TextDrawSetShadow(gSpeed[4], 0);
TextDrawSetOutline(gSpeed[4], 0);
TextDrawFont(gSpeed[4], 4);
gSpeed[4] = TextDrawCreate(441.347015, 362.250000, "LD_SPAC:white");
TextDrawLetterSize(gSpeed[4], 0.000000, 0.000000);
TextDrawTextSize(gSpeed[4], 136.808197, 0.583312);
TextDrawAlignment(gSpeed[4], 1);
TextDrawColor(gSpeed[4], 16777215);
TextDrawSetShadow(gSpeed[4], 0);
TextDrawSetOutline(gSpeed[4], 0);
TextDrawFont(gSpeed[4], 4);
}
stock PlayerTextDraws(playerid)
{
pSpeed[0][playerid] = TextDrawCreate(472.269500, 347.666625, "TURISMO");
TextDrawLetterSize(pSpeed[0][playerid], 0.449999, 1.600000);
TextDrawAlignment(pSpeed[0][playerid], 1);
TextDrawColor(pSpeed[0][playerid], -1);
TextDrawUseBox(pSpeed[0][playerid], true);
TextDrawBoxColor(pSpeed[0][playerid], 0);
TextDrawSetShadow(pSpeed[0][playerid], 0);
TextDrawSetOutline(pSpeed[0][playerid], 1);
TextDrawBackgroundColor(pSpeed[0][playerid], 51);
TextDrawFont(pSpeed[0][playerid], 2);
TextDrawSetProportional(pSpeed[0][playerid], 1);
pSpeed[1][playerid] = TextDrawCreate(453.996917, 373.333282, "123");
TextDrawLetterSize(pSpeed[1][playerid], 0.368945, 1.810000);
TextDrawAlignment(pSpeed[1][playerid], 1);
TextDrawColor(pSpeed[1][playerid], -1);
TextDrawSetShadow(pSpeed[1][playerid], 0);
TextDrawSetOutline(pSpeed[1][playerid], 1);
TextDrawBackgroundColor(pSpeed[1][playerid], 51);
TextDrawFont(pSpeed[1][playerid], 2);
TextDrawSetProportional(pSpeed[1][playerid], 1);
pSpeed[2][playerid] = TextDrawCreate(446.969055, 404.249908, "IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII");
TextDrawLetterSize(pSpeed[2][playerid], 0.237291, 1.576667);
TextDrawAlignment(pSpeed[2][playerid], 1);
TextDrawColor(pSpeed[2][playerid], -1);
TextDrawSetShadow(pSpeed[2][playerid], 0);
TextDrawSetOutline(pSpeed[2][playerid], 1);
TextDrawBackgroundColor(pSpeed[2][playerid], 51);
TextDrawFont(pSpeed[2][playerid], 2);
TextDrawSetProportional(pSpeed[2][playerid], 1);
pSpeed[3][playerid] = TextDrawCreate(499.443328, 368.666595, "H: 1000");
TextDrawLetterSize(pSpeed[3][playerid], 0.263060, 1.553333);
TextDrawAlignment(pSpeed[3][playerid], 1);
TextDrawColor(pSpeed[3][playerid], -1);
TextDrawSetShadow(pSpeed[3][playerid], 0);
TextDrawSetOutline(pSpeed[3][playerid], 1);
TextDrawBackgroundColor(pSpeed[3][playerid], 51);
TextDrawFont(pSpeed[3][playerid], 2);
TextDrawSetProportional(pSpeed[3][playerid], 1);
pSpeed[4][playerid] = TextDrawCreate(499.443511, 384.416687, "R N ~p~1 ~w~2 3 4 5");
TextDrawLetterSize(pSpeed[4][playerid], 0.270087, 1.500833);
TextDrawAlignment(pSpeed[4][playerid], 1);
TextDrawColor(pSpeed[4][playerid], -1);
TextDrawSetShadow(pSpeed[4][playerid], 0);
TextDrawSetOutline(pSpeed[4][playerid], 1);
TextDrawBackgroundColor(pSpeed[4][playerid], 51);
TextDrawFont(pSpeed[4][playerid], 2);
TextDrawSetProportional(pSpeed[4][playerid], 1);
}
Для тех, у кого нету, вставляем
PHP:
stock IsAPlane(vehicleid)
{
switch(GetVehicleModel(vehicleid))
{
case 592, 577, 511, 512, 593, 520, 553, 476, 519, 460, 513, 548, 417, 487, 488, 497, 563, 447, 469: return 1;
}
return 0;
}
stock IsABoat(carid)
{
switch(GetVehicleModel(carid))
{
case 472,473,493,595,484,430,452..454,446: return true;
}
return false;
}
stock IsANoSpeed(carid)
{
switch(GetVehicleModel(carid))
{
case 441,448,449,450,462,464,465,481,501,509,510,537,538,564,569,570,590,591,594,606,607,608,610,611: return true;
}
return false;
}
И еще, хотел бы услышать про функцию с помощью которой можно узнать игрок в транспорте едет прямо или назад.
От + не откажусь
От + не откажусь
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!
(Там 3 скрина)
