Skip to content

Режимы

Foxze edited this page Aug 6, 2024 · 1 revision

Работа с режимами

Все режимы объединяет не основной файл "offensive-core.pwn', а "system.pwn" в папке "game-modes". Это было сделано для упрощения в использовании различных методов.

Для создания/удаления локаций в режиме используются функции:

Mode_CreateLocation(mode_id, session_id, location_id, bool:start_server = false);
Mode_DestroyLocation(mode_id, session_id);

Для показа/скрытия различных элементов для игрока при заходе/выхода в режим:

Mode_CreateLocationPlayer(playerid, mode_id, session_id, bool:set = true);
Mode_DestroyLocationPlayer(playerid, bool:reset = true);

Цикл для перечисления игроков в режиме:

m_for(mode_id, session_id, p) {}

m_for(MODE_TDM, 0, p) 
{
    SendClientMessage(p, -1, "Всем игрокам в режиме TDM в сессии 0 отправлено сообщение");
}

Создание дополнительных элементов для игрока (AE)

Для игрока можно создавать в различных целях так называемые AE элементы, это Text3D, объекты, их можно использовать, например, для мини игры игрока.

Работа с AE Text3D:

Mode_CreatePlAE3DText(playerid, cell, const name[], color, typeclick, Float:pos_x, Float:pos_y, Float:pos_z, Float:radius, playerid_2, vehicleid, lost);
Mode_DestroyPlAE3DText(playerid, cell = -1);
Mode_UpdatePlAE3DText(playerid, cell, color, text[]);

Работа с AE Object:

Mode_CreatePlAEObject(p_object, cell, modelid, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz, worldid = -1, interiorid = -1, playerid = -1, Float:streamdistance = STREAMER_OBJECT_SD, Float:drawdistance = STREAMER_OBJECT_DD, STREAMER_TAG_AREA:areaid = STREAMER_TAG_AREA:-1, priority = 0);
Mode_DestroyPlAEObject(playerid, cell = -1);
Mode_SetPlAEObjectMaterial(playerid, cell, materialindex, modelid, const txdname[], const texturename[], materialcolor = 0);
Mode_MovePlAEObject(playerid, cell, Float:x, Float:y, Float:z, Float:speed, Float:rx = -1000.0, Float:ry = -1000.0, Float:rz = -1000.0);
Mode_GetPlAEObjectPos(playerid, cell, &Float:x, &Float:y, &Float:z);

Они создаются как обычные 3DText и Object, но записываются в массивы для контроля над ними и удаляются при удалении любой локации в любых режимах.

Мини игры для игрока

В режимах на локациях имеется возможность начинать мини игры для игрока, условия задаются самостоятельно. Мини игры, например, это нажимать различные клавиши для выполнения какой-либо задачи.

SetPlayerMGSettings(playerid, num);
ResetPlayerMG(playerid);
MG_SetPlayerNum(playerid, num);
MG_GetPlayerNum(playerid);
MG_SetPlayerTimer(playerid, num);
MG_GetPlayerTimer(playerid);
MG_SetPlayerCount(playerid, num);
MG_GetPlayerCount(playerid);
MG_SetPlayerValue(playerid, num);
MG_GetPlayerValue(playerid);
MG_SetPlayerTime(playerid, num);
MG_GetPlayerTime(playerid);