Просмотр полной версии : [Вопрос] Помогите перевести команду на ZCMD
Здравствуйте, я перевожу команды на более быстрый движок 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");} }
У вас код не читабельный, + скобок не хватает
- - - Добавлено - - -
Перевел, пробуй:
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++)
У вас код не читабельный, + скобок не хватает
- - - Добавлено - - -
Перевел, пробуй:
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:
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:
"Ужасный коддинг" - убило.
А еще, какая разница? Человек помог? Помог. Ты вообще как касаешься этой помощи? Предложил свой вариант, вот и сиди с ним.
аха, я тоже помог, он просто скопировал мой вариант и переделал под свой нубо - оформление кода. А так же он изменил проверки и вот и все.
аха, я тоже помог, он просто скопировал мой вариант и переделал под свой нубо - оформление кода. А так же он изменил проверки и вот и все.
У тебя бы команда не работала, т.к в конце ты не написал
return true;
$continue$
21.08.2014, 18:47
У тебя бы команда не работала, т.к в конце ты не написал
return true;
Не тестировал, ну извиняюсь.
У тебя бы команда не работала, т.к в конце ты не написал
return true;
У него бы команда вообще не сработала, так как там произошёл бы выход за пределы массива, из-за бесконечного цикла. :grin:
$continue$
21.08.2014, 19:15
У него бы команда вообще не сработала, так как там произошёл бы выход за пределы массива, из-за бесконечного цикла. :grin:
???
???
Бесконечный цикл же. Кстати этот цикл медленее, чем цикл создателя темы...
Вот же, код неверно построен.
Powered by vBulletin® Version 4.2.0 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot