PDA

Просмотр полной версии : [Вопрос] Система достижений



BaBuIIIkaDrifteR
17.03.2015, 00:31
Ребят подскажите в чем проблема?
Допусти ставлю я игроку 1.000.001 Полоски в меру прибавляются.
А если после 1.000.001 я поставлю сразу 2.000.000 полоска заполняется вся, хотя должна равномерно.
Код:

if(GetPlayerMoneyED(playerid) > Player[playerid][DefMoney]) Player[playerid][DefMoney] = GetPlayerMoneyED(playerid);
if(Player[playerid][DefMoney] >= 0 && Player[playerid][DefMoney] <= 1000000)format(creater,sizeof(creater),"Заработать $50.000.000:\n\t{0099CC}[....................................................................................................]{FFFFFF}\n\n");
else if(Player[playerid][DefMoney] >= 1000001 && Player[playerid][DefMoney] <= 2000000)format(creater,sizeof(creater),"Заработать $50.000.000:\n\t{0099CC}[llllllllll..........................................................................................]{FFFFFF}\n\n");
else if(Player[playerid][DefMoney] >= 5000001 && Player[playerid][DefMoney] <= 6000000)format(creater,sizeof(creater),"Заработать $50.000.000:\n\t{0099CC}[llllllllllllllllllll................................................................................]{FFFFFF}\n\n");
else if(Player[playerid][DefMoney] >= 10000001 && Player[playerid][DefMoney] <= 11000000)format(creater,sizeof(creater),"Заработать $50.000.000:\n\t{0099CC}[llllllllllllllllllllllllllllll......................................................................]{FFFFFF}\n\n");
else if(Player[playerid][DefMoney] >= 15000001 && Player[playerid][DefMoney] <= 16000000)format(creater,sizeof(creater),"Заработать $50.000.000:\n\t{0099CC}[llllllllllllllllllllllllllllllllllllllll............................................................]{FFFFFF}\n\n");
else if(Player[playerid][DefMoney] >= 20000001 && Player[playerid][DefMoney] <= 21000000)format(creater,sizeof(creater),"Заработать $50.000.000:\n\t{0099CC}[llllllllllllllllllllllllllllllllllllllllllllllllll..................................................]{FFFFFF}\n\n");
else if(Player[playerid][DefMoney] >= 25000001 && Player[playerid][DefMoney] <= 26000000)format(creater,sizeof(creater),"Заработать $50.000.000:\n\t{0099CC}[llllllllllllllllllllllllllllllllllllllllllllllllllllllllllll........................................]{FFFFFF}\n\n");
else if(Player[playerid][DefMoney] >= 30000001 && Player[playerid][DefMoney] <= 31000000)format(creater,sizeof(creater),"Заработать $50.000.000:\n\t{0099CC}[llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll..............................]{FFFFFF}\n\n");
else if(Player[playerid][DefMoney] >= 35000001 && Player[playerid][DefMoney] <= 36000000)format(creater,sizeof(creater),"Заработать $50.000.000:\n\t{0099CC}[llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll....................]{FFFFFF}\n\n");
else if(Player[playerid][DefMoney] >= 40000001 && Player[playerid][DefMoney] <= 49999999)format(creater,sizeof(creater),"Заработать $50.000.000:\n\t{0099CC}[llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll..........]{FFFFFF}\n\n");
else format(creater,sizeof(creater),"Заработать $50.000.000:\n\t{0099CC}[llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll]{FFFFFF}\n\n");
Возможно я что посчитал не так? Если да то как считать тут?

BaBuIIIkaDrifteR
22.03.2015, 01:47
Актуально

Desulaid
22.03.2015, 18:53
Я бы лучше оператор switch юзал.

BaBuIIIkaDrifteR
23.03.2015, 02:14
Я бы лучше оператор switch юзал.

Это у меня система достижений если заюзать switch будет путаться с обычными деньгами. так что только так. А по теме есть предположения?

BaBuIIIkaDrifteR
24.03.2015, 11:19
Актуально

L0ndl3m
24.03.2015, 22:00
if(GetPlayerMoneyED(playerid) > Player[playerid][DefMoney])
Player[playerid][DefMoney] = GetPlayerMoneyED(playerid);

new
temp_money = Player[playerid][DefMoney];

if(0 <= temp_money <= 1000000)
creater = "Заработать $50.000.000:\n\t{0099CC}[....................................................................................................]{FFFFFF}\n\n";
else if(1000001 <= temp_money <= 5000000)
creater = "Заработать $50.000.000:\n\t{0099CC}[llllllllll..........................................................................................]{FFFFFF}\n\n";
else if(5000001 <= temp_money <= 10000000)
creater = "Заработать $50.000.000:\n\t{0099CC}[llllllllllllllllllll................................................................................]{FFFFFF}\n\n";
else if(10000001 <= temp_money <= 15000000)
creater = "Заработать $50.000.000:\n\t{0099CC}[llllllllllllllllllllllllllllll......................................................................]{FFFFFF}\n\n";
else if(15000001 <= temp_money <= 20000000)
creater = "Заработать $50.000.000:\n\t{0099CC}[llllllllllllllllllllllllllllllllllllllll............................................................]{FFFFFF}\n\n";
else if(20000001 <= temp_money <= 25000000)
creater = "Заработать $50.000.000:\n\t{0099CC}[llllllllllllllllllllllllllllllllllllllllllllllllll..................................................]{FFFFFF}\n\n";
else if(25000001 <= temp_money <= 30000000)
creater = "Заработать $50.000.000:\n\t{0099CC}[llllllllllllllllllllllllllllllllllllllllllllllllllllllllllll........................................]{FFFFFF}\n\n";
else if(30000001 <= temp_money <= 35000000)
creater = "Заработать $50.000.000:\n\t{0099CC}[llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll..............................]{FFFFFF}\n\n";
else if(35000001 <= temp_money <= 40000000)
creater = "Заработать $50.000.000:\n\t{0099CC}[llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll....................]{FFFFFF}\n\n";
else if(40000001 <= temp_money <= 49999999)
creater = "Заработать $50.000.000:\n\t{0099CC}[llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll..........]{FFFFFF}\n\n";
else
creater = "Заработать $50.000.000:\n\t{0099CC}[llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll]{FFFFFF}\n\n";


Упростил код, ибо много ненужного. Пробуйте.

BaBuIIIkaDrifteR
25.03.2015, 09:14
if(GetPlayerMoneyED(playerid) > Player[playerid][DefMoney])
Player[playerid][DefMoney] = GetPlayerMoneyED(playerid);

new
temp_money = Player[playerid][DefMoney];

if(0 <= temp_money <= 1000000)
creater = "Заработать $50.000.000:\n\t{0099CC}[....................................................................................................]{FFFFFF}\n\n";
else if(1000001 <= temp_money <= 5000000)
creater = "Заработать $50.000.000:\n\t{0099CC}[llllllllll..........................................................................................]{FFFFFF}\n\n";
else if(5000001 <= temp_money <= 10000000)
creater = "Заработать $50.000.000:\n\t{0099CC}[llllllllllllllllllll................................................................................]{FFFFFF}\n\n";
else if(10000001 <= temp_money <= 15000000)
creater = "Заработать $50.000.000:\n\t{0099CC}[llllllllllllllllllllllllllllll......................................................................]{FFFFFF}\n\n";
else if(15000001 <= temp_money <= 20000000)
creater = "Заработать $50.000.000:\n\t{0099CC}[llllllllllllllllllllllllllllllllllllllll............................................................]{FFFFFF}\n\n";
else if(20000001 <= temp_money <= 25000000)
creater = "Заработать $50.000.000:\n\t{0099CC}[llllllllllllllllllllllllllllllllllllllllllllllllll..................................................]{FFFFFF}\n\n";
else if(25000001 <= temp_money <= 30000000)
creater = "Заработать $50.000.000:\n\t{0099CC}[llllllllllllllllllllllllllllllllllllllllllllllllllllllllllll........................................]{FFFFFF}\n\n";
else if(30000001 <= temp_money <= 35000000)
creater = "Заработать $50.000.000:\n\t{0099CC}[llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll..............................]{FFFFFF}\n\n";
else if(35000001 <= temp_money <= 40000000)
creater = "Заработать $50.000.000:\n\t{0099CC}[llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll....................]{FFFFFF}\n\n";
else if(40000001 <= temp_money <= 49999999)
creater = "Заработать $50.000.000:\n\t{0099CC}[llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll..........]{FFFFFF}\n\n";
else
creater = "Заработать $50.000.000:\n\t{0099CC}[llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll]{FFFFFF}\n\n";


Упростил код, ибо много ненужного. Пробуйте.

Спасибо, работает а в чем моя ошибка была?

LINKINPARK
25.03.2015, 13:19
так хоть не вырвиглаз будет, и точнее будет показывать.

new
temp_money = floatround (Player[playerid][DefMoney]*0.00002),
line [101] = {'I', ...}, point [100] = {'.', ...};
if (temp_money > 100) temp_money = 100;
strdel (line, 100, 100);
line [temp_money] = EOS, point [100-temp_money] = EOS;
format (creater, sizeof creater, "Заработать $50.000.000:\n\t{0099CC}[%s%s]", line, point);
//если денег 2.500.000 то
//creater = "Заработать $50.000.000:{0099CC}[IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII..................................................]"
//и тд

Osetin
26.03.2015, 01:14
Отредактировал название темы. В след.раз темы с похожими названиями сразу будут удаляться, а автору будет выдано предупреждение.