Добро пожаловать на форум, Гость, это ваша панель
  • Страница 1 из 1
  • 1
Запрет расы
NaSok
Дата: Вторник, 20.05.2014, 16:59 | Сообщение # 1
офлайн

  • Сообщения: 80
  • Награды: 1
  • Замечания:
 
Как запретить определенную расу на карте ?
Что бы подключался файл .../amxmodx/configs/war3ft/wc3_race_and_map.cfg
Его формат заполнения:

Код
"РАСА" "КАРТА"
Например:
Код
"RACE_ID 1" "35hp_2"
При этом расаНежить будет запрещена на карте 35hp_2
И при ее выборе будет писаться "Раса %d запрещена на карте %d" - где первое %d обозначает Название расы, а второе %d название карты
Искал подобные темы, но не нашел  sad
Заранее "Спасибо"


 
KinD
Дата: Вторник, 20.05.2014, 19:57 | Сообщение # 2
офлайн

  • Сообщения: 1148
  • Награды: 22
  • Замечания:
 
1)Заходим в constants.inl и добавляем
Код
new g_iRace_Active[MAX_RACES+1];

2)Заходим в sma добавляем в Plugin_init  >
Код
set_task(2.0,"Check_Race_Active")

3)Добавляем в .sma данный код

Код
public Check_Race_Active()
{
     new MapName[32]
      get_mapname(MapName,31)
     new File=fopen("/addons/amxmodx/configs/war3ft/race_disable.ini","r");   
     if (File)   
     {   
          new Text[512];   
          new RaceID[2];   
        new MAP[32];   
               
          while (!feof(File))   
          {   
           fgets(File,Text,sizeof(Text)-1);   
                  
           trim(Text);   
                  
           if (Text[0]==';')     
           {   
              continue;   
           }   
                  
                  
           parse(Text,RaceID,43,MAP,31)   
           if(equali(MapName,MAP))
           {
              new race;
              race = str_to_num(RaceID)
              g_iRace_Active [race]= 1
           }
             

          }        
          fclose(File);   
      }


}
4)Заходим в menus.inl  ищем _MENU_ChangeRace( idUser, key ),потом

Код
else
{
     iRace = key + 1;
}


ниже добавляем

Код
if(g_iRace_Active[iRace])
{
     client_print(idUser,print_chat,"Race disable")
     return PLUGIN_HANDLED;
}


5)Создаем файл addons/amxmodx/configs/war3ft/race_disable.ini(формат записи "Race ID" "mapname")
Код
"1" "35hp_2"


Skype:daywerok

Сообщение отредактировал KinD - Среда, 21.05.2014, 07:53
 
NaSok
Дата: Вторник, 20.05.2014, 21:08 | Сообщение # 3
офлайн

  • Сообщения: 80
  • Награды: 1
  • Замечания:
 
Спасибо, но вот ошибка, вроде все сделал правильно ((((



Ты походу в 3 шаге в конце скобку не засунул }

Добавлено (20.05.2014, 21:08)
---------------------------------------------
Ау, люди, помогите cry




Сообщение отредактировал NaSok - Вторник, 20.05.2014, 20:20
 
KinD
Дата: Среда, 21.05.2014, 07:53 | Сообщение # 4
офлайн

  • Сообщения: 1148
  • Награды: 22
  • Замечания:
 
Да,скобка просто в код не попала.
И кстати g_iRace_Active[MAX_RACES]; нужно заменить на g_iRace_Active[MAX_RACES+1];


Skype:daywerok
 
NaSok
Дата: Среда, 21.05.2014, 15:31 | Сообщение # 5
офлайн

  • Сообщения: 80
  • Награды: 1
  • Замечания:
 
Цитата KinD ()
Да,скобка просто в код не попала. И кстати g_iRace_Active[MAX_RACES]; нужно заменить на g_iRace_Active[MAX_RACES+1];

Cпасибо  smile
 
А я еще в стили War3ft поменял print_chat на print_center




Сообщение отредактировал NaSok - Среда, 21.05.2014, 15:52
 
NaSok
Дата: Среда, 21.05.2014, 16:18 | Сообщение # 6
офлайн

  • Сообщения: 80
  • Награды: 1
  • Замечания:
 
Хмммм, странно поставил:

Код
client_print( idUser, print_center,"Данная раса запрещена на єтой карте!");

С стандартной кодировкой Ansi сообщение вообще не показывалось sad   А когда поменял весь menus.inl на UTF-8(Без BOM) то выдавало такое, при выборе запрещенной расы:
Прикрепления: 8319724.jpg (77.8 Kb)


 
KinD
Дата: Среда, 21.05.2014, 16:21 | Сообщение # 7
офлайн

  • Сообщения: 1148
  • Награды: 22
  • Замечания:
 
client_print( idUser, print_center,"%L",LANG_PLAYER,"WC3_RACE_DISABLE");

WC3_RACE_DISABLE = Раса отключена на данной карте( это нужно в lang файл)


Skype:daywerok

Сообщение отредактировал KinD - Среда, 21.05.2014, 16:22
 
MaJIou
Дата: Среда, 21.05.2014, 17:30 | Сообщение # 8
офлайн

  • Сообщения: 43
  • Награды: 0
  • Замечания:
 
KinDА чего я сделал всё как написано беру расу мне пишет Race Disable хоть я добавил в lang раса заблокирована на этой карте

Skype - dimasomon

Сообщение отредактировал MaJIou - Среда, 21.05.2014, 17:31
 
KILLER7x7
Дата: Четверг, 22.05.2014, 01:00 | Сообщение # 9
офлайн

  • Сообщения: 94
  • Награды: 4
  • Замечания:
 
MaJIou, посмотри внимательней на этот код
Код
if(g_iRace_Active[iRace])   
  {   
      client_print(idUser,print_chat,"Race disable")   
      return PLUGIN_HANDLED;   
  }


killer7x7_ua



 
MaJIou
Дата: Четверг, 22.05.2014, 07:47 | Сообщение # 10
офлайн

  • Сообщения: 43
  • Награды: 0
  • Замечания:
 
KILLER7x7, Это место Race Disable писать своё

Skype - dimasomon

Сообщение отредактировал MaJIou - Четверг, 22.05.2014, 07:51
 
NaSok
Дата: Четверг, 22.05.2014, 14:55 | Сообщение # 11
офлайн

  • Сообщения: 80
  • Награды: 1
  • Замечания:
 
Код
if(g_iRace_Active[iRace])    
   {    
       client_print( idUser, print_center,"%L",LANG_PLAYER,"WC3_RACE_DISABLE");     
       return PLUGIN_HANDLED;    
   }

Потом заходишь в cssbWar3ftMod.txt и пишешь куда угодно:

Код
WC3_RACE_DISABLE = Раса отключена на данной карте!

И еще раз все проверь !


 
MaJIou
Дата: Четверг, 22.05.2014, 21:30 | Сообщение # 12
офлайн

  • Сообщения: 43
  • Награды: 0
  • Замечания:
 
NaSok, Спасибо

Skype - dimasomon
 
LLapb
Дата: Четверг, 26.06.2014, 22:29 | Сообщение # 13
офлайн

  • Сообщения: 20
  • Награды: 0
  • Замечания:
 
Здравствуйте, пользователи форума)
Я в этом деле новичек, поэтому хочу, чтобы вы поконкретнее рассказали, где что находится и ~где вставлять это.
1 шаг я сделал, в constants.inl имеется такая строка.

"Заходим в sma добавляем в Plugin_init" - а вот с этого места подробнее, пожалуйста)
Где находится sma и Plugin_init

"Добавляем в .sma данный код" - в какой из .sma его надо добавить и где он расположен ?

"Заходим в menus.inl  ищем _MENU_ChangeRace( idUser, key ),потом"    -   menus.inl где находится ?

Очень надеюсь на вашу помощь и разъяснения, сам никак не могу разобраться sad
Заранее прошу прощения за такие глупые вопросы, но надо же как-то учиться)
А то нежить на 35hp - играть нереально)



 
NaSok
Дата: Пятница, 27.06.2014, 14:00 | Сообщение # 14
офлайн

  • Сообщения: 80
  • Награды: 1
  • Замечания:
 
LLapb, заходишь в cssbWar3ftMod.sma, нажимаешь "Найти" и ищешь "Plugin_init"
Plugin_init - это функцыя.

menus.inl находиться в addons/amxmodx/scripting/war3ft

И в 3 шагу замени на вот это:

Код
public Check_Race_Active()  
  {  
      new MapName[32]  
       get_mapname(MapName,31)  
      new File=fopen("/addons/amxmodx/configs/war3ft/race_disable.ini","r");    
      if (File)    
      {    
           new Text[512];    
           new RaceID[2];    
         new MAP[32];    
                  
           while (!feof(File))    
           {    
            fgets(File,Text,sizeof(Text)-1);    
                     
            trim(Text);    
                     
            if (Text[0]==';')      
            {    
               continue;    
            }    
                     
                     
            parse(Text,RaceID,43,MAP,31)    
            if(equali(MapName,MAP))  
            {  
               new race;  
               race = str_to_num(RaceID)  
               g_iRace_Active [race]= 1
            }  
                
   
           }         
           fclose(File);    
       }

  }


P.S: Будут еще вопросы пиши в Скайп))   wink




Сообщение отредактировал NaSok - Пятница, 27.06.2014, 14:14
 
B@RB@DO$
Дата: Пятница, 07.11.2014, 01:02 | Сообщение # 15
офлайн

  • Сообщения: 72
  • Награды: 0
  • Замечания:
 
KinD, Спасибо давно хотел запретить на не которих картах  smile
 
iqorsergeevitch
Дата: Понедельник, 12.10.2020, 16:23 | Сообщение # 16
офлайн

  • Сообщения: 3
  • Награды: 0
  • Замечания:
 
ЧТО ЗА ОШИБКА

//// cssbWar3ftMod.sma
// war3ft/race_undead.cpp(176) : error 017: undefined symbol "_HP_ID_1"
// war3ft/race_undead.cpp(177) : error 017: undefined symbol "_HP_ID_3"
// war3ft/race_undead.cpp(180) : error 017: undefined symbol "_HP_ID_1"
// war3ft/race_undead.cpp(191) : error 017: undefined symbol "_HP_ID_3"
// war3ft/race_undead.cpp(192) : error 017: undefined symbol "_HP_ID_1"
// war3ft/race_undead.cpp(198) : error 017: undefined symbol "_HP_ID_4"
// war3ft/race_undead.cpp(200) : error 017: undefined symbol "_HP_ID_4"
// war3ft/race_undead.cpp(213) : error 017: undefined symbol "_HP_ID_4"
// war3ft/race_undead.cpp(215) : error 017: undefined symbol "_HP_ID_4"
// war3ft/race_undead.cpp(238) : error 017: undefined symbol "Text"
// war3ft/race_undead.cpp(238) : error 088: number of arguments does not match definition
// war3ft/race_undead.cpp(238) : error 072: "sizeof" operator is invalid on "function" symbols
// war3ft/race_undead.cpp(238) : fatal error 107: too many error messages on one line
//
// Compilation aborted.
// 13 Errors.
// Could not locate output file C:\Users\╚уюЁ№\Desktop\─юъєьхэЄ√\Private\ъюяхы ЄюЁ\compiled\cssbWar3ftMod.amx (compile failed).
//
// Compilation Time: 8,05 sec
// ----------------------------------------
 
  • Страница 1 из 1
  • 1
Поиск: