Callbacks в Pawn: объяснение и примеры

Активный
Статус
Сообщения
516
Лайки
32

8

месяц на сайте

Callbacks (колбеки) - это функции, которые вызываются сервером в определенные моменты. Разберем основные.

OnGameModeInit
Вызывается при загрузке игрового режима:
Код:
public OnGameModeInit()
{
    // Инициализация игрового режима
    SetGameModeText("My Server");
    AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
    return 1;
}

OnPlayerConnect
Вызывается при подключении игрока:
Код:
public OnPlayerConnect(playerid)
{
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, sizeof(name));
    printf("Игрок %s подключился", name);
    return 1;
}

OnPlayerDisconnect
Вызывается при отключении игрока:
Код:
public OnPlayerDisconnect(playerid, reason)
{
    // Сохранение данных игрока
    SavePlayerData(playerid);
    return 1;
}

OnPlayerSpawn
Вызывается при спавне игрока:
Код:
public OnPlayerSpawn(playerid)
{
    SetPlayerHealth(playerid, 100.0);
    GivePlayerWeapon(playerid, 24, 100);
    return 1;
}

OnPlayerDeath
Вызывается при смерти игрока:
Код:
public OnPlayerDeath(playerid, killerid, reason)
{
    if(killerid != INVALID_PLAYER_ID)
    {
        new string[128];
        format(string, sizeof(string), "Вы убили %s", GetPlayerName(killerid));
        SendClientMessage(playerid, -1, string);
    }
    return 1;
}

OnPlayerCommandText
Обработка команд игрока:
Код:
public OnPlayerCommandText(playerid, cmdtext[])
{
    if(!strcmp(cmdtext, "/help", true))
    {
        SendClientMessage(playerid, -1, "Доступные команды: /help, /stats");
        return 1;
    }
    return 0;
}

OnDialogResponse
Обработка ответов на диалоги:
Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if(dialogid == DIALOG_LOGIN)
    {
        if(response)
        {
            // Обработка входа
        }
    }
    return 1;
}

Это основные колбэки. Изучайте документацию для полного списка!
 

1 человек читают эту тему (Всего: 1, Пользователей: 0, Гостей: 1)

Сверху