Любимое оружие -
false - 04.05.2011
Подскажите пожалуйста как вычислить каким оружием игрок пользуется чаще всего.
Например в OnPlayerDeath... вставляю переменную FavoriteWeapon[killerid][weaponid]++; а вот что дальше не соображу...
Re: Любимое оружие -
Gameyer_ - 06.05.2011
Получай убийства с оружий, сделай для каждого оружия переменную или лучше массмв один, потом получай убийства оружием, тоесть в колбеке
OnPlayerDeath проверяй оружие убийци и плюсуй переменной. потом для получение любимого циклом пробегись по массиву и вычисли у кокого ид больше убийств тем игрок чаще пользуется.
Re: Любимое оружие -
OKStyle - 08.05.2011
Не будет работать, лучше плюсовать переменную при выстреле из оружия в OnPlayerKeyStateChange, т.к. в OnPlayerDeath могут убить с гранаты, но в момент смерти у убийцы уже будет дигл, к примеру. Будет неверное сложение.
Re: Любимое оружие -
Gameyer_ - 09.05.2011
Могут быть баги с
OnPlayerKeyStateChange. В основном проверяют по
OnPlayerDeath
Re: Любимое оружие -
azen - 09.05.2011
А разве в причине смерти не указывается ID оружия? А, ОКС?
Re: Любимое оружие -
false - 13.05.2011
Вот то, что у меня получилось... Правда очень заморочено и толком не работает. Подскажите другие варианты пожалуйста.
pawn Code:
FaworiteWeapon[killerid][reason]++;
for(new i=0; i<51; i++)
{
if(FavoriteWeapon[killerid][i]==0)continue;
SetPVarInt(killerid,"FavoriteWeapon",i);
for(new x=0; x<51; x++)
{
if(FavoriteWeapon[killerid][x]<FavoriteWeapon[killerid][i])continue;
SetPVarInt(killerid,"FavoriteWeapon",x);
}
}
new gunname[32];
GetWeaponName(reason),gunname,sizeof(gunname));
if(reason)==0)gunname="Fist";
if(reason)==50)gunname="Vehicle";
if(reason)==51)gunname="Explode";
SetPVarString(playerid,"FavoriteWeaponName",gunname);
Re: Любимое оружие -
Gameyer_ - 14.05.2011
Какой ужас.
PHP Code:
new Weapons[MAX_PLAYERS][13];//глобальная переменная (создаём массив для игроков, кол-во оружий 13)
public OnPlayerDeath(playerid,killerid,reason)
{
if(killerid != INVALID_PLAYER_ID)
{
if(GetPlayerWeapon(killerid) == 25) Weapons[killerid][0]++;//таким образом если игрок убил с Шота, то переменной (первой ячейке) будет прибавлено одно значение. так делай по тому же принцыпу.
.....
}
return 1;
}
Не используй функцию
GetWeaponName, она немного багнутая, лучше сделать свою по нахождению имя по иду, такие функции уже есть.
Теперь осталось только получить оружие у которого больше очков (убийств)
Re: Любимое оружие -
false - 14.05.2011
Допустим некоторые ячейки уже забиты (дигл = 10, шот = 15, м4 =5) Меня больше всего интересует как получить самое большое число, каким способом?
Re: Любимое оружие -
Makar93 - 15.05.2011
Quote:
Originally Posted by false
Меня больше всего интересует как получить самое большое число, каким способом?
|
http://forum.sa-mp.com/showpost.php?...&postcount=298
Re: Любимое оружие -
Fro1sha - 15.05.2011
Этому учат в школе в 9 классе ыыЫ
Re: Любимое оружие -
Gameyer_ - 15.05.2011
Quote:
Originally Posted by Fro1sha
Этому учат в школе в 9 классе ыыЫ
|
Чему? Находить любимое оружие?
Re: Любимое оружие -
Fro1sha - 15.05.2011
Quote:
Originally Posted by false
Меня больше всего интересует как получить самое большое число, каким способом?
|
Re: Любимое оружие -
Gameyer_ - 15.05.2011
И этому учат в девятом классе?..
Re: Любимое оружие -
Fro1sha - 16.05.2011
Да все забей, не парься =)