
Общий формат написания рас:
[название расы]
required = число
maximum = число
restrictmap = "карта1|карта2..."
restrictteam = число
restrictitem = "предмет1|предмет2..."
teamlimit = число
author = "имя создателя расы"
desc = "краткое описание расы"
spawncmd = "код"
deathcmd = "код"
roundstartcmd = "код"
roundendcmd = "код"
preloadcmd = "код"
allowonly = "steamid1|steamid2..."
onchange = "код"
numberofskills = число
numberoflevels = число
skillnames = "название1|название2..."
skilldescr = "описание1|описание2..."
skillcfg = "событие1|событие2..."
skillneeded = "кол-во уровней1|кол-во уровней2..."
[[skill1]]
setting = "настройка1|настройка2..."
cmd = "код"
sfx = "код"
[[skill2]]
setting = "set1|set2..."
cmd = "code"
sfx = "code"
[[skill3]]
setting = "настройка1|настройка2..."
cmd = "код"
sfx = "код"
[[skill4]]
setting = "настройка1|настройка2..."
cmd = "код"
sfx = "код"
cooldown = число
Пример:
[HANGOVER]
#Requirement section
required = 3250
maximum = 0
#Restrict section
restrictmap = "de_aztec|de_dust2"
restrictteam = 3
restrictitem = "claws|fireball"
teamlimit = 1
#Other info
author = "HANGOVER"
desc = "Скорость, поджог,заморозка, банк"
spawncmd = "es_tell event_var(userid) "вы возродились";es wcs_setfx speed event_var(userid) + 1.20 0"
deathcmd = "es_tell event_var(userid) "вы умерли""
roundstartcmd = "es_tell event_var(userid) "раунд начался""
roundendcmd = "es_tell event_var(userid) "раунд завершён""
preloadcmd = "es_set myvariable 0"
allowonly = "STEAMID_0:0:12234267|STEAMID_0:0:764234321|ADMINS"
onchange = "es_msg "Игрок, игравший за расу HANGOVER, сменил её.""
#Skill information
racecategory = ""
numberofskills = 3
numberoflevels = 5
skillnames = "Руна огня|Стан|Руна удачи"
skilldescr = "Шанс с 48% поджога врага на 3.5сек|Шанс с 85% заморозить врага|Каждый раунд по 5600$"
skillcfg = "player_attacker|player_attacker|player_spawn"
skillneeded = "0|2|4"
#Skill specific information
[[skill1]]
setting = "es_xset wcs_chance 10;es_xset wcs_time 1|es_xset wcs_chance 15;es_xset wcs_time 1.5|es_xset wcs_chance 25;es_xset wcs_time 2.0|es_xset wcs_chance 35;es_xset wcs_time 2.5|es_xset wcs_chance 48;es_xset wcs_time 3.5"
racealias_burn = "es wcs_setfx burn event_var(userid) = 1 server_var(wcs_time);es wcs_xtell event_var(userid) r_flame attacker event_var(es_attackername) victim event_var(es_username);es wcs_xtell event_var(attacker) r_flame attacker event_var(es_attackername) victim event_var(es_username)"
cmd = "if (server_var(wcs_dice) <= server_var(wcs_chance)) then wcs_xalias racealias_burn"
racealias_sfx1 = "es est_effect 3 #a 0 sprites/ar2_muzzle4b.vmt server_var(wcs_x1) server_var(wcs_y1) server_var(wcs_z1) server_var(wcs_x2) server_var(wcs_y2) server_var(wcs_z2) 3 6 5 255 255 255 200;es_getplayerlocation wcs_x1 wcs_y1 wcs_z1 event_var(attacker);es_getplayerlocation wcs_x2 wcs_y2 wcs_z2 event_var(userid);es est_effect 3 #a 0 sprites/ar2_muzzle4b.vmt server_var(wcs_x1) server_var(wcs_y1) server_var(wcs_z1) server_var(wcs_x2) server_var(wcs_y2) server_var(wcs_z2) 3 5 4 255 255 255 255"
sfx = "es_getplayerlocation wcs_x1 wcs_y1 wcs_z1 event_var(attacker);es_getplayerlocation wcs_x2 wcs_y2 wcs_z2 event_var(userid);es est_effect 3 #a 0 sprites/ar2_muzzle4b.vmt server_var(wcs_x1) server_var(wcs_y1) server_var(wcs_z1) server_var(wcs_x2) server_var(wcs_y2) server_var(wcs_z2) 3 8 7 255 255 255 150;es_getplayerlocation wcs_x1 wcs_y1 wcs_z1 event_var(attacker);es_getplayerlocation wcs_x2 wcs_y2 wcs_z2 event_var(userid);wcs_xalias racealias_sfx1"
[[skill2]]
setting = "es_xset wcs_chance 25|es_xset wcs_chance 48|es_xset wcs_chance 65|es_xset wcs_chance 78|es_xset wcs_chance 85"
racealias_freeze = "es playerset freeze event_var(userid) 1;es_delayed 1 playerset freeze event_var(userid) 0"
cmd = "if (server_var(wcs_dice) <= server_var(wcs_chance)) then wcs_xalias racealias_freeze"
sfx = "es_getplayerlocation wcs_x1 wcs_y1 wcs_z1 event_var(userid);es est_effect 10 #a 0 sprites/rollermine_shock.vmt server_var(wcs_x1) server_var(wcs_y1) server_var(wcs_z1) 9 99 3 8 200 8 255 255 255 255 255"
[[skill3]]
setting = "es_xset wcs_money 750;es_xset wcs_chance 50|es_xset wcs_money 1500;es_xset wcs_chance 70|es_xset wcs_money 3500;es_xset wcs_chance 85|es_xset wcs_money 4800;es_xset wcs_chance 90|es_xset wcs_money 5600;es_xset wcs_chance 100"
racealias_moneysp = "es playerset cashadd event_var(userid) server_var(wcs_money)"
cmd = "if (server_var(wcs_dice) <= server_var(wcs_chance)) then wcs_xalias racealias_moneysp"
sfx = ""Разберем подробно каждую часть расы:
required - необходимое количество уровней для использования этой расы;
maximum - количество уровней, при котором эта раса закрывается(если не хотите что бы она закрывалась ставьте 0)
restrictmap - запрещенные карты(указываются через "|")
restrictteam - запрещенная команда (1 - наблюдатели; 2 - террористы; 3 - контр-террористы)
restrictitem - запрещенные предметы магазина для расы (надо указать не название предмета, а то что указано в "[[ ]]")
teamlimit - количество игроков которые одновременно могут использовать эту расу находясь в одной команде
author - имя создателя расы
desc - описание расы
spawncmd - код, который будет исполняться при появление (респауне) игрока
deathcmd - код, который будет исполняться при смерти игрока
roundstartcmd - код, который будет исполнятся в начале раунда
roundendcmd - код, который будет исполняться в конце раунда
preloadcmd - код, который будет исполняться во время загрузки WCS'a
allowonly - steamid игроков, для которых доступна эта раса (разделяется "|")
onchange - код, который будет исполняться при смене расы
numberofskills - количество навыков расы (1-9)
numberoflevels - количество уровней каждого навыка расы
skillnames- название навыков (разделяются "|") их должно быть столько, сколько указано в numberofskills
skilldescr - описание навыков, которое будет показываться в меню raceinfo
skillcfg - событие при котором будет срабатывать тот или иной навык
skillneeded - количество уровней расы, необходимое, для прокачивания того или иного навыка (разделяются "|") количество цифр должно совпадать с количеством навыков расы
Доступные события:
player_death - игрок умер player_kill - игрок убил player_victim - игроку нанесли урон player_attacker - игрок кого-то атакует player_hurt - игрок ранен player_ultimate - игрок использует ultimate player_spawn - игрок появился(респаун) player_say - игрок написал сообщение в чат
Примечание:
- Не все события отслеживаются по-умолчанию. Некоторые необходимо включить в настройках мода.
- Переходим непосредственно к самим навыкам(скилам). Их количество должно быть равно числу, которое написано в numberofskills.
Общий формат написания навыка:
[[skill1]]
setting = "настройка1|настройка2..."
cmd = "код"
sfx = "код"
Пример:
[[skill1]]
setting = "es_xset wcs_chance 10;es_xset wcs_time 1|es_xset wcs_chance 15;es_xset wcs_time 1.5|es_xset wcs_chance 25;es_xset wcs_time 2.0|es_xset wcs_chance 35;es_xset wcs_time 2.5|es_xset wcs_chance 48;es_xset wcs_time 3.5"
racealias_burn = "es wcs_setfx burn event_var(userid) = 1 server_var(wcs_time);es wcs_xtell event_var(userid) r_flame attacker event_var(es_attackername) victim event_var(es_username);es wcs_xtell event_var(attacker) r_flame attacker event_var(es_attackername) victim event_var(es_username)"
cmd = "if (server_var(wcs_dice) <= server_var(wcs_chance)) then wcs_xalias racealias_burn"
racealias_sfx1 = "es est_effect 3 #a 0 sprites/ar2_muzzle4b.vmt server_var(wcs_x1) server_var(wcs_y1) server_var(wcs_z1) server_var(wcs_x2) server_var(wcs_y2) server_var(wcs_z2) 3 6 5 255 255 255 200;es_getplayerlocation wcs_x1 wcs_y1 wcs_z1 event_var(attacker);es_getplayerlocation wcs_x2 wcs_y2 wcs_z2 event_var(userid);es est_effect 3 #a 0 sprites/ar2_muzzle4b.vmt server_var(wcs_x1) server_var(wcs_y1) server_var(wcs_z1) server_var(wcs_x2) server_var(wcs_y2) server_var(wcs_z2) 3 5 4 255 255 255 255"
sfx = "es_getplayerlocation wcs_x1 wcs_y1 wcs_z1 event_var(attacker);es_getplayerlocation wcs_x2 wcs_y2 wcs_z2 event_var(userid);es est_effect 3 #a 0 sprites/ar2_muzzle4b.vmt server_var(wcs_x1) server_var(wcs_y1) server_var(wcs_z1) server_var(wcs_x2) server_var(wcs_y2) server_var(wcs_z2) 3 8 7 255 255 255 150;es_getplayerlocation wcs_x1 wcs_y1 wcs_z1 event_var(attacker);es_getplayerlocation wcs_x2 wcs_y2 wcs_z2 event_var(userid);wcs_xalias racealias_sfx1"Первая строка[[skill1]] - номер навыка обязательно должен указываться в двойных квадратных скобках.
setting - настройки навыка, как правило используется функция es_xset, es_set которая устанавливает значение той или иной серверной переменной.
cmd - команды которые будут исполняться во время активации навыка, помните что команды, так же разделяются точкой с запятой ;
sfx - эффект который будет выполняться при активации навыка.
Теперь перейдем к алиасам:
Алиас - набор серверных команд. Алиасы сделаны для улучшения читаемости расы и увеличению количества используемых команд.
Алиасы описываются следующим образом:
racealias_имя_аласа = "код" Пример: racealias_freeze = "es playerset freeze event_var(userid) 1;es_delayed 1 playerset freeze event_var(userid) 0" Алиасы вызываются командой: es wcs_xalias <название алиаса>
Примечание:
- Названия алиасов не должны повторяться. Их можно вызывать из любой части расового листка, но в одинаковых алиасах не должны быть разные команды, инчаче будут возникать ошибки.
Создание Блока:
Блок - группа команд, которая содержится в скрипте и вызывается через команду es_doblock скрипт/блок
Пример блока:
block mydmg
{
es_msg "Критический урон"
}Использование блоков в навыках:
cmd = "es_doblock myscript/mydmg"
Унас на форуме:
Все о мире WARCRAFT
Все команды на сайте:
http://eventscripts.com/pages/Main_Page