Еще раз тебя приветствую. У меня появился еще вопросик: 'Как сделать простую систему уровня по фрагам на Mysql r39-2?' Искал в Google and Yandex. Нашел только одну и то она на файлах. Мне бы по проще. Просто количество убийств и прогресс уровня.
Вид для печати
Еще раз тебя приветствую. У меня появился еще вопросик: 'Как сделать простую систему уровня по фрагам на Mysql r39-2?' Искал в Google and Yandex. Нашел только одну и то она на файлах. Мне бы по проще. Просто количество убийств и прогресс уровня.
Разве система уровней как-то связана с MySQL или файлами? О_о
Просто записывайте число убийств в массив и далее делайте проверки по типу
И после уже записывайте число убийств в БДPHP код:
if(0 <= Массив_с_убийствами <= 10)
{
//Первый уровень
}
else if(11 <= Массив_с_убийствами <= 50)
{
//Второй уровень
}
//...
Вот нечего мне делать и я решил все таки доделать это. Дак вот. Как построить этот массив? Мне просто надое, так сказать, сделать проверку на количество убитый человек и при коннекте выдавать ему уровень, в зависимости от этого количества? А можно сделать так, чтобы все это происходило непосредственно в игре. И тебе выдавался уже сохраненный уровень. Меня вот это интересует.
самый банальный пример:
Каждый 50 убийств будет давать новый уровеньPHP код:
if( GetPlayerScore( playerid ) % 50 == 0 ){
//level up
}
Ну вот тебе самый элементарный пример скрипта, когда разница в фрагах между уровнями может быть разная.
Глобально:
В этом stock производи все действия, которые должны происходить при получении нового уровня/обновлении числа фрагов (например, текстдравы с фрагами/уровнем обновлять можно тут, дабы код не плодить)PHP код:
new PlayerScore[MAX_PLAYERS];//Или же в enum создай новый член
new PlayerLevel[MAX_PLAYERS];//Или же в enum создай новый член
Ну и теперь в OnPlayerDeathPHP код:
stock UpdatePlayerLevel(playerid)
{
if(PlayerScore[playerid] < 10)
{
PlayerLevel[playerid] = 1;
}
else if(10 <= PlayerScore[playerid] < 50)
{
PlayerLevel[playerid] = 2;
}
else if(50 <= PlayerScore[playerid] < 100)
{
PlayerLevel[playerid] = 3;
}
else if(100 <= PlayerScore[playerid] < 200)
{
PlayerLevel[playerid] = 3;
}
//...
return 1;
}
А так же OnPlayerSpawn + при загрузке аккаунта (можно прямо после загрузки строки с фрагами вставить)PHP код:
if(killerid != INVALID_PLAYER_ID)
{
PlayerScore[killerid]++;
SetPlayerScore(killerid, PlayerScore[killerid]);
UpdatePlayerLevel(killerid);
}
Ну и так же во все команды/функции, что обновляют число убийств у игрока и при этом не идёт вызов UpdatePlayerLevel (например, команда, типа /setscore)PHP код:
UpdatePlayerLevel(playerid);
P.S. Когда-то я за подобный код (немного доработанный и более удобный) брал деньги... Хорошие были времена :grin:PHP код:
UpdatePlayerLevel(тут_переменная_с_id);
Стареешь, друг мой.Цитата:
stock UpdatePlayerLevel(playerid)
{
if(0 <= PlayerScore[playerid] < 10)
{
PlayerLevel[playerid] = 1;
}
else if(10 <= Массив_с_убийствами < 50)
{
PlayerLevel[playerid] = 2;
}
else if(50 <= Массив_с_убийствами < 100)
{
PlayerLevel[playerid] = 3;
}
else if(100 <= Массив_с_убийствами < 200)
{
PlayerLevel[playerid] = 3;
}
//...
return 1;
}