offline
Опыт:
66,991
Активность:
|
» Код
Код:
//TESH.scrollpos=291
//TESH.alwaysfold=0
/*
Spell Damage Message System Are you realy think something will be here?
ver. 2.0 (build 200)
Ñîçäàòåëü: FREEZE_ball
Äëÿ ñàéòà xgm.ru
13-14.05.2010
*/
#include "cj_print.j" //Óäàëèòå ýòó ñòðîêó, åñëè óæå èñïîëüçóåòå äàííóþ áèáëèîòåêó.
/*
OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOO
OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOO
OO OO
OO ###### ############ ## ###### #### #### ############ OO
OO ## ## ############ #### ## ## ## ## ## ## ############ OO
OO ## ## ## ## ## ## ## ## ## ## ## ## OO
OO ######## ## ## ## ## ## ## #### ## ## OO
OO ##### ######### ######## ## ## ## #### ## ######### OO
OO ## ## ######### ########## ## ## ## ## ######### OO
OO ## ## ## ## ## ## ## ## ## ## OO
OO ## ## ## ## ## ## ## ## ## ## OO
OO ## ## ########### ## ## ## ## ## ## ############ OO
OO ### #### ########### #### #### ###### #### #### ############ OO
OO OO
OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOO
OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOO î_Î
*/
library_once SDMS initializer Init requires cjsprintf {
define {
void = nothing //Ýòó è ïîñëåäóùèå òðè ñòðîêè âû äîëæíû óäàëèòü, åñëè èñïîëüçóåòå â âàøåé êàðòå
int = integer //èìïîðòèðóåìóþ áèáëèîòåêó cJass'à "cj_types.j".
bool = boolean //Ïîäðîáíî îá ýòîé áèáëèîòåêå ÷èòàéòå
float = real //â ìàíóàëå ê cJass'ó.
/*==================================================
=====================Íàñòðîéêè======================
===================================================*/
private IsDebug = true //Åñëè ýòîò ïàðàìåòð ðàâåí true, áóäåò îòîáðàæàòüñÿ îòëàäî÷íàÿ èíôîðìàöèÿ.
private ColorS = "|c" //Èçìåíåíèå ýòîãî ïàðàìåòðà íå ðåêîìåíäóåòñÿ, èíà÷å öâåòà
//íå áóäóò îòîáðàæàòüñÿ êîððåêòíî.
private Color0 = "00"+"ff"+"03"+"03" //ìàêðîñû ColorXX çàäàþò öâåòà, êîòîðûìè äëÿ îïðåäåëåííûõ èãðîêîâ áóäóò
private Color1 = "00"+"00"+"42"+"ff" //îòîáðàæàòüñÿ òåêñòû âñïëûâàþùåãî óðîíà.
private Color2 = "00"+"1c"+"e6"+"b9" //Ïåðâûé ïàðàìåòð - A (ïðîçðà÷íîñòü, Alpha-channel, Transparency).
private Color3 = "00"+"54"+"00"+"79" //Âòîðîé ïàðàìåòð - R (êðàñíûé, Red).
private Color4 = "00"+"ff"+"fc"+"01" //Òðåòèé ïàðàìåòð - G (çåë¸íûé, Green).
private Color5 = "00"+"fe"+"8a"+"0e" //×åòâ¸ðòûé ïàðàìåòð - B (ñèíèé, Blue).
private Color6 = "00"+"20"+"c0"+"00" //Âû ñîæåòå èçìåíèòü ýòè ïàðàìåòðû, åñëè çíàåòå,
private Color7 = "00"+"e5"+"5b"+"b0" //÷òî îíè çíà÷àò. Ïîäðîáíåå ÷èòàéòå â âèêèïåäèè
private Color8 = "00"+"95"+"96"+"97" //ïðî ARGB ñèñòåìó.
private Color9 = "00"+"7e"+"bf"+"f1" //Öèôðà ïîñëå Color îáîçíà÷àåò íîìåð èãðîêà
private Color10 = "00"+"10"+"62"+"46" //ñîãëàñíî jass êëàññèôèêàöèè: èãðîê 1 (êðàñíûé) èìååò íîìåð 0.
private Color11 = "00"+"4e"+"2a"+"04"
private Color12 = "00"+"28"+"28"+"28" //Èãðîêè ñ íîìåðàìè 12-14 - íåéòðàëüíûå, ïîýòîìó â ñòàíäàðòíîì îòîáðàæåíèè èìåþò
private Color13 = "00"+"28"+"28"+"28" //îäèí öâåò - ñåðûé.
private Color14 = "00"+"28"+"28"+"28"
/*
Ñëåäóùèå 10 ïàðàìåòðîâ îòâå÷àþò çà ñîçäàíèå âñïëûâàþùåãî óðîíà ñ öâåòîì
îòíîøåíèÿ àòàêîâàííîãî èãðîêà ê àòàêóåìîìó è ê èãðîêó,
äëÿ êîòîðîãî ñîçäà¸òñÿ âñïëûâàþùèé òåêñò.
Ýòî íåîáõîäèìî ïðè òèïå îòîáðàæåíèÿ óðîíà 3 (ñì. äàëåå)
*/
private scYY = "00"+"00"+"00"+"ff" //Âàøè âîéñêà àòàêîâàíû âàøèìè âîéñêàìè
private scYA = "00"+"ff"+"80"+"80" //Âàøè âîéñêà àòàêîâàíû âîéñêàìè âàøåãî ñîþçíèêà.
private scYE = "00"+"80"+"00"+"00" //Âàøè âîéñêà àòàêîâàíû âîéñêàìè âðàãà.
private scAY = "00"+"80"+"00"+"80" //Âîéñêà âàøåãî ñîþçíèêà àòàêîâàíû âàøèìè âîéñêàìè.
private scAA = "00"+"80"+"80"+"ff" //Âîéñêà âàøåãî ñîþçíèêà àòàêîâàíû âîéñêàìè âàøåãî ñîþçíèêà.
private scAE = "00"+"ff"+"ff"+"00" //Âîéñêà âàøåãî ñîþçíèêà àòàêîâàíû âîéñêàìè âàøåãî âðàãà.
private scEY = "00"+"00"+"ff"+"00" //Âîéñêà âàøåãî âðàãà àòàêîâàíû âàøèìè âîéñêàìè.
private scEA = "00"+"00"+"80"+"80" //Âîéñêà âàøåãî âðàãà àòàêîâàíû âîéñêàìè âàøåãî ñîþçíèêà.
private scEE = "00"+"00"+"80"+"00" //Âîéñêà âàøåãî âðàãà àòàêîâàíû âîéñêàìè âàøåãî âðàãà.
private scOO = "00"+"ff"+"ff"+"ff" //Êðèòåðèè àòàêè íå îòâå÷àþò íå îäíîìó èç âûøåïåðå÷èñëåííûõ.
private Font_Size = 12. //Ýòîò ïàðàìåòð îòâå÷àåò çà ðàçìåð âñïëûâàþùåãî òåêñòà.
private Life_Time = 1.5 //Ýòîò ïàðàìåòð îòâå÷àåò çà âðåìÿ æèçíè âñïëûâàþùåãî òåêñòà.
private Prev_Text = "-" //Ýòîò ïàðàìåòð îòâå÷àåò çà òåêñò, êîòîðûé áóäåò îòîáðàæàòüñÿ ïåðåä ÷èñëîì âñïëûâàþùåãî óðîíà:
//ñòàíäàðòíî: "-100500".
private Next_Text = "" //Àíàëîãè÷íî ÏÎÑËÅ ÷èñëà.
private Not_Display_On_Fog_Of_War = true //Åñëè ýòîò ïàðàìåòð ðàâåí true, âñïëûâàþùèé óðîí áóäåò îòîáðàæàòüñÿ
//ÒÎËÜÊÎ äëÿ òåõ èãðîêîâ, êîòîðûì òóìàí âîéíû íå çàñòèëàåò òî÷êó îòîáðàæåíèÿ ýòîãî óðîíà, Î_î è ÷òî âû òóò çàáûëè?
//Åñëè ðàâíî false, òåêñò áóäåò ïîÿâëÿòüñÿ äàæå â çàêðûòûõ îáëàñòÿõ. òóò ñèñòåìû íåò
//Âûñòàâüòå true, åñëè ó âàñ íà êàðòå åñòü çàêðûòûå òóìàíîì âîéíû îáëàñòè. ïåðåäâèíüòå êóðñîð âïðàâî
// ïðîòèâîïîëîæíîì ñëó÷àå ëó÷øå âûñòàâèòü false, ò.ê. ìåíåå ðåñóðñîòðåáîâàòåëüíî. äî óïîðà! >_<
private Display_Type = 2 //Òèï îòîáðàæåíèÿ óðîíà.
//Çàäà¸òñÿ ÷èñëîì 1, 2 èëè 3.
//Åñëè òèï îòîáðàæåíèÿ - 1, òî öâåò âñïëûâàþùåãî óðîíà áóäåò öâåòîì èãðîêà, ÊÎÒÎÐÎÌÓ íàíåñëè óðîí.
//Åñëè òèï îòîáðàæåíèÿ - 2, òî öâåò âñïëûâàþùåãî óðîíà áóäåò öâåòîì èãðîêà, ÊÎÒÎÐÛÉ íàí¸ñ óðîí.
//Åñëè òèï îòîáðàæåíèÿ - 3, òî öâåò âñïëûâàþùåãî óðîíà áóäåò ñîîòâåòñòâîâàòü îòíîøåíèÿì ìåæäó èãðîêîì,
//êîòîðûé âèäèò âñïëûâàþùèé òåêñò, è èãðîêîì, êîòîðîìó íàíåñëè óðîí.
private Is_Dynamic = true //Åñëè ýòîò ïàðàìåòð ðàâåí true, òî èçìåíåíèå íåêîòîðûõ ïðåäûäóùèõ ïàðàìåòðîâ áóäåò äîñòóïíî ÄÈÍÀÌÈ×ÅÑÊÈ,
//ò.å. âî âðåìÿ èãðû, ïóò¸ì ïðèñâîåíèÿ ïåðåìåííûì ñ àíàëîãè÷íûì íàçâàíèåì íåîáõîäèìûõ ñâîéñòâ.
//Íàïðèìåð: SDMS_D_Font_Size = 10.
/*Äîñòóïíûå äëÿ èçìåíåíèÿ ïàðàìåòðû:
SDMS_D_Font_Size
SDMS_D_Life_Time
SDMS_D_Prev_Text
SDMS_D_Next_Text
SDMS_D_Not_Display_On_Fog_Of_War
SDMS_D_Display_Type
SDMS_D_Color[0-14] <-- ìàññèâ ñòðîê, îòâå÷àþùèé çà öâåòà ñîîòâåòñòâóþùèõ èãðîêîâ;
ïðèìåð: SDMS_Color[5] = "|c00fe8a0e"
*/
/*==================================================
=====================Ñèñòåìà=======================
===================================================*/
//Èçìåíåíèå äàëüíåéøåãî êîäà íå ðåêîìåíäóåòñÿ
}
//Ãëîáàëüíûå ïåðåìåííûå
private trigger Trg = CreateTrigger()
#if Is_Dynamic
public float D_Font_Size = Font_Size
public float D_Life_Time = Life_Time
public string D_Prev_Text = Prev_Text
public string D_Next_Text = Next_Text
public bool D_Not_Display_On_Fog_Of_War = Not_Display_On_Fog_Of_War
public int D_Display_Type = Display_Type
public string D_Color[14]
#if IsDebug
private trigger ChatEvent = CreateTrigger()
#endif
#else
private string Sds[14]
#endif
define private Error(sx) = {printf("|cffff0000Error!|r |cff990000%s|r", sx)}
define private Chat(i) = {TriggerRegisterPlayerChatEvent(ChatEvent, Player(i), "", false)}
define private NeedFunc1 = {
private string GetSpecColor(player Ad, player Ar, player You) {
if Ad == You {
if Ar == You {return ColorS+scYY}
elseif IsPlayerAlly(Ar, You) {return ColorS+scYA}
elseif IsPlayerEnemy(Ar, You) {return ColorS+scYE}
} elseif IsPlayerAlly(Ad, You) {
if Ar == You {return ColorS+scAY}
elseif IsPlayerAlly(Ar, You) {return ColorS+scAA}
elseif IsPlayerEnemy(Ar, You) {return ColorS+scAE}
} elseif IsPlayerEnemy(Ad, You) {
if Ar == You {return ColorS+scEY}
elseif IsPlayerAlly(Ar, You) {return ColorS+scEA}
elseif IsPlayerEnemy(Ar, You) {return ColorS+scEE}
}
return ""
}
}
#if Display_Type == 3
#if Is_Dynamic == false
NeedFunc1
#endif
#endif
#if Is_Dynamic
#if Display_Type != 3
NeedFunc1
#else
NeedFunc1
#endif
#endif
private texttag CreateFloatingTextTagAboveUnit(string Text, real Size, unit TargetUnit, real LifeTime) {
texttag tt = CreateTextTag(); SetTextTagText(tt, Text, Size*.0023); SetTextTagPosUnit(tt, TargetUnit, 20.)
SetTextTagVelocity(tt, .05325*Cos(1.570795), .05325*Sin(1.570795))
SetTextTagPermanent(tt, false); SetTextTagLifespan(tt, LifeTime); SetTextTagFadepoint(tt, 0.)
return tt}
private void MainFunc() {
unit Ad = GetTriggerUnit()
unit Ar = GetEventDamageSource()
real Dmg = GetEventDamage()
texttag Tt = null
int i = 0
if Dmg != 0 {
#if Is_Dynamic
if D_Display_Type == 1 {
Tt = CreateFloatingTextTagAboveUnit(D_Color[GetPlayerId(GetOwningPlayer(Ad))]+D_Prev_Text+I2S(R2I(Dmg))+D_Next_Text+"|r", D_Font_Size, Ad, D_Life_Time)}
elseif D_Display_Type == 2 {
Tt = CreateFloatingTextTagAboveUnit(D_Color[GetPlayerId(GetOwningPlayer(Ar))]+D_Prev_Text+I2S(R2I(Dmg))+D_Next_Text+"|r", D_Font_Size, Ad, D_Life_Time)}
else {
whilenot(i == 15) {
if GetPlayerController(Player(i)) == MAP_CONTROL_USER and GetPlayerSlotState(Player(i)) == PLAYER_SLOT_STATE_PLAYING {
Tt = CreateFloatingTextTagAboveUnit(GetSpecColor(GetOwningPlayer(Ad), GetOwningPlayer(Ar), Player(i))+D_Prev_Text+I2S(R2I(Dmg))+D_Next_Text+"|r", D_Font_Size, Ad, D_Life_Time)
if D_Not_Display_On_Fog_Of_War {
SetTextTagVisibility(Tt, false)
if IsUnitVisible(Ad, Player(i)) and Player(i) == GetLocalPlayer() {
SetTextTagVisibility(Tt, true)
}
} else {
SetTextTagVisibility(Tt, false)
if Player(i) == GetLocalPlayer() {
SetTextTagVisibility(Tt, true)
}
}
}
i ++
}
}
i = 0
if D_Not_Display_On_Fog_Of_War and D_Display_Type != 3 {
SetTextTagVisibility(Tt, false)
whilenot(i == 15) {
if GetPlayerController(Player(i)) == MAP_CONTROL_USER and GetPlayerSlotState(Player(i)) == PLAYER_SLOT_STATE_PLAYING and IsUnitVisible(Ad, Player(i)) and Player(i) == GetLocalPlayer() {
SetTextTagVisibility(Tt, true)
}
i ++
}
}
#else
#if Display_Type
Tt = CreateFloatingTextTagAboveUnit(Sds[GetPlayerId(GetOwningPlayer(Ad))]+Prev_Text+I2S(R2I(Dmg))+Next_Text+"|r", Font_Size, Ad, Life_Time)
#elseif Display_Type == 2
Tt = CreateFloatingTextTagAboveUnit(Sds[GetPlayerId(GetOwningPlayer(Ar))]+Prev_Text+I2S(R2I(Dmg))+Next_Text+"|r", Font_Size, Ad, Life_Time)
#else
whilenot(i == 15) {
if GetPlayerController(Player(i)) == MAP_CONTROL_USER and GetPlayerSlotState(Player(i)) == PLAYER_SLOT_STATE_PLAYING {
Tt = CreateFloatingTextTagAboveUnit(GetSpecColor(GetOwningPlayer(Ad), GetOwningPlayer(Ar), Player(i))+Prev_Text+I2S(R2I(Dmg))+Next_Text+"|r", Font_Size, Ad, Life_Time)
#if Not_Display_On_Fog_Of_War
SetTextTagVisibility(Tt, false)
if IsUnitVisible(Ad, Player(i)) and Player(i) == GetLocalPlayer() {
SetTextTagVisibility(Tt, true)
}
#else
SetTextTagVisibility(Tt, false)
if Player(i) == GetLocalPlayer() {
SetTextTagVisibility(Tt, true)
}
#endif
}
i ++
}
#endif
i = 0
#if Not_Display_On_Fog_Of_War
#if Display_Type
SetTextTagVisibility(Tt, false)
whilenot(i == 15) {
if GetPlayerController(Player(i)) == MAP_CONTROL_USER and GetPlayerSlotState(Player(i)) == PLAYER_SLOT_STATE_PLAYING and IsUnitVisible(Ad, Player(i)) and Player(i) == GetLocalPlayer() {
SetTextTagVisibility(Tt, true)
}
i ++
}
#else
SetTextTagVisibility(Tt, false)
whilenot(i == 15) {
if GetPlayerController(Player(i)) == MAP_CONTROL_USER and GetPlayerSlotState(Player(i)) == PLAYER_SLOT_STATE_PLAYING and IsUnitVisible(Ad, Player(i)) and Player(i) == GetLocalPlayer() {
SetTextTagVisibility(Tt, true)
}
i ++
}
#endif
#endif
#endif
}
Ad = null; Ar = null; Tt = null
}
#if IsDebug
#if Is_Dynamic //Î_Î ^_^ õîðîøî, ÷òî êîììåíòû íå êîìïèëèðóþòñÿ
private void ChatFunc() {
string s = GetEventPlayerChatString()
if SubString(s, 0, 3) == "-fs" {
D_Font_Size = S2I(SubString(s, 4, StringLength(s)))
if D_Font_Size <= 0 {Error("Ðàçìåð øðèôòà íåâåðíûé!"); D_Font_Size = Font_Size}
} elseif SubString(s, 0, 3) == "-pt" {
D_Prev_Text = SubString(s, 4, StringLength(s))
} elseif SubString(s, 0, 3) == "-nt" {
D_Next_Text = SubString(s, 4, StringLength(s))
} elseif SubString(s, 0, 3) == "-lt" {
D_Life_Time = S2I(SubString(s, 4, StringLength(s)))
if D_Life_Time <= 0 {Error("Âðåìÿ æèçíè âûñïëûâàþùåãî óðîíà íåâåðíî!"); D_Life_Time = Life_Time}
} elseif SubString(s, 0, 3) == "-dt" {
D_Display_Type = S2I(SubString(s, 4, StringLength(s)))
if D_Display_Type != 1 and D_Display_Type != 2 and D_Display_Type != 3 {Error("Òèï îòîáðàæåíèÿ óðîíà íåâåðíûé!"); D_Display_Type = Display_Type}
} elseif SubString(s, 0, 3) == "-hd" {
if S2I(SubString(s, 4, StringLength(s))) == 1 {
D_Not_Display_On_Fog_Of_War = true
} elseif S2I(SubString(s, 4, StringLength(s))) == 0 {
D_Not_Display_On_Fog_Of_War = false
}
}
}
#endif
#endif
private void EnterTrigger() {TriggerRegisterUnitEvent(Trg, GetEnteringUnit(), EVENT_UNIT_DAMAGED)}
private void EnumGroup() {TriggerRegisterUnitEvent(Trg, GetEnumUnit(), EVENT_UNIT_DAMAGED)}
private void Init() {
TriggerAddAction(Trg, function MainFunc)
region R = CreateRegion(); RegionAddRect(R, GetWorldBounds())
trigger tr = CreateTrigger(); TriggerRegisterEnterRegion(tr, R, null); TriggerAddAction(tr, function EnterTrigger); R = null; tr = null
group gr = CreateGroup(); GroupEnumUnitsInRect(gr, GetWorldBounds(), null); ForGroup(gr, function EnumGroup); DestroyGroup(gr); gr = null
#if Is_Dynamic
D_Color[0] = ColorS+Color0; D_Color[1] = ColorS+Color1; D_Color[2] = ColorS+Color2
D_Color[3] = ColorS+Color3; D_Color[4] = ColorS+Color4; D_Color[5] = ColorS+Color5
D_Color[6] = ColorS+Color6; D_Color[7] = ColorS+Color7; D_Color[8] = ColorS+Color8
D_Color[9] = ColorS+Color9; D_Color[10] = ColorS+Color10; D_Color[11] = ColorS+Color11
D_Color[12] = ColorS+Color12; D_Color[13] = ColorS+Color13; D_Color[14] = ColorS+Color14
#else
Sds[0] = ColorS+Color0; Sds[1] = ColorS+Color1; Sds[2] = ColorS+Color2
Sds[3] = ColorS+Color3; Sds[4] = ColorS+Color4; Sds[5] = ColorS+Color5
Sds[6] = ColorS+Color6; Sds[7] = ColorS+Color7; Sds[8] = ColorS+Color8
Sds[9] = ColorS+Color9; Sds[10] = ColorS+Color10; Sds[11] = ColorS+Color11
Sds[12] = ColorS+Color12; Sds[13] = ColorS+Color13; Sds[14] = ColorS+Color14
#endif
#if IsDebug
printf("|cff999999Ýòà êàðòà èñïîëüçóåò ñèñòåìó îòîáðàæåíèÿ âñïëûâàþùåãî óðîíà|r|cffffcc00 SDMS v.2.0 (build 200)|r.")
printf("Äèíàìè÷åñêèé ðåæèì: %b. Ðàçìåð øðèôòà: %r. Ïðèìåð îòîáðàæåíèÿ òåêñòà: %s100%s. Âðåìÿ æèçíè òåêñòà: %r.", Is_Dynamic, Font_Size, Prev_Text, Next_Text, Life_Time)
printf("Òèï îòîáðàæåíèÿ: %i. Îòîáðàæàåò â íåâèäèìûõ çîíàõ: %b.", Display_Type, Not_Display_On_Fog_Of_War)
if Font_Size <= 0 {Error("Ðàçìåð øðèôòà íåâåðíûé!")}
if Life_Time <= 0 {Error("Âðåìÿ æèçíè âûñïëûâàþùåãî óðîíà íåâåðíî!")}
if Display_Type != 1 and Display_Type != 2 and Display_Type != 3 {Error("Òèï îòîáðàæåíèÿ óðîíà íåâåðíûé!")}
#if Is_Dynamic
Chat(0); Chat(1); Chat(2); Chat(3); Chat(4); Chat(5); Chat(6); Chat(7); Chat(8); Chat(9); Chat(10); Chat(11)
TriggerAddAction(ChatEvent, function ChatFunc)
printf("Äîñòóïíû ñëåäóùèå òåñòîâûå êîìàíäû: -fs, -pt, -nt, -lt, -dt, -hd")
#endif
#endif
}
}
// © by FREEZE_ball, 2010 XGM.ru <=> Russian Modmaking Portal
Msey добавил:
Теперь новый тип ошибки - runtime crit error. Память не может быть read.
Отредактировано Nekit1234007, 03.09.2010 в 16:28.
|