PDA

Просмотр полной версии : [CMD] /skydive (Прыжок с парашютом)



Димарио
12.02.2017, 23:12
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;
}

DeimoS
12.02.2017, 23:26
я ещё новичок в павн скриптинге, поэтому особо строго не судите

Чпок (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

Seviel
13.02.2017, 01:13
Оригинальная команда, мне нравится.

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
Но в целом это не столь важно.
Команда самая обычная, можно было бы как-то расширить её функционал хотя-бы возможностью задавать некие параметры с высотой

DoMoBoy
18.03.2017, 14:56
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;
}

DeimoS
18.03.2017, 15:59
#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;
}
Всё равно типы переменных спутаны

ziggi
19.03.2017, 13:41
Кстати, люди обычно прыгают с парашютом, а не с парашюта.