Доступ к готовым решениям

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Мануал Спидометр [Система + TextDraws]

Статус
В этой теме нельзя размещать новые ответы.

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 скрина)​
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу