PDA

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



L0ndl3m
23.03.2014, 23:38
Функция ищет в аргументах строку, указанная в первом параметре.

Возвращает: ID аргумента, найденной строки. (Если строка не нашлась, то возвращает: -1)



stock strswitch(const cmpstr[], const ...)
{
new
n = numargs(),
a = 1;

do
{
new
argstr[31],
i = 0;

while((argstr[i] = getarg(a, i)))
i++;
if(strcmp(cmpstr, argstr) == 0)
return a;
}
while(++a < n);
return -1;
}





static const
str[] = "Salvador";

switch(strswitch(str, "Londlem", "Salvador", "Other name"))
{
case 1:
print("Londlem"); // Начинается с 1, так как первый аргумент - массив, который сравнивается
case 2:
print("Salvador");
case 3:
print("Other name");
case -1:
print("Не найдено");
}

В итоге вернёт 2 и в консоль будет выведено: "Salvador"




static const
str[] = "Pro-Pawn.Ru",
num = strswitch(str, "Londlem", "Salvador", "Other name");

if(num == 1)
print("Londlem"); // Начинается с 1, так как первый аргумент - массив, который сравнивается
else if(num == 2)
print("Salvador");
else if(num == 3)
print("Other name");
else if(num == -1)
print("Не найдено");

В итоге вернёт -1 и в консоль будет выведено: "Не найдено"


Так же можно использовать в public OnPlayerCommandText:


switch(strswitch(cmdtext, "/hp", "/ar", "/deagle", "/slap"))
{
case 1:
return SetPlayerHealth(playerid, 100.0); // case 1: 1 - ID команды из списка (/hp)
case 2:
return SetPlayerArmour(playerid, 100.0); // case 2: 2 - ID команды из списка (/ar)
case 3:
return GivePlayerWeapon(playerid, 24, 100); // case 3: 3 - ID команды из списка (/deagle)
case 4: // case 4: 4 - ID команды из списка (/slap)
{
new
Float: p_pos_x,
Float: p_pos_y,
Float: p_pos_z;

GetPlayerPos(playerid, p_pos_x, p_pos_y, p_pos_z);
return SetPlayerPos(playerid, p_pos_x, p_pos_y, p_pos_z + 5);
}
case -1:
return SendClientMessage(playerid, 0xFF0000FF, "Такой команды не существует."); // case -1: -1 - ID не существующей строки, указанной в параметрах
}


Автор статьи: Londlem (http://pro-pawn.ru/member.php?2057-Londlem)

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

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

Marik
24.03.2014, 18:31
По сути, очень нужная штучка)