Rune logging.

Adds various rune logging.
This commit is contained in:
PsiOmega
2015-04-06 09:43:49 +02:00
parent 9a6595d25f
commit 036a948372
4 changed files with 78 additions and 25 deletions

View File

@@ -57,7 +57,7 @@ Also, you never added distance checking after target is selected. I've went ahea
var/mob/caster = user//The wizard/whomever doing the body transferring.
//SPELL LOSS BEGIN
admin_attack_log(caster, victim, "Used mind transfer on", "Had mind transfer used on him by", "used mind transfer on")
admin_attack_log(caster, victim, "Used mind transfer", "Was the victim of mind transfer", "used mind transfer on")
//NOTE: The caster must ALWAYS keep mind transfer, even when other spells are lost.
var/obj/effect/proc_holder/spell/targeted/mind_transfer/m_transfer = locate() in user.spell_list//Find mind transfer directly.

View File

@@ -2,12 +2,30 @@ proc/log_and_message_admins(var/message as text)
log_admin(usr ? "[key_name(usr)] [message]" : "EVENT [message]")
message_admins(usr ? "[key_name(usr)] [message]" : "EVENT [message]")
proc/log_and_message_admins_many(var/list/mob/users, var/message)
if(!users || !users.len)
return
var/list/user_keys = list()
for(var/mob/user in users)
user_keys += key_name(user)
log_admin("[english_list(user_keys)] [message]")
message_admins("[english_list(user_keys)] [message]")
proc/admin_log_and_message_admins(var/message as text)
log_admin(usr ? "[key_name_admin(usr)] [message]" : "EVENT [message]")
message_admins(usr ? "[key_name_admin(usr)] [message]" : "EVENT [message]", 1)
proc/admin_attack_log(var/mob/attacker, var/mob/victim, var/attacker_message, var/victim_message, var/admin_message)
victim.attack_log += text("\[[time_stamp()]\] <font color='orange'>[victim_message] [key_name(attacker)]</font>")
attacker.attack_log += text("\[[time_stamp()]\] <font color='red'>[attacker_message] [key_name(victim)]</font>")
victim.attack_log += text("\[[time_stamp()]\] <font color='orange'>[key_name(attacker)] - [victim_message]</font>")
attacker.attack_log += text("\[[time_stamp()]\] <font color='red'>[key_name(victim)] - [attacker_message]</font>")
msg_admin_attack("[key_name(attacker)] [admin_message] [key_name(victim)] (INTENT: [uppertext(attacker.a_intent)]) (<A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[attacker.x];Y=[attacker.y];Z=[attacker.z]'>JMP</a>)")
proc/admin_attacker_log_many_victims(var/mob/attacker, var/list/mob/victims, var/attacker_message, var/victim_message, var/admin_message)
if(!victims || !victims.len)
return
for(var/mob/victim in victims)
admin_attack_log(attacker, victim, attacker_message, victim_message, admin_message)

View File

@@ -458,6 +458,8 @@ var/engwords = list("travel", "blood", "join", "hell", "destroy", "technology",
user << "\red You slice open one of your fingers and begin drawing a rune on the floor whilst chanting the ritual that binds your life essence with the dark arcane energies flowing through the surrounding world."
user.take_overall_damage((rand(9)+1)/10) // 0.1 to 1.0 damage
if(do_after(user, 50))
var/area/A = get_area(user)
log_and_message_admins("created \an [chosen_rune] rune at \the [A.name] - [user.loc.x]-[user.loc.y]-[user.loc.z].")
if(usr.get_active_hand() != src)
return
var/mob/living/carbon/human/H = user
@@ -515,6 +517,8 @@ var/engwords = list("travel", "blood", "join", "hell", "destroy", "technology",
var/mob/living/carbon/human/H = user
R.blood_DNA = list()
R.blood_DNA[H.dna.unique_enzymes] = H.dna.b_type
var/area/A = get_area(user)
log_and_message_admins("created \an [r] rune at \the [A.name] - [user.loc.x]-[user.loc.y]-[user.loc.z].")
switch(r)
if("teleport")
var/list/words = list("ire", "ego", "nahlizet", "certum", "veri", "jatkaa", "balaq", "mgar", "karazet", "geeri")

View File

@@ -104,7 +104,7 @@ var/list/sacrificed = list()
if(M.stat==2)
continue
usr.say("Mah[pick("'","`")]weyh pleggh at e'ntrath!")
if (M.species && (M.species.flags & NO_PAIN))
M.visible_message("\red The markings below [M] glow a bloody red.")
else
@@ -116,6 +116,7 @@ var/list/sacrificed = list()
// Mostly for the benefit of those who resist, but it makes sense for even those who join to have some.. effect.
M.take_overall_damage(0, 10)
admin_attack_log(usr, M, "Used a convert rune", "Was subjected to a convert rune", "used a convert rune on")
var/choice = alert(M,"Do you want to join the cult?","Submit to Nar'Sie","Resist","Submit")
if(choice == "Submit")
ticker.mode.add_cultist(M.mind)
@@ -146,12 +147,13 @@ var/list/sacrificed = list()
/////////////////////////////////////////FOURTH RUNE
tearreality()
var/cultist_count = 0
var/list/cultists = new()
for(var/mob/M in range(1,src))
if(iscultist(M) && !M.stat)
M.say("Tok-lyr rqa'nap g[pick("'","`")]lt-ulotf!")
cultist_count += 1
if(cultist_count >= 9)
cultists += 1
if(cultists.len >= 9)
log_and_message_admins_many(cultists, "summoned Nar-sie.")
new /obj/machinery/singularity/narsie/large(src.loc)
if(ticker.mode.name == "cult")
ticker.mode:eldergod = 0
@@ -162,6 +164,7 @@ var/list/sacrificed = list()
/////////////////////////////////////////FIFTH RUNE
emp(var/U,var/range_red) //range_red - var which determines by which number to reduce the default emp range, U is the source loc, needed because of talisman emps which are held in hand at the moment of using and that apparently messes things up -- Urist
log_and_message_admins("activated an EMP rune.")
if(istype(src,/obj/effect/rune))
usr.say("Ta'gh fara[pick("'","`")]qha fel d'amar det!")
else
@@ -183,6 +186,7 @@ var/list/sacrificed = list()
if(R.word1==cultwords["travel"] && R.word2==cultwords["blood"] && R.word3==cultwords["self"])
for(var/mob/living/carbon/D in R.loc)
if(D.stat!=2)
admin_attack_log(usr, D, "Used a blood drain rune.", "Was victim of a blood drain rune.", "used a blood drain rune on")
var/bdrain = rand(1,25)
D << "\red You feel weakened."
D.take_overall_damage(bdrain, 0)
@@ -423,6 +427,7 @@ var/list/sacrificed = list()
D << "<font color=\"purple\"><b><i>Your blood pulses. Your head throbs. The world goes red. All at once you are aware of a horrible, horrible truth. The veil of reality has been ripped away and in the festering wound left behind something sinister takes root.</b></i></font>"
D << "<font color=\"purple\"><b><i>Assist your new compatriots in their dark dealings. Their goal is yours, and yours is theirs. You serve the Dark One above all else. Bring It back.</b></i></font>"
log_and_message_admins("used a manifest rune.")
var/mob/living/user = usr
while(this_rune && user && user.stat==CONSCIOUS && user.client && user.loc==this_rune.loc)
@@ -591,7 +596,7 @@ var/list/sacrificed = list()
C.say("Barhah hra zar[pick("'","`")]garis!")
for(var/mob/H in victims)
var/accepted = 0
var/worth = 0
if(istype(H,/mob/living/carbon/human))
var/mob/living/carbon/human/lamb = H
@@ -606,6 +611,7 @@ var/list/sacrificed = list()
H.dust()//To prevent the MMI from remaining
else
H.gib()
accepted = 1
usr << "\red The Geometer of Blood accepts this sacrifice, your objective is now complete."
else
usr << "\red Your target's earthly bonds are too strong. You need more cultists to succeed in this ritual."
@@ -613,9 +619,11 @@ var/list/sacrificed = list()
if(cultsinrange.len >= 3)
if(H.stat !=2)
if(prob(80) || worth)
accepted = 1
usr << "\red The Geometer of Blood accepts this [worth ? "exotic " : ""]sacrifice."
ticker.mode:grant_runeword(usr)
else
accepted = 1
usr << "\red The Geometer of blood accepts this sacrifice."
usr << "\red However, this soul was not enough to gain His favor."
if(isrobot(H))
@@ -624,9 +632,11 @@ var/list/sacrificed = list()
H.gib()
else
if(prob(40) || worth)
accepted = 1
usr << "\red The Geometer of blood accepts this [worth ? "exotic " : ""]sacrifice."
ticker.mode:grant_runeword(usr)
else
accepted = 1
usr << "\red The Geometer of blood accepts this sacrifice."
usr << "\red However, a mere dead body is not enough to satisfy Him."
if(isrobot(H))
@@ -638,9 +648,11 @@ var/list/sacrificed = list()
usr << "\red The victim is still alive, you will need more cultists chanting for the sacrifice to succeed."
else
if(prob(40))
accepted = 1
usr << "\red The Geometer of blood accepts this sacrifice."
ticker.mode:grant_runeword(usr)
else
accepted = 1
usr << "\red The Geometer of blood accepts this sacrifice."
usr << "\red However, a mere dead body is not enough to satisfy Him."
if(isrobot(H))
@@ -651,9 +663,11 @@ var/list/sacrificed = list()
if(cultsinrange.len >= 3)
if(H.stat !=2)
if(prob(80))
accepted = 1
usr << "\red The Geometer of Blood accepts this sacrifice."
ticker.mode:grant_runeword(usr)
else
accepted = 1
usr << "\red The Geometer of blood accepts this sacrifice."
usr << "\red However, this soul was not enough to gain His favor."
if(isrobot(H))
@@ -662,9 +676,11 @@ var/list/sacrificed = list()
H.gib()
else
if(prob(40))
accepted = 1
usr << "\red The Geometer of blood accepts this sacrifice."
ticker.mode:grant_runeword(usr)
else
accepted = 1
usr << "\red The Geometer of blood accepts this sacrifice."
usr << "\red However, a mere dead body is not enough to satisfy Him."
if(isrobot(H))
@@ -676,15 +692,20 @@ var/list/sacrificed = list()
usr << "\red The victim is still alive, you will need more cultists chanting for the sacrifice to succeed."
else
if(prob(40))
accepted = 1
usr << "\red The Geometer of blood accepts this sacrifice."
ticker.mode:grant_runeword(usr)
else
accepted = 1
usr << "\red The Geometer of blood accepts this sacrifice."
usr << "\red However, a mere dead body is not enough to satisfy Him."
if(isrobot(H))
H.dust()//To prevent the MMI from remaining
else
H.gib()
if(accepted)
admin_attack_log(usr, H, "Used a sacrifice rune.", "Was victim of a sacrifice rune.", "used a sacrifice rune on")
log_and_message_admins_many(cultsinrange - usr, "Assisted activating a sacrifice rune.")
for(var/mob/living/carbon/monkey/M in src.loc)
if (ticker.mode.name == "cult")
if(M.mind == ticker.mode:sacrifice_target)
@@ -855,7 +876,7 @@ var/list/sacrificed = list()
deafen()
if(istype(src,/obj/effect/rune))
var/affected = 0
var/list/affected = new()
for(var/mob/living/carbon/C in range(7,src))
if (iscultist(C))
continue
@@ -864,17 +885,18 @@ var/list/sacrificed = list()
continue
C.ear_deaf += 50
C.show_message("\red The world around you suddenly becomes quiet.", 3)
affected++
affected += C
if(prob(1))
C.sdisabilities |= DEAF
if(affected)
if(affected.len)
usr.say("Sti[pick("'","`")] kaliedir!")
usr << "\red The world becomes quiet as the deafening rune dissipates into fine dust."
admin_attacker_log_many_victims(usr, affected, "Used a deafen rune.", "Was victim of a deafen rune.", "used a deafen rune on")
del(src)
else
return fizzle()
else
var/affected = 0
var/list/affected = new()
for(var/mob/living/carbon/C in range(7,usr))
if (iscultist(C))
continue
@@ -884,10 +906,11 @@ var/list/sacrificed = list()
C.ear_deaf += 30
//talismans is weaker.
C.show_message("\red The world around you suddenly becomes quiet.", 3)
affected++
if(affected)
affected += C
if(affected.len)
usr.whisper("Sti[pick("'","`")] kaliedir!")
usr << "\red Your talisman turns into gray dust, deafening everyone around."
admin_attacker_log_many_victims(usr, affected, "Used a deafen rune.", "Was victim of a deafen rune.", "used a deafen rune on")
for (var/mob/V in orange(1,src))
if(!(iscultist(V)))
V.show_message("\red Dust flows from [usr]'s hands for a moment, and the world suddenly becomes quiet..", 3)
@@ -895,7 +918,7 @@ var/list/sacrificed = list()
blind()
if(istype(src,/obj/effect/rune))
var/affected = 0
var/list/affected = new()
for(var/mob/living/carbon/C in viewers(src))
if (iscultist(C))
continue
@@ -909,15 +932,16 @@ var/list/sacrificed = list()
if(prob(10))
C.sdisabilities |= BLIND
C.show_message("\red Suddenly you see red flash that blinds you.", 3)
affected++
if(affected)
affected += C
if(affected.len)
usr.say("Sti[pick("'","`")] kaliesin!")
usr << "\red The rune flashes, blinding those who not follow the Nar-Sie, and dissipates into fine dust."
admin_attacker_log_many_victims(usr, affected, "Used a blindness rune.", "Was victim of a blindness rune.", "used a blindness rune on")
del(src)
else
return fizzle()
else
var/affected = 0
var/list/affected = new()
for(var/mob/living/carbon/C in view(2,usr))
if (iscultist(C))
continue
@@ -927,11 +951,12 @@ var/list/sacrificed = list()
C.eye_blurry += 30
C.eye_blind += 10
//talismans is weaker.
affected++
affected += C
C.show_message("\red You feel a sharp pain in your eyes, and the world disappears into darkness..", 3)
if(affected)
if(affected.len)
usr.whisper("Sti[pick("'","`")] kaliesin!")
usr << "\red Your talisman turns into gray dust, blinding those who not follow the Nar-Sie."
admin_attacker_log_many_victims(usr, affected, "Used a blindness rune.", "Was victim of a blindness rune.", "used a blindness rune on")
return
@@ -942,12 +967,13 @@ var/list/sacrificed = list()
if (istype(H.current,/mob/living/carbon))
cultists+=H.current
*/
var/culcount = 0 //also, wording for it is old wording for obscure rune, which is now hide-see-blood.
var/list/cultists = new //also, wording for it is old wording for obscure rune, which is now hide-see-blood.
var/list/victims = new
// var/list/cultboil = list(cultists-usr) //and for this words are destroy-see-blood.
for(var/mob/living/carbon/C in orange(1,src))
if(iscultist(C) && !C.stat)
culcount++
if(culcount>=3)
cultists+=C
if(cultists.len>=3)
for(var/mob/living/carbon/M in viewers(usr))
if(iscultist(M))
continue
@@ -956,6 +982,7 @@ var/list/sacrificed = list()
continue
M.take_overall_damage(51,51)
M << "\red Your blood boils!"
victims += M
if(prob(5))
spawn(5)
M.gib()
@@ -966,6 +993,8 @@ var/list/sacrificed = list()
if(iscultist(C) && !C.stat)
C.say("Dedo ol[pick("'","`")]btoh!")
C.take_overall_damage(15, 0)
admin_attacker_log_many_victims(usr, victims, "Used a blood boil rune.", "Was the victim of a blood boil rune.", "used a blood boil rune on")
log_and_message_admins_many(cultists - usr, "assisted activating a blood boil rune.")
del(src)
else
return fizzle()
@@ -1005,7 +1034,6 @@ var/list/sacrificed = list()
if(istype(src,/obj/effect/rune)) ///When invoked as rune, flash and stun everyone around.
usr.say("Fuu ma[pick("'","`")]jin!")
for(var/mob/living/L in viewers(src))
if(iscarbon(L))
var/mob/living/carbon/C = L
flick("e_flash", C.flash)
@@ -1014,11 +1042,13 @@ var/list/sacrificed = list()
C.Weaken(1)
C.Stun(1)
C.show_message("\red The rune explodes in a bright flash.", 3)
admin_attack_log(usr, C, "Used a stun rune.", "Was victim of a stun rune.", "used a stun rune on")
else if(issilicon(L))
var/mob/living/silicon/S = L
S.Weaken(5)
S.show_message("\red BZZZT... The rune has exploded in a bright flash.", 3)
admin_attack_log(usr, S, "Used a stun rune.", "Was victim of a stun rune.", "used a stun rune on")
del(src)
else ///When invoked as talisman, stun and mute the target mob.
usr.say("Dream sign ''Evil sealing talisman'[pick("'","`")]!")
@@ -1032,7 +1062,7 @@ var/list/sacrificed = list()
if(issilicon(T))
T.Weaken(15)
admin_attack_log(usr, T, "Used a stun rune.", "Was victim of a stun rune.", "used a stun rune on")
else if(iscarbon(T))
var/mob/living/carbon/C = T
flick("e_flash", C.flash)
@@ -1040,6 +1070,7 @@ var/list/sacrificed = list()
C.silent += 15
C.Weaken(25)
C.Stun(25)
admin_attack_log(usr, C, "Used a stun rune.", "Was victim of a stun rune.", "used a stun rune on")
return
/////////////////////////////////////////TWENTY-FIFTH RUNE