Общий формат написания рас:
[название расы] 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