Eksmaker.
Дебютант
Итак, здравствуйте пользователи P-I. К вам я обращаюсь с таким вопросом.
Вообщем, написал систему LVL, но только вместо EXP - Убийства(Kill), для определенного лвла,определённое кол-во убийств.
С 0 lvl на 1 lvl - 20 kills
2 lvl - 30 kills.
Переход на следующий LVL через /buylevel, распишу как все происходит:
Игрок набирает 20 киллов из 20 и пишет /buylevel и вуаля, дало 1 LVL. Далее, теперь вместо 20 киллов нужно набрать 30 ( Тут по идеи дожно даться 2 лвл, но я не доделал, не суть ).
Кратко систему описал, теперь перейду к ошибке
Если игрок зайдет под ID 0, наберет 20 киллов и пропишет buylevel, то ему даст 1 лвл и будет следующий этап ( 30 киллов ), но если игрок зайдет уже под идом 1 и далее, наберет 20 киллов
и пропишет buylevel, то ему дастся 1 lvl, но следующего этапа ( 30 киллов не будет ), тупо будет написано 20/20, а должно быть 20 / 30 в этом вся проблема...
Сама сист-ма LVL по убийствам:
Команда /buylevel:
Вообщем, написал систему LVL, но только вместо EXP - Убийства(Kill), для определенного лвла,определённое кол-во убийств.
С 0 lvl на 1 lvl - 20 kills
2 lvl - 30 kills.
Переход на следующий LVL через /buylevel, распишу как все происходит:
Игрок набирает 20 киллов из 20 и пишет /buylevel и вуаля, дало 1 LVL. Далее, теперь вместо 20 киллов нужно набрать 30 ( Тут по идеи дожно даться 2 лвл, но я не доделал, не суть ).
Кратко систему описал, теперь перейду к ошибке
Если игрок зайдет под ID 0, наберет 20 киллов и пропишет buylevel, то ему даст 1 лвл и будет следующий этап ( 30 киллов ), но если игрок зайдет уже под идом 1 и далее, наберет 20 киллов
и пропишет buylevel, то ему дастся 1 lvl, но следующего этапа ( 30 киллов не будет ), тупо будет написано 20/20, а должно быть 20 / 30 в этом вся проблема...
Сама сист-ма LVL по убийствам:
Код:
public CheckTSt(playerid){
new string[70],string1[70];
if(Pi[playerid][level] == 0){
for(new i = 0; i < MAX_PLAYERS; i++){
format(string, sizeof(string),"Level: %d",Pi[i][level]);
TextDrawSetString(Lvl[i], string);
format(string1, sizeof(string1),"Kills: %d/20",Pi[i][kills]);
TextDrawSetString(KillsToNextLevel[i], string1);
}
}
if(Pi[playerid][level] == 1){
for(new i = 0; i < MAX_PLAYERS; i++){
format(string, sizeof(string),"Level: %d",Pi[i][level]);
TextDrawSetString(Lvl[i], string);
format(string1, sizeof(string1),"Kills: %d/30",Pi[i][kills]);
TextDrawSetString(KillsToNextLevel[i], string1);
}
}
return 1;
}
Код:
if(strcmp("/buylevel", cmdtext, true, 10) == 0)
{
if(Pi[playerid][level] <= 0){
if(Pi[playerid][money] <= 499) return SCM(playerid,0xFFFFFFAA,"TEXT");
if(Pi[playerid][kills] <= 19) return SCM(playerid,0xFFFFFFAA,"TEXT");
GameTextForPlayer(playerid,"YOU ARE BUY NEXT LEVEL",2000,1);
Pi[playerid][money] -= 500;
Pi[playerid][level] += 1;
GivePlayerMoney(playerid,-500);
return 1;
}
return 1;
}
Последнее редактирование:
