Любимое оружие
#1

Подскажите пожалуйста как вычислить каким оружием игрок пользуется чаще всего.

Например в OnPlayerDeath... вставляю переменную FavoriteWeapon[killerid][weaponid]++; а вот что дальше не соображу...
Reply
#2

Получай убийства с оружий, сделай для каждого оружия переменную или лучше массмв один, потом получай убийства оружием, тоесть в колбеке OnPlayerDeath проверяй оружие убийци и плюсуй переменной. потом для получение любимого циклом пробегись по массиву и вычисли у кокого ид больше убийств тем игрок чаще пользуется.
Reply
#3

Не будет работать, лучше плюсовать переменную при выстреле из оружия в OnPlayerKeyStateChange, т.к. в OnPlayerDeath могут убить с гранаты, но в момент смерти у убийцы уже будет дигл, к примеру. Будет неверное сложение.
Reply
#4

Могут быть баги с OnPlayerKeyStateChange. В основном проверяют по OnPlayerDeath
Reply
#5

А разве в причине смерти не указывается ID оружия? А, ОКС?
Reply
#6

Вот то, что у меня получилось... Правда очень заморочено и толком не работает. Подскажите другие варианты пожалуйста.
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);
Reply
#7

Какой ужас.
PHP Code:
new Weapons[MAX_PLAYERS][13];//глобальная переменная (создаём массив для игроков, кол-во оружий 13)
public OnPlayerDeath(playerid,killerid,reason)
{
if(
killerid != INVALID_PLAYER_ID)
{
if(
GetPlayerWeapon(killerid) == 25Weapons[killerid][0]++;//таким образом если игрок убил с Шота, то переменной (первой ячейке) будет прибавлено одно значение. так делай по тому же принцыпу.
.....
}
return 
1;

Не используй функцию GetWeaponName, она немного багнутая, лучше сделать свою по нахождению имя по иду, такие функции уже есть.
Теперь осталось только получить оружие у которого больше очков (убийств)
Reply
#8

Допустим некоторые ячейки уже забиты (дигл = 10, шот = 15, м4 =5) Меня больше всего интересует как получить самое большое число, каким способом?
Reply
#9

Quote:
Originally Posted by false
View Post
Меня больше всего интересует как получить самое большое число, каким способом?
http://forum.sa-mp.com/showpost.php?...&postcount=298
Reply
#10

Этому учат в школе в 9 классе ыыЫ
Reply
#11

Quote:
Originally Posted by Fro1sha
View Post
Этому учат в школе в 9 классе ыыЫ
Чему? Находить любимое оружие?
Reply
#12

Quote:
Originally Posted by false
View Post
Меня больше всего интересует как получить самое большое число, каким способом?
Reply
#13

И этому учат в девятом классе?..
Reply
#14

Да все забей, не парься =)
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)