Раздел навигации

Перечень автоматически вызываемых функций [ Public]

Добро пожаловать!

Зарегистрировавшись у нас, вы сможете обсуждать, делиться и отправлять личные сообщения другим участникам нашего сообщества.

Зарегистрироваться!
  • Если Вы желаете помогать развитию проекта, готовы заполнять раздел(-ы) и подсказывать другим пользователям на портале, есть возможность попасть в команду редакторов. Для этого следует обратиться в техническую поддержку
Специалист
Активный
Регистрация
2 Авг 2022
Сообщения
18
Постарался привести примеры фич которые можно использовать в пабликах, основатель перечня не я, нашел тему 2013 года решил немного подробнее расписать и привести примеры.
7a0eeb48-dca2-4659-ad6a-051ea57c5654.png

public OnGameModeInit - паблик автоматически вызывается при запуске сервера. Например вы записали в сток какую либо функцию ( не касающуюся игроков), например это будет логотип. Этот сток вы обязательно прописываете в данный паблик.
C++:
SendRconCommand("hostname "#HostName"")

или рассмотрим ситуацию со стоками про которую говорили, допустим вы создали сток

Код:
stock Logotipe(){
тут текстдравы
}
и вам нужно чтобы он перед использованием загрузился, тогда в этот паблик прописываем
C++:
stock Logotipe();
7a0eeb48-dca2-4659-ad6a-051ea57c5654.png

public OnGameModeExit - Данный паблик отвечает за все действия которые происходят при завершении работы мода, например выгрузка данных, или же одно из самых важных действий - удаление таймеров.
C++:
KillTimer(onesecondtimerr);

Так же давайте уберем всех загруженных актеров.

Код:
DestroyActor(magazactors[0]),DestroyActor(magazactors[1]),DestroyActor(magazactors[2]);
7a0eeb48-dca2-4659-ad6a-051ea57c5654.png

public OnPlayerRequestClass(playerid, classid) - Данный паблик вызывается при выборе игроком скина, сюда же вы вставляете красивый полет камеры, использование инты для выбора скина и прочие функции которые вы возможно видел на других серверах при этом действии.
C++:
PlayAudioStreamForPlayer(playerid, "muzon.mp3")

Ну и покажем что игрок успешно присоединился к игре.

C++:
PI[playerid][Connect]=true;
7a0eeb48-dca2-4659-ad6a-051ea57c5654.png

public OnPlayerConnect(playerid) -Этот паблик вызывается когда игрок подключается к серверу, в него можно вставить все загрузку данных об игроке и прочее.
Код:
SetTimerEx("UpdatePlayer", 1000, true, "d", playerid);

Зафиксируемся с какого IP игрок зашел на сервер

Код:
GetPlayerIp(playerid,PI[playerid][pIP],16);

Покажем игроку определенную зону на карте.

GangZoneShowForPlayer(playerid,zona_id, 0x00ff00AA);
7a0eeb48-dca2-4659-ad6a-051ea57c5654.png

public OnPlayerDisconnect(playerid, reason) -Вызывается когда игрок покидает сервер, сюда можно прописать сохранение аккаунта, координат игрока и прочую информацию.
C++:
SavePlayerWeapon(playerid),SaveAccount(playerid);

Уберем 3д текст
Код:
    Delete3DTextLabel(3DText[playerid]);

Обнулим переменные
C++:
PlayerSpawned[playerid] = 0
7a0eeb48-dca2-4659-ad6a-051ea57c5654.png

public OnPlayerSpawn(playerid) -Данный паблик отвечает за действия с игроком во время его спавна, например можно указать где заспавниться игрок, вывести ему сообщение, прогрузить ТекстДрав, надеть объекты и так далее.
Код:
StopAudioStreamForPlayer(playerid)

Покажем ему ТекстДрав
C++:
TextDrawShowForPlayer(playerid,Connect[0]);

Или же дадим ему скиллов
C++:
SetPlayerSkillLevel(playerid, 31, 1000)
7a0eeb48-dca2-4659-ad6a-051ea57c5654.png

public OnPlayerDeath(playerid, killerid, reason) - Паблик вызывается когда погибает игрок, в него можно вставить например чтобы убийца получал какой-либо бонус, полиция получала сообщение или же данные выводились в лог администрации. А так же можно добавить объекты на месте смерти. Все ограничения в вашем воображении.
C++:
PI[killerid][pKill] ++,SetPlayerScore(killerid, PI[killerid][pKill]);
7a0eeb48-dca2-4659-ad6a-051ea57c5654.png

public OnVehicleSpawn(vehicleid) - Вызывается когда спавнится транспорт. Можно повесить объекты, изменить цвет, накинуть 3д текст и прочее.
C++:
ToggleVehicleEngine(vehicleid, false);
7a0eeb48-dca2-4659-ad6a-051ea57c5654.png

public OnPlayerText(playerid, text[]) - вызывается когда игрок пишет в чат. Можно установить префикс, установить внешний вид чата, а так же добавлять анимации диалога.
C++:
ApplyAnimation(playerid,"PED","IDLE_chat",4.1,0,1,1,1,1);
7a0eeb48-dca2-4659-ad6a-051ea57c5654.png

public OnPlayerCommandText(playerid, cmdtext[]) -Паблик вызывается когда игрок использует команды, тут уж только ваше воображение.
C++:
CMD:pravila(playerid, params[]){
    ShowPlayerDialog(playerid,56611110,DIALOG_STYLE_LIST, "Общие правила сервера","Игровой процесс\nЧат сервера\nТорговля", "Выбрать", "Назад");
}
7a0eeb48-dca2-4659-ad6a-051ea57c5654.png

public OnPlayerStateChange(playerid, newstate, oldstate) - Паблик вызывается когда игрок садится в машину. Можно высветить спидометр, изменить параметры машины, поставить фракционную проверку.
C++:
SetTimerEx("UpdateVehiclePos", 10000, false, "ii", GetPVarInt(playerid,"VehID")
7a0eeb48-dca2-4659-ad6a-051ea57c5654.png

public OnPlayerPickUpPickup(playerid, pickupid) - Вызывается когда игрок находится на пикапе, можно сделать например вход в инту или же просто поставить пикап с аптечкой на спавне,применений много.
C++:
if(pickupid == gos_pic[0])
    {
        SetPlayerPos(playerid,  -2365.742676, 2728.150146, 21.090750); // дядя вошел
        SetPlayerFacingAngle(playerid, 2.3383);
        SetPlayerVirtualWorld(playerid, 1);
        SetPlayerInterior(playerid, 6);
        SetCameraBehindPlayer(playerid);
    }
7a0eeb48-dca2-4659-ad6a-051ea57c5654.png

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) - Паблик приходит в действие когда игрок нажимает на определенную кнопку, можно использовать например для открытия инвентaря.
C++:
if(newkeys == KEY_NO)
    {
        if(IsPlayerInAnyVehicle(playerid)) {
            if(CVEHPL[playerid] != -1) {
                if(l[playerid][adminka] < 3) return true;
                DestroyVehicle(VehID[playerid]);
                SendClientMessage(playerid,-1,"{696969}[!] {1E90FF}Транспорт удалён.");
                return true;
            }
        }
7a0eeb48-dca2-4659-ad6a-051ea57c5654.png

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) - Используется когда игрок нажимает на определенную кнопку в диалоговом окне.
C++:
case DIALOG_ANIMATION:
    {
        if(!response) return true;

        SelectAnimation(playerid, listitem);
        return true;
    }

7a0eeb48-dca2-4659-ad6a-051ea57c5654.png
 
Последнее редактирование:
Специалист
Активный
Регистрация
2 Авг 2022
Сообщения
18
Думаю у некоторых может возникнуть вопрос, как создать свой паблик? Все очень просто.
Для начала объявим его через forward, а после чего создаем сам паблик.
Куда же в наше время без примеров)

C++:
forward Primer(playerid);
Код:
public Primer(playerid){
ApplyAnimation(playerid,"CARRY","crry_prtial",4.0,0,0,0,0,0,0);
return 1;
}




 
Новичок
Пользователь
Регистрация
7 Авг 2022
Сообщения
4
Не самый правильный и полноценный мануал.
 
Сверху