IshSoul

Untitled

Feb 23rd, 2015
220
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.95 KB | None | 0 0
  1. function onActionServerside(params)
  2. {
  3. switch (params[0])
  4. {
  5. case "showStats":
  6. player.showFloat(params[1]);
  7. break;
  8.  
  9. case "removeShuriken":
  10. player.removeitem(229, 1);
  11. break;
  12. }
  13. }
  14. join("weapongun");
  15. //#CLIENTSIDE
  16. function onWeaponFired()
  17. {
  18. if (player.level.name.starts("era_event")) return;
  19. if (player.level.name.starts("era_fist")) return;
  20. if (clientr.isInEventLevel) return;
  21. if (player.onLadder) return;
  22. if (playerfreezesecs > 0) return;
  23. //player.clientr.swiftfoot = true;
  24. if (this.out) {
  25. this.doAttack();
  26. } else {
  27. sheathBlade();
  28. meleedisabled = true;
  29. }
  30. }
  31.  
  32. function onTimeout()
  33. {
  34. if (clientr.isInEventLevel) {
  35. sheathBlade();
  36. //player.clientr.swiftfoot = false;
  37. meleedisabled = true;
  38. }
  39. //handles block duration and countdown - redundant in live
  40. switch (this.timeinc)
  41. {
  42. case 10:
  43. blockanis(false);
  44. triggerserver("gui", name, "showStats", "Block down!");
  45. client.DamageBlock = false;
  46. this.timeinc++;
  47. break;
  48.  
  49. case 25:
  50. triggerserver("gui", name, "showStats", "Block ready!");
  51. this.cooldown = false;
  52. return;
  53. break;
  54.  
  55. default:
  56. this.timeinc++;
  57. }
  58.  
  59. setTimer(this.cycletime);
  60. }
  61.  
  62. function blockAnis(state)
  63. {
  64. temp.skinName = player.clientr.("gunSkins_Samurai Sword_selected");
  65. if(temp.skinName != null) {
  66. temp.ext = ((temp.skinName in serverr.GIFSkins) ? ".gif" : ".png");
  67. player.attr[12] = "era_skin_samuraisword-" @ temp.skinName.lower() @ temp.ext;
  68. }
  69. //handles block anis - redundant in live
  70. if (state)
  71. {
  72. if (temp.skinName != null){
  73. client.replaceani = {"walk", "era_gun_template_samuraisword-block",
  74. "idle", "era_gun_template_samuraisword-block",
  75. "sit", "era_gun_template_samuraisword-block"};
  76. (@"-MoveSystem").trigger("ReplaceAni", "");
  77. setani("era_gun_template_samuraisword-block", "");
  78. } else {
  79. client.replaceani = {"walk", "ct_katanablock-daisetsu",
  80. "idle", "ct_katanablock-daisetsu",
  81. "sit", "ct_katanablock-daisetsu"};
  82. (@"-MoveSystem").trigger("ReplaceAni", "");
  83. setani("ct_katanablock-daisetsu", "");
  84. }
  85. } else {
  86. if (temp.skinName != null){
  87. client.replaceani = {"walk", "era_gun_template_samuraisword-walkunsheath",
  88. "idle", "era_gun_template_samuraisword-ready",
  89. "sit", "era_gun_template_samuraisword-situnsheath"};
  90. setani("era_gun_template_samuraisword-unsheath", "");
  91. (@"-MoveSystem").trigger("ReplaceAni", "");
  92. } else{
  93. client.replaceani = {"walk", "ct_katanawalkunsheath-daisetsu",
  94. "idle", "ct_katanaready-daisetsu",
  95. "sit", "ct_katanasitunsheath-daisetsu"};
  96. setani("ct_katanaunsheath-daisetsu", "");
  97. (@"-MoveSystem").trigger("ReplaceAni", "");
  98. }
  99. }
  100.  
  101. }
  102.  
  103. function resetWepState()
  104. {
  105. //used to reset weapon status on unequip
  106. this.cooldown = false;
  107. this.cycletime = 0;
  108. this.timeinc = 0;
  109. this.out = false;
  110. client.DamageBlock = false;
  111. meleedisabled = false;
  112. }
  113.  
  114. //function swordBlock()
  115. {
  116. //block disabled in live weapon
  117. // if (!(this.out)) return;
  118.  
  119. // if (this.cooldown)
  120. {
  121. // triggerserver("gui", name, "showStats", "On Cooldown!");
  122. // return;
  123. // } else {
  124. // triggerserver("gui", name, "showStats","Block!");
  125. // client.DamageBlock = true;
  126. // blockanis(true);
  127. // this.cooldown = true;
  128. // this.timeinc = 0;
  129. // this.cycletime = 1;
  130. // setTimer(this.cycletime);
  131. }
  132. }
  133.  
  134. function sheathBlade()
  135. {
  136. temp.skinName = player.clientr.("gunSkins_Samurai Sword_selected");
  137. if(temp.skinName != null) {
  138. temp.ext = ((temp.skinName in serverr.GIFSkins) ? ".gif" : ".png");
  139. player.attr[12] = "era_skin_samuraisword-" @ temp.skinName.lower() @ temp.ext;
  140. }
  141. this.shuristate = true;
  142. //sheath the fuckin blade
  143. if (this.out)
  144. {
  145. if (temp.skinName != null){
  146. client.replaceani = {"walk", "era_gun_template_samuraisword-walksheath",
  147. "idle", "era_gun_template_samuraisword-idle2",
  148. "sit", "era_gun_template_samuraisword-sitsheath"};
  149. setani("era_gun_template_samuraisword-sheath", "");
  150. } else{
  151. client.replaceani = {"walk", "ct_katanawalksheath-daisetsu",
  152. "idle", "ct_katanaidle2-daisetsu",
  153. "sit", "ct_katanasitsheath-daisetsu"};
  154. setani("ct_katanasheath-daisetsu", "");
  155. }
  156. (@"-MoveSystem").trigger("ReplaceAni", "");
  157. this.out = false;
  158. meleedisabled = false;
  159. playerfreezesecs += 0.4;
  160. } else {
  161. if(temp.skinName != null){
  162. client.replaceani = {"walk", "era_gun_template_samuraisword-walkunsheath",
  163. "idle", "era_gun_template_samuraisword-ready",
  164. "sit", "era_gun_template_samuraisword-situnsheath"};
  165. setani("era_gun_template_samuraisword-unsheath", "");
  166.  
  167. } else{
  168. //unsheath the fuckin blade
  169. client.replaceani = {"walk", "ct_katanawalkunsheath-daisetsu",
  170. "idle", "ct_katanaready-daisetsu",
  171. "sit", "ct_katanasitunsheath-daisetsu"};
  172. setani("ct_katanaunsheath-daisetsu", "");
  173. }
  174. (@"-MoveSystem").trigger("ReplaceAni", "");
  175. this.out = true;
  176. meleedisabled = true;
  177. playerfreezesecs += 0.4;
  178. }
  179. }
  180.  
  181. function throwShuriken()
  182. {
  183. temp.skinName = player.clientr.("gunSkins_Samurai Sword_selected");
  184. if(temp.skinName != null) {
  185. temp.ext = ((temp.skinName in serverr.GIFSkins) ? ".gif" : ".png");
  186. player.attr[12] = "era_skin_samuraisword-" @ temp.skinName.lower() @ temp.ext;
  187. }
  188. if (onwater(player.x + 1.5, player.y + 2))
  189. return;
  190. if (clientr.(@ "itemc229")[0] < 1)
  191. return;
  192. if (player.clientr.dead || player.clientr.hp <= 0) {
  193. return ;
  194. }
  195.  
  196.  
  197. //throws a goddamn shuriken
  198. if (timevar2-this.lastfreeze => 0.25)
  199. {
  200. if (temp.skinName != null){
  201. setAni("era_gun_template_samuraisword-shurikenthrow", "");
  202. } else{
  203. setAni("era_chain-katana-shuriken", "");
  204. }
  205. playerfreezesecs += 0.1;
  206. temp.angle = player.dir == 3?0:(player.dir + 1) * 1.57;
  207. setshootparams(62, 25, player.account, player.guild);
  208. eshoot(player.x + random(-0.5, 0.5), player.y + random(-0.5, 0.5), player.z + random(-0.5, 0.5), temp.angle, 0.3, 0, "era_shuriken", "");
  209. this.lastfreeze = timevar2;
  210. triggerserver("gui", name, "removeshuriken","");
  211. } else {
  212. return;
  213. }
  214. }
  215.  
  216. function doAttack(mode)
  217. {
  218. temp.skinName = player.clientr.("gunSkins_Samurai Sword_selected");
  219. if(temp.skinName != null) {
  220. temp.ext = ((temp.skinName in serverr.GIFSkins) ? ".gif" : ".png");
  221. player.attr[12] = "era_skin_samuraisword-" @ temp.skinName.lower() @ temp.ext;
  222. }
  223. if (timevar2-this.lastslash < .20) return;
  224. //handles the crunk ass attacking shit
  225. if (!onwater(player.x+1.5, player.y+2)) {
  226. playerfreezesecs += (0.15 + (mode? 0.1: 0));
  227. this.range = 2.4;
  228. if (temp.skinName != null) {
  229. setAni("era_gun_template_samuraisword-attack1", "");
  230.  
  231. } else {
  232. setAni("ct_katanaattack1-daisetsu", "");
  233. }
  234. temp.xy = {player.x + 1 + vecx(player.dir) * 2,
  235. player.y + 1.5 + vecy(player.dir) * 2};
  236.  
  237.  
  238. //triggeraction(temp.xy[0], temp.xy[1], "serverCustomMeleeAttack", 30, 2.5, "physical", player.account);
  239. triggeraction(temp.xy[0],temp.xy[1],"servermeleeattack","Samurai Sword",37,true,"none",player.account, this.range);//meleename,damage,bleed,effect,account
  240.  
  241. this.lastslash = timevar2;
  242. //player.client.slowMovement = {3, .82};
  243. //triggeraction(temp.xy[0],temp.xy[1],"servermeleeattack","Samurai Sword",30,true,"none",player.account);//meleename,damage,bleed,effect,account
  244. /*if (mode == true) {
  245. for (temp.i = 0; temp.i < 7; temp.i++) {
  246. temp.xy = {xy[0] + vecx(player.dir), xy[1] + vecy(player.dir)};
  247. if (onwall2(xy[0], xy[1], 2, 2)) break;
  248. showani(1, xy[0], xy[1], 0, "era_shuriken", "", "wood_crush.wav", "era_explodedebris2.png");
  249. triggeraction(temp.xy[0], temp.xy[1], "CustomAttackXY", 25, player.account, player.guild, "physical");
  250.  
  251. sleep(0.05);
  252. }
  253. showani(1,0,0,0,"","","","");
  254. }*/
  255. }
  256. }
  257.  
  258. function onKeyPressed(code, key) {
  259. if (this.out == false) return;
  260. if (player.weapon.name != this.name)
  261. {
  262. (@"-MoveSystem").trigger("DefAnis", "");
  263. //player.clientr.swiftfoot = false;
  264. resetWepState();
  265. return;
  266. }
  267. if (playerfreezesecs > 0) return;
  268. if (key == "f" && this.shuristate)
  269. {
  270. this.throwShuriken();
  271. this.shuristate = false;
  272. }
  273. if (key == "y") this.sheathBlade();
  274.  
  275. }
  276.  
  277. function doDash()
  278. {
  279. if (timevar2-this.lastdash < 1 || !this.out || playerfreezesecs > 0)
  280. return;
  281.  
  282. this.tilespersec = 3; //dash travel speed in tiles/s
  283. this.dashdistance = 12; //dash distance
  284.  
  285. if (onwater(player.x+1.5, player.y+2)) return;
  286.  
  287. if (vecx(player.dir) == "1" || vecx(player.dir) == "-1")
  288. {
  289. temp.xy = {int(player.x + 1.5 + this.dashdistance * vecx(player.dir)), player.y};
  290. }
  291. else
  292. {
  293. temp.xy = {player.x, int(player.y + 2 + this.dashdistance * vecy(player.dir))};
  294. }
  295.  
  296. triggerserver("gui", name, "showBlur");
  297. player.attr[9] = "global_motionblur.gani";
  298. setAni("ct_katanawalkunsheath-daisetsu", "");
  299.  
  300. playerfreezesecs += 1;
  301. temp.ganicount = 0;
  302. temp.iterator = 0;
  303. while (!(player.x in |temp.xy[0]-2, temp.xy[0]+2|) || !(player.y in |temp.xy[1]-2, temp.xy[1]+2|))
  304. {
  305. if (onwall2(player.x + 1.5 + this.tilespersec * vecx(player.dir), player.y + 2 + this.tilespersec * vecy(player.dir), 1.25, 1.25)) break;
  306. if (onwater(player.x + 1.5 + this.tilespersec-1 * vecx(player.dir), player.y + 2 + this.tilespersec-1 * vecy(player.dir))) break;
  307. if (player.x < temp.xy[0]) player.x += this.tilespersec;
  308. if (player.y < temp.xy[1]) player.y += this.tilespersec;
  309. if (player.x > temp.xy[0]) player.x -= this.tilespersec;
  310. if (player.y > temp.xy[1]) player.y -= this.tilespersec;
  311. //player.chat = format("destination: %s, %s | current: %s, %s", temp.xy[0], temp.xy[1], player.x, player.y);
  312. setAni("ct_katanawalkunsheath-daisetsu["@temp.ganicount@"]", "");
  313.  
  314. if (temp.iterator => 1)
  315. {
  316. temp.ganicount++;
  317. temp.iterator = 0;
  318. }
  319.  
  320. temp.iterator++;
  321. //playerfreezesecs += .05;
  322. clientr.freeze = true;
  323. sleep(.05);
  324. }
  325. clientr.freeze = false;
  326. //playerfreezesecs += .05;
  327. player.attr[9] = "era_invis.gani";
  328. triggerserver("gui", name, "hideBlur");
  329. this.lastdash = timevar2;
  330. showAni(199, player.x, player.y, 2, "era_serverside_SFX", "era_katana-dash.wav");
  331. this.playsound = 1.23;
  332. hudbars.AddBar("Dash", 1, { 1, 0.65, 0.1 });
  333. doAttack();
  334.  
  335.  
  336.  
  337.  
  338. }
  339.  
  340. function dashCD()
  341. {
  342. triggerserver("gui", name, "showStats","Dash now ready!");
  343. }
  344.  
  345.  
  346. function GraalControl.onKeyUp(code, key) {
  347. if (key == "f" && !(this.shuristate)) this.shuristate = true;
  348. }
  349.  
  350. function onTurnOff() {
  351. (@"-MoveSystem").trigger("DefAnis", "");
  352. this.out = false;
  353. setAni("idle", "");
  354. }
Advertisement
Add Comment
Please, Sign In to add comment