Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  

Poll

Which update would you like the most?

Randomized Backstories
- 67 (25.9%)
Genetic Additions
- 98 (37.8%)
Mess Hall
- 50 (19.3%)
Revamped Area
- 44 (17%)

Total Members Voted: 257


Pages: 1 ... 183 184 [185] 186 187 ... 950

Author Topic: Space Station 13 *READ RULES ON FIRST POST*  (Read 824698 times)

qwertyuiopas

  • Bay Watcher
  • Photoshop is for elves who cannot use MSPaint.
    • View Profile
    • uristqwerty.ca, my current (barren) site.
Re: Space Station 13 *READ RULES ON FIRST POST*
« Reply #2760 on: July 17, 2009, 08:25:51 am »

If I did that(And the current version is NOT continuous), I would either need (2^8) 256 diffrent image states(each direction has either 0 or 1 wall of the same type), if I only count the 4 main directions, 2^4, 16, but then I should include transitions between regular and reinforced walls, so 3^4, 81, and the warning area walls, so 4^4, and we are back to 256 diffrent images.
Or, I can only use one image, but discard that neat 3D look that I have painstakingly added to EVERY image I am using that makes the graphics look more modern...

Also, I am too busy right now, I am doing some wikipedia work on average respiration, to ensure that it is accurate.
You only use 5% of the oxygen you take in with each breath.
Logged
Eh?
Eh!

Floirt

  • Bay Watcher
  • OMIGODJCABOMB!
    • View Profile
Re: Space Station 13 *READ RULES ON FIRST POST*
« Reply #2761 on: July 17, 2009, 08:31:29 am »

Wasn't it 20% last time I checked?

Also, I'm messing around with the revolution mode, but I have a problem:

Code: [Select]
/datum/game_mode/revolution
name = "revolution"
config_tag = "revolution"

/datum/game_mode/revolution/announce()
world << "<B>The current game mode is - Revolution!</B>"
world << "<B>Some crewmembers are attempting to start a revolution!<BR>\nRevolutionaries - Kill the Captain, HoP, HoR, HoS and HoM. Convert other crewmembers (excluding the Captain, heads, and security officers) to your cause by flashing them. Protect your leader(s).<BR>\nPersonnel - Protect the Captain and the heads. Kill the leader(s) of the revolution, and brainwash the other revolutionaries (by beating them in the head).</B>"

/datum/game_mode/revolution/post_setup()
spawn (3000)
start_events()
spawn ((18000+rand(3000)))
force_event()
spawn ( 0 )
randomchems()
var/list/mobs = get_mob_list()
while (mobs.len == 0)
sleep 30
mobs = get_mob_list()
switch(pick(1,2,3))
if(1)
numberofleaders = 1
if(2)
numberofleaders = 2
if(3)
numberofleaders = 3
pick_killer()
ticker.killer << "\blue You are the leader of the revolutionaries!"
if (numberofleaders > 1)
ticker.killer2 = ticker.killer
pick_killer()
ticker.killer << "\blue You are the leader of the revolutionaries!"
if (numberofleaders > 2)
ticker.killer3 = ticker.killer
pick_killer()
ticker.killer << "\blue You are the leader of the revolutionaries!"
if(get_mobs_with_rank("Captain"))
ticker.target = get_mobs_with_rank("Captain")[1]
if(get_mobs_with_rank("Head of Personnel"))
ticker.target2 = get_mobs_with_rank("Head of Personnel")[1]
if(get_mobs_with_rank("Head of Research"))
ticker.target3 = get_mobs_with_rank("Head of Research")[1]
if(get_mobs_with_rank("Head of Security"))
ticker.target4 = get_mobs_with_rank("Head of Security")[1]
if(get_mobs_with_rank("Head of Maintenance"))
ticker.target5 = get_mobs_with_rank("Head of Maintenance")[1]
spawn (0)
ticker.extend_process()

/datum/game_mode/revolution/proc/get_synd_list()
var/list/mobs = list()
for(var/mob/M in world)
if (M.client && istype(M, /mob/human))
if(M.be_syndicate && M.start)
if(M.is_rev == 0)
mobs += M
if(mobs.len < 1)
mobs = get_mob_list()
return mobs

/datum/game_mode/revolution/proc/pick_killer()
var/mob/human/killer = pick(get_synd_list())
ticker.killer = killer
ticker.revs += killer
spawn (100)
killer.is_rev = 2
// generate list of radio freqs
var/freq = 144.1
var/list/freqlist = list()
while (freq <= 148.9)
if (freq < 145.1 || freq > 145.9)
freqlist += freq
freq += 0.2
if (round(freq * 10, 1) % 2 == 0)
freq += 0.1
freq = freqlist[rand(1, freqlist.len)]
// find a radio! toolbox(es), backpack, belt, headset
var/loc = ""
var/obj/item/weapon/radio/R = null
if (!R && istype(killer.l_hand, /obj/item/weapon/storage))
var/obj/item/weapon/storage/S = killer.l_hand
var/list/L = S.return_inv()
for (var/obj/item/weapon/radio/foo in L)
R = foo
loc = "in the [S.name] in your left hand"
break
if (!R && istype(killer.r_hand, /obj/item/weapon/storage))
var/obj/item/weapon/storage/S = killer.r_hand
var/list/L = S.return_inv()
for (var/obj/item/weapon/radio/foo in L)
R = foo
loc = "in the [S.name] in your right hand"
break
if (!R && istype(killer.back, /obj/item/weapon/storage))
var/obj/item/weapon/storage/S = killer.back
var/list/L = S.return_inv()
for (var/obj/item/weapon/radio/foo in L)
R = foo
loc = "in the [S.name] on your back"
break
if (!R && killer.w_uniform && istype(killer.belt, /obj/item/weapon/radio))
R = killer.belt
loc = "on your belt"
if (!R && istype(killer.w_radio, /obj/item/weapon/radio))
R = killer.w_radio
loc = "on your head"
if (!R)
killer << "Unfortunately, the Syndicate wasn't able to get you a radio."
else
var/obj/item/weapon/syndicate_uplink/T = new /obj/item/weapon/syndicate_uplink(R)
R.traitorradio = T
R.traitorfreq = freq
T.name = R.name
T.icon_state = R.icon_state
T.origradio = R
killer << "The Syndicate have cunningly disguised a Syndicate Uplink as your [R.name] [loc]. Simply dial the frequency [freq] to unlock it's hidden features."
killer.store_memory("<B>Radio Freq:</B> [freq] ([R.name] [loc]).", 0, 0)
if (killer.r_store)
killer.equip_if_possible(new /obj/item/weapon/flash(killer), killer.slot_l_store)
if (killer.l_store)
killer.equip_if_possible(new /obj/item/weapon/flash(killer), killer.slot_r_store)

/datum/game_mode/revolution/proc/check_death(var/mob/M as mob)
if (!M)
return 1
if (M.stat == 2)
return 1
return 0

/datum/game_mode/revolution/check_win()
// world << "Debug: Game over called"
// world << check_death(ticker.target)
// world << check_death(ticker.target2)
// world << check_death(ticker.target3)
// world << check_death(ticker.killer)
// world << check_death(ticker.killer2)
// world << check_death(ticker.killer3)
if (numberofleaders == 3)
if (check_death(ticker.target) && check_death(ticker.target2) && check_death(ticker.target3) && check_death(ticker.target4) && check_death(ticker.target5))
world << "<FONT size = 3><B>Revolutionary Victory</B></FONT>"
world << "<B>The commanding staff has been killed!</B> The Revolution is victorious!"
ticker.killer.unlock_medal("Viva la Revolution!", 1, "Successfully win a round as a revolutionary leader.", "medium")
if (ticker.killer2)
ticker.killer2.unlock_medal("Viva la Revolution!", 1, "Successfully win a round as a revolutionary leader.", "medium")
if (ticker.killer3)
ticker.killer3.unlock_medal("Viva la Revolution!", 1, "Successfully win a round as a revolutionary leader.", "medium")
return 1
if (check_death(ticker.killer) && check_death(ticker.killer2) && check_death(ticker.killer3))
world << "<FONT size = 3><B>The Research Staff has stopped the revolution!</B></FONT>"
world << "<B>The leaders of the revolution have been killed!</B>"
return 1
return 0
if (numberofleaders == 2)
if (check_death(ticker.target) && check_death(ticker.target2) && check_death(ticker.target3) && check_death(ticker.target4) && check_death(ticker.target5))
world << "<FONT size = 3><B>Revolutionary Victory</B></FONT>"
world << "<B>The commanding staff has been killed!</B> The Revolution is victorious!"
ticker.killer.unlock_medal("Viva la Revolution!", 1, "Successfully win a round as a revolutionary leader.", "medium")
if (ticker.killer2)
ticker.killer2.unlock_medal("Viva la Revolution!", 1, "Successfully win a round as a revolutionary leader.", "medium")
return 1
if (check_death(ticker.killer) && check_death(ticker.killer2) && check_death(ticker.killer3))
world << "<FONT size = 3><B>The Research Staff has stopped the revolution!</B></FONT>"
world << "<B>The leaders of the revolution have been killed!</B>"
return 1
return 0
if (numberofleaders == 1)
if (check_death(ticker.target) && check_death(ticker.target2) && check_death(ticker.target3) && check_death(ticker.target4) && check_death(ticker.target5))
world << "<FONT size = 3><B>Revolutionary Victory</B></FONT>"
world << "<B>The commanding staff have been killed!</B> The Revolution is victorious!"
ticker.killer.unlock_medal("Glorious Leader", 1, "Successfully win a round as the unique and only revolutionary leader.", "hard")
return 1
if (check_death(ticker.killer) && check_death(ticker.killer2) && check_death(ticker.killer3))
world << "<FONT size = 3><B>The Research Staff has stopped the revolution!</B></FONT>"
world << "<B>The leader of the revolution has been killed!</B>"
return 1
return 0



/datum/game_mode/revolution/proc/get_mob_list()
var/list/mobs = list()
for(var/mob/M in world)
if (M.client && M.start)
mobs += M
return mobs

/datum/game_mode/revolution/proc/get_human_list()
var/list/humans = list()
for(var/mob/human/M in world)
if (M.client && M.start && get_rank(M) != "AI")
humans += M
return humans

/datum/game_mode/revolution/proc/pick_human_except(mob/human/exception)
return pick(get_human_list() - exception)

/datum/game_mode/revolution/proc/get_target_desc(mob/target) //return a useful string describing the target
var/targetrank = null
for(var/datum/data/record/R in data_core.general)
if (R.fields["name"] == target.rname)
targetrank = R.fields["rank"]
return "[target.name] the [targetrank]"

/datum/game_mode/revolution/proc/get_rank(mob/M)
for(var/datum/data/record/R in data_core.general)
if (R.fields["name"] == M.name)
return R.fields["rank"]
return null

/datum/game_mode/revolution/proc/get_mobs_with_rank(rank)
var/list/names = list()
var/list/mobs = list()
for(var/datum/data/record/R in data_core.general)
if (R.fields["rank"] == rank)
names += R.fields["name"]
break
for(var/mob/M in world)
for(var/name in names)
if(M.name == name)
mobs += M
return mobs

/datum/game_mode/revolution/proc/get_turf_loc(mob/m) //gets the location of the turf that the mob is on, or what the mob is in is on, etc
//in case they're in a closet or sleeper or something
var/loc = m:loc
while(!istype(loc, /turf/))
loc = loc:loc
return loc

So I'm trying to randomize the number of revs leaders, see (the numberofleaders var is in the game_mode datum), and the compiler calls me a bunch of bad argument definitions on ticker.killer2 and 3 each time they are named. Help?
Logged
Quote from: HellMOO
Fat Ratzo [to Floirt]: I got a package here goin' to Roy Poorman, out in the afterworld.  $120 when you make the delivery.  And hurry!
No, not commiting suicide, sorry.   ...Through that money is rather tempting...

Yanlin

  • Bay Watcher
  • Legendary comedian.
    • View Profile
Re: Space Station 13 *READ RULES ON FIRST POST*
« Reply #2762 on: July 17, 2009, 08:32:46 am »

If I did that(And the current version is NOT continuous), I would either need (2^8) 256 diffrent image states(each direction has either 0 or 1 wall of the same type), if I only count the 4 main directions, 2^4, 16, but then I should include transitions between regular and reinforced walls, so 3^4, 81, and the warning area walls, so 4^4, and we are back to 256 diffrent images.
Or, I can only use one image, but discard that neat 3D look that I have painstakingly added to EVERY image I am using that makes the graphics look more modern...

Also, I am too busy right now, I am doing some wikipedia work on average respiration, to ensure that it is accurate.
You only use 5% of the oxygen you take in with each breath.

A simple way to have a continuous texture is to just have all 4 edges of it be the same.
Logged
WE NEED A SLOGAN!

Cecilff2

  • Bay Watcher
  • PikaaAAAAあああああ
    • View Profile
Re: Space Station 13 *READ RULES ON FIRST POST*
« Reply #2763 on: July 17, 2009, 09:37:07 am »

pretty badly for us, i think they get around 40ish players at a time, spread out around all their servers.

You guys tend to make up for it in quality though.
Logged
There comes a time when you must take off the soft, furry slippers of a boy and put on the shoes of a man.
Unless of course they don't fit properly and your feet blister up like bubble wrap.
Oh ho ho, but don't try to return the shoes, because they won't take them back once you've worn them.
Especially if that fat pig Tony is at the desk.

Yanlin

  • Bay Watcher
  • Legendary comedian.
    • View Profile
Re: Space Station 13 *READ RULES ON FIRST POST*
« Reply #2764 on: July 17, 2009, 09:45:17 am »

pretty badly for us, i think they get around 40ish players at a time, spread out around all their servers.

You guys tend to make up for it in quality though.

*cough* Have you played on those servers? When I was playing there, when apparently 40 people were logged in, I met only 3 live ones and 5 dead ones.

Besides, did you forget the griefers and badmins?

Edit: Thought you said "You need to make up for this in quality though."
Logged
WE NEED A SLOGAN!

qwertyuiopas

  • Bay Watcher
  • Photoshop is for elves who cannot use MSPaint.
    • View Profile
    • uristqwerty.ca, my current (barren) site.
Re: Space Station 13 *READ RULES ON FIRST POST*
« Reply #2765 on: July 17, 2009, 09:48:20 am »

A simple way to have a continuous texture is to just have all 4 edges of it be the same.
As I mentioned, it's either a (one tile graphic AND (continuous texture  OR  3d effect)) OR many textures.

I will NOT eliminate the 3d effect, so it is either one or many textures.
Many textures complicates map creation, though I *could* put in the framework for multi-image turfs...
Logged
Eh?
Eh!

woose1

  • Bay Watcher
  • Yay for bandwagons!
    • View Profile
Re: Space Station 13 *READ RULES ON FIRST POST*
« Reply #2766 on: July 17, 2009, 09:48:48 am »

The goon's code seems much, MUCH more advanced then ours. I was made an admin on their server simply by asking, (Go figure) and the tools you have at your disposal as an admin are amazingly awesome. I, could for instance, fill a room with exactly 99% N2 and 1% Plasma.
Logged

Yanlin

  • Bay Watcher
  • Legendary comedian.
    • View Profile
Re: Space Station 13 *READ RULES ON FIRST POST*
« Reply #2767 on: July 17, 2009, 10:30:36 am »

The goon's code seems much, MUCH more advanced then ours. I was made an admin on their server simply by asking, (Go figure) and the tools you have at your disposal as an admin are amazingly awesome. I, could for instance, fill a room with exactly 99% N2 and 1% Plasma.

Not impressive. If an admin needs to do that, you know that there's a massive problem with the admins there.

Besides, we can do that the old fashioned way! With math and editing variables!
Logged
WE NEED A SLOGAN!

woose1

  • Bay Watcher
  • Yay for bandwagons!
    • View Profile
Re: Space Station 13 *READ RULES ON FIRST POST*
« Reply #2768 on: July 17, 2009, 10:34:10 am »

Yeah!
Logged

qwertyuiopas

  • Bay Watcher
  • Photoshop is for elves who cannot use MSPaint.
    • View Profile
    • uristqwerty.ca, my current (barren) site.
Re: Space Station 13 *READ RULES ON FIRST POST*
« Reply #2769 on: July 17, 2009, 10:49:26 am »

Quick question:
How much oxygen is held in an average Litre of blood?

My wikipedia skills have failed me.


Logged
Eh?
Eh!

woose1

  • Bay Watcher
  • Yay for bandwagons!
    • View Profile
Re: Space Station 13 *READ RULES ON FIRST POST*
« Reply #2770 on: July 17, 2009, 10:51:26 am »

Logged

qwertyuiopas

  • Bay Watcher
  • Photoshop is for elves who cannot use MSPaint.
    • View Profile
    • uristqwerty.ca, my current (barren) site.
Re: Space Station 13 *READ RULES ON FIRST POST*
« Reply #2771 on: July 17, 2009, 12:36:06 pm »

Idea:
After death, the mob's brain will still function for 20 seconds.
During this time, CPR can prolong this, and more advanced tools can still revive the player(defibrilator).

During this time, the player also has a mostly clouded faint view of their surroundings (OOBE).

In other news, I have a satisfactory no-air death time, and decent oxygen consumption rate.
Combined with low-temp and space damage, and outer space will quickly kill off the unprotected.

Now I just need the actual air flow simulation.
Logged
Eh?
Eh!

Yanlin

  • Bay Watcher
  • Legendary comedian.
    • View Profile
Re: Space Station 13 *READ RULES ON FIRST POST*
« Reply #2772 on: July 17, 2009, 12:53:59 pm »

Qwerty, I suspect your version will be VERY superior.

While you're at it, can you change the stuff contained in a normal red toolbox? Remove the station bounced radio and fire extinguisher and put a crowbar and multitool inside.
Logged
WE NEED A SLOGAN!

qwertyuiopas

  • Bay Watcher
  • Photoshop is for elves who cannot use MSPaint.
    • View Profile
    • uristqwerty.ca, my current (barren) site.
Re: Space Station 13 *READ RULES ON FIRST POST*
« Reply #2773 on: July 17, 2009, 12:59:18 pm »

Only have two tools so far anyway, tiles and crowbars.

.04
.04 source  :o (Smaller, but you have ot compile it yourself)

See for yourself.
Logged
Eh?
Eh!

Poltifar

  • Bay Watcher
    • View Profile
Re: Space Station 13 *READ RULES ON FIRST POST*
« Reply #2774 on: July 17, 2009, 01:09:11 pm »

Qwerty, all I can say is, I'm glad someone finally decided to rewrite this mess. SS13 as it is is an awesome game, but the fact that it has passed through so many hands, from its original maker to his community to the many, many goon programmers, has led the code to resemble a... well, cant think of a good simile, but it has made the code REALLY MESSY, making it increasingly harder to actually add new stuff.

Heck, the current code cant even be considered object-based anymore. Far too many functions take for granted that another object has exactly the variables and functions it requires, and thus every time something needs to be added or modified, a million other things need to be changed too. That is the very opposite of object-orientedness we should strive for.

As such, I hope you will strive to make your own version as cleanly and orderly as possible, with every object able to exist and function independently from others except for the most fundamental variables and functions.  The way you found to make a non-hardcoded gas amount in rooms is EXACTLY what we need for EVERYTHING. Other examples might include putting telekinesis and other special-ability exceptions on the object representing that ability (so that we dont need to change every single interaction on every single object whenever we want to change, say, the range of telekinesis like we recently wanted to), and on a similar note, making disabilities also check themselves (instead of having on the gun object a check for the presence of disabilities that might hinder the firing of the gun as it is now with the 'clumsy' disability).

This isn't something easy to do, and will require alot of planning to pull off well, but if done, any further improvements would be MUCH easier to implement. Also, as this is being redone from scratch, I say since we're doing, why not do it the RIGHT way this time, even if its a bit harder. I'm sure you, Floirt, and anyone else working on the code would agree that that is the best possible way to go.

And keep the 3D look, its a nice change to the old look, and I just like its style :P

(Sorry for the wall of verbose text. I just felt the need to write something long :P)
Logged
Quote
<@Poltifar> yeah i've played life for almost 23 years
<@Poltifar> i specced myself into a corner, i should just reroll
<@Akroma> eh
<@Akroma> just play the minigames until your subscription runs out
Pages: 1 ... 183 184 [185] 186 187 ... 950