Welcome!

By registering with us, you'll be able to discuss, share and private message with other members of our community.

SignUp Now!

Дрифт система

Фев
6
0
Пользователь
Здравствуйте, тут система у меня есть дрифта она почему-то работает только если на лево дрифтить на право как будто даже системы нету

Вот сама система:
public OnPlayerUpdate(playerid) // ниже

if (!IsPlayerInAnyVehicle(playerid)) return 1;

new vehicleid = GetPlayerVehicleID(playerid);
new Float:vx, Float:vy, Float:vz, Float:speed, Float:angle, Float:movementAngle, Float:driftAngle;

if (GetTickCount() - lastUpdateTime[playerid] < 1000)
return 1;
lastUpdateTime[playerid] = GetTickCount();

GetVehicleVelocity(vehicleid, vx, vy, vz);
speed = floatsqroot(vx * vx + vy * vy) * 180.0;

GetVehicleZAngle(vehicleid, angle);
movementAngle = atan2(vy, vx);

driftAngle = floatabs(angle - movementAngle);
if (driftAngle > 180.0) driftAngle = 360.0 - driftAngle;

if (speed > 30.0 && driftAngle > 25.0 && driftAngle < 85.0)
{
new driftPoints = random(101) + 50;
DriftScore[playerid] += driftPoints;

new text[64];
format(text, sizeof(text), "~w~DRIFT: ~g~%d", DriftScore[playerid]);
GameTextForPlayer(playerid, text, 3000, 3);

KillTimer(DriftTimer[playerid]);
DriftTimer[playerid] = SetTimerEx("EndDrift", 3000, false, "d", playerid);
}
else
{
if (DriftScore[playerid] > 0 && DriftTimer[playerid] == 0)
{
DriftTimer[playerid] = SetTimerEx("EndDrift", 3000, false, "d", playerid);
}
}
return 1;
}

new DriftScore[MAX_PLAYERS]; // DRIFT SYSTEM //"дрифт очки (ИВ)"
new DriftTimer[MAX_PLAYERS]; // DRIFT SYSTEM //"время дрифта"
new lastUpdateTime[MAX_PLAYERS]; // DRIFT SYSTEM //"обновление дрифта"

forward EndDrift(playerid);
public EndDrift(playerid)
{
if (DriftScore[playerid] > 0)
{
new money = DriftScore[playerid];
PI[playerid][pCash] += money;

GameTextForPlayer(playerid, "", 500, 3);

new text[64];
format(text, sizeof(text), "~w~MONEY: ~g~+%d$", money);
GameTextForPlayer(playerid, text, 2000, 3);

DriftScore[playerid] = 0;
DriftTimer[playerid] = 0;
}
}

Буду благодарен!
 
никогда не поменяю аву
Ноя
2,662
5,726
Заблокированный
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки. Мы не несем ответственности за действия пользователя вне форума.
Вот система в файле если так легче кому-то
OFFTOP

спасибо, Владислав НезнающийПавн

 
Сен
299
493
Активный
Вот система в файле если так легче кому-то
Привет, посмотрел твой код если ты хочешь чтобы всё было автоматически то напиши , а если нет то вот тебе хорошая система


Pawn:
В enum pInfo ВСТАВЛЯЕМ

    pOnDriftMenu, //активация дрифт меню
    
В ClearPlayerData ВСТАВЛЯЕМ

    PI[playerid][pOnDriftMenu] = 0;
    
В OnDialogResponse ВСТАВЛЯЕМ

        case 23692:
        {
            if(!response)
                return false;

            switch listitem do
            {
                case 0:
                {
                    if(PI[playerid][pOnDriftMenu] > 0)
                    {
                    SCM(playerid, COLOR_VALIK, "[Информация]{ffffff} Вы выключили дрифт меню");
                    PI[playerid][pOnDriftMenu] = 0;
                    OffDriftMenu(playerid);
                    }
                    else
                    {
                    SCM(playerid, COLOR_VALIK, "[Информация]{ffffff} Вы включили дрифт меню");
                    PI[playerid][pOnDriftMenu] = 1;
                    OnDriftMenu(playerid);
                    }
                }
            }

            return DriftMenu(playerid);
        }
        
В КОНЕЦ МОДА ВСТАВЛЯЕМ

stock OnDriftMenu(playerid)
{
    new BitStream:bs = BS_New(), vehicleid = GetPlayerVehicleID(playerid);

    BS_WriteValue(bs,
        PR_UINT8, 220,
        PR_UINT8, 187,
        PR_UINT16, vehicleid,
        PR_UINT8, 128);

    foreach(Player, i)
        PR_SendPacket(bs, i);

    return BS_Delete(bs);
}
stock OffDriftMenu(playerid)
{
    new BitStream:bs = BS_New(), vehicleid = GetPlayerVehicleID(playerid);

    BS_WriteValue(bs,
        PR_UINT8, 220,
        PR_UINT8, 187,
        PR_UINT16, vehicleid,
        PR_UINT8, 0);

    foreach(Player, i)
        PR_SendPacket(bs, i);

    return BS_Delete(bs);
}
cmd:drift(playerid)
    return DriftMenu(playerid);

stock DriftMenu(playerid)
{
    global_str = "";
    f(global_str, sizeof(global_str), "{ff6666}[1] {ffffff}Режим дрифта + задний привод {cccccc}| Дрифт-мод: %s", PI[playerid][pOnDriftMenu] ? "{85bb65}включен" : "{D24449}отключен");
    return SPD(playerid, 23692, DIALOG_STYLE_LIST, !"{ff6666}Бортовой компьютер", global_str, !"Выбрать", !"Отмена");
}
 
Фев
6
0
Пользователь
Привет, посмотрел твой код если ты хочешь чтобы всё было автоматически то напиши , а если нет то вот тебе хорошая система


Pawn:
В enum pInfo ВСТАВЛЯЕМ

    pOnDriftMenu, //активация дрифт меню
   
В ClearPlayerData ВСТАВЛЯЕМ

    PI[playerid][pOnDriftMenu] = 0;
   
В OnDialogResponse ВСТАВЛЯЕМ

        case 23692:
        {
            if(!response)
                return false;

            switch listitem do
            {
                case 0:
                {
                    if(PI[playerid][pOnDriftMenu] > 0)
                    {
                    SCM(playerid, COLOR_VALIK, "[Информация]{ffffff} Вы выключили дрифт меню");
                    PI[playerid][pOnDriftMenu] = 0;
                    OffDriftMenu(playerid);
                    }
                    else
                    {
                    SCM(playerid, COLOR_VALIK, "[Информация]{ffffff} Вы включили дрифт меню");
                    PI[playerid][pOnDriftMenu] = 1;
                    OnDriftMenu(playerid);
                    }
                }
            }

            return DriftMenu(playerid);
        }
       
В КОНЕЦ МОДА ВСТАВЛЯЕМ

stock OnDriftMenu(playerid)
{
    new BitStream:bs = BS_New(), vehicleid = GetPlayerVehicleID(playerid);

    BS_WriteValue(bs,
        PR_UINT8, 220,
        PR_UINT8, 187,
        PR_UINT16, vehicleid,
        PR_UINT8, 128);

    foreach(Player, i)
        PR_SendPacket(bs, i);

    return BS_Delete(bs);
}
stock OffDriftMenu(playerid)
{
    new BitStream:bs = BS_New(), vehicleid = GetPlayerVehicleID(playerid);

    BS_WriteValue(bs,
        PR_UINT8, 220,
        PR_UINT8, 187,
        PR_UINT16, vehicleid,
        PR_UINT8, 0);

    foreach(Player, i)
        PR_SendPacket(bs, i);

    return BS_Delete(bs);
}
cmd:drift(playerid)
    return DriftMenu(playerid);

stock DriftMenu(playerid)
{
    global_str = "";
    f(global_str, sizeof(global_str), "{ff6666}[1] {ffffff}Режим дрифта + задний привод {cccccc}| Дрифт-мод: %s", PI[playerid][pOnDriftMenu] ? "{85bb65}включен" : "{D24449}отключен");
    return SPD(playerid, 23692, DIALOG_STYLE_LIST, !"{ff6666}Бортовой компьютер", global_str, !"Выбрать", !"Отмена");
}
Привет, код не должен менять логику Т/С он всего лишь показывает на экране Счётчик дрифта и сколько счёт = столько и денег начислять игроку
 
Сен
299
493
Активный
Привет, код не должен менять логику Т/С он всего лишь показывает на экране Счётчик дрифта и сколько счёт = столько и денег начислять игроку
в твоём коде этого нету так-как нету некого-го вывода , если это мод Arizona\Rodina
 
Фев
6
0
Пользователь
в твоём коде этого нету так-как нету некого-го вывода , если это мод Arizona\Rodina
У меня мод обычного сампа переделанный под CRMP карту а система дрифта полностью работает но как только пробую подрифтить правым боком то ничего не происходит возможно надо проверку добавить какуету в код?
 
Сен
299
493
Активный
У меня мод обычного сампа переделанный под CRMP карту а система дрифта полностью работает но как только пробую подрифтить правым боком то ничего не происходит возможно надо проверку добавить какуету в код?
протестирую скажу
 
никогда не поменяю аву
Ноя
2,662
5,726
Заблокированный
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки. Мы не несем ответственности за действия пользователя вне форума.
протестирую скажу
OFFTOP

ворк?

 
Сверху