Регистрация Главная Сообщество
Сообщения за день Справка Регистрация

Перенастроить war3ft

-

Общение и обсуждение Counter-Strike

- Раздел помощи Пользователям по вопросам Counter-Strike

Ответ
 
Опции темы
Старый 20.02.2011, 15:43   #1
 Разведчик
Аватар для dumawka
 
dumawka на правильном пути
Регистрация: 15.01.2010
Сообщений: 9
Популярность: 73
Сказал(а) спасибо: 8
Поблагодарили 5 раз(а) в 5 сообщениях
Отправить сообщение для dumawka с помощью Skype™
 
По умолчанию Перенастроить war3ft

Возникло такое желание перенастроить шопменю и скилы рас % ,вот только не понимаю где это находица всё, подскажите пожалуйста и чем открывать (ну короч как для дэбила)
  Ответить с цитированием
Старый 02.03.2011, 11:26   #2
 Разведчик
Аватар для dumawka
 
dumawka на правильном пути
Регистрация: 15.01.2010
Сообщений: 9
Популярность: 73
Сказал(а) спасибо: 8
Поблагодарили 5 раз(а) в 5 сообщениях
Отправить сообщение для dumawka с помощью Skype™
 
По умолчанию Re: Перенастроить war3ft

up
  Ответить с цитированием
Старый 02.03.2011, 11:43   #3
Заблокирован
 Пехотинец
Аватар для Aky9
 
Aky9 на правильном путиAky9 на правильном пути
Регистрация: 03.12.2010
Сообщений: 72
Популярность: 143
Сказал(а) спасибо: 33
Поблагодарили 60 раз(а) в 31 сообщениях
 
По умолчанию Re: Перенастроить war3ft

bind ? shopmenu- шопменю 1
bind ? shopmenu2- шопменю 2
bind ? war3menu- меню расы, скилов и т.д
bind ? ultimate- ульта
bind ? ability- скилл хантера
Пропиши это в консоле или засунь это в свой конфиг вместо ? напиши нужные тебе клавиши.
Пиши прямо в чате эти команды:
/itemsinfo (вызов справки о shopmenu)
/itemsinfo2 (вызов справки о shopmenu2)
/changerace (возможность сменить себе расу или героя)
/skillsinfo (вызов справки о способностях выбранного Вами персонажа)
/resetskills (сбрасывает все способности персонажа без потери уровней, как следствие, возможность сменить набор способностей)
  Ответить с цитированием
Старый 03.03.2011, 15:11   #4
 Разведчик
Аватар для dumawka
 
dumawka на правильном пути
Регистрация: 15.01.2010
Сообщений: 9
Популярность: 73
Сказал(а) спасибо: 8
Поблагодарили 5 раз(а) в 5 сообщениях
Отправить сообщение для dumawka с помощью Skype™
 
По умолчанию Re: Перенастроить war3ft

Цитата:
Сообщение от Aky9Посмотреть сообщение
bind ? shopmenu- шопменю 1
bind ? shopmenu2- шопменю 2
bind ? war3menu- меню расы, скилов и т.д
bind ? ultimate- ульта
bind ? ability- скилл хантера
Пропиши это в консоле или засунь это в свой конфиг вместо ? напиши нужные тебе клавиши.
Пиши прямо в чате эти команды:
/itemsinfo (вызов справки о shopmenu)
/itemsinfo2 (вызов справки о shopmenu2)
/changerace (возможность сменить себе расу или героя)
/skillsinfo (вызов справки о способностях выбранного Вами персонажа)
/resetskills (сбрасывает все способности персонажа без потери уровней, как следствие, возможность сменить набор способностей)

Перенастроить САМ СЕРВЕР а не свой конфиг забиндить -_- ,допустим скилы расам поменять на сервере,увеличить скорость бега тапок скорости и тд....
  Ответить с цитированием
Старый 01.04.2013, 22:19   #5
 Разведчик
Аватар для Xomka_pff
 
Xomka_pff никому не известный тип
Регистрация: 01.04.2013
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
 
По умолчанию Re: Перенастроить war3ft

\addons\amxmodx\scripting\war3ft файл constants там все редактирование, добавление..
Если помог жми СПАСИБО

Добавлено через 2 минуты
Увеличиваем количество уровней
Открываем файл /addons/amxmodx/scripting/constants.inl, AkelPad`ом (или, если поленились его скачать, блокнотом), и переходим на 240 строку (комбинация CTRL + G) . В ней и меняем 10 на нужное Вам количество уровней

#define MAX_LEVELS 10
Собственно, здесь-то и будет самая закавыка. Дело в том, что в war3ft моде у каждой расы/героя есть 3 прокачиваемых скила, и 1 ульта. И если неправильно выставить количество уровней, то какие-то скилы не получится докачать до конца. Так что я советую прикинуть желаемое количество уровней, потом выбрать ближайшее число, кратное 3 (для тех, кто ещё не прошел в школе: число, которое делится на 3 без остатка), а потом прибавить 1. Таким образом, если Вы хотите, чтобы каждый скил можно было прокачать до 10 уровня, то нужно выставить 3 (вида скилов) * 10 (уровней этих скилов) + 1 (и 1 уровень – для ульты). Для этого урока я выбрал 22 уровня. Итак, меняем количество уровней:
#define MAX_LEVELS 22
Таким же способом открываем файл /addons/amxmodx/scripting/war3ft.inl, и начинаем изменять все места, где есть старое количество уровней – то есть 10. Итак, на 646 строке меняем
if ( p_data[id][P_XP] == 0 && iStartLevel > 0 && iStartLevel <= 10 )
на
if ( p_data[id][P_XP] == 0 && iStartLevel > 0 && iStartLevel <= MAX_LEVELS )
далее ищем строку 721, в ней меняем
else if ( p_data[id][P_LEVEL] < 10 )
на
else if ( p_data[id][P_LEVEL] < MAX_LEVELS ).
Таким же образом на 755 строке меняем
else if ( p_data[id][P_LEVEL] < 10 )
на
else if ( p_data[id][P_LEVEL] < MAX_LEVELS ).
Строка 969: меняем
else if ( p_data[iTargetID][P_LEVEL] < 10 )
на
else if ( p_data[iTargetID][P_LEVEL] < MAX_LEVELS ).
И последнее в этом файле: в строке 128 меняем
for ( i = 0; i < 11; i++ )
на
for ( i = 0; i < MAX_LEVELS+1; i++ ).
Теперь в файле /addons/amxmodx/scripting/war3ft/xp.inl находим 387 строку, и меняем
if ( iLevel < 0 || iLevel > 10 )
на
if ( iLevel < 0 || iLevel > MAX_LEVELS )
далее – строка 408, меняем
if ( iLevel < 0 || iLevel > 10 )
на
if ( iLevel < 0 || iLevel > MAX_LEVELS )
И наконец, на строке 732 меняем
new Float:iLevelMultiplier = ( fCurrentLevel / 10.0 ) + 1.0;
на
new Float:iLevelMultiplier = ( fCurrentLevel / MAX_LEVELS ) + 1.0;
С этим файлом всё. Теперь в файле /addons/amxmodx/scripting/war3ft/admin.inl ищем 93 строку, и меняем
if ( iLevel < 0 || iLevel >= 11 )
на
if ( iLevel < 0 || iLevel >= MAX_LEVELS+1 )
Распределяем опыт по уровням
Теперь открываем файл /addons/amxmodx/scripting/wa3ft/xp.h (AkelPad`ом или блокнотом), и переходим к самому занудному. Начиная с 48 строки, меняем
new iXPLevelShortTerm[11] = {0,150,300,600,1000,1500,2100,2800,3400,4500,5500} ;
new iXPLevelSaved[11] = {0,100,200,400,800,1600,3200,6400,12800,25600,5120 0};
// Amount of XP awarded when killing a user of this level
new iXPGivenShortTerm[11] = {10,15,25,35,40,50,60,70,80,90,95};
new iXPGivenSaved[11] = {6,8,10,12,14,16,18,20,24,28,32};
на

new iXPLevelShortTerm[MAX_LEVELS+1] = {0,150,300,600,1000,1500,2100,2800,3400,4500,5500} ;
new iXPLevelSaved[MAX_LEVELS+1] = {0,100,200,400,800,1600,3200,6400,12800,25600,5120 0};
// Amount of XP awarded when killing a user of this level
new iXPGivenShortTerm[MAX_LEVELS+1] = {10,15,25,35,40,50,60,70,80,90,95};
new iXPGivenSaved[MAX_LEVELS+1] = {6,8,10,12,14,16,18,20,24,28,32};
Здесь расписывается нужное количество опыта для получения каждого уровня. Строка new iXPLevelShortTerm[MAX_LEVELS+1] будет использоваться если опыт не сохраняется, new iXPLevelSaved[MAX_LEVELS+1]- если сохраняется, строки new iXPGivenShortTerm[MAX_LEVELS+1] и new iXPGivenSaved[MAX_LEVELS+1] отвечают за количество выдаваемого XP если опыт сохраняется и не сохраняется соотвественно. Обычно опыт на серверах сохраняют, поэтому нам нужно будет заполнить строки new iXPLevelSaved[MAX_LEVELS+1] и new iXPGivenSaved[MAX_LEVELS+1]. Итак, эти странные числа в фигурных скобках – количество опыта для получения уровня. К примеру, 0,100,200,400,800,1600,3200,6400,12800,25600,51200 значит, что если у игрока 0 опыта – то у него 0 уровень, если 100 – то первый, если 200 – то второй, если 400 – то третий, и так до десятого уровня. Теперь нам нужно по такому же принципу расписать свои параметры. Это очень важный пункт, потому что от этого будут зависеть уровни игроков, а значит, и их эффективность. Если с самого начала делать большие пробелы между уровнями, то это приведет к тому, что новичкам будет очень тяжело играть с другими, поэтому я советую первые 10 уровней сделать легкодоступными. Вот, например, распределение нужного опыта для 22 уровней:

new iXPLevelSaved[MAX_LEVELS+1] = {0, 50, 100, 150, 250, 400, 700, 1000, 1400, 1800, 2500, 4000, 6000, 10000, 15000, 25000, 40000, 80000, 130000, 200000, 500000, 750000, 1500000}
Для удобства я выделил 5, 10, 15 и 20 уровни жирным. Первые 10 уровней можно будет заработать за полчасика, если хорошо играть, а до 22 придётся качаться долго. Аналогично нужно поступить с параметром new iXPGivenSaved[MAX_LEVELS+1]. Мой пример:

new iXPGivenSaved[MAX_LEVELS+1] = {8,10,12,14,16,18,20,24,28,32,34,36,38,40,42,44,46 ,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,8 0}
Здесь, как видим, я не стал всё усложнять, и сделал всё в арифметической прогрессии. Если Вы не будете использовать быстрый режим игры (когда опыт не сохраняется, но зарабатывается легче), то нужные для этого параметры даже не нужно заполнять. Хотя будет всё-таки правильней, если Вы просто сделаете их такими же, как и параметры для сохраняемого опыта.

Расписываем прокачку скилов
Это – самое сложное и нудное, и не менее ответственное. Для начала расскажу, как вычислить параметр MAX_SKILLS. Скажу честно, я так и не разобрался, что он обозначает. Судя по названию – количество скилов. Изначально в моде 36 скилов: по 3 у каждой из 8 рас, ещё отдельно – 8 ультимейтов, и 4 пассивных скила (о них – ниже). Далее на каждом уровне должно прибавляться по 4 скила. В общем, путаница какая-то, поэтому я лишь приведу формулу для его расчета: 36 + («ваш максимальный уровень» – 10) * 4. То есть для 22 уровней мы получим: 36 + (22 – 10) *4 = 36 + 12*4 = 36 + 48 = 86. Не забывайте, что по правилам нужно сначала умножать/делить, а потом уже складывать/вычитать. Для вычисления MAX_SKILLS и MAX_SKILL_LEVEL нужно отнять от количества уровней 1 и разделить на 3. Например, (22-1)/3 = 7. Итак, откроем файл /addons/amxmodx/scripting/war3ft/constants.inl. Начиная с 544 строки меняем

#define MAX_SKILLS 36
#define MAX_RACE_SKILLS 3
#define MAX_SKILL_LEVEL 3
#define MAX_ULTIMATE_LEVEL 1
на

#define MAX_SKILLS 86
#define MAX_RACE_SKILLS 7
#define MAX_SKILL_LEVEL 7
#define MAX_ULTIMATE_LEVEL 1
Теперь перейдем к самим скилам. Вот пример первого скила расы Undead:

new const Float_vampiric[3] = {0.10,0.20,0.30} // Vampiric Aura (skill 1)
Разберем все части по отдельности:

1. Float_vampiric[3] - здесь 3 в скобках значит максимальный уровень скила, нужно заменить на MAX_SKILL_LEVEL, и получить:
Float_vampiric[MAX_SKILL_LEVEL].
2. {0.10,0.20,0.30}- здесь числа означают коэффициент мощности этого скила. поскольку у нас в моде будет 7 уровней для скила, нам нужно прописать ещё 4 числа для ещё 4 уровней, и получить

{0.05,0.1,0.15,0.2,0.25,0.3,0.4}.
Тогда на 7 уровне Undead будет получать 40% нанесенного урона обратно как здоровье. Если Вы опубликуете для игроков подобную информацию, у них будет хороший стимул качаться до максимального уровня. 3. // Vampiric Aura (skill 1) – это просто комментарий к скилу, для удобства. менять не нужно (хотя можете для себя перевести) В конце концов, строка с этим скилом должна выглядеть так: new const Float_vampiric[MAX_SKILL_LEVEL] = {0.05,0.1,0.15,0.2,0.25,0.3,0.4} // Vampiric Aura (skill 1)Кстати, знаете, чем отличаются расы (Нежить, Люди, Орки, и Эльфы) от героев (Маг, Шпион, Охотник, и Лорд Мертвых)? Тем, что у последних есть ещё и пассивные скилы, которые прокачиваются сами на каждом уровне. Вот пример такого скила: new const Float_resistant[11] = {0.02, 0.04, 0.08, 0.12, 0.16, 0.20, 0.24, 0.28, 0.32, 0.36, 0.40} // Resistant Skin (Skill 4) В этом случае нужно заменить new const Float_resistant[11] на new const Float_resistant[MAX_LEVELS+1], и прописать значения для всех уровней, начиная с нулевого. У нас получится 23 параметра. К счастью, пассивных скилов только 4 – по одному у каждого героя. Теперь нам нужно сделать то же самое со всеми скилами, включая пассивные. 8 персонажей, по 3 обычных скила у каждого – это 24, и ещё 4 героя с пассивными скилами – итого 28 параметров. Немного отличаются следующие скилы: new const p_devotion = 15 // Devotion Aura – здесь число обозначает прибавляемое на каждом уровне HP (2 скил у Human`а). Так, если Вы оставите его таким же, на 7 уровне у Human`а будет 100 + 7*15 = 205 HP. Многовато, не находите? Поэтому стоит немного уменьшить этот параметр, например до 10. Тогда с каждым уровнем скила будет прибавляться 10 HP. new const Float_heal[3] = {6.0,4.0,2.0} // Healing Wave (skill 1) – по умолчанию этот скил делает «Волну здоровья» каждые 6, 4, и 2 секунды на 1, 2 и 3 уровне соответственно. Поскольку секунду наш сервер поделить не сможет, нет смысла выставлять нецелые значения (2.5, и т.д.)

Создаём спрайты
Теперь нам осталось только создать спрайты, без которых сервер просто не запустится. Они используются если кто-то вводит в чат /icons – тогда над тиммейтами он увидит их расу и уровень. Поскольку создание этих самых спрайтов с нуля – это отдельный урок, я покажу лишь самый простой способ: нужно просто скопировать спрайт десятого уровня (/sprites/warcraft3/level/a_level_10.spr) в какую-нибудь отдельную папку, и там его переименовать в a_level_11.spr, и повторять это пока не сделаете нужное количество спрайтов. Ниже есть ссылка на спрайты до 22 уровня.

Компилируем
Ну и последний шаг – это компиляция плагина. Для этого нужно скачать компилятор, и распаковать его в папку /addons/amxmodx/scripting. После этого нам нужно выделить папку /addons/amxmodx/scripting/war3ft и файл /addons/amxmodx/scripting/war3ft.sma, и перенести их на compile.exe, который должен находиться там же. В результате запустится компилятор, и нужно будет подождать, пока плагин соберется. На старом компьютере с процессором Intel в 2 ГГц этот процесс занимал у меня полторы минуты, на новом, с процессором Intel core i3 – 12 секунд. Готовый плагин будет лежать в папке /addons/amxmodx/scripting/compilled. Осталось только закинуть все файлы мода на сервер, включить нужные модули, и мы можем наслаждаться собственным War3FT сервером.

Бонусы
Раз Вам всё равно нужно будет компилировать плагин, предлагаю сразу исправить и косяк с выдачей опыта. Открываем файл /scripting/admin.inl, и переходим на 499 строку. Там мы видим:
get_time( "L %m/%d/%Y %H:%M:%:", szCurrentTime, 31 );
Стоит нам добавить после M:% символ S, чтобы получилось
get_time( "L %m/%d/%Y %H:%M:%S:", szCurrentTime, 31 );

Последний раз редактировалось Xomka_pff; 01.04.2013 в 22:21. Причина: Добавлено сообщение
  Ответить с цитированием
Пользователь сказал cпасибо:
worldwar (23.06.2013)
Ответ


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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Файл] War3ft 210lvl + Save XP mod TheRespawn Античиты и дополнения 1 01.02.2011 22:09
Сервер War3ft [Cs:1.6] AsPin Готовые серверы 7 10.01.2011 17:15
WAR3FT LENAR777 Вопросы и ответы, обсуждения 1 06.06.2010 07:38

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 20:53.

Пишите нам: [email protected]
Copyright © 2024 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net