Emistry

E-Inquiry v1

Apr 30th, 2012
348
0
Never
1
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.88 KB | None | 0 0
  1. // Load the following SQL Table in your Server before use the NPC
  2.  
  3. /*
  4.  
  5. CREATE TABLE IF NOT EXISTS `E-Inquiry` (
  6. `ID` bigint(20) unsigned NOT NULL auto_increment,
  7. `Sender_ID` int(11) unsigned NOT NULL default '0',
  8. `Sender_Name` varchar(30) NOT NULL default '',
  9. `Title` text,
  10. `Message` text,
  11. `Status` tinyint(2) NOT NULL default '0',
  12. `Inquiry_Time` datetime NOT NULL default '0000-00-00 00:00:00',
  13. `Reply` text,
  14. `Reply_Time` datetime NOT NULL default '0000-00-00 00:00:00',
  15. `Reply_Name` varchar(30) NOT NULL default '',
  16. PRIMARY KEY (`ID`)
  17. ) ENGINE=MyISAM;
  18.  
  19. */
  20.  
  21. - script E-Inquiry -1,{
  22.  
  23. OnStartMenu:
  24. mes "Do you having problems and wish to inform GM Staffs about this ?";
  25. next;
  26. switch( select( "View Messages",
  27. "Write Messages",
  28. ( getgmlevel() < .GMLevel )?"":"^FF0000[ GM ]^000000 Manage Messages" )){
  29.  
  30. Case 1:
  31. do{
  32. mes "What types of Messages you would like to View ?";
  33. for( set .@i,0; .@i < 3; set .@i,.@i + 1 )
  34. set .@Found[.@i],query_sql("SELECT `ID` FROM `E-Inquiry` WHERE `Status` = "+.@i+" AND `Sender_ID`='"+getcharid(3)+"'",.@ID );
  35.  
  36. set .@Msg,select("^FF0000Un-Replied Messanges [ ^FF0000"+.@Found[0]+"^000000 ]",
  37. "^0000FFReplied Messages^000000 [ ^FF0000"+.@Found[1]+"^000000 ]",
  38. "Archieved Messages [ ^FF0000"+.@Found[2]+"^000000 ]" ) - 1;
  39. set .@Replied,query_sql(" SELECT `ID`,`Title`,`Message`,`Inquiry_Time`,`Reply`,`Reply_Time`,`Reply_Name` FROM `E-Inquiry` WHERE `Status`= "+.@Msg+" AND `Sender_ID`='"+getcharid(3)+"' ",.@ID, .@Title$,.@Message$,.@Time$,.@Reply$,.@ReplyTime$,.@ReplyName$ );
  40. if( !.@Replied ){
  41. mes "You didnt have Messages to read.";
  42. next;
  43. }else{
  44. set .@Menu$,"";
  45. for( set .@i,0; .@i < .@Replied; set .@i,.@i + 1 )
  46. set .@Menu$,.@Menu$ + "^FF0000[ "+( .@i+1 )+". ]^0000FF "+.@Title$[.@i]+":";
  47. next;
  48. set .@Select,select( .@Menu$ ) - 1;
  49. mes "^00FF00____________________________^000000";
  50. mes "^FF0000Date :^000000 : "+.@Time$[.@Select];
  51. mes "^FF0000Title^000000 : "+.@Title$[.@Select];
  52. mes "^00FF00____________________________^000000";
  53. mes "^FF0000Messages^000000 : "+.@Message$[.@Select];
  54. mes "^00FF00____________________________^000000";
  55. if( .@Msg > 0 ){
  56. mes "^0000FFReply from ^FF0000"+.@ReplyName$[.@Select]+" ^000000 : "+.@Reply$[.@Select];
  57. mes "^00FF00____________________________^000000";
  58. mes "^0000FFTime ^000000 : "+.@ReplyTime$[.@Select];
  59. }
  60. next;
  61. set .@MsgOpt1,select("View Other Messages",( .@Msg == 1 )?"Move to Archieve":"","Delete Message" );
  62. switch( .@MsgOpt1 ){
  63. Case 2:
  64. query_sql("UPDATE `E-Inquiry` SET `Status` = 2 WHERE `ID` = "+.@ID[.@Select]+" ");
  65. mes "Message has been moved to Archieve.";
  66. break;
  67. Case 3:
  68. query_sql("DELETE FROM `E-Inquiry` WHERE `ID` = "+.@ID[.@Select]+" ");
  69. mes "Message has been DELETED.";
  70. break;
  71. default:
  72. break;
  73. }
  74. }
  75. }while( .@MsgOpt1 < 3 );
  76. break;
  77.  
  78. Case 2:
  79. mes "^00FF00____________________________^000000";
  80. mes "^FF0000NOTES :^000000 All the Messages will be recorded for future references, so please do not abuse this. Otherwise action will be taken on you";
  81. do{
  82. next;
  83. mes "^00FF00____________________________^000000";
  84. mes "^FF0000Title^000000 : "+.@Title$;
  85. mes "^00FF00____________________________^000000";
  86. mes "^FF0000Messages^000000 : "+.@Message$;
  87. mes "^00FF00____________________________^000000";
  88.  
  89. next;
  90. set .@Select,select(( .@Title$ == "" )?"[ ^FF0000Incomplete^000000 ] Title":"[ ^0000FFCompleted^000000 ] Title",
  91. ( .@Message$ == "" )?"[ ^FF0000Incomplete^000000 ] Message":"[^0000FFCompleted^000000 ] Title",
  92. ( .@Title$ == "" || .@Message$ == "" )?"":"^FF0000SEND MESSAGE^000000" );
  93.  
  94. switch( .@Select ){
  95. Case 1:
  96. mes "Enter a Title for your Problems";
  97. input .@Title$;
  98. break;
  99. Case 2:
  100. mes "Briefly explain what's your Problem";
  101. set .@i,0;
  102. do{
  103. input getd(".@Message"+.@i+"$");
  104. set .@Message$,.@Message$ + getd(".@Message"+.@i+"$")+" ";
  105. set .@Continue,select("Complete:Continue Messages");
  106. }while( .@Continue == 2 );
  107. break;
  108. default:
  109. mes "Your message has been sent.";
  110. query_sql( "INSERT INTO `E-Inquiry` ( `Sender_ID`,`Sender_Name`,`Title`,`Message`,`Status`,`Inquiry_Time` ) VALUES ( "+getcharid(3)+",'"+escape_sql(strcharinfo(0))+"','"+escape_sql(.@Title$)+"','"+escape_sql(.@Message$)+"',0,'"+gettimestr("%Y-%m-%d %H:%M:%S",21)+"' ) ");
  111. break;
  112. }
  113. }while( .@Select != 3 );
  114. break;
  115.  
  116. Case 3:
  117. do{
  118. mes "Alright, what next ?";
  119. next;
  120. for( set .@i,0; .@i < 3; set .@i,.@i + 1 )
  121. set .@Found[.@i],query_sql("SELECT `ID` FROM `E-Inquiry` WHERE `Status` = "+.@i+"",.@ID );
  122.  
  123. set .@Types,select("^FF0000View All Unread Messanges [ ^FF0000"+.@Found[0]+"^000000 ]",
  124. "View All Replied Messages^000000 [ ^FF0000"+.@Found[1]+"^000000 ]",
  125. "View All Archieved Messages [ ^FF0000"+.@Found[2]+"^000000 ]" ) - 1;
  126.  
  127. set .@ManageMSG,query_sql(" SELECT `ID`,`Sender_Name`,`Title`,`Message`,`Inquiry_Time`,`Reply`,`Reply_Time`,`Reply_Name` FROM `E-Inquiry` WHERE `Status`= "+.@Types+" LIMIT 127",.@ID,.@Sender$, .@Title$,.@Message$,.@Time$,.@Reply$,.@ReplyTime$,.@ReplyName$ );
  128. if( !.@ManageMSG ){
  129. mes "You didnt have Messages to read.";
  130. next;
  131. }else{
  132. set .@Menu$,"";
  133. for( set .@i,0; .@i < .@ManageMSG; set .@i,.@i + 1 )
  134. set .@Menu$,.@Menu$ +"^FF0000[ "+( .@i+1 )+". ]^0000FF "+.@Title$[.@i]+":";
  135. next;
  136. set .@Select,select( .@Menu$ ) - 1;
  137. mes "^00FF00____________________________^000000";
  138. mes "^FF0000Date :^000000 : "+.@Time$[.@Select];
  139. mes "^FF0000Aurthor :^000000 : "+.@Sender$[.@Select];
  140. mes "^FF0000Title^000000 : "+.@Title$[.@Select];
  141. mes "^00FF00____________________________^000000";
  142. mes "^FF0000Messages^000000 : "+.@Message$[.@Select];
  143. mes "^00FF00____________________________^000000";
  144. if( .@Types > 0 ){
  145. mes "^0000FFReply from ^FF0000"+.@ReplyName$[.@Select]+" ^000000 : "+.@Reply$[.@Select];
  146. mes "^00FF00____________________________^000000";
  147. mes "^0000FFTIme ^000000 : "+.@ReplyTime$[.@Select];
  148. }
  149. next;
  150. set .@MsgOpt1,select( ( .@Types == 2 )?"":"Reply Message","View Other Messages","Delete Message" );
  151. switch( .@MsgOpt1 ){
  152. Case 1:
  153. set .@i,0;
  154. do{
  155. input getd(".@Reply"+.@i+"$");
  156. set .@Reply$,.@Reply$ + getd(".@Reply"+.@i+"$")+" ";
  157. set .@Continue,select("Complete:Continue Messages");
  158. }while( .@Continue == 2 );
  159.  
  160. query_sql("UPDATE `E-Inquiry` SET `Status` = 1,`Reply`='"+escape_sql(.@Reply$)+"',`Reply_Name`='"+escape_sql(strcharinfo(0))+"',`Reply_Time`='"+gettimestr("%Y-%m-%d %H:%M:%S",21)+"' WHERE `ID` = "+.@ID[.@Select]+" ");
  161. message strcharinfo(0),"Reply has been sent.";
  162. break;
  163. Case 3:
  164. query_sql("DELETE FROM `E-Inquiry` WHERE `ID` = "+.@ID[.@Select]+" ");
  165. mes "Message has been Deleted.";
  166. default:
  167. break;
  168. }
  169. }
  170. }while( .@MsgOpt1 != 1 );
  171. break;
  172. }
  173. close;
  174.  
  175. OnInit:
  176. // Min. GM Level to Read / Manage Messages.
  177. set .GMLevel,80;
  178. end;
  179.  
  180. OnPCLoginEvent:
  181. if( getgmlevel() < .GMLevel ){
  182. set .@Replied,query_sql("SELECT `ID` FROM `E-Inquiry` WHERE `Status` = 1 AND `Sender_ID`='"+getcharid(3)+"'",.@ID );
  183. if( .@Replied )
  184. message strcharinfo(0),"You have "+.@Replied+" Replied Messages from GM Team.";
  185. }else{
  186. set .@Unread,query_sql("SELECT `ID` FROM `E-Inquiry` WHERE `Status` = 0 ",.@ID );
  187. if( .@Unread )
  188. message strcharinfo(0),"GM Team received "+.@Unread+" New Message from Players.";
  189. }
  190. if( .@Replied || .@Unread ){
  191. if( select("Read the Messages:Cancel") == 2 ) close;
  192. goto OnStartMenu;
  193. }
  194. end;
  195.  
  196. }
  197.  
  198. // Main NPC
  199. prontera,151,186,5 script E-Inquiry#Main 757,{
  200. doevent "E-Inquiry::OnStartMenu";
  201. }
  202.  
  203. // Duplicates NPC
  204. prontera,155,181,5 duplicate(E-Inquiry#Main) E-Inquiry#1 757
  205. prontera,155,182,5 duplicate(E-Inquiry#Main) E-Inquiry#2 757
  206. prontera,155,183,5 duplicate(E-Inquiry#Main) E-Inquiry#3 757
Advertisement
Comments
  • User was banned
Add Comment
Please, Sign In to add comment