PDA

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



CheRryS_MinT
15.07.2014, 13:52
Всем привет, кто может помочь с одной функцией. В чем смысл, на сервере 3 команды, и при заходе на сервер автоматически тебя распределит в одну из команд так чтобы кол. участников в каждой команде было поровну. Вот как я сделал но почему то делает полную лажу.
В начале мода:
Переменные:

new PlayerClass[MAX_PLAYERS];
new russia = 0;
new america = 0;
new japonia = 0;


stock PlayerCountrySelection(playerid)
{
if(russia == america && america == japonia)
{
new country = random(2);
if(country == 0)//russia
{
PlayerClass[playerid] = 0;
russia++;
GamemodeBlankStat();
}
else if(country == 1)//america
{
PlayerClass[playerid] = 1;
america++;
GamemodeBlankStat();
}
else if(country == 2)//japonia
{
PlayerClass[playerid] = 2;
japonia++;
GamemodeBlankStat();
}

}
else if(russia << america && america == japonia)
{
PlayerClass[playerid] = 0;
russia++;
GamemodeBlankStat();
}
else if(russia == america && america >> japonia)
{
PlayerClass[playerid] = 2;
japonia++;
GamemodeBlankStat();
}
else if(russia == japonia && russia >> america)
{
PlayerClass[playerid] = 1;
america++;
GamemodeBlankStat();
}
else if(russia == japonia && russia << america)
{
new country = random(1);
if(country == 0)//russia
{
PlayerClass[playerid] = 0;
russia++;
GamemodeBlankStat();
}
else if(country == 1)//japonia
{
PlayerClass[playerid] = 2;
japonia++;
GamemodeBlankStat();
}
}
else if(russia == america && russia << japonia)
{
new country = random(1);
if(country == 0)//russia
{
PlayerClass[playerid] = 0;
russia++;
GamemodeBlankStat();
}
else if(country == 1)//america
{
PlayerClass[playerid] = 1;
america++;
GamemodeBlankStat();
}
}
else if(america == japonia && america << russia)
{
new country = random(1);
if(country == 0)//america
{
PlayerClass[playerid] = 1;
america++;
GamemodeBlankStat();
}
else if(country == 1)//japonia
{
PlayerClass[playerid] = 2;
japonia++;
GamemodeBlankStat();
}
}
}
stock PlayerLeaveCountry(playerid)
{
if(PlayerClass[playerid] == 0)
{
russia = russia - 1;
GamemodeBlankStat();
}
if(PlayerClass[playerid] == 1)
{
america = america - 1;
GamemodeBlankStat();
}
if(PlayerClass[playerid] == 2)
{
japonia = japonia - 1;
GamemodeBlankStat();
}
}
Дальше в OnPlayerSpawn

PlayerCountrySelection(playerid);
if(PlayerClass[playerid] == 0)
{
SendClientMessage(playerid,-1,"Òû ïðèñîåäèíèëñÿ ê Àðìèé Ðîññèè!");
}
else if(PlayerClass[playerid] == 1)
{
SendClientMessage(playerid,-1,"Òû ïðèñîåäèíèëñÿ ê Àðìèé ÑØÀ!");
}
else if(PlayerClass[playerid] == 2)
{
SendClientMessage(playerid,-1,"Òû ïðèñîåäèíèëñÿ ê Àðìèé ßïîíèè!");
}
И в OnPlayerDisconnect

pLogged[playerid] = 0;
PlayerLeaveCountry(playerid);
SavePlayerInfo(playerid);

Заранее спасибо.
P.S. Если скажете что то про то что я вставил в OnPLayerSpawn и после смерти т.д. забудьте. Проблема в самом распределений игрока в одну из трёх команд.

Seregamil
15.07.2014, 14:49
russia << america
Вы откуда перешли на этот недоЯП?

new country = random(1);
Рекомендую почитать: http://wiki.sa-mp.com/wiki/Random

CheRryS_MinT
15.07.2014, 15:27
Вы откуда перешли на этот недоЯП?

Рекомендую почитать: http://wiki.sa-mp.com/wiki/Random

Example Usage:
new value = random(5);

// 'value' might be 0, 1, 2, 3 or 4. 5 possible values.

вот так там написано. У меня 3 команды поэтому я написал random(2) чтоб было 0, 1 и 2.

MR_BEN
15.07.2014, 15:31
Example Usage:
new value = random(5);

// 'value' might be 0, 1, 2, 3 or 4. 5 possible values.

вот так там написано. У меня 3 команды поэтому я написал random(2) чтоб было 0, 1 и 2.

надо random(3), тогда будет 0, 1 и 2

Seregamil
15.07.2014, 15:41
5 possible values.
Гугл в помощь.