Русское сообщество по скриптингу

War3FT [ Change Skin ]

Все вопросы по скриптингу для AMXX, помощь в редактировании плагинов.

Модераторы: Subb98, liFe iS GoOD

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

В данном разделе форума разрешено создавать темы, касающие только скриптинга для AMX Mod X.

Правила при создании новой темы:
1. При вставке кода плагина необходимо использовать тег [code=php].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. При описании проблемы или запросе на помощь в редактировании плагина обязательно выкладывайте исходник sma плагина.

War3FT [ Change Skin ]

Сообщение MayroN » 11 сен 2019, 21:27

Приветствую.
Такая штука, не хочет менять скин игрока на противоположный команды по предмету Хамелеон ( Варкрафт )

Сначала были жуткие лаги при взятии Предмета игроком ( скачки Пинга ) - то добавил
Код: Выделить всё
if ( is_user_alive( id ) 

Эсли вдруг что, то по Обычном запуске игры - меняет скин
По Запуске Сервера - нет.

Также пробовал оставить только
Код: Выделить всё
if ( g_MOD == GAME_CSTRIKE 


всёравно не меняет

Вся Функция
Код: Выделить всё
// Function changes your skin for ITEM_MOLE and Chameleon
public SHARED_ChangeSkin( id, iFlag )
{
    
   
// Don't change a bots model - it just confuses the bots!
   if ( is_user_alive( id ) )
   {
      return;
   }
 
   new szSkin
[32];
    
   
// Reset the user's model
   if ( iFlag == SKIN_RESET && p_data_b[id][PB_SKINSWITCHED] )
   {
 
      if 
( g_MOD == GAME_CSTRIKE || g_MOD == GAME_CZERO )
      {
         cs_reset_user_model( id );
      }
      else if ( g_MOD == GAME_DOD )
      {
         dod_clear_model( id );
      }
 
      p_data_b
[id][PB_SKINSWITCHED] = false;
   }
    
   
// Switch the user's skin to the opposing team
   else if ( iFlag == SKIN_SWITCH )
   {
      new iTeam = get_user_team( id );
       
      
// For Counter-Strike or Condition Zero
      if ( g_MOD == GAME_CSTRIKE || g_MOD == GAME_CZERO )
      {
         new iModelNum = random_num( 0, 3 );
          
         
// Condition Zero has one more model!
         if ( g_MOD == GAME_CZERO )
         {
            iModelNum = random_num( 0, 4 );
         }
          
         
// Save which skin we're going to use
         if ( iTeam == TEAM_CT )
         {
            add( szSkin, 31, SKIN_T[iModelNum] );
         }
         else
         
{
            add( szSkin, 31, SKIN_CT[iModelNum] );
         }
 
         cs_set_user_model
( id, szSkin );
 
      
}
 
      
// For Day of Defeat
      else if ( g_MOD == GAME_DOD )
      {
         new iModelNum = random_num( 0, 1 );
 
         if 
( iTeam == ALLIES )
         {
            add( szSkin, 31, SKIN_AXIS[iModelNum] );
         }
         else
         
{
             
            
// Then we should use a British model
            if ( dod_get_map_info( MI_ALLIES_TEAM ) == 1 )
            {
               add( szSkin, 31, SKIN_BRIT[0] );
            }
             
            
// Otherwise use American model
            else
            
{
               add( szSkin, 31, SKIN_ALLIES[iModelNum] );
            }
         }
          
         dod_set_model
( id, szSkin );
      }
 
      p_data_b
[id][PB_SKINSWITCHED] = true;
   }
 
   return
;
МультиМод 83.222.97.124:27015

Аватара пользователя
MayroN
 
Сообщения: 446
Зарегистрирован: 10 окт 2010, 18:23
Откуда: Украина, г. Белая Церковь
Благодарил (а): 112 раз.
Поблагодарили: 47 раз.
Опыт программирования: Около 3 месяцев
Языки программирования: На которых говорю...

Re: War3FT [ Change Skin ]

Сообщение JustProOnline » 18 сен 2019, 02:02

Код: Выделить всё
is_user_alive


->

Код: Выделить всё
!is_user_alive
Аватара пользователя
JustProOnline
 
Сообщения: 130
Зарегистрирован: 30 дек 2017, 10:14
Благодарил (а): 23 раз.
Поблагодарили: 10 раз.
Опыт программирования: Около года
Языки программирования: Pascal ABC
C++
Counter-Strike 1.6

Re: War3FT [ Change Skin ]

Сообщение MayroN » 18 сен 2019, 14:15

JustProOnline писал(а):
Код: Выделить всё
is_user_alive

->
Код: Выделить всё
!is_user_alive

Так тоже не работает
МультиМод 83.222.97.124:27015

Аватара пользователя
MayroN
 
Сообщения: 446
Зарегистрирован: 10 окт 2010, 18:23
Откуда: Украина, г. Белая Церковь
Благодарил (а): 112 раз.
Поблагодарили: 47 раз.
Опыт программирования: Около 3 месяцев
Языки программирования: На которых говорю...

Re: War3FT [ Change Skin ]

Сообщение Leonidddd » 25 сен 2019, 09:41

MayroN, я не уверен, как-то мало данных, но попробуйте провести отладку в консоли, что записывает в szSkin и как этот массив потом очищается? Функция add добавляет без очистки прошлых записей, возможно, в этом причина.
Аватара пользователя
Leonidddd
Модератор
 
Сообщения: 2257
Зарегистрирован: 08 апр 2012, 18:13
Откуда: г. Запорожье
Благодарил (а): 182 раз.
Поблагодарили: 630 раз.

Re: War3FT [ Change Skin ]

Сообщение MayroN » 26 сен 2019, 23:02

Leonidddd,
Лично автор Мода мне сказал,что функция правильная и должна работать.

Опять же,возможно на Линуксе такое происходит.

Ибо мной и автором проверялось на Виндовсе.

Хотя,если взять Код от CМастера Варкрафта,он же там порядки наводил,и я подумал,ну а вдруг.
А там оказываеться,что ета функция осталась в оригинале и он ее не изменял.

Но с его Модом на сервере ето работает.
МультиМод 83.222.97.124:27015

Аватара пользователя
MayroN
 
Сообщения: 446
Зарегистрирован: 10 окт 2010, 18:23
Откуда: Украина, г. Белая Церковь
Благодарил (а): 112 раз.
Поблагодарили: 47 раз.
Опыт программирования: Около 3 месяцев
Языки программирования: На которых говорю...

Re: War3FT [ Change Skin ]

Сообщение Leonidddd » 28 сен 2019, 01:59

MayroN, попробуйте автора мода попросить переделать выставление модели под fm_cs_set_user_model по аналогии с ZP модом, если нету возможности на reapi сидеть(там гораздо все проще с моделями в работе).
Аватара пользователя
Leonidddd
Модератор
 
Сообщения: 2257
Зарегистрирован: 08 апр 2012, 18:13
Откуда: г. Запорожье
Благодарил (а): 182 раз.
Поблагодарили: 630 раз.

Re: War3FT [ Change Skin ]

Сообщение MayroN » 28 сен 2019, 22:20

Leonidddd,
О_о ,а это уже мысль.
Попробуем
МультиМод 83.222.97.124:27015

Аватара пользователя
MayroN
 
Сообщения: 446
Зарегистрирован: 10 окт 2010, 18:23
Откуда: Украина, г. Белая Церковь
Благодарил (а): 112 раз.
Поблагодарили: 47 раз.
Опыт программирования: Около 3 месяцев
Языки программирования: На которых говорю...


Вернуться в Скриптинг

Кто сейчас на конференции

Сейчас этот форум просматривают: MSN [Bot] и гости: 2