shadowvzs

Untitled

Dec 1st, 2023
171
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MySQL 24.96 KB | None | 0 0
  1. SET FOREIGN_KEY_CHECKS=0;
  2.  
  3. -- ----------------------------
  4. -- Table structure for auth
  5. -- ----------------------------
  6. DROP TABLE IF EXISTS `auth`;
  7. CREATE TABLE `auth` (
  8.   `userid` int(11) NOT NULL DEFAULT '0',
  9.   `zoneid` int(11) NOT NULL DEFAULT '0',
  10.   `rid` int(11) NOT NULL DEFAULT '0',
  11.   PRIMARY KEY (`userid`,`zoneid`,`rid`)
  12. ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
  13.  
  14. -- ----------------------------
  15. -- Table structure for forbid
  16. -- ----------------------------
  17. DROP TABLE IF EXISTS `forbid`;
  18. CREATE TABLE `forbid` (
  19.   `userid` int(11) NOT NULL DEFAULT '0',
  20.   `type` int(11) NOT NULL DEFAULT '0',
  21.   `ctime` datetime NOT NULL,
  22.   `forbid_time` int(11) NOT NULL DEFAULT '0',
  23.   `reason` blob NOT NULL,
  24.   `gmroleid` int(11) DEFAULT '0',
  25.   PRIMARY KEY (`userid`,`type`)
  26. ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
  27.  
  28. -- ----------------------------
  29. -- Table structure for iplimit
  30. -- ----------------------------
  31. DROP TABLE IF EXISTS `iplimit`;
  32. CREATE TABLE `iplimit` (
  33.   `uid` int(11) NOT NULL DEFAULT '0',
  34.   `ipaddr1` int(11) DEFAULT '0',
  35.   `ipmask1` varchar(2) DEFAULT '',
  36.   `ipaddr2` int(11) DEFAULT '0',
  37.   `ipmask2` varchar(2) DEFAULT '',
  38.   `ipaddr3` int(11) DEFAULT '0',
  39.   `ipmask3` varchar(2) DEFAULT '',
  40.   `enable` char(1) DEFAULT '',
  41.   `lockstatus` char(1) DEFAULT '',
  42.   PRIMARY KEY (`uid`)
  43. ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
  44.  
  45. -- ----------------------------
  46. -- Table structure for online
  47. -- ----------------------------
  48. DROP TABLE IF EXISTS `online`;
  49. CREATE TABLE `online` (
  50.   `ID` int(11) DEFAULT NULL
  51. ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
  52.  
  53. -- ----------------------------
  54. -- Table structure for point
  55. -- ----------------------------
  56. DROP TABLE IF EXISTS `point`;
  57. CREATE TABLE `point` (
  58.   `uid` int(11) NOT NULL DEFAULT '0',
  59.   `aid` int(11) NOT NULL DEFAULT '0',
  60.   `time` int(11) NOT NULL DEFAULT '0',
  61.   `zoneid` int(11) DEFAULT '0',
  62.   `zonelocalid` int(11) DEFAULT '0',
  63.   `accountstart` datetime DEFAULT NULL,
  64.   `lastlogin` datetime DEFAULT NULL,
  65.   `enddate` datetime DEFAULT NULL,
  66.   PRIMARY KEY (`uid`,`aid`),
  67.   KEY `IX_point_aidzoneid` (`aid`,`zoneid`) USING BTREE
  68. ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
  69.  
  70. -- ----------------------------
  71. -- Table structure for usecashlog
  72. -- ----------------------------
  73. DROP TABLE IF EXISTS `usecashlog`;
  74. CREATE TABLE `usecashlog` (
  75.   `userid` int(11) NOT NULL DEFAULT '0',
  76.   `zoneid` int(11) NOT NULL DEFAULT '0',
  77.   `sn` int(11) NOT NULL DEFAULT '0',
  78.   `aid` int(11) NOT NULL DEFAULT '0',
  79.   `point` int(11) NOT NULL DEFAULT '0',
  80.   `cash` int(11) NOT NULL DEFAULT '0',
  81.   `status` int(11) NOT NULL DEFAULT '0',
  82.   `creatime` datetime NOT NULL,
  83.   `fintime` datetime NOT NULL,
  84.   PRIMARY KEY (`userid`,`sn`,`creatime`,`fintime`),
  85.   KEY `IX_usecashlog_creatime` (`creatime`) USING BTREE,
  86.   KEY `IX_usecashlog_uzs` (`userid`,`zoneid`,`sn`) USING BTREE
  87. ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
  88.  
  89. -- ----------------------------
  90. -- Table structure for usecashnow
  91. -- ----------------------------
  92. DROP TABLE IF EXISTS `usecashnow`;
  93. CREATE TABLE `usecashnow` (
  94.   `userid` int(11) NOT NULL DEFAULT '0',
  95.   `zoneid` int(11) NOT NULL DEFAULT '0',
  96.   `sn` int(11) NOT NULL DEFAULT '0',
  97.   `aid` int(11) NOT NULL DEFAULT '1',
  98.   `point` int(11) NOT NULL DEFAULT '0',
  99.   `cash` int(11) NOT NULL DEFAULT '0',
  100.   `status` int(11) NOT NULL DEFAULT '1',
  101.   `creatime` datetime NOT NULL,
  102.   PRIMARY KEY (`userid`,`zoneid`,`sn`),
  103.   KEY `IX_usecashnow_creatime` (`creatime`) USING BTREE,
  104.   KEY `IX_usecashnow_status` (`status`) USING BTREE
  105. ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
  106.  
  107.  
  108. DROP TABLE IF EXISTS `files`;
  109. CREATE TABLE IF NOT EXISTS `files` (
  110.     `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  111.     `added` int(11) NOT NULL,
  112.     `size` bigint(20) NOT NULL,
  113.     `revision` int(4) NOT NULL,
  114.     `md5` varchar(32) NOT NULL,
  115.     `type` enum('element','launcher','patcher') NOT NULL DEFAULT 'element',
  116.     `folder` varchar(1024) NOT NULL,
  117.     `folder_base64` varchar(1024) NOT NULL,
  118.     `file` varchar(512) NOT NULL,
  119.     `file_base64` varchar(512) NOT NULL,
  120.     PRIMARY KEY (`id`)
  121. ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
  122.  
  123. -- ----------------------------
  124. -- Table structure for users
  125. -- ----------------------------
  126. DROP TABLE IF EXISTS `users`;
  127. CREATE TABLE `users` (
  128.   `ID` int(11) NOT NULL DEFAULT '0',
  129.   `name` varchar(32) NOT NULL DEFAULT '',
  130.   `passwd` VARBINARY(64) NOT NULL,
  131.   `Prompt` varchar(32) NOT NULL DEFAULT '',
  132.   `answer` varchar(32) NOT NULL DEFAULT '',
  133.   `truename` varchar(32) NOT NULL DEFAULT '',
  134.   `idnumber` varchar(32) NOT NULL DEFAULT '',
  135.   `email` varchar(64) NOT NULL DEFAULT '',
  136.   `mobilenumber` varchar(32) DEFAULT '',
  137.   `province` varchar(32) DEFAULT '',
  138.   `city` varchar(32) DEFAULT '',
  139.   `phonenumber` varchar(32) DEFAULT '',
  140.   `address` varchar(64) DEFAULT '',
  141.   `postalcode` varchar(8) DEFAULT '',
  142.   `gender` int(11) DEFAULT '0',
  143.   `birthday` datetime DEFAULT NULL,
  144.   `creatime` datetime NOT NULL,
  145.   `qq` varchar(32) DEFAULT '',
  146.   `passwd2` VARBINARY(64) DEFAULT NULL,
  147.   `mudev` varchar(32) NOT NULL DEFAULT '',
  148.   `mmotop` varchar(32) NOT NULL DEFAULT '',
  149.   `avatar` varchar(255) DEFAULT NULL DEFAULT '',
  150.   PRIMARY KEY (`ID`),
  151.   UNIQUE KEY `IX_users_name` (`name`) USING BTREE,
  152.   KEY `IX_users_creatime` (`creatime`) USING BTREE
  153. ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
  154.  
  155. DROP TABLE IF EXISTS `files`;
  156. CREATE TABLE IF NOT EXISTS `files` (
  157.     `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  158.     `added` int(11) NOT NULL,
  159.     `size` bigint(20) NOT NULL,
  160.     `revision` int(4) NOT NULL,
  161.     `md5` varchar(32) NOT NULL,
  162.     `type` enum('element','launcher','patcher') NOT NULL DEFAULT 'element',
  163.     `folder` varchar(1024) NOT NULL,
  164.     `folder_base64` varchar(1024) NOT NULL,
  165.     `file` varchar(512) NOT NULL,
  166.     `file_base64` varchar(512) NOT NULL,
  167.     PRIMARY KEY (`id`)
  168. ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
  169.  
  170. -- ----------------------------
  171. -- Table structure for characters
  172. -- ----------------------------
  173.  
  174. DROP TABLE IF EXISTS `roles`;
  175. CREATE TABLE IF NOT EXISTS `roles` (
  176.   `account_id` int(11) NOT NULL,
  177.   `role_id` int(11) NOT NULL,
  178.   `role_name` varchar(64) NOT NULL,
  179.   `role_level` smallint(6) NOT NULL,
  180.   `role_race` tinyint(4) NOT NULL,
  181.   `role_occupation` tinyint(4) NOT NULL,
  182.   `role_gender` tinyint(4) NOT NULL,
  183.   `role_spouse` int(11) NOT NULL,
  184.   `faction_id` int(11) NOT NULL,
  185.   `faction_name` varchar(64) NOT NULL,
  186.   `faction_level` int(11) NOT NULL,
  187.   `faction_domains` varchar(132) NOT NULL,
  188.   `role_faction_rank` int(11) NOT NULL,
  189.   `pvp_time` int(11) NOT NULL,
  190.   `pvp_kills` int(11) NOT NULL,
  191.   `pvp_deads` int(11) NOT NULL
  192. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  193.  
  194. DROP TABLE IF EXISTS `uwebplayers`;
  195. CREATE TABLE IF NOT EXISTS `uwebplayers` (
  196.   `roleid` int(11) NOT NULL,
  197.   `rolename` varchar(50) DEFAULT NULL,
  198.   `rolelevel` int(11) DEFAULT NULL,
  199.   `rolestatus` int(11) DEFAULT NULL,
  200.   `rolegender` int(11) DEFAULT NULL,
  201.   `roleprof` bigint(20) DEFAULT NULL,
  202.   `rolerep` bigint(20) DEFAULT NULL,
  203.   `redname` bigint(20) DEFAULT NULL,
  204.   `rednametime` bigint(20) DEFAULT NULL,
  205.   `pinknametime` bigint(20) DEFAULT NULL,
  206.   PRIMARY KEY (`roleid`)
  207. ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
  208.  
  209. -- ----------------------------
  210. -- Procedure structure for acquireuserpasswd
  211. -- ----------------------------
  212. DROP PROCEDURE IF EXISTS `acquireuserpasswd`;
  213. DELIMITER ;;
  214. CREATE DEFINER=`root`@`localhost` PROCEDURE `acquireuserpasswd`(in name1 VARCHAR(64), out uid1 INTEGER, out passwd1 VARBINARY(64))
  215. BEGIN
  216.   DECLARE passwdtemp VARBINARY(64);
  217.   START TRANSACTION;
  218.     SELECT id, passwd INTO uid1, passwdtemp FROM users WHERE name = name1;
  219.     SELECT fn_varbintohexsubstring(1,passwdtemp,1,0) INTO passwd1;
  220.   COMMIT;
  221. END
  222. ;;
  223. DELIMITER ;
  224.  
  225. -- ----------------------------
  226. -- Procedure structure for addForbid
  227. -- ----------------------------
  228. DROP PROCEDURE IF EXISTS `addForbid`;
  229. DELIMITER ;;
  230. CREATE DEFINER=`root`@`localhost` PROCEDURE `addForbid`(in userid1 INTEGER, in type1 INTEGER, in forbid_time1 INTEGER, in reason1 BINARY(255), in gmroleid1 INTEGER)
  231. BEGIN
  232.  DECLARE rowcount INTEGER;
  233.   START TRANSACTION;
  234.     UPDATE forbid SET ctime = now(), forbid_time = forbid_time1, reason = reason1, gmroleid = gmroleid1 WHERE userid = userid1 AND type = type1;
  235.     SET rowcount = ROW_COUNT();
  236.     IF rowcount = 0 THEN
  237.       INSERT INTO forbid VALUES(userid1, type1, now(), forbid_time1, reason1, gmroleid);
  238.     END IF;
  239.   COMMIT;
  240. END
  241. ;;
  242. DELIMITER ;
  243.  
  244. -- ----------------------------
  245. -- Procedure structure for addGM
  246. -- ----------------------------
  247. DROP PROCEDURE IF EXISTS `addGM`;
  248. DELIMITER ;;
  249. CREATE DEFINER=`root`@`localhost` PROCEDURE `addGM`(in userid INTEGER, in zoneid INTEGER)
  250. BEGIN
  251.   DECLARE x INTEGER;
  252.   START TRANSACTION;
  253.     SET x = 0;
  254.     WHILE x < 12 DO
  255.       INSERT INTO auth VALUES (userid, zoneid, x);
  256.       SET x = x + 1;
  257.     END WHILE;
  258.     SET x = 100;
  259.     WHILE x < 106 DO
  260.       INSERT INTO auth VALUES (userid, zoneid, x);
  261.       SET x = x + 1;
  262.     END WHILE;
  263.     SET x = 200;
  264.     WHILE x < 215 DO
  265.       INSERT INTO auth VALUES (userid, zoneid, x);
  266.       SET x = x + 1;
  267.     END WHILE;
  268.     SET x = 500;
  269.     WHILE x < 519 DO
  270.       INSERT INTO auth VALUES (userid, zoneid, x);
  271.       SET x = x + 1;
  272.     END WHILE;
  273.   COMMIT;
  274. END
  275. ;;
  276. DELIMITER ;
  277.  
  278. -- ----------------------------
  279. -- Procedure structure for adduser
  280. -- ----------------------------
  281. DROP PROCEDURE IF EXISTS `adduser`;
  282. DELIMITER ;;
  283. CREATE DEFINER=`root`@`localhost` PROCEDURE `adduser`(
  284.   in name1 VARCHAR(64),
  285.   in passwd1 VARBINARY(64),
  286.   in prompt1 VARCHAR(32),
  287.   in answer1 VARCHAR(32),
  288.   in truename1 VARCHAR(32),
  289.   in idnumber1 VARCHAR(32),
  290.   in email1 VARCHAR(32),
  291.   in mobilenumber1 VARCHAR(32),
  292.   in province1 VARCHAR(32),
  293.   in city1 VARCHAR(32),
  294.   in phonenumber1 VARCHAR(32),
  295.   in address1 VARCHAR(64),
  296.   in postalcode1 VARCHAR(8),
  297.   in gender1 INTEGER,
  298.   in birthday1 VARCHAR(32),
  299.   in qq1 VARCHAR(32),
  300.   in passwd21 VARBINARY(64)
  301. )
  302. BEGIN
  303.   DECLARE idtemp INTEGER;
  304.     SELECT IFNULL(MAX(id), 16) + 16 INTO idtemp FROM users;
  305.     INSERT INTO users (id,name,passwd,prompt,answer,truename,idnumber,email,mobilenumber,province,city,phonenumber,address,postalcode,gender,birthday,creatime,qq,passwd2) VALUES( idtemp, name1, passwd1, prompt1, answer1, truename1, idnumber1, email1, mobilenumber1, province1, city1, phonenumber1, address1, postalcode1, gender1, birthday1, now(), qq1, passwd21 );
  306. END
  307. ;;
  308. DELIMITER ;
  309.  
  310. -- ----------------------------
  311. -- Procedure structure for adduserpoint
  312. -- ----------------------------
  313. DROP PROCEDURE IF EXISTS `adduserpoint`;
  314. DELIMITER ;;
  315. CREATE DEFINER=`root`@`localhost` PROCEDURE `adduserpoint`(in uid1 INTEGER, in aid1 INTEGER, in time1 INTEGER)
  316. BEGIN
  317.  DECLARE rowcount INTEGER;
  318.  START TRANSACTION;
  319.     UPDATE point SET time = IFNULL(time,0) + time1 WHERE uid1 = uid AND aid1 = aid;
  320.     SET rowcount = ROW_COUNT();
  321.     IF rowcount = 0 THEN
  322.       INSERT INTO point (uid,aid,time) VALUES (uid1,aid1,time1);
  323.     END IF;
  324.   COMMIT;
  325. END
  326. ;;
  327. DELIMITER ;
  328.  
  329. -- ----------------------------
  330. -- Procedure structure for addUserPriv
  331. -- ----------------------------
  332. DROP PROCEDURE IF EXISTS `addUserPriv`;
  333. DELIMITER ;;
  334. CREATE DEFINER=`root`@`localhost` PROCEDURE `addUserPriv`(in userid INTEGER, in zoneid INTEGER, in rid INTEGER)
  335. BEGIN
  336.   START TRANSACTION;
  337.     INSERT INTO auth VALUES(userid, zoneid, rid);
  338.   COMMIT;
  339. END
  340. ;;
  341. DELIMITER ;
  342.  
  343. -- ----------------------------
  344. -- Procedure structure for changePasswd
  345. -- ----------------------------
  346. DROP PROCEDURE IF EXISTS `changePasswd`;
  347. DELIMITER ;;
  348. CREATE DEFINER=`root`@`localhost` PROCEDURE `changePasswd`(in name1 VARCHAR(64), in passwd1 VARBINARY(64))
  349. BEGIN
  350.   START TRANSACTION;
  351.     UPDATE users SET passwd = passwd1 WHERE name = name1;
  352.   COMMIT;
  353. END
  354. ;;
  355. DELIMITER ;
  356.  
  357. -- ----------------------------
  358. -- Procedure structure for changePasswd2
  359. -- ----------------------------
  360. DROP PROCEDURE IF EXISTS `changePasswd2`;
  361. DELIMITER ;;
  362. CREATE DEFINER=`root`@`localhost` PROCEDURE `changePasswd2`(in name1 VARCHAR(64), in passwd21 VARBINARY(64))
  363. BEGIN
  364.   START TRANSACTION;
  365.     UPDATE users SET passwd2 = passwd21 WHERE name = name1;
  366.   COMMIT;
  367. END
  368. ;;
  369. DELIMITER ;
  370.  
  371. -- ----------------------------
  372. -- Procedure structure for clearonlinerecords
  373. -- ----------------------------
  374. DROP PROCEDURE IF EXISTS `clearonlinerecords`;
  375. DELIMITER ;;
  376. CREATE DEFINER=`root`@`localhost` PROCEDURE `clearonlinerecords`(in zoneid1 INTEGER, in aid1 INTEGER)
  377. BEGIN
  378.   START TRANSACTION;
  379.     UPDATE point SET zoneid = NULL, zonelocalid = NULL WHERE aid = aid1 AND zoneid = zoneid1;
  380.     DELETE FROM online;
  381.   COMMIT;
  382. END
  383. ;;
  384. DELIMITER ;
  385.  
  386. -- ----------------------------
  387. -- Procedure structure for deleteTimeoutForbid
  388. -- ----------------------------
  389. DROP PROCEDURE IF EXISTS `deleteTimeoutForbid`;
  390. DELIMITER ;;
  391. CREATE DEFINER=`root`@`localhost` PROCEDURE `deleteTimeoutForbid`(in userid1 INTEGER)
  392. BEGIN
  393.   START TRANSACTION;
  394.     DELETE FROM forbid WHERE userid = userid1 AND timestampdiff(second, ctime, now()) > forbid_time;
  395.   COMMIT;
  396. END
  397. ;;
  398. DELIMITER ;
  399.  
  400. -- ----------------------------
  401. -- Procedure structure for delGM
  402. -- ----------------------------
  403. DROP PROCEDURE IF EXISTS `delGM`;
  404. DELIMITER ;;
  405. CREATE DEFINER=`root`@`localhost` PROCEDURE `delGM`(in userid1 INTEGER)
  406. BEGIN
  407.   START TRANSACTION;
  408.       DELETE FROM auth WHERE userid = userid1;
  409.   COMMIT;
  410. END
  411. ;;
  412. DELIMITER ;
  413.  
  414. -- ----------------------------
  415. -- Procedure structure for delUserPriv
  416. -- ----------------------------
  417. DROP PROCEDURE IF EXISTS `delUserPriv`;
  418. DELIMITER ;;
  419. CREATE DEFINER=`root`@`localhost` PROCEDURE `delUserPriv`(in userid1 INTEGER, in zoneid1 INTEGER, in rid1 INTEGER, in deltype1 INTEGER)
  420. BEGIN
  421. START TRANSACTION;
  422.   IF deltype1 = 0 THEN
  423.     DELETE FROM auth WHERE userid = userid1 AND zoneid = zoneid1 AND rid = rid1;
  424.   ELSE
  425.     IF deltype1 = 1 THEN
  426.       DELETE FROM auth WHERE userid = userid1 AND zoneid = zoneid1;
  427.     ELSE
  428.       IF deltype1 = 2 THEN
  429.         DELETE FROM auth WHERE userid = userid1;
  430.       END IF;
  431.     END IF;
  432.   END IF;
  433. COMMIT;
  434. END
  435. ;;
  436. DELIMITER ;
  437.  
  438. -- ----------------------------
  439. -- Procedure structure for enableiplimit
  440. -- ----------------------------
  441. DROP PROCEDURE IF EXISTS `enableiplimit`;
  442. DELIMITER ;;
  443. CREATE DEFINER=`root`@`localhost` PROCEDURE `enableiplimit`(in uid1 INTEGER, in enable1 CHAR(1))
  444. BEGIN
  445.   DECLARE rowcount INTEGER;
  446.   START TRANSACTION;
  447.   UPDATE iplimit SET enable=enable1 WHERE uid=uid1;
  448.   SET rowcount = ROW_COUNT();
  449.   IF rowcount = 0 THEN
  450.     INSERT INTO iplimit (uid,enable) VALUES (uid1,enable1);
  451.   END IF;
  452.   COMMIT;
  453. END
  454. ;;
  455. DELIMITER ;
  456.  
  457. -- ----------------------------
  458. -- Procedure structure for lockuser
  459. -- ----------------------------
  460. DROP PROCEDURE IF EXISTS `lockuser`;
  461. DELIMITER ;;
  462. CREATE DEFINER=`root`@`localhost` PROCEDURE `lockuser`(in uid1 INTEGER, in lockstatus1 CHAR(1))
  463. BEGIN
  464.   DECLARE rowcount INTEGER;
  465.   START TRANSACTION;
  466.   UPDATE iplimit SET lockstatus=lockstatus1 WHERE uid=uid1;
  467.   SET rowcount = ROW_COUNT();
  468.   IF rowcount = 0 THEN
  469.     INSERT INTO iplimit (uid,lockstatus,enable) VALUES (uid1,lockstatus1,'t');
  470.   END IF;
  471.   COMMIT;
  472. END
  473. ;;
  474. DELIMITER ;
  475.  
  476. -- ----------------------------
  477. -- Procedure structure for recordoffline
  478. -- ----------------------------
  479. DROP PROCEDURE IF EXISTS `recordoffline`;
  480. DELIMITER ;;
  481. CREATE DEFINER=`root`@`localhost` PROCEDURE `recordoffline`(in uid1 INTEGER, in aid1 INTEGER, inout zoneid1 INTEGER, inout zonelocalid1 INTEGER, inout overwrite1 INTEGER)
  482. BEGIN
  483.   DECLARE rowcount INTEGER;
  484.   START TRANSACTION;
  485.     UPDATE point SET zoneid = NULL, zonelocalid = NULL WHERE uid = uid1 AND aid = aid1 AND zoneid = zoneid1;
  486.     DELETE FROM online WHERE ID = uid1;
  487.     SET rowcount = ROW_COUNT();
  488.     IF overwrite1 = rowcount THEN
  489.       SELECT zoneid, zonelocalid INTO zoneid1, zonelocalid1 FROM point WHERE uid = uid1 AND aid = aid1;
  490.     END IF;
  491.   COMMIT;
  492. END
  493. ;;
  494. DELIMITER ;
  495.  
  496. -- ----------------------------
  497. -- Procedure structure for recordonline
  498. -- ----------------------------
  499. DROP PROCEDURE IF EXISTS `recordonline`;
  500. DELIMITER ;;
  501. CREATE DEFINER=`root`@`localhost` PROCEDURE `recordonline`(in uid1 INTEGER, in aid1 INTEGER, inout zoneid1 INTEGER, inout zonelocalid1 INTEGER, inout overwrite INTEGER)
  502. BEGIN
  503.   DECLARE tmp_zoneid INTEGER;
  504.   DECLARE tmp_zonelocalid INTEGER;
  505.   DECLARE rowcount INTEGER;
  506.   START TRANSACTION;
  507.     SELECT SQL_CALC_FOUND_ROWS zoneid, zonelocalid INTO tmp_zoneid, tmp_zonelocalid FROM point WHERE uid = uid1 and aid = aid1;
  508.     INSERT INTO online (ID) VALUES (uid1);
  509.     SET rowcount = FOUND_ROWS();
  510.     IF rowcount = 0 THEN
  511.       INSERT INTO point (uid, aid, time, zoneid, zonelocalid, lastlogin) VALUES (uid1, aid1, 0, zoneid1, zonelocalid1, now());
  512.     ELSE IF tmp_zoneid IS NULL OR overwrite = 1 THEN
  513.       UPDATE point SET zoneid = zoneid1, zonelocalid = zonelocalid1, lastlogin = now() WHERE uid = uid1 AND aid = aid1;
  514.     END IF;
  515.     END IF;
  516.     IF tmp_zoneid IS NULL THEN
  517.       SET overwrite = 1;
  518.     ELSE
  519.       SET zoneid1 = tmp_zoneid;
  520.       SET zonelocalid1 = tmp_zonelocalid;
  521.     END IF;
  522.   COMMIT;
  523. END
  524. ;;
  525. DELIMITER ;
  526.  
  527. -- ----------------------------
  528. -- Procedure structure for remaintime
  529. -- ----------------------------
  530. DROP PROCEDURE IF EXISTS `remaintime`;
  531. DELIMITER ;;
  532. CREATE DEFINER=`root`@`localhost` PROCEDURE `remaintime`(in uid1 INTEGER, in aid1 INTEGER, out remain INTEGER, out freetimeleft INTEGER)
  533. BEGIN
  534.   DECLARE enddate1 DATETIME;
  535.   DECLARE now1 DATETIME;
  536.   DECLARE rowcount INTEGER;
  537.   START TRANSACTION;
  538.   SET now1 = now();
  539.   IF aid1 = 0 THEN
  540.     SET remain = 86313600;
  541.     SET enddate1 = date_add(now1, INTERVAL '30' DAY);
  542.   ELSE
  543.     SELECT time, IFNULL(enddate, now1) INTO remain, enddate1 FROM point WHERE uid = uid1 AND aid = aid1;
  544.     SET rowcount = ROW_COUNT();
  545.     IF rowcount = 0 THEN
  546.       SET remain = 0;
  547.       INSERT INTO point (uid,aid,time) VALUES (uid1, aid1, remain);
  548.     END IF;
  549.   END IF;
  550.   SET freetimeleft = 0;
  551.   IF enddate1 > now1 THEN
  552.     SET freetimeleft = timestampdiff(second, now1, enddate1);
  553.   END IF;
  554.   COMMIT;
  555. END
  556. ;;
  557. DELIMITER ;
  558.  
  559. -- ----------------------------
  560. -- Procedure structure for setiplimit
  561. -- ----------------------------
  562. DROP PROCEDURE IF EXISTS `setiplimit`;
  563. DELIMITER ;;
  564. CREATE DEFINER=`root`@`localhost` PROCEDURE `setiplimit`(in uid1 INTEGER, in ipaddr11 INTEGER, in ipmask11 VARCHAR(2), in ipaddr21 INTEGER, in ipmask21 VARCHAR(2), in ipaddr31 INTEGER, in ipmask31 VARCHAR(2), in enable1 CHAR(1))
  565. BEGIN
  566.   DECLARE rowcount INTEGER;
  567.   START TRANSACTION;
  568.     UPDATE iplimit SET ipaddr1 = ipaddr11, ipmask1 = ipmask11, ipaddr2 = ipaddr21, ipmask2 = ipmask21, ipaddr3 = ipaddr31, ipmask3 = ipmask31 WHERE uid = uid1;
  569.     SET rowcount = ROW_COUNT();
  570.     IF rowcount = 0 THEN
  571.       INSERT INTO iplimit (uid, ipaddr1, ipmask1, ipaddr2, ipmask2, ipaddr3, ipmask3, enable1) VALUES (uid1, ipaddr11, ipmask11, ipaddr21, ipmask21, ipaddr31, ipmask31,'t');
  572.     END IF;
  573.   COMMIT;
  574. END
  575. ;;
  576. DELIMITER ;
  577.  
  578. -- ----------------------------
  579. -- Procedure structure for updateUserInfo
  580. -- ----------------------------
  581. DROP PROCEDURE IF EXISTS `updateUserInfo`;
  582. DELIMITER ;;
  583. CREATE DEFINER=`root`@`localhost` PROCEDURE `updateUserInfo`(
  584.   in name1 VARCHAR(32),
  585.   in prompt1 VARCHAR(32),
  586.   in answer1 VARCHAR(32),
  587.   in truename1 VARCHAR(32),
  588.   in idnumber1 VARCHAR(32),
  589.   in email1 VARCHAR(32),
  590.   in mobilenumber1 VARCHAR(32),
  591.   in province1 VARCHAR(32),
  592.   in city1 VARCHAR(32),
  593.   in phonenumber1 VARCHAR(32),
  594.   in address1 VARCHAR(32),
  595.   in postalcode1 VARCHAR(32),
  596.   in gender1 INTEGER,
  597.   in birthday1 VARCHAR(32),
  598.   in qq1 VARCHAR(32)
  599.  )
  600. BEGIN
  601.   START TRANSACTION;
  602.     UPDATE users SET prompt = prompt1, answer = answer1, truename = truename1, idnumber = idnumber1, email = email1, mobilenumber = mobilenumber1, province = province1, city = city1, phonenumber = phonenumber1, address = address1, postalcode = postalcode1, gender = gender1, birthday = birthda1, qq = qq1 WHERE name = name1;
  603.   COMMIT;
  604. END
  605. ;;
  606. DELIMITER ;
  607.  
  608. -- ----------------------------
  609. -- Procedure structure for usecash
  610. -- ----------------------------
  611. DROP PROCEDURE IF EXISTS `usecash`;
  612. DELIMITER ;;
  613. CREATE DEFINER=`root`@`localhost` PROCEDURE `usecash`(
  614.   in userid1 INTEGER,
  615.   in zoneid1 INTEGER,
  616.   in sn1 INTEGER,
  617.   in aid1 INTEGER,
  618.   in point1 INTEGER,
  619.   in cash1 INTEGER,
  620.   in status1 INTEGER,
  621.   out error INTEGER
  622. )
  623. BEGIN
  624. DECLARE sn_old INTEGER;
  625. DECLARE aid_old INTEGER;
  626. DECLARE point_old INTEGER;
  627. DECLARE cash_old INTEGER;
  628. DECLARE status_old INTEGER;
  629. DECLARE createtime_old DATETIME;
  630. DECLARE time_old INTEGER;
  631. DECLARE need_restore INTEGER;
  632. DECLARE exists1 INTEGER;
  633. DECLARE rowcount INTEGER;
  634. START TRANSACTION;
  635.   SET error = 0;
  636.   SET need_restore = 0;
  637.   SELECT SQL_CALC_FOUND_ROWS sn, aid, point, cash, status, creatime INTO sn_old, aid_old, point_old, cash_old, status_old, createtime_old FROM usecashnow WHERE userid = userid1 AND zoneid = zoneid1 AND sn >= 0;
  638.   SET rowcount = FOUND_ROWS();
  639.   IF rowcount = 1 THEN
  640.     SET exists1 = 1;
  641.   ELSE
  642.     SET exists1 = 0;
  643.   END IF;
  644.   IF status1 = 0 THEN
  645.     IF exists1 = 0 THEN
  646.       SELECT aid, point INTO aid1, point1 FROM usecashnow WHERE userid = userid1 AND zoneid = zoneid1 AND sn = sn1;
  647.       SET point1 = IFNULL(point1,0);
  648.       UPDATE point SET time = time-point1 WHERE uid = userid1 AND aid = aid1 AND time >= point1;
  649.       SET rowcount = ROW_COUNT();
  650.       IF rowcount = 1 THEN
  651.         UPDATE usecashnow SET sn = 0, status = 1 WHERE userid = userid1 AND zoneid = zoneid1 AND sn = sn1;
  652.       ELSE
  653.         SET error = -8;
  654.       END IF;
  655.     END IF;
  656.   ELSE
  657.     IF status1 = 1 THEN
  658.       IF exists1 = 0 THEN
  659.         UPDATE point SET time = time-point1 WHERE uid = userid1 AND aid = aid1 AND time >= point1;
  660.         SET rowcount = ROW_COUNT();
  661.         IF rowcount = 1 THEN
  662.           INSERT INTO usecashnow (userid, zoneid, sn, aid, point, cash, status, creatime) VALUES (userid1, zoneid1, sn1, aid1, point1, cash1, status1, now());
  663.         ELSE
  664.           INSERT INTO usecashnow SELECT userid1, zoneid1, IFNULL(min(sn),0)-1, aid1, point1, cash1, 0, now() FROM usecashnow WHERE userid = userid1 AND zoneid = zoneid1 AND 0 >= sn;
  665.           SET error = -8;
  666.         END IF;
  667.       ELSE
  668.         INSERT INTO usecashnow SELECT userid1, zoneid1, IFNULL(min(sn),0)-1, aid1, point1, cash1, 0, now() FROM usecashnow WHERE userid = userid1 AND zoneid = zoneid1 AND 0 >= sn;
  669.         SET error = -7;
  670.       END IF;
  671.     ELSE
  672.       IF status1 = 2 THEN
  673.         IF exists1 = 1 AND status_old = 1 AND sn_old = 0 THEN
  674.           UPDATE usecashnow SET sn = sn1, status = status1 WHERE userid = userid1 AND zoneid = zoneid1 AND sn = sn_old;
  675.         ELSE
  676.           SET error = -9;
  677.         END IF;
  678.       ELSE
  679.         IF status1 = 3 THEN
  680.            IF exists1 = 1 AND status_old = 2 THEN
  681.             UPDATE usecashnow SET status = status1 WHERE userid = userid1 AND zoneid = zoneid1 AND sn = sn_old;
  682.            ELSE
  683.             SET error = -10;
  684.             END IF;
  685.         ELSE
  686.          IF status1 = 4 THEN
  687.           IF exists1 = 1 THEN
  688.             DELETE FROM usecashnow WHERE userid = userid1 AND zoneid = zoneid1 AND sn = sn_old;
  689.             INSERT INTO usecashlog (userid, zoneid, sn, aid, point, cash, status, creatime, fintime) VALUES (userid1, zoneid1, sn_old, aid_old, point_old, cash_old, status1, createtime_old, now());
  690.           END IF;
  691.           IF NOT (exists1 = 1 AND status_old = 3) THEN
  692.             SET error = -11;
  693.           END IF;
  694.         ELSE
  695.           SET error = -12;
  696.         END IF;
  697.       END IF;
  698.     END IF;
  699.   END IF;
  700.   END IF;
  701.   IF need_restore = 1 THEN
  702.     UPDATE point SET time = time+point_old WHERE uid = userid1 AND aid = aid_old;
  703.     DELETE FROM usecashnow WHERE userid = userid1 AND zoneid = zoneid1 AND sn = sn_old;
  704.     INSERT INTO usecashlog (userid, zoneid, sn, aid, point, cash, status, creatime, fintime) VALUES (userid1, zoneid1, sn_old, aid_old, point_old, cash_old, status1, createtime_old, now());
  705.   END IF;
  706. COMMIT;
  707. END
  708. ;;
  709. DELIMITER ;
  710.  
  711. -- ----------------------------
  712. -- Function structure for fn_varbintohexsubstring
  713. -- ----------------------------
  714. DROP FUNCTION IF EXISTS `fn_varbintohexsubstring`;
  715. DELIMITER ;;
  716. CREATE DEFINER=`root`@`localhost` FUNCTION `fn_varbintohexsubstring`(fsetprefix bit,pbinin varbinary(8000),startoffset int,cbytesin int) RETURNS varchar(4000) CHARSET latin1
  717.     READS SQL DATA
  718. BEGIN
  719.   DECLARE pstrout VARCHAR(4000);
  720.   DECLARE i int;
  721.   DECLARE firstnibble int;
  722.   DECLARE secondnibble int;
  723.   DECLARE tempint int;
  724.   DECLARE hexstring char( 16);
  725.   BEGIN
  726.     IF( pbinin IS NOT NULL) THEN
  727.       SET i= 0, cbytesin= CASE WHEN( cbytesin> 0) THEN cbytesin ELSE LENGTH( pbinin) END,
  728.          pstrout= CASE WHEN( fsetprefix= 1) THEN '0x'  ELSE ''  END,
  729.          hexstring= '0123456789abcdef';
  730.       IF((( cbytesin * 2) + 2> 4000) or( startoffset< 1)) THEN
  731.         RETURN NULL;
  732.       END IF;
  733.       WHILE( i< cbytesin) DO
  734.         SET tempint= ASCII( substring( pbinin, i + startoffset, 1));
  735.         SET firstnibble= TRUNCATE((tempint / 16),0);
  736.         SET secondnibble= tempint % 16;
  737.         SET pstrout= CONCAT(pstrout ,cast( substring( hexstring,( firstnibble+1), 1) AS CHAR), cast( substring( hexstring,( secondnibble+1), 1) AS CHAR));
  738.         SET i= i + 1;
  739.       END WHILE;
  740.       RETURN pstrout;
  741.     END IF;
  742.     RETURN NULL;
  743.   END;
  744. END
  745. ;;
  746. DELIMITER ;
  747.  
Add Comment
Please, Sign In to add comment