Просмотр полной версии : [CMD] /skydive (Прыжок с парашютом)
Edited by DeimoS:
CMD:skydive(playerid)
{
static
Float:pos_x,
Float:pos_y,
Float:pos_z,
skydive_antiflood[MAX_PLAYERS],
timestamp;
if(skydive_antiflood[playerid] > (timestamp = gettime()))
return SendClientMessage(playerid, -1, "Использование команды возможно раз в 30 секунд!");
skydive_antiflood[playerid] = timestamp+30;
GetPlayerPos(playerid, pos_x, pos_y, pos_z);
SetPlayerPos(playerid, pos_x, pos_y, pos_z+1000.0);
GivePlayerWeapon(playerid, WEAPON_PARACHUTE, 1);
SendClientMessage(playerid, -1, "Вам выдан парашют, летите!");
return 1;
}
я ещё новичок в павн скриптинге, поэтому особо строго не судите
Чпок (http://pro-pawn.ru/showthread.php?4082-%D0%A3%D1%87%D0%B5%D0%B1%D0%BD%D0%B8%D0%BA-Pro-Pawn-ru&p=80288&viewfull=1#post80288)
Не спешите выставлять напоказ свои первые работы. Выкладывая плохо написанный код вы только испортите себе репутацию (по крайней мере, на этом форуме точно), и отговорки в стиле "первая работа, не судите строго" погоды не изменят. Взять тот же г-и, там почти каждый день выкладывает подобные "шедевры" - догадайтесь, на что у них стал похож раздел разработок. Ухудшает ситуацию ещё и то, что другие берут пример с тех работ и там же выкладывают свои - этакий круговорот быдлокода.
Касаемо кода: ID оружия лучше записывать в виде имени макроса (http://wiki.sa-mp.com/wiki/Weapons), чтоб избавить себя от последующих проблем и улучшить читаемость
Заменил скриншот отрывка поста на цитату. //DC
Оригинальная команда, мне нравится.
Digital_Penetrator
13.02.2017, 17:56
Для новичка сойдет,лови плюс.Но этого еще мало для тру скриптера. Так что,дерзай!:mda:
Nexius_Tailer
13.02.2017, 22:49
Вообще хорошо бы не путать Float с int, как здесь:
SetPlayerPos(playerid, X, Y, Z+500); //500.0
Но в целом это не столь важно.
Команда самая обычная, можно было бы как-то расширить её функционал хотя-бы возможностью задавать некие параметры с высотой
DC_CMD/ZCMD
И мне кажется 500 как то мало.. Слишком быстрое падение.
И кстати, лучше установить ограничение по времени на использование этой команды, так как быстро ее вводя, игрок может до бесконечности перемещаться вверх. Если же игрок введет команду, но уже начал падать - он телепортируется, но разобьется в воздухе.
#define PARACHUTE 46
CMD:skydive(playerid)
{
new Float:X, Float:Y, Float:Z;
GetPlayerPos(playerid, X, Y, Z);
SetPlayerPos(playerid, X, Y, Z+1000);
GivePlayerWeapon(playerid, PARACHUTE, 1);
SendClientMessage(playerid, -1, "Вам выдан парашют, летите!");
return 1;
}
#define PARACHUTE 46
WEAPON_PARACHUTE (http://wiki.sa-mp.com/wiki/Weapons)
CMD:skydive(playerid)
{
static
Float:pos_x,
Float:pos_y,
Float:pos_z,
skydive_antiflood[MAX_PLAYERS],
timestamp;
if(skydive_antiflood[playerid] > (timestamp = gettime()))
return SendClientMessage(playerid, -1, "Использование команды возможно раз в 30 секунд!");
skydive_antiflood[playerid] = timestamp+30;
GetPlayerPos(playerid, pos_x, pos_y, pos_z);
SetPlayerPos(playerid, pos_x, pos_y, pos_z+1000.0);
GivePlayerWeapon(playerid, WEAPON_PARACHUTE, 1);
SendClientMessage(playerid, -1, "Вам выдан парашют, летите!");
return 1;
}
Nexius_Tailer
19.03.2017, 13:22
DC_CMD/ZCMD
И мне кажется 500 как то мало.. Слишком быстрое падение.
И кстати, лучше установить ограничение по времени на использование этой команды, так как быстро ее вводя, игрок может до бесконечности перемещаться вверх. Если же игрок введет команду, но уже начал падать - он телепортируется, но разобьется в воздухе.
#define PARACHUTE 46
CMD:skydive(playerid)
{
new Float:X, Float:Y, Float:Z;
GetPlayerPos(playerid, X, Y, Z);
SetPlayerPos(playerid, X, Y, Z+1000);
GivePlayerWeapon(playerid, PARACHUTE, 1);
SendClientMessage(playerid, -1, "Вам выдан парашют, летите!");
return 1;
}
Всё равно типы переменных спутаны
Кстати, люди обычно прыгают с парашютом, а не с парашюта.
Powered by vBulletin® Version 4.2.0 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot