Advertisement
Guest User

Untitled

a guest
May 29th, 2015
281
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 26.98 KB | None | 0 0
  1. wprint("<big><font color=red><b>Warning:</b></font> Dead body located on the premises. Simple program analysis highly suggests either murder or assisted suicide; saving video feed from just before the event. Facility has been locked down until This System's authorities can be reached.</big>");
  2. //set_tapesmessage("You see the victim standing in the center of the courtyard. It seems like they are waiting for someone.");
  3. //worldcontents = get_worldcontents();
  4. //list_cycle("dead_teacher",worldcontents,"set_name(my,\"Bald Student\");set_icon(my,\"MaleBase.dmi\");");
  5. if(customrole2)
  6. {
  7.  
  8. x = strcat("<i>",get_alias(customrole1));
  9. a = strcat("<i>",get_alias(customrole2));
  10.  
  11. showkiller("You are the Snake!");
  12. printto(killer,"<b><i>You are the Snake!</i></b>");
  13. printto(killer,"<i>Your time is quickly nearing its end. You've been randomly killing students for months now, in a hope that one would claw back from the verge of death and experience the heat haze. A few have and formed together as a group called the 'Mekakushi Dan', but none had the ability you desired. Only one power remains to be given and with it comes immortality. By using your power of 'Clearing Eyes' you can take the forms and abilities of the dead. Force a student to experience the heat haze through death and then kill them again by 5 AM or your story is over. To make matters worse, two members of the 'Mekakushi Dan' are here tonight and seem to be catching on.</i>");
  14. printto(killer,"VERB FUNCTIONALITY: Copy the form of corpses. Each unique form you store will heal you 20 health. Shift Form allows you to take any form you have copied at will.");
  15.  
  16.  
  17. printto(customrole1,"<b><i>You have the Opening Eyes!</i></b>");
  18. showcustomrole1("You have the Opening Eyes!");
  19. printto(customrole1,"<i>Ever since a near death experience, you experienced the heat haze and obtained the Snake of Opening Eyes. You and your friend are part of a larger group of students called the 'Mekakushi Dan' that has been investigating the actions of an unknown snake. Every member has experienced death in one way or another and managed to claw their way back to life bringing a power back with them from the other side. You've come to understand that this snake has been targetting students in the school and is likely trapped in the building with you.</i>");
  20. printto(customrole1,strcat(a," is the student investigating with you tonight. They hold the power of the Concealing Eyes.</i>"));
  21. printto(customrole1,"VERB FUNCTIONALITY: Access the roster from any location. Teleport to any camera from the security room by viewing the camera.");
  22.  
  23. printto(customrole2,"<b><i>You have the Concealing Eyes!</i></b>");
  24. showcustomrole2("You have the Concealing Eyes!");
  25. printto(customrole2, "<i>Ever since a near death experience, you experienced the heat haze and obtained the Snake of Concealing Eyes. You and your friend are part of a larger group of students called the 'Mekakushi Dan' that has been investigating the actions of an unknown snake. Every member has experienced death in one way or another and managed to claw their way back to life bringing a power back with them from the other side. You've come to understand that this snake has been targetting students in the school and is likely trapped in the building with you.</i>");
  26. printto(customrole2,strcat(x," is the student investigating with you tonight. They hold the power of the Opening Eyes.</i>"));
  27. printto(customrole2,"VERB FUNCTIONALITY: The Concealing Eyes allow you to go invisible for a lengthy amount of time. You must be at full stamina to use this and attacking while invisible will cancel your invisibility automatically.");
  28.  
  29. }
  30.  
  31. else
  32. {
  33.  
  34. x = strcat("<i>",get_alias(customrole1));
  35. a = strcat("<i>",get_alias(killer));
  36.  
  37. showkiller("You are the Snake!");
  38. printto(killer,"<b><i>You are the Snake!</i></b>");
  39. printto(killer,"<i>Your time is quickly nearing its end. You've been randomly killing students for months now, in a hope that one would claw back from the verge of death and experience the heat haze. A few have and formed together as a group called the 'Mekakushi Dan', but none had the ability you desired. Only one power remains to be given and with it comes immortality. By using your power of 'Clearing Eyes' you can take the forms and abilities of the dead. Force a student to experience the heat haze through death and then kill them again by 5 AM or your story is over.</i>");
  40. printto(killer,strcat(x," is the partner of the student you just recently killed. You have taken their ability of Concealing Eyes as well as their form. Perhaps you can manipulate this student into helping you out.</i>"));
  41. printto(killer,"VERB FUNCTIONALITY: Copy the form of corpses. Each unique form you store will heal you 20 health. Shift Form allows you to take any form you have copied at will.");
  42. printto(killer,"VERB FUNCTIONALITY: The Concealing Eyes allow you to go invisible for a lengthy amount of time. You must be at full stamina to use this and attacking while invisible will cancel your invisibility automatically.");
  43.  
  44.  
  45. printto(customrole1,"<b><i>You have the Opening Eyes!</i></b>");
  46. showcustomrole1("You have the Opening Eyes!");
  47. printto(customrole1,"<i>Ever since a near death experience, you experienced the heat haze and obtained the Snake of Opening Eyes. You and your friend are part of a larger group of students called the 'Mekakushi Dan' that has been investigating the actions of an unknown snake. Every member has experienced death in one way or another and managed to claw their way back to life bringing a power back with them from the other side. You've come to understand that this snake has been targetting students in the school and is likely trapped in the building with you.</i>");
  48. printto(customrole1,strcat(a," is the student investigating with you tonight. They hold the power of the Concealing Eyes.</i>"));
  49. printto(customrole1,"VERB FUNCTIONALITY: Access the roster from any location. Teleport to any camera from the security room by viewing the camera.");
  50.  
  51. }
  52.  
  53. //Cyber Kid
  54. func access_computer(player)
  55. {
  56. dead = get_state(player, "dead");
  57. unconscious = get_state(player, "unconscious");
  58. escaped = get_state(player, "escaped");
  59. gameover = gameover();
  60. playertype = get_playertype(player);
  61. if(!dead && !unconscious && !escaped && !gameover && playertype == 2)
  62. {
  63. force_computer(player);
  64. }
  65. }
  66.  
  67. func data_transfer(player)
  68. {
  69. dead = get_state(player, "dead");
  70. unconscious = get_state(player, "unconscious");
  71. escaped = get_state(player, "escaped");
  72. gameover = gameover();
  73. playertype = get_playertype(player);
  74. if(!dead && !unconscious && !escaped && !gameover && playertype == 2)
  75. {
  76. eye = get_eye(clientof(player));
  77. if(istype(eye,"/obj/viewing/camera"))
  78. {
  79. location = get_pos(eye);
  80. set_pos(player, "all", location);
  81. wait(10);
  82. printto(emoteview(10,player), strcat(player," phases through the camera!"));
  83. }
  84. }
  85. }
  86.  
  87. create_verb(customrole1,"Access Computer","access_computer(my);","Accesses a computer.","Opening Eyes");
  88. create_verb(customrole1,"Data Transfer","data_transfer(my);","Use a camera to teleport to that location.","Opening Eyes");
  89.  
  90. //Concealing Eyes
  91. func toggle_invisibility(player)
  92. {
  93. dead = get_state(player, "dead");
  94. unconscious = get_state(player, "unconscious");
  95. escaped = get_state(player, "escaped");
  96. gameover = gameover();
  97. playertype = get_playertype(player);
  98. if(!dead && !unconscious && !escaped && !gameover && playertype == 2)
  99. {
  100. stamina = get_stamina(player);
  101. maxstamina = get_maxstamina(player);
  102. alpha = get_alpha(player);
  103. invisible = check_mstag(player);
  104. looping = check_mstag(player, 2);
  105. if(invisible || looping)
  106. {
  107. set_mstag(player,0);
  108. }
  109. else
  110. {
  111. if(stamina < maxstamina)
  112. {
  113. printto(player,"You must have full stamina to use this!");
  114. return;
  115. }
  116. printto(player,"You turn invisible!");
  117. if(alpha == 255)
  118. {
  119. set_alpha(player,126);
  120. }
  121. stamina_regen(player,0);
  122. invisibility(player,1);
  123. see_invisible(player, 1);
  124. set_mstag(player,1);
  125. invisible = 1;
  126. dead = get_state(player, "dead");
  127. unconscious = get_state(player, "unconscious");
  128. escaped = get_state(player, "escaped");
  129. gameover = gameover();
  130. playertype = get_playertype(player);
  131. set_mstag(player,1,2);
  132. set_attackcode(player, "set_mstag(my,0);");
  133. return_attackcode(player);
  134. nohit(player);
  135. while(stamina > 0 && invisible && !dead && !unconscious && !escaped && !gameover && playertype == 2)
  136. {
  137. set_stamina(player, stamina - 1);
  138. stamina -= 1;
  139. if(stamina <= 0)
  140. {
  141. set_stamina(player,0);
  142. stamina = 0;
  143. playertype = get_playertype(player);
  144. break;
  145. }
  146. wait(10);
  147. dead = get_state(player, "dead");
  148. unconscious = get_state(player, "unconscious");
  149. escaped = get_state(player, "escaped");
  150. gameover = gameover();
  151. stamina = get_stamina(player);
  152. invisible = check_mstag(player);
  153. playertype = get_playertype(player);
  154. }
  155. alpha = get_alpha(player);
  156. if(alpha == 126)
  157. {
  158. set_alpha(player,255);
  159. }
  160. stamina_regen(player,1);
  161. if(playertype == 2)
  162. {
  163. invisibility(player,0);
  164. see_invisible(player, 0);
  165. }
  166. nohit(player, 0);
  167. set_attackcode(player, "");
  168. return_attackcode(player, 0);
  169. set_mstag(player,0,2);
  170. printto(player,"You are no longer invisible.");
  171. }
  172. }
  173. }
  174.  
  175. if(customrole2)
  176. {
  177.  
  178. create_verb(customrole2,"Invisibility","toggle_invisibility(my);","Turn invisible in exchange for stamina.","Concealing Eyes");
  179.  
  180. }
  181.  
  182. else
  183. {
  184. create_verb(killer,"Invisibility","toggle_invisibility(my);","Turn invisible in exchange for stamina.","Concealing Eyes");
  185.  
  186. }
  187.  
  188. //Hidden Role
  189. func custom_death(player | cyber | eyes) //Removed snake, since it changes.
  190. {
  191. snake = killer; //The Snake is always the killer.
  192. playertype = get_playertype(player);
  193. gameinprogress = gameinprogress();
  194. gameinprogressnum = gameinprogressnum();
  195. oldgameinprogressnum = gameinprogressnum();
  196. hourlength = get_hourlength();
  197. rolemessages = 8;
  198. timelength = hourlength/rolemessages;
  199. cyberalias = get_permalias(cyber);
  200. eyesalias = get_permalias(eyes);
  201. snakealias = get_alias(snake);
  202. if(playertype != 2 || !gameinprogress)
  203. {
  204. return;
  205. }
  206. set_fakedeath(player);
  207. printto(player, "Blackness overtakes your vision. It seems that this is the end for you.");
  208. warningmessage = "You experience a strange sensation somewhere in the building. You are certain that the heat haze is happening.";
  209. if(snakealias == cyberalias)
  210. {
  211. printto(snake, warningmessage);
  212. }
  213. else
  214. {
  215. printto(cyber, warningmessage);
  216. }
  217. if(snakealias == eyesalias)
  218. {
  219. printto(snake, warningmessage);
  220. }
  221. else
  222. {
  223. printto(eyes, warningmessage);
  224. }
  225. wait(timelength);
  226. gameinprogress = gameinprogress();
  227. gameinprogressnum = gameinprogressnum();
  228. if(!gameinprogress || gameinprogressnum != oldgameinprogressnum)
  229. {
  230. return;
  231. }
  232. printto(player, "You open your eyes and find yourself trapped at the top of a pillar of snakes, constantly writhing around you as they hold you in place. In your limited view through the pitch-black snakes, the sky around you is roiling red, with other pillars scattered around you. Soon enough they cover your vision and all is dark once more.");
  233. wait(timelength);
  234. gameinprogress = gameinprogress();
  235. gameinprogressnum = gameinprogressnum();
  236. if(!gameinprogress || gameinprogressnum != oldgameinprogressnum)
  237. {
  238. return;
  239. }
  240. printto(player, "You've lost track of the time. Something tells you that this isn't how one is supposed to die.");
  241. wait(timelength);
  242. gameinprogress = gameinprogress();
  243. gameinprogressnum = gameinprogressnum();
  244. if(!gameinprogress || gameinprogressnum != oldgameinprogressnum)
  245. {
  246. return;
  247. }
  248. printto(player, "A new power wells up from within!");
  249. printto(player, "<b><i>You have the Combining Eyes!</i></b>");
  250. printto(player, "VERB FUNCTIONALITY: Stuns a nearby target in front of you for 3 seconds. 15 second cooldown. Does not work on the blind.");
  251. showcustomrole3("You have the Combining Eyes!");
  252. wait(timelength);
  253. gameinprogress = gameinprogress();
  254. gameinprogressnum = gameinprogressnum();
  255. if(!gameinprogress || gameinprogressnum != oldgameinprogressnum)
  256. {
  257. return;
  258. }
  259. printto(player, "You're not entirely sure what's going on, but you seem to have woken up alive. Furthermore, you know who killed you. It's only a matter of time until they try to silence you again. Hopefully your new ability will come in handy.");
  260. set_health(player, 100);
  261. if(player == killer)
  262. {
  263. set_customdeath(player,"snake_death(my);");
  264. }
  265. else
  266. {
  267. set_customdeath(player,"");
  268. }
  269. set_fakedeath(player, 0);
  270. //Add 2nd Life Verb
  271. create_verb(player,"Petrify","petrify(my);","Stuns a person in front of you for a short amount of time.","Petrifying Eyes");
  272. }
  273.  
  274. func petrify(player)
  275. {
  276. dead = get_state(player, "dead");
  277. unconscious = get_state(player, "unconscious");
  278. escaped = get_state(player, "escaped");
  279. gameover = gameover();
  280. playertype = get_playertype(player);
  281. if(!dead && !unconscious && !escaped && !gameover && playertype == 2)
  282. {
  283. oncooldown = check_mstag(player, 3);
  284. cooldownlength = 150; //15 seconds.
  285. if(!oncooldown)
  286. {
  287. set_mstag(player, 1, 3);
  288. previousvalue = get_var();
  289. previousvaluetwo = get_var(2); //Maintain compatibility for other modes.
  290. set_var(null);
  291. set_var(player, 2);
  292. list_cycle("/mob",ohearers(5,player),"petrified = get_var(); if(petrified == null){isblind = has_skill(my,\"Blind\"); dead = get_state(my, \"dead\"); unconscious = get_state(my, \"unconscious\"); escaped = get_state(my, \"escaped\"); playertype = get_playertype(my); if(!isblind && !dead && !unconscious && !escaped && playertype == 2){player = get_var(2); facing = get_dir_BYOND(player,my); playerdir = get_dir_of(player); pixeldist = pixel_dist(player,my); if(facing == playerdir || pixeldist <= 0){set_var(my);}}}");
  293. petrified = get_var();
  294. set_var(previousvalue);
  295. set_var(previousvaluetwo, 2);
  296. if(petrified != null)
  297. {
  298. stuntime = 40; //Four seconds.
  299. cannotattack = get_noattack(petrified);
  300. noattack(petrified);
  301. freeze(petrified);
  302. printto(emoteview(10,player), strcat(player," stuns ", petrified, " via petrification!"));
  303. wait(stuntime);
  304. printto(emoteview(10,petrified), strcat(petrified," is no longer petrified."));
  305. noattack(petrified, cannotattack);
  306. freeze(petrified, 0);
  307. }
  308. oldgameinprogressnum = gameinprogressnum();
  309. wait(cooldownlength);
  310. gameinprogress = gameinprogress();
  311. gameinprogressnum = gameinprogressnum();
  312. if(gameinprogress && gameinprogressnum == oldgameinprogressnum)
  313. {
  314. set_mstag(player, 0, 3);
  315. }
  316. }
  317. else
  318. {
  319. printto(player, strcat("You must wait ", cooldownlength/10 ," seconds to use this again!"));
  320. }
  321. }
  322.  
  323. }
  324. set_customdeath(customrole3,"custom_death(my, customrole1, customrole2);");
  325.  
  326. //The Snake
  327. set_mstag(killer, list(), 4);
  328. set_mstag(killer, get_icon(killer), 5);
  329. set_mstag(killer, get_headicon(killer), 6);
  330.  
  331. func copy_form(player)
  332. {
  333. dead = get_state(player, "dead");
  334. unconscious = get_state(player, "unconscious");
  335. escaped = get_state(player, "escaped");
  336. gameover = gameover();
  337. playertype = get_playertype(player);
  338. if(!dead && !unconscious && !escaped && !gameover && playertype == 2)
  339. {
  340. previousvalue = get_var(3);
  341. set_var(list(),3);
  342. list_cycle("/corpse",oview(1, player), "currentlist = get_var(3); addlist(currentlist, my); set_var(currentlist, 3);");
  343. corpselist = copylist(get_var(3));
  344. set_var(previousvalue,3);
  345. corpse = dialogue(player,"Please select a corpse to copy.","Copy Form",corpselist);
  346. dead = get_state(player, "dead");
  347. unconscious = get_state(player, "unconscious");
  348. escaped = get_state(player, "escaped");
  349. gameover = gameover();
  350. playertype = get_playertype(player);
  351. if(!dead && !unconscious && !escaped && !gameover && playertype == 2)
  352. {
  353. if(corpse)
  354. {
  355. inlist = findinlist(corpse, corpselist);
  356. if(inlist)
  357. {
  358. copiedlist = check_mstag(player, 4);
  359. alreadycopied = findinlist(corpse, copiedlist);
  360. if(!alreadycopied)
  361. {
  362. addlist(copiedlist, corpse);
  363. set_mstag(player, copiedlist, 4);
  364. heal(player,20);
  365. printto(player, strcat("You copy the form of ", corpse, "."));
  366. }
  367. else
  368. {
  369. printto(player, "You have already copied this form!");
  370. }
  371. }
  372. }
  373. }
  374. }
  375. }
  376.  
  377.  
  378. func shift_form(player | cyber | eyes | hidden)
  379. {
  380. dead = get_state(player, "dead");
  381. unconscious = get_state(player, "unconscious");
  382. escaped = get_state(player, "escaped");
  383. gameover = gameover();
  384. playertype = get_playertype(player);
  385. if(!dead && !unconscious && !escaped && !gameover && playertype == 2)
  386. {
  387. previousvalue = get_var(4);
  388. playeralias = get_permalias(player);
  389. set_var(list(playeralias), 4);
  390. copiedlist = check_mstag(player, 4);
  391. list_cycle("/corpse",copiedlist, "currentlist = get_var(4); addlist(currentlist, get_alias(my)); set_var(currentlist, 4);");
  392. shiftlist = copylist(get_var(4));
  393. set_var(previousvalue,4);
  394. corpsealias = dialogue(player,"Please select a form to shift to.","Shift Form", shiftlist);
  395. dead = get_state(player, "dead");
  396. unconscious = get_state(player, "unconscious");
  397. escaped = get_state(player, "escaped");
  398. gameover = gameover();
  399. playertype = get_playertype(player);
  400. if(!dead && !unconscious && !escaped && !gameover && playertype == 2)
  401. {
  402. listposition = findinlist(corpsealias, shiftlist);
  403. if(corpsealias)
  404. {
  405. corpse = player;
  406. if(listposition > 1)
  407. {
  408. corpse = get_listpos(copiedlist, listposition-1);
  409. }
  410. cyberalias = get_permalias(cyber);
  411. eyesalias = get_permalias(eyes);
  412. hiddenalias = get_permalias(hidden);
  413. currentalias = get_alias(player);
  414.  
  415. if(currentalias != corpsealias)
  416. {
  417. if(corpsealias == playeralias)
  418. {
  419. if(currentalias == cyberalias && player != customrole1)
  420. {
  421. //Remove Cyber Kid Verbs
  422. remove_verb_by_name(player,"Access Computer","Opening Eyes");
  423. remove_verb_by_name(player,"Data Transfer","Opening Eyes");
  424. }
  425. if(customrole2) {
  426. if(currentalias == eyesalias && player != customrole2)
  427. {
  428. //Remove Concealing Eyes Verbs
  429. remove_verb_by_name(player,"Invisibility","Concealing Eyes");
  430. }
  431. }
  432. if(currentalias == hiddenalias && player != customrole3)
  433. {
  434. //Remove Hidden Role Verbs
  435. remove_verb_by_name(player,"Petrify","Petrifying Eyes");
  436. }
  437. if(corpsealias == cyberalias && player != customrole1)
  438. {
  439. //Gain Cyber Kid Verbs
  440. create_verb(player,"Access Computer","access_computer(my);","Accesses a computer.","Opening Eyes");
  441. create_verb(player,"Data Transfer","data_transfer(my);","Use a camera to teleport to that location.","Opening Eyes");
  442. }
  443.  
  444. if(corpsealias == eyesalias && player != customrole2)
  445. {
  446. //Gain Concealing Eyes Verbs
  447. create_verb(player,"Invisibility","toggle_invisibility(my);","Turn invisible in exchange for stamina.","Concealing Eyes");
  448. }
  449.  
  450. if(corpsealias == hiddenalias && player != customrole3)
  451. {
  452. //Gain Hidden Role Verbs
  453. create_verb(player,"Petrify","petrify(my);","Stuns a person in front of you for a short amount of time.","Petrifying Eyes");
  454. }
  455.  
  456. printto(emoteview(10,player), strcat(player," transforms into ", playeralias, "!"));
  457. set_name(player,playeralias);
  458. set_alias(player,playeralias);
  459. set_icon(player,check_mstag(player, 5));
  460. set_headicon(player,check_mstag(player, 6));
  461.  
  462. }
  463. else
  464. {
  465. if(currentalias == cyberalias && player != customrole1)
  466. {
  467. //Remove Cyber Kid Verbs
  468. remove_verb_by_name(player,"Access Computer","Opening Eyes");
  469. remove_verb_by_name(player,"Data Transfer","Opening Eyes");
  470. }
  471. if(customrole2) {
  472. if(currentalias == eyesalias && player != customrole2)
  473. {
  474. //Remove Concealing Eyes Verbs
  475. remove_verb_by_name(player,"Invisibility","Concealing Eyes");
  476. }
  477. }
  478. if(currentalias == hiddenalias && player != customrole3)
  479. {
  480. //Remove Hidden Role Verbs
  481. remove_verb_by_name(player,"Petrify","Petrifying Eyes");
  482. }
  483. if(corpsealias == cyberalias && player != customrole1)
  484. {
  485. //Gain Cyber Kid Verbs
  486. create_verb(player,"Access Computer","access_computer(my);","Accesses a computer.","Opening Eyes");
  487. create_verb(player,"Data Transfer","data_transfer(my);","Use a camera to teleport to that location.","Opening Eyes");
  488. }
  489. if(corpsealias == eyesalias && player != customrole2)
  490. {
  491. //Gain Concealing Eyes Verbs
  492. create_verb(player,"Invisibility","toggle_invisibility(my);","Turn invisible in exchange for stamina.","Concealing Eyes");
  493. }
  494. if(corpsealias == hiddenalias && player != customrole3)
  495. {
  496. //Gain Hidden Role Verbs
  497. create_verb(player,"Petrify","petrify(my);","Stuns a person in front of you for a short amount of time.","Petrifying Eyes");
  498. }
  499. printto(emoteview(10,player), strcat(player," transforms into ", corpsealias, "!"));
  500. set_name(player,corpsealias);
  501. set_alias(player,corpsealias);
  502. set_icon(player,get_icon(corpse));
  503. set_headicon(player,get_headicon(corpse));
  504. }
  505. }
  506. }
  507. }
  508. }
  509. }
  510.  
  511.  
  512. func snake_death(player)
  513. {
  514. probability = 0;
  515. time = checktime();
  516. if(time == "6PM" || time == "7PM" || time == "8PM" || time == "9PM")
  517. {
  518. probability = prob(100);
  519. }
  520. if(time == "10PM" || time == "11PM" || time == "12AM")
  521. {
  522. probability = prob(100);
  523. }
  524. if (time == "1AM" || time == "2AM")
  525. {
  526. probability = prob(80);
  527. }
  528. if(probability)
  529. {
  530. spawn(600,"transfer_snake(killedby(killer));");
  531. }
  532. set_customdeath(player,"");
  533. permadeath(player);
  534. }
  535.  
  536. func transfer_snake(player)
  537. {
  538. if(player != killer)
  539. {
  540. //Remove verbs from the old snake.
  541. remove_verb_by_name(killer,"Copy Form","The Snake");
  542. remove_verb_by_name(killer,"Shift Form","The Snake");
  543.  
  544. //Initialize the new Snake.
  545. set_mstag(player, list(), 4);
  546. set_mstag(player, get_icon(player), 5);
  547. set_mstag(player, get_headicon(player), 6);
  548. set_namedvar(player,"snake");
  549.  
  550. //Add verbs to the new snake.
  551. create_verb(player,"Copy Form","copy_form(my);","Adds a dead body to your body transformation list.","The Snake");
  552. create_verb(player,"Shift Form","shift_form(my, customrole1, customrole2, customrole3);","Transform into a body from your body transformation list.","The Snake");
  553.  
  554. if(!customrole2)
  555. {
  556. create_verb(player,"Invisibility","toggle_invisibility(my);","Turn invisible in exchange for stamina.","Concealing Eyes");
  557.  
  558. }
  559.  
  560. //Add the Snake's custom death to the new snake.
  561. if(!get_customdeath(player))
  562. {
  563. set_customdeath(player,"snake_death(my);");
  564. }
  565. set_role(player,"Normal: Killer"); //Used a little trick here to set the killer, since it is a global variable between modes.
  566. showkiller("You are the new Snake!"); //If The Snake previously had role text like You are the Snake!, insert it here as well.
  567. wait(15);
  568. printto(player,"<b>Your head begins to throb.</b>");
  569. playsound(player,"head.wav");
  570. wait(15);
  571. printto(player,"<font color=red>You didn't think it was going to be that easy, did you?</font>");
  572. wait(50);
  573. printto(player,"<font color=red>That last host was incompetent, I do admit. But you've already proven yourself to be quite the capable killer. I'm sure we'll get along just fine. All you need to do for me is pick up right where they left off!</font>");
  574. wait(50);
  575. printto(player,"<font color=red>Why would you want to do that, you ask? You and I are a team now in more ways than one. As in, if it hits 5 AM and you don't accomplish what we need, we're both going to die. That's some hefty motivation, right?</font>");
  576. wait(50);
  577. printto(player,"<font color=red>To be honest, transferring hosts like this was very dangerous. To say I shortened your lifespan would be an understatement. As for what you have to do, well... Let's just say that we need to kill the students here until one experiences the heat haze. You don't really need to know what that is, just that if someone here dies and comes back to life, they need to die again. If you can do that we'll both become immortal! Won't age a day. You're saved, I'm saved. Everyone is happy.</font>");
  578. wait(50);
  579. printto(player,"<font color=red>Oh, and don't even think about committing suicide or something equally as <i>heroic</i>. You aren't my first host and if you prove to be worthless you won't be the last. I'd just find another. If you want the killings to stop, you just need to find this person for me.</font>");
  580. wait(50);
  581. printto(player,"<font color=red>Talking like this is certainly draining. I'm going to go dormant for a while, but all of my abilities are yours to use.</font>");
  582. wait(50);
  583. printto(player,"<b><i>You are the new Snake!</i></b>");
  584. printto(player,"VERB FUNCTIONALITY: Copy the form of corpses. Each unique form you store will heal you 20 health. Shift Form allows you to take any form you have copied at will.");
  585. if(!customrole2) {
  586. printto(player,"VERB FUNCTIONALITY: The Concealing Eyes allow you to go invisible for a lengthy amount of time. You must be at full stamina to use this and attacking while invisible will cancel your invisibility automatically.");
  587. }
  588. }
  589. }
  590.  
  591. set_namedvar(killer,"snake");
  592. create_verb(killer,"Copy Form","copy_form(my);","Adds a dead body to your body transformation list.","The Snake");
  593. create_verb(killer,"Shift Form","shift_form(my, customrole1, customrole2, customrole3);","Transform into a body from your body transformation list.","The Snake");
  594. set_customdeath(killer,"snake_death(my);");
  595.  
  596.  
  597.  
  598. gameinprogress = gameinprogress();
  599.  
  600. while(gameinprogress)
  601.  
  602. {
  603. gameinprogress = gameinprogress();
  604. time = checktime();
  605. if(time == "7PM")
  606. {
  607. if(prob(80)) {
  608. if(prob(70)) {
  609. z = strcat("<big><font color=red><b>Warning:</b></font>A suspect has been identified; Suspect is believed to have ",get_haircolor(customrole1));
  610. wprint(strcat(z," colored hair.</big>"));
  611. playsound(world,"alarm.wav");
  612. break;
  613. }
  614. else {
  615. z = strcat("<big><font color=red><b>Warning:</b></font>A suspect has been identified; Suspect is believed to have ",get_haircolor(customrole3));
  616. wprint(strcat(z," colored hair.</big>"));
  617. playsound(world,"alarm.wav");
  618. break;
  619. }
  620. }
  621. else {
  622. z = strcat("<big><font color=red><b>Warning:</b></font>A suspect has been identified; Suspect is believed to have ",get_haircolor(killer));
  623. wprint(strcat(z," colored hair.</big>"));
  624. playsound(world,"alarm.wav");
  625. break;
  626. }
  627.  
  628. }
  629. wait(tick_lag());
  630. }
  631.  
  632.  
  633. hourlength = get_hourlength();
  634. wait(hourlength*10); //10 hours: 5AM
  635. hiddenplayertype = get_playertype(customrole3);
  636. snake = get_namedvar("snake");
  637. if(hiddenplayertype == 2 && customrole3 != snake) //Still alive!
  638. {
  639. printto(snake, "Your body starts to decompose."); //Message to The Snake.
  640. printto(emoteview(10,snake), strcat(snake,"s body starts to wither."));
  641. wait(100); //10 seconds to RP death.
  642. set_health(snake, 0); //Kill them!
  643. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement