DotA KillSystem + DotA SpreeSystem
DeadJass Дата: Понедельник, 13 Июня 2011, 20:18:08 | Сообщение # 1
7 уровень
Группа: Проверенные
Сообщений: 447
Награды:
0
Репутация:
30
Блокировки:
Пользуясь случаем хатю пиридать привет мами и папи, а такжи бубушки и дедушки!! И есче я хатю сказать бальшое спс JNGP!!!адын Моя первая работа на cJass. Для использования нужен JNGP и AdicHelper Чтто бы установить в карту нужно: 1)Скопировать все триггерые себе в карту 2)Скопировать код из корня карты 3)Установить звуки в триггере Int Так же имеется версия на обычном Jass2. Если нужно - выложу. Скачать Ах,да забыл сказать моя первая работа на cJass. Так что знающие люди скажите где сократить где добавить ну короче посоветуйте х) Для лентяев выкладываю код:
Code
include "cj_types.j" bool fb=false int array kill timer array KillTimer string array pcn string array KS_Text string array TextS int array spree sound array KS_Sound sound array SoundS
Code
void Trig_Init_Actions(void) { int i=0 //Здесь устанавливаем звуки.Чтобы работало убери "//" //KS_Sound[3]=gg_snd_Killing_Spree //KS_Sound[4]=gg_snd_KS5_Dominating //KS_Sound[5]=gg_snd_MegaKill //KS_Sound[6]=gg_snd_KS6_Unstoppable //KS_Sound[7]=gg_snd_monster_kill //KS_Sound[8]=gg_snd_MK4_Multi_Kill //KS_Sound[9]=gg_snd_GodLike //KS_Sound[2]=gg_snd_DoubleKill //KS_Sound[3]=gg_snd_TripleKill //KS_Sound[4]=gg_snd_UltraKill //KS_Sound[5]=gg_snd_Rampage //Установка текстов KS_Text[3]=" |cFF0042FFKillingSpree!|r" KS_Text[4]=" |cFF20C000Dominating!|" KS_Text[5]=" |cFFFF0303Megakill!|r" KS_Text[6]=" |cFFFE8A0EUnstoppable!|r" KS_Text[7]=" |cFF4E2A04Monsterkill!|r" KS_Text[8]=" |cFFFF0555Multikill!|r" KS_Text[9]=" |cFFFFFC01Godlike!!|r" TextS[2]=" |cFF0042FFDouble Kill!|r" TextS[3]=" |cFFFFFC01Triple Kill!|r" TextS[4]=" |cFFFF0303Ultra Kill!|r" TextS[5]=" |cFF7EBFF1Rampage!|r" whilenot i>11 { KillTimer[i]=CreateTimer() i++ } //Установка цветов pcn[0]="|cFFFF0303"+GetPlayerName(Player(0))+"|r" pcn[1]="|cFF0042FF"+GetPlayerName(Player(1))+"|r" pcn[2]="|cFF1CE6B9"+GetPlayerName(Player(2))+"|r" pcn[3]="|cFF540081"+GetPlayerName(Player(3))+"|r" pcn[4]="|cFFFFFC01"+GetPlayerName(Player(4))+"|r" pcn[5]="|cFFFE8A0E"+GetPlayerName(Player(5))+"|r" pcn[6]="|cFF20C000"+GetPlayerName(Player(6))+"|r" pcn[7]="|cFFE55BB0"+GetPlayerName(Player(7))+"|r" pcn[8]="|cFF959697"+GetPlayerName(Player(8))+"|r" pcn[9]="|cFF7EBFF1"+GetPlayerName(Player(9))+"|r" pcn[10]="|cFF106246"+GetPlayerName(Player(10))+"|r" pcn[11]="|cFF4E2A04"+GetPlayerName(Player(11))+"|r" } //=========================================================================== void InitTrig_Init(void) { gg_trg_Init = CreateTrigger( ) TriggerRegisterTimerEvent(gg_trg_Init,1., false) TriggerAddAction( gg_trg_Init, function Trig_Init_Actions ) }
Code
void Trig_KillHero_Timer(void) { timer t=GetExpiredTimer() int i=0 whilenot t==KillTimer[i] { i++ } kill[i]=0 t=null } void Trig_KillHero_Actions(void) { int i=0 unit k=GetKillingUnit() unit d=GetTriggerUnit() player pk=GetOwningPlayer(k) player pd=GetOwningPlayer(d) int idpk=GetPlayerId(pk) int idpd=GetPlayerId(pd) int gold=150+(25*kill[idpk]) int goldfb=200//Награда за Первую Кровь if IsUnitType(d,UNIT_TYPE_HERO) { kill[idpk]++ if fb==false { SetPlayerState(pk,PLAYER_STATE_RESOURCE_GOLD, GetPlayerState(pk,PLAYER_STATE_RESOURCE_GOLD)+gold+goldfb) DisplayTextToPlayer(GetLocalPlayer(),0.,0.,pcn[idpk]+" убил игрока "+pcn[idpd]+" и получил за его голову " + "|c00FFFF00"+I2S(R2I(gold))+" + "+I2S(R2I(goldfb))+"|cFFFF0303 (Первая Кровь)|r"+" золота!") //StartSound(gg_snd_firstblood) DisplayTextToPlayer(GetLocalPlayer(),0.,0.,pcn[idpk]+" пролил |cFFFF0303первую кровь!|r") fb=true } if kill[idpk]>1 { // StartSound(SoundS[kill[idpk]]) DisplayTextToPlayer(GetLocalPlayer(),0.,0.,pcn[idpk]+TextS[kill[idpk]]) } if kill[idpk]>5 { DisplayTextToPlayer(GetLocalPlayer(),0.,0.,pcn[idpk]+TextS[5]) } TimerStart(KillTimer[idpk],10.,false,function Trig_KillHero_Timer) SetPlayerState(pk,PLAYER_STATE_RESOURCE_GOLD, GetPlayerState(pk,PLAYER_STATE_RESOURCE_GOLD)+gold) SetPlayerState(pd,PLAYER_STATE_RESOURCE_GOLD, GetPlayerState(pd,PLAYER_STATE_RESOURCE_GOLD)-gold/2) if fb { DisplayTextToPlayer(GetLocalPlayer(),0.,0.,pcn[idpk]+" убил игрока "+pcn[idpd]+" и получил за его голову " + "|c00FFFF00"+I2S(R2I(gold))+"|r золота!") } } k=null d=null } //=========================================================================== void InitTrig_KillHero(void) { int index=0 gg_trg_KillHero=CreateTrigger() whilenot index>11 { TriggerRegisterPlayerUnitEvent(gg_trg_KillHero,Player(index),EVENT_PLAYER_UNIT_DEATH,null) index++ } TriggerAddAction(gg_trg_K i llHero,function Trig_KillHero_Actions) }
Code
bool Trig_SpreeSystem_Cond(void) { return IsUnitType(GetTriggerUnit(),UNIT_TYPE_HERO) } void Trig_SpreeSystem_Actions (void) { player pk=GetOwningPlayer(GetKillingUnit()) player pd=GetOwningPlayer(GetTriggerUnit()) int idpk=GetPlayerId(pk) int idpd=GetPlayerId(pd) spree[idpk]++ spree[idpd]=0 if spree[idpk]>2{ if spree[idpk]>=9{ StartSound(KS_Sound[9]) DisplayTextToPlayer(GetLocalPlayer(),0,0,pcn[idpk]+KS_Text[9]) } else { StartSound(KS_Sound[spree[idpk]]) DisplayTextToPlayer(GetLocalPlayer(),0,0,pcn[idpk]+KS_Text[spree[idpk]]) } } } //=========================================================================== void InitTrig_SpreeSystem(void){ int index=0 gg_trg_SpreeSystem=CreateTrigger() whilenot index>11 { TriggerRegisterPlayerUnitEvent(gg_trg_SpreeSystem,Player(index),EVENT_PLAYER_UNIT_DEATH,null) index++ } TriggerAddCondition(gg_t r g_SpreeSystem,Condition(function Trig_SpreeSystem_Cond)) TriggerAddAction(gg_trg_SpreeSystem,function Trig_SpreeSystem_Actions) }
^ кликабельно
Archers Of The Island v1.8 - на стадии завершения
SirNikolas Дата: Понедельник, 13 Июня 2011, 20:20:58 | Сообщение # 2
Группа: Модераторы
Сообщений: 6729
Награды:
1
Репутация:
1867
Блокировки:
Quote (DeadJass )
bool Trig_SpreeSystem_Cond(void) { return IsUnitType(GetTriggerUnit(),UNIT_TYPE_HERO) }
== true
DeadJass Дата: Понедельник, 13 Июня 2011, 22:45:29 | Сообщение # 3
7 уровень
Группа: Проверенные
Сообщений: 447
Награды:
0
Репутация:
30
Блокировки:
SirNikolas , вроде не обязательно?Добавлено (13-06-2011, 20:29) --------------------------------------------- или я тебя не понял?
Добавлено (13-06-2011, 22:45) --------------------------------------------- Давайте коментим блин =)
^ кликабельно
Archers Of The Island v1.8 - на стадии завершения
romaN-1998 Дата: Понедельник, 13 Июня 2011, 22:46:55 | Сообщение # 4
10 уровень
Группа: Проверенные
Сообщений: 1368
Награды:
0
Репутация:
10
Блокировки:
DeadJass , cJass для меня - Луна... Не шарю.
DeadJass Дата: Понедельник, 13 Июня 2011, 22:54:56 | Сообщение # 5
7 уровень
Группа: Проверенные
Сообщений: 447
Награды:
0
Репутация:
30
Блокировки:
romaN-1998 , http://cjass.xgm.ru/manual-ru#htoc25 - почитай все поймешь
^ кликабельно
Archers Of The Island v1.8 - на стадии завершения
DragoN Дата: Вторник, 14 Июня 2011, 00:17:50 | Сообщение # 6
Инквизитор
Группа: Стримеры
Сообщений: 4348
Награды:
7
Репутация:
2776
Блокировки:
а зачем cJass для такого простого кода? и код довольно нечитабельный для выравнивания кода юзай это
El Psy Congroo
CHLSN Дата: Вторник, 14 Июня 2011, 01:41:53 | Сообщение # 7
10 уровень
Группа: Проверенные
Сообщений: 1627
Награды:
0
Репутация:
132
Блокировки:
DragoN , а есть утилита для убиения читабельности?
Я в контакте и на warcraft3ft.info . Кто может сказать, почему **** дизайнер писал вместо "pt" "px" в CSS, благодаря чему нужно смотреть форум через лупу с Ctrl++?
DeadJass Дата: Вторник, 14 Июня 2011, 06:03:39 | Сообщение # 8
7 уровень
Группа: Проверенные
Сообщений: 447
Награды:
0
Репутация:
30
Блокировки:
DragoN , я просто тренировалс свои кривые ручки к синтксису cJass. хочу еще научится юзать всякие private and public и еще несколько плюх
^ кликабельно
Archers Of The Island v1.8 - на стадии завершения
SirNikolas Дата: Вторник, 14 Июня 2011, 09:28:09 | Сообщение # 9
Группа: Модераторы
Сообщений: 6729
Награды:
1
Репутация:
1867
Блокировки:
Quote (DragoN )
для выравнивания кода юзай
это Если в JassCraft'е нажать Shift+F5, будет то же самое.Quote (CHLSN )
есть утилита для убиения читабельности?
wc3mapoptimizer. Результат его работы можно наблюдать, вытащив из Доты файл war3map.j и просмотрев названия имен функций и переменных.Quote (DeadJass )
хочу еще научится юзать всякие private and public
Это vJASS. Почитай это , это и это .
subaku Дата: Вторник, 14 Июня 2011, 10:32:50 | Сообщение # 10
6 уровень
Группа: Проверенные
Сообщений: 174
Награды:
0
Репутация:
-18
Блокировки:
DeadJass , ты себя спалил Drei ;DДобавлено (14-06-2011, 10:32) ---------------------------------------------
Quote (romaN-1998 )
DeadJass, cJass для меня - Луна... Не шарю.
Мне кажеться для тебе и триггеры-солнце. Утверждать что человек знающий Jass не разберётся в cJass-бред.
ФЕНИКС ЧО
SirNikolas Дата: Вторник, 14 Июня 2011, 11:23:56 | Сообщение # 11
Группа: Модераторы
Сообщений: 6729
Награды:
1
Репутация:
1867
Блокировки:
Quote (subaku )
Утверждать, что человек знающий Jass, не разберётся в cJass - бред.
+1. c - это просто удобная надстройка. Вот v - это посложнее будет.
romaN-1998 Дата: Среда, 15 Июня 2011, 20:40:14 | Сообщение # 12
10 уровень
Группа: Проверенные
Сообщений: 1368
Награды:
0
Репутация:
10
Блокировки:
Quote (subaku )
Утверждать что человек знающий Jass не разберётся в cJass-бред.
Я вообще синтаксис не знаю cJass'а, если прочту только малень.
lawson Дата: Среда, 15 Июня 2011, 21:11:12 | Сообщение # 13
Группа: Проверенные
Сообщений: 3482
Награды:
0
Репутация:
974
Блокировки:
Зачем мучиться писать на cJASS всякие там скобки и void если все равно все переводиться в обычный JASS.
Nic nie wiem bo mam chuj. редактирую посты! ВСЕ!
DeadJass Дата: Среда, 15 Июня 2011, 23:32:51 | Сообщение # 14
7 уровень
Группа: Проверенные
Сообщений: 447
Награды:
0
Репутация:
30
Блокировки:
lawson , Мне легче писать на cJass
^ кликабельно
Archers Of The Island v1.8 - на стадии завершения
SirNikolas Дата: Четверг, 16 Июня 2011, 19:35:24 | Сообщение # 15
Группа: Модераторы
Сообщений: 6729
Награды:
1
Репутация:
1867
Блокировки:
Quote (lawson )
Зачем мучиться писать на cJASS всякие там скобки и void, если все равно все переводиться в обычный JASS?
Потому что скобки и void писать быстрее, чем end и nothing.
lawson Дата: Четверг, 16 Июня 2011, 20:51:54 | Сообщение # 16
Группа: Проверенные
Сообщений: 3482
Награды:
0
Репутация:
974
Блокировки:
SirNikolas , Quote (SirNikolas )
все равно все переводиться в обычный JASS
Вопрос: код который ты импортируешь в карту типа include этот код вписываеться сразу в движок игры или только в карту?
Nic nie wiem bo mam chuj. редактирую посты! ВСЕ!
Сообщение отредактировал lawson - Четверг, 16 Июня 2011, 20:55:35
DeadJass Дата: Четверг, 16 Июня 2011, 21:55:49 | Сообщение # 17
7 уровень
Группа: Проверенные
Сообщений: 447
Награды:
0
Репутация:
30
Блокировки:
lawson , карту
^ кликабельно
Archers Of The Island v1.8 - на стадии завершения