SA-MP Forums Archive
Любимое оружие - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Русский/Russian (https://sampforum.blast.hk/forumdisplay.php?fid=32)
+---- Thread: Любимое оружие (/showthread.php?tid=253097)



Любимое оружие - 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) == 25Weapons[killerid][0]++;//таким образом если игрок убил с Шота, то переменной (первой ячейке) будет прибавлено одно значение. так делай по тому же принцыпу.
.....
}
return 
1;

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


Re: Любимое оружие - false - 14.05.2011

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


Re: Любимое оружие - Makar93 - 15.05.2011

Quote:
Originally Posted by false
View Post
Меня больше всего интересует как получить самое большое число, каким способом?
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
View Post
Этому учат в школе в 9 классе ыыЫ
Чему? Находить любимое оружие?


Re: Любимое оружие - Fro1sha - 15.05.2011

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



Re: Любимое оружие - Gameyer_ - 15.05.2011

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


Re: Любимое оружие - Fro1sha - 16.05.2011

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