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

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

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

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

Steve_Johnson

Компетентный
Доброго Времени Суток Уважаемые Пользователи Pawno-Info!
В данном Уроке я вам расскажу, когда стоит использовать Public, а когда Stock.


Начнем с того, что Public бывают двух видов:
1. Авто Вызываемые
2. Не Авто Вызываемые (когда вы сами вызываете его с помощью forward'ов)

В языке Pawn есть много Авто Вызываемых Public'ов

PHP:
public OnGameModeInit() // При включении сервера

public OnGameModeExit() // При отключении сервера

public OnPlayerRequestClass(playerid, classid) // При выборе игроком скина

public OnPlayerConnect(playerid)  // При подключении игрока к серверу

public OnPlayerDisconnect(playerid, reason) // При отключении игрока от сервера

public OnPlayerSpawn(playerid) // При спавне игрока

public OnPlayerDeath(playerid, killerid, reason) // При смерти игрока

public OnVehicleSpawn(vehicleid) // При спавне автомобиля

public OnVehicleDeath(vehicleid, killerid) // При уничтожении автомобиля

public OnPlayerText(playerid, text[])  // При отправке игроком сообщения в чат

public OnPlayerCommandText(playerid, cmdtext[]) // При введении игроком команды

public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger) // Вызывается, когда игрок садится в транспорт

public OnPlayerExitVehicle(playerid, vehicleid) // Вызывается, когда игрок выходит из транспорта

public OnPlayerStateChange(playerid, newstate, oldstate) // Изменение игроком статуса (в транспорте. пешком и т.д)

public OnPlayerEnterCheckpoint(playerid) // Наступление игроком на Чекпоинт

public OnPlayerLeaveCheckpoint(playerid) // Выход игроком с Чекпоинта

public OnPlayerEnterRaceCheckpoint(playerid) // Наступление игрока на Гоночный Чекпоинт

public OnPlayerEnterRaceCheckpoint(playerid) // Выход игрока с Гоночного Чекпоинт

public OnPlayerPickUpPickup(playerid, pickupid) // Наступление игроком на пикап

public OnRconCommand(cmd[]) // При вводе игроком Ркон-Команды

public OnPlayerUpdate(playerid) // Данный паблик обновляется 25 раз в секунду(если меня не обманывает память)

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) // нажатие игроком на определенную клавишу

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) // нажатие игроком клавиш в диалоге
Так же вы можете создать собственный Public
Для начала нужно создать forward
PHP:
forward Player(playerid);
А потом ко всем Public'ам приписать
PHP:
public Player(playerid)
Stock может быть и функцией, но так же может быть и переменной, которая при условии не использования в моде, будет проигнорирована при компилировании.
Один минус Stock'ов в том, что они не могут быть использованы в таймерах.

Создать Stock очень просто, вот пример:
PHP:
stock Player(playerid)
{
GivePlayerMoney(playerid, 3000);
SendClientMessage(playerid, -1, "Вы получили 3.000$");
}
Или
PHP:
stock StringInStock(gagasha, playerid, newstring[])
{
format(newstring, 25, "Стадия: %d/3 ID:%d", gagasha, playerid);
SendClientMessage(playerid, -1, newstring);
}
Использование:
PHP:
StringInStock(2, playerid); // Получится - Стадия 2/3. ID: playerid
Ну вот вроде-бы и всё!
Если вы нашли какую-либо недоработку, сообщите!

Автор Урока: Я(Steve_Johnson)
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу