Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Показано с 1 по 4 из 4
  1. #1
    Аватар для Desulaid
    лесоруб продакшен

    Статус
    Оффлайн
    Регистрация
    15.03.2015
    Адрес
    Slobodskoy
    Сообщений
    667
    Репутация:
    236 ±

    Реализация системы уровня по фрагам

    Вот начал я писать свой DM мод и не совсем уверен в практичности моей системочки :3
    Я пересматривал различные моды, которые лежали в пабликах и пытался понять как к переменным(kill / death) увиличивается значение на +1 при смерти или убийстве. В своем моде я пытался повторить точно такое же, но ничего не работало. И я подумал, "а почему бы не сделать условия, при которых будет ++ к смерти и убийствам"

    В общем я сделал вот так:
    PHP код:
    new CheckPlayer[MAX_PLAYERS];

    enum PlayerInfo
    {
        
    //..
        
    pDeath,
        
    pKill,
        
    pLevel
    };
    new 
    pInfo[MAX_PLAYERS][PlayerInfo];

    public 
    OnPlayerDeath(playeridkilleridreason)
    {
        if(
    CheckPlayer[playerid] == 1)
        {
            
    pInfo[playerid][pKill] += 1;
            
    //сохранение
        
    }
        else
        {
            
    pInfo[playerid][pDeath]    += 1;
            
    //сохранение
        
    }
        return 
    true;
    }

    public 
    OnPlayerWeaponShot(playeridweaponidhittypehitidFloat:fXFloat:fYFloat:fZ)
    {
        new 
    giveplayerid;
        if(
    IsPlayerConnected(giveplayerid))
        {
            if(
    giveplayerid != INVALID_PLAYER_ID)
            {
                
    /*switch(hittype)
                {
                    case 1:
                    {
                        CheckPlayer[playerid] = 1;
                        PlayerValue = giveplayerid;
                    }
                }
                Если будете использовать switch конструкцию, то
                удалите конструкцию if
                */
                
    if(hittype)
                {
                    
    CheckPlayer[playerid] = 1;
                    
    playerid giveplayerid;
                }
            }
        }
        return 
    true;

    И как мне кажется, в моей системе есть некая нагрузки из-за лишних переменных и операций. В то время, в других модах присвоение к переменным kill / death идет наипростейшим образом:
    PHP код:
    public OnPlayerDeath(playeridkilleridreason)
    {
        
    pInfo[killerid][pKill] += 1//++
        
    pInfo[playerid][pDeath]     += 1//++
        
    return true;

    Я в недоумении, кто может мне помочь?
    Последний раз редактировалось Desulaid; 22.03.2015 в 19:08.

  2. #2
    Аватар для Desulaid
    лесоруб продакшен

    Статус
    Оффлайн
    Регистрация
    15.03.2015
    Адрес
    Slobodskoy
    Сообщений
    667
    Репутация:
    236 ±
    никто мне не поможет. Актуально!

  3. #3
    Аватар для bla
    Пользователь

    Статус
    Оффлайн
    Регистрация
    22.03.2015
    Сообщений
    15
    Репутация:
    2 ±
    PHP код:
    public OnPlayerDeath(playeridkilleridreason) {
              
    pInfo[playerid][pDeath]++;
              
    pInfo[killerid][pKill]++;
    return 
    true;

    А что тут не так?
    Последний раз редактировалось bla; 24.03.2015 в 17:28.

  4. #4
    Аватар для L0ndl3m
    Пользователь

    Статус
    Оффлайн
    Регистрация
    19.10.2013
    Адрес
    Ярославль
    Сообщений
    1,366
    Репутация:
    774 ±
    PHP код:
    public OnPlayerDeath(playeridkilleridreason)
    {
        
    pInfo[playerid][pDeath] += 1;

        if(
    killerid == INVALID_PLAYER_ID)
        
    // всё, что будет после этого условия используйте выражения с killerid и/или playerid
            
    return false;

        
    pInfo[killerid][pKill] += 1;

        return 
    true;


  5. Пользователь сказал cпасибо:
    Desulaid (03.04.2015)
 

 

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •