Guest User

Untitled

a guest
Jan 16th, 2020
145
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.63 KB | None | 0 0
  1. chess01,19,37,4 script Chess[er] 100,{
  2. if($@zvn2==2){end;}
  3. if($@wv2$[1]==strcharinfo(0)||$@wv2$[2]==strcharinfo(0)){end;}
  4. setarray @uv$[1],"","";setarray @uc$[1],"","";set @o,0;set @ul,0;set @spe,0;set @n,0;set @o2,0;set @n2,0;set @ko,0;
  5. set $@zvn2,$@zvn2+1;
  6. set @zvn2,$@zvn2;
  7. set @uk$,($@zvn2==1?"[R]":"[B]");
  8. set $@wv2$[@zvn2],strcharinfo(0);
  9. dispbottom "You are Player:"+($@zvn2==1?"[R]":"[B]");
  10. if($@zvn2==2){
  11. stopnpctimer;
  12. mapannounce "chess01","[System] Now is your turn Player "+($@zvn2==1?"[R]":"[B]")+".",0;
  13. set $@cki_t_2,gettimetick(2);
  14. initnpctimer "cchessSystem3";
  15. goto OnInit;
  16. }else{
  17. initnpctimer;
  18. mapannounce "chess01","[System] Wait for 1 player.",0;
  19. }
  20. end;
  21. OnTimer15000:
  22. mapannounce "chess01","[System]:Game Over.",0;
  23. donpcevent "cchessSystem3::OnEnd";
  24. end;
  25. OnInit:
  26. while(1){
  27. delwaitingroom;
  28. waitingroom "[ "+($@cki_t_2?"Last-->"+(30+$@cki_t_2-gettimetick(2))+"s":"Wait")+" ]",0;
  29. if(30+$@cki_t_2-gettimetick(2)<=0){
  30. if($@wv2$[1]==""&&$@wv2$[2]==""){
  31. delwaitingroom;
  32. waitingroom "[ Wait ]",0;
  33. break;
  34. }
  35. mapannounce "chess01","[Game Over][ "+($@zvn2==1?"[B]":"[R]")+" is winner ]",0;
  36. donpcevent "cchessSystem3::OnEnd";
  37. }
  38. if(!$@cki_t_2){
  39. delwaitingroom;
  40. waitingroom "[ Wait ]",0;
  41. break;
  42. }
  43. sleep(1000);
  44. }
  45. end;
  46. }
  47. - script cchessSystem3 -1,{
  48. OnPCLogoutEvent:
  49. if($@wv2$[1]!=strcharinfo(0)&&$@wv2$[2]!=strcharinfo(0)){end;}
  50. mapannounce "chess01","[Game Over][ "+($@zvn2==1?"[B]":"[R]")+" is winner ]",0;
  51. OnEnd:
  52. set $@cki_t_2,0;
  53. for(set $@q,1;$@q<=8;set $@q,$@q+1){
  54. for(set $@p,1;$@p<=8;set $@p,$@p+1){
  55. donpcevent "Wchess#X"+$@q+"Y"+$@p+"::OnCkiInit";
  56. }
  57. }
  58. set $@q,0;
  59. set $@p,0;
  60. set $@zvn2,0;
  61. setarray $@wv2$[1],"","";
  62. end;
  63. }
  64. - script gchess -1,{
  65. if($@wv2$[$@zvn2]!=strcharinfo(0)){end;}
  66. function dd {
  67. if(@ko){
  68. mapannounce "chess01","[Game Over][ "+(@ko==1?"[R]":"[B]")+" is winner ]",0;
  69. donpcevent "cchessSystem3::OnEnd";
  70. end;
  71. }
  72. set $@zvn2,$@zvn2==1?2:1;
  73. mapannounce "chess01","[System] Now is your turn Player ["+($@zvn2==1?"R":"B")+"].",0;
  74. set $@cki_t_2,gettimetick(2);
  75. setnpctimer 0,"cchessSystem3";
  76. return;
  77. }
  78. function vv {setarray @uv$[1],"","";setarray @uc$[1],"","";set @o,0;set @ul,0;set @spe,0;set @n,0;set @o2,0;set @n2,0;if(getarg(0)==9999){end;}if(getarg(0)==9998){close;}specialeffect getarg(0);end;}
  79. function tt {
  80. for(set @o,1;@o<=8;set @o,@o+1){
  81. for(set @n,1;@n<=8;set @n,@n+1){
  82. if("X"+@o+"Y"+@n==@uc$[1]){set .@ud,1;break;}
  83. }
  84. if(.@ud){set .@ud,0;break;}
  85. }
  86. for(set @o2,1;@o2<=8;set @o2,@o2+1){
  87. for(set @n2,1;@n2<=8;set @n2,@n2+1){
  88. if("X"+@o2+"Y"+@n2==@uc$[2]){set .@ud,1;break;}
  89. }
  90. if(.@ud){set .@ud,0;break;}
  91. }
  92. set .@hjx,atoi(getarg(0));
  93. set .@ol,@o-@o2;
  94. set .@nl,@n-@n2;
  95. set .@jo,.@ol>0?-1:1;
  96. set .@jn,.@nl>0?-1:1;
  97. set .@op,pow(.@ol,2);
  98. set .@np,pow(.@nl,2);
  99. switch(.@hjx){
  100. case 1:
  101. if(.@op==1&&.@np==1||.@op==1&&!.@np||!.@op&&.@np==1){return 1;}
  102. return 2;
  103. case 2:
  104. if(!.@ol&&.@nl){
  105. for(set .@i,1;.@i<=sqrt(.@np)-1;set .@i,.@i+1){
  106. if(getd("$@ffX"+@o+"Y"+(@n+.@i*.@jn))!=723){set .@noh,1;break;}
  107. }
  108. if(!.@noh){return 1;}
  109. }
  110. if(.@ol&&!.@nl){
  111. for(set .@i,1;.@i<=sqrt(.@op)-1;set .@i,.@i+1){
  112. if(getd("$@ffX"+(@o+.@i*.@jo)+"Y"+@n)!=723){set .@noh,1;break;}
  113. }
  114. if(!.@noh){return 1;}
  115. }
  116. if(.@op==.@np&&pow(sqrt(.@np),2)==.@np){
  117. for(set .@i,1;.@i<=sqrt(.@np)-1;set .@i,.@i+1){
  118. if(getd("$@ffX"+(@o+.@i*.@jo)+"Y"+(@n+.@i*.@jn))!=723){set .@noh,1;break;}
  119. }
  120. if(!.@noh){return 1;}
  121. }
  122. return 2;
  123. case 3:
  124. if(.@np&&.@op&&.@op==.@np&&pow(sqrt(.@np),2)==.@np){
  125. for(set .@i,1;.@i<=sqrt(.@np)-1;set .@i,.@i+1){
  126. if(getd("$@ffX"+(@o+.@i*.@jo)+"Y"+(@n+.@i*.@jn))!=723){set .@noh,1;break;}
  127. }
  128. if(!.@noh){return 1;}
  129. }
  130. return 2;
  131. case 4:
  132. if(.@op==4&&.@np==1||.@op==1&&.@np==4)&&(getd("$@ffX"+(@o+2*.@jo)+"Y"+(@n+.@jn))==723||getd("$@ffX"+(@o+.@jo)+"Y"+(@n+2*.@jn))==723){return 1;}
  133. return 2;
  134. case 5:
  135. if(!.@ol&&.@nl){
  136. for(set .@i,1;.@i<=sqrt(.@np)-1;set .@i,.@i+1){
  137. if(getd("$@ffX"+@o+"Y"+(@n+.@i*.@jn))!=723){set .@noh,1;break;}
  138. }
  139. if(!.@noh){return 1;}
  140. }
  141. if(.@ol&&!.@nl){
  142. for(set .@i,1;.@i<=sqrt(.@op)-1;set .@i,.@i+1){
  143. if(getd("$@ffX"+(@o+.@i*.@jo)+"Y"+@n)!=723){set .@noh,1;break;}
  144. }
  145. if(!.@noh){return 1;}
  146. }
  147. return 2;
  148. case 6:
  149. set @ul,1;
  150. if(((@n2==@n+2&&@n==2)||(@n==7&&@n2==@n-2))||((compare(@uv$[1],"[B]")&&@n2==@n+1)||(compare(@uv$[1],"[R]")&&@n2==@n-1)))&&(getd("$@ffX"+@o+"Y"+@n2)==723)&&(!.@ol){return 1;}
  151. if(compare(@uv$[1],"[B]")&&getd("$@ffX"+@o2+"Y"+@n2)!=723&&@n2==@n+1&&(@o2==@o+1||@o2==@o-1))||(compare(@uv$[1],"[R]")&&getd("$@ffX"+@o2+"Y"+@n2)!=723&&@n2==@n-1&&(@o2==@o+1||@o2==@o-1)){return 1;}
  152. if((compare(@uv$[1],"[B]")&&getd("$@ffX"+@o2+"Y"+@n2)!=723&&getd("$@ffX"+@o2+"Y"+(@n2+1))==723&&@n2==@n&&(@o2==@o+1||@o2==@o-1))||(compare(@uv$[1],"[R]")&&getd("$@ffX"+@o2+"Y"+@n2)!=723&&getd("$@ffX"+@o2+"Y"+(@n2-1))==723&&@n2==@n&&(@o2==@o+1||@o2==@o-1))){set @spe,1;return 1;}
  153. return 2;
  154. }
  155. }
  156. if(@uc$[1]==""){
  157. set @uv$[1],strnpcinfo(1);
  158. set @uc$[1],strnpcinfo(2);
  159. if(compare(@uv$[1],"[R]")&&compare(@uk$,"[B]"))||(compare(@uv$[1],"[B]")&&compare(@uk$,"[R]"))||(compare(@uv$[1],"[N]")){vv(9999);}
  160. specialeffect 42;
  161. end;
  162. }else{
  163. set @uv$[2],strnpcinfo(1);
  164. set @uc$[2],strnpcinfo(2);
  165. if(@uv$[2]==@uv$[1]){vv(111);}
  166. }
  167. if(compare(@uv$[1],"[B]")&&compare(@uv$[2],"[B]")||compare(@uv$[1],"[R]")&&compare(@uv$[2],"[R]")){vv(111);}
  168. for(set .@io,1;.@io<=6;set .@io,.@io+1){if(compare(@uv$[1],"]"+.@io)){break;}}
  169. //=================================================================================//
  170. if(atoi(tt(.@io))==2){announce "[System]:You can't go there.",bc_self;vv(111);}
  171. //=================================================================================//
  172. if(getd("$@ffX"+@o2+"Y"+@n2)==2904){
  173. set @ko,1;
  174. }
  175. if(getd("$@ffX"+@o2+"Y"+@n2)==2910){
  176. set @ko,2;
  177. }
  178. setnpcdisplay("Wchess#"+@uc$[1],"[N]#"+@uc$[1],723);
  179. if(@spe){
  180. set .@t$,"X"+@o2+"Y"+(@n2+(compare(@uv$[1],"[B]")?1:-1));
  181. setnpcdisplay("Wchess#"+@uc$[2],"[N]#"+@uc$[2],723);
  182. setnpcdisplay("Wchess#"+.@t$,@uv$[1]+"#"+.@t$,getd("$@ff"+@uc$[1]));
  183. setd "$@ff"+.@t$,getd("$@ff"+@uc$[1]);
  184. setd "$@ff"+@uc$[1],723;
  185. setd "$@ff"+@uc$[2],723;
  186. }else{
  187. setnpcdisplay("Wchess#"+@uc$[2],@uv$[1]+"#"+@uc$[2],getd("$@ff"+@uc$[1]));
  188. setd "$@ff"+@uc$[2],getd("$@ff"+@uc$[1]);
  189. setd "$@ff"+@uc$[1],723;
  190. }
  191. if(@ul)&&(((@n2+1==8||@n2-1==1)&&@spe)||(@n2==8||@n2==1)){
  192. select("[Queen]:[Bishop]:[Knight]:[Rook]");
  193. setarray .@i$[1],"[Queen]","[Bishop]","[Knight]","[Rook]";
  194. setarray .@i1[1],2903,2901,2900,2905;
  195. setarray .@i2[1],2909,2907,2906,2911;
  196. if(!@spe){
  197. setnpcdisplay("Wchess#"+@uc$[2],(compare(@uv$[1],"[B]")?"[B]":"[R]")+.@i$[@menu]+(@menu+1)+"#"+@uc$[2],getd(".@i"+(compare(@uv$[1],"[B]")?1:2)+"["+@menu+"]"));
  198. setd "$@ff"+@uc$[2],getd(".@i"+(compare(@uv$[1],"[B]")?1:2)+"["+@menu+"]");
  199. }else{
  200. setnpcdisplay("Wchess#"+.@t$,(compare(@uv$[1],"[B]")?"[B]":"[R]")+.@i$[@menu]+(@menu+1)+"#"+.@t$,getd(".@i"+(compare(@uv$[1],"[B]")?1:2)+"["+@menu+"]"));
  201. setd "$@ff"+.@t$,getd(".@i"+(compare(@uv$[1],"[B]")?1:2)+"["+@menu+"]");
  202. }
  203. dd();
  204. vv(9998);
  205. }
  206. dd();
  207. vv(9999);
  208. end;
  209. OnCkiInit:
  210. set .@uc$,"X"+$@q+"Y"+$@p;
  211. set .@zd$,"Wchess#"+.@uc$;
  212. OnInit:
  213. if(.@uc$==""){set .@uc$,strnpcinfo(2);}
  214. set .@r$,compare(.@uc$,"Y1")?"[B]":compare(.@uc$,"Y2")?"[B]":compare(.@uc$,"Y8")?"[R]":compare(.@uc$,"Y7")?"[R]":"[N]";
  215. if(.@uc$=="X1Y1"||.@uc$=="X8Y1"){set .@yu,2905;set .@yu$,"[Rook]5";}
  216. if(.@uc$=="X2Y1"||.@uc$=="X7Y1"){set .@yu,2900;set .@yu$,"[Knight]4";}
  217. if(.@uc$=="X3Y1"||.@uc$=="X6Y1"){set .@yu,2901;set .@yu$,"[Bishop]3";}
  218. if(.@uc$=="X4Y1"){set .@yu,2904;set .@yu$,"[King]1";}
  219. if(.@uc$=="X5Y1"){set .@yu,2903;set .@yu$,"[Queen]2";}
  220. if(.@uc$=="X1Y2"||.@uc$=="X2Y2"||.@uc$=="X3Y2"||.@uc$=="X4Y2"||.@uc$=="X5Y2"||.@uc$=="X6Y2"||.@uc$=="X7Y2"||.@uc$=="X8Y2"){set .@yu,2902;set .@yu$,"[Pawn]6";}
  221. if(.@uc$=="X1Y8"||.@uc$=="X8Y8"){set .@yu,2911;set .@yu$,"[Rook]5";}
  222. if(.@uc$=="X2Y8"||.@uc$=="X7Y8"){set .@yu,2906;set .@yu$,"[Knight]4";}
  223. if(.@uc$=="X3Y8"||.@uc$=="X6Y8"){set .@yu,2907;set .@yu$,"[Bishop]3";}
  224. if(.@uc$=="X4Y8"){set .@yu,2910;set .@yu$,"[King]1";}
  225. if(.@uc$=="X5Y8"){set .@yu,2909;set .@yu$,"[Queen]2";}
  226. if(.@uc$=="X1Y7"||.@uc$=="X2Y7"||.@uc$=="X3Y7"||.@uc$=="X4Y7"||.@uc$=="X5Y7"||.@uc$=="X6Y7"||.@uc$=="X7Y7"||.@uc$=="X8Y7"){set .@yu,2908;set .@yu$,"[Pawn]6";}
  227. setnpcdisplay(.@zd$!=""?.@zd$:strnpcinfo(0),.@r$+.@yu$+"#"+.@uc$,.@yu?.@yu:723);
  228. setd "$@ff"+.@uc$,.@yu?.@yu:723;
  229. end;
  230. }
  231. chess01,26,24,4 duplicate(gchess) Wchess#X1Y1 723
  232. chess01,30,24,4 duplicate(gchess) Wchess#X2Y1 723
  233. chess01,34,24,4 duplicate(gchess) Wchess#X3Y1 723
  234. chess01,38,24,4 duplicate(gchess) Wchess#X4Y1 723
  235. chess01,42,24,4 duplicate(gchess) Wchess#X5Y1 723
  236. chess01,46,24,4 duplicate(gchess) Wchess#X6Y1 723
  237. chess01,50,24,4 duplicate(gchess) Wchess#X7Y1 723
  238. chess01,54,24,4 duplicate(gchess) Wchess#X8Y1 723
  239. chess01,26,28,4 duplicate(gchess) Wchess#X1Y2 723
  240. chess01,30,28,4 duplicate(gchess) Wchess#X2Y2 723
  241. chess01,34,28,4 duplicate(gchess) Wchess#X3Y2 723
  242. chess01,38,28,4 duplicate(gchess) Wchess#X4Y2 723
  243. chess01,42,28,4 duplicate(gchess) Wchess#X5Y2 723
  244. chess01,46,28,4 duplicate(gchess) Wchess#X6Y2 723
  245. chess01,50,28,4 duplicate(gchess) Wchess#X7Y2 723
  246. chess01,54,28,4 duplicate(gchess) Wchess#X8Y2 723
  247. chess01,26,32,4 duplicate(gchess) Wchess#X1Y3 723
  248. chess01,30,32,4 duplicate(gchess) Wchess#X2Y3 723
  249. chess01,34,32,4 duplicate(gchess) Wchess#X3Y3 723
  250. chess01,38,32,4 duplicate(gchess) Wchess#X4Y3 723
  251. chess01,42,32,4 duplicate(gchess) Wchess#X5Y3 723
  252. chess01,46,32,4 duplicate(gchess) Wchess#X6Y3 723
  253. chess01,50,32,4 duplicate(gchess) Wchess#X7Y3 723
  254. chess01,54,32,4 duplicate(gchess) Wchess#X8Y3 723
  255. chess01,26,36,4 duplicate(gchess) Wchess#X1Y4 723
  256. chess01,30,36,4 duplicate(gchess) Wchess#X2Y4 723
  257. chess01,34,36,4 duplicate(gchess) Wchess#X3Y4 723
  258. chess01,38,36,4 duplicate(gchess) Wchess#X4Y4 723
  259. chess01,42,36,4 duplicate(gchess) Wchess#X5Y4 723
  260. chess01,46,36,4 duplicate(gchess) Wchess#X6Y4 723
  261. chess01,50,36,4 duplicate(gchess) Wchess#X7Y4 723
  262. chess01,54,36,4 duplicate(gchess) Wchess#X8Y4 723
  263. chess01,26,40,4 duplicate(gchess) Wchess#X1Y5 723
  264. chess01,30,40,4 duplicate(gchess) Wchess#X2Y5 723
  265. chess01,34,40,4 duplicate(gchess) Wchess#X3Y5 723
  266. chess01,38,40,4 duplicate(gchess) Wchess#X4Y5 723
  267. chess01,42,40,4 duplicate(gchess) Wchess#X5Y5 723
  268. chess01,46,40,4 duplicate(gchess) Wchess#X6Y5 723
  269. chess01,50,40,4 duplicate(gchess) Wchess#X7Y5 723
  270. chess01,54,40,4 duplicate(gchess) Wchess#X8Y5 723
  271. chess01,26,44,4 duplicate(gchess) Wchess#X1Y6 723
  272. chess01,30,44,4 duplicate(gchess) Wchess#X2Y6 723
  273. chess01,34,44,4 duplicate(gchess) Wchess#X3Y6 723
  274. chess01,38,44,4 duplicate(gchess) Wchess#X4Y6 723
  275. chess01,42,44,4 duplicate(gchess) Wchess#X5Y6 723
  276. chess01,46,44,4 duplicate(gchess) Wchess#X6Y6 723
  277. chess01,50,44,4 duplicate(gchess) Wchess#X7Y6 723
  278. chess01,54,44,4 duplicate(gchess) Wchess#X8Y6 723
  279. chess01,26,48,4 duplicate(gchess) Wchess#X1Y7 723
  280. chess01,30,48,4 duplicate(gchess) Wchess#X2Y7 723
  281. chess01,34,48,4 duplicate(gchess) Wchess#X3Y7 723
  282. chess01,38,48,4 duplicate(gchess) Wchess#X4Y7 723
  283. chess01,42,48,4 duplicate(gchess) Wchess#X5Y7 723
  284. chess01,46,48,4 duplicate(gchess) Wchess#X6Y7 723
  285. chess01,50,48,4 duplicate(gchess) Wchess#X7Y7 723
  286. chess01,54,48,4 duplicate(gchess) Wchess#X8Y7 723
  287. chess01,26,52,4 duplicate(gchess) Wchess#X1Y8 723
  288. chess01,30,52,4 duplicate(gchess) Wchess#X2Y8 723
  289. chess01,34,52,4 duplicate(gchess) Wchess#X3Y8 723
  290. chess01,38,52,4 duplicate(gchess) Wchess#X4Y8 723
  291. chess01,42,52,4 duplicate(gchess) Wchess#X5Y8 723
  292. chess01,46,52,4 duplicate(gchess) Wchess#X6Y8 723
  293. chess01,50,52,4 duplicate(gchess) Wchess#X7Y8 723
  294. chess01,54,52,4 duplicate(gchess) Wchess#X8Y8 723
Add Comment
Please, Sign In to add comment