PDA

Просмотр полной версии : [Вопрос] Помогите перевести команду на ZCMD



Айболит
21.08.2014, 01:12
Здравствуйте, я перевожу команды на более быстрый движок DC_CMD, по тестам он хорош, так вот, большинство команд я перевел, все работает, данную команду я тоже перевел, Но, она не работает, хочу узнать, как правильно переводить... за +.

new cmd[128], tmp[128], idx, giveplayerid, string[256];
cmd = strtok(cmdtext, idx);

if(!strcmp(cmd, "/hospital", true))
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) return SendClientMessage(playerid, 0xFFFFFFFF, "/hospital [id] [койки].");
new cmdko = strval(tmp);
if(!strlen(tmp)) return SendClientMessage(playerid, 0xFFFFFFFF, "/hospital [id] [койки].");
if(cmdko < 1 || cmdko > 8) return SendClientMessage(playerid, 0xAFAFAFAA, "/hospital [id] [койки].");
new playername[MAX_PLAYER_NAME];
GetPlayerName(playerid, playername, sizeof(playername));
new Float:health;
GetPlayerHealth(playerid,health);
if(health > 99.0) return SendClientMessage(playerid, -1, "{FF1E00}(Hospital){FFFFFF} {F0F0F0}Вы здоровы,и не нуждаетесь в лечение.");
{
if(cmdko == 1) //койки ид {
if(Player[playerid][pK1] == 11) { SendClientMessage(playerid, -1, "{FF1E00}(Hospital){FFFFFF} {F0F0F0}Койка №1 занята."); return 1; }
if(Player[playerid][pBolproB] == 1) { SendClientMessage(playerid, -1, "{FF1E00}(Hospital){FFFFFF} {F0F0F0}Ошибка [Обход системы]."); return 1; }
if(IsPlayerInRangeOfPoint(playerid, 3.0, 2679.6970,-1825.4342,278.4224)) {
for(new i;i < MAX_PLAYERS;i++) { Player[i][pK1] = 11; }
SetPVarInt(playerid, "bolhp_koika_timer", SetTimerEx("bolhpkoika", 1000 * 10, true, "i", playerid));
Player[playerid][pBolproB] = 1; Player[playerid][pkRazgoBor] = 1;
SetPlayerFacingAngle( playerid, 180 ); // Игрок стоит на север //Север (0) //(90) Запад //Восток (270) //Юг (180)
AddPlayerClass(141,2679.6875,-1826.1563,278.4150,181.4451,0,0,0,0,0,0); // g
SetPlayerPos(playerid,2679.6875,-1826.1563,278.4150);
TogglePlayerControllable(playerid, false); new str[128];
SendClientMessage(playerid, 0xFF6E00FF, "{FF1E00}(Hospital){FFFFFF} {F0F0F0}Вы заняли койку №1"); Delete3DTextLabel(ko[0]);
format( str, sizeof( str ), "Койка занята: %s.", playername );
ko[0] = Create3DTextLabel(str,0xFF6E00FF,2679.6970,-1825.4342,278.4224,10.0,0,1); //3d TEXT
ApplyAnimation( playerid, "BEACH", "SitnWait_loop_W", 4.1, 1, 1, 1, 1, 1 ); }
else {SendClientMessage(playerid, -1, "{FF1E00}(Ошибка){FFFFFF} {F0F0F0}Вы должны находиться возле койки №1");} }

Gressie
21.08.2014, 04:04
У вас код не читабельный, + скобок не хватает

- - - Добавлено - - -

Перевел, пробуй:

CMD:hospital(playerid, params[])
{
if(sscanf(params, "d", params[0])) return SendClientMessage(playerid, 0xFFFFFFFF, "/hospital [id] [койки].");
if(params[0] < 1 || params[0] > 8) return SendClientMessage(playerid, 0xAFAFAFAA, "/hospital [id] [койки].");
new Float:health;
GetPlayerHealth(playerid,health);
if(health > 99.0) return SendClientMessage(playerid, -1, "{FF1E00}(Hospital){FFFFFF} {F0F0F0}Вы здоровы,и не нуждаетесь в лечение.");
if(params[0] == 1) //койки ид
{
if(Player[playerid][pK1] == 11) return SendClientMessage(playerid, -1, "{FF1E00}(Hospital){FFFFFF} {F0F0F0}Койка №1 занята.");
if(Player[playerid][pBolproB] == 1) return SendClientMessage(playerid, -1, "{FF1E00}(Hospital){FFFFFF} {F0F0F0}Ошибка [Обход системы].");
if(!IsPlayerInRangeOfPoint(playerid, 3.0, 2679.6970,-1825.4342,278.4224)) return SendClientMessage(playerid, -1, "{FF1E00}(Ошибка){FFFFFF} {F0F0F0}Вы должны находиться возле койки №1");
for(new i;i < MAX_PLAYERS;i++) Player[i][pK1] = 11;
SetPVarInt(playerid, "bolhp_koika_timer", SetTimerEx("bolhpkoika", 1000 * 10, true, "i", playerid));
Player[playerid][pBolproB] = 1;
Player[playerid][pkRazgoBor] = 1;
SetPlayerFacingAngle( playerid, 180 ); // Игрок стоит на север //Север (0) //(90) Запад //Восток (270) //Юг (180)
AddPlayerClass(141,2679.6875,-1826.1563,278.4150,181.4451,0,0,0,0,0,0); // g
SetPlayerPos(playerid,2679.6875,-1826.1563,278.4150);
TogglePlayerControllable(playerid, false);
new str[128];
SendClientMessage(playerid, 0xFF6E00FF, "{FF1E00}(Hospital){FFFFFF} {F0F0F0}Вы заняли койку №1");
Delete3DTextLabel(ko[0]);
format( str, sizeof( str ), "Койка занята: %s.", Player[playerid][pName] );
ko[0] = Create3DTextLabel(str,0xFF6E00FF,2679.6970,-1825.4342,278.4224,10.0,0,1); //3d TEXT
ApplyAnimation( playerid, "BEACH", "SitnWait_loop_W", 4.1, 1, 1, 1, 1, 1 );
}
return 1;
}

$continue$
21.08.2014, 04:43
Как то так уж что ли:


CMD:hospital(playerid, params[])
{
new Float: p_health, str[15 + MAX_PLAYER_NAME], p_name[MAX_PLAYER_NAME];
GetPlayerName(playerid, p_name, sizeof(p_name));
GetPlayerHealth(playerid, p_health);
if(sscanf(params, "d", params[0])) return SendClientMessage(playerid, 0xAFAFAFAA, "/hospital [id] [койки].");
if(params[0] < 1 || params[0] > 8) return SendClientMessage(playerid, 0xAFAFAFAA, "/hospital [id] [койки].");
if(p_health > 99.0) return SendClientMessage(playerid, -1, "{FF1E00}(Hospital){FFFFFF} {F0F0F0}Вы здоровы,и не нуждаетесь в лечение.");
{
if(params[0] == 1) //койки ид
{
if(Player[playerid][pK1] == 11)
{
SendClientMessage(playerid, -1, "{FF1E00}(Hospital){FFFFFF} {F0F0F0}Койка №1 занята.");
return 1;
}
if(Player[playerid][pBolproB] == 1)
{
SendClientMessage(playerid, -1, "{FF1E00}(Hospital){FFFFFF} {F0F0F0}Ошибка [Обход системы].");
return 1;
}
if(IsPlayerInRangeOfPoint(playerid, 3.0, 2679.6970,-1825.4342,278.4224))
{
for(new i; GetMaxPlayers(); i++)
{
if(!IsPlayerConnected(i)) continue;
Player[i][pK1] = 11;
}
SetPVarInt(playerid, "bolhp_koika_timer", SetTimerEx("bolhpkoika", 1000 * 10, true, "i", playerid));
Player[playerid][pBolproB] = 1;
Player[playerid][pkRazgoBor] = 1;
SetPlayerFacingAngle(playerid, 180); // Игрок стоит на север //Север (0) //(90) Запад //Восток (270) //Юг (180)
AddPlayerClass(141,2679.6875,-1826.1563,278.4150,181.4451,0,0,0,0,0,0); // g
SetPlayerPos(playerid,2679.6875,-1826.1563,278.4150);
TogglePlayerControllable(playerid, false);
SendClientMessage(playerid, 0xFF6E00FF, "{FF1E00}(Hospital){FFFFFF} {F0F0F0}Вы заняли койку №1");
Delete3DTextLabel(ko[0]);
format(str, sizeof(str), "Койка занята: %s.", p_name);
ko[0] = Create3DTextLabel(str,0xFF6E00FF,2679.6970,-1825.4342,278.4224,10.0,0,1); //3d TEXT
ApplyAnimation(playerid, "BEACH", "SitnWait_loop_W", 4.1, 1, 1, 1, 1, 1 );
}
}
else
{
SendClientMessage(playerid, -1, "{FF1E00}(Ошибка){FFFFFF} {F0F0F0}Вы должны находиться возле койки №1");
}
}
}

Это зачем тут?


AddPlayerClass(141,2679.6875,-1826.1563,278.4150,181.4451,0,0,0,0,0,0);

И да ужасный переменный не чего не понятно..
Переменная pK1 что в себе хранит?

- - - Добавлено - - -

Цикл не много не правильно сделал, да что б ты в 101 пост. Администрация почему не работает кнопка редактирование?

for(new i = 0; i < GetMaxPlayers(); i++)

Айболит
21.08.2014, 11:42
У вас код не читабельный, + скобок не хватает

- - - Добавлено - - -

Перевел, пробуй:

CMD:hospital(playerid, params[])
{
if(sscanf(params, "d", params[0])) return SendClientMessage(playerid, 0xFFFFFFFF, "/hospital [id] [койки].");
if(params[0] < 1 || params[0] > 8) return SendClientMessage(playerid, 0xAFAFAFAA, "/hospital [id] [койки].");
new Float:health;
GetPlayerHealth(playerid,health);
if(health > 99.0) return SendClientMessage(playerid, -1, "{FF1E00}(Hospital){FFFFFF} {F0F0F0}Вы здоровы,и не нуждаетесь в лечение.");
if(params[0] == 1) //койки ид
{
if(Player[playerid][pK1] == 11) return SendClientMessage(playerid, -1, "{FF1E00}(Hospital){FFFFFF} {F0F0F0}Койка №1 занята.");
if(Player[playerid][pBolproB] == 1) return SendClientMessage(playerid, -1, "{FF1E00}(Hospital){FFFFFF} {F0F0F0}Ошибка [Обход системы].");
if(!IsPlayerInRangeOfPoint(playerid, 3.0, 2679.6970,-1825.4342,278.4224)) return SendClientMessage(playerid, -1, "{FF1E00}(Ошибка){FFFFFF} {F0F0F0}Вы должны находиться возле койки №1");
for(new i;i < MAX_PLAYERS;i++) Player[i][pK1] = 11;
SetPVarInt(playerid, "bolhp_koika_timer", SetTimerEx("bolhpkoika", 1000 * 10, true, "i", playerid));
Player[playerid][pBolproB] = 1;
Player[playerid][pkRazgoBor] = 1;
SetPlayerFacingAngle( playerid, 180 ); // Игрок стоит на север //Север (0) //(90) Запад //Восток (270) //Юг (180)
AddPlayerClass(141,2679.6875,-1826.1563,278.4150,181.4451,0,0,0,0,0,0); // g
SetPlayerPos(playerid,2679.6875,-1826.1563,278.4150);
TogglePlayerControllable(playerid, false);
new str[128];
SendClientMessage(playerid, 0xFF6E00FF, "{FF1E00}(Hospital){FFFFFF} {F0F0F0}Вы заняли койку №1");
Delete3DTextLabel(ko[0]);
format( str, sizeof( str ), "Койка занята: %s.", Player[playerid][pName] );
ko[0] = Create3DTextLabel(str,0xFF6E00FF,2679.6970,-1825.4342,278.4224,10.0,0,1); //3d TEXT
ApplyAnimation( playerid, "BEACH", "SitnWait_loop_W", 4.1, 1, 1, 1, 1, 1 );
}
return 1;
}

Спасибо..

- - - Добавлено - - -


Как то так уж что ли:


CMD:hospital(playerid, params[])
{
new Float: p_health, str[15 + MAX_PLAYER_NAME], p_name[MAX_PLAYER_NAME];
GetPlayerName(playerid, p_name, sizeof(p_name));
GetPlayerHealth(playerid, p_health);
if(sscanf(params, "d", params[0])) return SendClientMessage(playerid, 0xAFAFAFAA, "/hospital [id] [койки].");
if(params[0] < 1 || params[0] > 8) return SendClientMessage(playerid, 0xAFAFAFAA, "/hospital [id] [койки].");
if(p_health > 99.0) return SendClientMessage(playerid, -1, "{FF1E00}(Hospital){FFFFFF} {F0F0F0}Вы здоровы,и не нуждаетесь в лечение.");
{
if(params[0] == 1) //койки ид
{
if(Player[playerid][pK1] == 11)
{
SendClientMessage(playerid, -1, "{FF1E00}(Hospital){FFFFFF} {F0F0F0}Койка №1 занята.");
return 1;
}
if(Player[playerid][pBolproB] == 1)
{
SendClientMessage(playerid, -1, "{FF1E00}(Hospital){FFFFFF} {F0F0F0}Ошибка [Обход системы].");
return 1;
}
if(IsPlayerInRangeOfPoint(playerid, 3.0, 2679.6970,-1825.4342,278.4224))
{
for(new i; GetMaxPlayers(); i++)
{
if(!IsPlayerConnected(i)) continue;
Player[i][pK1] = 11;
}
SetPVarInt(playerid, "bolhp_koika_timer", SetTimerEx("bolhpkoika", 1000 * 10, true, "i", playerid));
Player[playerid][pBolproB] = 1;
Player[playerid][pkRazgoBor] = 1;
SetPlayerFacingAngle(playerid, 180); // Игрок стоит на север //Север (0) //(90) Запад //Восток (270) //Юг (180)
AddPlayerClass(141,2679.6875,-1826.1563,278.4150,181.4451,0,0,0,0,0,0); // g
SetPlayerPos(playerid,2679.6875,-1826.1563,278.4150);
TogglePlayerControllable(playerid, false);
SendClientMessage(playerid, 0xFF6E00FF, "{FF1E00}(Hospital){FFFFFF} {F0F0F0}Вы заняли койку №1");
Delete3DTextLabel(ko[0]);
format(str, sizeof(str), "Койка занята: %s.", p_name);
ko[0] = Create3DTextLabel(str,0xFF6E00FF,2679.6970,-1825.4342,278.4224,10.0,0,1); //3d TEXT
ApplyAnimation(playerid, "BEACH", "SitnWait_loop_W", 4.1, 1, 1, 1, 1, 1 );
}
}
else
{
SendClientMessage(playerid, -1, "{FF1E00}(Ошибка){FFFFFF} {F0F0F0}Вы должны находиться возле койки №1");
}
}
}

Это зачем тут?


AddPlayerClass(141,2679.6875,-1826.1563,278.4150,181.4451,0,0,0,0,0,0);

И да ужасный переменный не чего не понятно..
Переменная pK1 что в себе хранит?

- - - Добавлено - - -

Цикл не много не правильно сделал, да что б ты в 101 пост. Администрация почему не работает кнопка редактирование?

for(new i = 0; i < GetMaxPlayers(); i++)

Я вас не просил каждую строчку, в моек коде, комментировать, я писал так, как считал нужным. :blum3:

$continue$
21.08.2014, 13:46
Спасибо..

- - - Добавлено - - -

Н
Я вас не просил каждую строчку, в моек коде, комментировать, я писал так, как считал нужным. :blum3:
Ну удачи Вам с таким кодом ;)

Salvacore
21.08.2014, 13:54
Перфекционисты негодуют!

CMD:hospital(playerid, params[])
{
new
Float: p_health,
str[15 + MAX_PLAYER_NAME],
p_name[MAX_PLAYER_NAME]
;

GetPlayerName(playerid, p_name, sizeof(p_name));
GetPlayerHealth(playerid, p_health);

if(sscanf(params, "d", params[0]))
return SendClientMessage(playerid, 0xAFAFAFAA, "/hospital [id] [койки].");

if(params[0] < 1 || params[0] > 8)
return SendClientMessage(playerid, 0xAFAFAFAA, "/hospital [id] [койки].");

if(p_health > 99.0)
return SendClientMessage(playerid, -1, "{FF1E00}(Hospital){FFFFFF} {F0F0F0}Вы здоровы,и не нуждаетесь в лечение.");

{
if(params[0] == 1) //койки ид
{
if(Player[playerid][pK1] == 11)
return SendClientMessage(playerid, -1, "{FF1E00}(Hospital){FFFFFF} {F0F0F0}Койка №1 занята.");

if(Player[playerid][pBolproB] == 1)
return SendClientMessage(playerid, -1, "{FF1E00}(Hospital){FFFFFF} {F0F0F0}Ошибка [Обход системы].");

if(IsPlayerInRangeOfPoint(playerid, 3.0, 2679.6970,-1825.4342,278.4224))
{
for(new i; GetMaxPlayers(); i++)
{
if(!IsPlayerConnected(i))
continue;
Player[i][pK1] = 11;
}
SetPVarInt(playerid, "bolhp_koika_timer", SetTimerEx("bolhpkoika", 1000 * 10, true, "i", playerid));
Player[playerid][pBolproB] = 1;
Player[playerid][pkRazgoBor] = 1;
SetPlayerFacingAngle(playerid, 180); // Игрок стоит на север //Север (0) //(90) Запад //Восток (270) //Юг (180)
AddPlayerClass(141,2679.6875,-1826.1563,278.4150,181.4451,0,0,0,0,0,0); // g
SetPlayerPos(playerid,2679.6875,-1826.1563,278.4150);
TogglePlayerControllable(playerid, false);
SendClientMessage(playerid, 0xFF6E00FF, "{FF1E00}(Hospital){FFFFFF} {F0F0F0}Вы заняли койку №1");
Delete3DTextLabel(ko[0]);
format(str, sizeof(str), "Койка занята: %s.", p_name);
ko[0] = Create3DTextLabel(str,0xFF6E00FF,2679.6970,-1825.4342,278.4224,10.0,0,1); //3d TEXT
ApplyAnimation(playerid, "BEACH", "SitnWait_loop_W", 4.1, 1, 1, 1, 1, 1 );
}
}
else
SendClientMessage(playerid, -1, "{FF1E00}(Ошибка){FFFFFF} {F0F0F0}Вы должны находиться возле койки №1");
}
}

$continue$
21.08.2014, 15:31
Перфекционисты негодуют!

CMD:hospital(playerid, params[])
{
new
Float: p_health,
str[15 + MAX_PLAYER_NAME],
p_name[MAX_PLAYER_NAME]
;

GetPlayerName(playerid, p_name, sizeof(p_name));
GetPlayerHealth(playerid, p_health);

if(sscanf(params, "d", params[0]))
return SendClientMessage(playerid, 0xAFAFAFAA, "/hospital [id] [койки].");

if(params[0] < 1 || params[0] > 8)
return SendClientMessage(playerid, 0xAFAFAFAA, "/hospital [id] [койки].");

if(p_health > 99.0)
return SendClientMessage(playerid, -1, "{FF1E00}(Hospital){FFFFFF} {F0F0F0}Вы здоровы,и не нуждаетесь в лечение.");

{
if(params[0] == 1) //койки ид
{
if(Player[playerid][pK1] == 11)
return SendClientMessage(playerid, -1, "{FF1E00}(Hospital){FFFFFF} {F0F0F0}Койка №1 занята.");

if(Player[playerid][pBolproB] == 1)
return SendClientMessage(playerid, -1, "{FF1E00}(Hospital){FFFFFF} {F0F0F0}Ошибка [Обход системы].");

if(IsPlayerInRangeOfPoint(playerid, 3.0, 2679.6970,-1825.4342,278.4224))
{
for(new i; GetMaxPlayers(); i++)
{
if(!IsPlayerConnected(i))
continue;
Player[i][pK1] = 11;
}
SetPVarInt(playerid, "bolhp_koika_timer", SetTimerEx("bolhpkoika", 1000 * 10, true, "i", playerid));
Player[playerid][pBolproB] = 1;
Player[playerid][pkRazgoBor] = 1;
SetPlayerFacingAngle(playerid, 180); // Игрок стоит на север //Север (0) //(90) Запад //Восток (270) //Юг (180)
AddPlayerClass(141,2679.6875,-1826.1563,278.4150,181.4451,0,0,0,0,0,0); // g
SetPlayerPos(playerid,2679.6875,-1826.1563,278.4150);
TogglePlayerControllable(playerid, false);
SendClientMessage(playerid, 0xFF6E00FF, "{FF1E00}(Hospital){FFFFFF} {F0F0F0}Вы заняли койку №1");
Delete3DTextLabel(ko[0]);
format(str, sizeof(str), "Койка занята: %s.", p_name);
ko[0] = Create3DTextLabel(str,0xFF6E00FF,2679.6970,-1825.4342,278.4224,10.0,0,1); //3d TEXT
ApplyAnimation(playerid, "BEACH", "SitnWait_loop_W", 4.1, 1, 1, 1, 1, 1 );
}
}
else
SendClientMessage(playerid, -1, "{FF1E00}(Ошибка){FFFFFF} {F0F0F0}Вы должны находиться возле койки №1");
}
}
Мне интересно что же ты изменил?
Проверки черещ ретурн? Без скобок?
Или свой ужасный коддинг :help:

L0ndl3m
21.08.2014, 16:24
for(new i; GetMaxPlayers(); i++)Бесконечный цикл же. Кстати этот цикл медленее, чем цикл создателя темы...

$continue$
21.08.2014, 16:35
Бесконечный цикл же. Кстати этот цикл медленее, чем цикл создателя темы...

Бесконечный цикл и у создателя темы.


for(new i = 0; i < GetMaxPlayers(); i++)
{
if(!IsPlayerConnected(i)) continue;
Player[i][pK1] = 11;
break;
}

Только не думаю, что он заботиться об этом. Его пост выше

- - - Добавлено - - -

На счёт скорости, думаешь тут бешеная скорость нужна?

Salvacore
21.08.2014, 16:36
Мне интересно что же ты изменил?
Проверки черещ ретурн? Без скобок?
Или свой ужасный коддинг :help:
Я кинул свой вариант, не нравится?
Прыгай в окно.
Ты же Dalglish по-моему.

$continue$
21.08.2014, 16:41
Я кинул свой вариант, не нравится?
Прыгай в окно.
Ты же Dalglish по-моему.

Дак ты по сути не чего и не изменил.
Да, я Dalglish что дальше?

_______________________
Начинается опять -_-

Salvacore
21.08.2014, 16:44
Дак ты по сути не чего и не изменил.
Да, я Dalglish что дальше?

_______________________
Начинается опять -_-
Да-к по сути я и не тебе кидал, так что закрой варешку и пропускай мои посты.

$continue$
21.08.2014, 16:49
Да-к по сути я и не тебе кидал, так что закрой варешку и пропускай мои посты.

Окай, босс.

underwoker
21.08.2014, 18:06
Мне интересно что же ты изменил?
Проверки черещ ретурн? Без скобок?
Или свой ужасный коддинг :help:
lol :crazy::crazy:
"Ужасный коддинг" - убило.
А еще, какая разница? Человек помог? Помог. Ты вообще как касаешься этой помощи? Предложил свой вариант, вот и сиди с ним.

$continue$
21.08.2014, 18:28
lol :crazy::crazy:
"Ужасный коддинг" - убило.
А еще, какая разница? Человек помог? Помог. Ты вообще как касаешься этой помощи? Предложил свой вариант, вот и сиди с ним.

аха, я тоже помог, он просто скопировал мой вариант и переделал под свой нубо - оформление кода. А так же он изменил проверки и вот и все.

bredvix
21.08.2014, 18:35
аха, я тоже помог, он просто скопировал мой вариант и переделал под свой нубо - оформление кода. А так же он изменил проверки и вот и все.

У тебя бы команда не работала, т.к в конце ты не написал
return true;

$continue$
21.08.2014, 18:47
У тебя бы команда не работала, т.к в конце ты не написал
return true;

Не тестировал, ну извиняюсь.

L0ndl3m
21.08.2014, 19:07
У тебя бы команда не работала, т.к в конце ты не написал
return true;
У него бы команда вообще не сработала, так как там произошёл бы выход за пределы массива, из-за бесконечного цикла. :grin:

$continue$
21.08.2014, 19:15
У него бы команда вообще не сработала, так как там произошёл бы выход за пределы массива, из-за бесконечного цикла. :grin:

???

L0ndl3m
21.08.2014, 19:19
???

Бесконечный цикл же. Кстати этот цикл медленее, чем цикл создателя темы...
Вот же, код неверно построен.