PDA

Просмотр полной версии : [Native] CreateExplosionForPlayer



L0ndl3m
29.04.2014, 19:21
Эта функция создаёт взрыв, видимый одному игроку. Этой функцией можно изолировать других игроков от взрыва.

Примечание:
Эта функция был добавлена в SA:MP 0.3z R2-2 и не будет работать в ранних версиях!

Параметры:

playerid - ID подрываемого игрока
Float: X - Координата взрыва по оси X
Float: Y - Координата взрыва по оси Y
Float: Z - Координата взрыва по оси Z
type - Тип взрыва (типы взрыва (http://wiki.sa-mp.com/wiki/Explosion_List))
Float: Radius - Радиус взрыва


Возвращаемые значения:
Функция всегда возвращает 1, даже если ей не удалось выполниться (не существует игрока, неверный радиус, или неизвестный тип взрыва).

Внимание:
Есть ограничение на то, сколько взрывов может увидеть сразу игрок. Приблизительно 10.

Пример использования на команде:



if(strcmp(cmdtext, "/explode", true, 8) == 0)
{
if(cmdtext[8] == 0)
return SendClientMessage(playerid, -1, "Используйте: /explode [playerid]");
new
targetid = strval(cmdtext[9])
;
if(IsPlayerConnected(targetid) == 0)
return SendClientMessage(playerid, -1, "Такого игрока нет на сервере.");

static const
fmt_str[] = "Игрок %s (%d) был взорван администрацией."
;
new
str[sizeof(fmt_str) - 2 + MAX_PLAYER_NAME - 2 + 3],
Float: t_id_pos_x,
Float: t_id_pos_y,
Float: t_id_pos_z
;
GetPlayerPos(targetid, t_id_pos_x, t_id_pos_y, t_id_pos_z);
CreateExplosionForPlayer(targetid, t_id_pos_x, t_id_pos_y, t_id_pos_z, 0, 10.0); // Вот здесь!
GetPlayerName(targetid, str, MAX_PLAYER_NAME);
format(str, sizeof(str), fmt_str, str, targetid);
return SendClientMessageToAll(-1, str);
}





CMD:explode(playerid, params[])
{
new
targetid
;
if(sscanf(params, "u", targetid))
return SendClientMessage(playerid, -1, "Используйте: /explode [playerid]");
if(IsPlayerConnected(targetid) == 0)
return SendClientMessage(playerid, -1, "Такого игрока нет на сервере.");
static const
fmt_str[] = "Игрок %s (%d) был взорван администрацией."
;
new
str[sizeof(fmt_str) - 2 + MAX_PLAYER_NAME - 2 + 3],
Float: t_id_pos_x,
Float: t_id_pos_y,
Float: t_id_pos_z
;
GetPlayerPos(targetid, t_id_pos_x, t_id_pos_y, t_id_pos_z);
CreateExplosionForPlayer(targetid, t_id_pos_x, t_id_pos_y, t_id_pos_z, 0, 10.0); // Вот здесь!
GetPlayerName(targetid, str, MAX_PLAYER_NAME);
format(str, sizeof(str), fmt_str, str, targetid);
return SendClientMessageToAll(-1, str);
}



Перевод: Londlem (http://pro-pawn.ru/member.php?2057-Londlem)
Оригинал: http://wiki.sa-mp.com/wiki/CreateExplosionForPlayer (http://wiki.sa-mp.com/wiki/CreateExplosionForPlayer)

Специально для: Pro-Pawn.Ru (http://pro-pawn.ru)

Копирование данной статьи без разрешения автора запрещено!

Salvacore
29.04.2014, 19:24
Спасибо.