☆Гайд по созданию расы☆

Общий формат написания рас:

Код:
[название расы]
	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