XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Барахолка
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Ответ
 
Dreii
define{name=Dreii age=17}
offline
Опыт: 5,246
Активность:
DotA KillSystem + DotA SpreeSystem
Моя первая работа на cJass.
Для использования нужен JNGP и AdicHelper
Чтто бы установить в карту нужно:
1)Скопировать все триггерые себе в карту
2)Скопировать код из корня карты
3)Установить звуки в триггере Int
Так же имеется версия на обычном Jass2.
Если нужно - выложу.
Знающие люди дайте дельные советы
Скачать

Для лентяев выкладываю код:
» Корень карты
Код:
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

» Init
Код:
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 )
}

» KillHero
Код:
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_D  EATH,null)
index++
       }
TriggerAddAction(gg_trg_KillHero,function Trig_KillHero_Actions)
}

» SpreeSystem
Код:
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_UNI  T_DEATH,null)
     index++
}
TriggerAddCondition(gg_trg_SpreeSystem,Condition(function Trig_SpreeSystem_Cond))
TriggerAddAction(gg_trg_SpreeSystem,function Trig_SpreeSystem_Actions)
}
Старый 13.06.2011, 21:15
Suite
┌_____┐
offline
Опыт: 11,222
Активность:
(Оо) а что это? Описание бы системы, а то б доТу я не играю вообще.
Старый 14.06.2011, 08:46
elfloo

offline
Опыт: 1,119
Активность:
Пишу - при убийставх идет отслеживание убийственного порыва (spree) и мультиубийств(double.triple и тд.) а за системки спасибо) хотя я и в джассе 0 - тут ничего сложного. ПЕРВОНАХ +D
Старый 14.06.2011, 09:21
Suite
┌_____┐
offline
Опыт: 11,222
Активность:
хД разве в хгм такой системки нету? опять велосипед =/
Suite добавил:
ах да это было в другом сайте. тьфу перепутал
Старый 14.06.2011, 10:58
PUNKproMASTER

offline
Опыт: 230
Активность:
Спасибо за систем-ку, хороша, хоть и не нова, но много полезного нашел))
Старый 14.06.2011, 15:18
Helpmeplz

offline
Опыт: 11,698
Активность:
не хватает константы - время таймера сбрасывающего мультикил.
Старый 14.06.2011, 15:22
Dreii
define{name=Dreii age=17}
offline
Опыт: 5,246
Активность:
Helpmeplz, Это как?
Старый 14.06.2011, 16:53
Helpmeplz

offline
Опыт: 11,698
Активность:
Код:
TimerStart(KillTimer[idpk],10.,false,function Trig_KillHero_Timer)

я так понимаю это он
Старый 19.06.2011, 23:42
MoRGaN_wm
forever warlock
offline
Опыт: 240
Активность:
напишите пожалуйста, как настроить, что бы системка работала не когда герои умирают, а когда юниты (не вызванные, ну и там не дамики)
Старый 19.07.2011, 20:27
ExotiC
SoD
offline
Опыт: 1,105
Активность:
Что-то не очень идентичны цвета...
Тоже как-то делал такую же систему

ExotiC добавил:
Только у меня небольшая погрешность, можно исправить, только мне эта система уже не к чему...
Миниатюры
Кликните на картинку для увеличения
Название:  Безымянный.PNG
Просмотров: 72
Размер:  228.1 Кбайт  
Старый 19.07.2011, 20:39
LuNa_aDa
Trolling For Ever
offline
Опыт: 12,610
Активность:
Такая система - плевое дело на гуи. Ничего нового.
Старый 20.07.2011, 08:49
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

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

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



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