yuhsing

Untitled

Sep 4th, 2013
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.44 KB | None | 0 0
  1. /*
  2.  
  3. CREATE TABLE IF NOT EXISTS `gm_reward` (
  4. `id` int(11) NOT NULL auto_increment,
  5. `gm_account_id` int(11) NOT NULL default '0',
  6. `gm_name` varchar(30) NOT NULL default '',
  7. `nameid` int(11) NOT NULL default '0',
  8. `amount` int(11) unsigned NOT NULL default '0',
  9. `refine` tinyint(3) unsigned NOT NULL default '0',
  10. `card0` smallint(11) NOT NULL default '0',
  11. `card1` smallint(11) NOT NULL default '0',
  12. `card2` smallint(11) NOT NULL default '0',
  13. `card3` smallint(11) NOT NULL default '0',
  14. `reward_time` datetime NOT NULL default '0000-00-00 00:00:00',
  15. `status` tinyint(1) NOT NULL default '0',
  16. `claim_name` varchar(30) NOT NULL DEFAULT '',
  17. `claim_time` datetime NOT NULL default '0000-00-00 00:00:00',
  18. PRIMARY KEY (`id`)
  19. ) ENGINE=MyISAM;
  20.  
  21. */
  22.  
  23.  
  24.  
  25. prontera,155,181,5 script Reward NPC 757,{
  26. set .@gm_level,getgmlevel();
  27.  
  28. mes "Pick an Option.";
  29. next;
  30. switch( select(
  31. "Claim Reward",
  32. ( .@gm_level < .gm_level )?"":"[GM] Give Reward",
  33. ( .@gm_level < .gm_level )?"":"[GM] Delete Reward"
  34. )){
  35. Case 1:
  36. query_sql( "SELECT * FROM `gm_reward` WHERE `claim_name` = '"+escape_sql( strcharinfo(0) )+"' AND `status` = 0 ORDER BY `id` DESC LIMIT 50 ",.@id,.@gm_acc_id,.@gm_name$,.@nameid,.@amount,.@refine,.@card0,.@card1,.@card2,.@card3,.@reward_time$,.@status,.@claim_name$,.@claim_time$ );
  37. set .@size,getarraysize( .@id );
  38. if( .@size ){
  39. while( .@i < .@size ){
  40. set .@itemtype,getiteminfo( .@nameid[.@i],2 );
  41. set .@menu$,.@menu$ + .@amount[.@i] +" x " +( ( .@refine[.@i] )?"+"+.@refine[.@i]:"" )+" "+ getitemname( .@nameid[.@i] );
  42. if( .@itemtype == 4 || .@itemtype == 5 )
  43. set .@menu$,.@menu$ + "["+getitemslots( .@nameid[.@i] )+"]";
  44. set .@menu$,.@menu$ + ":";
  45. set .@i,.@i + 1;
  46. }
  47. mes "Pick a Reward...";
  48. set .@i,select( .@menu$ ) - 1;
  49. set .@itemtype,getiteminfo( .@nameid[.@i],2 );
  50. if( .@itemtype == 4 || .@itemtype == 5 )
  51. set .@slot,getitemslots( .@nameid[.@i] );
  52. mes "Reward ID: ^777777#"+.@id[.@i]+"^000000";
  53. mes "Reward by: ^777777"+.@gm_name$[.@i]+"^000000";
  54. mes "Time: ^777777"+.@reward_time$[.@i]+"^000000";
  55. mes "Item: ^777777"+.@amount[.@i]+" x "+( ( .@refine[.@i] && ( .@itemtype == 4 || .@itemtype == 5 ) )?"+"+.@refine[.@i]:" " )+getitemname( .@nameid[.@i] )+" "+( ( .@itemtype == 4 || .@itemtype == 5 )? "["+.@slot+"]":"" )+"^000000";
  56. for( set .@card,0; .@card < 4; set .@card,.@card + 1 ){
  57. set .@cardid,getd( ".@card"+.@card+"["+.@i+"]" );
  58. if( .@cardid )
  59. mes "^777777 > "+getitemname( .@cardid )+"^000000";
  60. }
  61. if( select( "Claim it","Cancel" ) == 1 ){
  62. if( !checkweight( .@nameid[.@i],.@amount[.@i] ) ){
  63. mes "You cant carry it since you will overweight.";
  64. }else{
  65. mes "Done, reward claimed.";
  66. query_sql( "UPDATE `gm_reward` SET `status` = 1,`claim_time` = NOW() WHERE `id`="+.@id[.@i] );
  67. getitem2 .@nameid[.@i],.@amount[.@i],1,.@refine[.@i],0,.@card0[.@i],.@card1[.@i],.@card2[.@i],.@card3[.@i];
  68. }
  69. }
  70. }else{
  71. mes "You dont have any pending rewards.";
  72. }
  73. break;
  74. Case 2:
  75. mes "Enter Item ID";
  76. do{
  77. input .@nameid,0,32767;
  78. if( !.@nameid ) close;
  79. }while( getitemname( .@nameid ) == "null" );
  80. set .@itemtype,getiteminfo( .@nameid,2 );
  81. if( .@itemtype == 4 || .@itemtype == 5 ){
  82. set .@slot,getitemslots( .@nameid );
  83. mes "Enter Refine ";
  84. input .@refine,0,10;
  85. mes "This item have "+.@slot+" slot";
  86. if( .@slot ){
  87. mes "Enter Card 1 ~ "+.@slot+" ID";
  88. for( set .@i,0; .@i < .@slot; set .@i,.@i + 1 ){
  89. do{
  90. input .@card[.@i];
  91. if( !.@card[.@i] ) break;
  92. }while( .@card[.@i] < 4001 || .@card[.@i] > 4555 );
  93. mes " Card "+( .@i+1 )+" : "+( ( .@card[.@i] )? getitemname( .@card[.@i] ):"none" );
  94. }
  95. }
  96. }
  97. mes "Enter Amount";
  98. input .@amount,0,30000;
  99. if( .@nameid && .@amount ){
  100. mes "Enter Player Name";
  101. input .@player$;
  102. next;
  103. mes "Reward : ";
  104. mes "^777777"+.@amount+" x "+( ( .@refine && ( .@itemtype == 4 || .@itemtype == 5 ) )?"+"+.@refine:" " )+getitemname( .@nameid )+" "+( ( .@itemtype == 4 || .@itemtype == 5 )? "["+.@slot+"]":"" )+"^000000";
  105. if( .@slot ){
  106. mes "Card List :";
  107. for( set .@i,0; .@i < .@slot; set .@i,.@i + 1 )
  108. mes "^777777 > "+( ( .@card[.@i] )? getitemname( .@card[.@i] ):"none" )+"^000000";
  109. }
  110. mes " ";
  111. mes "By: ^777777"+strcharinfo(0)+"^000000";
  112. mes "Player: ^777777"+.@player$+"^000000";
  113. if( select( "Confirm","Cancel" ) == 1 ){
  114. mes "Reward Added Succesfully.";
  115. query_sql( "INSERT INTO `gm_reward` ( `gm_account_id`,`gm_name`,`nameid`,`amount`,`refine`,`card0`,`card1`,`card2`,`card3`,`reward_time`,`claim_name` ) VALUES ( "+getcharid(3)+",'"+escape_sql( strcharinfo(0) )+"',"+.@nameid+","+.@amount+","+.@refine+","+.@card[0]+","+.@card[1]+","+.@card[2]+","+.@card[3]+",NOW(),'"+escape_sql( .@player$ )+"' )" );
  116. }
  117. }
  118. break;
  119. Case 3:
  120. query_sql( "SELECT * FROM `gm_reward` WHERE `status` = 0 ORDER BY `id` DESC LIMIT 50 ",.@id,.@gm_acc_id,.@gm_name$,.@nameid,.@amount,.@refine,.@card0,.@card1,.@card2,.@card3,.@reward_time$,.@status,.@claim_name$,.@claim_time$ );
  121. set .@size,getarraysize( .@id );
  122. if( .@size ){
  123. while( .@i < .@size ){
  124. set .@itemtype,getiteminfo( .@nameid[.@i],2 );
  125. set .@menu$,.@menu$ + .@amount[.@i] +" x " +( ( .@refine[.@i] )?"+"+.@refine[.@i]:"" )+" "+ getitemname( .@nameid[.@i] );
  126. if( .@itemtype == 4 || .@itemtype == 5 )
  127. set .@menu$,.@menu$ + "["+getitemslots( .@nameid[.@i] )+"]";
  128. set .@menu$,.@menu$ + "by ^0055FF"+.@gm_name$+"^000000" + ":";
  129. set .@i,.@i + 1;
  130. }
  131. set .@i,select ( .@menu$ ) - 1;
  132. set .@itemtype,getiteminfo( .@nameid[.@i],2 );
  133. if( .@itemtype == 4 || .@itemtype == 5 )
  134. set .@slot,getitemslots( .@nameid[.@i] );
  135. mes "Reward ID: ^777777#"+.@id[.@i]+"^000000";
  136. mes "Receiver : ^777777"+.@claim_name$[.@i]+"^000000";
  137. mes "Reward by: ^777777"+.@gm_name$[.@i]+"^000000";
  138. mes "Time: ^777777"+.@claim_time$[.@i]+"^000000";
  139. mes "Item: ^777777"+.@amount[.@i]+" x "+( ( .@refine[.@i] && ( .@itemtype == 4 || .@itemtype == 5 ) )?"+"+.@refine[.@i]:" " )+getitemname( .@nameid[.@i] )+" "+( ( .@itemtype == 4 || .@itemtype == 5 )? "["+.@slot+"]":"" )+"^000000";
  140. for( set .@card,0; .@card < 4; set .@card,.@card + 1 ){
  141. set .@cardid,getd( ".@card"+.@card+"["+.@i+"]" );
  142. if( .@cardid )
  143. mes " ^777777> "+getitemname( .@cardid )+"^000000";
  144. }
  145. }else{
  146. mes "Dont have any un-claimed rewards.";
  147. }
  148. default: break;
  149. }
  150. close;
  151.  
  152. OnInit:
  153. set .gm_level,90;
  154. end;
  155. }
Advertisement
Add Comment
Please, Sign In to add comment