messageboards.txt 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433
  1. //===== rAthena Script =======================================
  2. //= Message Man
  3. //===== By: ==================================================
  4. //= Vicious
  5. //===== Current Version: =====================================
  6. //= 1.0
  7. //===== Compatible With: =====================================
  8. //= rAthena SVN
  9. //===== Description: =========================================
  10. //= a message board where you can post and read messages
  11. //===== Additional Comments: =================================
  12. //=
  13. //============================================================
  14. geffen,122,102,4 script Message Man 774,{
  15. mes "[Robert]";
  16. mes "Hello, I am here to serve you. Enjoy my service. ^_-";
  17. next;
  18. mes "[Robert]";
  19. mes "Please keep in mind, that all messages are wiped once every two days";
  20. mes "-Msg From Creator- In new version this will be set able, look forward to this! -End Msg From Creator-";
  21. next;
  22. L_Menu01:
  23. mes "[Robert]";
  24. mes "What would you like to do??";
  25. next;
  26. if((getgmlevel() >= 90)) menu "Public board",L_pubgmmenu,"Gm Board",L_gmmenu,"Close Public Board",L_clospub,"Open Public Board",L_openpub;
  27. if(($messagepubclose == 1)) goto L_pubclosed;
  28. menu "Read messages!",L_readmsg,"Post a message!",L_Postmsg,"Leave",L_leave;
  29. L_pubgmmenu:
  30. if(($messagepubclose == 1)) goto L_pubclosed;
  31. menu "Re-set the rotation",L_setrot,"Reset Message",L_Clearmsgs,"Read messages!",L_readmsg,"Post a message!",L_Postmsg,"Leave",L_leave;
  32. L_gmmenu:
  33. menu "Read messages!",L_gmboardread,"Post a Message!",L_gmboardpost,"Reset Messages",L_gmboardreset;
  34. L_openpub:
  35. mes "[Robert]";
  36. mes "Are you sure?";
  37. menu "Yes",-,"No",L_openpubn;
  38. mes "[Robert]";
  39. mes "It is done.";
  40. close2;
  41. set $messagepubclose,0;
  42. end;
  43. L_openpubn:
  44. mes "[Robert]";
  45. mes "Very well it shall remain closed.";
  46. close;
  47. L_pubclosed:
  48. mes "[Robert]";
  49. mes "Im sorry. The public boards are currently Closed.";
  50. close;
  51. L_clospub:
  52. mes "[Robert]";
  53. mes "Are you sure?";
  54. next;
  55. menu "Yes.",-,"No",L_closepubn;
  56. mes "[Robert]";
  57. mes "Very well I will not allow anyone into the public board.";
  58. close2;
  59. set $messagepubclose,1;
  60. end;
  61. L_closepubn:
  62. mes "[Robert]";
  63. mes "Have a nice day";
  64. close;
  65. L_gmboardreset:
  66. mes "[Robert]";
  67. mes "This will require atleast 2 GM's approval to reset the gm board.";
  68. mes "-Msg From Creator- This is bugged same gm can vote twice. Planned to revise in next version. -End Msg From Creator-";
  69. next;
  70. menu "Vote for reset.",L_gmboardresetvote,"Back to main.",L_Menu01,"Leave.",L_leave;
  71. L_gmboardresetvote:
  72. callfunc "F_gmresetcheck";
  73. set @tempid,getcharid(0);
  74. set $gmboardresetvotenumb,$gmboardresetvotenumb+1;
  75. set $gmboardresetvoted[$gmboardresetvotenumb],1;
  76. set $gmboardresetvoteid[$gmboardresetvotenumb],@tempid;
  77. set @tempid,0;
  78. set $gmboardreset,$gmboardreset-1;
  79. mes "[Robert]";
  80. mes "Thank you.";
  81. next;
  82. if(($gmboardreset == 0)) goto L_gmresetdone;
  83. if(($gmboardreset >= 1)) goto L_gmresetnotdone;
  84. close;
  85. L_gmresetdone:
  86. deletearray $gmmessageboardpost$[1],$gmmessageboardpostnumber;
  87. deletearray $gmmessageboardpostdate$[1],$gmmessageboardpostnumber;
  88. deletearray $gmmessageboardpostname$[1],$gmmessageboardpostnumber;
  89. deletearray $gmmessageboardeditdate$[1],$gmmessageboardpostnumber;
  90. deletearray $gmboardresetvoted[1],$gmboardresetvotenumber;
  91. deletearray $gmboardresetvoted[1],$gmboardresetvotenumber;
  92. deletearray $gmboardresetvoteid[1],$gmboardresetvotenumber;
  93. set $gmboardresetvotenumber,0;
  94. set $gmboardreset,2;
  95. mes "[Robert]";
  96. mes "The reset has been done.";
  97. close;
  98. L_gmresetnotdone:
  99. mes "[Robert]";
  100. mes "There needs to be "+$gmboardreset+" more gm(s) approval to do the reset.";
  101. close;
  102. L_gmboardread:
  103. if(($gmmessageboardpostnumber == 0)) goto L_msgno;
  104. callfunc "F_gmmessage";
  105. end;
  106. L_gmboardpost:
  107. if(($gmmessageboardpostnumber >= 127)) goto L_postmsgyestm;
  108. set @gmmessageboardpostername$,strcharinfo(0);
  109. set @gmmessageboarddate$,gettimestr("%Y-%m/%d %H:%M:%S",21);
  110. set $gmmessageboardpostnumber,$gmmessageboardpostnumber+1;
  111. input @gmmsgboardmsgt$;
  112. set $gmmessageboardpost$[$gmmessageboardpostnumber],@gmmsgboardmsgt$;
  113. set $gmmessageboardpostdate$[$gmmessageboardpostnumber],@gmmessageboarddate$;
  114. set $gmmessageboardpostname$[$gmmessageboardpostnumber],@gmmessageboardpostername$;
  115. mes "[Robert]";
  116. mes "Here is what your message looks like";
  117. next;
  118. mes "Posted by: "+$gmmessageboardpostname$[$gmmessageboardpostnumber]+".";
  119. mes "On: "+$gmmessageboardpostdate$[$gmmessageboardpostnumber]+".";
  120. mes $gmmessageboardpost$[$gmmessageboardpostnumber];
  121. close;
  122. L_setrot:
  123. set $@determinedayrotation,gettime(4); //this determines the day rotation for clearing messages.
  124. if(($@determinedayrotation == 0)) set $rotation,0;
  125. if(($@determinedayrotation == 1)) set $rotation,1;
  126. if(($@determinedayrotation == 2)) set $rotation,0;
  127. if(($@determinedayrotation == 3)) set $rotation,1;
  128. if(($@determinedayrotation == 4)) set $rotation,0;
  129. if(($@determinedayrotation == 5)) set $rotation,1;
  130. if(($@determinedayrotation == 6)) set $rotation,0;
  131. mes "It is done.";
  132. close;
  133. L_Clearmsgs:
  134. mes "[Robert]";
  135. mes "Are you sure?";
  136. next;
  137. menu "Yes",L_clearmsgsy,"No thanks.",L_Menu01;
  138. L_clearmsgsy:
  139. deletearray $messageboardpost$[1],$messageboardpostnumber;
  140. deletearray $messageboardpostdate$[1],$messageboardpostnumber;
  141. deletearray $messageboardpostname$[1],$messageboardpostnumber;
  142. deletearray $messageboardeditdate$[1],$messageboardpostnumber;
  143. deletearray $mymessage[1],$messageboardpostnumber;
  144. set $messageboardpostnumber,0;
  145. mes "[Robert]";
  146. mes "It is done.";
  147. close;
  148. L_leave:
  149. close;
  150. L_Postmsg:
  151. mes "[Robert]";
  152. mes "What do you want to say in your message?";
  153. next;
  154. set @msgboardmsgt$,0;
  155. input @msgboardmsgt$;
  156. mes "[Robert]";
  157. mes "are you sure this is the message you want?";
  158. mes @msgboardmsgt$;
  159. next;
  160. menu "Yes!",L_postmsgyes,"No let me re-do it!",L_Postmsg,"Ive changed my mind let me leave.",lleave;
  161. L_postmsgyes:
  162. if(($messageboardpostnumber >= 127)) goto L_postmsgyestm;
  163. set @messageboardpostername$,strcharinfo(0);
  164. set @messageboarddate$,gettimestr("%Y-%m/%d %H:%M:%S",21);
  165. set $messageboardpostnumber,$messageboardpostnumber+1;
  166. set @mymessage2,$messageboardpostnumber;
  167. set $mymessage[$messageboardpostnumber],5;
  168. set $messageboardpost$[$messageboardpostnumber],@msgboardmsgt$;
  169. set $messageboardpostdate$[$messageboardpostnumber],@messageboarddate$;
  170. set $messageboardpostname$[$messageboardpostnumber],@messageboardpostername$;
  171. mes "[Robert]";
  172. mes "here is what your message looks like";
  173. next;
  174. mes "Posted by: "+$messageboardpostname$[$messageboardpostnumber]+".";
  175. mes "On: "+$messageboardpostdate$[$messageboardpostnumber]+".";
  176. mes $messageboardpost$[$messageboardpostnumber];
  177. close;
  178. L_postmsgyestm:
  179. set @mesboardmsgt$,0;
  180. mes "[Robert]";
  181. mes "Im sorry your going to have to wait till more space opens up for messages, it should be in 1 or 2 days =)";
  182. close;
  183. lleave:
  184. deletearray $messageboardpost$[@tempview],@tempview;
  185. deletearray $messageboardpostname$[@tempview],@tempview;
  186. deletearray $messageboardpostdate$[@tempview],@tempview;
  187. deletearray $mymessage[@tempview],@tempview;
  188. set $messageboardpostnumber,$messageboardpostnumber-1;
  189. set @msgboardmsgt$,0;
  190. close;
  191. L_readmsg:
  192. if(($messageboardpostnumber == 0)) goto L_msgno;
  193. callfunc "F_message";
  194. end;
  195. L_msgno:
  196. mes "[Robert]";
  197. mes "There are currently no messages.";
  198. close;
  199. OnInit:
  200. set $gmboardreset,2;
  201. set $gmboardresetvotenumb,0;
  202. end;
  203. OnInterIfInitOnce:
  204. set $@determinedayrotation,gettime(4); //this determines the day rotation for clearing messages.
  205. if(($@determinedayrotation == 0)) set $rotation,0;
  206. if(($@determinedayrotation == 1)) set $rotation,1;
  207. if(($@determinedayrotation == 2)) set $rotation,0;
  208. if(($@determinedayrotation == 3)) set $rotation,1;
  209. if(($@determinedayrotation == 4)) set $rotation,0;
  210. if(($@determinedayrotation == 5)) set $rotation,1;
  211. if(($@determinedayrotation == 6)) set $rotation,0;
  212. end;
  213. OnSun1200:
  214. if(($rotation == 1)) end;
  215. deletearray $messageboardpost$[1],$messageboardpostnumber;
  216. deletearray $messageboardpostdate$[1],$messageboardpostnumber;
  217. deletearray $messageboardpostname$[1],$messageboardpostnumber;
  218. deletearray $mymessage[1],$messageboardpostnumber;
  219. set $messageboardpostnumber,0;
  220. end;
  221. OnSat1200:
  222. if(($rotation == 0)) end;
  223. deletearray $messageboardpost$[1],$messageboardpostnumber;
  224. deletearray $messageboardpostdate$[1],$messageboardpostnumber;
  225. deletearray $messageboardpostname$[1],$messageboardpostnumber;
  226. deletearray $mymessage[1],$messageboardpostnumber;
  227. set $messageboardpostnumber,0;
  228. end;
  229. OnMon1200:
  230. if(($rotation == 1)) end;
  231. deletearray $messageboardpost$[1],$messageboardpostnumber;
  232. deletearray $messageboardpostdate$[1],$messageboardpostnumber;
  233. deletearray $messageboardpostname$[1],$messageboardpostnumber;
  234. deletearray $mymessage[1],$messageboardpostnumber;
  235. set $messageboardpostnumber,0;
  236. end;
  237. OnTue1200:
  238. if(($rotation == 0)) end;
  239. deletearray $messageboardpost$[1],$messageboardpostnumber;
  240. deletearray $messageboardpostdate$[1],$messageboardpostnumber;
  241. deletearray $messageboardpostname$[1],$messageboardpostnumber;
  242. deletearray $mymessage[1],$messageboardpostnumber;
  243. set $messageboardpostnumber,0;
  244. end;
  245. OnWed1200:
  246. if(($rotation == 1)) end;
  247. deletearray $messageboardpost$[1],$messageboardpostnumber;
  248. deletearray $messageboardpostdate$[1],$messageboardpostnumber;
  249. deletearray $messageboardpostname$[1],$messageboardpostnumber;
  250. deletearray $mymessage[1],$messageboardpostnumber;
  251. set $messageboardpostnumber,0;
  252. end;
  253. OnThu1200:
  254. if(($rotation == 0)) end;
  255. deletearray $messageboardpost$[1],$messageboardpostnumber;
  256. deletearray $messageboardpostdate$[1],$messageboardpostnumber;
  257. deletearray $messageboardpostname$[1],$messageboardpostnumber;
  258. deletearray $mymessage[1],$messageboardpostnumber;
  259. set $messageboardpostnumber,0;
  260. end;
  261. OnFri1200:
  262. if(($rotation == 1)) end;
  263. deletearray $messageboardpost$[1],$messageboardpostnumber;
  264. deletearray $messageboardpostdate$[1],$messageboardpostnumber;
  265. deletearray $messageboardpostname$[1],$messageboardpostnumber;
  266. deletearray $mymessage[@tempview],@tempview;
  267. set $messageboardpostnumber,0;
  268. end;
  269. }
  270. function script F_gmresetcheck {
  271. set @tempcheck,0;
  272. L_top:
  273. set @tempcheck,@tempcheck+1;
  274. if(($gmboardresetvoted[@tempview] == 1)) goto L_votecheck;
  275. if(($gmboardresetvoted[@tempview] == 0)) return;
  276. goto L_top;
  277. end;
  278. L_votecheck:
  279. set @tempcheckid,0;
  280. set @tempcheckid,getcharid(0);
  281. if(($gmboardresetvoteid[@tempview] != @tempcheckid)) goto L_top;
  282. if(($gmboardresetvoteid[@tempview] == @tempcheckid)) goto L_voted;
  283. end;
  284. }
  285. function script F_gmmessage {
  286. set @tempview,0;
  287. L_top:
  288. set @tempview,@tempview+1;
  289. mes "Posted By: "+$gmmessageboardpostname$[@tempview]+".";
  290. mes "On: "+$gmmessageboardpostdate$[@tempview]+".";
  291. mes $gmmessageboardpost$[@tempview]+".";
  292. menu "Next Message",L_top2;
  293. L_top2:
  294. if(($gmmessageboardpostnumber > @tempview)) goto L_top;
  295. close;
  296. }
  297. function script F_message {
  298. set @tempview,0;
  299. L_top:
  300. set @tempview,@tempview+1;
  301. mes "Posted By: "+$messageboardpostname$[@tempview]+".";
  302. mes "On: "+$messageboardpostdate$[@tempview]+".";
  303. mes $messageboardpost$[@tempview]+".";
  304. next;
  305. if(($mymessage[@tempview] == 5) && (getgmlevel()>0)) menu "Next Message",L_top2,"Delete My Message",L_delmy,"Edit my message",L_editmy,"Delete This message",L_Del;
  306. if((getgmlevel()>0)) menu "Next Message",L_top2,"Delete This message",L_Del;
  307. if(($mymessage[@tempview] == 5)) menu "Next Message",L_top2,"Delete My Message",L_delmy,"Edit my message",L_editmy;
  308. menu "Next message",L_top2;
  309. close;
  310. L_editmy:
  311. mes "Are you sure?";
  312. next;
  313. menu "Yes",L_editmyy,"No",L_editmyn;
  314. L_editmyy:
  315. mes "what do you want your new message to be?";
  316. next;
  317. mes "Current message!";
  318. mes $messageboardpost$[@tempview];
  319. set @tempeditmsg$,0;
  320. input @tempeditmsg$;
  321. next;
  322. mes "is this what you want?";
  323. mes @tempeditmsg$;
  324. next;
  325. menu "Yes!",L_editmyyy,"No.",L_editmyyn;
  326. L_editmyyy:
  327. deletearray $messageboardpost$[@tempview],@tempview;
  328. set $messageboardpost$[@tempview],@tempeditmsg$;
  329. mes "Here is what your new message looks like.";
  330. next;
  331. mes "Posted By: "+$messageboardpostname$[@tempview]+".";
  332. mes "On: "+$messageboardpostdate$[@tempview]+".";
  333. mes $messageboardpost$[@tempview]+".";
  334. close2;
  335. set @tempview,0;
  336. end;
  337. L_editmyn:
  338. Mes "So be it.";
  339. set @tempview,0;
  340. close;
  341. L_editmyyn:
  342. mes "So be it!";
  343. set @tempeditmsg$,0;
  344. set @tempview,0;
  345. close;
  346. L_delmy:
  347. mes "Are you sure...?";
  348. next;
  349. menu "Yes",L_delmyy,"No thanks.",L_delmyn;
  350. L_delmyy:
  351. deletearray $messageboardpost$[@tempview],@tempview;
  352. deletearray $messageboardpostname$[@tempview],@tempview;
  353. deletearray $messageboardpostdate$[@tempview],@tempview;
  354. deletearray $mymessage[@tempview],@tempview;
  355. deletearray $messageboardeditdate$[@tempview],@tempview;
  356. set $messageboardpostnumber,$messageboardpostnumber-1;
  357. set @tempview,0;
  358. mes "It is done.";
  359. close;
  360. L_delmyn:
  361. mes "Come back soon.";
  362. set @tempview,0;
  363. close;
  364. L_top2:
  365. if(($messageboardpostnumber > @tempview)) goto L_top;
  366. close;
  367. L_Del:
  368. mes "Are you sure?";
  369. next;
  370. menu "Yes",L_Dely,"No",L_Deln;
  371. L_Dely:
  372. deletearray $messageboardpost$[@tempview],@tempview;
  373. deletearray $messageboardpostname$[@tempview],@tempview;
  374. deletearray $messageboardpostdate$[@tempview],@tempview;
  375. deletearray $mymessage[@tempview],@tempview;
  376. deletearray $messageboardeditdate$[@tempview],@tempview;
  377. set $messageboardpostnumber,$messageboardpostnumber-1;
  378. mes "It is done.";
  379. set @tempview,0;
  380. close;
  381. L_Deln:
  382. mes "Come back soon!";
  383. set @tempview,0;
  384. close;
  385. }