DeIMoS
Мастер
Представляю вашему вниманию команду, которую я писал для одной темы в разделе "Вопросы по программированию в Pawn", но тема была закрыта и код остался бесхозным
Не пропадать же добру.
В данной команде показан сам принцип того, как можно организовать большие списки какой-либо информации не прибегая к насилованию стэка. Такой подход подойдёт как для ShowPlayerDialog, так и для SendClientMessage (в SendClientMessage вместо того, чтоб заменять нуль-символ на "\0", просто нужно показывать выводить каждый массив в чат)
Собственно, код:
Не самый компактный вариант, но самый производительный из тех, что я видел в паблике
В данной команде показан сам принцип того, как можно организовать большие списки какой-либо информации не прибегая к насилованию стэка. Такой подход подойдёт как для ShowPlayerDialog, так и для SendClientMessage (в SendClientMessage вместо того, чтоб заменять нуль-символ на "\0", просто нужно показывать выводить каждый массив в чат)
Собственно, код:
PHP:
CMD:ahelp(playerid)
{
if(!PlayerInfo[playerid][bAdmin]) return 1;
static a_level_1[] =
{
"{FFFFFF}Уровень 1: /atipster /gg /re /pm /admin(/a) /alogin /tp /ap /alock /hp /ram /o /aad /unprison"
};
static a_level_2[] =
{
"Уровень 2: /getstats /fstyle /prison /mute /sp /skin /iwep /slap /goto /kick /money"
};
static a_level_3[] =
{
"Уровень 3: /warehouse /mark /gotomark /gethere /spveh /getip /pgetip /agetipreg /geton /jailed"
};
static a_level_4[] =
{
"Уровень 4: /unban /balance /spawncars /sethp /house /freeze"
};
static a_level_5[] =
{
"Уровень 5: /chat /fuel /warn /fuelcars"
};
static a_level_6[] =
{
"Уровень 6: /setskin /ban /setskill /uval"
};
static a_level_7[] =
{
"Уровень 7: /givemoney /sban /ainfoip /delveh /delvehall /veh /givegun"
};
static a_level_8[] =
{
"Уровень 8: /unbanip /amusic /gotoderby"
};
static a_level_9[] =
{
"Уровень 9: /offwarn /offban /templeader"
};
static a_level_10[] =
{
"Уровень 10: /iban /banip /unwarn /agiverank"
};
static a_level_11[] =
{
"Уровень 11: /gzcolor /setmats /switchmafia /makeleader"
};
static a_level_12[] =
{
"Уровень 12: /edit /startpb /startrace"
};
static a_level_12[] =
{
"Уровень 13-14: /nick /getadmin /addbiz /addeat /adelpos /giverubete /mka /sniat /makehelper /narkopriton /ghetto"
};
switch(PlayerInfo[playerid][bAdmin])
{
case 1:
{
a_level_1[sizeof(a_level_1)-1] = '\0';
}
case 2:
{
a_level_1[sizeof(a_level_1)-1] = '\n';
a_level_2[sizeof(a_level_2)-1] = '\0';
}
case 3:
{
a_level_1[sizeof(a_level_1)-1] = '\n';
a_level_2[sizeof(a_level_2)-1] = '\n';
a_level_3[sizeof(a_level_3)-1] = '\0';
}
case 4:
{
a_level_1[sizeof(a_level_1)-1] = '\n';
a_level_2[sizeof(a_level_2)-1] = '\n';
a_level_3[sizeof(a_level_3)-1] = '\n';
a_level_4[sizeof(a_level_4)-1] = '\0';
}
case 5:
{
a_level_1[sizeof(a_level_1)-1] = '\n';
a_level_2[sizeof(a_level_2)-1] = '\n';
a_level_3[sizeof(a_level_3)-1] = '\n';
a_level_4[sizeof(a_level_4)-1] = '\n';
a_level_5[sizeof(a_level_5)-1] = '\0';
}
case 6:
{
a_level_1[sizeof(a_level_1)-1] = '\n';
a_level_2[sizeof(a_level_2)-1] = '\n';
a_level_3[sizeof(a_level_3)-1] = '\n';
a_level_4[sizeof(a_level_4)-1] = '\n';
a_level_5[sizeof(a_level_5)-1] = '\n';
a_level_6[sizeof(a_level_6)-1] = '\0';
}
case 7:
{
a_level_1[sizeof(a_level_1)-1] = '\n';
a_level_2[sizeof(a_level_2)-1] = '\n';
a_level_3[sizeof(a_level_3)-1] = '\n';
a_level_4[sizeof(a_level_4)-1] = '\n';
a_level_5[sizeof(a_level_5)-1] = '\n';
a_level_6[sizeof(a_level_6)-1] = '\n';
a_level_7[sizeof(a_level_7)-1] = '\0';
}
case 8:
{
a_level_1[sizeof(a_level_1)-1] = '\n';
a_level_2[sizeof(a_level_2)-1] = '\n';
a_level_3[sizeof(a_level_3)-1] = '\n';
a_level_4[sizeof(a_level_4)-1] = '\n';
a_level_5[sizeof(a_level_5)-1] = '\n';
a_level_6[sizeof(a_level_6)-1] = '\n';
a_level_7[sizeof(a_level_7)-1] = '\n';
a_level_8[sizeof(a_level_8)-1] = '\0';
}
case 9:
{
a_level_1[sizeof(a_level_1)-1] = '\n';
a_level_2[sizeof(a_level_2)-1] = '\n';
a_level_3[sizeof(a_level_3)-1] = '\n';
a_level_4[sizeof(a_level_4)-1] = '\n';
a_level_5[sizeof(a_level_5)-1] = '\n';
a_level_6[sizeof(a_level_6)-1] = '\n';
a_level_7[sizeof(a_level_7)-1] = '\n';
a_level_8[sizeof(a_level_8)-1] = '\n';
a_level_9[sizeof(a_level_9)-1] = '\0';
}
case 10:
{
a_level_1[sizeof(a_level_1)-1] = '\n';
a_level_2[sizeof(a_level_2)-1] = '\n';
a_level_3[sizeof(a_level_3)-1] = '\n';
a_level_4[sizeof(a_level_4)-1] = '\n';
a_level_5[sizeof(a_level_5)-1] = '\n';
a_level_6[sizeof(a_level_6)-1] = '\n';
a_level_7[sizeof(a_level_7)-1] = '\n';
a_level_8[sizeof(a_level_8)-1] = '\n';
a_level_9[sizeof(a_level_9)-1] = '\n';
a_level_10[sizeof(a_level_10)-1] = '\0';
}
case 11:
{
a_level_1[sizeof(a_level_1)-1] = '\n';
a_level_2[sizeof(a_level_2)-1] = '\n';
a_level_3[sizeof(a_level_3)-1] = '\n';
a_level_4[sizeof(a_level_4)-1] = '\n';
a_level_5[sizeof(a_level_5)-1] = '\n';
a_level_6[sizeof(a_level_6)-1] = '\n';
a_level_7[sizeof(a_level_7)-1] = '\n';
a_level_8[sizeof(a_level_8)-1] = '\n';
a_level_9[sizeof(a_level_9)-1] = '\n';
a_level_10[sizeof(a_level_10)-1] = '\n';
a_level_11[sizeof(a_level_11)-1] = '\0';
}
case 12:
{
a_level_1[sizeof(a_level_1)-1] = '\n';
a_level_2[sizeof(a_level_2)-1] = '\n';
a_level_3[sizeof(a_level_3)-1] = '\n';
a_level_4[sizeof(a_level_4)-1] = '\n';
a_level_5[sizeof(a_level_5)-1] = '\n';
a_level_6[sizeof(a_level_6)-1] = '\n';
a_level_7[sizeof(a_level_7)-1] = '\n';
a_level_8[sizeof(a_level_8)-1] = '\n';
a_level_9[sizeof(a_level_9)-1] = '\n';
a_level_10[sizeof(a_level_10)-1] = '\n';
a_level_11[sizeof(a_level_11)-1] = '\n';
a_level_12[sizeof(a_level_12)-1] = '\0';
}
default:
{
a_level_1[sizeof(a_level_1)-1] = '\n';
a_level_2[sizeof(a_level_2)-1] = '\n';
a_level_3[sizeof(a_level_3)-1] = '\n';
a_level_4[sizeof(a_level_4)-1] = '\n';
a_level_5[sizeof(a_level_5)-1] = '\n';
a_level_6[sizeof(a_level_6)-1] = '\n';
a_level_7[sizeof(a_level_7)-1] = '\n';
a_level_8[sizeof(a_level_8)-1] = '\n';
a_level_9[sizeof(a_level_9)-1] = '\n';
a_level_10[sizeof(a_level_10)-1] = '\n';
a_level_11[sizeof(a_level_11)-1] = '\n';
a_level_12[sizeof(a_level_12)-1] = '\n';
a_level_13[sizeof(a_level_13)-1] = '\0';
}
}
SPD(playerid, 0000, DIALOG_STYLE_MSGBOX, ""SERVER"Команды администратора", a_level_1, "Закрыть", "");
return 1;
}
Не самый компактный вариант, но самый производительный из тех, что я видел в паблике
