Revert "Fixes admin jumping. Done by reverting some changes here: https://github.com/Baystation12/Baystation12/pull/786"

This reverts commit 44797c33db.
This commit is contained in:
Ren Erthilo
2012-04-16 12:37:05 +01:00
parent 44797c33db
commit 99c8e8a948
4 changed files with 91 additions and 38 deletions

View File

@@ -108,8 +108,8 @@
var/list/old_list = shufflelist.Copy()
while(old_list.len)
var/item = pick(old_list)
new_list += item
old_list -= item
new_list.Add(item)
old_list.Remove(item)
return new_list
/proc/uniquelist(var/list/L)
@@ -198,9 +198,18 @@
var/list/result = new()
while(Li <= L.len && Ri <= R.len)
if(sorttext(L[Li], R[Ri]) < 1)
result += R[Ri++]
var/item = R[Ri++]
if(istext(item) && !isnull(R[item]))
result[item] = R[item]
else
result += item
else
result += L[Li++]
var/item = L[Li++]
if(istext(item) && !isnull(L[item]))
result[item] = L[item]
else
result += item
if(Li <= L.len)
return (result + L.Copy(Li, 0))
@@ -772,6 +781,35 @@ Turf and target are seperate in case you want to teleport some distance from a t
select = input("AI signals detected:", "AI selection") in ais
return ais[select]
/proc/get_sorted_mobs()
var/list/old_list = getmobs()
var/list/AI_list = list()
var/list/Dead_list = list()
var/list/keyclient_list = list()
var/list/key_list = list()
var/list/logged_list = list()
for(var/named in old_list)
var/mob/M = old_list[named]
if(issilicon(M))
AI_list |= M
else if(isobserver(M) || M.stat == 2)
Dead_list |= M
else if(M.key && M.client)
keyclient_list |= M
else if(M.key)
key_list |= M
else
logged_list |= M
old_list.Remove(named)
var/list/new_list = list()
new_list += AI_list
new_list += keyclient_list
new_list += key_list
new_list += logged_list
new_list += Dead_list
return new_list
/proc/getmobs()
var/list/mobs = sortmobs()
@@ -802,34 +840,34 @@ Turf and target are seperate in case you want to teleport some distance from a t
/proc/sortmobs()
var/list/mob_list = list()
var/list/temp_list = list()
for(var/mob/living/silicon/ai/M in world)
mob_list.Add(M)
temp_list.Add(M)
for(var/mob/living/silicon/pai/M in world)
mob_list.Add(M)
temp_list.Add(M)
for(var/mob/living/silicon/robot/M in world)
mob_list.Add(M)
temp_list.Add(M)
for(var/mob/living/carbon/human/M in world)
mob_list.Add(M)
temp_list.Add(M)
for(var/mob/living/carbon/brain/M in world)
mob_list.Add(M)
temp_list.Add(M)
for(var/mob/living/carbon/alien/M in world)
mob_list.Add(M)
temp_list.Add(M)
for(var/mob/dead/observer/M in world)
mob_list.Add(M)
temp_list.Add(M)
for(var/mob/new_player/M in world)
mob_list.Add(M)
temp_list.Add(M)
for(var/mob/living/carbon/monkey/M in world)
mob_list.Add(M)
temp_list.Add(M)
for(var/mob/living/carbon/metroid/M in world)
mob_list.Add(M)
temp_list.Add(M)
for(var/mob/living/simple_animal/M in world)
mob_list.Add(M)
temp_list.Add(M)
// for(var/mob/living/silicon/hivebot/M in world)
// mob_list.Add(M)
// for(var/mob/living/silicon/hive_mainframe/M in world)
// mob_list.Add(M)
return mob_list
return temp_list
/proc/convert2energy(var/M)
var/E = M*(SPEED_OF_LIGHT_SQ)
@@ -1549,4 +1587,4 @@ proc/get_opposite(var/checkdir)
var/a = copytext(text,i,i+1)
if(a == character)
count++
return count
return count

View File

@@ -5,7 +5,7 @@
dat += "<body><table border=1 cellspacing=5><B><tr><th>Name/Real Name</th><th>Type</th><th>Assigned Job</th><th>Info</th><th>Options</th><th>Traitor?</th></tr></B>"
//add <th>IP:</th> to this if wanting to add back in IP checking
//add <td>(IP: [M.lastKnownIP])</td> if you want to know their ip to the lists below
var/list/mobs = sortmobs()
var/list/mobs = get_sorted_mobs()
var/i = 1
for(var/mob/M in mobs)
@@ -120,7 +120,7 @@
dat += "<body><table border=1 cellspacing=5><B><tr><th>Name</th><th>Real Name</th><th>Assigned Job</th><th>Key</th><th>Options</th><th>PM</th><th>Traitor?</th></tr></B>"
//add <th>IP:</th> to this if wanting to add back in IP checking
//add <td>(IP: [M.lastKnownIP])</td> if you want to know their ip to the lists below
var/list/mobs = sortmobs()
var/list/mobs = get_sorted_mobs()
for(var/mob/M in mobs)
if(!M.ckey) continue

View File

@@ -28,7 +28,7 @@
alert("Admin jumping disabled")
return
/client/proc/jumptomob(var/mob/M in world)
/client/proc/jumptomob()
set category = "Admin"
set name = "Jump to Mob"
@@ -37,15 +37,20 @@
return
if(config.allow_admin_jump)
log_admin("[key_name(usr)] jumped to [key_name(M)]")
message_admins("[key_name_admin(usr)] jumped to [key_name_admin(M)]", 1)
if(src.mob)
var/mob/A = src.mob
var/turf/T = get_turf(M)
if(T && isturf(T))
A.loc = T
else
A << "This mob is not located in the game world."
var/mobs = getmobs()
var/selection = input("Please, select a player!", "Admin Jumping", null, null) as null|anything in mobs
if(!selection)
return
var/mob/M = mobs[selection]
var/mob/A = src.mob
var/turf/T = get_turf(M)
if(T && isturf(T))
A.loc = T
log_admin("[key_name(usr)] jumped to [key_name(M)]")
message_admins("[key_name_admin(usr)] jumped to [key_name_admin(M)]", 1)
else
A << "This mob is not located in the game world."
else
alert("Admin jumping disabled")
@@ -71,7 +76,7 @@
else
alert("Admin jumping disabled")
/client/proc/Getmob(var/mob/M in world)
/client/proc/Getmob()
set category = "Admin"
set name = "Get Mob"
set desc = "Mob to teleport"
@@ -79,9 +84,19 @@
src << "Only administrators may use this command."
return
if(config.allow_admin_jump)
log_admin("[key_name(usr)] teleported [key_name(M)]")
message_admins("[key_name_admin(usr)] teleported [key_name_admin(M)]", 1)
M.loc = get_turf(usr)
var/mobs = getmobs()
var/selection = input("Please, select a player!", "Admin Jumping", null, null) as null|anything in mobs
var/mob/M = mobs[selection]
if(!istype(M))
return
var/mob/A = src.mob
var/turf/T = get_turf(A)
if(T && isturf(T))
M.loc = T
log_admin("[key_name(usr)] teleported [key_name(M)]")
message_admins("[key_name_admin(usr)] teleported [key_name_admin(M)]", 1)
else
A << "You are not located in the game world."
else
alert("Admin jumping disabled")

View File

@@ -62,7 +62,7 @@
var_value = input("Select reference:","Reference") as null|mob|obj|turf|area in world
if("mob reference")
var_value = input("Select reference:","Reference") as null|mob in sortmobs()
var_value = input("Select reference:","Reference") as null|mob in get_sorted_mobs()
if("file")
var_value = input("Pick file:","File") as null|file
@@ -127,7 +127,7 @@
var_value = input("Select reference:","Reference") as null|mob|obj|turf|area in world
if("mob reference")
var_value = input("Select reference:","Reference") as null|mob in sortmobs()
var_value = input("Select reference:","Reference") as null|mob in get_sorted_mobs()
if("file")
var_value = input("Pick file:","File") as null|file
@@ -305,7 +305,7 @@
if("mob reference")
variable = input("Select reference:","Reference",\
variable) as null|mob in sortmobs()
variable) as null|mob in get_sorted_mobs()
if("file")
variable = input("Pick file:","File",variable) \
@@ -547,7 +547,7 @@
O.vars[variable] = var_new
if("mob reference")
var/var_new = input("Select reference:","Reference",O.vars[variable]) as null|mob in sortmobs()
var/var_new = input("Select reference:","Reference",O.vars[variable]) as null|mob in get_sorted_mobs()
if(var_new==null) return
O.vars[variable] = var_new