Advertisement
Guest User

Lin2 world

a guest
Mar 19th, 2013
184
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 438.72 KB | None | 0 0
  1. USE [lin2world]
  2. GO
  3.  
  4. CREATE TABLE [dbo].[account_ch2] (
  5.   [account] VARCHAR(50) COLLATE Korean_Wansung_CI_AS NOT NULL
  6. )
  7. ON [PRIMARY]
  8. GO
  9.  
  10. CREATE TABLE [dbo].[agit] (
  11.   [id] INT NOT NULL,
  12.   [name] nvarchar(50) COLLATE Korean_Wansung_CI_AS NOT NULL,
  13.   [pledge_id] INT DEFAULT 0 NULL,
  14.   [auction_price] INT DEFAULT 0 NULL,
  15.   [auction_date] INT DEFAULT 0 NULL,
  16.   [hp_stove] tinyint DEFAULT 0 NULL,
  17.   [mp_flame] tinyint DEFAULT 0 NULL,
  18.   [hatcher] tinyint DEFAULT 0 NULL,
  19.   [hp_stove_expire] INT DEFAULT 0 NULL,
  20.   [mp_flame_expire] INT DEFAULT 0 NULL,
  21.   [STATUS] tinyint DEFAULT 2 NULL,
  22.   [next_war_time] INT DEFAULT 0 NULL,
  23.   [auction_id] INT NULL,
  24.   [last_price] INT NULL,
  25.   [last_cancel] INT NULL,
  26.   [teleport_level] INT DEFAULT 0 NULL,
  27.   [teleport_expire] INT DEFAULT 0 NULL,
  28.   [next_cost] INT NULL,
  29.   [cost_fail] INT NULL,
  30.   [tax_rate] INT DEFAULT 0 NOT NULL,
  31.   [shop_income] INT DEFAULT 0 NOT NULL,
  32.   [tax_rate_to_change] SMALLINT DEFAULT (-1) NOT NULL,
  33.   [tax_child_rate] SMALLINT DEFAULT 0 NOT NULL,
  34.   [tax_child_rate_to_change] SMALLINT DEFAULT (-1) NOT NULL,
  35.   [shop_income_temp] INT DEFAULT 0 NOT NULL,
  36.   [team_battle_status] INT NULL
  37. )
  38. ON [PRIMARY]
  39. GO
  40.  
  41. CREATE TABLE [dbo].[agit_adena] (
  42.   [agit_id] INT NULL,
  43.   [pledge_id] INT NULL,
  44.   [auction_id] INT NULL,
  45.   [reason] INT NULL,
  46.   [adena] INT NULL,
  47.   [log_id] INT IDENTITY(1, 1) NOT NULL
  48. )
  49. ON [PRIMARY]
  50. GO
  51.  
  52. CREATE TABLE [dbo].[agit_auction] (
  53.   [agit_id] INT NULL,
  54.   [auction_id] INT IDENTITY(1, 1) NOT NULL,
  55.   [auction_desc] nvarchar(200) COLLATE Korean_Wansung_CI_AS NULL,
  56.   [min_price] INT NULL,
  57.   [accepted_bid] INT NULL,
  58.   [auction_time] INT NULL,
  59.   [auction_tax] INT NULL
  60. )
  61. ON [PRIMARY]
  62. GO
  63.  
  64. CREATE TABLE [dbo].[agit_bid] (
  65.   [auction_id] INT NULL,
  66.   [attend_id] INT IDENTITY(1, 1) NOT NULL,
  67.   [attend_price] INT NULL,
  68.   [attend_pledge_id] INT NULL,
  69.   [attend_date] datetime DEFAULT getdate() NULL,
  70.   [attend_time] INT NULL
  71. )
  72. ON [PRIMARY]
  73. GO
  74.  
  75. CREATE TABLE [dbo].[agit_deco] (
  76.   [agit_id] INT NOT NULL,
  77.   [TYPE] INT NOT NULL,
  78.   [id] INT NOT NULL,
  79.   [name] VARCHAR(256) COLLATE Korean_Wansung_CI_AS NULL,
  80.   [level] INT NULL,
  81.   [expire] INT NULL
  82. )
  83. ON [PRIMARY]
  84. GO
  85.  
  86. CREATE TABLE [dbo].[Alliance] (
  87.   [id] INT IDENTITY(1, 1) NOT NULL,
  88.   [name] nvarchar(50) COLLATE Korean_Wansung_CI_AS NOT NULL,
  89.   [master_pledge_id] INT DEFAULT 0 NOT NULL,
  90.   [oust_time] INT DEFAULT 0 NOT NULL,
  91.   [crest_id] INT DEFAULT 0 NOT NULL
  92. )
  93. ON [PRIMARY]
  94. GO
  95.  
  96. CREATE TABLE [dbo].[bookmark] (
  97.   [char_id] INT NOT NULL,
  98.   [name] nvarchar(50) COLLATE Korean_Wansung_CI_AS NOT NULL,
  99.   [world] INT NULL,
  100.   [x] INT NULL,
  101.   [y] INT NULL,
  102.   [z] INT NULL,
  103.   [bookmarkid] INT IDENTITY(1, 1) NOT NULL
  104. )
  105. ON [PRIMARY]
  106. GO
  107.  
  108. CREATE TABLE [dbo].[builder_account] (
  109.   [account_name] nvarchar(50) COLLATE Korean_Wansung_CI_AS NOT NULL,
  110.   [default_builder] INT DEFAULT 0 NOT NULL,
  111.   [account_id] INT DEFAULT 0 NOT NULL
  112. )
  113. ON [PRIMARY]
  114. GO
  115.  
  116. CREATE TABLE [dbo].[castle] (
  117.   [id] INT NOT NULL,
  118.   [name] nvarchar(50) COLLATE Korean_Wansung_CI_AS NOT NULL,
  119.   [pledge_id] INT DEFAULT 0 NOT NULL,
  120.   [next_war_time] INT DEFAULT 0 NOT NULL,
  121.   [tax_rate] SMALLINT DEFAULT 0 NOT NULL,
  122.   [TYPE] tinyint DEFAULT 1 NOT NULL,
  123.   [STATUS] tinyint DEFAULT 0 NOT NULL,
  124.   [crop_income] INT DEFAULT 0 NOT NULL,
  125.   [shop_income] INT DEFAULT 0 NOT NULL,
  126.   [siege_elapsed_time] INT DEFAULT 0 NOT NULL,
  127.   [tax_child_rate] INT DEFAULT 0 NOT NULL,
  128.   [shop_income_temp] INT DEFAULT 0 NOT NULL,
  129.   [tax_rate_to_change] SMALLINT DEFAULT (-1) NOT NULL,
  130.   [tax_child_rate_to_change] SMALLINT DEFAULT (-1) NOT NULL
  131. )
  132. ON [PRIMARY]
  133. GO
  134.  
  135. CREATE TABLE [dbo].[castle_crop] (
  136.   [castle_id] INT NOT NULL,
  137.   [item_type] INT NOT NULL,
  138.   [dropRate] INT NOT NULL,
  139.   [price] INT NOT NULL,
  140.   [level] INT NOT NULL
  141. )
  142. ON [PRIMARY]
  143. GO
  144.  
  145. CREATE TABLE [dbo].[castle_tax] (
  146.   [income_update] datetime NOT NULL,
  147.   [tax_change] datetime NOT NULL,
  148.   [manor_reset] datetime DEFAULT getdate() NOT NULL
  149. )
  150. ON [PRIMARY]
  151. GO
  152.  
  153. CREATE TABLE [dbo].[castle_war] (
  154.   [castle_id] INT NOT NULL,
  155.   [pledge_id] INT NOT NULL,
  156.   [TYPE] tinyint NOT NULL,
  157.   [propose_time] INT DEFAULT 0 NULL
  158. )
  159. ON [PRIMARY]
  160. GO
  161.  
  162. CREATE TABLE [dbo].[ch2_temp] (
  163.   [uid] INT NOT NULL,
  164.   [account] VARCHAR(14) COLLATE Korean_Wansung_CI_AS NOT NULL,
  165.   [last_login] datetime NULL,
  166.   [last_world] INT NULL
  167. )
  168. ON [PRIMARY]
  169. GO
  170.  
  171. CREATE TABLE [dbo].[ch3_lotto_char] (
  172.   [char_id] INT NOT NULL,
  173.   [item_count] INT NULL,
  174.   [round_number] INT NULL,
  175.   [item_id] INT NULL,
  176.   [number_flag] INT NULL
  177. )
  178. ON [PRIMARY]
  179. GO
  180.  
  181. CREATE TABLE [dbo].[char_pet] (
  182.   [char_id] INT NOT NULL,
  183.   [pet_id] INT NOT NULL
  184. )
  185. ON [PRIMARY]
  186. GO
  187.  
  188. CREATE TABLE [dbo].[class_list] (
  189.   [class] SMALLINT NULL,
  190.   [name] nvarchar(50) COLLATE Korean_Wansung_CI_AS NULL,
  191.   [race] tinyint NULL
  192. )
  193. ON [PRIMARY]
  194. GO
  195.  
  196. CREATE TABLE [dbo].[control_tower] (
  197.   [name] VARCHAR(256) COLLATE Korean_Wansung_CI_AS NOT NULL,
  198.   [residence_id] INT NOT NULL,
  199.   [control_level] INT DEFAULT 0 NULL,
  200.   [hp] INT NOT NULL,
  201.   [STATUS] INT NOT NULL
  202. )
  203. ON [PRIMARY]
  204. GO
  205.  
  206. CREATE TABLE [dbo].[door] (
  207.   [name] nvarchar(50) COLLATE Korean_Wansung_CI_AS NOT NULL,
  208.   [hp] INT NOT NULL,
  209.   [max_hp] INT NULL
  210. )
  211. ON [PRIMARY]
  212. GO
  213.  
  214. CREATE TABLE [dbo].[dt_adena_rank_temp] (
  215.   [char_id] INT NOT NULL,
  216.   [amount] NUMERIC(18, 0) NOT NULL,
  217.   [rank] INT IDENTITY(1, 1) NOT NULL
  218. )
  219. ON [PRIMARY]
  220. GO
  221.  
  222. CREATE TABLE [dbo].[err_item_1] (
  223.   [etc_num5] INT NULL,
  224.   [str_actor] VARCHAR(50) COLLATE Korean_Wansung_CI_AS NULL,
  225.   [actor] INT NULL
  226. )
  227. ON [PRIMARY]
  228. GO
  229.  
  230. CREATE TABLE [dbo].[err_pet1_9_28] (
  231.   [uiid] INT NOT NULL,
  232.   [char_id] INT NOT NULL,
  233.   [item_type] INT NOT NULL,
  234.   [amount] INT NOT NULL,
  235.   [enchant] INT NOT NULL,
  236.   [eroded] INT NOT NULL,
  237.   [bless] tinyint NOT NULL,
  238.   [ident] tinyint NOT NULL,
  239.   [wished] tinyint NOT NULL,
  240.   [warehouse] INT NOT NULL,
  241.   [act_time] datetime NULL,
  242.   [log_id] SMALLINT NULL,
  243.   [actor] INT NULL,
  244.   [actor_account] INT NULL,
  245.   [target] INT NULL,
  246.   [target_account] INT NULL,
  247.   [location_x] INT NULL,
  248.   [location_y] INT NULL,
  249.   [location_z] INT NULL,
  250.   [etc_str1] VARCHAR(200) COLLATE Korean_Wansung_CI_AS NULL,
  251.   [etc_str2] VARCHAR(50) COLLATE Korean_Wansung_CI_AS NULL,
  252.   [etc_str3] VARCHAR(50) COLLATE Korean_Wansung_CI_AS NULL,
  253.   [etc_num1] FLOAT NULL,
  254.   [etc_num2] FLOAT NULL,
  255.   [etc_num3] INT NULL,
  256.   [etc_num4] INT NULL,
  257.   [etc_num5] INT NULL,
  258.   [etc_num6] INT NULL,
  259.   [etc_num7] INT NULL,
  260.   [etc_num8] INT NULL,
  261.   [etc_num9] INT NULL,
  262.   [etc_num10] INT NULL,
  263.   [STR_actor] VARCHAR(48) COLLATE Korean_Wansung_CI_AS NULL,
  264.   [STR_actor_account] VARCHAR(32) COLLATE Korean_Wansung_CI_AS NULL,
  265.   [STR_target] VARCHAR(48) COLLATE Korean_Wansung_CI_AS NULL,
  266.   [STR_target_account] VARCHAR(32) COLLATE Korean_Wansung_CI_AS NULL,
  267.   [item_id] INT NULL,
  268.   [iid] INT NULL,
  269.   [at] datetime NULL
  270. )
  271. ON [PRIMARY]
  272. GO
  273.  
  274. CREATE TABLE [dbo].[err_pet1_9_30] (
  275.   [uiid] INT NOT NULL,
  276.   [char_id] INT NOT NULL,
  277.   [item_type] INT NOT NULL,
  278.   [amount] INT NOT NULL,
  279.   [enchant] INT NOT NULL,
  280.   [eroded] INT NOT NULL,
  281.   [bless] tinyint NOT NULL,
  282.   [ident] tinyint NOT NULL,
  283.   [wished] tinyint NOT NULL,
  284.   [warehouse] INT NOT NULL,
  285.   [act_time] datetime NULL,
  286.   [log_id] SMALLINT NULL,
  287.   [actor] INT NULL,
  288.   [actor_account] INT NULL,
  289.   [target] INT NULL,
  290.   [target_account] INT NULL,
  291.   [location_x] INT NULL,
  292.   [location_y] INT NULL,
  293.   [location_z] INT NULL,
  294.   [etc_str1] VARCHAR(200) COLLATE Korean_Wansung_CI_AS NULL,
  295.   [etc_str2] VARCHAR(50) COLLATE Korean_Wansung_CI_AS NULL,
  296.   [etc_str3] VARCHAR(50) COLLATE Korean_Wansung_CI_AS NULL,
  297.   [etc_num1] FLOAT NULL,
  298.   [etc_num2] FLOAT NULL,
  299.   [etc_num3] INT NULL,
  300.   [etc_num4] INT NULL,
  301.   [etc_num5] INT NULL,
  302.   [etc_num6] INT NULL,
  303.   [etc_num7] INT NULL,
  304.   [etc_num8] INT NULL,
  305.   [etc_num9] INT NULL,
  306.   [etc_num10] INT NULL,
  307.   [STR_actor] VARCHAR(48) COLLATE Korean_Wansung_CI_AS NULL,
  308.   [STR_actor_account] VARCHAR(32) COLLATE Korean_Wansung_CI_AS NULL,
  309.   [STR_target] VARCHAR(48) COLLATE Korean_Wansung_CI_AS NULL,
  310.   [STR_target_account] VARCHAR(32) COLLATE Korean_Wansung_CI_AS NULL,
  311.   [item_id] INT NULL,
  312.   [iid] INT NULL,
  313.   [at] datetime NULL
  314. )
  315. ON [PRIMARY]
  316. GO
  317.  
  318. CREATE TABLE [dbo].[err_pet2_9_28] (
  319.   [uiid] INT NOT NULL,
  320.   [char_id] INT NOT NULL,
  321.   [item_type] INT NOT NULL,
  322.   [amount] INT NOT NULL,
  323.   [enchant] INT NOT NULL,
  324.   [eroded] INT NOT NULL,
  325.   [bless] tinyint NOT NULL,
  326.   [ident] tinyint NOT NULL,
  327.   [wished] tinyint NOT NULL,
  328.   [warehouse] INT NOT NULL,
  329.   [act_time] datetime NULL,
  330.   [log_id] SMALLINT NULL,
  331.   [actor] INT NULL,
  332.   [actor_account] INT NULL,
  333.   [target] INT NULL,
  334.   [target_account] INT NULL,
  335.   [location_x] INT NULL,
  336.   [location_y] INT NULL,
  337.   [location_z] INT NULL,
  338.   [etc_str1] VARCHAR(200) COLLATE Korean_Wansung_CI_AS NULL,
  339.   [etc_str2] VARCHAR(50) COLLATE Korean_Wansung_CI_AS NULL,
  340.   [etc_str3] VARCHAR(50) COLLATE Korean_Wansung_CI_AS NULL,
  341.   [etc_num1] FLOAT NULL,
  342.   [etc_num2] FLOAT NULL,
  343.   [etc_num3] INT NULL,
  344.   [etc_num4] INT NULL,
  345.   [etc_num5] INT NULL,
  346.   [etc_num6] INT NULL,
  347.   [etc_num7] INT NULL,
  348.   [etc_num8] INT NULL,
  349.   [etc_num9] INT NULL,
  350.   [etc_num10] INT NULL,
  351.   [STR_actor] VARCHAR(48) COLLATE Korean_Wansung_CI_AS NULL,
  352.   [STR_actor_account] VARCHAR(32) COLLATE Korean_Wansung_CI_AS NULL,
  353.   [STR_target] VARCHAR(48) COLLATE Korean_Wansung_CI_AS NULL,
  354.   [STR_target_account] VARCHAR(32) COLLATE Korean_Wansung_CI_AS NULL,
  355.   [item_id] INT NULL,
  356.   [iid] INT NULL,
  357.   [at] datetime NULL
  358. )
  359. ON [PRIMARY]
  360. GO
  361.  
  362. CREATE TABLE [dbo].[err_pet2_9_30] (
  363.   [uiid] INT NOT NULL,
  364.   [char_id] INT NOT NULL,
  365.   [item_type] INT NOT NULL,
  366.   [amount] INT NOT NULL,
  367.   [enchant] INT NOT NULL,
  368.   [eroded] INT NOT NULL,
  369.   [bless] tinyint NOT NULL,
  370.   [ident] tinyint NOT NULL,
  371.   [wished] tinyint NOT NULL,
  372.   [warehouse] INT NOT NULL,
  373.   [act_time] datetime NULL,
  374.   [log_id] SMALLINT NULL,
  375.   [actor] INT NULL,
  376.   [actor_account] INT NULL,
  377.   [target] INT NULL,
  378.   [target_account] INT NULL,
  379.   [location_x] INT NULL,
  380.   [location_y] INT NULL,
  381.   [location_z] INT NULL,
  382.   [etc_str1] VARCHAR(200) COLLATE Korean_Wansung_CI_AS NULL,
  383.   [etc_str2] VARCHAR(50) COLLATE Korean_Wansung_CI_AS NULL,
  384.   [etc_str3] VARCHAR(50) COLLATE Korean_Wansung_CI_AS NULL,
  385.   [etc_num1] FLOAT NULL,
  386.   [etc_num2] FLOAT NULL,
  387.   [etc_num3] INT NULL,
  388.   [etc_num4] INT NULL,
  389.   [etc_num5] INT NULL,
  390.   [etc_num6] INT NULL,
  391.   [etc_num7] INT NULL,
  392.   [etc_num8] INT NULL,
  393.   [etc_num9] INT NULL,
  394.   [etc_num10] INT NULL,
  395.   [STR_actor] VARCHAR(48) COLLATE Korean_Wansung_CI_AS NULL,
  396.   [STR_actor_account] VARCHAR(32) COLLATE Korean_Wansung_CI_AS NULL,
  397.   [STR_target] VARCHAR(48) COLLATE Korean_Wansung_CI_AS NULL,
  398.   [STR_target_account] VARCHAR(32) COLLATE Korean_Wansung_CI_AS NULL,
  399.   [item_id] INT NULL,
  400.   [iid] INT NULL,
  401.   [at] datetime NULL
  402. )
  403. ON [PRIMARY]
  404. GO
  405.  
  406. CREATE TABLE [dbo].[err_skill_1] (
  407.   [class_name] nvarchar(255) COLLATE Korean_Wansung_CI_AS NULL,
  408.   [class] INT NULL,
  409.   [lev] INT NULL,
  410.   [skill_id] INT NULL,
  411.   [skill_name] nvarchar(255) COLLATE Korean_Wansung_CI_AS NULL
  412. )
  413. ON [PRIMARY]
  414. GO
  415.  
  416. CREATE TABLE [dbo].[event_items] (
  417.   [char_id] INT NULL,
  418.   [class_id] INT NULL,
  419.   [id] INT IDENTITY(1, 1) NOT NULL,
  420.   [log_date] datetime DEFAULT getdate() NULL
  421. )
  422. ON [PRIMARY]
  423. GO
  424.  
  425. CREATE TABLE [dbo].[event_point] (
  426.   [point_id] INT IDENTITY(1, 1) NOT NULL,
  427.   [group_id] INT NULL,
  428.   [group_point] FLOAT DEFAULT 0.0 NULL
  429. )
  430. ON [PRIMARY]
  431. GO
  432.  
  433. CREATE TABLE [dbo].[item_amount0_backup] (
  434.   [item_id] INT NULL,
  435.   [char_id] INT NULL,
  436.   [item_type] INT NULL,
  437.   [amount] INT NULL,
  438.   [enchant] INT NULL,
  439.   [eroded] INT NULL,
  440.   [bless] INT NULL,
  441.   [ident] INT NULL,
  442.   [wished] INT NULL,
  443.   [warehouse] INT NULL
  444. )
  445. ON [PRIMARY]
  446. GO
  447.  
  448. CREATE TABLE [dbo].[item_classid_normal] (
  449.   [id] INT NOT NULL
  450. )
  451. ON [PRIMARY]
  452. GO
  453.  
  454. CREATE TABLE [dbo].[item_list] (
  455.   [id] INT NULL,
  456.   [name] VARCHAR(50) COLLATE Korean_Wansung_CI_AS NULL
  457. )
  458. ON [PRIMARY]
  459. GO
  460.  
  461. CREATE TABLE [dbo].[item_market_price] (
  462.   [item_type] INT NOT NULL,
  463.   [enchant] INT NOT NULL,
  464.   [avg_price] FLOAT NOT NULL,
  465.   [frequency] INT NOT NULL
  466. )
  467. ON [PRIMARY]
  468. GO
  469.  
  470. CREATE TABLE [dbo].[item_temp] (
  471.   [char_id] INT DEFAULT 0 NOT NULL,
  472.   [warehouse] INT DEFAULT 0 NOT NULL,
  473.   [amount] INT DEFAULT 0 NOT NULL
  474. )
  475. ON [PRIMARY]
  476. GO
  477.  
  478. CREATE TABLE [dbo].[ItemData] (
  479.   [id] INT NOT NULL,
  480.   [name] nvarchar(50) COLLATE Korean_Wansung_CI_AS NOT NULL,
  481.   [DESC] nvarchar(50) COLLATE Korean_Wansung_CI_AS NOT NULL,
  482.   [logdate] smalldatetime DEFAULT getdate() NOT NULL,
  483.   [consumetype] nvarchar(50) COLLATE Korean_Wansung_CI_AS NULL,
  484.   [IsQuest] tinyint DEFAULT 0 NOT NULL
  485. )
  486. ON [PRIMARY]
  487. GO
  488.  
  489. CREATE TABLE [dbo].[login_announce] (
  490.   [announce_id] INT NOT NULL,
  491.   [announce_msg] nvarchar(256) COLLATE Korean_Wansung_CI_AS NULL,
  492.   [interval_10] INT DEFAULT 0 NOT NULL
  493. )
  494. ON [PRIMARY]
  495. GO
  496.  
  497. CREATE TABLE [dbo].[lotto_game] (
  498.   [round_number] INT NOT NULL,
  499.   [state] INT NOT NULL,
  500.   [left_time] INT NOT NULL,
  501.   [chosen_number_flag] INT NOT NULL,
  502.   [rule_number] INT NOT NULL,
  503.   [winner1_count] INT NOT NULL,
  504.   [winner2_count] INT NOT NULL,
  505.   [winner3_count] INT NOT NULL,
  506.   [winner4_count] INT NOT NULL,
  507.   [total_count] INT NOT NULL,
  508.   [carried_adena] INT NOT NULL
  509. )
  510. ON [PRIMARY]
  511. GO
  512.  
  513. CREATE TABLE [dbo].[lotto_game_backup_20050302] (
  514.   [round_number] INT NOT NULL,
  515.   [state] INT NOT NULL,
  516.   [left_time] INT NOT NULL,
  517.   [chosen_number_flag] INT NOT NULL,
  518.   [rule_number] INT NOT NULL,
  519.   [winner1_count] INT NOT NULL,
  520.   [winner2_count] INT NOT NULL,
  521.   [winner3_count] INT NOT NULL,
  522.   [winner4_count] INT NOT NULL,
  523.   [total_count] INT NOT NULL,
  524.   [carried_adena] INT NOT NULL
  525. )
  526. ON [PRIMARY]
  527. GO
  528.  
  529. CREATE TABLE [dbo].[lotto_items] (
  530.   [round_number] INT NOT NULL,
  531.   [item_id] INT NOT NULL,
  532.   [number_flag] INT NOT NULL
  533. )
  534. ON [PRIMARY]
  535. GO
  536.  
  537. CREATE TABLE [dbo].[manor_data] (
  538.   [manor_id] INT NOT NULL,
  539.   [data_index] INT NOT NULL,
  540.   [seed_id] INT NOT NULL,
  541.   [seed_price] INT NOT NULL,
  542.   [seed_sell_count] INT NOT NULL,
  543.   [seed_remain_count] INT NOT NULL,
  544.   [crop_id] INT NOT NULL,
  545.   [crop_buy_count] INT NOT NULL,
  546.   [crop_price] INT NOT NULL,
  547.   [crop_type] INT NOT NULL,
  548.   [crop_remain_count] INT NOT NULL,
  549.   [crop_deposit] INT NOT NULL
  550. )
  551. ON [PRIMARY]
  552. GO
  553.  
  554. CREATE TABLE [dbo].[manor_data_n] (
  555.   [manor_id] INT NOT NULL,
  556.   [data_index] INT NOT NULL,
  557.   [seed_id_n] INT NOT NULL,
  558.   [seed_price_n] INT NOT NULL,
  559.   [seed_sell_count_n] INT NOT NULL,
  560.   [crop_id_n] INT NOT NULL,
  561.   [crop_buy_count_n] INT NOT NULL,
  562.   [crop_price_n] INT NOT NULL,
  563.   [crop_type_n] INT NOT NULL
  564. )
  565. ON [PRIMARY]
  566. GO
  567.  
  568. CREATE TABLE [dbo].[manor_fix] (
  569.   [char_id] INT NOT NULL,
  570.   [item_type] INT NOT NULL,
  571.   [amount] INT NOT NULL,
  572.   [warehouse] INT NOT NULL,
  573.   [error_amount] INT NULL,
  574.   [to_dec] INT NULL
  575. )
  576. ON [PRIMARY]
  577. GO
  578.  
  579. CREATE TABLE [dbo].[manor_info] (
  580.   [manor_id] INT NOT NULL,
  581.   [residence_id] INT NOT NULL,
  582.   [adena_vault] INT NOT NULL,
  583.   [crop_buy_vault] INT NOT NULL,
  584.   [last_changed] datetime NOT NULL,
  585.   [change_state] tinyint DEFAULT 0 NOT NULL
  586. )
  587. ON [PRIMARY]
  588. GO
  589.  
  590. CREATE TABLE [dbo].[map] (
  591.   [map2] INT NULL,
  592.   [x2] INT NULL,
  593.   [y2] INT NULL
  594. )
  595. ON [PRIMARY]
  596. GO
  597.  
  598. CREATE TABLE [dbo].[mercenary] (
  599.   [id] INT IDENTITY(1, 1) NOT NULL,
  600.   [residence_id] INT NOT NULL,
  601.   [npc_id] INT NOT NULL,
  602.   [x] INT NOT NULL,
  603.   [y] INT NOT NULL,
  604.   [z] INT NOT NULL,
  605.   [angle] INT NOT NULL,
  606.   [hp] INT NOT NULL,
  607.   [mp] INT NOT NULL
  608. )
  609. ON [PRIMARY]
  610. GO
  611.  
  612. CREATE TABLE [dbo].[monrace] (
  613.   [race_id] INT IDENTITY(1, 1) NOT NULL,
  614.   [make_date] datetime DEFAULT getdate() NULL,
  615.   [lane1] SMALLINT NULL,
  616.   [lane2] SMALLINT NULL,
  617.   [lane3] SMALLINT NULL,
  618.   [lane4] SMALLINT NULL,
  619.   [lane5] SMALLINT NULL,
  620.   [lane6] SMALLINT NULL,
  621.   [lane7] SMALLINT NULL,
  622.   [lane8] SMALLINT NULL,
  623.   [run1] FLOAT NULL,
  624.   [run2] FLOAT NULL,
  625.   [run3] FLOAT NULL,
  626.   [run4] FLOAT NULL,
  627.   [run5] FLOAT NULL,
  628.   [run6] FLOAT NULL,
  629.   [run7] FLOAT NULL,
  630.   [run8] FLOAT NULL,
  631.   [win1] SMALLINT DEFAULT 0 NULL,
  632.   [win2] SMALLINT DEFAULT 0 NULL,
  633.   [winrate1] FLOAT DEFAULT 0.0 NULL,
  634.   [winrate2] FLOAT DEFAULT 0.0 NULL,
  635.   [race_end] SMALLINT DEFAULT 0 NULL,
  636.   [tax_rate] INT DEFAULT 0 NULL
  637. )
  638. ON [PRIMARY]
  639. GO
  640.  
  641. CREATE TABLE [dbo].[monrace_mon] (
  642.   [runner_id] INT NULL,
  643.   [initial_win] SMALLINT DEFAULT 0 NULL,
  644.   [run_count] INT DEFAULT 0 NULL,
  645.   [win_count] INT DEFAULT 0 NULL
  646. )
  647. ON [PRIMARY]
  648. GO
  649.  
  650. CREATE TABLE [dbo].[monrace_ticket] (
  651.   [ticket_id] INT IDENTITY(1, 1) NOT NULL,
  652.   [monraceid] INT NULL,
  653.   [bet_type] SMALLINT DEFAULT 0 NULL,
  654.   [bet_1] SMALLINT DEFAULT 0 NULL,
  655.   [bet_2] SMALLINT DEFAULT 0 NULL,
  656.   [bet_3] SMALLINT NULL,
  657.   [bet_money] INT NULL,
  658.   [item_id] INT NULL,
  659.   [tax_money] INT DEFAULT 0 NULL,
  660.   [deleted] INT DEFAULT 0 NULL,
  661.   [remotefee] INT NULL
  662. )
  663. ON [PRIMARY]
  664. GO
  665.  
  666. CREATE TABLE [dbo].[nobless_achievements] (
  667.   [char_id] INT NULL,
  668.   [win_type] INT NULL,
  669.   [target] INT NULL,
  670.   [win_time] INT NULL
  671. )
  672. ON [PRIMARY]
  673. GO
  674.  
  675. CREATE TABLE [dbo].[npc_boss] (
  676.   [npc_db_name] nvarchar(50) COLLATE Korean_Wansung_CI_AS NOT NULL,
  677.   [alive] INT NOT NULL,
  678.   [hp] INT NULL,
  679.   [mp] INT NULL,
  680.   [pos_x] INT NULL,
  681.   [pos_y] INT NULL,
  682.   [pos_z] INT NULL,
  683.   [time_low] INT NULL,
  684.   [time_high] INT NULL,
  685.   [i0] INT DEFAULT 0 NOT NULL
  686. )
  687. ON [PRIMARY]
  688. GO
  689.  
  690. CREATE TABLE [dbo].[npcname] (
  691.   [npc_id] INT NULL,
  692.   [npc_name] nvarchar(50) COLLATE Korean_Wansung_CI_AS NULL
  693. )
  694. ON [PRIMARY]
  695. GO
  696.  
  697. CREATE TABLE [dbo].[object_data] (
  698.   [id] INT IDENTITY(1, 1) NOT NULL,
  699.   [owner_id] INT DEFAULT 0 NOT NULL,
  700.   [residence_id] INT DEFAULT 0 NOT NULL,
  701.   [max_hp] INT DEFAULT 0 NOT NULL,
  702.   [hp] INT DEFAULT 0 NOT NULL,
  703.   [x_pos] INT DEFAULT 0 NOT NULL,
  704.   [y_pos] INT DEFAULT 0 NOT NULL,
  705.   [z_pos] INT DEFAULT 0 NOT NULL,
  706.   [TYPE] INT NOT NULL
  707. )
  708. ON [PRIMARY]
  709. GO
  710.  
  711. CREATE TABLE [dbo].[OHEC_SUBJOB] (
  712.   [server] INT NULL,
  713.   [All_75] INT NULL,
  714.   [Sub0] INT NULL,
  715.   [Sub1] INT NULL,
  716.   [Sub2] INT NULL,
  717.   [Sub3] INT NULL
  718. )
  719. ON [PRIMARY]
  720. GO
  721.  
  722. CREATE TABLE [dbo].[OHEC_SUBJOB_TEMP] (
  723.   [server] INT NULL,
  724.   [All_75] INT NULL,
  725.   [Sub0] INT NULL,
  726.   [Sub1] INT NULL,
  727.   [Sub2] INT NULL,
  728.   [Sub3] INT NULL
  729. )
  730. ON [PRIMARY]
  731. GO
  732.  
  733. CREATE TABLE [dbo].[olympiad] (
  734.   [season] INT IDENTITY(1, 1) NOT NULL,
  735.   [step] INT NULL,
  736.   [season_start_time] INT NULL,
  737.   [start_sec] INT NULL,
  738.   [bonus1_sec] INT NULL,
  739.   [bonus2_sec] INT NULL,
  740.   [bonus3_sec] INT NULL,
  741.   [bonus4_sec] INT NULL,
  742.   [nominate_sec] INT NULL
  743. )
  744. ON [PRIMARY]
  745. GO
  746.  
  747. CREATE TABLE [dbo].[olympiad_match] (
  748.   [season] INT NULL,
  749.   [class] INT NULL,
  750.   [match_time] INT NULL,
  751.   [char_id] INT NULL,
  752.   [rival_id] INT NULL,
  753.   [point] INT NULL,
  754.   [is_winner] tinyint NULL
  755. )
  756. ON [PRIMARY]
  757. GO
  758.  
  759. CREATE TABLE [dbo].[olympiad_result] (
  760.   [season] INT NOT NULL,
  761.   [class] INT NOT NULL,
  762.   [char_id] INT NOT NULL,
  763.   [point] INT NOT NULL,
  764.   [match_count] INT NOT NULL
  765. )
  766. ON [PRIMARY]
  767. GO
  768.  
  769. CREATE TABLE [dbo].[pet_data] (
  770.   [pet_id] INT NOT NULL,
  771.   [npc_class_id] INT NOT NULL,
  772.   [expoint] INT NOT NULL,
  773.   [nick_name] nvarchar(50) COLLATE Korean_Wansung_CI_AS NULL,
  774.   [hp] FLOAT DEFAULT 1 NOT NULL,
  775.   [mp] FLOAT DEFAULT 0 NOT NULL,
  776.   [sp] INT DEFAULT 0 NOT NULL,
  777.   [meal] INT DEFAULT 1 NOT NULL,
  778.   [slot1] INT DEFAULT 0 NOT NULL,
  779.   [slot2] INT DEFAULT 0 NOT NULL
  780. )
  781. ON [PRIMARY]
  782. GO
  783.  
  784. CREATE TABLE [dbo].[PetitionMsg] (
  785.   [Char_Id] INT NOT NULL,
  786.   [msg] nvarchar(1024) COLLATE Korean_Wansung_CI_AS NULL
  787. )
  788. ON [PRIMARY]
  789. GO
  790.  
  791. CREATE TABLE [dbo].[Pledge] (
  792.   [pledge_id] INT IDENTITY(1, 1) NOT NULL,
  793.   [ruler_id] INT NOT NULL,
  794.   [name] nvarchar(24) COLLATE Korean_Wansung_CI_AS NOT NULL,
  795.   [alliance_id] INT DEFAULT 0 NOT NULL,
  796.   [challenge_time] INT DEFAULT 0 NOT NULL,
  797.   [root_name_value] INT DEFAULT 0 NOT NULL,
  798.   [now_war_id] INT DEFAULT 0 NOT NULL,
  799.   [oust_time] INT DEFAULT 0 NOT NULL,
  800.   [skill_level] SMALLINT DEFAULT 0 NOT NULL,
  801.   [castle_id] INT DEFAULT 0 NOT NULL,
  802.   [agit_id] INT DEFAULT 0 NOT NULL,
  803.   [rank] INT DEFAULT 0 NOT NULL,
  804.   [name_value] INT DEFAULT 0 NOT NULL,
  805.   [STATUS] INT DEFAULT 0 NOT NULL,
  806.   [private_flag] INT DEFAULT 0 NOT NULL,
  807.   [crest_id] INT DEFAULT 0 NOT NULL,
  808.   [is_guilty] INT DEFAULT 0 NOT NULL,
  809.   [dismiss_reserved_time] INT DEFAULT 0 NOT NULL,
  810.   [alliance_withdraw_time] INT DEFAULT 0 NOT NULL,
  811.   [alliance_dismiss_time] INT DEFAULT 0 NOT NULL,
  812.   [alliance_ousted_time] INT DEFAULT 0 NOT NULL,
  813.   [siege_kill] INT DEFAULT 0 NOT NULL,
  814.   [siege_death] INT DEFAULT 0 NOT NULL,
  815.   [emblem_id] INT DEFAULT 0 NOT NULL
  816. )
  817. ON [PRIMARY]
  818. GO
  819.  
  820. CREATE TABLE [dbo].[pledge_announce] (
  821.   [pledge_id] INT NOT NULL,
  822.   [show_flag] SMALLINT NOT NULL,
  823.   [content] nvarchar(3000) COLLATE Korean_Wansung_CI_AS NULL
  824. )
  825. ON [PRIMARY]
  826. GO
  827.  
  828. CREATE TABLE [dbo].[pledge_contribution] (
  829.   [residence_id] INT NOT NULL,
  830.   [pledge_id] INT NOT NULL,
  831.   [contribution] INT DEFAULT 0 NOT NULL
  832. )
  833. ON [PRIMARY]
  834. GO
  835.  
  836. CREATE TABLE [dbo].[Pledge_Crest] (
  837.   [crest_id] INT IDENTITY(1, 1) NOT NULL,
  838.   [bitmap_size] SMALLINT DEFAULT 0 NOT NULL,
  839.   [bitmap] varbinary(3072) NULL
  840. )
  841. ON [PRIMARY]
  842. GO
  843.  
  844. CREATE TABLE [dbo].[point] (
  845.   [map] INT NULL,
  846.   [align] INT NULL,
  847.   [loc] INT NULL,
  848.   [x] INT NULL,
  849.   [y] INT NULL,
  850.   [z] INT NULL
  851. )
  852. ON [PRIMARY]
  853. GO
  854.  
  855. CREATE TABLE [dbo].[quest] (
  856.   [char_id] INT NOT NULL,
  857.   [q1] INT DEFAULT 0 NOT NULL,
  858.   [s1] INT DEFAULT 0 NULL,
  859.   [q2] INT DEFAULT 0 NOT NULL,
  860.   [s2] INT DEFAULT 0 NOT NULL,
  861.   [q3] INT DEFAULT 0 NOT NULL,
  862.   [s3] INT DEFAULT 0 NOT NULL,
  863.   [q4] INT DEFAULT 0 NOT NULL,
  864.   [s4] INT DEFAULT 0 NOT NULL,
  865.   [q5] INT DEFAULT 0 NOT NULL,
  866.   [s5] INT DEFAULT 0 NOT NULL,
  867.   [q6] INT DEFAULT 0 NOT NULL,
  868.   [s6] INT DEFAULT 0 NOT NULL,
  869.   [q7] INT DEFAULT 0 NOT NULL,
  870.   [s7] INT DEFAULT 0 NOT NULL,
  871.   [q8] INT DEFAULT 0 NOT NULL,
  872.   [s8] INT DEFAULT 0 NOT NULL,
  873.   [q9] INT DEFAULT 0 NOT NULL,
  874.   [s9] INT DEFAULT 0 NOT NULL,
  875.   [q10] INT DEFAULT 0 NOT NULL,
  876.   [s10] INT DEFAULT 0 NOT NULL,
  877.   [q11] INT DEFAULT 0 NOT NULL,
  878.   [s11] INT DEFAULT 0 NOT NULL,
  879.   [q12] INT DEFAULT 0 NOT NULL,
  880.   [s12] INT DEFAULT 0 NOT NULL,
  881.   [q13] INT DEFAULT 0 NOT NULL,
  882.   [s13] INT DEFAULT 0 NOT NULL,
  883.   [q14] INT DEFAULT 0 NOT NULL,
  884.   [s14] INT DEFAULT 0 NOT NULL,
  885.   [q15] INT DEFAULT 0 NOT NULL,
  886.   [s15] INT DEFAULT 0 NOT NULL,
  887.   [q16] INT DEFAULT 0 NOT NULL,
  888.   [s16] INT DEFAULT 0 NOT NULL,
  889.   [j1] INT DEFAULT 0 NOT NULL,
  890.   [j2] INT DEFAULT 0 NOT NULL,
  891.   [j3] INT DEFAULT 0 NOT NULL,
  892.   [j4] INT DEFAULT 0 NOT NULL,
  893.   [j5] INT DEFAULT 0 NOT NULL,
  894.   [j6] INT DEFAULT 0 NOT NULL,
  895.   [j7] INT DEFAULT 0 NOT NULL,
  896.   [j8] INT DEFAULT 0 NOT NULL,
  897.   [j9] INT DEFAULT 0 NOT NULL,
  898.   [j10] INT DEFAULT 0 NOT NULL,
  899.   [j11] INT DEFAULT 0 NOT NULL,
  900.   [j12] INT DEFAULT 0 NOT NULL,
  901.   [j13] INT DEFAULT 0 NOT NULL,
  902.   [j14] INT DEFAULT 0 NOT NULL,
  903.   [j15] INT DEFAULT 0 NOT NULL,
  904.   [j16] INT DEFAULT 0 NOT NULL,
  905.   [s2_1] INT DEFAULT 0 NULL,
  906.   [s2_2] INT DEFAULT 0 NULL,
  907.   [s2_3] INT DEFAULT 0 NULL,
  908.   [s2_4] INT DEFAULT 0 NULL,
  909.   [s2_5] INT DEFAULT 0 NULL,
  910.   [s2_6] INT DEFAULT 0 NULL,
  911.   [s2_7] INT DEFAULT 0 NULL,
  912.   [s2_8] INT DEFAULT 0 NULL,
  913.   [s2_9] INT DEFAULT 0 NULL,
  914.   [s2_10] INT DEFAULT 0 NULL,
  915.   [s2_11] INT DEFAULT 0 NULL,
  916.   [s2_12] INT DEFAULT 0 NULL,
  917.   [s2_13] INT DEFAULT 0 NULL,
  918.   [s2_14] INT DEFAULT 0 NULL,
  919.   [s2_15] INT DEFAULT 0 NULL,
  920.   [s2_16] INT DEFAULT 0 NULL
  921. )
  922. ON [PRIMARY]
  923. GO
  924.  
  925. CREATE TABLE [dbo].[QuestData] (
  926.   [id] INT NOT NULL,
  927.   [name] nvarchar(50) COLLATE Korean_Wansung_CI_AS NOT NULL,
  928.   [DATA] nvarchar(50) COLLATE Korean_Wansung_CI_AS NOT NULL,
  929.   [logdate] smalldatetime DEFAULT getdate() NOT NULL
  930. )
  931. ON [PRIMARY]
  932. GO
  933.  
  934. CREATE TABLE [dbo].[req_char] (
  935.   [server_id] INT NULL,
  936.   [char_name] nvarchar(50) COLLATE Korean_Wansung_CI_AS NULL
  937. )
  938. ON [PRIMARY]
  939. GO
  940.  
  941. CREATE TABLE [dbo].[req_charmove] (
  942.   [old_char_name] nvarchar(50) COLLATE Korean_Wansung_CI_AS NOT NULL,
  943.   [old_char_id] INT NULL,
  944.   [account_name] nvarchar(50) COLLATE Korean_Wansung_CI_AS NOT NULL,
  945.   [account_id] INT NULL,
  946.   [old_world_id] INT NULL,
  947.   [req_date] datetime NULL,
  948.   [req_id] INT NOT NULL,
  949.   [new_world_id] INT NULL,
  950.   [new_char_name] nvarchar(50) COLLATE Korean_Wansung_CI_AS NULL,
  951.   [new_char_id] INT NULL,
  952.   [is_pc_bang] INT NULL
  953. )
  954. ON [PRIMARY]
  955. GO
  956.  
  957. CREATE TABLE [dbo].[req_charmove_old] (
  958.   [old_char_name] nvarchar(50) COLLATE Korean_Wansung_CI_AS NULL,
  959.   [old_char_id] INT NULL,
  960.   [account_name] nvarchar(50) COLLATE Korean_Wansung_CI_AS NULL,
  961.   [account_id] INT NULL,
  962.   [old_world_id] INT NULL,
  963.   [req_date] datetime DEFAULT getdate() NULL,
  964.   [req_id] INT IDENTITY(1, 1) NOT NULL,
  965.   [new_world_id] INT NULL,
  966.   [new_char_name] nvarchar(50) COLLATE Korean_Wansung_CI_AS NULL,
  967.   [new_char_id] INT NULL
  968. )
  969. ON [PRIMARY]
  970. GO
  971.  
  972. CREATE TABLE [dbo].[req_pledge] (
  973.   [server_id] INT NULL,
  974.   [pledge_id] INT NULL
  975. )
  976. ON [PRIMARY]
  977. GO
  978.  
  979. CREATE TABLE [dbo].[residence_guard] (
  980.   [residence_id] INT NOT NULL,
  981.   [item_id] INT NOT NULL,
  982.   [npc_id] INT NOT NULL,
  983.   [guard_type] INT NOT NULL,
  984.   [can_move] INT NOT NULL,
  985.   [x] INT NOT NULL,
  986.   [y] INT NOT NULL,
  987.   [z] INT NOT NULL,
  988.   [angle] INT NOT NULL
  989. )
  990. ON [PRIMARY]
  991. GO
  992.  
  993. CREATE TABLE [dbo].[shortcut_data] (
  994.   [char_id] INT NOT NULL,
  995.   [slotnum] INT NOT NULL,
  996.   [shortcut_type] INT NOT NULL,
  997.   [shortcut_id] INT NOT NULL,
  998.   [shortcut_macro] nvarchar(256) COLLATE Korean_Wansung_CI_AS NOT NULL,
  999.   [subjob_id] INT DEFAULT 0 NOT NULL
  1000. )
  1001. ON [PRIMARY]
  1002. GO
  1003.  
  1004. CREATE TABLE [dbo].[siege_agit_pledge] (
  1005.   [agit_id] INT NOT NULL,
  1006.   [pledge_id] INT NOT NULL,
  1007.   [propose_time] INT NOT NULL,
  1008.   [STATUS] INT DEFAULT 0 NULL
  1009. )
  1010. ON [PRIMARY]
  1011. GO
  1012.  
  1013. CREATE TABLE [dbo].[SkillData] (
  1014.   [id] INT NOT NULL,
  1015.   [lev] SMALLINT NOT NULL,
  1016.   [name] nvarchar(50) COLLATE Korean_Wansung_CI_AS NOT NULL,
  1017.   [logdate] smalldatetime DEFAULT getdate() NOT NULL,
  1018.   [skill_desc] nvarchar(255) COLLATE Korean_Wansung_CI_AS NULL,
  1019.   [bIsMagic] tinyint NULL,
  1020.   [activate_type] nvarchar(5) COLLATE Korean_Wansung_CI_AS NULL
  1021. )
  1022. ON [PRIMARY]
  1023. GO
  1024.  
  1025. CREATE TABLE [dbo].[ssq_data] (
  1026.   [round_number] INT NOT NULL,
  1027.   [STATUS] tinyint NOT NULL,
  1028.   [winner] tinyint NOT NULL,
  1029.   [event_start_time] INT NOT NULL,
  1030.   [seal_effect_time] INT NOT NULL,
  1031.   [event_end_time] INT NOT NULL,
  1032.   [seal_effect_end_time] INT NOT NULL,
  1033.   [seal1] tinyint NOT NULL,
  1034.   [seal2] tinyint NOT NULL,
  1035.   [seal3] tinyint NOT NULL,
  1036.   [seal4] tinyint NOT NULL,
  1037.   [seal5] tinyint NOT NULL,
  1038.   [seal6] tinyint NOT NULL,
  1039.   [seal7] tinyint NOT NULL,
  1040.   [last_changed_time] datetime NOT NULL,
  1041.   [castle_snapshot_time] INT NULL,
  1042.   [can_drop_guard] INT NULL
  1043. )
  1044. ON [PRIMARY]
  1045. GO
  1046.  
  1047. CREATE TABLE [dbo].[ssq_join_data] (
  1048.   [round_number] INT NOT NULL,
  1049.   [TYPE] tinyint NOT NULL,
  1050.   [point] INT NOT NULL,
  1051.   [main_event_point] INT NULL,
  1052.   [collected_point] INT NULL,
  1053.   [member_count] INT NOT NULL,
  1054.   [seal1_selection_count] INT NOT NULL,
  1055.   [seal2_selection_count] INT NOT NULL,
  1056.   [seal3_selection_count] INT NOT NULL,
  1057.   [seal4_selection_count] INT NOT NULL,
  1058.   [seal5_selection_count] INT NOT NULL,
  1059.   [seal6_selection_count] INT NOT NULL,
  1060.   [seal7_selection_count] INT NOT NULL,
  1061.   [last_changed_time] datetime NOT NULL
  1062. )
  1063. ON [PRIMARY]
  1064. GO
  1065.  
  1066. CREATE TABLE [dbo].[ssq_top_point_user] (
  1067.   [ssq_round] INT NOT NULL,
  1068.   [record_id] INT NOT NULL,
  1069.   [rank_time] INT NOT NULL,
  1070.   [ssq_point] INT NOT NULL,
  1071.   [char_id] INT NOT NULL,
  1072.   [char_name] nvarchar(50) COLLATE Korean_Wansung_CI_AS NOT NULL,
  1073.   [ssq_part] tinyint NOT NULL,
  1074.   [ssq_position] tinyint NOT NULL,
  1075.   [seal_selection_no] tinyint NOT NULL,
  1076.   [last_changed_time] datetime NULL
  1077. )
  1078. ON [PRIMARY]
  1079. GO
  1080.  
  1081. CREATE TABLE [dbo].[ssq_user_data] (
  1082.   [char_id] INT NOT NULL,
  1083.   [round_number] INT NOT NULL,
  1084.   [ssq_part] tinyint NOT NULL,
  1085.   [ssq_position] tinyint NOT NULL,
  1086.   [seal_selection_no] tinyint NOT NULL,
  1087.   [ssq_join_time] INT NOT NULL,
  1088.   [ssq_point] INT NOT NULL,
  1089.   [twilight_a_item_num] INT NOT NULL,
  1090.   [twilight_b_item_num] INT NOT NULL,
  1091.   [twilight_c_item_num] INT NOT NULL,
  1092.   [dawn_a_item_num] INT NOT NULL,
  1093.   [dawn_b_item_num] INT NOT NULL,
  1094.   [dawn_c_item_num] INT NOT NULL,
  1095.   [ticket_buy_count] tinyint NOT NULL
  1096. )
  1097. ON [PRIMARY]
  1098. GO
  1099.  
  1100. CREATE TABLE [dbo].[stat_acc_class] (
  1101.   [class] tinyint NOT NULL,
  1102.   [COUNT] INT NOT NULL
  1103. )
  1104. ON [PRIMARY]
  1105. GO
  1106.  
  1107. CREATE TABLE [dbo].[stat_acc_lev] (
  1108.   [lev] tinyint NOT NULL,
  1109.   [COUNT] INT NOT NULL
  1110. )
  1111. ON [PRIMARY]
  1112. GO
  1113.  
  1114. CREATE TABLE [dbo].[stat_acc_mlev] (
  1115.   [account_name] nvarchar(50) COLLATE Korean_Wansung_CI_AS NOT NULL,
  1116.   [char_name] nvarchar(50) COLLATE Korean_Wansung_CI_AS NOT NULL,
  1117.   [lev] tinyint NOT NULL,
  1118.   [race] tinyint NOT NULL,
  1119.   [class] tinyint NOT NULL
  1120. )
  1121. ON [PRIMARY]
  1122. GO
  1123.  
  1124. CREATE TABLE [dbo].[stat_acc_race] (
  1125.   [race] tinyint NOT NULL,
  1126.   [COUNT] INT NOT NULL
  1127. )
  1128. ON [PRIMARY]
  1129. GO
  1130.  
  1131. CREATE TABLE [dbo].[stat_item_cnt] (
  1132.   [id] INT NOT NULL,
  1133.   [COUNT] INT NOT NULL,
  1134.   [SUM] FLOAT NOT NULL
  1135. )
  1136. ON [PRIMARY]
  1137. GO
  1138.  
  1139. CREATE TABLE [dbo].[stat_item_ent] (
  1140.   [item_type] INT NOT NULL,
  1141.   [enchant] INT NOT NULL,
  1142.   [COUNT] INT NOT NULL,
  1143.   [SUM] INT NOT NULL
  1144. )
  1145. ON [PRIMARY]
  1146. GO
  1147.  
  1148. CREATE TABLE [dbo].[stat_item_ment] (
  1149.   [item_type] INT NOT NULL,
  1150.   [item_id] INT NOT NULL,
  1151.   [char_name] nvarchar(50) COLLATE Korean_Wansung_CI_AS NOT NULL,
  1152.   [max_ent] INT NOT NULL,
  1153.   [builder] tinyint NOT NULL
  1154. )
  1155. ON [PRIMARY]
  1156. GO
  1157.  
  1158. CREATE TABLE [dbo].[stat_item_mincnt] (
  1159.   [item_type] INT NOT NULL,
  1160.   [item_id] INT NOT NULL
  1161. )
  1162. ON [PRIMARY]
  1163. GO
  1164.  
  1165. CREATE TABLE [dbo].[team_battle_agit_member] (
  1166.   [agit_id] INT NOT NULL,
  1167.   [char_id] INT NOT NULL,
  1168.   [pledge_id] INT NOT NULL,
  1169.   [propose_time] INT NOT NULL
  1170. )
  1171. ON [PRIMARY]
  1172. GO
  1173.  
  1174. CREATE TABLE [dbo].[team_battle_agit_pledge] (
  1175.   [agit_id] INT NOT NULL,
  1176.   [pledge_id] INT NOT NULL,
  1177.   [propose_time] INT NOT NULL,
  1178.   [color] INT NOT NULL,
  1179.   [npc_type] INT NOT NULL
  1180. )
  1181. ON [PRIMARY]
  1182. GO
  1183.  
  1184. CREATE TABLE [dbo].[temp_account] (
  1185.   [real_account] nvarchar(50) COLLATE Korean_Wansung_CI_AS NOT NULL,
  1186.   [user_id] nvarchar(50) COLLATE Korean_Wansung_CI_AS NOT NULL
  1187. )
  1188. ON [PRIMARY]
  1189. GO
  1190.  
  1191. CREATE TABLE [dbo].[temp_inv] (
  1192.   [item_id] INT NOT NULL,
  1193.   [item_type] INT NOT NULL,
  1194.   [amount] INT NOT NULL,
  1195.   [user_id] INT NOT NULL
  1196. )
  1197. ON [PRIMARY]
  1198. GO
  1199.  
  1200. CREATE TABLE [dbo].[temp_pet_inv] (
  1201.   [pet_item_id] INT NOT NULL,
  1202.   [pet_item_type] INT NOT NULL,
  1203.   [amount] INT NOT NULL,
  1204.   [pet_collar_id] INT NOT NULL,
  1205.   [user_id] INT NOT NULL
  1206. )
  1207. ON [PRIMARY]
  1208. GO
  1209.  
  1210. CREATE TABLE [dbo].[temp_recipe] (
  1211.   [char_id] INT NULL,
  1212.   [item_type] INT NULL,
  1213.   [warehouse] INT NULL,
  1214.   [recipecount] INT NULL
  1215. )
  1216. ON [PRIMARY]
  1217. GO
  1218.  
  1219. CREATE TABLE [dbo].[temp_skill] (
  1220.   [char_id] INT NULL,
  1221.   [skill] INT NULL,
  1222.   [lev] INT NULL,
  1223.   [temptime] INT NULL
  1224. )
  1225. ON [PRIMARY]
  1226. GO
  1227.  
  1228. CREATE TABLE [dbo].[temp_skill2] (
  1229.   [char_id] INT NULL,
  1230.   [skill_id] INT NULL,
  1231.   [skill_lev] INT NULL,
  1232.   [temptime] INT NULL
  1233. )
  1234. ON [PRIMARY]
  1235. GO
  1236.  
  1237. CREATE TABLE [dbo].[temp_update] (
  1238.   [char_id] INT NULL
  1239. )
  1240. ON [PRIMARY]
  1241. GO
  1242.  
  1243. CREATE TABLE [dbo].[TEST] (
  1244.   [??] INT NOT NULL,
  1245.   [char_id] INT NULL,
  1246.   [char_name] nvarchar(50) COLLATE Korean_Wansung_CI_AS NOT NULL,
  1247.   [account_name] nvarchar(50) COLLATE Korean_Wansung_CI_AS NOT NULL,
  1248.   [lev] tinyint NULL,
  1249.   [class] INT NULL
  1250. )
  1251. ON [PRIMARY]
  1252. GO
  1253.  
  1254. CREATE TABLE [dbo].[time_attack_record] (
  1255.   [ssq_round] INT NOT NULL,
  1256.   [room_no] tinyint NOT NULL,
  1257.   [record_type] tinyint NOT NULL,
  1258.   [ssq_part] tinyint NOT NULL,
  1259.   [point] INT NOT NULL,
  1260.   [record_time] INT NOT NULL,
  1261.   [elapsed_time] INT NOT NULL,
  1262.   [member_count] INT NOT NULL,
  1263.   [member_names] nvarchar(256) COLLATE Korean_Wansung_CI_AS NOT NULL,
  1264.   [member_dbid_list] nvarchar(128) COLLATE Korean_Wansung_CI_AS NULL,
  1265.   [member_reward_flags] INT NULL,
  1266.   [fee] INT NULL
  1267. )
  1268. ON [PRIMARY]
  1269. GO
  1270.  
  1271. CREATE TABLE [dbo].[time_attack_record_test] (
  1272.   [Col001] VARCHAR(255) COLLATE Korean_Wansung_CI_AS NULL,
  1273.   [Col002] VARCHAR(255) COLLATE Korean_Wansung_CI_AS NULL,
  1274.   [Col003] VARCHAR(255) COLLATE Korean_Wansung_CI_AS NULL,
  1275.   [Col004] VARCHAR(255) COLLATE Korean_Wansung_CI_AS NULL,
  1276.   [Col005] VARCHAR(255) COLLATE Korean_Wansung_CI_AS NULL,
  1277.   [Col006] VARCHAR(255) COLLATE Korean_Wansung_CI_AS NULL,
  1278.   [Col007] VARCHAR(255) COLLATE Korean_Wansung_CI_AS NULL,
  1279.   [Col008] VARCHAR(255) COLLATE Korean_Wansung_CI_AS NULL,
  1280.   [Col009] VARCHAR(255) COLLATE Korean_Wansung_CI_AS NULL,
  1281.   [Col010] VARCHAR(255) COLLATE Korean_Wansung_CI_AS NULL,
  1282.   [Col011] VARCHAR(255) COLLATE Korean_Wansung_CI_AS NULL,
  1283.   [Col012] VARCHAR(255) COLLATE Korean_Wansung_CI_AS NULL
  1284. )
  1285. ON [PRIMARY]
  1286. GO
  1287.  
  1288. CREATE TABLE [dbo].[time_data] (
  1289.   [account_id] INT NOT NULL,
  1290.   [last_logout] datetime NOT NULL,
  1291.   [used_sec] INT NOT NULL
  1292. )
  1293. ON [PRIMARY]
  1294. GO
  1295.  
  1296. CREATE TABLE [dbo].[tmp_alliance] (
  1297.   [id] INT IDENTITY(1, 1) NOT NULL,
  1298.   [name] nvarchar(50) COLLATE Korean_Wansung_CI_AS NOT NULL,
  1299.   [master_pledge_id] INT NOT NULL,
  1300.   [oust_time] INT NOT NULL
  1301. )
  1302. ON [PRIMARY]
  1303. GO
  1304.  
  1305. CREATE TABLE [dbo].[tmp_die_user] (
  1306.   [char_name] VARCHAR(64) COLLATE Korean_Wansung_CI_AS NULL,
  1307.   [account_name] VARCHAR(64) COLLATE Korean_Wansung_CI_AS NULL,
  1308.   [before_die_exp] INT NULL,
  1309.   [die_minus_exp] INT NULL,
  1310.   [after_resurrect_exp] INT NULL,
  1311.   [resurrect_add_exp] INT NULL,
  1312.   [hasSubjob] INT NULL
  1313. )
  1314. ON [PRIMARY]
  1315. GO
  1316.  
  1317. CREATE TABLE [dbo].[tmp_lotto_price_given] (
  1318.   [char_id] INT NULL,
  1319.   [char_name] VARCHAR(50) COLLATE Korean_Wansung_CI_AS NULL,
  1320.   [rank] INT NULL,
  1321.   [price] INT NULL,
  1322.   [new_price] INT NULL
  1323. )
  1324. ON [PRIMARY]
  1325. GO
  1326.  
  1327. CREATE TABLE [dbo].[tmp_pledge] (
  1328.   [pledge_id] INT IDENTITY(1, 1) NOT NULL,
  1329.   [ruler_id] INT NOT NULL,
  1330.   [name] nvarchar(24) COLLATE Korean_Wansung_CI_AS NOT NULL,
  1331.   [alliance_id] INT NOT NULL,
  1332.   [root_name_value] INT NOT NULL,
  1333.   [name_value] INT NOT NULL,
  1334.   [oust_time] INT NOT NULL,
  1335.   [skill_level] SMALLINT NOT NULL,
  1336.   [castle_id] INT NOT NULL,
  1337.   [agit_id] INT NOT NULL,
  1338.   [rank] INT NOT NULL,
  1339.   [STATUS] INT NOT NULL,
  1340.   [is_guilty] INT NOT NULL,
  1341.   [dismiss_reserved_time] INT NOT NULL
  1342. )
  1343. ON [PRIMARY]
  1344. GO
  1345.  
  1346. CREATE TABLE [dbo].[tmp_recover_user] (
  1347.   [char_name] nvarchar(60) COLLATE Korean_Wansung_CI_AS NULL,
  1348.   [addedExp] INT NULL
  1349. )
  1350. ON [PRIMARY]
  1351. GO
  1352.  
  1353. CREATE TABLE [dbo].[tmp_seed_dp] (
  1354.   [seed_id] INT NULL,
  1355.   [dp] INT NULL
  1356. )
  1357. ON [PRIMARY]
  1358. GO
  1359.  
  1360. CREATE TABLE [dbo].[tmp_user_data] (
  1361.   [char_name] nvarchar(50) COLLATE Korean_Wansung_CI_AS NOT NULL,
  1362.   [char_id] INT IDENTITY(1, 1) NOT NULL,
  1363.   [account_name] nvarchar(50) COLLATE Korean_Wansung_CI_AS NOT NULL,
  1364.   [account_id] INT NOT NULL,
  1365.   [pledge_id] INT NOT NULL,
  1366.   [builder] tinyint NOT NULL,
  1367.   [gender] tinyint NOT NULL,
  1368.   [race] tinyint NOT NULL,
  1369.   [class] tinyint NOT NULL,
  1370.   [world] SMALLINT NOT NULL,
  1371.   [SP] INT NOT NULL,
  1372.   [EXP] INT NOT NULL,
  1373.   [Lev] tinyint NOT NULL,
  1374.   [align] INT NOT NULL,
  1375.   [PK] INT NOT NULL,
  1376.   [PKpardon] INT NOT NULL,
  1377.   [Duel] INT NOT NULL,
  1378.   [create_date] datetime NOT NULL,
  1379.   [login] datetime NULL,
  1380.   [logout] datetime NULL,
  1381.   [nickname] nvarchar(50) COLLATE Korean_Wansung_CI_AS NULL,
  1382.   [max_hp] INT NOT NULL,
  1383.   [max_mp] INT NOT NULL,
  1384.   [use_time] INT NOT NULL,
  1385.   [drop_exp] INT NOT NULL,
  1386.   [cp] FLOAT NOT NULL,
  1387.   [max_cp] FLOAT NOT NULL,
  1388.   [subjob_id] INT NULL,
  1389.   [subjob0_class] INT NOT NULL,
  1390.   [subjob1_class] INT NOT NULL,
  1391.   [subjob2_class] INT NOT NULL,
  1392.   [subjob3_class] INT NOT NULL
  1393. )
  1394. ON [PRIMARY]
  1395. GO
  1396.  
  1397. CREATE TABLE [dbo].[tmp_user_item] (
  1398.   [item_id] INT IDENTITY(1, 1) NOT NULL,
  1399.   [char_id] INT NOT NULL,
  1400.   [item_type] INT NOT NULL,
  1401.   [amount] INT NOT NULL,
  1402.   [enchant] INT NOT NULL,
  1403.   [warehouse] INT NOT NULL
  1404. )
  1405. ON [PRIMARY]
  1406. GO
  1407.  
  1408. CREATE TABLE [dbo].[tmp_user_nobless] (
  1409.   [char_id] INT NOT NULL,
  1410.   [nobless_type] tinyint NULL,
  1411.   [hero_type] tinyint NULL,
  1412.   [win_count] INT NULL,
  1413.   [previous_point] INT NULL,
  1414.   [olympiad_point] INT NULL,
  1415.   [match_count] INT NULL,
  1416.   [words] VARCHAR(128) COLLATE Korean_Wansung_CI_AS NULL
  1417. )
  1418. ON [PRIMARY]
  1419. GO
  1420.  
  1421. CREATE TABLE [dbo].[user_ActiveSkill] (
  1422.   [char_id] INT NOT NULL,
  1423.   [s1] INT NULL,
  1424.   [l1] tinyint NULL,
  1425.   [d1] INT NULL,
  1426.   [s2] INT NULL,
  1427.   [l2] tinyint NULL,
  1428.   [d2] INT NULL,
  1429.   [s3] INT NULL,
  1430.   [l3] tinyint NULL,
  1431.   [d3] INT NULL,
  1432.   [s4] INT NULL,
  1433.   [l4] tinyint NULL,
  1434.   [d4] INT NULL,
  1435.   [s5] INT NULL,
  1436.   [l5] tinyint NULL,
  1437.   [d5] INT NULL,
  1438.   [s6] INT NULL,
  1439.   [l6] tinyint NULL,
  1440.   [d6] INT NULL,
  1441.   [s7] INT NULL,
  1442.   [l7] tinyint NULL,
  1443.   [d7] INT NULL,
  1444.   [s8] INT NULL,
  1445.   [l8] tinyint NULL,
  1446.   [d8] INT NULL,
  1447.   [s9] INT NULL,
  1448.   [l9] tinyint NULL,
  1449.   [d9] INT NULL,
  1450.   [s10] INT NULL,
  1451.   [l10] tinyint NULL,
  1452.   [d10] INT NULL,
  1453.   [s11] INT NULL,
  1454.   [l11] tinyint NULL,
  1455.   [d11] INT NULL,
  1456.   [s12] INT NULL,
  1457.   [l12] tinyint NULL,
  1458.   [d12] INT NULL,
  1459.   [s13] INT NULL,
  1460.   [l13] tinyint NULL,
  1461.   [d13] INT NULL,
  1462.   [s14] INT NULL,
  1463.   [l14] tinyint NULL,
  1464.   [d14] INT NULL,
  1465.   [s15] INT NULL,
  1466.   [l15] tinyint NULL,
  1467.   [d15] INT NULL,
  1468.   [s16] INT NULL,
  1469.   [l16] tinyint NULL,
  1470.   [d16] INT NULL,
  1471.   [s17] INT NULL,
  1472.   [l17] tinyint NULL,
  1473.   [d17] INT NULL,
  1474.   [s18] INT NULL,
  1475.   [l18] tinyint NULL,
  1476.   [d18] INT NULL,
  1477.   [s19] INT NULL,
  1478.   [l19] tinyint NULL,
  1479.   [d19] INT NULL,
  1480.   [s20] INT NULL,
  1481.   [l20] tinyint NULL,
  1482.   [d20] INT NULL,
  1483.   [c1] tinyint NULL,
  1484.   [c2] tinyint NULL,
  1485.   [c3] tinyint NULL,
  1486.   [c4] tinyint NULL,
  1487.   [c5] tinyint NULL,
  1488.   [c6] tinyint NULL,
  1489.   [c7] tinyint NULL,
  1490.   [c8] tinyint NULL,
  1491.   [c9] tinyint NULL,
  1492.   [c10] tinyint NULL,
  1493.   [c11] tinyint NULL,
  1494.   [c12] tinyint NULL,
  1495.   [c13] tinyint NULL,
  1496.   [c14] tinyint NULL,
  1497.   [c15] tinyint NULL,
  1498.   [c16] tinyint NULL,
  1499.   [c17] tinyint NULL,
  1500.   [c18] tinyint NULL,
  1501.   [c19] tinyint NULL,
  1502.   [c20] tinyint NULL
  1503. )
  1504. ON [PRIMARY]
  1505. GO
  1506.  
  1507. CREATE TABLE [dbo].[user_ban] (
  1508.   [char_id] INT NOT NULL,
  1509.   [STATUS] INT DEFAULT 0 NULL,
  1510.   [ban_date] datetime DEFAULT getdate() NULL,
  1511.   [ban_hour] SMALLINT DEFAULT 0 NULL,
  1512.   [ban_end] INT DEFAULT 0 NULL
  1513. )
  1514. ON [PRIMARY]
  1515. GO
  1516.  
  1517. CREATE TABLE [dbo].[user_blocklist] (
  1518.   [char_id] INT NOT NULL,
  1519.   [block_char_id] INT NOT NULL,
  1520.   [block_char_name] nvarchar(50) COLLATE Korean_Wansung_CI_AS NOT NULL
  1521. )
  1522. ON [PRIMARY]
  1523. GO
  1524.  
  1525. CREATE TABLE [dbo].[user_comment] (
  1526.   [char_name] nvarchar(50) COLLATE Korean_Wansung_CI_AS NULL,
  1527.   [char_id] INT NULL,
  1528.   [comment_id] INT IDENTITY(1, 1) NOT NULL,
  1529.   [comment] nvarchar(200) COLLATE Korean_Wansung_CI_AS NULL,
  1530.   [comment_date] datetime DEFAULT getdate() NULL,
  1531.   [writer] nvarchar(50) COLLATE Korean_Wansung_CI_AS NULL,
  1532.   [deleted] tinyint DEFAULT 0 NULL
  1533. )
  1534. ON [PRIMARY]
  1535. GO
  1536.  
  1537. CREATE TABLE [dbo].[user_data] (
  1538.   [char_name] nvarchar(50) COLLATE Korean_Wansung_CI_AS NOT NULL,
  1539.   [char_id] INT IDENTITY(1, 1) NOT NULL,
  1540.   [account_name] nvarchar(50) COLLATE Korean_Wansung_CI_AS NOT NULL,
  1541.   [account_id] INT NOT NULL,
  1542.   [pledge_id] INT DEFAULT 0 NOT NULL,
  1543.   [builder] tinyint DEFAULT 0 NOT NULL,
  1544.   [gender] tinyint NOT NULL,
  1545.   [race] tinyint NOT NULL,
  1546.   [class] tinyint NOT NULL,
  1547.   [world] SMALLINT NOT NULL,
  1548.   [xloc] INT NOT NULL,
  1549.   [yloc] INT NOT NULL,
  1550.   [zloc] INT NOT NULL,
  1551.   [IsInVehicle] SMALLINT DEFAULT 0 NOT NULL,
  1552.   [HP] FLOAT NOT NULL,
  1553.   [MP] FLOAT NOT NULL,
  1554.   [SP] INT DEFAULT 0 NOT NULL,
  1555.   [EXP] INT NOT NULL,
  1556.   [Lev] tinyint NOT NULL,
  1557.   [align] INT NOT NULL,
  1558.   [PK] INT DEFAULT 0 NOT NULL,
  1559.   [PKpardon] INT DEFAULT 0 NOT NULL,
  1560.   [Duel] INT DEFAULT 0 NOT NULL,
  1561.   [ST_underware] INT DEFAULT 0 NOT NULL,
  1562.   [ST_right_ear] INT DEFAULT 0 NOT NULL,
  1563.   [ST_left_ear] INT DEFAULT 0 NOT NULL,
  1564.   [ST_neck] INT DEFAULT 0 NOT NULL,
  1565.   [ST_right_finger] INT DEFAULT 0 NOT NULL,
  1566.   [ST_left_finger] INT DEFAULT 0 NOT NULL,
  1567.   [ST_head] INT DEFAULT 0 NOT NULL,
  1568.   [ST_right_hand] INT DEFAULT 0 NOT NULL,
  1569.   [ST_left_hand] INT DEFAULT 0 NOT NULL,
  1570.   [ST_gloves] INT DEFAULT 0 NOT NULL,
  1571.   [ST_chest] INT DEFAULT 0 NOT NULL,
  1572.   [ST_legs] INT DEFAULT 0 NOT NULL,
  1573.   [ST_feet] INT DEFAULT 0 NOT NULL,
  1574.   [ST_back] INT DEFAULT 0 NOT NULL,
  1575.   [ST_both_hand] INT DEFAULT 0 NOT NULL,
  1576.   [create_date] datetime DEFAULT getdate() NOT NULL,
  1577.   [login] datetime NULL,
  1578.   [logout] datetime NULL,
  1579.   [quest_flag] BINARY(32) DEFAULT 0x00 NOT NULL,
  1580.   [nickname] nvarchar(50) COLLATE Korean_Wansung_CI_AS NULL,
  1581.   [power_flag] BINARY(32) DEFAULT 0x0000000000000000000000000000000000000000000000000000000000000000 NOT NULL,
  1582.   [pledge_dismiss_time] INT DEFAULT 0 NOT NULL,
  1583.   [pledge_leave_time] INT DEFAULT 0 NOT NULL,
  1584.   [pledge_leave_status] tinyint DEFAULT 0 NOT NULL,
  1585.   [max_hp] INT DEFAULT 0 NOT NULL,
  1586.   [max_mp] INT DEFAULT 0 NOT NULL,
  1587.   [quest_memo] CHAR(32) COLLATE Korean_Wansung_CI_AS NULL,
  1588.   [face_index] INT DEFAULT 0 NOT NULL,
  1589.   [hair_shape_index] INT DEFAULT 0 NOT NULL,
  1590.   [hair_color_index] INT DEFAULT 0 NOT NULL,
  1591.   [use_time] INT DEFAULT 0 NOT NULL,
  1592.   [temp_delete_date] smalldatetime NULL,
  1593.   [pledge_ousted_time] INT DEFAULT 0 NOT NULL,
  1594.   [pledge_withdraw_time] INT DEFAULT 0 NOT NULL,
  1595.   [surrender_war_id] INT DEFAULT 0 NOT NULL,
  1596.   [drop_exp] INT DEFAULT 0 NOT NULL,
  1597.   [old_x] INT NULL,
  1598.   [old_y] INT NULL,
  1599.   [old_z] INT NULL,
  1600.   [subjob_id] INT NULL,
  1601.   [ssq_dawn_round] INT NULL,
  1602.   [cp] FLOAT DEFAULT 0 NOT NULL,
  1603.   [max_cp] FLOAT DEFAULT 0 NOT NULL,
  1604.   [ST_hair] INT DEFAULT 0 NOT NULL,
  1605.   [subjob0_class] INT DEFAULT (-1) NOT NULL,
  1606.   [subjob1_class] INT DEFAULT (-1) NOT NULL,
  1607.   [subjob2_class] INT DEFAULT (-1) NOT NULL,
  1608.   [subjob3_class] INT DEFAULT (-1) NOT NULL
  1609. )
  1610. ON [PRIMARY]
  1611. GO
  1612.  
  1613. CREATE TABLE [dbo].[user_data_moved] (
  1614.   [char_name] nvarchar(50) COLLATE Korean_Wansung_CI_AS NOT NULL,
  1615.   [char_id] INT IDENTITY(1, 1) NOT NULL,
  1616.   [account_name] nvarchar(50) COLLATE Korean_Wansung_CI_AS NOT NULL,
  1617.   [account_id] INT NOT NULL,
  1618.   [pledge_id] INT NOT NULL,
  1619.   [builder] tinyint NOT NULL,
  1620.   [gender] tinyint NOT NULL,
  1621.   [race] tinyint NOT NULL,
  1622.   [class] tinyint NOT NULL,
  1623.   [world] SMALLINT NOT NULL,
  1624.   [xloc] INT NOT NULL,
  1625.   [yloc] INT NOT NULL,
  1626.   [zloc] INT NOT NULL,
  1627.   [IsInVehicle] SMALLINT NOT NULL,
  1628.   [HP] FLOAT NOT NULL,
  1629.   [MP] FLOAT NOT NULL,
  1630.   [SP] INT NOT NULL,
  1631.   [EXP] INT NOT NULL,
  1632.   [Lev] tinyint NOT NULL,
  1633.   [align] INT NOT NULL,
  1634.   [PK] INT NOT NULL,
  1635.   [PKpardon] INT NOT NULL,
  1636.   [Duel] INT NOT NULL,
  1637.   [ST_underware] INT NOT NULL,
  1638.   [ST_right_ear] INT NOT NULL,
  1639.   [ST_left_ear] INT NOT NULL,
  1640.   [ST_neck] INT NOT NULL,
  1641.   [ST_right_finger] INT NOT NULL,
  1642.   [ST_left_finger] INT NOT NULL,
  1643.   [ST_head] INT NOT NULL,
  1644.   [ST_right_hand] INT NOT NULL,
  1645.   [ST_left_hand] INT NOT NULL,
  1646.   [ST_gloves] INT NOT NULL,
  1647.   [ST_chest] INT NOT NULL,
  1648.   [ST_legs] INT NOT NULL,
  1649.   [ST_feet] INT NOT NULL,
  1650.   [ST_back] INT NOT NULL,
  1651.   [ST_both_hand] INT NOT NULL,
  1652.   [create_date] datetime NOT NULL,
  1653.   [login] datetime NULL,
  1654.   [logout] datetime NULL,
  1655.   [quest_flag] BINARY(32) NOT NULL,
  1656.   [nickname] nvarchar(50) COLLATE Korean_Wansung_CI_AS NULL,
  1657.   [power_flag] BINARY(32) NOT NULL,
  1658.   [pledge_dismiss_time] INT NOT NULL,
  1659.   [pledge_leave_time] INT NOT NULL,
  1660.   [pledge_leave_status] tinyint NOT NULL,
  1661.   [max_hp] INT NOT NULL,
  1662.   [max_mp] INT NOT NULL,
  1663.   [quest_memo] CHAR(32) COLLATE Korean_Wansung_CI_AS NULL,
  1664.   [face_index] INT NOT NULL,
  1665.   [hair_shape_index] INT NOT NULL,
  1666.   [hair_color_index] INT NOT NULL,
  1667.   [use_time] INT NOT NULL,
  1668.   [temp_delete_date] smalldatetime NULL,
  1669.   [pledge_ousted_time] INT NOT NULL,
  1670.   [pledge_withdraw_time] INT NOT NULL,
  1671.   [surrender_war_id] INT NOT NULL,
  1672.   [drop_exp] INT NOT NULL
  1673. )
  1674. ON [PRIMARY]
  1675. GO
  1676.  
  1677. CREATE TABLE [dbo].[user_data_temp] (
  1678.   [char_name] nvarchar(50) COLLATE Korean_Wansung_CI_AS NOT NULL,
  1679.   [account_name] nvarchar(50) COLLATE Korean_Wansung_CI_AS NOT NULL,
  1680.   [account_id] INT NOT NULL,
  1681.   [pledge_id] INT NOT NULL,
  1682.   [builder] tinyint NOT NULL,
  1683.   [gender] tinyint NOT NULL,
  1684.   [race] tinyint NOT NULL,
  1685.   [class] tinyint NOT NULL,
  1686.   [world] SMALLINT NOT NULL,
  1687.   [xloc] INT NOT NULL,
  1688.   [yloc] INT NOT NULL,
  1689.   [zloc] INT NOT NULL,
  1690.   [IsInVehicle] SMALLINT NOT NULL,
  1691.   [HP] FLOAT NOT NULL,
  1692.   [MP] FLOAT NOT NULL,
  1693.   [SP] INT NOT NULL,
  1694.   [EXP] INT NOT NULL,
  1695.   [Lev] tinyint NOT NULL,
  1696.   [align] INT NOT NULL,
  1697.   [PK] INT NOT NULL,
  1698.   [PKpardon] INT NOT NULL,
  1699.   [Duel] INT NOT NULL,
  1700.   [ST_underware] INT NOT NULL,
  1701.   [ST_right_ear] INT NOT NULL,
  1702.   [ST_left_ear] INT NOT NULL,
  1703.   [ST_neck] INT NOT NULL,
  1704.   [ST_right_finger] INT NOT NULL,
  1705.   [ST_left_finger] INT NOT NULL,
  1706.   [ST_head] INT NOT NULL,
  1707.   [ST_right_hand] INT NOT NULL,
  1708.   [ST_left_hand] INT NOT NULL,
  1709.   [ST_gloves] INT NOT NULL,
  1710.   [ST_chest] INT NOT NULL,
  1711.   [ST_legs] INT NOT NULL,
  1712.   [ST_feet] INT NOT NULL,
  1713.   [ST_back] INT NOT NULL,
  1714.   [ST_both_hand] INT NOT NULL,
  1715.   [create_date] datetime NOT NULL,
  1716.   [login] datetime NULL,
  1717.   [logout] datetime NULL,
  1718.   [quest_flag] BINARY(32) NOT NULL,
  1719.   [nickname] nvarchar(50) COLLATE Korean_Wansung_CI_AS NULL,
  1720.   [power_flag] BINARY(32) NOT NULL,
  1721.   [pledge_dismiss_time] INT NOT NULL,
  1722.   [pledge_leave_time] INT NOT NULL,
  1723.   [pledge_leave_status] tinyint NOT NULL,
  1724.   [max_hp] INT NOT NULL,
  1725.   [max_mp] INT NOT NULL,
  1726.   [quest_memo] CHAR(32) COLLATE Korean_Wansung_CI_AS NULL,
  1727.   [face_index] INT NOT NULL,
  1728.   [hair_shape_index] INT NOT NULL,
  1729.   [hair_color_index] INT NOT NULL,
  1730.   [use_time] INT NOT NULL,
  1731.   [temp_delete_date] smalldatetime NULL,
  1732.   [pledge_ousted_time] INT NOT NULL,
  1733.   [pledge_withdraw_time] INT NOT NULL,
  1734.   [surrender_war_id] INT NOT NULL,
  1735.   [drop_exp] INT NOT NULL,
  1736.   [old_x] INT NULL,
  1737.   [old_y] INT NULL,
  1738.   [old_z] INT NULL
  1739. )
  1740. ON [PRIMARY]
  1741. GO
  1742.  
  1743. CREATE TABLE [dbo].[user_deleted] (
  1744.   [char_id] INT NOT NULL,
  1745.   [delete_date] datetime NOT NULL
  1746. )
  1747. ON [PRIMARY]
  1748. GO
  1749.  
  1750. CREATE TABLE [dbo].[user_friend] (
  1751.   [char_id] INT NOT NULL,
  1752.   [friend_char_id] INT NOT NULL,
  1753.   [friend_char_name] nvarchar(50) COLLATE Korean_Wansung_CI_AS NOT NULL
  1754. )
  1755. ON [PRIMARY]
  1756. GO
  1757.  
  1758. CREATE TABLE [dbo].[user_henna] (
  1759.   [char_id] INT NOT NULL,
  1760.   [henna_1] INT DEFAULT 0 NOT NULL,
  1761.   [henna_2] INT DEFAULT 0 NOT NULL,
  1762.   [henna_3] INT DEFAULT 0 NOT NULL,
  1763.   [subjob_id] INT NULL
  1764. )
  1765. ON [PRIMARY]
  1766. GO
  1767.  
  1768. CREATE TABLE [dbo].[user_history] (
  1769.   [char_name] nvarchar(50) COLLATE Korean_Wansung_CI_AS NOT NULL,
  1770.   [char_id] INT NOT NULL,
  1771.   [log_date] datetime DEFAULT getdate() NOT NULL,
  1772.   [log_action] tinyint NOT NULL,
  1773.   [account_name] nvarchar(50) COLLATE Korean_Wansung_CI_AS NULL,
  1774.   [create_date] datetime NULL
  1775. )
  1776. ON [PRIMARY]
  1777. GO
  1778.  
  1779. CREATE TABLE [dbo].[user_item] (
  1780.   [item_id] INT IDENTITY(1, 1) NOT FOR REPLICATION NOT NULL,
  1781.   [char_id] INT NOT NULL,
  1782.   [item_type] INT NOT NULL,
  1783.   [amount] INT NOT NULL,
  1784.   [enchant] INT NOT NULL,
  1785.   [eroded] INT NOT NULL,
  1786.   [bless] tinyint NOT NULL,
  1787.   [ident] INT NOT NULL,
  1788.   [wished] tinyint DEFAULT 0 NOT NULL,
  1789.   [warehouse] INT NOT NULL
  1790. )
  1791. ON [PRIMARY]
  1792. GO
  1793.  
  1794. CREATE TABLE [dbo].[user_journal] (
  1795.   [char_id] INT NOT NULL,
  1796.   [TYPE] SMALLINT NOT NULL,
  1797.   [int_data_1] INT NULL,
  1798.   [int_data_2] INT NULL,
  1799.   [log_data] smalldatetime DEFAULT getdate() NOT NULL,
  1800.   [play_time] INT NOT NULL
  1801. )
  1802. ON [PRIMARY]
  1803. GO
  1804.  
  1805. CREATE TABLE [dbo].[user_log] (
  1806.   [char_id] INT NULL,
  1807.   [log_id] tinyint NULL,
  1808.   [log_date] datetime DEFAULT getdate() NULL,
  1809.   [log_from] INT NULL,
  1810.   [log_to] INT NULL,
  1811.   [use_time] INT NULL,
  1812.   [subjob_id] INT NULL
  1813. )
  1814. ON [PRIMARY]
  1815. GO
  1816.  
  1817. CREATE TABLE [dbo].[user_macro] (
  1818.   [macro_id] INT IDENTITY(1, 1) NOT NULL,
  1819.   [char_id] INT NULL,
  1820.   [macro_name] nvarchar(64) COLLATE Korean_Wansung_CI_AS NULL,
  1821.   [macro_tooltip] nvarchar(64) COLLATE Korean_Wansung_CI_AS NULL,
  1822.   [macro_iconname] nvarchar(64) COLLATE Korean_Wansung_CI_AS NULL,
  1823.   [macro_icontype] INT NULL
  1824. )
  1825. ON [PRIMARY]
  1826. GO
  1827.  
  1828. CREATE TABLE [dbo].[user_macroinfo] (
  1829.   [macro_id] INT NOT NULL,
  1830.   [macro_order] INT NULL,
  1831.   [macro_int1] INT NULL,
  1832.   [macro_int2] INT NULL,
  1833.   [macro_int3] INT NULL,
  1834.   [macro_str] nvarchar(255) COLLATE Korean_Wansung_CI_AS NULL
  1835. )
  1836. ON [PRIMARY]
  1837. GO
  1838.  
  1839. CREATE TABLE [dbo].[user_mail] (
  1840.   [id] INT IDENTITY(1, 1) NOT NULL,
  1841.   [created_date] datetime DEFAULT getdate() NOT NULL,
  1842.   [title] nvarchar(200) COLLATE Korean_Wansung_CI_AS NOT NULL,
  1843.   [content] nvarchar(3500) COLLATE Korean_Wansung_CI_AS NOT NULL
  1844. )
  1845. ON [PRIMARY]
  1846. GO
  1847.  
  1848. CREATE TABLE [dbo].[user_mail_receiver] (
  1849.   [mail_id] INT NOT NULL,
  1850.   [mailbox_type] tinyint DEFAULT 0 NOT NULL,
  1851.   [receiver_id] INT NOT NULL,
  1852.   [receiver_name] nvarchar(50) COLLATE Korean_Wansung_CI_AS NOT NULL,
  1853.   [read_date] datetime NULL,
  1854.   [read_status] tinyint DEFAULT 0 NOT NULL,
  1855.   [deleted] tinyint DEFAULT 0 NOT NULL
  1856. )
  1857. ON [PRIMARY]
  1858. GO
  1859.  
  1860. CREATE TABLE [dbo].[user_mail_sender] (
  1861.   [mail_id] INT NOT NULL,
  1862.   [related_id] INT NOT NULL,
  1863.   [mail_type] tinyint NOT NULL,
  1864.   [mailbox_type] tinyint DEFAULT 1 NOT NULL,
  1865.   [sender_id] INT NOT NULL,
  1866.   [sender_name] nvarchar(50) COLLATE Korean_Wansung_CI_AS NOT NULL,
  1867.   [send_date] datetime DEFAULT getdate() NOT NULL,
  1868.   [receiver_name_list] nvarchar(250) COLLATE Korean_Wansung_CI_AS NOT NULL,
  1869.   [deleted] tinyint DEFAULT 0 NOT NULL
  1870. )
  1871. ON [PRIMARY]
  1872. GO
  1873.  
  1874. CREATE TABLE [dbo].[user_name_color] (
  1875.   [char_id] INT NOT NULL,
  1876.   [color_rgb] INT NOT NULL
  1877. )
  1878. ON [PRIMARY]
  1879. GO
  1880.  
  1881. CREATE TABLE [dbo].[user_name_reserved] (
  1882.   [char_name] nvarchar(50) COLLATE Korean_Wansung_CI_AS NOT NULL,
  1883.   [account_id] INT DEFAULT 0 NOT NULL,
  1884.   [used] tinyint DEFAULT 0 NOT NULL
  1885. )
  1886. ON [PRIMARY]
  1887. GO
  1888.  
  1889. CREATE TABLE [dbo].[user_newbie] (
  1890.   [account_id] INT NOT NULL,
  1891.   [char_id] INT DEFAULT 0 NOT NULL,
  1892.   [newbie_stat] SMALLINT NOT NULL
  1893. )
  1894. ON [PRIMARY]
  1895. GO
  1896.  
  1897. CREATE TABLE [dbo].[user_nobless] (
  1898.   [char_id] INT NOT NULL,
  1899.   [nobless_type] tinyint DEFAULT 0 NULL,
  1900.   [hero_type] tinyint DEFAULT 0 NULL,
  1901.   [win_count] INT DEFAULT 0 NULL,
  1902.   [previous_point] INT DEFAULT 0 NULL,
  1903.   [olympiad_point] INT DEFAULT 0 NULL,
  1904.   [match_count] INT DEFAULT 0 NULL,
  1905.   [words] VARCHAR(128) COLLATE Korean_Wansung_CI_AS NULL,
  1906.   [olympiad_win_count] INT DEFAULT 0 NULL,
  1907.   [olympiad_lose_count] INT DEFAULT 0 NULL,
  1908.   [history_open] tinyint DEFAULT 0 NULL
  1909. )
  1910. ON [PRIMARY]
  1911. GO
  1912.  
  1913. CREATE TABLE [dbo].[user_prohibit] (
  1914.   [char_name] nvarchar(50) COLLATE Korean_Wansung_CI_AS NOT NULL
  1915. )
  1916. ON [PRIMARY]
  1917. GO
  1918.  
  1919. CREATE TABLE [dbo].[user_prohibit_word] (
  1920.   [words] nvarchar(50) COLLATE Korean_Wansung_CI_AS NOT NULL
  1921. )
  1922. ON [PRIMARY]
  1923. GO
  1924.  
  1925. CREATE TABLE [dbo].[user_punish] (
  1926.   [char_id] INT NOT NULL,
  1927.   [punish_id] INT NOT NULL,
  1928.   [punish_on] tinyint DEFAULT 0 NOT NULL,
  1929.   [remain_game] INT NULL,
  1930.   [remain_real] INT NULL,
  1931.   [punish_seconds] INT NULL,
  1932.   [punish_date] datetime DEFAULT getdate() NULL
  1933. )
  1934. ON [PRIMARY]
  1935. GO
  1936.  
  1937. CREATE TABLE [dbo].[user_recipe] (
  1938.   [char_id] INT NOT NULL,
  1939.   [recipe_id] INT NOT NULL
  1940. )
  1941. ON [PRIMARY]
  1942. GO
  1943.  
  1944. CREATE TABLE [dbo].[user_skill] (
  1945.   [char_id] INT NOT NULL,
  1946.   [skill_id] INT NOT NULL,
  1947.   [skill_lev] tinyint DEFAULT 0 NOT NULL,
  1948.   [to_end_time] INT DEFAULT 0 NOT NULL,
  1949.   [subjob_id] INT DEFAULT 0 NOT NULL
  1950. )
  1951. ON [PRIMARY]
  1952. GO
  1953.  
  1954. CREATE TABLE [dbo].[user_skill_old] (
  1955.   [char_id] INT NOT NULL,
  1956.   [skill_id] INT NOT NULL,
  1957.   [skill_lev] tinyint NOT NULL,
  1958.   [to_end_time] INT NOT NULL
  1959. )
  1960. ON [PRIMARY]
  1961. GO
  1962.  
  1963. CREATE TABLE [dbo].[user_sociality] (
  1964.   [char_id] INT NOT NULL,
  1965.   [sociality] INT NOT NULL,
  1966.   [used_sulffrage] INT NOT NULL,
  1967.   [last_changed] datetime NOT NULL
  1968. )
  1969. ON [PRIMARY]
  1970. GO
  1971.  
  1972. CREATE TABLE [dbo].[user_subjob] (
  1973.   [char_id] INT NULL,
  1974.   [hp] FLOAT NULL,
  1975.   [mp] FLOAT NULL,
  1976.   [sp] INT NULL,
  1977.   [EXP] INT NULL,
  1978.   [level] tinyint NULL,
  1979.   [henna_1] INT NULL,
  1980.   [henna_2] INT NULL,
  1981.   [henna_3] INT NULL,
  1982.   [subjob_id] INT NULL,
  1983.   [create_date] datetime NULL
  1984. )
  1985. ON [PRIMARY]
  1986. GO
  1987.  
  1988. CREATE TABLE [dbo].[user_surrender] (
  1989.   [char_id] INT NOT NULL,
  1990.   [surrender_war_id] INT NOT NULL
  1991. )
  1992. ON [PRIMARY]
  1993. GO
  1994.  
  1995. CREATE TABLE [dbo].[user_warehouse] (
  1996.   [item_id] INT NOT NULL,
  1997.   [char_id] INT NOT NULL,
  1998.   [item_type] INT NOT NULL,
  1999.   [amount] INT NOT NULL,
  2000.   [enchant] INT NOT NULL,
  2001.   [eroded] INT NOT NULL,
  2002.   [bless] tinyint NOT NULL,
  2003.   [ident] tinyint NOT NULL,
  2004.   [wished] tinyint NULL,
  2005.   [warehouse] INT NOT NULL
  2006. )
  2007. ON [PRIMARY]
  2008. GO
  2009.  
  2010. CREATE TABLE [dbo].[war_declare] (
  2011.   [challenger] INT NOT NULL,
  2012.   [challengee] INT NOT NULL,
  2013.   [declare_time] INT NOT NULL
  2014. )
  2015. ON [PRIMARY]
  2016. GO
  2017.  
  2018. ALTER TABLE [dbo].[agit]
  2019. ADD CONSTRAINT [PK_agit]
  2020. PRIMARY KEY CLUSTERED ([id])
  2021. WITH FILLFACTOR = 90
  2022. ON [PRIMARY]
  2023. GO
  2024.  
  2025. CREATE NONCLUSTERED INDEX [IX_agit_adena] ON [dbo].[agit_adena]
  2026.   ([pledge_id], [auction_id], [reason])
  2027. ON [PRIMARY]
  2028. GO
  2029.  
  2030. CREATE NONCLUSTERED INDEX [IX_agit_auction_1] ON [dbo].[agit_auction]
  2031.   ([agit_id], [auction_time] DESC)
  2032. ON [PRIMARY]
  2033. GO
  2034.  
  2035. CREATE NONCLUSTERED INDEX [IX_agit_auction_2] ON [dbo].[agit_auction]
  2036.   ([auction_id])
  2037. ON [PRIMARY]
  2038. GO
  2039.  
  2040. CREATE NONCLUSTERED INDEX [IX_agit_auction] ON [dbo].[agit_bid]
  2041.   ([auction_id])
  2042. ON [PRIMARY]
  2043. GO
  2044.  
  2045. ALTER TABLE [dbo].[agit_bid]
  2046. ADD CONSTRAINT [IX_agit_bid]
  2047. UNIQUE NONCLUSTERED ([auction_id], [attend_pledge_id])
  2048. ON [PRIMARY]
  2049. GO
  2050.  
  2051. CREATE NONCLUSTERED INDEX [IX_agit_price] ON [dbo].[agit_bid]
  2052.   ([attend_price] DESC, [attend_date])
  2053. ON [PRIMARY]
  2054. GO
  2055.  
  2056. ALTER TABLE [dbo].[agit_deco]
  2057. ADD CONSTRAINT [PK_agit_deco]
  2058. PRIMARY KEY CLUSTERED ([agit_id], [TYPE])
  2059. ON [PRIMARY]
  2060. GO
  2061.  
  2062. ALTER TABLE [dbo].[Alliance]
  2063. ADD CONSTRAINT [PK_Alliance]
  2064. PRIMARY KEY CLUSTERED ([name])
  2065. WITH FILLFACTOR = 90
  2066. ON [PRIMARY]
  2067. GO
  2068.  
  2069. CREATE NONCLUSTERED INDEX [ix_bookmark] ON [dbo].[bookmark]
  2070.   ([char_id])
  2071. WITH
  2072.   FILLFACTOR = 90
  2073. ON [PRIMARY]
  2074. GO
  2075.  
  2076. ALTER TABLE [dbo].[builder_account]
  2077. ADD CONSTRAINT [PK_account_builder]
  2078. PRIMARY KEY CLUSTERED ([account_name])
  2079. WITH FILLFACTOR = 90
  2080. ON [PRIMARY]
  2081. GO
  2082.  
  2083. ALTER TABLE [dbo].[castle]
  2084. ADD CONSTRAINT [PK_castle]
  2085. PRIMARY KEY CLUSTERED ([id])
  2086. WITH FILLFACTOR = 90
  2087. ON [PRIMARY]
  2088. GO
  2089.  
  2090. ALTER TABLE [dbo].[castle_crop]
  2091. ADD CONSTRAINT [PK_castle_crop]
  2092. PRIMARY KEY CLUSTERED ([castle_id], [item_type])
  2093. ON [PRIMARY]
  2094. GO
  2095.  
  2096. ALTER TABLE [dbo].[ch3_lotto_char]
  2097. ADD PRIMARY KEY CLUSTERED ([char_id])
  2098. ON [PRIMARY]
  2099. GO
  2100.  
  2101. ALTER TABLE [dbo].[control_tower]
  2102. ADD PRIMARY KEY CLUSTERED ([name])
  2103. ON [PRIMARY]
  2104. GO
  2105.  
  2106. ALTER TABLE [dbo].[door]
  2107. ADD CONSTRAINT [PK_door]
  2108. PRIMARY KEY CLUSTERED ([name])
  2109. WITH FILLFACTOR = 90
  2110. ON [PRIMARY]
  2111. GO
  2112.  
  2113. CREATE NONCLUSTERED INDEX [IX_err_table2] ON [dbo].[err_skill_1]
  2114.   ([class], [lev])
  2115. ON [PRIMARY]
  2116. GO
  2117.  
  2118. CREATE CLUSTERED INDEX [IX_event_point] ON [dbo].[event_point]
  2119.   ([group_id])
  2120. WITH
  2121.   FILLFACTOR = 90
  2122. ON [PRIMARY]
  2123. GO
  2124.  
  2125. ALTER TABLE [dbo].[item_classid_normal]
  2126. ADD CONSTRAINT [PK_item_classid_normal]
  2127. PRIMARY KEY CLUSTERED ([id])
  2128. WITH FILLFACTOR = 90
  2129. ON [PRIMARY]
  2130. GO
  2131.  
  2132. CREATE NONCLUSTERED INDEX [idx_itemdata_name] ON [dbo].[ItemData]
  2133.   ([name])
  2134. WITH
  2135.   FILLFACTOR = 90
  2136. ON [PRIMARY]
  2137. GO
  2138.  
  2139. CREATE NONCLUSTERED INDEX [IX_ItemData] ON [dbo].[ItemData]
  2140.   ([id], [consumetype])
  2141. WITH
  2142.   FILLFACTOR = 90
  2143. ON [PRIMARY]
  2144. GO
  2145.  
  2146. ALTER TABLE [dbo].[ItemData]
  2147. ADD CONSTRAINT [PK_ItemData]
  2148. PRIMARY KEY CLUSTERED ([id])
  2149. WITH FILLFACTOR = 90
  2150. ON [PRIMARY]
  2151. GO
  2152.  
  2153. ALTER TABLE [dbo].[lotto_game]
  2154. ADD CONSTRAINT [PK_lotto_game]
  2155. PRIMARY KEY CLUSTERED ([round_number])
  2156. ON [PRIMARY]
  2157. GO
  2158.  
  2159. CREATE CLUSTERED INDEX [IX_lotto_items] ON [dbo].[lotto_items]
  2160.   ([round_number])
  2161. WITH
  2162.   FILLFACTOR = 90
  2163. ON [PRIMARY]
  2164. GO
  2165.  
  2166. ALTER TABLE [dbo].[manor_data]
  2167. ADD CONSTRAINT [PK_manor_data]
  2168. PRIMARY KEY CLUSTERED ([manor_id], [data_index])
  2169. ON [PRIMARY]
  2170. GO
  2171.  
  2172. ALTER TABLE [dbo].[manor_data_n]
  2173. ADD CONSTRAINT [PK_manor_data_n]
  2174. PRIMARY KEY CLUSTERED ([manor_id], [data_index])
  2175. ON [PRIMARY]
  2176. GO
  2177.  
  2178. ALTER TABLE [dbo].[manor_info]
  2179. ADD CONSTRAINT [PK_manor_info]
  2180. PRIMARY KEY CLUSTERED ([manor_id])
  2181. ON [PRIMARY]
  2182. GO
  2183.  
  2184. CREATE CLUSTERED INDEX [IX_monrace] ON [dbo].[monrace]
  2185.   ([race_id])
  2186. WITH
  2187.   FILLFACTOR = 90
  2188. ON [PRIMARY]
  2189. GO
  2190.  
  2191. CREATE NONCLUSTERED INDEX [IX_monrace_ticket] ON [dbo].[monrace_ticket]
  2192.   ([item_id])
  2193. WITH
  2194.   FILLFACTOR = 90
  2195. ON [PRIMARY]
  2196. GO
  2197.  
  2198. CREATE CLUSTERED INDEX [IX_monrace_ticket_1] ON [dbo].[monrace_ticket]
  2199.   ([monraceid], [bet_type], [bet_1], [bet_2])
  2200. WITH
  2201.   FILLFACTOR = 90
  2202. ON [PRIMARY]
  2203. GO
  2204.  
  2205. CREATE UNIQUE NONCLUSTERED INDEX [idx_npc_boss_unique_name] ON [dbo].[npc_boss]
  2206.   ([npc_db_name])
  2207. WITH
  2208.   FILLFACTOR = 90
  2209. ON [PRIMARY]
  2210. GO
  2211.  
  2212. ALTER TABLE [dbo].[object_data]
  2213. ADD CONSTRAINT [PK_object_data]
  2214. PRIMARY KEY CLUSTERED ([id])
  2215. WITH FILLFACTOR = 90
  2216. ON [PRIMARY]
  2217. GO
  2218.  
  2219. ALTER TABLE [dbo].[olympiad_result]
  2220. ADD CONSTRAINT [PK_olympiad_result]
  2221. PRIMARY KEY CLUSTERED ([season], [class], [char_id])
  2222. ON [PRIMARY]
  2223. GO
  2224.  
  2225. ALTER TABLE [dbo].[pet_data]
  2226. ADD CONSTRAINT [PK_pet_data]
  2227. PRIMARY KEY CLUSTERED ([pet_id])
  2228. WITH FILLFACTOR = 90
  2229. ON [PRIMARY]
  2230. GO
  2231.  
  2232. CREATE NONCLUSTERED INDEX [idx_petmsg_charid] ON [dbo].[PetitionMsg]
  2233.   ([Char_Id])
  2234. WITH
  2235.   FILLFACTOR = 90
  2236. ON [PRIMARY]
  2237. GO
  2238.  
  2239. ALTER TABLE [dbo].[Pledge]
  2240. ADD CONSTRAINT [IX_Pledge]
  2241. UNIQUE NONCLUSTERED ([name])
  2242. WITH FILLFACTOR = 90
  2243. ON [PRIMARY]
  2244. GO
  2245.  
  2246. ALTER TABLE [dbo].[Pledge]
  2247. ADD CONSTRAINT [PK_Pledge]
  2248. PRIMARY KEY CLUSTERED ([pledge_id])
  2249. WITH FILLFACTOR = 90
  2250. ON [PRIMARY]
  2251. GO
  2252.  
  2253. ALTER TABLE [dbo].[pledge_contribution]
  2254. ADD CONSTRAINT [PK_pledge_contribution]
  2255. PRIMARY KEY CLUSTERED ([residence_id], [pledge_id])
  2256. WITH FILLFACTOR = 90
  2257. ON [PRIMARY]
  2258. GO
  2259.  
  2260. ALTER TABLE [dbo].[Pledge_Crest]
  2261. ADD CONSTRAINT [PK_Pledge_Crest]
  2262. PRIMARY KEY CLUSTERED ([crest_id])
  2263. WITH FILLFACTOR = 90
  2264. ON [PRIMARY]
  2265. GO
  2266.  
  2267. CREATE UNIQUE NONCLUSTERED INDEX [IX_Quest] ON [dbo].[quest]
  2268.   ([char_id])
  2269. WITH
  2270.   FILLFACTOR = 90
  2271. ON [PRIMARY]
  2272. GO
  2273.  
  2274. ALTER TABLE [dbo].[req_charmove_old]
  2275. ADD CONSTRAINT [IX_req_charmove]
  2276. UNIQUE NONCLUSTERED ([new_char_name])
  2277. ON [PRIMARY]
  2278. GO
  2279.  
  2280. ALTER TABLE [dbo].[req_charmove_old]
  2281. ADD CONSTRAINT [IX_req_charmove_1]
  2282. UNIQUE NONCLUSTERED ([old_char_id], [old_world_id])
  2283. ON [PRIMARY]
  2284. GO
  2285.  
  2286. ALTER TABLE [dbo].[req_charmove_old]
  2287. ADD CONSTRAINT [IX_req_charmove_2]
  2288. UNIQUE NONCLUSTERED ([account_id])
  2289. ON [PRIMARY]
  2290. GO
  2291.  
  2292. ALTER TABLE [dbo].[req_charmove_old]
  2293. ADD CONSTRAINT [IX_req_charmove_3]
  2294. UNIQUE NONCLUSTERED ([new_char_name], [new_world_id])
  2295. ON [PRIMARY]
  2296. GO
  2297.  
  2298. ALTER TABLE [dbo].[residence_guard]
  2299. ADD CONSTRAINT [pk_residence_guard]
  2300. PRIMARY KEY CLUSTERED ([x], [y], [z])
  2301. ON [PRIMARY]
  2302. GO
  2303.  
  2304. ALTER TABLE [dbo].[shortcut_data]
  2305. ADD CONSTRAINT [PK_shortcut_data]
  2306. PRIMARY KEY CLUSTERED ([char_id], [slotnum], [subjob_id])
  2307. ON [PRIMARY]
  2308. GO
  2309.  
  2310. ALTER TABLE [dbo].[siege_agit_pledge]
  2311. ADD CONSTRAINT [sap_uniq]
  2312. UNIQUE NONCLUSTERED ([agit_id], [pledge_id])
  2313. ON [PRIMARY]
  2314. GO
  2315.  
  2316. CREATE NONCLUSTERED INDEX [IX_name] ON [dbo].[SkillData]
  2317.   ([name])
  2318. ON [PRIMARY]
  2319. GO
  2320.  
  2321. ALTER TABLE [dbo].[SkillData]
  2322. ADD CONSTRAINT [PK_SkillData]
  2323. PRIMARY KEY CLUSTERED ([id], [lev])
  2324. WITH FILLFACTOR = 90
  2325. ON [PRIMARY]
  2326. GO
  2327.  
  2328. ALTER TABLE [dbo].[team_battle_agit_member]
  2329. ADD CONSTRAINT [tbam_uniq]
  2330. UNIQUE NONCLUSTERED ([agit_id], [char_id])
  2331. ON [PRIMARY]
  2332. GO
  2333.  
  2334. ALTER TABLE [dbo].[team_battle_agit_pledge]
  2335. ADD CONSTRAINT [tbap_uniq]
  2336. UNIQUE NONCLUSTERED ([agit_id], [pledge_id])
  2337. ON [PRIMARY]
  2338. GO
  2339.  
  2340. ALTER TABLE [dbo].[time_data]
  2341. ADD CONSTRAINT [PK_char_data2]
  2342. PRIMARY KEY CLUSTERED ([account_id])
  2343. ON [PRIMARY]
  2344. GO
  2345.  
  2346. CREATE NONCLUSTERED INDEX [idx_user_ActiveSkill] ON [dbo].[user_ActiveSkill]
  2347.   ([char_id])
  2348. WITH
  2349.   FILLFACTOR = 90
  2350. ON [PRIMARY]
  2351. GO
  2352.  
  2353. CREATE UNIQUE NONCLUSTERED INDEX [IX_user_ActiveSkill] ON [dbo].[user_ActiveSkill]
  2354.   ([char_id])
  2355. WITH
  2356.   FILLFACTOR = 90
  2357. ON [PRIMARY]
  2358. GO
  2359.  
  2360. ALTER TABLE [dbo].[user_ban]
  2361. ADD CONSTRAINT [PK_user_ban]
  2362. PRIMARY KEY CLUSTERED ([char_id])
  2363. ON [PRIMARY]
  2364. GO
  2365.  
  2366. ALTER TABLE [dbo].[user_blocklist]
  2367. ADD CONSTRAINT [PK_user_blocklist]
  2368. PRIMARY KEY CLUSTERED ([char_id], [block_char_id])
  2369. ON [PRIMARY]
  2370. GO
  2371.  
  2372. CREATE CLUSTERED INDEX [IX_user_comment] ON [dbo].[user_comment]
  2373.   ([char_id], [deleted], [comment_id])
  2374. WITH
  2375.   FILLFACTOR = 90
  2376. ON [PRIMARY]
  2377. GO
  2378.  
  2379. CREATE NONCLUSTERED INDEX [IX_user_comment_1] ON [dbo].[user_comment]
  2380.   ([comment_id])
  2381. WITH
  2382.   FILLFACTOR = 90
  2383. ON [PRIMARY]
  2384. GO
  2385.  
  2386. CREATE NONCLUSTERED INDEX [idx_user_data_1] ON [dbo].[user_data]
  2387.   ([account_id])
  2388. WITH
  2389.   FILLFACTOR = 90
  2390. ON [PRIMARY]
  2391. GO
  2392.  
  2393. CREATE NONCLUSTERED INDEX [idx_user_data_account_name] ON [dbo].[user_data]
  2394.   ([account_name])
  2395. WITH
  2396.   FILLFACTOR = 90
  2397. ON [PRIMARY]
  2398. GO
  2399.  
  2400. CREATE NONCLUSTERED INDEX [idx_user_data_pledge] ON [dbo].[user_data]
  2401.   ([pledge_id])
  2402. WITH
  2403.   FILLFACTOR = 90
  2404. ON [PRIMARY]
  2405. GO
  2406.  
  2407. CREATE UNIQUE NONCLUSTERED INDEX [idx_user_data1] ON [dbo].[user_data]
  2408.   ([char_name])
  2409. WITH
  2410.   FILLFACTOR = 90
  2411. ON [PRIMARY]
  2412. GO
  2413.  
  2414. ALTER TABLE [dbo].[user_data]
  2415. ADD CONSTRAINT [PK_user_data]
  2416. PRIMARY KEY CLUSTERED ([char_id])
  2417. WITH FILLFACTOR = 90
  2418. ON [PRIMARY]
  2419. GO
  2420.  
  2421. ALTER TABLE [dbo].[user_friend]
  2422. ADD CONSTRAINT [PK_user_friend]
  2423. PRIMARY KEY CLUSTERED ([char_id], [friend_char_id])
  2424. WITH FILLFACTOR = 90
  2425. ON [PRIMARY]
  2426. GO
  2427.  
  2428. ALTER TABLE [dbo].[user_henna]
  2429. ADD CONSTRAINT [PK_user_henna]
  2430. PRIMARY KEY CLUSTERED ([char_id])
  2431. ON [PRIMARY]
  2432. GO
  2433.  
  2434. CREATE NONCLUSTERED INDEX [IX_user_history] ON [dbo].[user_history]
  2435.   ([char_name])
  2436. WITH
  2437.   FILLFACTOR = 90
  2438. ON [PRIMARY]
  2439. GO
  2440.  
  2441. CREATE NONCLUSTERED INDEX [idx_item_type] ON [dbo].[user_item]
  2442.   ([item_type])
  2443. WITH
  2444.   FILLFACTOR = 90
  2445. ON [PRIMARY]
  2446. GO
  2447.  
  2448. CREATE CLUSTERED INDEX [idx_user_item_charid] ON [dbo].[user_item]
  2449.   ([char_id])
  2450. WITH
  2451.   FILLFACTOR = 90
  2452. ON [PRIMARY]
  2453. GO
  2454.  
  2455. CREATE NONCLUSTERED INDEX [idx_useritem_ware] ON [dbo].[user_item]
  2456.   ([warehouse])
  2457. WITH
  2458.   FILLFACTOR = 90
  2459. ON [PRIMARY]
  2460. GO
  2461.  
  2462. CREATE NONCLUSTERED INDEX [idx_warehouse] ON [dbo].[user_item]
  2463.   ([warehouse])
  2464. WITH
  2465.   FILLFACTOR = 90
  2466. ON [PRIMARY]
  2467. GO
  2468.  
  2469. ALTER TABLE [dbo].[user_item]
  2470. ADD CONSTRAINT [pk_user_item]
  2471. PRIMARY KEY NONCLUSTERED ([item_id])
  2472. WITH FILLFACTOR = 90
  2473. ON [PRIMARY]
  2474. GO
  2475.  
  2476. CREATE CLUSTERED INDEX [IX_user_log] ON [dbo].[user_log]
  2477.   ([char_id], [log_id], [log_to])
  2478. WITH
  2479.   FILLFACTOR = 90
  2480. ON [PRIMARY]
  2481. GO
  2482.  
  2483. ALTER TABLE [dbo].[user_macro]
  2484. ADD CONSTRAINT [IX_user_macro]
  2485. UNIQUE CLUSTERED ([char_id], [macro_id])
  2486. WITH FILLFACTOR = 90
  2487. ON [PRIMARY]
  2488. GO
  2489.  
  2490. CREATE CLUSTERED INDEX [IX_user_macroinfo] ON [dbo].[user_macroinfo]
  2491.   ([macro_id], [macro_order])
  2492. WITH
  2493.   FILLFACTOR = 90
  2494. ON [PRIMARY]
  2495. GO
  2496.  
  2497. CREATE NONCLUSTERED INDEX [IX_user_mail_1] ON [dbo].[user_mail]
  2498.   ([id])
  2499. ON [PRIMARY]
  2500. GO
  2501.  
  2502. ALTER TABLE [dbo].[user_mail]
  2503. ADD CONSTRAINT [PK_user_mail]
  2504. PRIMARY KEY CLUSTERED ([id])
  2505. ON [PRIMARY]
  2506. GO
  2507.  
  2508. CREATE NONCLUSTERED INDEX [IX_user_mail_receiver_1] ON [dbo].[user_mail_receiver]
  2509.   ([mail_id])
  2510. ON [PRIMARY]
  2511. GO
  2512.  
  2513. CREATE NONCLUSTERED INDEX [IX_user_mail_receiver_2] ON [dbo].[user_mail_receiver]
  2514.   ([receiver_id], [read_status], [deleted])
  2515. ON [PRIMARY]
  2516. GO
  2517.  
  2518. CREATE CLUSTERED INDEX [IX_user_mail_sender] ON [dbo].[user_mail_sender]
  2519.   ([sender_id], [mailbox_type], [deleted])
  2520. ON [PRIMARY]
  2521. GO
  2522.  
  2523. CREATE NONCLUSTERED INDEX [IX_user_mail_sender_1] ON [dbo].[user_mail_sender]
  2524.   ([mail_id])
  2525. ON [PRIMARY]
  2526. GO
  2527.  
  2528. ALTER TABLE [dbo].[user_name_color]
  2529. ADD CONSTRAINT [PK_user_name_color]
  2530. PRIMARY KEY CLUSTERED ([char_id])
  2531. ON [PRIMARY]
  2532. GO
  2533.  
  2534. ALTER TABLE [dbo].[user_name_reserved]
  2535. ADD CONSTRAINT [PK_user_name_reserved]
  2536. PRIMARY KEY CLUSTERED ([char_name])
  2537. WITH FILLFACTOR = 90
  2538. ON [PRIMARY]
  2539. GO
  2540.  
  2541. ALTER TABLE [dbo].[user_newbie]
  2542. ADD CONSTRAINT [PK_user_newbie]
  2543. PRIMARY KEY CLUSTERED ([account_id])
  2544. ON [PRIMARY]
  2545. GO
  2546.  
  2547. ALTER TABLE [dbo].[user_nobless]
  2548. ADD PRIMARY KEY CLUSTERED ([char_id])
  2549. ON [PRIMARY]
  2550. GO
  2551.  
  2552. ALTER TABLE [dbo].[user_prohibit]
  2553. ADD CONSTRAINT [PK_user_prohibit]
  2554. PRIMARY KEY CLUSTERED ([char_name])
  2555. WITH FILLFACTOR = 90
  2556. ON [PRIMARY]
  2557. GO
  2558.  
  2559. ALTER TABLE [dbo].[user_prohibit_word]
  2560. ADD CONSTRAINT [PK_user_prohibit_word]
  2561. PRIMARY KEY CLUSTERED ([words])
  2562. WITH FILLFACTOR = 90
  2563. ON [PRIMARY]
  2564. GO
  2565.  
  2566. CREATE NONCLUSTERED INDEX [IX_user_punish] ON [dbo].[user_punish]
  2567.   ([char_id], [punish_id])
  2568. WITH
  2569.   FILLFACTOR = 90
  2570. ON [PRIMARY]
  2571. GO
  2572.  
  2573. ALTER TABLE [dbo].[user_recipe]
  2574. ADD CONSTRAINT [PK_user_recipe]
  2575. PRIMARY KEY CLUSTERED ([char_id], [recipe_id])
  2576. ON [PRIMARY]
  2577. GO
  2578.  
  2579. CREATE NONCLUSTERED INDEX [idx_skill_lev] ON [dbo].[user_skill]
  2580.   ([skill_lev])
  2581. WITH
  2582.   FILLFACTOR = 90
  2583. ON [PRIMARY]
  2584. GO
  2585.  
  2586. CREATE NONCLUSTERED INDEX [idx_skill_toend] ON [dbo].[user_skill]
  2587.   ([to_end_time])
  2588. WITH
  2589.   FILLFACTOR = 90
  2590. ON [PRIMARY]
  2591. GO
  2592.  
  2593. ALTER TABLE [dbo].[user_skill]
  2594. ADD CONSTRAINT [PK_user_skill]
  2595. PRIMARY KEY CLUSTERED ([char_id], [skill_id], [subjob_id])
  2596. ON [PRIMARY]
  2597. GO
  2598.  
  2599. ALTER TABLE [dbo].[user_sociality]
  2600. ADD CONSTRAINT [PK_user_sociality]
  2601. PRIMARY KEY CLUSTERED ([char_id])
  2602. ON [PRIMARY]
  2603. GO
  2604.  
  2605. CREATE NONCLUSTERED INDEX [idx_user_warehouse_charid] ON [dbo].[user_warehouse]
  2606.   ([char_id])
  2607. WITH
  2608.   FILLFACTOR = 90
  2609. ON [PRIMARY]
  2610. GO
  2611.  
  2612. CREATE UNIQUE NONCLUSTERED INDEX [idx_user_warehouse_itemid] ON [dbo].[user_warehouse]
  2613.   ([item_id])
  2614. WITH
  2615.   FILLFACTOR = 90
  2616. ON [PRIMARY]
  2617. GO
  2618.  
  2619. CREATE NONCLUSTERED INDEX [idx_user_warehouse_itemtype] ON [dbo].[user_warehouse]
  2620.   ([item_type])
  2621. WITH
  2622.   FILLFACTOR = 90
  2623. ON [PRIMARY]
  2624. GO
  2625.  
  2626. ALTER TABLE [dbo].[war_declare]
  2627. ADD CONSTRAINT [PK_war_declare]
  2628. PRIMARY KEY CLUSTERED ([challenger], [challengee])
  2629. ON [PRIMARY]
  2630. GO
  2631.  
  2632. CREATE PROCEDURE [dbo].[DB_BACKUP]
  2633.  
  2634. AS
  2635. SELECT 0
  2636. GO
  2637.  
  2638. CREATE PROCEDURE [dbo].[dp_adena_rank]
  2639.  
  2640. AS
  2641. SELECT 0
  2642. GO
  2643.  
  2644. CREATE PROCEDURE [dbo].[dp_GetItemListByAccount]
  2645.  
  2646. AS
  2647. SELECT 0
  2648. GO
  2649.  
  2650. CREATE PROCEDURE [dbo].[dp_GetItemListByPledge]
  2651.  
  2652. AS
  2653. SELECT 0
  2654. GO
  2655.  
  2656. CREATE PROCEDURE [dbo].[dp_GetItemListByUserID]
  2657.  
  2658. AS
  2659. SELECT 0
  2660. GO
  2661.  
  2662. CREATE PROCEDURE [dbo].[give_lotto_price]
  2663.  
  2664. AS
  2665. SELECT 0
  2666. GO
  2667.  
  2668. CREATE PROCEDURE [dbo].[lin_AddAllOlympiadBonusPoint]
  2669.  
  2670. AS
  2671. SELECT 0
  2672. GO
  2673.  
  2674. CREATE PROCEDURE [dbo].[lin_AddBlockList]
  2675.  
  2676. AS
  2677. SELECT 0
  2678. GO
  2679.  
  2680. CREATE PROCEDURE [dbo].[lin_AddBookMark]
  2681.  
  2682. AS
  2683. SELECT 0
  2684. GO
  2685.  
  2686. CREATE PROCEDURE [dbo].[lin_AddLottoItem]
  2687.  
  2688. AS
  2689. SELECT 0
  2690. GO
  2691.  
  2692. CREATE PROCEDURE [dbo].[lin_AddOlympiadPoint]
  2693.  
  2694. AS
  2695. SELECT 0
  2696. GO
  2697.  
  2698. CREATE PROCEDURE [dbo].[lin_AddProhibit]
  2699.  
  2700. AS
  2701. SELECT 0
  2702. GO
  2703.  
  2704. CREATE PROCEDURE [dbo].[lin_AddPunishmentHistory]
  2705.  
  2706. AS
  2707. SELECT 0
  2708. GO
  2709.  
  2710. CREATE PROCEDURE [dbo].[lin_AddSubJob]
  2711.  
  2712. AS
  2713. SELECT 0
  2714. GO
  2715.  
  2716. CREATE PROCEDURE [dbo].[lin_AddSubJobHenna]
  2717.  
  2718. AS
  2719. SELECT 0
  2720. GO
  2721.  
  2722. CREATE PROCEDURE [dbo].[lin_AddUserLog]
  2723.  
  2724. AS
  2725. SELECT 0
  2726. GO
  2727.  
  2728. CREATE PROCEDURE [dbo].[lin_AdenaChange]
  2729.  
  2730. AS
  2731. SELECT 0
  2732. GO
  2733.  
  2734. CREATE PROCEDURE [dbo].[lin_AllianceWarChallengeRejected]
  2735.  
  2736. AS
  2737. SELECT 0
  2738. GO
  2739.  
  2740. CREATE PROCEDURE [dbo].[lin_AmountChange]
  2741.  
  2742. AS
  2743. SELECT 0
  2744. GO
  2745.  
  2746. CREATE PROCEDURE [dbo].[lin_ApproveBattle]
  2747.  
  2748. AS
  2749. SELECT 0
  2750. GO
  2751.  
  2752. CREATE PROCEDURE [dbo].[lin_ArchiveMail]
  2753.  
  2754. AS
  2755. SELECT 0
  2756. GO
  2757.  
  2758. CREATE PROCEDURE [dbo].[lin_BetaAddItem]
  2759.  
  2760. AS
  2761. SELECT 0
  2762. GO
  2763.  
  2764. CREATE PROCEDURE [dbo].[lin_BreakFriendship]
  2765.  
  2766. AS
  2767. SELECT 0
  2768. GO
  2769.  
  2770. CREATE PROCEDURE [dbo].[lin_CancelAgitAuction]
  2771.  
  2772. AS
  2773. SELECT 0
  2774. GO
  2775.  
  2776. CREATE PROCEDURE [dbo].[lin_CancelWar]
  2777.  
  2778. AS
  2779. SELECT 0
  2780. GO
  2781.  
  2782. CREATE PROCEDURE [dbo].[lin_ChallengeRejected]
  2783.  
  2784. AS
  2785. SELECT 0
  2786. GO
  2787.  
  2788. CREATE PROCEDURE [dbo].[lin_ChangeCharacterLocation]
  2789.  
  2790. AS
  2791. SELECT 0
  2792. GO
  2793.  
  2794. CREATE PROCEDURE [dbo].[lin_ChangeCharacterName]
  2795.  
  2796. AS
  2797. SELECT 0
  2798. GO
  2799.  
  2800. CREATE PROCEDURE [dbo].[lin_ChangeCharacterName2]
  2801.  
  2802. AS
  2803. SELECT 0
  2804. GO
  2805.  
  2806. CREATE PROCEDURE [dbo].[lin_ChangeSubJob]
  2807.  
  2808. AS
  2809. SELECT 0
  2810. GO
  2811.  
  2812. CREATE PROCEDURE [dbo].[lin_ChangeSubJobBySubJobId]
  2813.  
  2814. AS
  2815. SELECT 0
  2816. GO
  2817.  
  2818. CREATE PROCEDURE [dbo].[lin_ChangeTimeData]
  2819.  
  2820. AS
  2821. SELECT 0
  2822. GO
  2823.  
  2824. CREATE PROCEDURE [dbo].[lin_CharLogin]
  2825.  
  2826. AS
  2827. SELECT 0
  2828. GO
  2829.  
  2830. CREATE PROCEDURE [dbo].[lin_CharLogout]
  2831.  
  2832. AS
  2833. SELECT 0
  2834. GO
  2835.  
  2836. CREATE PROCEDURE [dbo].[lin_CheckPetName]
  2837.  
  2838. AS
  2839. SELECT 0
  2840. GO
  2841.  
  2842. CREATE PROCEDURE [dbo].[lin_CheckPreviousAllianceWarHistory]
  2843.  
  2844. AS
  2845. SELECT 0
  2846. GO
  2847.  
  2848. CREATE PROCEDURE [dbo].[lin_CheckPreviousWarHistory]
  2849.  
  2850. AS
  2851. SELECT 0
  2852. GO
  2853.  
  2854. CREATE PROCEDURE [dbo].[lin_CheckReserved]
  2855.  
  2856. AS
  2857. SELECT 0
  2858. GO
  2859.  
  2860. CREATE PROCEDURE [dbo].[lin_CleanUpGhostData]
  2861.  
  2862. AS
  2863. SELECT 0
  2864. GO
  2865.  
  2866. CREATE PROCEDURE [dbo].[lin_ClearGroupPoint]
  2867.  
  2868. AS
  2869. SELECT 0
  2870. GO
  2871.  
  2872. CREATE PROCEDURE [dbo].[lin_CommentDelete]
  2873.  
  2874. AS
  2875. SELECT 0
  2876. GO
  2877.  
  2878. CREATE PROCEDURE [dbo].[lin_CommentSearch]
  2879.  
  2880. AS
  2881. SELECT 0
  2882. GO
  2883.  
  2884. CREATE PROCEDURE [dbo].[lin_CommentWrite]
  2885.  
  2886. AS
  2887. SELECT 0
  2888. GO
  2889.  
  2890. CREATE PROCEDURE [dbo].[lin_CopyChar]
  2891.  
  2892. AS
  2893. SELECT 0
  2894. GO
  2895.  
  2896. CREATE PROCEDURE [dbo].[lin_CreateActiveSkill]
  2897.  
  2898. AS
  2899. SELECT 0
  2900. GO
  2901.  
  2902. CREATE PROCEDURE [dbo].[lin_CreateAgitAuction]
  2903.  
  2904. AS
  2905. SELECT 0
  2906. GO
  2907.  
  2908. CREATE PROCEDURE [dbo].[lin_CreateAgitBid]
  2909.  
  2910. AS
  2911. SELECT 0
  2912. GO
  2913.  
  2914. CREATE PROCEDURE [dbo].[lin_CreateAgitIfNotExist]
  2915.  
  2916. AS
  2917. SELECT 0
  2918. GO
  2919.  
  2920. CREATE PROCEDURE [dbo].[lin_CreateAlliance]
  2921.  
  2922. AS
  2923. SELECT 0
  2924. GO
  2925.  
  2926. CREATE PROCEDURE [dbo].[lin_CreateCastle]
  2927.  
  2928. AS
  2929. SELECT 0
  2930. GO
  2931.  
  2932. CREATE PROCEDURE [dbo].[lin_CreateChar]
  2933.  
  2934. AS
  2935. SELECT 0
  2936. GO
  2937.  
  2938. CREATE PROCEDURE [dbo].[lin_CreateCharWithSubjob]
  2939.  
  2940. AS
  2941. SELECT 0
  2942. GO
  2943.  
  2944. CREATE PROCEDURE [dbo].[lin_CreateDoorDataIfNotExist]
  2945.  
  2946. AS
  2947. SELECT 0
  2948. GO
  2949.  
  2950. CREATE PROCEDURE [dbo].[lin_CreateGroupPoint]
  2951.  
  2952. AS
  2953. SELECT 0
  2954. GO
  2955.  
  2956. CREATE PROCEDURE [dbo].[lin_CreateItem]
  2957.  
  2958. AS
  2959. SELECT 0
  2960. GO
  2961.  
  2962. CREATE PROCEDURE [dbo].[lin_CreateLottoGame]
  2963.  
  2964. AS
  2965. SELECT 0
  2966. GO
  2967.  
  2968. CREATE PROCEDURE [dbo].[lin_CreateLottoItem]
  2969.  
  2970. AS
  2971. SELECT 0
  2972. GO
  2973.  
  2974. CREATE PROCEDURE [dbo].[lin_CreateMacro]
  2975.  
  2976. AS
  2977. SELECT 0
  2978. GO
  2979.  
  2980. CREATE PROCEDURE [dbo].[lin_CreateMacroInfo]
  2981.  
  2982. AS
  2983. SELECT 0
  2984. GO
  2985.  
  2986. CREATE PROCEDURE [dbo].[lin_CreateMonRace]
  2987.  
  2988. AS
  2989. SELECT 0
  2990. GO
  2991.  
  2992. CREATE PROCEDURE [dbo].[lin_CreateMonRaceMon]
  2993.  
  2994. AS
  2995. SELECT 0
  2996. GO
  2997.  
  2998. CREATE PROCEDURE [dbo].[lin_CreateMonRaceTicket]
  2999.  
  3000. AS
  3001. SELECT 0
  3002. GO
  3003.  
  3004. CREATE PROCEDURE [dbo].[lin_CreateNewbieData]
  3005.  
  3006. AS
  3007. SELECT 0
  3008. GO
  3009.  
  3010. CREATE PROCEDURE [dbo].[lin_CreatePet]
  3011.  
  3012. AS
  3013. SELECT 0
  3014. GO
  3015.  
  3016. CREATE PROCEDURE [dbo].[lin_CreatePledge]
  3017.  
  3018. AS
  3019. SELECT 0
  3020. GO
  3021.  
  3022. CREATE PROCEDURE [dbo].[lin_CreateSSQRound]
  3023.  
  3024. AS
  3025. SELECT 0
  3026. GO
  3027.  
  3028. CREATE PROCEDURE [dbo].[lin_CreateSSQTopPointUser]
  3029.  
  3030. AS
  3031. SELECT 0
  3032. GO
  3033.  
  3034. CREATE PROCEDURE [dbo].[lin_CreateSSQUserInfo]
  3035.  
  3036. AS
  3037. SELECT 0
  3038. GO
  3039.  
  3040. CREATE PROCEDURE [dbo].[lin_CreateSubJob]
  3041.  
  3042. AS
  3043. SELECT 0
  3044. GO
  3045.  
  3046. CREATE PROCEDURE [dbo].[lin_CreateTimeAttackRecord]
  3047.  
  3048. AS
  3049. SELECT 0
  3050. GO
  3051.  
  3052. CREATE PROCEDURE [dbo].[lin_DeclareWar]
  3053.  
  3054. AS
  3055. SELECT 0
  3056. GO
  3057.  
  3058. CREATE PROCEDURE [dbo].[lin_DelAquireSkill]
  3059.  
  3060. AS
  3061. SELECT 0
  3062. GO
  3063.  
  3064. CREATE PROCEDURE [dbo].[lin_DelBookMark]
  3065.  
  3066. AS
  3067. SELECT 0
  3068. GO
  3069.  
  3070. CREATE PROCEDURE [dbo].[lin_DeleteAgitBid]
  3071.  
  3072. AS
  3073. SELECT 0
  3074. GO
  3075.  
  3076. CREATE PROCEDURE [dbo].[lin_DeleteAllResidenceGuard]
  3077.  
  3078. AS
  3079. SELECT 0
  3080. GO
  3081.  
  3082. CREATE PROCEDURE [dbo].[lin_DeleteBBSBoard]
  3083.  
  3084. AS
  3085. SELECT 0
  3086. GO
  3087.  
  3088. CREATE PROCEDURE [dbo].[lin_DeleteBlockList]
  3089.  
  3090. AS
  3091. SELECT 0
  3092. GO
  3093.  
  3094. CREATE PROCEDURE [dbo].[lin_DeleteCastleIncome]
  3095.  
  3096. AS
  3097. SELECT 0
  3098. GO
  3099.  
  3100. CREATE PROCEDURE [dbo].[lin_DeleteCastleWar]
  3101.  
  3102. AS
  3103. SELECT 0
  3104. GO
  3105.  
  3106. CREATE PROCEDURE [dbo].[lin_DeleteChar]
  3107.  
  3108. AS
  3109. SELECT 0
  3110. GO
  3111.  
  3112. CREATE PROCEDURE [dbo].[lin_DeleteCharClearPledge]
  3113.  
  3114. AS
  3115. SELECT 0
  3116. GO
  3117.  
  3118. CREATE PROCEDURE [dbo].[lin_DeleteFriends]
  3119.  
  3120. AS
  3121. SELECT 0
  3122. GO
  3123.  
  3124. CREATE PROCEDURE [dbo].[lin_DeleteItem]
  3125.  
  3126. AS
  3127. SELECT 0
  3128. GO
  3129.  
  3130. CREATE PROCEDURE [dbo].[lin_DeleteMacro]
  3131.  
  3132. AS
  3133. SELECT 0
  3134. GO
  3135.  
  3136. CREATE PROCEDURE [dbo].[lin_DeleteMail]
  3137.  
  3138. AS
  3139. SELECT 0
  3140. GO
  3141.  
  3142. CREATE PROCEDURE [dbo].[lin_DeleteMasterRelatedCastleWar]
  3143.  
  3144. AS
  3145. SELECT 0
  3146. GO
  3147.  
  3148. CREATE PROCEDURE [dbo].[lin_DeleteMercenary]
  3149.  
  3150. AS
  3151. SELECT 0
  3152. GO
  3153.  
  3154. CREATE PROCEDURE [dbo].[lin_DeleteNotOwnedItem]
  3155.  
  3156. AS
  3157. SELECT 0
  3158. GO
  3159.  
  3160. CREATE PROCEDURE [dbo].[lin_DeletePet]
  3161.  
  3162. AS
  3163. SELECT 0
  3164. GO
  3165.  
  3166. CREATE PROCEDURE [dbo].[lin_DeletePledge]
  3167.  
  3168. AS
  3169. SELECT 0
  3170. GO
  3171.  
  3172. CREATE PROCEDURE [dbo].[lin_DeletePledgeContribution]
  3173.  
  3174. AS
  3175. SELECT 0
  3176. GO
  3177.  
  3178. CREATE PROCEDURE [dbo].[lin_DeletePreviousOlympiadPoint]
  3179.  
  3180. AS
  3181. SELECT 0
  3182. GO
  3183.  
  3184. CREATE PROCEDURE [dbo].[lin_DeleteResidenceGuard]
  3185.  
  3186. AS
  3187. SELECT 0
  3188. GO
  3189.  
  3190. CREATE PROCEDURE [dbo].[lin_DeleteSiegeAgitPledge]
  3191.  
  3192. AS
  3193. SELECT 0
  3194. GO
  3195.  
  3196. CREATE PROCEDURE [dbo].[lin_DeleteSubJob]
  3197.  
  3198. AS
  3199. SELECT 0
  3200. GO
  3201.  
  3202. CREATE PROCEDURE [dbo].[lin_DeleteSubJobSkill]
  3203.  
  3204. AS
  3205. SELECT 0
  3206. GO
  3207.  
  3208. CREATE PROCEDURE [dbo].[lin_DeleteSurrenderWar]
  3209.  
  3210. AS
  3211. SELECT 0
  3212. GO
  3213.  
  3214. CREATE PROCEDURE [dbo].[lin_DeleteTeamBattleAgitMember]
  3215.  
  3216. AS
  3217. SELECT 0
  3218. GO
  3219.  
  3220. CREATE PROCEDURE [dbo].[lin_DeleteTeamBattleAgitPledge]
  3221.  
  3222. AS
  3223. SELECT 0
  3224. GO
  3225.  
  3226. CREATE PROCEDURE [dbo].[lin_DelIntervalAnnounce]
  3227.  
  3228. AS
  3229. SELECT 0
  3230. GO
  3231.  
  3232. CREATE PROCEDURE [dbo].[lin_DelLoginAnnounce]
  3233.  
  3234. AS
  3235. SELECT 0
  3236. GO
  3237.  
  3238. CREATE PROCEDURE [dbo].[lin_DelMonRaceTicket]
  3239.  
  3240. AS
  3241. SELECT 0
  3242. GO
  3243.  
  3244. CREATE PROCEDURE [dbo].[lin_DelPledgeCrest]
  3245.  
  3246. AS
  3247. SELECT 0
  3248. GO
  3249.  
  3250. CREATE PROCEDURE [dbo].[lin_DelProhibit]
  3251.  
  3252. AS
  3253. SELECT 0
  3254. GO
  3255.  
  3256. CREATE PROCEDURE [dbo].[lin_DelRecipeInfo]
  3257.  
  3258. AS
  3259. SELECT 0
  3260. GO
  3261.  
  3262. CREATE PROCEDURE [dbo].[lin_DelSubJobHenna]
  3263.  
  3264. AS
  3265. SELECT 0
  3266. GO
  3267.  
  3268. CREATE PROCEDURE [dbo].[lin_DepositBank]
  3269.  
  3270. AS
  3271. SELECT 0
  3272. GO
  3273.  
  3274. CREATE PROCEDURE [dbo].[lin_DisableChar]
  3275.  
  3276. AS
  3277. SELECT 0
  3278. GO
  3279.  
  3280. CREATE PROCEDURE [dbo].[lin_DismissAlliance]
  3281.  
  3282. AS
  3283. SELECT 0
  3284. GO
  3285.  
  3286. CREATE PROCEDURE [dbo].[lin_DropItem]
  3287.  
  3288. AS
  3289. SELECT 0
  3290. GO
  3291.  
  3292. CREATE PROCEDURE [dbo].[lin_EnableChar]
  3293.  
  3294. AS
  3295. SELECT 0
  3296. GO
  3297.  
  3298. CREATE PROCEDURE [dbo].[lin_EnableChar2]
  3299.  
  3300. AS
  3301. SELECT 0
  3302. GO
  3303.  
  3304. CREATE PROCEDURE [dbo].[Lin_EnchantItem]
  3305.  
  3306. AS
  3307. SELECT 0
  3308. GO
  3309.  
  3310. CREATE PROCEDURE [dbo].[lin_Err]
  3311.  
  3312. AS
  3313. SELECT 0
  3314. GO
  3315.  
  3316. CREATE PROCEDURE [dbo].[lin_Err2]
  3317.  
  3318. AS
  3319. SELECT 0
  3320. GO
  3321.  
  3322. CREATE PROCEDURE [dbo].[lin_ErrItem]
  3323.  
  3324. AS
  3325. SELECT 0
  3326. GO
  3327.  
  3328. CREATE PROCEDURE [dbo].[lin_EstablishFriendship]
  3329.  
  3330. AS
  3331. SELECT 0
  3332. GO
  3333.  
  3334. CREATE PROCEDURE [dbo].[lin_EventChangeGender]
  3335.  
  3336. AS
  3337. SELECT 0
  3338. GO
  3339.  
  3340. CREATE PROCEDURE [dbo].[lin_FinishPledgeWar]
  3341.  
  3342. AS
  3343. SELECT 0
  3344. GO
  3345.  
  3346. CREATE PROCEDURE [dbo].[lin_FlushItemName]
  3347.  
  3348. AS
  3349. SELECT 0
  3350. GO
  3351.  
  3352. CREATE PROCEDURE [dbo].[lin_FlushQuestName]
  3353.  
  3354. AS
  3355. SELECT 0
  3356. GO
  3357.  
  3358. CREATE PROCEDURE [dbo].[lin_FlushSkillName]
  3359.  
  3360. AS
  3361. SELECT 0
  3362. GO
  3363.  
  3364. CREATE PROCEDURE [dbo].[lin_GetAgitAdena]
  3365.  
  3366. AS
  3367. SELECT 0
  3368. GO
  3369.  
  3370. CREATE PROCEDURE [dbo].[lin_GetAgitBid]
  3371.  
  3372. AS
  3373. SELECT 0
  3374. GO
  3375.  
  3376. CREATE PROCEDURE [dbo].[lin_GetAgitBidOne]
  3377.  
  3378. AS
  3379. SELECT 0
  3380. GO
  3381.  
  3382. CREATE PROCEDURE [dbo].[lin_GetAgitList]
  3383.  
  3384. AS
  3385. SELECT 0
  3386. GO
  3387.  
  3388. CREATE PROCEDURE [dbo].[lin_GetAllCastleSiege]
  3389.  
  3390. AS
  3391. SELECT 0
  3392. GO
  3393.  
  3394. CREATE PROCEDURE [dbo].[lin_GetAllGroupPoint]
  3395.  
  3396. AS
  3397. SELECT 0
  3398. GO
  3399.  
  3400. CREATE PROCEDURE [dbo].[lin_GetAllHeroes]
  3401.  
  3402. AS
  3403. SELECT 0
  3404. GO
  3405.  
  3406. CREATE PROCEDURE [dbo].[lin_GetAllMemberPledge]
  3407.  
  3408. AS
  3409. SELECT 0
  3410. GO
  3411.  
  3412. CREATE PROCEDURE [dbo].[lin_GetAllNobless]
  3413.  
  3414. AS
  3415. SELECT 0
  3416. GO
  3417.  
  3418. CREATE PROCEDURE [dbo].[lin_GetAquireSkill]
  3419.  
  3420. AS
  3421. SELECT 0
  3422. GO
  3423.  
  3424. CREATE PROCEDURE [dbo].[lin_GetBbsallList]
  3425.  
  3426. AS
  3427. SELECT 0
  3428. GO
  3429.  
  3430. CREATE PROCEDURE [dbo].[lin_GetBBSBoard]
  3431.  
  3432. AS
  3433. SELECT 0
  3434. GO
  3435.  
  3436. CREATE PROCEDURE [dbo].[lin_GetBbsTGSList]
  3437.  
  3438. AS
  3439. SELECT 0
  3440. GO
  3441.  
  3442. CREATE PROCEDURE [dbo].[lin_GetBlockCount]
  3443.  
  3444. AS
  3445. SELECT 0
  3446. GO
  3447.  
  3448. CREATE PROCEDURE [dbo].[lin_GetBookMark]
  3449.  
  3450. AS
  3451. SELECT 0
  3452. GO
  3453.  
  3454. CREATE PROCEDURE [dbo].[lin_GetBuilderAccount]
  3455.  
  3456. AS
  3457. SELECT 0
  3458. GO
  3459.  
  3460. CREATE PROCEDURE [dbo].[lin_GetCastleList]
  3461.  
  3462. AS
  3463. SELECT 0
  3464. GO
  3465.  
  3466. CREATE PROCEDURE [dbo].[lin_GetCharByAccountId]
  3467.  
  3468. AS
  3469. SELECT 0
  3470. GO
  3471.  
  3472. CREATE PROCEDURE [dbo].[lin_GetContributionRelatedPledge]
  3473.  
  3474. AS
  3475. SELECT 0
  3476. GO
  3477.  
  3478. CREATE PROCEDURE [dbo].[lin_GetContributionWinnerPledge]
  3479.  
  3480. AS
  3481. SELECT 0
  3482. GO
  3483.  
  3484. CREATE PROCEDURE [dbo].[lin_GetDBIDByCharName]
  3485.  
  3486. AS
  3487. SELECT 0
  3488. GO
  3489.  
  3490. CREATE PROCEDURE [dbo].[lin_GetDbRelatedCounts]
  3491.  
  3492. AS
  3493. SELECT 0
  3494. GO
  3495.  
  3496. CREATE PROCEDURE [dbo].[lin_GetDefaultBuilder]
  3497.  
  3498. AS
  3499. SELECT 0
  3500. GO
  3501.  
  3502. CREATE PROCEDURE [dbo].[lin_GetExpBySubjob]
  3503.  
  3504. AS
  3505. SELECT 0
  3506. GO
  3507.  
  3508. CREATE PROCEDURE [dbo].[lin_GetGroupPoint]
  3509.  
  3510. AS
  3511. SELECT 0
  3512. GO
  3513.  
  3514. CREATE PROCEDURE [dbo].[lin_GetHeroByClassId]
  3515.  
  3516. AS
  3517. SELECT 0
  3518. GO
  3519.  
  3520. CREATE PROCEDURE [dbo].[lin_GetHeroById]
  3521.  
  3522. AS
  3523. SELECT 0
  3524. GO
  3525.  
  3526. CREATE PROCEDURE [dbo].[lin_GetInitBoard]
  3527.  
  3528. AS
  3529. SELECT 0
  3530. GO
  3531.  
  3532. CREATE PROCEDURE [dbo].[lin_GetIntervalAnnounce]
  3533.  
  3534. AS
  3535. SELECT 0
  3536. GO
  3537.  
  3538. CREATE PROCEDURE [dbo].[lin_GetItem]
  3539.  
  3540. AS
  3541. SELECT 0
  3542. GO
  3543.  
  3544. CREATE PROCEDURE [dbo].[lin_GetItemAmount]
  3545.  
  3546. AS
  3547. SELECT 0
  3548. GO
  3549.  
  3550. CREATE PROCEDURE [dbo].[lin_GetItemData]
  3551.  
  3552. AS
  3553. SELECT 0
  3554. GO
  3555.  
  3556. CREATE PROCEDURE [dbo].[lin_GetItemType]
  3557.  
  3558. AS
  3559. SELECT 0
  3560. GO
  3561.  
  3562. CREATE PROCEDURE [dbo].[lin_GetListBookMark]
  3563.  
  3564. AS
  3565. SELECT 0
  3566. GO
  3567.  
  3568. CREATE PROCEDURE [dbo].[lin_GetLoginAnnounce]
  3569.  
  3570. AS
  3571. SELECT 0
  3572. GO
  3573.  
  3574. CREATE PROCEDURE [dbo].[lin_GetMacro]
  3575.  
  3576. AS
  3577. SELECT 0
  3578. GO
  3579.  
  3580. CREATE PROCEDURE [dbo].[lin_GetMacroCount]
  3581.  
  3582. AS
  3583. SELECT 0
  3584. GO
  3585.  
  3586. CREATE PROCEDURE [dbo].[lin_GetMail]
  3587.  
  3588. AS
  3589. SELECT 0
  3590. GO
  3591.  
  3592. CREATE PROCEDURE [dbo].[lin_GetMailCount]
  3593.  
  3594. AS
  3595. SELECT 0
  3596. GO
  3597.  
  3598. CREATE PROCEDURE [dbo].[lin_GetMailList]
  3599.  
  3600. AS
  3601. SELECT 0
  3602. GO
  3603.  
  3604. CREATE PROCEDURE [dbo].[lin_GetMonRaceBet]
  3605.  
  3606. AS
  3607. SELECT 0
  3608. GO
  3609.  
  3610. CREATE PROCEDURE [dbo].[lin_GetMonRaceResult]
  3611.  
  3612. AS
  3613. SELECT 0
  3614. GO
  3615.  
  3616. CREATE PROCEDURE [dbo].[lin_GetMonRaceTaxSum]
  3617.  
  3618. AS
  3619. SELECT 0
  3620. GO
  3621.  
  3622. CREATE PROCEDURE [dbo].[lin_GetMonRaceTicket]
  3623.  
  3624. AS
  3625. SELECT 0
  3626. GO
  3627.  
  3628. CREATE PROCEDURE [dbo].[lin_GetNoblessAchievements]
  3629.  
  3630. AS
  3631. SELECT 0
  3632. GO
  3633.  
  3634. CREATE PROCEDURE [dbo].[lin_GetNoblessById]
  3635.  
  3636. AS
  3637. SELECT 0
  3638. GO
  3639.  
  3640. CREATE PROCEDURE [dbo].[lin_GetNoblessTop10]
  3641.  
  3642. AS
  3643. SELECT 0
  3644. GO
  3645.  
  3646. CREATE PROCEDURE [dbo].[lin_GetOneMacro]
  3647.  
  3648. AS
  3649. SELECT 0
  3650. GO
  3651.  
  3652. CREATE PROCEDURE [dbo].[lin_GetPetitionMsg]
  3653.  
  3654. AS
  3655. SELECT 0
  3656. GO
  3657.  
  3658. CREATE PROCEDURE [dbo].[lin_GetPledgeAdena]
  3659.  
  3660. AS
  3661. SELECT 0
  3662. GO
  3663.  
  3664. CREATE PROCEDURE [dbo].[lin_GetPledgeKillDeathCount]
  3665.  
  3666. AS
  3667. SELECT 0
  3668. GO
  3669.  
  3670. CREATE PROCEDURE [dbo].[lin_GetPunish]
  3671.  
  3672. AS
  3673. SELECT 0
  3674. GO
  3675.  
  3676. CREATE PROCEDURE [dbo].[lin_GetRelatedCastleSiege]
  3677.  
  3678. AS
  3679. SELECT 0
  3680. GO
  3681.  
  3682. CREATE PROCEDURE [dbo].[lin_GetSendMailCount]
  3683.  
  3684. AS
  3685. SELECT 0
  3686. GO
  3687.  
  3688. CREATE PROCEDURE [dbo].[lin_GetShortCut]
  3689.  
  3690. AS
  3691. SELECT 0
  3692. GO
  3693.  
  3694. CREATE PROCEDURE [dbo].[lin_GetSiegeRelatedAlliancePledge]
  3695.  
  3696. AS
  3697. SELECT 0
  3698. GO
  3699.  
  3700. CREATE PROCEDURE [dbo].[lin_GetSSQMainEventRecord]
  3701.  
  3702. AS
  3703. SELECT 0
  3704. GO
  3705.  
  3706. CREATE PROCEDURE [dbo].[lin_GetSSQStatus]
  3707.  
  3708. AS
  3709. SELECT 0
  3710. GO
  3711.  
  3712. CREATE PROCEDURE [dbo].[lin_GetSubJobLevel]
  3713.  
  3714. AS
  3715. SELECT 0
  3716. GO
  3717.  
  3718. CREATE PROCEDURE [dbo].[Lin_GetSummary]
  3719.  
  3720. AS
  3721. SELECT 0
  3722. GO
  3723.  
  3724. CREATE PROCEDURE [dbo].[lin_GetSurrenderWarId]
  3725.  
  3726. AS
  3727. SELECT 0
  3728. GO
  3729.  
  3730. CREATE PROCEDURE [dbo].[lin_GetTempMail]
  3731.  
  3732. AS
  3733. SELECT 0
  3734. GO
  3735.  
  3736. CREATE PROCEDURE [dbo].[lin_GetUnreadMailCount]
  3737.  
  3738. AS
  3739. SELECT 0
  3740. GO
  3741.  
  3742. CREATE PROCEDURE [dbo].[lin_GetUserDataByCharId]
  3743.  
  3744. AS
  3745. SELECT 0
  3746. GO
  3747.  
  3748. CREATE PROCEDURE [dbo].[lin_GetUserDataByCharName]
  3749.  
  3750. AS
  3751. SELECT 0
  3752. GO
  3753.  
  3754. CREATE PROCEDURE [dbo].[lin_GetUserLogTime]
  3755.  
  3756. AS
  3757. SELECT 0
  3758. GO
  3759.  
  3760. CREATE PROCEDURE [dbo].[lin_GetWarDeclare]
  3761.  
  3762. AS
  3763. SELECT 0
  3764. GO
  3765.  
  3766. CREATE PROCEDURE [dbo].[lin_GetWearingItemList]
  3767.  
  3768. AS
  3769. SELECT 0
  3770. GO
  3771.  
  3772. CREATE PROCEDURE [dbo].[lin_InitAllOlympiadPoint]
  3773.  
  3774. AS
  3775. SELECT 0
  3776. GO
  3777.  
  3778. CREATE PROCEDURE [dbo].[lin_InitPledgeCrest]
  3779.  
  3780. AS
  3781. SELECT 0
  3782. GO
  3783.  
  3784. CREATE PROCEDURE [dbo].[lin_InitPledgeEmblem]
  3785.  
  3786. AS
  3787. SELECT 0
  3788. GO
  3789.  
  3790. CREATE PROCEDURE [dbo].[lin_InsertAgitAdena]
  3791.  
  3792. AS
  3793. SELECT 0
  3794. GO
  3795.  
  3796. CREATE PROCEDURE [dbo].[lin_InsertIntoControlTower]
  3797.  
  3798. AS
  3799. SELECT 0
  3800. GO
  3801.  
  3802. CREATE PROCEDURE [dbo].[lin_InsertIntoMercenary]
  3803.  
  3804. AS
  3805. SELECT 0
  3806. GO
  3807.  
  3808. CREATE PROCEDURE [dbo].[lin_InsertIntoResidenceGuard]
  3809.  
  3810. AS
  3811. SELECT 0
  3812. GO
  3813.  
  3814. CREATE PROCEDURE [dbo].[lin_InsertIntoTeamBattleAgitMember]
  3815.  
  3816. AS
  3817. SELECT 0
  3818. GO
  3819.  
  3820. CREATE PROCEDURE [dbo].[lin_InsertIntoTeamBattleAgitPledge]
  3821.  
  3822. AS
  3823. SELECT 0
  3824. GO
  3825.  
  3826. CREATE PROCEDURE [dbo].[lin_InsertItemName]
  3827.  
  3828. AS
  3829. SELECT 0
  3830. GO
  3831.  
  3832. CREATE PROCEDURE [dbo].[lin_InsertQuestName]
  3833.  
  3834. AS
  3835. SELECT 0
  3836. GO
  3837.  
  3838. CREATE PROCEDURE [dbo].[lin_InsertSkillName]
  3839.  
  3840. AS
  3841. SELECT 0
  3842. GO
  3843.  
  3844. CREATE PROCEDURE [dbo].[lin_InsertUserHistory]
  3845.  
  3846. AS
  3847. SELECT 0
  3848. GO
  3849.  
  3850. CREATE PROCEDURE [dbo].[lin_InsertUserLog]
  3851.  
  3852. AS
  3853. SELECT 0
  3854. GO
  3855.  
  3856. CREATE PROCEDURE [dbo].[lin_InstallBattleCamp]
  3857.  
  3858. AS
  3859. SELECT 0
  3860. GO
  3861.  
  3862. CREATE PROCEDURE [dbo].[lin_JoinAlliance]
  3863.  
  3864. AS
  3865. SELECT 0
  3866. GO
  3867.  
  3868. CREATE PROCEDURE [dbo].[lin_JoinPledgeMember]
  3869.  
  3870. AS
  3871. SELECT 0
  3872. GO
  3873.  
  3874. CREATE PROCEDURE [dbo].[lin_LoadAccount]
  3875.  
  3876. AS
  3877. SELECT 0
  3878. GO
  3879.  
  3880. CREATE PROCEDURE [dbo].[lin_LoadAgit]
  3881.  
  3882. AS
  3883. SELECT 0
  3884. GO
  3885.  
  3886. CREATE PROCEDURE [dbo].[lin_LoadAgitDeco]
  3887.  
  3888. AS
  3889. SELECT 0
  3890. GO
  3891.  
  3892. CREATE PROCEDURE [dbo].[lin_LoadAllAgit]
  3893.  
  3894. AS
  3895. SELECT 0
  3896. GO
  3897.  
  3898. CREATE PROCEDURE [dbo].[lin_LoadAllAllianceId]
  3899.  
  3900. AS
  3901. SELECT 0
  3902. GO
  3903.  
  3904. CREATE PROCEDURE [dbo].[lin_LoadAllAllianceWarData]
  3905.  
  3906. AS
  3907. SELECT 0
  3908. GO
  3909.  
  3910. CREATE PROCEDURE [dbo].[lin_LoadAllCastle]
  3911.  
  3912. AS
  3913. SELECT 0
  3914. GO
  3915.  
  3916. CREATE PROCEDURE [dbo].[lin_LoadAlliance]
  3917.  
  3918. AS
  3919. SELECT 0
  3920. GO
  3921.  
  3922. CREATE PROCEDURE [dbo].[lin_LoadAllianceWar]
  3923.  
  3924. AS
  3925. SELECT 0
  3926. GO
  3927.  
  3928. CREATE PROCEDURE [dbo].[lin_LoadAllPledge]
  3929.  
  3930. AS
  3931. SELECT 0
  3932. GO
  3933.  
  3934. CREATE PROCEDURE [dbo].[lin_LoadAllWarData]
  3935.  
  3936. AS
  3937. SELECT 0
  3938. GO
  3939.  
  3940. CREATE PROCEDURE [dbo].[lin_LoadBlockList]
  3941.  
  3942. AS
  3943. SELECT 0
  3944. GO
  3945.  
  3946. CREATE PROCEDURE [dbo].[lin_LoadBuilderAccountByAccountName]
  3947.  
  3948. AS
  3949. SELECT 0
  3950. GO
  3951.  
  3952. CREATE PROCEDURE [dbo].[lin_LoadCastle]
  3953.  
  3954. AS
  3955. SELECT 0
  3956. GO
  3957.  
  3958. CREATE PROCEDURE [dbo].[lin_LoadCastleCrop]
  3959.  
  3960. AS
  3961. SELECT 0
  3962. GO
  3963.  
  3964. CREATE PROCEDURE [dbo].[lin_LoadCastleWarRelatedPledge]
  3965.  
  3966. AS
  3967. SELECT 0
  3968. GO
  3969.  
  3970. CREATE PROCEDURE [dbo].[lin_LoadControlTowerByName]
  3971.  
  3972. AS
  3973. SELECT 0
  3974. GO
  3975.  
  3976. CREATE PROCEDURE [dbo].[lin_LoadControlTowerByResidenceId]
  3977.  
  3978. AS
  3979. SELECT 0
  3980. GO
  3981.  
  3982. CREATE PROCEDURE [dbo].[lin_LoadDayUsedTime]
  3983.  
  3984. AS
  3985. SELECT 0
  3986. GO
  3987.  
  3988. CREATE PROCEDURE [dbo].[lin_LoadDismissReservedPledge]
  3989.  
  3990. AS
  3991. SELECT 0
  3992. GO
  3993.  
  3994. CREATE PROCEDURE [dbo].[lin_LoadDoor]
  3995.  
  3996. AS
  3997. SELECT 0
  3998. GO
  3999.  
  4000. CREATE PROCEDURE [dbo].[lin_LoadFriends]
  4001.  
  4002. AS
  4003. SELECT 0
  4004. GO
  4005.  
  4006. CREATE PROCEDURE [dbo].[lin_LoadHenna]
  4007.  
  4008. AS
  4009. SELECT 0
  4010. GO
  4011.  
  4012. CREATE PROCEDURE [dbo].[lin_LoadItemByItemId]
  4013.  
  4014. AS
  4015. SELECT 0
  4016. GO
  4017.  
  4018. CREATE PROCEDURE [dbo].[lin_LoadItems]
  4019.  
  4020. AS
  4021. SELECT 0
  4022. GO
  4023.  
  4024. CREATE PROCEDURE [dbo].[lin_LoadLastLogout]
  4025.  
  4026. AS
  4027. SELECT 0
  4028. GO
  4029.  
  4030. CREATE PROCEDURE [dbo].[lin_LoadLastTaxUpdate]
  4031.  
  4032. AS
  4033. SELECT 0
  4034. GO
  4035.  
  4036. CREATE PROCEDURE [dbo].[lin_LoadLottoGame]
  4037.  
  4038. AS
  4039. SELECT 0
  4040. GO
  4041.  
  4042. CREATE PROCEDURE [dbo].[lin_LoadLottoItems]
  4043.  
  4044. AS
  4045. SELECT 0
  4046. GO
  4047.  
  4048. CREATE PROCEDURE [dbo].[lin_LoadManorInfo]
  4049.  
  4050. AS
  4051. SELECT 0
  4052. GO
  4053.  
  4054. CREATE PROCEDURE [dbo].[lin_LoadManorSeed]
  4055.  
  4056. AS
  4057. SELECT 0
  4058. GO
  4059.  
  4060. CREATE PROCEDURE [dbo].[lin_LoadManorSeed_N]
  4061.  
  4062. AS
  4063. SELECT 0
  4064. GO
  4065.  
  4066. CREATE PROCEDURE [dbo].[lin_LoadMarketPriceList]
  4067.  
  4068. AS
  4069. SELECT 0
  4070. GO
  4071.  
  4072. CREATE PROCEDURE [dbo].[lin_LoadMercenary]
  4073.  
  4074. AS
  4075. SELECT 0
  4076. GO
  4077.  
  4078. CREATE PROCEDURE [dbo].[lin_LoadNewbieData]
  4079.  
  4080. AS
  4081. SELECT 0
  4082. GO
  4083.  
  4084. CREATE PROCEDURE [dbo].[lin_LoadNpcBoss]
  4085.  
  4086. AS
  4087. SELECT 0
  4088. GO
  4089.  
  4090. CREATE PROCEDURE [dbo].[lin_LoadOlympiad]
  4091.  
  4092. AS
  4093. SELECT 0
  4094. GO
  4095.  
  4096. CREATE PROCEDURE [dbo].[lin_LoadPet]
  4097.  
  4098. AS
  4099. SELECT 0
  4100. GO
  4101.  
  4102. CREATE PROCEDURE [dbo].[lin_LoadPetItems]
  4103.  
  4104. AS
  4105. SELECT 0
  4106. GO
  4107.  
  4108. CREATE PROCEDURE [dbo].[lin_LoadPledgeAnnounce]
  4109.  
  4110. AS
  4111. SELECT 0
  4112. GO
  4113.  
  4114. CREATE PROCEDURE [dbo].[lin_LoadPledgeById]
  4115.  
  4116. AS
  4117. SELECT 0
  4118. GO
  4119.  
  4120. CREATE PROCEDURE [dbo].[lin_LoadPledgeByName]
  4121.  
  4122. AS
  4123. SELECT 0
  4124. GO
  4125.  
  4126. CREATE PROCEDURE [dbo].[lin_LoadPledgeCrest]
  4127.  
  4128. AS
  4129. SELECT 0
  4130. GO
  4131.  
  4132. CREATE PROCEDURE [dbo].[lin_LoadPledgeMember]
  4133.  
  4134. AS
  4135. SELECT 0
  4136. GO
  4137.  
  4138. CREATE PROCEDURE [dbo].[lin_LoadPledgeWar]
  4139.  
  4140. AS
  4141. SELECT 0
  4142. GO
  4143.  
  4144. CREATE PROCEDURE [dbo].[lin_LoadQuest]
  4145.  
  4146. AS
  4147. SELECT 0
  4148. GO
  4149.  
  4150. CREATE PROCEDURE [dbo].[lin_LoadRecipeInfo]
  4151.  
  4152. AS
  4153. SELECT 0
  4154. GO
  4155.  
  4156. CREATE PROCEDURE [dbo].[lin_LoadResidenceGuard]
  4157.  
  4158. AS
  4159. SELECT 0
  4160. GO
  4161.  
  4162. CREATE PROCEDURE [dbo].[lin_LoadSiegeAgitPledge]
  4163.  
  4164. AS
  4165. SELECT 0
  4166. GO
  4167.  
  4168. CREATE PROCEDURE [dbo].[lin_LoadSociality]
  4169.  
  4170. AS
  4171. SELECT 0
  4172. GO
  4173.  
  4174. CREATE PROCEDURE [dbo].[lin_LoadSSQJoinInfo]
  4175.  
  4176. AS
  4177. SELECT 0
  4178. GO
  4179.  
  4180. CREATE PROCEDURE [dbo].[lin_LoadSSQSystemInfo]
  4181.  
  4182. AS
  4183. SELECT 0
  4184. GO
  4185.  
  4186. CREATE PROCEDURE [dbo].[lin_LoadSSQTopPointUser]
  4187.  
  4188. AS
  4189. SELECT 0
  4190. GO
  4191.  
  4192. CREATE PROCEDURE [dbo].[lin_LoadSSQUserInfo]
  4193.  
  4194. AS
  4195. SELECT 0
  4196. GO
  4197.  
  4198. CREATE PROCEDURE [dbo].[lin_LoadTeamBattleAgitMember]
  4199.  
  4200. AS
  4201. SELECT 0
  4202. GO
  4203.  
  4204. CREATE PROCEDURE [dbo].[lin_LoadTeamBattleAgitPledge]
  4205.  
  4206. AS
  4207. SELECT 0
  4208. GO
  4209.  
  4210. CREATE PROCEDURE [dbo].[lin_LoadTeamBattleAgitStatus]
  4211.  
  4212. AS
  4213. SELECT 0
  4214. GO
  4215.  
  4216. CREATE PROCEDURE [dbo].[lin_LoadTimeAttackRecord]
  4217.  
  4218. AS
  4219. SELECT 0
  4220. GO
  4221.  
  4222. CREATE PROCEDURE [dbo].[lin_MakeBBSBoard]
  4223.  
  4224. AS
  4225. SELECT 0
  4226. GO
  4227.  
  4228. CREATE PROCEDURE [dbo].[lin_MakeDailyWorldSnap]
  4229.  
  4230. AS
  4231. SELECT 0
  4232. GO
  4233.  
  4234. CREATE PROCEDURE [dbo].[LIN_MakeNewBlankItem]
  4235.  
  4236. AS
  4237. SELECT 0
  4238. GO
  4239.  
  4240. CREATE PROCEDURE [dbo].[lin_MakeSnapTable]
  4241.  
  4242. AS
  4243. SELECT 0
  4244. GO
  4245.  
  4246. CREATE PROCEDURE [dbo].[lin_ManageUserNameReserved]
  4247.  
  4248. AS
  4249. SELECT 0
  4250. GO
  4251.  
  4252. CREATE PROCEDURE [dbo].[lin_ManBookMark]
  4253.  
  4254. AS
  4255. SELECT 0
  4256. GO
  4257.  
  4258. CREATE PROCEDURE [dbo].[lin_ModChar]
  4259.  
  4260. AS
  4261. SELECT 0
  4262. GO
  4263.  
  4264. CREATE PROCEDURE [dbo].[lin_ModChar2]
  4265.  
  4266. AS
  4267. SELECT 0
  4268. GO
  4269.  
  4270. CREATE PROCEDURE [dbo].[lin_ModChar3]
  4271.  
  4272. AS
  4273. SELECT 0
  4274. GO
  4275.  
  4276. CREATE PROCEDURE [dbo].[lin_ModifyAllianceName]
  4277.  
  4278. AS
  4279. SELECT 0
  4280. GO
  4281.  
  4282. CREATE PROCEDURE [dbo].[lin_ModifyPledgeName]
  4283.  
  4284. AS
  4285. SELECT 0
  4286. GO
  4287.  
  4288. CREATE PROCEDURE [dbo].[lin_ModifySendTempMail]
  4289.  
  4290. AS
  4291. SELECT 0
  4292. GO
  4293.  
  4294. CREATE PROCEDURE [dbo].[lin_ModifyTempMail]
  4295.  
  4296. AS
  4297. SELECT 0
  4298. GO
  4299.  
  4300. CREATE PROCEDURE [dbo].[lin_ModItemOwner]
  4301.  
  4302. AS
  4303. SELECT 0
  4304. GO
  4305.  
  4306. CREATE PROCEDURE [dbo].[lin_ModOlympiadPoint]
  4307.  
  4308. AS
  4309. SELECT 0
  4310. GO
  4311.  
  4312. CREATE PROCEDURE [dbo].[lin_ModSubJobAbility]
  4313.  
  4314. AS
  4315. SELECT 0
  4316. GO
  4317.  
  4318. CREATE PROCEDURE [dbo].[lin_ModSubJobAbilityAbsolutely]
  4319.  
  4320. AS
  4321. SELECT 0
  4322. GO
  4323.  
  4324. CREATE PROCEDURE [dbo].[lin_ModSubJobClass]
  4325.  
  4326. AS
  4327. SELECT 0
  4328. GO
  4329.  
  4330. CREATE PROCEDURE [dbo].[lin_MoveCharacter]
  4331.  
  4332. AS
  4333. SELECT 0
  4334. GO
  4335.  
  4336. CREATE PROCEDURE [dbo].[lin_MoveCharClear]
  4337.  
  4338. AS
  4339. SELECT 0
  4340. GO
  4341.  
  4342. CREATE PROCEDURE [dbo].[lin_MoveCharCopyChar]
  4343.  
  4344. AS
  4345. SELECT 0
  4346. GO
  4347.  
  4348. CREATE PROCEDURE [dbo].[lin_MoveCharCopyPledge]
  4349.  
  4350. AS
  4351. SELECT 0
  4352. GO
  4353.  
  4354. CREATE PROCEDURE [dbo].[lin_MoveCharPlg]
  4355.  
  4356. AS
  4357. SELECT 0
  4358. GO
  4359.  
  4360. CREATE PROCEDURE [dbo].[lin_MoveCharSvr]
  4361.  
  4362. AS
  4363. SELECT 0
  4364. GO
  4365.  
  4366. CREATE PROCEDURE [dbo].[lin_NewNobless]
  4367.  
  4368. AS
  4369. SELECT 0
  4370. GO
  4371.  
  4372. CREATE PROCEDURE [dbo].[lin_NewTeamBattleAgitMember]
  4373.  
  4374. AS
  4375. SELECT 0
  4376. GO
  4377.  
  4378. CREATE PROCEDURE [dbo].[lin_NewTeamBattleAgitPledge]
  4379.  
  4380. AS
  4381. SELECT 0
  4382. GO
  4383.  
  4384. CREATE PROCEDURE [dbo].[lin_NominateHeroes]
  4385.  
  4386. AS
  4387. SELECT 0
  4388. GO
  4389.  
  4390. CREATE PROCEDURE [dbo].[lin_OustMemberPledge]
  4391.  
  4392. AS
  4393. SELECT 0
  4394. GO
  4395.  
  4396. CREATE PROCEDURE [dbo].[lin_OustPledgeMember]
  4397.  
  4398. AS
  4399. SELECT 0
  4400. GO
  4401.  
  4402. CREATE PROCEDURE [dbo].[lin_ReadBbsall]
  4403.  
  4404. AS
  4405. SELECT 0
  4406. GO
  4407.  
  4408. CREATE PROCEDURE [dbo].[lin_ReadBbsTGS]
  4409.  
  4410. AS
  4411. SELECT 0
  4412. GO
  4413.  
  4414. CREATE PROCEDURE [dbo].[lin_RefreshCharacterByName]
  4415.  
  4416. AS
  4417. SELECT 0
  4418. GO
  4419.  
  4420. CREATE PROCEDURE [dbo].[lin_RegisterAccount]
  4421.  
  4422. AS
  4423. SELECT 0
  4424. GO
  4425.  
  4426. CREATE PROCEDURE [dbo].[lin_RegisterSiegeAgitPledge]
  4427.  
  4428. AS
  4429. SELECT 0
  4430. GO
  4431.  
  4432. CREATE PROCEDURE [dbo].[lin_ReloadOlympiadPoint]
  4433.  
  4434. AS
  4435. SELECT 0
  4436. GO
  4437.  
  4438. CREATE PROCEDURE [dbo].[lin_RenewAgitDeco]
  4439.  
  4440. AS
  4441. SELECT 0
  4442. GO
  4443.  
  4444. CREATE PROCEDURE [dbo].[lin_RenewSubjob]
  4445.  
  4446. AS
  4447. SELECT 0
  4448. GO
  4449.  
  4450. CREATE PROCEDURE [dbo].[lin_ResetAgitDeco]
  4451.  
  4452. AS
  4453. SELECT 0
  4454. GO
  4455.  
  4456. CREATE PROCEDURE [dbo].[lin_ResetOlympiadPoint]
  4457.  
  4458. AS
  4459. SELECT 0
  4460. GO
  4461.  
  4462. CREATE PROCEDURE [dbo].[lin_ResetSociality]
  4463.  
  4464. AS
  4465. SELECT 0
  4466. GO
  4467.  
  4468. CREATE PROCEDURE [dbo].[lin_RestoreChar]
  4469.  
  4470. AS
  4471. SELECT 0
  4472. GO
  4473.  
  4474. CREATE PROCEDURE [dbo].[lin_RestoreChar2]
  4475.  
  4476. AS
  4477. SELECT 0
  4478. GO
  4479.  
  4480. CREATE PROCEDURE [dbo].[lin_SaveCastleIncome]
  4481.  
  4482. AS
  4483. SELECT 0
  4484. GO
  4485.  
  4486. CREATE PROCEDURE [dbo].[lin_SaveCastleSiegeElapsedTime]
  4487.  
  4488. AS
  4489. SELECT 0
  4490. GO
  4491.  
  4492. CREATE PROCEDURE [dbo].[lin_SaveCastleStatus]
  4493.  
  4494. AS
  4495. SELECT 0
  4496. GO
  4497.  
  4498. CREATE PROCEDURE [dbo].[lin_SaveCharacter]
  4499.  
  4500. AS
  4501. SELECT 0
  4502. GO
  4503.  
  4504. CREATE PROCEDURE [dbo].[lin_SaveCharacter_temp]
  4505.  
  4506. AS
  4507. SELECT 0
  4508. GO
  4509.  
  4510. CREATE PROCEDURE [dbo].[lin_SaveCharacter_temp2]
  4511.  
  4512. AS
  4513. SELECT 0
  4514. GO
  4515.  
  4516. CREATE PROCEDURE [dbo].[lin_SaveCharacterPledge]
  4517.  
  4518. AS
  4519. SELECT 0
  4520. GO
  4521.  
  4522. CREATE PROCEDURE [dbo].[lin_SaveCropData]
  4523.  
  4524. AS
  4525. SELECT 0
  4526. GO
  4527.  
  4528. CREATE PROCEDURE [dbo].[lin_SaveDoorStatus]
  4529.  
  4530. AS
  4531. SELECT 0
  4532. GO
  4533.  
  4534. CREATE PROCEDURE [dbo].[lin_SaveDropExp]
  4535.  
  4536. AS
  4537. SELECT 0
  4538. GO
  4539.  
  4540. CREATE PROCEDURE [dbo].[lin_SaveHenna]
  4541.  
  4542. AS
  4543. SELECT 0
  4544. GO
  4545.  
  4546. CREATE PROCEDURE [dbo].[lin_SaveHeroType]
  4547.  
  4548. AS
  4549. SELECT 0
  4550. GO
  4551.  
  4552. CREATE PROCEDURE [dbo].[lin_SaveKillDeath]
  4553.  
  4554. AS
  4555. SELECT 0
  4556. GO
  4557.  
  4558. CREATE PROCEDURE [dbo].[lin_SaveMail]
  4559.  
  4560. AS
  4561. SELECT 0
  4562. GO
  4563.  
  4564. CREATE PROCEDURE [dbo].[lin_SaveManorInfo]
  4565.  
  4566. AS
  4567. SELECT 0
  4568. GO
  4569.  
  4570. CREATE PROCEDURE [dbo].[lin_SaveManorSeed]
  4571.  
  4572. AS
  4573. SELECT 0
  4574. GO
  4575.  
  4576. CREATE PROCEDURE [dbo].[lin_SaveManorSeed_N]
  4577.  
  4578. AS
  4579. SELECT 0
  4580. GO
  4581.  
  4582. CREATE PROCEDURE [dbo].[lin_SaveNoblessType]
  4583.  
  4584. AS
  4585. SELECT 0
  4586. GO
  4587.  
  4588. CREATE PROCEDURE [dbo].[lin_SaveNpcBoss]
  4589.  
  4590. AS
  4591. SELECT 0
  4592. GO
  4593.  
  4594. CREATE PROCEDURE [dbo].[lin_SaveObjectHp]
  4595.  
  4596. AS
  4597. SELECT 0
  4598. GO
  4599.  
  4600. CREATE PROCEDURE [dbo].[lin_SaveOlympiadRecord]
  4601.  
  4602. AS
  4603. SELECT 0
  4604. GO
  4605.  
  4606. CREATE PROCEDURE [dbo].[lin_SaveOlympiadTerm]
  4607.  
  4608. AS
  4609. SELECT 0
  4610. GO
  4611.  
  4612. CREATE PROCEDURE [dbo].[lin_SavePet]
  4613.  
  4614. AS
  4615. SELECT 0
  4616. GO
  4617.  
  4618. CREATE PROCEDURE [dbo].[lin_SavePledgeContribution]
  4619.  
  4620. AS
  4621. SELECT 0
  4622. GO
  4623.  
  4624. CREATE PROCEDURE [dbo].[lin_SaveRecipeInfo]
  4625.  
  4626. AS
  4627. SELECT 0
  4628. GO
  4629.  
  4630. CREATE PROCEDURE [dbo].[lin_SaveSeasonStartTime]
  4631.  
  4632. AS
  4633. SELECT 0
  4634. GO
  4635.  
  4636. CREATE PROCEDURE [dbo].[lin_SaveSSQJoinInfo]
  4637.  
  4638. AS
  4639. SELECT 0
  4640. GO
  4641.  
  4642. CREATE PROCEDURE [dbo].[lin_SaveSSQSystemInfo]
  4643.  
  4644. AS
  4645. SELECT 0
  4646. GO
  4647.  
  4648. CREATE PROCEDURE [dbo].[lin_SaveSSQTopPointUser]
  4649.  
  4650. AS
  4651. SELECT 0
  4652. GO
  4653.  
  4654. CREATE PROCEDURE [dbo].[lin_SaveSSQUserInfo]
  4655.  
  4656. AS
  4657. SELECT 0
  4658. GO
  4659.  
  4660. CREATE PROCEDURE [dbo].[lin_SaveTimeAttackRecord]
  4661.  
  4662. AS
  4663. SELECT 0
  4664. GO
  4665.  
  4666. CREATE PROCEDURE [dbo].[lin_SaveTimeData]
  4667.  
  4668. AS
  4669. SELECT 0
  4670. GO
  4671.  
  4672. CREATE PROCEDURE [dbo].[lin_SeizeItem]
  4673.  
  4674. AS
  4675. SELECT 0
  4676. GO
  4677.  
  4678. CREATE PROCEDURE [dbo].[lin_SeizeItem2]
  4679.  
  4680. AS
  4681. SELECT 0
  4682. GO
  4683.  
  4684. CREATE PROCEDURE [dbo].[lin_SendMail]
  4685.  
  4686. AS
  4687. SELECT 0
  4688. GO
  4689.  
  4690. CREATE PROCEDURE [dbo].[lin_SendMailToReceiver]
  4691.  
  4692. AS
  4693. SELECT 0
  4694. GO
  4695.  
  4696. CREATE PROCEDURE [dbo].[lin_SetAgitAuction]
  4697.  
  4698. AS
  4699. SELECT 0
  4700. GO
  4701.  
  4702. CREATE PROCEDURE [dbo].[lin_SetAgitDeco]
  4703.  
  4704. AS
  4705. SELECT 0
  4706. GO
  4707.  
  4708. CREATE PROCEDURE [dbo].[lin_SetAgitNextCost]
  4709.  
  4710. AS
  4711. SELECT 0
  4712. GO
  4713.  
  4714. CREATE PROCEDURE [dbo].[lin_setAgitOwner]
  4715.  
  4716. AS
  4717. SELECT 0
  4718. GO
  4719.  
  4720. CREATE PROCEDURE [dbo].[lin_SetAgitOwner2]
  4721.  
  4722. AS
  4723. SELECT 0
  4724. GO
  4725.  
  4726. CREATE PROCEDURE [dbo].[lin_SetAllianceInfo]
  4727.  
  4728. AS
  4729. SELECT 0
  4730. GO
  4731.  
  4732. CREATE PROCEDURE [dbo].[lin_SetAquireSkill]
  4733.  
  4734. AS
  4735. SELECT 0
  4736. GO
  4737.  
  4738. CREATE PROCEDURE [dbo].[lin_SetBuilderAccount]
  4739.  
  4740. AS
  4741. SELECT 0
  4742. GO
  4743.  
  4744. CREATE PROCEDURE [dbo].[lin_SetBuilderCharacter]
  4745.  
  4746. AS
  4747. SELECT 0
  4748. GO
  4749.  
  4750. CREATE PROCEDURE [dbo].[lin_setCastleOwner]
  4751.  
  4752. AS
  4753. SELECT 0
  4754. GO
  4755.  
  4756. CREATE PROCEDURE [dbo].[lin_SetCastleOwner2]
  4757.  
  4758. AS
  4759. SELECT 0
  4760. GO
  4761.  
  4762. CREATE PROCEDURE [dbo].[lin_SetCharacterDelete]
  4763.  
  4764. AS
  4765. SELECT 0
  4766. GO
  4767.  
  4768. CREATE PROCEDURE [dbo].[lin_SetCharacterDeleteRestore]
  4769.  
  4770. AS
  4771. SELECT 0
  4772. GO
  4773.  
  4774. CREATE PROCEDURE [dbo].[lin_SetClass]
  4775.  
  4776. AS
  4777. SELECT 0
  4778. GO
  4779.  
  4780. CREATE PROCEDURE [dbo].[lin_SetHistoryOpen]
  4781.  
  4782. AS
  4783. SELECT 0
  4784. GO
  4785.  
  4786. CREATE PROCEDURE [dbo].[lin_SetIntervalAnnounce]
  4787.  
  4788. AS
  4789. SELECT 0
  4790. GO
  4791.  
  4792. CREATE PROCEDURE [dbo].[lin_SetLastTaxUpdate]
  4793.  
  4794. AS
  4795. SELECT 0
  4796. GO
  4797.  
  4798. CREATE PROCEDURE [dbo].[lin_SetLoginAnnounce]
  4799.  
  4800. AS
  4801. SELECT 0
  4802. GO
  4803.  
  4804. CREATE PROCEDURE [dbo].[lin_SetMacro]
  4805.  
  4806. AS
  4807. SELECT 0
  4808. GO
  4809.  
  4810. CREATE PROCEDURE [dbo].[lin_SetNewbieStat]
  4811.  
  4812. AS
  4813. SELECT 0
  4814. GO
  4815.  
  4816. CREATE PROCEDURE [dbo].[lin_SetPetitionMsg]
  4817.  
  4818. AS
  4819. SELECT 0
  4820. GO
  4821.  
  4822. CREATE PROCEDURE [dbo].[lin_SetPledgeAnnounce]
  4823.  
  4824. AS
  4825. SELECT 0
  4826. GO
  4827.  
  4828. CREATE PROCEDURE [dbo].[lin_SetPledgeCrest]
  4829.  
  4830. AS
  4831. SELECT 0
  4832. GO
  4833.  
  4834. CREATE PROCEDURE [dbo].[lin_SetPledgeInfo]
  4835.  
  4836. AS
  4837. SELECT 0
  4838. GO
  4839.  
  4840. CREATE PROCEDURE [dbo].[lin_SetPunish]
  4841.  
  4842. AS
  4843. SELECT 0
  4844. GO
  4845.  
  4846. CREATE PROCEDURE [dbo].[lin_SetQuest]
  4847.  
  4848. AS
  4849. SELECT 0
  4850. GO
  4851.  
  4852. CREATE PROCEDURE [dbo].[lin_SetShortCut]
  4853.  
  4854. AS
  4855. SELECT 0
  4856. GO
  4857.  
  4858. CREATE PROCEDURE [dbo].[lin_SetSiegeTime]
  4859.  
  4860. AS
  4861. SELECT 0
  4862. GO
  4863.  
  4864. CREATE PROCEDURE [dbo].[lin_SetSkillCoolTime]
  4865.  
  4866. AS
  4867. SELECT 0
  4868. GO
  4869.  
  4870. CREATE PROCEDURE [dbo].[lin_SetSubJobAcquireSkill]
  4871.  
  4872. AS
  4873. SELECT 0
  4874. GO
  4875.  
  4876. CREATE PROCEDURE [dbo].[lin_SetTeamBattleNpcType]
  4877.  
  4878. AS
  4879. SELECT 0
  4880. GO
  4881.  
  4882. CREATE PROCEDURE [dbo].[lin_SetTeamBattleStatus]
  4883.  
  4884. AS
  4885. SELECT 0
  4886. GO
  4887.  
  4888. CREATE PROCEDURE [dbo].[lin_SetTeamBattleWinner]
  4889.  
  4890. AS
  4891. SELECT 0
  4892. GO
  4893.  
  4894. CREATE PROCEDURE [dbo].[lin_SetUserBan]
  4895.  
  4896. AS
  4897. SELECT 0
  4898. GO
  4899.  
  4900. CREATE PROCEDURE [dbo].[lin_SetUserDataEx]
  4901.  
  4902. AS
  4903. SELECT 0
  4904. GO
  4905.  
  4906. CREATE PROCEDURE [dbo].[lin_SetUserNickname]
  4907.  
  4908. AS
  4909. SELECT 0
  4910. GO
  4911.  
  4912. CREATE PROCEDURE [dbo].[lin_SetUserSSQDawnRound]
  4913.  
  4914. AS
  4915. SELECT 0
  4916. GO
  4917.  
  4918. CREATE PROCEDURE [dbo].[lin_StartAllianceWar]
  4919.  
  4920. AS
  4921. SELECT 0
  4922. GO
  4923.  
  4924. CREATE PROCEDURE [dbo].[lin_StartOlympiadSeason]
  4925.  
  4926. AS
  4927. SELECT 0
  4928. GO
  4929.  
  4930. CREATE PROCEDURE [dbo].[lin_StartPledgeWar]
  4931.  
  4932. AS
  4933. SELECT 0
  4934. GO
  4935.  
  4936. CREATE PROCEDURE [dbo].[lin_StopAllianceWar]
  4937.  
  4938. AS
  4939. SELECT 0
  4940. GO
  4941.  
  4942. CREATE PROCEDURE [dbo].[lin_StopPledgeWar]
  4943.  
  4944. AS
  4945. SELECT 0
  4946. GO
  4947.  
  4948. CREATE PROCEDURE [dbo].[lin_SurrenderAllianceWar]
  4949.  
  4950. AS
  4951. SELECT 0
  4952. GO
  4953.  
  4954. CREATE PROCEDURE [dbo].[lin_SurrenderPersonally]
  4955.  
  4956. AS
  4957. SELECT 0
  4958. GO
  4959.  
  4960. CREATE PROCEDURE [dbo].[lin_SurrenderPledgeWar]
  4961.  
  4962. AS
  4963. SELECT 0
  4964. GO
  4965.  
  4966. CREATE PROCEDURE [dbo].[lin_SwitchPledgeAnnounceShowFlag]
  4967.  
  4968. AS
  4969. SELECT 0
  4970. GO
  4971.  
  4972. CREATE PROCEDURE [dbo].[lin_TrasferWarehouseNewAll]
  4973.  
  4974. AS
  4975. SELECT 0
  4976. GO
  4977.  
  4978. CREATE PROCEDURE [dbo].[lin_TrasferWarehouseNewPartial]
  4979.  
  4980. AS
  4981. SELECT 0
  4982. GO
  4983.  
  4984. CREATE PROCEDURE [dbo].[lin_UninstallAllBattleCamp]
  4985.  
  4986. AS
  4987. SELECT 0
  4988. GO
  4989.  
  4990. CREATE PROCEDURE [dbo].[lin_UninstallBattleCamp]
  4991.  
  4992. AS
  4993. SELECT 0
  4994. GO
  4995.  
  4996. CREATE PROCEDURE [dbo].[lin_UnregisterSiegeAgitPledge]
  4997.  
  4998. AS
  4999. SELECT 0
  5000. GO
  5001.  
  5002. CREATE PROCEDURE [dbo].[lin_UnregisterTeamBattleAgitMember]
  5003.  
  5004. AS
  5005. SELECT 0
  5006. GO
  5007.  
  5008. CREATE PROCEDURE [dbo].[lin_UnregisterTeamBattleAgitPledge]
  5009.  
  5010. AS
  5011. SELECT 0
  5012. GO
  5013.  
  5014. CREATE PROCEDURE [dbo].[lin_UpdateActiveSkill]
  5015.  
  5016. AS
  5017. SELECT 0
  5018. GO
  5019.  
  5020. CREATE PROCEDURE [dbo].[lin_UpdateCastle]
  5021.  
  5022. AS
  5023. SELECT 0
  5024. GO
  5025.  
  5026. CREATE PROCEDURE [dbo].[lin_UpdateCastleWar]
  5027.  
  5028. AS
  5029. SELECT 0
  5030. GO
  5031.  
  5032. CREATE PROCEDURE [dbo].[lin_UpdateControlTower]
  5033.  
  5034. AS
  5035. SELECT 0
  5036. GO
  5037.  
  5038. CREATE PROCEDURE [dbo].[lin_UpdateJournal]
  5039.  
  5040. AS
  5041. SELECT 0
  5042. GO
  5043.  
  5044. CREATE PROCEDURE [dbo].[lin_UpdateLottoGame]
  5045.  
  5046. AS
  5047. SELECT 0
  5048. GO
  5049.  
  5050. CREATE PROCEDURE [dbo].[lin_UpdateLottoGameState]
  5051.  
  5052. AS
  5053. SELECT 0
  5054. GO
  5055.  
  5056. CREATE PROCEDURE [dbo].[lin_UpdateMarketPrice]
  5057.  
  5058. AS
  5059. SELECT 0
  5060. GO
  5061.  
  5062. CREATE PROCEDURE [dbo].[lin_UpdateMercenary]
  5063.  
  5064. AS
  5065. SELECT 0
  5066. GO
  5067.  
  5068. CREATE PROCEDURE [dbo].[lin_UpdateMonRace]
  5069.  
  5070. AS
  5071. SELECT 0
  5072. GO
  5073.  
  5074. CREATE PROCEDURE [dbo].[lin_UpdateMonRaceInfo]
  5075.  
  5076. AS
  5077. SELECT 0
  5078. GO
  5079.  
  5080. CREATE PROCEDURE [dbo].[lin_UpdateMonRaceMon]
  5081.  
  5082. AS
  5083. SELECT 0
  5084. GO
  5085.  
  5086. CREATE PROCEDURE [dbo].[lin_UpdateNewbieCharData]
  5087.  
  5088. AS
  5089. SELECT 0
  5090. GO
  5091.  
  5092. CREATE PROCEDURE [dbo].[lin_UpdateNpcBossVariable]
  5093.  
  5094. AS
  5095. SELECT 0
  5096. GO
  5097.  
  5098. CREATE PROCEDURE [dbo].[lin_UpdatePledgeInfo]
  5099.  
  5100. AS
  5101. SELECT 0
  5102. GO
  5103.  
  5104. CREATE PROCEDURE [dbo].[lin_updateSociality]
  5105.  
  5106. AS
  5107. SELECT 0
  5108. GO
  5109.  
  5110. CREATE PROCEDURE [dbo].[lin_updateSulffrageUsed]
  5111.  
  5112. AS
  5113. SELECT 0
  5114. GO
  5115.  
  5116. CREATE PROCEDURE [dbo].[lin_UpdateUserItem]
  5117.  
  5118. AS
  5119. SELECT 0
  5120. GO
  5121.  
  5122. CREATE PROCEDURE [dbo].[lin_UpdateUseTime]
  5123.  
  5124. AS
  5125. SELECT 0
  5126. GO
  5127.  
  5128. CREATE PROCEDURE [dbo].[lin_UpdateWarehouseItem]
  5129.  
  5130. AS
  5131. SELECT 0
  5132. GO
  5133.  
  5134. CREATE PROCEDURE [dbo].[lin_ViewSiegeList]
  5135.  
  5136. AS
  5137. SELECT 0
  5138. GO
  5139.  
  5140. CREATE PROCEDURE [dbo].[lin_WithdrawAlliance]
  5141.  
  5142. AS
  5143. SELECT 0
  5144. GO
  5145.  
  5146. CREATE PROCEDURE [dbo].[lin_WithdrawPledgeMember]
  5147.  
  5148. AS
  5149. SELECT 0
  5150. GO
  5151.  
  5152. CREATE PROCEDURE [dbo].[lin_writeBbsall]
  5153.  
  5154. AS
  5155. SELECT 0
  5156. GO
  5157.  
  5158. CREATE PROCEDURE [dbo].[lin_writeBbsTGS]
  5159.  
  5160. AS
  5161. SELECT 0
  5162. GO
  5163.  
  5164. CREATE PROCEDURE [dbo].[lin_WriteCastleTax]
  5165.  
  5166. AS
  5167. SELECT 0
  5168. GO
  5169.  
  5170. CREATE PROCEDURE [dbo].[lin_WriteHeroWords]
  5171.  
  5172. AS
  5173. SELECT 0
  5174. GO
  5175.  
  5176. CREATE PROCEDURE [dbo].[lin_WriteNoblessAchievement]
  5177.  
  5178. AS
  5179. SELECT 0
  5180. GO
  5181.  
  5182. CREATE PROCEDURE [dbo].[SP_DBCC]
  5183.  
  5184. AS
  5185. SELECT 0
  5186. GO
  5187.  
  5188. CREATE PROCEDURE [dbo].[sp_test]
  5189.  
  5190. AS
  5191. SELECT 0
  5192. GO
  5193.  
  5194. CREATE PROCEDURE [dbo].[spCopyXYZlocForDummy]
  5195.  
  5196. AS
  5197. SELECT 0
  5198. GO
  5199.  
  5200. CREATE PROCEDURE [dbo].[STAT_ITEM_ACC]
  5201.  
  5202. AS
  5203. SELECT 0
  5204. GO
  5205.  
  5206. CREATE PROCEDURE [dbo].[table_info]
  5207.  
  5208. AS
  5209. SELECT 0
  5210. GO
  5211.  
  5212. CREATE PROCEDURE [dbo].[TranLogBackup]
  5213.  
  5214. AS
  5215. SELECT 0
  5216. GO
  5217.  
  5218. ALTER PROC [dbo].DB_BACKUP
  5219.     @DBNAME  VARCHAR(16),    
  5220.     @path  VARCHAR(32) = 'F:\MSSQL\BACKUP\',    
  5221.     @gen  int = 7
  5222.   AS
  5223.     begin    
  5224.         SET QUOTED_IDENTIFIER OFF  
  5225.  
  5226.         declare @dev_name varchar(64)    
  5227.         declare @dev_name_del varchar(64)    
  5228.         declare @physical_name  varchar(64)    
  5229.         declare @description varchar(64)    
  5230.    
  5231.         if ( select count(*) from master.dbo.sysdatabases where name = @dbname ) = 0    
  5232.         begin    
  5233.             select 'DATABASE "' + @DBNAME + '" does NOT exist.'    
  5234.             return    
  5235.         end    
  5236.    
  5237.         select @description = @DBNAME  + ' , ' + CONVERT(CHAR(20),GETDATE())    
  5238.  
  5239.  
  5240.         if datepart(hour,getdate()) =  8
  5241.           begin
  5242.             set @GEN = 7
  5243.             select @dev_name = @@SERVERNAME + '.' + @DBNAME + '.' + convert(char(10),getdate() , 120 )    
  5244.             select @dev_name_del = @@SERVERNAME + '.' + @DBNAME + '.' + convert(char(10),getdate() - 7 , 120 )    
  5245.             select @physical_name = rtrim(upper(@PATH)) + rtrim(upper(@dev_name)) + '.PM'    
  5246.             select @description = 'Daily 2nd Backup , ' + @DBNAME  + '   ' + CONVERT(CHAR(20),GETDATE())               
  5247.           end
  5248.  
  5249.         else if datepart(hour,getdate()) < 12
  5250.           begin
  5251.             select @dev_name = @@SERVERNAME + '.' + @DBNAME + ' ' + convert(char(10),getdate() , 120 )    
  5252.             select @dev_name_del = @@SERVERNAME + '.' + @DBNAME + ' ' + convert(char(10),getdate() - @gen , 120 )    
  5253.             select @physical_name = rtrim(upper(@PATH)) + rtrim(upper(@dev_name)) + '.BAK'    
  5254.             select @description = 'Daily Backup , ' + @DBNAME  + '   ' + CONVERT(CHAR(20),GETDATE())    
  5255.           end
  5256.  
  5257.             else
  5258.           begin
  5259.             select @dev_name = @@SERVERNAME + '.' + @DBNAME + '.' + convert(char(10),getdate() , 120 )    
  5260.             select @dev_name_del = @@SERVERNAME + '.' + @DBNAME + '.' + convert(char(10),getdate() - 1 , 120 )    
  5261.             select @physical_name = rtrim(upper(@PATH)) + rtrim(upper(@dev_name)) + '.PMBAK'    
  5262.             select @description = 'Daily 2nd Backup , ' + @DBNAME  + '   ' + CONVERT(CHAR(20),GETDATE())               
  5263.           end
  5264.  
  5265.         if ( select count(*) from master.dbo.sysdevices where name = rtrim(@dev_name_del) ) > 0    
  5266.             EXEC sp_dropdevice @dev_name_del,'delfile'    
  5267.    
  5268.         if ( select count(*) from master.dbo.sysdevices where name = rtrim(@dev_name) ) = 0    
  5269.             EXEC sp_addumpdevice 'disk' , @dev_name , @physical_name    
  5270.    
  5271.         BACKUP DATABASE @DBNAME TO @dev_name WITH INIT , NAME = @description , NOSKIP , NOFORMAT    
  5272.  
  5273.     end
  5274. GO
  5275.  
  5276. /****** Object:  Stored Procedure dbo.dp_adena_rank    Script Date: 2003-09-20 ?? 11:51:56 ******/
  5277. ALTER PROCEDURE dbo.dp_adena_rank
  5278. (
  5279. @limit int
  5280. )
  5281.  AS
  5282.  
  5283. declare @crdate datetime
  5284.  
  5285. select @crdate = crdate   from dbo.sysobjects where id = object_id(N'[dbo].[dt_adena_rank_temp]') and OBJECTPROPERTY(id, N'IsUserTable') = 1
  5286.  
  5287. if @crdate is not null
  5288.     if  datediff(hh,@crdate, getdate()) > 1
  5289.         drop table [dbo].[dt_adena_rank_temp]
  5290.     else
  5291.         goto SelectData
  5292.  
  5293.  
  5294. CREATE TABLE [dbo].[dt_adena_rank_temp] (
  5295.         [char_id] [int] NOT NULL ,
  5296.         [amount] [numeric](18, 0) NOT NULL ,
  5297.         [rank] [int] IDENTITY (1, 1) NOT NULL
  5298.     ) ON [PRIMARY]
  5299.  
  5300. insert dbo.dt_adena_rank_temp (char_id, amount)
  5301. select  top 1000  char_id, sum(cast(amount as numeric )) as amount from user_item with (readpast) where item_type = 57 group by char_id
  5302. order by 2 desc
  5303.  
  5304.  
  5305. SelectData:
  5306.  
  5307. select  b.char_name, b.account_name, a.amount, a.rank from [dbo].[dt_adena_rank_temp] as a, user_data as b
  5308. where a.rank <= @limit and a.char_id = b.char_id
  5309. order by rank
  5310. GO
  5311.  
  5312. /****** Object:  Stored Procedure dbo.dp_GetItemListByAccount    Script Date: 2003-09-20 ?? 11:51:57 ******/
  5313.  
  5314. ALTER PROCEDURE [dbo].[dp_GetItemListByAccount] @user_id varchar(12)
  5315. AS
  5316. SELECT b.item_id, c.name, a.char_name, b.warehouse, b.amount, b.enchant, b.eroded, b.bless, b.wished
  5317. FROM user_data a, user_item b, itemdata  c
  5318. WHERE a.account_name = @user_id
  5319. AND a.char_id = b.char_id AND b.item_type = c.id
  5320. ORDER BY a.char_name, b.warehouse, b.item_id
  5321. GO
  5322.  
  5323. /****** Object:  Stored Procedure dbo.dp_GetItemListByPledge    Script Date: 2003-09-20 ?? 11:51:57 ******/
  5324.  
  5325. ALTER PROCEDURE [dbo].[dp_GetItemListByPledge] @user_id varchar(30)
  5326. AS
  5327. SELECT b.item_id, c.name, a.char_name, b.warehouse, b.amount, b.enchant, b.eroded, b.bless, b.wished
  5328. FROM user_data a INNER JOIN user_item b ON a.char_id = b.char_id, itemdata c
  5329. WHERE a.char_id in (SELECT char_id FROM user_data a INNER JOIN pledge b ON a.pledge_id = b.pledge_id WHERE b.name = @user_id)
  5330. AND b.item_type = c.id
  5331. ORDER BY a.char_name, b.warehouse, b.item_id
  5332. GO
  5333.  
  5334. /****** Object:  Stored Procedure dbo.dp_GetItemListByUserID    Script Date: 2003-09-20 ?? 11:51:58 ******/
  5335.  
  5336. ALTER PROCEDURE [dbo].[dp_GetItemListByUserID] @user_id varchar(12)
  5337. AS
  5338. SELECT user_item.item_id, itemdata.name, user_data.char_name, user_item.warehouse, user_item.amount, user_item.enchant, user_item.eroded, user_item.bless, user_item.wished
  5339. FROM user_data, user_item, itemdata
  5340. WHERE char_name = @user_id
  5341. AND user_data.char_id = user_item.char_id AND user_item.item_type = itemdata.id
  5342. ORDER BY  user_item.warehouse, user_item.item_id
  5343. GO
  5344.  
  5345. ALTER procedure [dbo].give_lotto_price
  5346.     @log_server varchar(16),
  5347.     @world_id   int
  5348. as
  5349.  
  5350. declare @round_number int
  5351. select @round_number = max(round_number) - 2 from lotto_game(nolock)
  5352.  
  5353. /**
  5354.     1) lotto_game? ??? ?? ??? 1??? ??
  5355.         - ??? ??? ?? ??? ?? ??
  5356. */
  5357. update lotto_game
  5358. set carried_adena = 100000000 - (total_count * 2000) * 0.5
  5359. where round_number = @round_number
  5360.  
  5361. declare @win1_price int
  5362. declare @win2_price int
  5363. declare @win3_price int
  5364. select @win1_price = case winner1_count when 0 then 0 else (100000000 - (winner4_count * 2)) * 0.6 / winner1_count end,
  5365.     @win2_price = case winner2_count when 0 then 0 else (100000000 - (winner4_count * 2)) * 0.2 / winner2_count end,
  5366.     @win3_price = case winner3_count when 0 then 0 else (100000000 - (winner4_count * 2)) * 0.2 / winner3_count end
  5367. from lotto_game(nolock)
  5368. where round_number = @round_number
  5369.  
  5370.  
  5371. /**
  5372.     2) ?? ?????? ??? ??
  5373. */
  5374. create table tmp_lotto_price_given (
  5375.     char_id int,
  5376.     char_name   varchar(50),
  5377.     rank    int,
  5378.     price   int,
  5379.     new_price   int
  5380. )
  5381.  
  5382. declare @sql    varchar(4000)
  5383. set @sql = 'INSERT INTO tmp_lotto_price_given'
  5384.     + ' SELECT *'
  5385.     + ' FROM  openrowset(''SQLOLEDB'', ''' + @log_server + ''';''sa'';''sa'', ''EXEC lin2log.dbo.get_lotto_given ' + cast(@world_id as varchar) + ', ' + cast(@round_number as varchar) + ''')'
  5386. exec (@sql)
  5387.  
  5388. update tmp_lotto_price_given set char_id = T.char_id from user_data T(nolock) where tmp_lotto_price_given.char_name = T.char_name
  5389. print 'Candidates: ' + cast(@@rowcount as varchar)
  5390.  
  5391.  
  5392. /**
  5393.     3) ?????? ?? ??
  5394. */
  5395. update tmp_lotto_price_given set new_price = @win1_price where rank = 1
  5396. update tmp_lotto_price_given set new_price = @win2_price where rank = 2
  5397. update tmp_lotto_price_given set new_price = @win3_price where rank = 3
  5398.  
  5399.  
  5400. /**
  5401.     4) ???? ??
  5402. */
  5403. update user_item
  5404. set amount = amount + T.new_price - T.price
  5405. from tmp_lotto_price_given T(nolock)
  5406. where item_type = 57
  5407.     and warehouse = 0
  5408.     and user_item.char_id = T.char_id
  5409.     and T.new_price > T.price
  5410. print 'Updated: ' + cast(@@rowcount as varchar)
  5411.  
  5412. insert into user_item (char_id, item_type, amount, enchant, eroded, bless, ident, wished, warehouse)
  5413. select T.char_id, 57, new_price - price, 0, 0, 0, 0, 0, 0
  5414. from tmp_lotto_price_given T(nolock)
  5415. where T.char_id not in (select char_id from user_item(nolock) where item_type = 57 and warehouse = 0)
  5416.     and T.new_price > T.price
  5417. print 'Inserted: ' + cast(@@rowcount as varchar)
  5418.  
  5419.  
  5420. /**
  5421.     5) ?? ??? ??
  5422. drop table tmp_lotto_price_given
  5423. */
  5424. GO
  5425.  
  5426. ALTER PROCEDURE dbo.lin_AddAllOlympiadBonusPoint
  5427. (
  5428. @season INT,
  5429. @step INT,
  5430. @bonus_point INT
  5431. )
  5432. AS
  5433. SET NOCOUNT ON
  5434.  
  5435. UPDATE user_nobless
  5436. SET olympiad_point = olympiad_point + @bonus_point
  5437.  
  5438. UPDATE olympiad
  5439. SET step = @step
  5440. WHERE season = @season
  5441. GO
  5442.  
  5443. /********************************************  
  5444. lin_AddBlockList  
  5445. add character's blocked list.  
  5446. INPUT  
  5447.  char_id,  
  5448.  target char_name  
  5449. OUTPUT  
  5450. RETURN  
  5451. made BY  
  5452.  carrot  
  5453. DATE  
  5454.  2003-12-01  
  5455. CHANGE  
  5456. ********************************************/  
  5457. ALTER PROCEDURE [DBO].[lin_AddBlockList]  
  5458. (  
  5459.  @char_id INT,  
  5460.  @target_char_name NVARCHAR(50)  
  5461. )  
  5462. AS  
  5463.  
  5464. SET NOCOUNT ON  
  5465.  
  5466. DECLARE @target_char_id INT  
  5467. DECLARE @target_builder_lev INT  
  5468. SET @target_char_id = 0  
  5469. SET @target_builder_lev  = 0
  5470.  
  5471. SELECT @target_char_id = char_id, @target_builder_lev = builder FROM user_data WHERE char_name = @target_char_name  
  5472.  
  5473. IF (@target_builder_lev  > 0 AND @target_builder_lev  <= 5)
  5474. BEGIN
  5475.   RAISERROR ('Try block builder : char id = [%d], target naem[%s]', 16, 1, @char_id, @target_char_name)  
  5476.   RETURN -1;
  5477. END
  5478.  
  5479. IF @target_char_id > 0  
  5480. BEGIN  
  5481.  INSERT INTO user_blocklist VALUES (@char_id, @target_char_id, @target_char_name)  
  5482.  IF NOT @@ROWCOUNT = 1  
  5483.  BEGIN  
  5484.   RAISERROR ('Cannot find add blocklist: char id = [%d], target naem[%s]', 16, 1, @char_id, @target_char_name)  
  5485.  END  
  5486.  ELSE  
  5487.  BEGIN  
  5488.   SELECT @target_char_id  
  5489.  END  
  5490. END  
  5491. ELSE  
  5492. BEGIN  
  5493.  RAISERROR ('Cannot find add blocklist: char id = [%d], target naem[%s]', 16, 1, @char_id, @target_char_name)  
  5494. END
  5495. GO
  5496.  
  5497. /****** Object:  Stored Procedure dbo.lin_AddBookMark    Script Date: 2003-09-20 ?? 11:51:58 ******/
  5498. /********************************************
  5499. lin_AddBookMark
  5500.     add bookmark item
  5501. INPUT
  5502.     @char_id    int,
  5503.     @bookmark_name  nvarchar(50),
  5504.     @world      int,
  5505.     @x      int,
  5506.     @y      int,
  5507.     @z      int
  5508. OUTPUT
  5509.  
  5510. return
  5511. made by
  5512.     young
  5513. date
  5514.     2002-11-13
  5515. ********************************************/
  5516. ALTER PROCEDURE [DBO].[lin_AddBookMark]
  5517. (
  5518.     @char_id    INT,
  5519.     @bookmark_name  nvarchar(50),
  5520.     @world      INT,
  5521.     @x      INT,
  5522.     @y      INT,
  5523.     @z      INT
  5524. )
  5525. AS
  5526. SET NOCOUNT ON
  5527.  
  5528. IF EXISTS(SELECT name FROM bookmark WHERE char_id = @char_id AND name = @bookmark_name)
  5529. BEGIN
  5530.     UPDATE bookmark SET world=@world, x=@x, y=@y, z=@z WHERE char_id = @char_id AND name = @bookmark_name
  5531. END
  5532. ELSE
  5533. BEGIN
  5534.     INSERT INTO bookmark(char_id, name, world, x, y, z)
  5535.     VALUES( @char_id, @bookmark_name, @world, @x,@y,@z)
  5536. END
  5537. GO
  5538.  
  5539. ALTER PROCEDURE [DBO].[lin_AddLottoItem]  
  5540. (  
  5541.  @round INT ,
  5542.  @item_id INT ,
  5543.  @number_flag INT
  5544. )  
  5545. AS  
  5546.  
  5547. SET NOCOUNT ON  
  5548.  
  5549. INSERT lotto_items
  5550. VALUES (@round, @item_id, @number_flag)
  5551.  
  5552. DECLARE @tot_count INT
  5553.  
  5554. SELECT @tot_count = COUNT(*) FROM lotto_items (nolock) WHERE round_number = @round
  5555. UPDATE lotto_game SET total_count = @tot_count WHERE round_number = @round
  5556. SELECT @tot_count
  5557. GO
  5558.  
  5559. ALTER PROCEDURE dbo.lin_AddOlympiadPoint
  5560. (
  5561. @char_id INT,
  5562. @diff INT
  5563. )
  5564. AS
  5565. SET NOCOUNT ON
  5566.  
  5567. UPDATE user_nobless
  5568. SET olympiad_point = olympiad_point + @diff
  5569. WHERE char_id = @char_id
  5570.  
  5571. DECLARE @olympiad_point INT
  5572. SELECT @olympiad_point = olympiad_point FROM user_nobless WHERE char_id = @char_id
  5573. IF @olympiad_point < 0
  5574. BEGIN
  5575.     UPDATE user_nobless
  5576.     SET olympiad_point = 0
  5577.     WHERE char_id = @char_id
  5578. END
  5579. GO
  5580.  
  5581. /****** Object:  Stored Procedure dbo.lin_AddProhibit    Script Date: 2003-09-20 ?? 11:51:58 ******/
  5582. /********************************************
  5583. lin_AddProhibit
  5584.    
  5585. INPUT  
  5586.     @char_name  nvarchar(50)
  5587. OUTPUT
  5588. return
  5589. made by
  5590.     carrot
  5591. date
  5592.     2002-06-16
  5593. ********************************************/
  5594. ALTER PROCEDURE [DBO].[lin_AddProhibit]
  5595. (
  5596.     @char_name  nvarchar(50),
  5597.     @noption    INT
  5598. )
  5599. AS
  5600. SET NOCOUNT ON
  5601.  
  5602. IF ( @noption = 1)
  5603.     INSERT INTO user_prohibit VALUES (@char_name)
  5604. ELSE IF ( @noption = 3)
  5605.     INSERT INTO user_prohibit_word VALUES (@char_name)
  5606. GO
  5607.  
  5608. /****** Object:  Stored Procedure dbo.lin_InsertUserHistory    Script Date: 2003-09-20 ?? 11:51:59 ******/
  5609. /********************************************
  5610. lin_InsertUserHistory
  5611.     make user history log
  5612. INPUT
  5613.     @char_name  nvarchar(50),
  5614.     @char_id    int,
  5615.     @log_action tinyint,
  5616.     @account_name   nvarchar(50),
  5617.     @create_date        datetime
  5618. OUTPUT
  5619. return
  5620. made by
  5621.     young
  5622. date
  5623.     2003-1-14
  5624. ********************************************/
  5625. ALTER PROCEDURE [DBO].[lin_InsertUserHistory]
  5626. (
  5627.     @char_name  nvarchar(50),
  5628.     @char_id    INT,
  5629.     @log_action tinyint,
  5630.     @account_name   nvarchar(50),
  5631.     @create_date        datetime
  5632. )
  5633. AS
  5634. SET NOCOUNT ON
  5635.  
  5636. DECLARE @create_date2 datetime
  5637.  
  5638. IF @create_date IS NULL
  5639. BEGIN
  5640.     SET @create_date2 = getdate()
  5641. END
  5642. ELSE
  5643. BEGIN
  5644.     SET @create_date2 = @create_date
  5645. END
  5646. INSERT INTO user_history( char_name, char_id, log_action, account_name, create_date) VALUES
  5647. ( @char_name, @char_id, @log_action, @account_name, @create_date2)
  5648. GO
  5649.  
  5650. /********************************************
  5651. lin_AddPunishmentHistory
  5652.     Add Punishment Histroy to user_history
  5653. INPUT
  5654.     @char_name  NVARCHAR(24),
  5655.     @char_id    INT,
  5656.     @log_type   TINYINT,
  5657.     @account_name   NVARCHAR(24)
  5658. OUTPUT
  5659.    
  5660. return
  5661. made by
  5662.     zzangse
  5663. date
  5664.     2005-08-31          created by zzangse
  5665. ********************************************/
  5666. ALTER  PROCEDURE [dbo].[lin_AddPunishmentHistory]
  5667. (
  5668.     @char_name  NVARCHAR(24),
  5669.     @char_id    INT,
  5670.     @log_type   TINYINT,
  5671.     @account_name   NVARCHAR(24)
  5672. )
  5673. AS
  5674.  
  5675. SET NOCOUNT ON  
  5676. SET @char_name = RTRIM(@char_name)  
  5677. DECLARE @create_date datetime
  5678.  
  5679. SELECT
  5680.     @create_date = create_date
  5681. FROM user_data
  5682. WHERE char_id = @char_id
  5683.  
  5684. IF @char_id>0
  5685. BEGIN  
  5686.  -- make user_history  
  5687.  EXEC lin_InsertUserHistory @char_name, @char_id, @log_type, @account_name, @create_date
  5688. END
  5689. GO
  5690.  
  5691. /******************************************************************************
  5692. #Name:  lin_AddSubjob
  5693. #Desc:  add subjob
  5694.  
  5695. #Argument:
  5696.     Input:  @char_id    INT
  5697.         @new_class  TINYINT
  5698.         @hp     FLOAT
  5699.         @mp     FLOAT
  5700.         @sp     INT
  5701.         @exp        INT
  5702.         @level      TINYINT
  5703.         @subjob_id  TINYINT
  5704.         @henna_1    INT
  5705.         @henna_2    INT
  5706.         @henna_3    INT
  5707.     Output:
  5708. #Return:    Success(1) / Failure(0)
  5709. #Result Set:
  5710.  
  5711. #Remark:
  5712. #Example:
  5713. #See:
  5714. #History:
  5715.     Create  btwinuni    2005-07-28
  5716.     Modify  btwinuni    2005-09-07
  5717. ******************************************************************************/
  5718. ALTER PROCEDURE [dbo].[lin_AddSubJob]
  5719. (
  5720.     @char_id    INT,
  5721.     @new_class  TINYINT,
  5722.     @hp     FLOAT,
  5723.     @mp     FLOAT,
  5724.     @sp     INT,
  5725.     @EXP        INT,
  5726.     @level      TINYINT,
  5727.     @subjob_id  TINYINT,
  5728.     @henna_1    INT,
  5729.     @henna_2    INT,
  5730.     @henna_3    INT
  5731. )
  5732. AS
  5733.  
  5734. SET NOCOUNT ON
  5735.  
  5736. DECLARE @ret INT
  5737. SELECT @ret = 1
  5738.  
  5739. BEGIN TRAN
  5740.  
  5741. -- subjob_id duplication check
  5742. IF EXISTS(SELECT subjob_id FROM user_subjob WHERE char_id = @char_id AND subjob_id = @subjob_id)
  5743. BEGIN
  5744.     SELECT @ret = 0
  5745.     GOTO EXIT_TRAN
  5746. END
  5747.  
  5748. ELSE    -- insert
  5749. BEGIN
  5750.     INSERT INTO user_subjob
  5751.     (char_id, hp, mp, sp, EXP, level, henna_1, henna_2, henna_3, subjob_id, create_date)
  5752.     VALUES
  5753.     (@char_id, @hp, @mp, @sp, @EXP, @level, @henna_1, @henna_2, @henna_3, @subjob_id, getdate())
  5754.  
  5755.     DECLARE @SQL VARCHAR(1000)
  5756.     SET @SQL = 'UPDATE user_data '
  5757.         + ' SET subjob' + CAST(@subjob_id AS VARCHAR) + '_class = ' + CAST(@new_class AS VARCHAR)
  5758.         + ' WHERE char_id = ' + CAST(@char_id AS VARCHAR)
  5759.     EXEC (@SQL)
  5760. END
  5761.  
  5762. IF @@ERROR <> 0 OR @@ROWCOUNT <> 1  -- update, insert check
  5763. BEGIN
  5764.     SELECT @ret = 0
  5765.     GOTO EXIT_TRAN
  5766. END
  5767.  
  5768. EXIT_TRAN:
  5769. IF @ret<> 0
  5770. BEGIN
  5771.     COMMIT TRAN
  5772. END
  5773. ELSE
  5774. BEGIN
  5775.     ROLLBACK TRAN
  5776. END
  5777.  
  5778. SELECT @ret
  5779. GO
  5780.  
  5781. /********************************************
  5782. lin_AddSubJobHenna
  5783.    
  5784. INPUT
  5785.     @char_id    int,
  5786.     @subjob_id  int,
  5787.     @henna  int
  5788.  
  5789. OUTPUT
  5790. return
  5791. made by
  5792.     kks
  5793. date
  5794.     2005-01-18
  5795. ********************************************/
  5796. ALTER PROCEDURE [DBO].[lin_AddSubJobHenna]
  5797. (
  5798.     @char_id    INT,
  5799.     @subjob_id  INT,
  5800.     @henna  INT
  5801. )
  5802. AS
  5803. SET NOCOUNT ON
  5804.  
  5805. DECLARE @henna1 INT
  5806. DECLARE @henna2 INT
  5807. DECLARE @henna3 INT
  5808.  
  5809. SET @henna1 = 0
  5810. SET @henna2 = 0
  5811. SET @henna3 = 0
  5812.  
  5813. SELECT @henna1 = isnull(henna_1, 0), @henna2 = isnull(henna_2, 0), @henna3 = isnull(henna_3, 0) FROM user_subjob WHERE char_id = @char_id AND subjob_id = @subjob_id
  5814.  
  5815. IF (@henna1 = 0)
  5816. BEGIN
  5817.     UPDATE user_subjob SET henna_1 = @henna WHERE char_id = @char_id AND subjob_id = @subjob_id
  5818. END
  5819. ELSE IF  (@henna2 = 0)
  5820. BEGIN
  5821.     UPDATE user_subjob SET henna_2 = @henna WHERE char_id = @char_id AND subjob_id = @subjob_id
  5822. END
  5823. ELSE IF (@henna3 = 0)
  5824. BEGIN
  5825.     UPDATE user_subjob SET henna_3 = @henna WHERE char_id = @char_id AND subjob_id = @subjob_id
  5826. END
  5827. GO
  5828.  
  5829. /********************************************
  5830. lin_AddUserLog
  5831.    
  5832. INPUT  
  5833.     @char_id    int,
  5834.     @log_id     int,
  5835.     @log_from   int,
  5836.     @log_to     int,
  5837.     @use_time   int,
  5838.     @subjob_id  int
  5839. OUTPUT
  5840. return
  5841. made by
  5842.     carrot
  5843. date
  5844.     2002-06-16
  5845. modified by
  5846.     kks
  5847. date
  5848.     2005-01-17 
  5849. modified by
  5850.     btwinuni
  5851. date
  5852.     2005-10-24
  5853. ********************************************/
  5854. ALTER PROCEDURE [DBO].[lin_AddUserLog]
  5855. (
  5856.     @char_id    INT,
  5857.     @log_id     INT,
  5858.     @log_from   INT,
  5859.     @log_to     INT,
  5860.     @use_time   INT,
  5861.     @subjob_id  INT = -1
  5862. )
  5863. AS
  5864. SET NOCOUNT ON
  5865.  
  5866.  
  5867. IF @subjob_id < 0
  5868. BEGIN
  5869.     SELECT @subjob_id = subjob_id FROM user_data(NOLOCK) WHERE char_id = @char_id
  5870. END
  5871.  
  5872. INSERT INTO user_log(char_id, log_id, log_from, log_to, use_time, subjob_id) VALUES(@char_id, @log_id, @log_from, @log_to, @use_time, @subjob_id)
  5873. GO
  5874.  
  5875. /****** Object:  Stored Procedure dbo.lin_AdenaChange    Script Date: 2003-09-20 ?? 11:51:56 ******/
  5876. /********************************************
  5877. lin_AdenaChange
  5878.     change adena and return result amount
  5879. INPUT
  5880.     @char_id    INT,
  5881.     @price      INT
  5882. OUTPUT
  5883.     adena id        INT,
  5884.     amount      INT
  5885. return
  5886. made by
  5887.     carrot
  5888. date
  5889.     2002-04-22
  5890. ********************************************/
  5891. ALTER PROCEDURE [DBO].[lin_AdenaChange]
  5892. (
  5893.     @char_id    INT,
  5894.     @price      INT
  5895. )
  5896. AS
  5897. SET NOCOUNT ON
  5898.  
  5899. DECLARE @nAmount    INT
  5900.  
  5901. SET @nAmount = NULL
  5902.  
  5903. SELECT @nAmount = amount FROM user_item WHERE char_id = @char_id AND item_type = 57
  5904. IF @nAmount IS NULL
  5905.     BEGIN
  5906.         SELECT -1, -1
  5907.     END
  5908. ELSE IF @nAmount + @price < 0
  5909.     BEGIN
  5910.         SELECT -1, -1
  5911.     END
  5912. ELSE
  5913.     BEGIN
  5914.         UPDATE user_item SET amount = amount + @price WHERE char_id = @char_id AND item_type = 57 AND warehouse = 0
  5915.         SELECT item_id, amount FROM user_item WHERE char_id = @char_id AND item_type = 57 AND warehouse = 0
  5916.     END
  5917. GO
  5918.  
  5919. /********************************************
  5920. lin_AllianceWarChallengeRejected
  5921.    
  5922. INPUT  
  5923.     @challenger int,
  5924.     @challenger_name nvarchar(50),
  5925.     @challengee int,
  5926.     @challengee_name nvarchar(50),
  5927.     @begin_time int,
  5928.     @status int
  5929. OUTPUT
  5930. return
  5931. made by
  5932.     bert
  5933. date
  5934.     2003-11-04
  5935. ********************************************/
  5936. ALTER PROCEDURE [DBO].[lin_AllianceWarChallengeRejected]
  5937. (
  5938.     @challenger INT,
  5939.     @challenger_name nvarchar(50),
  5940.     @challengee INT,
  5941.     @challengee_name nvarchar(50),
  5942.     @begin_time INT,
  5943.     @STATUS INT
  5944. )
  5945. AS
  5946. SET NOCOUNT ON
  5947.  
  5948. INSERT INTO alliance_war (challenger, challenger_name,  challengee, challengee_name, begin_time, STATUS)
  5949. VALUES (@challenger, @challenger_name,  @challengee, @challengee_name, @begin_time, @STATUS)
  5950. GO
  5951.  
  5952. /****** Object:  Stored Procedure dbo.lin_AmountChange    Script Date: 2003-09-20 ?? 11:51:58 ******/
  5953. /********************************************
  5954. lin_AmountChange
  5955.     change item's amount and return result amount
  5956. INPUT
  5957.     @char_id    INT,
  5958.     @item_id    INT,
  5959.     @change     INT,
  5960.     @bZeorDelete    INT = 0
  5961. OUTPUT
  5962.     amount      INT
  5963. return
  5964. made by
  5965.     carrot
  5966. date
  5967.     2002-04-22
  5968. change
  5969.     2002-10-15
  5970.         ??? ??? 0? ??? ? ??? ?? ?? ??? ??
  5971. change
  5972.     2003-05-12
  5973.         ?? ??? ??? ??? ??
  5974. ********************************************/
  5975. ALTER PROCEDURE [DBO].[lin_AmountChange]
  5976. (
  5977.     @char_id    INT,
  5978.     @item_id    INT,
  5979.     @CHANGE     INT,
  5980.     @bZeorDelete    INT = 0
  5981. )
  5982. AS
  5983. SET NOCOUNT ON
  5984.  
  5985. DECLARE @nResultAmount  INT
  5986. SET @nResultAmount = -1
  5987.  
  5988. IF(SELECT top 1 amount FROM user_item WHERE char_id = @char_id AND item_id = @item_id ) + @CHANGE >= 0
  5989. BEGIN
  5990.     UPDATE user_item SET amount = amount + @CHANGE WHERE char_id = @char_id AND item_id = @item_id
  5991.    
  5992.     IF NOT @@ROWCOUNT = 1
  5993.         SELECT -1
  5994.     ELSE
  5995.         SELECT @nResultAmount = ISNULL(amount, -1) FROM user_item WHERE char_id = @char_id AND item_id = @item_id
  5996.         IF ( @nResultAmount = 0 AND @bZeorDelete = 1)
  5997.         BEGIN
  5998.             UPDATE user_item SET char_id = 0, item_type = 0 WHERE char_id = @char_id AND item_id = @item_id
  5999.     --      UPDATE user_item SET char_id = 0, item_type = 0 WHERE char_id = @char_id AND item_id = @item_id
  6000.         END
  6001.    
  6002.         SELECT @nResultAmount
  6003. END
  6004. ELSE
  6005. SELECT -1
  6006. GO
  6007.  
  6008. /****** Object:  Stored Procedure dbo.lin_ApproveBattle    Script Date: 2003-09-20 ?? 11:51:58 ******/
  6009. /********************************************
  6010. lin_ApproveBattle
  6011.    
  6012. INPUT  
  6013.     @castle_id  int,
  6014.     @type   int
  6015. OUTPUT
  6016.     pledge_id,
  6017.     name
  6018.     type
  6019. return
  6020. made by
  6021.     carrot
  6022. date
  6023.     2002-06-16
  6024. ********************************************/
  6025. ALTER PROCEDURE [DBO].[lin_ApproveBattle]
  6026. (
  6027.     @castle_id  INT,
  6028.     @TYPE   INT
  6029. )
  6030. AS
  6031. SET NOCOUNT ON
  6032.  
  6033. SELECT
  6034.     p.pledge_id,
  6035.     p.name,
  6036.     TYPE
  6037. FROM
  6038.     pledge p (nolock),
  6039.     castle_war cw (nolock)
  6040. WHERE
  6041.     p.pledge_id = cw.pledge_id
  6042.     AND cw.castle_id = @castle_id
  6043.     AND cw.TYPE <> @TYPE
  6044. GO
  6045.  
  6046. /********************************************
  6047. lin_ArchiveMail
  6048.     archive mail
  6049. INPUT
  6050.     @char_id        int,
  6051.     @mail_id        int,
  6052.     @mailbox_type           int
  6053.  
  6054. OUTPUT
  6055. return
  6056. made by
  6057.     kks
  6058. date
  6059.     2004-12-19
  6060. ********************************************/
  6061. ALTER PROCEDURE [DBO].[lin_ArchiveMail]
  6062. (
  6063.     @char_id        INT,
  6064.     @mail_id        INT,
  6065.     @mailbox_type           INT
  6066. )
  6067. AS
  6068. SET NOCOUNT ON
  6069.  
  6070. IF @mailbox_type = 0
  6071. BEGIN
  6072.     UPDATE user_mail_receiver
  6073.     SET mailbox_type = 2
  6074.     WHERE mail_id = @mail_id AND
  6075.         receiver_id = @char_id
  6076. END
  6077.  
  6078. IF @mailbox_type = 1
  6079. BEGIN
  6080.     UPDATE user_mail_sender
  6081.     SET mailbox_type = 2
  6082.     WHERE mail_id = @mail_id AND
  6083.         sender_id = @char_id
  6084. END
  6085. GO
  6086.  
  6087. /****** Object:  Stored Procedure dbo.lin_BetaAddItem    Script Date: 2003-09-20 ?? 11:51:56 ******/
  6088. ALTER PROCEDURE [DBO].[lin_BetaAddItem]  
  6089. (
  6090.     @char_id INT,
  6091.     @Item_type INT,
  6092.     @amount INT
  6093. )
  6094. AS
  6095.  
  6096. SET NOCOUNT ON
  6097.  
  6098. DECLARE @tempRowCount INT
  6099. DECLARE @bIsStackable TINYINT
  6100. SELECT @bIsStackable = IsStackable FROM ITEMNAME WHERE id = @Item_type
  6101.  
  6102. IF @bIsStackable IS NULL
  6103. BEGIN
  6104.     RAISERROR ('Not exist Item Type', 16, 1)
  6105. END
  6106. ELSE
  6107. BEGIN
  6108.     IF @bIsStackable = 1
  6109.     BEGIN
  6110.         UPDATE user_item SET amount = amount + @amount  WHERE item_type = @Item_type AND char_id = @char_id
  6111.         SET @tempRowCount = @@ROWCOUNT
  6112.         IF @tempRowCount = 0
  6113.             INSERT INTO user_item (char_id, item_type, amount, enchant, eroded, bless, ident, wished, warehouse) VALUES (@char_id, @Item_type, @amount, 0,0,0,0,0,0)
  6114.     END
  6115.     ELSE IF @amount = 1
  6116.     BEGIN
  6117.         INSERT INTO user_item (char_id, item_type, amount, enchant, eroded, bless, ident, wished, warehouse) VALUES (@char_id, @Item_type, @amount, 0,0,0,0,0,0)
  6118.         SET @tempRowCount = @@ROWCOUNT
  6119.     END
  6120.     ELSE
  6121.     BEGIN
  6122.         RAISERROR ('Amount is invalid', 16, 1)
  6123.     END
  6124. END
  6125.  
  6126. IF @tempRowCount IS NOT NULL
  6127.     SELECT @tempRowCount
  6128. GO
  6129.  
  6130. /****** Object:  Stored Procedure dbo.lin_BreakFriendship    Script Date: 2003-09-20 ?? 11:51:58 ******/
  6131. -- lin_BreakFriendship
  6132. -- by bert
  6133.  
  6134. ALTER PROCEDURE dbo.lin_BreakFriendship (@char_id INT, @friend_char_id INT)
  6135. AS
  6136.  
  6137. SET NOCOUNT ON
  6138.  
  6139. DECLARE @ret INT
  6140.  
  6141. DELETE FROM user_friend
  6142. WHERE
  6143. (char_id = @char_id AND friend_char_id = @friend_char_id)
  6144. OR
  6145. (char_id = @friend_char_id AND friend_char_id = @char_id)
  6146.  
  6147. IF @@ERROR = 0 AND @@ROWCOUNT = 2
  6148. BEGIN
  6149.     SELECT @ret = 1
  6150. END
  6151. ELSE
  6152. BEGIN
  6153.     SELECT @ret = 0
  6154. END
  6155.  
  6156. SELECT @ret
  6157. GO
  6158.  
  6159. /********************************************
  6160. lin_CancelAgitAuction
  6161.     cancel agit auction
  6162. INPUT
  6163.     @agit_id    int,
  6164.  
  6165.  
  6166. OUTPUT
  6167. return
  6168. made by
  6169.     young
  6170. date
  6171.     2003-12-11
  6172. ********************************************/
  6173. ALTER PROCEDURE [DBO].[lin_CancelAgitAuction]
  6174. (
  6175. @agit_id        INT,
  6176. @last_cancel        INT
  6177. )
  6178. AS
  6179. SET NOCOUNT ON
  6180.  
  6181. DECLARE @auction_id INT
  6182. SET @auction_id = 0
  6183.  
  6184. SELECT @auction_id = isnull(auction_id , 0) FROM agit (nolock) WHERE id = @agit_id
  6185.  
  6186. UPDATE agit SET auction_id = 0 , last_cancel = @last_cancel WHERE id = @agit_id
  6187.  
  6188. SELECT @auction_id
  6189. GO
  6190.  
  6191. ALTER PROCEDURE dbo.lin_CancelWar
  6192. (
  6193. @challenger INT,
  6194. @challengee INT
  6195. )
  6196. AS
  6197. SET NOCOUNT ON
  6198.  
  6199. DELETE FROM war_declare
  6200. WHERE challenger = @challenger AND challengee = @challengee
  6201. GO
  6202.  
  6203. /****** Object:  Stored Procedure dbo.lin_ChallengeRejected    Script Date: 2003-09-20 ?? 11:51:58 ******/
  6204. /********************************************
  6205. lin_ChallengeRejected
  6206.    
  6207. INPUT  
  6208.     @challenger int,
  6209.     @challenger_name nvarchar(50),
  6210.     @challengee int,
  6211.     @challengee_name nvarchar(50),
  6212.     @begin_time int,
  6213.     @status int
  6214. OUTPUT
  6215. return
  6216. made by
  6217.     carrot
  6218. date
  6219.     2002-06-16
  6220. ********************************************/
  6221. ALTER PROCEDURE [DBO].[lin_ChallengeRejected]
  6222. (
  6223.     @challenger INT,
  6224.     @challenger_name nvarchar(50),
  6225.     @challengee INT,
  6226.     @challengee_name nvarchar(50),
  6227.     @begin_time INT,
  6228.     @STATUS INT
  6229. )
  6230. AS
  6231. SET NOCOUNT ON
  6232.  
  6233. INSERT INTO pledge_war (challenger, challenger_name,  challengee, challengee_name, begin_time, STATUS)
  6234. VALUES (@challenger, @challenger_name,  @challengee, @challengee_name, @begin_time, @STATUS)
  6235. GO
  6236.  
  6237. /****** Object:  Stored Procedure dbo.lin_ChangeCharacterLocation    Script Date: 2003-09-20 ?? 11:51:56 ******/
  6238. /********************************************
  6239. lin_ChangeCharacterLocation
  6240.     Set Character location
  6241. INPUT
  6242.     @char_name  nvarchar,
  6243.     @nWorld     SMALLINT,
  6244.     @nX     INT,
  6245.     @nY     INT,
  6246.     @nZ     INT
  6247. OUTPUT
  6248.     char_id
  6249. return
  6250. made by
  6251.     carrot
  6252. date
  6253.     2002-07-02
  6254. ********************************************/
  6255. ALTER PROCEDURE [DBO].[lin_ChangeCharacterLocation]
  6256. (
  6257.     @char_name  NVARCHAR(24),
  6258.     @nWorld     INT,
  6259.     @nX     INT,
  6260.     @nY     INT,
  6261.     @nZ     INT
  6262. )
  6263. AS
  6264.  
  6265. SET NOCOUNT ON
  6266.  
  6267. DECLARE @Char_id INT
  6268. SET @Char_id = 0
  6269.  
  6270. UPDATE user_data SET world = @nWorld, xLoc = @nX , yLoc = @nY , zLoc = @nZ WHERE char_name = @char_name
  6271. IF @@ROWCOUNT > 0
  6272. BEGIN
  6273.     SELECT @Char_id = char_id FROM user_data WHERE char_name = @char_name
  6274. END
  6275.  
  6276. SELECT @Char_id
  6277. GO
  6278.  
  6279. /****** Object:  Stored Procedure dbo.lin_ChangeCharacterName    Script Date: 2003-09-20 ?? 11:52:00 ******/
  6280. /********************************************
  6281. lin_ChangeCharacterName
  6282.     change character name
  6283. INPUT
  6284.     @old_char_name  nvarchar,
  6285.     @new_char_name  nvarchar
  6286. OUTPUT
  6287.     char_id
  6288. return
  6289. made by
  6290.     young
  6291. date
  6292.     2002-010-08
  6293. ********************************************/
  6294. ALTER PROCEDURE [DBO].[lin_ChangeCharacterName]
  6295. (
  6296.     @old_char_name  NVARCHAR(24),
  6297.     @new_char_name  NVARCHAR(24)
  6298. )
  6299. AS
  6300.  
  6301. SET NOCOUNT ON
  6302.  
  6303. DECLARE @Char_id INT
  6304. DECLARE @nTmpCount INT
  6305. DECLARE @account_name NVARCHAR(50)
  6306. DECLARE @create_date datetime
  6307.  
  6308. SET @Char_id = 0
  6309.  
  6310. IF NOT EXISTS(SELECT char_name FROM user_data WHERE char_name = @new_char_name)
  6311. BEGIN
  6312.     UPDATE user_data SET char_name = @new_char_name WHERE char_name = @old_char_name
  6313.     IF @@ROWCOUNT > 0
  6314.     BEGIN
  6315.         SELECT @char_id = char_id , @account_name = account_name, @create_date = create_date  FROM user_data WHERE char_name = @new_char_name
  6316.     END
  6317. END
  6318.  
  6319. SELECT @Char_id
  6320.  
  6321. IF @char_id > 0
  6322. BEGIN
  6323.     -- make user_history
  6324.     EXEC lin_InsertUserHistory @new_char_name, @char_id, 3, @account_name, @create_date
  6325. END
  6326. GO
  6327.  
  6328. /********************************************
  6329. lin_ChangeCharacterName2
  6330.     change character name
  6331. INPUT
  6332.     @char_id    int,
  6333.     @old_char_name  nvarchar,
  6334.     @new_char_name  nvarchar
  6335. OUTPUT
  6336.     char_id
  6337. return
  6338. made by
  6339.     kks
  6340. date
  6341.     2004-12-21
  6342. ********************************************/
  6343. ALTER PROCEDURE [DBO].[lin_ChangeCharacterName2]
  6344. (
  6345.     @char_id        INT,
  6346.     @old_char_name  NVARCHAR(24),
  6347.     @new_char_name  NVARCHAR(24)
  6348. )
  6349. AS
  6350.  
  6351. SET NOCOUNT ON
  6352.  
  6353. DECLARE @nTmpCount INT
  6354. DECLARE @account_name NVARCHAR(50)
  6355. DECLARE @create_date datetime
  6356.  
  6357. DECLARE @ret_char_id INT
  6358. SET @ret_char_id = 0
  6359.  
  6360. IF NOT EXISTS(SELECT char_name FROM user_data WHERE char_name = @new_char_name AND char_id != @char_id)
  6361. BEGIN
  6362.     UPDATE user_data SET char_name = @new_char_name WHERE char_name = @old_char_name
  6363.    
  6364.     IF @@ROWCOUNT > 0
  6365.     BEGIN
  6366.         SELECT @char_id = char_id , @account_name = account_name, @create_date = create_date  FROM user_data WHERE char_name = @new_char_name
  6367.    
  6368.         -- make user_history
  6369.         EXEC lin_InsertUserHistory @new_char_name, @char_id, 3, @account_name, @create_date
  6370.  
  6371.         SET @ret_char_id = @char_id
  6372.     END
  6373. END
  6374.  
  6375. SELECT @ret_char_id
  6376. GO
  6377.  
  6378. ALTER PROCEDURE dbo.lin_ChangeSubJob
  6379. (
  6380.     @char_id    INT,
  6381.     @subjob_id  TINYINT,
  6382.     @old_subjob_id  TINYINT,
  6383.     @hp     FLOAT,
  6384.     @mp     FLOAT,
  6385.     @sp     INT,
  6386.     @EXP        INT,
  6387.     @level      TINYINT,
  6388.     @henna_1    INT,
  6389.     @henna_2    INT,
  6390.     @henna_3    INT
  6391. )
  6392. AS
  6393.  
  6394. SET NOCOUNT ON
  6395.  
  6396. DECLARE @ret INT
  6397. SELECT @ret = 0
  6398.  
  6399. BEGIN TRAN
  6400.  
  6401. UPDATE user_subjob
  6402. SET hp = @hp, mp = @mp, sp = @sp, EXP = @EXP, level = @level,
  6403.     henna_1 = @henna_1, henna_2 = @henna_2, henna_3 = @henna_3
  6404. WHERE char_id = @char_id AND subjob_id = @old_subjob_id
  6405.  
  6406. IF @@ERROR = 0 AND @@ROWCOUNT = 1   -- update, insert check
  6407. BEGIN
  6408.     SELECT @ret = 1
  6409. END
  6410. ELSE
  6411. BEGIN
  6412.     SELECT @ret = 0
  6413. END
  6414.  
  6415. IF @ret<> 0
  6416. BEGIN
  6417.     COMMIT TRAN
  6418. END
  6419. ELSE
  6420. BEGIN
  6421.     ROLLBACK TRAN
  6422. END
  6423.  
  6424. SELECT hp, mp, sp, EXP, level, henna_1, henna_2, henna_3 FROM user_subjob
  6425.     WHERE char_id = @char_id AND subjob_id = @subjob_id
  6426. GO
  6427.  
  6428. /********************************************
  6429. lin_ChangeSubJobBySubJobId
  6430.     get temp mail
  6431. INPUT
  6432.     @char_id        int,
  6433.     @subjob_id      int
  6434. OUTPUT
  6435. return
  6436. made by
  6437.     kks
  6438. date
  6439.     2005-04-06
  6440.     2005-09-07  modified by btwinuni
  6441. ********************************************/
  6442. ALTER PROCEDURE [DBO].[lin_ChangeSubJobBySubJobId]
  6443. (
  6444.     @char_id        INT,
  6445.     @subjob_id      INT
  6446. )
  6447. AS
  6448. SET NOCOUNT ON
  6449.  
  6450.  
  6451. IF EXISTS(SELECT TOP 1 char_id FROM user_data(NOLOCK) WHERE char_id = @char_id AND subjob_id = @subjob_id)
  6452. BEGIN
  6453.     RETURN
  6454. END
  6455.  
  6456. -- update subjob char property
  6457. UPDATE  user_subjob
  6458. SET hp = R.hp,
  6459.     mp = R.mp,
  6460.     sp = R.sp,
  6461.     EXP = R.EXP,
  6462.     level = R.lev
  6463. FROM ( SELECT hp, mp, sp, EXP, lev, subjob_id FROM user_data(nolock) WHERE  char_id = @char_id ) AS R
  6464. WHERE user_subjob.char_id = @char_id
  6465.     AND user_subjob.subjob_id = R.subjob_id
  6466.  
  6467.  
  6468. -- update subjob char henna
  6469. UPDATE user_subjob
  6470. SET henna_1 = R.henna_1,
  6471.     henna_2 = R.henna_2,
  6472.     henna_3 = R.henna_3
  6473. FROM ( SELECT henna_1, henna_2, henna_3 FROM user_henna(nolock) WHERE char_id = @char_id ) AS R
  6474. WHERE user_subjob.char_id = @char_id
  6475.     AND user_subjob.subjob_id = @subjob_id
  6476.  
  6477.  
  6478. -- update user data property
  6479. UPDATE  user_data
  6480. SET hp = R.hp,
  6481.     mp = R.mp,
  6482.     sp = R.sp,
  6483.     EXP = R.EXP,
  6484.     lev = R.level,
  6485.     subjob_id = @subjob_id
  6486. FROM ( SELECT hp, mp, sp, EXP, level FROM user_subjob(nolock) WHERE char_id = @char_id AND subjob_id = @subjob_id ) AS R
  6487. WHERE user_data.char_id = @char_id
  6488.  
  6489. DECLARE @SQL VARCHAR(1000)
  6490. SET @SQL = 'update user_data '
  6491.     + ' set class = subjob' + CAST(@subjob_id AS VARCHAR) + '_class '
  6492.     + ' where char_id = ' + CAST(@char_id AS VARCHAR)
  6493. EXEC (@SQL)
  6494.  
  6495.  
  6496. -- update char henna
  6497. UPDATE user_henna
  6498. SET henna_1 = R.henna_1,
  6499.     henna_2 = R.henna_2,
  6500.     henna_3 = R.henna_3
  6501. FROM ( SELECT henna_1, henna_2, henna_3 FROM user_subjob(nolock) WHERE char_id = @char_id AND subjob_id = @subjob_id ) AS R
  6502. WHERE user_henna.char_id = @char_id
  6503. GO
  6504.  
  6505. /********************************************        
  6506. lin_ChangeTimeData      
  6507.  chagne time data table      
  6508. INPUT        
  6509.  @char_name NVARCHAR(30),        
  6510.  @nType INT,        
  6511.  @nChangeMin INT        
  6512. OUTPUT        
  6513.  changed acount id      
  6514.  result used sec      
  6515. return        
  6516.        
  6517. made by        
  6518.  carrot        
  6519. date        
  6520.  2004-04-29        
  6521. change        
  6522. ********************************************/        
  6523. ALTER PROCEDURE [DBO].[lin_ChangeTimeData]      
  6524. (        
  6525.  @char_name NVARCHAR(30),        
  6526.  @nType INT,        
  6527.  @nChangeMin INT        
  6528. )        
  6529. AS        
  6530.        
  6531. SET NOCOUNT ON        
  6532.        
  6533.      
  6534. SET @nChangeMin = @nChangeMin * 60      -- change min to sec
  6535. IF (@nType < 1 OR @nType > 2 OR @nChangeMin <= 0) -- 1 : add, 2 : del
  6536. BEGIN        
  6537.     RAISERROR ('Not valid parameter : charnname[%s] type[%d], min[%d] ',16, 1,  @char_name,  @nType , @nChangeMin )        
  6538.     RETURN -1        
  6539. END        
  6540.        
  6541. DECLARE @account_id INT        
  6542. SET @account_id = 0    
  6543. SELECT @account_id = account_id FROM user_data (nolock) WHERE char_name = @char_name      
  6544.        
  6545. IF (@account_id <= 0)        
  6546. BEGIN        
  6547.     RAISERROR ('Not valid account id : charnname[%s] type[%d], min[%d] ',16, 1,  @char_name,  @nType , @nChangeMin )        
  6548.     RETURN -1        
  6549. END        
  6550.      
  6551. DECLARE @used_sec INT        
  6552. SET @used_sec = -1      
  6553. SELECT TOP 1 @used_sec = used_sec FROM time_data WHERE account_id = @account_id      
  6554. IF (@used_sec < 0 )      
  6555. BEGIN      
  6556.     RAISERROR ('Not exist time data : account_id[%d], charnname[%s] type[%d], min[%d] ',16, 1,  @account_id, @char_name,  @nType , @nChangeMin )        
  6557.     RETURN -1        
  6558. END      
  6559.      
  6560. IF (@nType = 1) -- add      
  6561. BEGIN      
  6562.  UPDATE time_data SET used_sec = @used_sec + @nChangeMin WHERE account_id = @account_id      
  6563. END      
  6564. ELSE IF (@nType = 2) -- del      
  6565. BEGIN      
  6566.  IF (@used_sec < @nChangeMin)      
  6567.  BEGIN      
  6568.   SET @nChangeMin = @used_sec
  6569.  END      
  6570.  UPDATE time_data SET used_sec = @used_sec - @nChangeMin WHERE account_id = @account_id      
  6571. END      
  6572. ELSE      
  6573. BEGIN      
  6574.     RAISERROR ('Not valid parameter : charnname[%s] type[%d], min[%d] ',16, 1,  @char_name,  @nType , @nChangeMin )        
  6575.     RETURN -1        
  6576. END      
  6577.      
  6578. SELECT TOP 1 account_id, used_sec FROM time_data WHERE account_id = @account_id
  6579. GO
  6580.  
  6581. /****** Object:  Stored Procedure dbo.lin_CharLogin    Script Date: 2003-09-20 ?? 11:51:56 ******/
  6582. /********************************************
  6583. lin_CharLogin
  6584.     log character login
  6585. INPUT
  6586.     char_id
  6587. OUTPUT
  6588. return
  6589. made by
  6590.     carrot
  6591. date
  6592.     2002-06-11
  6593. change
  6594. ********************************************/
  6595. ALTER PROCEDURE [DBO].[lin_CharLogin]
  6596. (
  6597.     @char_id    INT
  6598. )
  6599. AS
  6600.  
  6601. SET NOCOUNT ON
  6602.  
  6603. UPDATE user_data SET login = GETDATE() WHERE char_id = @char_id
  6604. GO
  6605.  
  6606. /********************************************    
  6607. lin_CharLogout    
  6608.  log character Logout    
  6609. INPUT    
  6610.  char_id    
  6611. OUTPUT    
  6612. return    
  6613.  week play time by sec    
  6614. made by    
  6615.  carrot    
  6616. date    
  6617.  2002-06-11    
  6618. change    
  6619.  2002.-12-20    
  6620.   add usetime set    
  6621.  2004-03-29    
  6622.   add function to write today's used sec    
  6623. ********************************************/    
  6624. ALTER PROCEDURE [DBO].[lin_CharLogout]    
  6625. (    
  6626.  @char_id INT,    
  6627.  @usedTimeSec INT
  6628. )    
  6629. AS    
  6630.    
  6631. SET NOCOUNT ON    
  6632.    
  6633. DECLARE @logoutDate DATETIME    
  6634. SET @logoutDate = GETDATE()    
  6635.    
  6636. UPDATE user_data SET Logout = @logoutDate, use_time = use_time + @usedTimeSec WHERE char_id = @char_id
  6637. GO
  6638.  
  6639. ALTER PROCEDURE [DBO].[lin_CheckPetName]
  6640. (
  6641. @pet_name NVARCHAR(24)
  6642. )
  6643. AS
  6644.  
  6645. SET NOCOUNT ON
  6646.  
  6647. DECLARE @RESULT  INT
  6648. SET @RESULT = 1
  6649.  
  6650. SET @pet_name = RTRIM(@pet_name)
  6651. IF @pet_name  LIKE N' '
  6652. BEGIN
  6653.     RAISERROR ('pet name has space : name = [%s]', 16, 1, @pet_name)
  6654.     SET @RESULT = -1
  6655. END
  6656.  
  6657. -- check user_prohibit
  6658. IF EXISTS(SELECT char_name FROM user_prohibit (nolock) WHERE char_name = @pet_name)
  6659. BEGIN
  6660.     RAISERROR ('Pet  name is prohibited: name = [%s]', 16, 1, @pet_name)
  6661.     SET @RESULT = -2
  6662. END
  6663.  
  6664. -- prohibit word
  6665. DECLARE @user_prohibit_word nvarchar(20)
  6666. SELECT top 1 @user_prohibit_word = words FROM user_prohibit_word (nolock) WHERE PATINDEX('%' + words + '%', @pet_name) > 0
  6667. IF @user_prohibit_word IS NOT NULL
  6668. BEGIN
  6669.     RAISERROR ('pet  name has prohibited word: name = [%s], word[%s]', 16, 1, @pet_name, @user_prohibit_word)
  6670.     SET @RESULT = -3
  6671. END
  6672.  
  6673. -- check reserved name
  6674. --declare @reserved_name nvarchar(50)
  6675. --select top 1 @reserved_name = char_name from user_name_reserved (nolock) where used = 0 and char_name = @pet_name
  6676. --if not @reserved_name is null
  6677. --begin
  6678. --  RAISERROR ('pet name is reserved by other player: name = [%s]', 16, 1, @pet_name)
  6679. --  set @result = -4
  6680. --end
  6681.  
  6682. -- check duplicated pet name
  6683. DECLARE @dup_pet_name nvarchar(50)
  6684. SELECT top 1 @dup_pet_name = nick_name FROM pet_data (nolock) WHERE nick_name = @pet_name
  6685. IF NOT @dup_pet_name IS NULL
  6686. BEGIN
  6687.     RAISERROR ('duplicated pet name[%s]', 16, 1, @pet_name)
  6688.     SET @RESULT = -4
  6689. END
  6690.  
  6691. SELECT @RESULT
  6692. GO
  6693.  
  6694. /********************************************
  6695. lin_CheckPreviousAllianceWarHistory
  6696.    
  6697. INPUT  
  6698.     @challenger_alliance_id     int
  6699.     @challengee_alliance_id     int
  6700.  
  6701. OUTPUT
  6702.  
  6703. made by
  6704.     bert
  6705. date
  6706.     2003-11-04
  6707. ********************************************/
  6708.  
  6709. ALTER PROCEDURE [DBO].[lin_CheckPreviousAllianceWarHistory]
  6710. (
  6711.     @challenger     INT,
  6712.     @challengee     INT
  6713. )
  6714. AS
  6715. SET NOCOUNT ON
  6716.  
  6717. SELECT
  6718.     id, challenger, challengee, STATUS, begin_time
  6719. FROM
  6720.     alliance_war (nolock)  
  6721. WHERE
  6722.     (challenger = @challenger AND challengee = @challengee)
  6723.     OR (challengee = @challengee AND challenger = @challenger)
  6724. ORDER BY
  6725.     begin_time DESC
  6726. GO
  6727.  
  6728. /****** Object:  Stored Procedure dbo.lin_CheckPreviousWarHistory    Script Date: 2003-09-20 ?? 11:51:58 ******/
  6729. /********************************************
  6730. lin_CheckPreviousWarHistory
  6731.    
  6732. INPUT  
  6733.     @residence_id       int
  6734. OUTPUT
  6735. return
  6736. made by
  6737.     carrot
  6738. date
  6739.     2002-06-16
  6740. ********************************************/
  6741. ALTER PROCEDURE [DBO].[lin_CheckPreviousWarHistory]
  6742. (
  6743.     @challenger1        INT,
  6744.     @challengee1        INT,
  6745.     @challengee2        INT,
  6746.     @challenger2        INT
  6747. )
  6748. AS
  6749. SET NOCOUNT ON
  6750.  
  6751. SELECT
  6752.     id, challenger, challengee, STATUS, begin_time
  6753. FROM
  6754.     pledge_war (nolock)  
  6755. WHERE
  6756.     (challenger = @challenger1 AND challengee = @challengee1)
  6757.     OR (challengee = @challengee2 AND challenger = @challenger2)
  6758. ORDER BY
  6759.     begin_time DESC
  6760. GO
  6761.  
  6762. /****** Object:  Stored Procedure dbo.lin_CheckReserved    Script Date: 2003-09-20 ?? 11:51:58 ******/
  6763. /********************************************
  6764. lin_CheckReserved
  6765.    
  6766. INPUT
  6767.     @char_name  NCHAR(12),
  6768.     @account_name   NCHAR(13),
  6769.     @account_id INT
  6770. OUTPUT
  6771.    
  6772. return
  6773. made by
  6774.     carrot
  6775. date
  6776.     2003-07-09
  6777. change
  6778. ********************************************/
  6779. ALTER PROCEDURE [DBO].[lin_CheckReserved]
  6780. (
  6781. @char_name  NVARCHAR(24),
  6782. @account_name   NVARCHAR(24),
  6783. @account_id INT
  6784. )
  6785. AS
  6786.  
  6787. SET NOCOUNT ON
  6788.  
  6789. SET @char_name = RTRIM(@char_name)
  6790.  
  6791. -- check reserved name
  6792. DECLARE @reserved_name nvarchar(50)
  6793. DECLARE @reserved_account_id INT
  6794. SELECT top 1 @reserved_name = char_name, @reserved_account_id = account_id FROM user_name_reserved (nolock) WHERE used = 0 AND char_name = @char_name
  6795. IF NOT @reserved_name IS NULL
  6796. BEGIN
  6797.     IF NOT @reserved_account_id = @account_id
  6798.     BEGIN
  6799.         RAISERROR ('Character name is reserved by other player: name = [%s]', 16, 1, @char_name)
  6800.         RETURN -1
  6801.     END
  6802. END
  6803. GO
  6804.  
  6805. /********************************************    
  6806. lin_CleanUpGhostData  
  6807.      
  6808. INPUT    
  6809. OUTPUT    
  6810.    
  6811. return    
  6812. made by    
  6813.  bert  
  6814. date    
  6815.  2004-04-27    
  6816.  2005-11-21 by btwinuni delete pledge_war, alliance_war
  6817.  2005-12-20 by btwinuni add clean up war_declare
  6818. ********************************************/    
  6819. ALTER PROCEDURE dbo.lin_CleanUpGhostData  
  6820. AS  
  6821. SET NOCOUNT ON  
  6822.  
  6823. -- ?? ??  
  6824. UPDATE user_data  
  6825. SET pledge_id = 0, nickname = ''  
  6826. WHERE account_id IN (-1, -3)  
  6827.  
  6828. -- ?? ?? ??  
  6829. DELETE FROM user_friend  
  6830. WHERE  
  6831. char_id IN (SELECT char_id FROM user_data WHERE account_id IN (-1, -3))  
  6832. OR  
  6833. friend_char_id IN (SELECT char_id FROM user_data WHERE account_id IN (-1, -3))  
  6834.  
  6835. -- ?? ???? ??  
  6836. DELETE FROM user_blocklist
  6837. WHERE  
  6838. char_id IN (SELECT char_id FROM user_data WHERE account_id IN (-1, -3))  
  6839. OR  
  6840. block_char_id IN (SELECT char_id FROM user_data WHERE account_id IN (-1, -3))  
  6841.  
  6842. -- ?? ?? ?? (???? ?? ?)  
  6843. DELETE FROM pledge WHERE ruler_id IN (SELECT char_id FROM user_data WHERE account_id IN (-1, -3))  
  6844.  
  6845. -- ???? ????  
  6846. UPDATE user_data  
  6847. SET pledge_id = 0  
  6848. WHERE pledge_id <> 0 AND pledge_id NOT IN (SELECT pledge_id FROM pledge)  
  6849.  
  6850. UPDATE user_data  
  6851. SET nickname = ''  
  6852. WHERE pledge_id = 0  
  6853.  
  6854. -- ?? ??? ??? ??  
  6855. UPDATE agit  
  6856. SET pledge_id = 0  
  6857. WHERE pledge_id <> 0 AND pledge_id NOT IN (SELECT pledge_id FROM pledge)  
  6858.  
  6859. -- ?? ? ??? ??  
  6860. UPDATE castle  
  6861. SET pledge_id = 0  
  6862. WHERE pledge_id <> 0 AND pledge_id NOT IN (SELECT pledge_id FROM pledge)  
  6863.  
  6864. -- 2005-12-20   by btwinuni
  6865. -- ?? ?? ?? ??  
  6866. DELETE FROM war_declare
  6867. WHERE  
  6868. (challengee <> 0 AND challengee NOT IN (SELECT pledge_id FROM pledge))  
  6869. OR  
  6870. (challenger <> 0 AND challenger NOT IN (SELECT pledge_id FROM pledge))  
  6871.  
  6872. DELETE FROM siege_agit_pledge  
  6873. WHERE  
  6874. pledge_id <> 0 AND pledge_id NOT IN (SELECT pledge_id FROM pledge)  
  6875.  
  6876. DELETE FROM team_battle_agit_pledge  
  6877. WHERE  
  6878. pledge_id <> 0 AND pledge_id NOT IN (SELECT pledge_id FROM pledge)  
  6879.  
  6880. -- ?? ?? ??(???? ?? ??)  
  6881. DELETE FROM alliance WHERE master_pledge_id NOT IN (SELECT pledge_id FROM pledge)  
  6882.  
  6883. -- ?? ???? ??  
  6884. UPDATE pledge  
  6885. SET alliance_id = 0  
  6886. WHERE alliance_id <> 0 AND alliance_id NOT IN (SELECT id FROM alliance)  
  6887.  
  6888. -- 2005-11-21   by btwinuni
  6889. -- ?? ??? ??  
  6890. --DELETE FROM alliance_war  
  6891. --WHERE  
  6892. --status = 0  
  6893. --AND  
  6894. --(  
  6895. --(challengee <> 0 AND challengee NOT IN (SELECT id FROM alliance))  
  6896. --OR  
  6897. --(challenger <> 0 AND challenger NOT IN (SELECT id FROM alliance))  
  6898. --)
  6899. GO
  6900.  
  6901. /********************************************
  6902. lin_ClearGroupPoint
  6903.    
  6904. INPUT  
  6905. OUTPUT
  6906. return
  6907. made by
  6908.     young
  6909. date
  6910.     2004-07-15
  6911. ********************************************/
  6912. ALTER PROCEDURE [DBO].[lin_ClearGroupPoint ]
  6913.  
  6914. AS
  6915. SET NOCOUNT ON
  6916.  
  6917.  
  6918. DELETE FROM event_point
  6919. GO
  6920.  
  6921. /********************************************
  6922. lin_CommentDelete
  6923.    
  6924. INPUT  
  6925.     @delete     int,
  6926.     @comment_id     int
  6927. OUTPUT
  6928. return
  6929. made by
  6930.     young
  6931. date
  6932.     2003-09-02
  6933. ********************************************/
  6934. ALTER PROCEDURE [DBO].[lin_CommentDelete]
  6935. (
  6936.     @DELETE     INT,
  6937.     @comment_id     INT
  6938. )
  6939. AS
  6940. SET NOCOUNT ON
  6941.  
  6942. IF @DELETE = 1
  6943.     UPDATE user_comment SET deleted = 1 WHERE comment_id = @comment_id
  6944. ELSE IF @DELETE = 2
  6945.     UPDATE user_comment SET deleted = 0 WHERE comment_id = @comment_id
  6946. GO
  6947.  
  6948. /****** Object:  Stored Procedure dbo.lin_CommentSearch    Script Date: 2003-09-20 ?? 11:51:58 ******/
  6949. /********************************************
  6950. lin_CommentSearch
  6951.    
  6952. INPUT  
  6953.     @char_id        int,
  6954.     @page           int
  6955. OUTPUT
  6956. return
  6957. made by
  6958.     young
  6959. date
  6960.     2003-09-02
  6961. ********************************************/
  6962. ALTER PROCEDURE [DBO].[lin_CommentSearch]
  6963. (
  6964.     @char_id        INT,
  6965.     @page           INT
  6966. )
  6967. AS
  6968. SET NOCOUNT ON
  6969.  
  6970.  
  6971. SELECT comment_id, char_name, char_id, comment, writer FROM user_comment (nolock)
  6972. WHERE char_id = @char_id AND deleted = 0
  6973. ORDER BY comment_id DESC
  6974. GO
  6975.  
  6976. /****** Object:  Stored Procedure dbo.lin_CommentWrite    Script Date: 2003-09-20 ?? 11:51:58 ******/
  6977. /********************************************
  6978. lin_CommentWrite
  6979.    
  6980. INPUT  
  6981.     @char_name      nvarchar(50),
  6982.     @char_id        int,
  6983.     @comment        nvarchar(200),
  6984.     @writer         nvarchar(50)
  6985. OUTPUT
  6986. return
  6987. made by
  6988.     young
  6989. date
  6990.     2003-09-02
  6991. ********************************************/
  6992. ALTER PROCEDURE [DBO].[lin_CommentWrite]
  6993. (
  6994.     @char_name      nvarchar(50),
  6995.     @char_id        INT,
  6996.     @comment        nvarchar(200),
  6997.     @writer         nvarchar(50)
  6998. )
  6999. AS
  7000. SET NOCOUNT ON
  7001.  
  7002. INSERT INTO user_comment ( char_name, char_id, comment, writer )
  7003. VALUES ( @char_name, @char_id, @comment, @writer )
  7004. GO
  7005.  
  7006. /********************************************
  7007. lin_CopyChar
  7008.     copy character sp
  7009. INPUT
  7010.     @char_id        int
  7011.     @new_char_name  nvarchar(24)
  7012.     @account_id     int
  7013.     @account_name   nvarchar(24)
  7014.     @builder        int
  7015. OUTPUT
  7016.  
  7017. return
  7018. made by
  7019.     young
  7020. date
  7021.     2003-11-17
  7022.     2005-09-07  modified by btwinuni
  7023.     2005-10-28  modified by btwinuni    for CH4
  7024. ********************************************/
  7025. ALTER PROCEDURE [DBO].[lin_CopyChar]
  7026. (
  7027. @char_id        INT,
  7028. @new_char_name  nvarchar(24),
  7029. @account_id     INT,
  7030. @account_name   nvarchar(24),
  7031. @builder        INT
  7032. )
  7033. AS
  7034.  
  7035. SET NOCOUNT ON
  7036.  
  7037.  
  7038. DECLARE @new_char_id    INT
  7039.  
  7040. SET @new_char_id = 0
  7041.  
  7042. SET @new_char_name = RTRIM(@new_char_name)
  7043.  
  7044.  
  7045. IF @new_char_name LIKE N' '
  7046. BEGIN
  7047.     RAISERROR ('Character name has space : name = [%s]', 16, 1, @new_char_name)
  7048.     RETURN -1
  7049. END
  7050.  
  7051. -- check user_prohibit
  7052. IF EXISTS(SELECT char_name FROM user_prohibit (nolock) WHERE char_name = @new_char_name)
  7053. BEGIN
  7054.     RAISERROR ('Character name is prohibited: name = [%s]', 16, 1, @new_char_name)
  7055.     RETURN -1  
  7056. END
  7057.  
  7058. DECLARE @user_prohibit_word nvarchar(20)
  7059. SELECT top 1 @user_prohibit_word = words FROM user_prohibit_word (nolock) WHERE PATINDEX('%' + words + '%', @new_char_name) > 0  
  7060. IF @user_prohibit_word IS NOT NULL
  7061. BEGIN
  7062.     RAISERROR ('Character name has prohibited word: name = [%s], word[%s]', 16, 1, @new_char_name, @user_prohibit_word)
  7063.     RETURN -1  
  7064. END
  7065.  
  7066. -- check reserved name
  7067. DECLARE @reserved_name nvarchar(50)
  7068. DECLARE @reserved_account_id INT
  7069. SELECT top 1 @reserved_name = char_name, @reserved_account_id = account_id FROM user_name_reserved (nolock) WHERE used = 0 AND char_name = @new_char_name
  7070. IF NOT @reserved_name IS NULL
  7071. BEGIN
  7072.     IF NOT @reserved_account_id = @account_id
  7073.     BEGIN
  7074.         RAISERROR ('Character name is reserved by other player: name = [%s]', 16, 1, @new_char_name)
  7075.         RETURN -1
  7076.     END
  7077. END
  7078.  
  7079. DECLARE @gender INT
  7080. DECLARE @race   INT
  7081. DECLARE @class  INT
  7082. DECLARE @world  INT
  7083. DECLARE @xloc   INT
  7084. DECLARE @yloc   INT
  7085. DECLARE @zloc   INT
  7086. DECLARE @HP FLOAT
  7087. DECLARE @MP FLOAT
  7088. DECLARE @SP INT
  7089. DECLARE @EXP    INT
  7090. DECLARE @Lev    INT
  7091. DECLARE @align  INT
  7092. DECLARE @PK INT
  7093. DECLARE @PKpardon   INT
  7094. DECLARE @Duel       INT
  7095. DECLARE @quest_flag BINARY
  7096. DECLARE @max_hp INT
  7097. DECLARE @max_mp INT
  7098. DECLARE @quest_memo CHAR(32)
  7099. DECLARE @face_index INT
  7100. DECLARE @hair_shape_index   INT
  7101. DECLARE @hair_color_index   INT
  7102. DECLARE @drop_exp   INT
  7103. DECLARE @subjob_id  INT
  7104. DECLARE @cp     FLOAT
  7105. DECLARE @max_cp FLOAT
  7106. DECLARE @subjob0_class  INT
  7107. DECLARE @subjob1_class  INT
  7108. DECLARE @subjob2_class  INT
  7109. DECLARE @subjob3_class  INT
  7110.  
  7111. -- insert user_data
  7112. SELECT      @builder = builder,
  7113.     @gender = gender,
  7114.     @race = race,
  7115.     @class = class,
  7116.     @world = world,
  7117.     @xloc = xloc,
  7118.     @yloc = yloc,
  7119.     @zloc = zloc,
  7120.     @HP = HP,
  7121.     @MP = MP,
  7122.     @SP = SP,
  7123.     @EXP = EXP,
  7124.     @Lev = Lev,
  7125.     @align = align,
  7126.     @PK = PK,
  7127.     @PKpardon = PKpardon,
  7128.     @Duel = Duel,
  7129.     @quest_flag = quest_flag,
  7130.     @max_hp = max_hp,
  7131.     @max_mp = max_mp,
  7132.     @quest_memo = quest_memo,
  7133.     @face_index = face_index,
  7134.     @hair_shape_index = hair_shape_index,
  7135.     @hair_color_index = hair_color_index,
  7136.     @drop_exp = drop_exp,
  7137.     @subjob_id = subjob_id,
  7138.     @cp = cp,
  7139.     @max_cp = max_cp,
  7140.     @subjob0_class = subjob0_class,
  7141.     @subjob1_class = subjob1_class,
  7142.     @subjob2_class = subjob2_class,
  7143.     @subjob3_class = subjob3_class
  7144.     FROM user_data (nolock)
  7145.     WHERE char_id = @char_id
  7146.  
  7147. IF ( @@ROWCOUNT > 0 )
  7148. BEGIN
  7149.     INSERT INTO user_data
  7150.     ( char_name, account_name, account_id, pledge_id, create_date,
  7151.     builder, gender, race, class, world, xloc, yloc, zloc, HP, MP, SP, EXP, Lev, align, PK, PKpardon, Duel,
  7152.     quest_flag, max_hp, max_mp, quest_memo, face_index, hair_shape_index, hair_color_index, drop_exp, subjob_id, cp, max_cp,
  7153.     subjob0_class, subjob1_class, subjob2_class, subjob3_class)
  7154.     VALUES
  7155.     (@new_char_name, @account_name, @account_id, 0, GETDATE(),
  7156.     @builder, @gender, @race, @class, @world, @xloc, @yloc, @zloc, @HP, @MP, @SP, @EXP, @Lev, @align, @PK, @PKpardon, @Duel,
  7157.     @quest_flag, @max_hp, @max_mp, @quest_memo, @face_index, @hair_shape_index, @hair_color_index, @drop_exp, @subjob_id, @cp, @max_cp,
  7158.     @subjob0_class, @subjob1_class, @subjob2_class, @subjob3_class)
  7159.  
  7160.     IF (@@error = 0)
  7161.     BEGIN
  7162.         SET @new_char_id = @@IDENTITY
  7163.  
  7164.         INSERT INTO user_item ( char_id, item_type, amount, enchant, eroded, bless, ident, wished, warehouse)
  7165.         SELECT @new_char_id, item_type, amount, enchant, eroded, bless, ident, wished, warehouse
  7166.         FROM user_item (nolock) WHERE char_id = @char_id AND item_type NOT IN (
  7167.             2375, 3500, 3501, 3502, 4422, 4423, 4424, 4425, -- pet
  7168.             4442, 4443, 4444 )              -- lotto, monster race
  7169.  
  7170.         INSERT INTO user_skill ( char_id,  skill_id, skill_lev, to_end_time, subjob_id )
  7171.         SELECT @new_char_id, skill_id, skill_lev, to_end_time, subjob_id
  7172.         FROM user_skill (nolock) WHERE char_id = @char_id
  7173.  
  7174.         INSERT INTO quest ( char_id, q1, s1, q2, s2, q3, s3, q4, s4, q5, s5, q6, s6, q7, s7, q8, s8, q9, s9, q10, s10, q11, s11, q12, s12, q13, s13, q14, s14, q15, s15, q16, s16,
  7175.         j1, j2, j3, j4, j5, j6, j7, j8, j9, j10, j11, j12, j13, j14, j15, j16, s2_1, s2_2, s2_3, s2_4, s2_5, s2_6, s2_7, s2_8, s2_9, s2_10, s2_11, s2_12, s2_13, s2_14, s2_15, s2_16 )
  7176.         SELECT @new_char_id,  q1, s1, q2, s2, q3, s3, q4, s4, q5, s5, q6, s6, q7, s7, q8, s8, q9, s9, q10, s10, q11, s11, q12, s12, q13, s13, q14, s14, q15, s15, q16, s16,
  7177.         j1, j2, j3, j4, j5, j6, j7, j8, j9, j10, j11, j12, j13, j14, j15, j16, s2_1, s2_2, s2_3, s2_4, s2_5, s2_6, s2_7, s2_8, s2_9, s2_10, s2_11, s2_12, s2_13, s2_14, s2_15, s2_16
  7178.         FROM quest (nolock) WHERE char_id = @char_id
  7179.  
  7180.         INSERT INTO user_subjob ( char_id, hp, mp, sp, EXP, level, henna_1, henna_2, henna_3, subjob_id, create_date )
  7181.         SELECT @new_char_id, hp, mp, sp, EXP, level, 0, 0, 0, subjob_id, GETDATE()
  7182.         FROM user_subjob (nolock) WHERE char_id = @char_id
  7183.  
  7184.     END
  7185. END
  7186.  
  7187. SELECT @new_char_id
  7188.  
  7189. IF @new_char_id > 0
  7190. BEGIN
  7191.     -- make user_history
  7192.     EXEC lin_InsertUserHistory @new_char_name, @new_char_id, 1, @account_name, NULL
  7193.     IF NOT @reserved_name IS NULL
  7194.         UPDATE user_name_reserved SET used = 1 WHERE char_name = @reserved_name
  7195. END
  7196. GO
  7197.  
  7198. /****** Object:  Stored Procedure dbo.lin_CreateActiveSkill    Script Date: 2003-09-20 ?? 11:51:58 ******/
  7199. --by bert for clee
  7200.  
  7201. ALTER PROCEDURE [DBO].[lin_CreateActiveSkill]
  7202. (
  7203.     @char_id INT,
  7204.     @s1 INT, @l1 TINYINT, @d1 INT, @c1 TINYINT,
  7205.     @s2 INT, @l2 TINYINT, @d2 INT, @c2 TINYINT,
  7206.     @s3 INT, @l3 TINYINT, @d3 INT, @c3 TINYINT,
  7207.     @s4 INT, @l4 TINYINT, @d4 INT, @c4 TINYINT,
  7208.     @s5 INT, @l5 TINYINT, @d5 INT, @c5 TINYINT,
  7209.     @s6 INT, @l6 TINYINT, @d6 INT, @c6 TINYINT,
  7210.     @s7 INT, @l7 TINYINT, @d7 INT, @c7 TINYINT,
  7211.     @s8 INT, @l8 TINYINT, @d8 INT, @c8 TINYINT,
  7212.     @s9 INT, @l9 TINYINT, @d9 INT, @c9 TINYINT,
  7213.     @s10 INT, @l10 TINYINT, @d10 INT, @c10 TINYINT,
  7214.     @s11 INT, @l11 TINYINT, @d11 INT, @c11 TINYINT,
  7215.     @s12 INT, @l12 TINYINT, @d12 INT, @c12 TINYINT,
  7216.     @s13 INT, @l13 TINYINT, @d13 INT, @c13 TINYINT,
  7217.     @s14 INT, @l14 TINYINT, @d14 INT, @c14 TINYINT,
  7218.     @s15 INT, @l15 TINYINT, @d15 INT, @c15 TINYINT,
  7219.     @s16 INT, @l16 TINYINT, @d16 INT, @c16 TINYINT,
  7220.     @s17 INT, @l17 TINYINT, @d17 INT, @c17 TINYINT,
  7221.     @s18 INT, @l18 TINYINT, @d18 INT, @c18 TINYINT,
  7222.     @s19 INT, @l19 TINYINT, @d19 INT, @c19 TINYINT,
  7223.     @s20 INT, @l20 TINYINT, @d20 INT, @c20 TINYINT
  7224. )
  7225. AS
  7226. SET NOCOUNT ON
  7227.  
  7228. INSERT INTO user_activeskill
  7229. (char_id,
  7230. s1, l1, d1, c1,
  7231. s2, l2, d2, c2,
  7232. s3, l3, d3, c3,
  7233. s4, l4, d4, c4,
  7234. s5, l5, d5, c5,
  7235. s6, l6, d6, c6,
  7236. s7, l7, d7, c7,
  7237. s8, l8, d8, c8,
  7238. s9, l9, d9, c9,
  7239. s10, l10, d10, c10,
  7240. s11, l11, d11, c11,
  7241. s12, l12, d12, c12,
  7242. s13, l13, d13, c13,
  7243. s14, l14, d14, c14,
  7244. s15, l15, d15, c15,
  7245. s16, l16, d16, c16,
  7246. s17, l17, d17, c17,
  7247. s18, l18, d18, c18,
  7248. s19, l19, d19, c19,
  7249. s20, l20, d20, c20)
  7250. VALUES
  7251. (@char_id,
  7252. @s1, @l1, @d1, @c1,
  7253. @s2, @l2, @d2, @c2,
  7254. @s3, @l3, @d3, @c3,
  7255. @s4, @l4, @d4, @c4,
  7256. @s5, @l5, @d5, @c5,
  7257. @s6, @l6, @d6, @c6,
  7258. @s7, @l7, @d7, @c7,
  7259. @s8, @l8, @d8, @c8,
  7260. @s9, @l9, @d9, @c9,
  7261. @s10, @l10, @d10, @c10,
  7262. @s11, @l11, @d11, @c11,
  7263. @s12, @l12, @d12, @c12,
  7264. @s13, @l13, @d13, @c13,
  7265. @s14, @l14, @d14, @c14,
  7266. @s15, @l15, @d15, @c15,
  7267. @s16, @l16, @d16, @c16,
  7268. @s17, @l17, @d17, @c17,
  7269. @s18, @l18, @d18, @c18,
  7270. @s19, @l19, @d19, @c19,
  7271. @s20, @l20, @d20, @c20)
  7272. GO
  7273.  
  7274. /********************************************
  7275. lin_CreateAgitAuction
  7276.     create agit auction
  7277. INPUT
  7278.     @agit_id    int,
  7279.     @auction_desc   nvarchar(200),
  7280.     @min_price  int
  7281.  
  7282. OUTPUT
  7283. return
  7284. made by
  7285.     young
  7286. date
  7287.     2003-12-1
  7288. ********************************************/
  7289. ALTER PROCEDURE [DBO].[lin_CreateAgitAuction]
  7290. (
  7291. @agit_id        INT,
  7292. @auction_desc       nvarchar(200),
  7293. @min_price      INT,
  7294. @auction_time       INT,
  7295. @auction_tax        INT
  7296. )
  7297. AS
  7298. SET NOCOUNT ON
  7299.  
  7300. DECLARE @auction_id INT
  7301.  
  7302. INSERT INTO agit_auction ( agit_id, auction_desc, min_price, auction_time , auction_tax)
  7303. VALUES ( @agit_id, @auction_desc, @min_price, @auction_time  , @auction_tax )
  7304.  
  7305. SELECT @auction_id = @@IDENTITY
  7306.  
  7307. UPDATE agit SET auction_id = @auction_id WHERE id = @agit_id
  7308.  
  7309. SELECT @auction_id
  7310. GO
  7311.  
  7312. /********************************************
  7313. lin_CreateAgitBid
  7314.     create agit bid
  7315. INPUT
  7316.     @auction_id int,
  7317.     @price      int,
  7318.     @pledge_id  int
  7319.  
  7320. OUTPUT
  7321. return
  7322. made by
  7323.     young
  7324. date
  7325.     2003-12-1
  7326. ********************************************/
  7327. ALTER PROCEDURE [DBO].[lin_CreateAgitBid]
  7328. (
  7329. @agit_id        INT,
  7330. @auction_id     INT,
  7331. @price          INT,
  7332. @pledge_id      INT,
  7333. @attend_time        INT
  7334. )
  7335. AS
  7336. SET NOCOUNT ON
  7337.  
  7338. DECLARE @last_bid INT
  7339. DECLARE @bid_id INT
  7340. DECLARE @diff_adena INT
  7341.  
  7342. SET @last_bid = 0
  7343. SET @bid_id = 0
  7344. SET @diff_adena = 0
  7345.  
  7346. SELECT @last_bid  = attend_price , @bid_id = attend_id FROM agit_bid (nolock) WHERE auction_id = @auction_id AND attend_pledge_id = @pledge_id
  7347.  
  7348. IF ( @@ROWCOUNT > 0 )
  7349. BEGIN
  7350.  
  7351.     UPDATE agit_bid SET attend_price = @price  , attend_date = getdate() WHERE auction_id = @auction_id AND attend_pledge_id = @pledge_id
  7352.     SET @diff_adena = @last_bid - @price
  7353.  
  7354. END ELSE BEGIN
  7355.  
  7356.     INSERT INTO agit_bid ( auction_id, attend_price, attend_pledge_id , attend_time )
  7357.     VALUES (  @auction_id, @price, @pledge_id , @attend_time )
  7358.  
  7359.     SET @bid_id = @@IDENTITY
  7360.     SET @diff_adena = @price
  7361. END
  7362.  
  7363. SELECT @auction_id, @bid_id, @diff_adena
  7364. GO
  7365.  
  7366. /****** Object:  Stored Procedure dbo.lin_CreateAgitIfNotExist    Script Date: 2003-09-20 ?? 11:51:58 ******/
  7367. ALTER PROCEDURE [DBO].[lin_CreateAgitIfNotExist]
  7368. (
  7369.     @agit_id    INT,
  7370.     @agit_name VARCHAR(50)
  7371. )
  7372. AS
  7373.  
  7374. SET NOCOUNT ON
  7375.  
  7376. INSERT INTO agit
  7377. (id, name)
  7378. VALUES (@agit_id, @agit_name)
  7379. GO
  7380.  
  7381. ALTER PROCEDURE
  7382. dbo.lin_CreateAlliance (@name NVARCHAR(50), @master_pledge_id INT)
  7383. AS
  7384.  
  7385. SET NOCOUNT ON
  7386.  
  7387. DECLARE @alliance_id INT
  7388.  
  7389. BEGIN TRAN
  7390.  
  7391. IF @name LIKE N' '  
  7392. BEGIN  
  7393.  RAISERROR ('alliance name has space : name = [%s]', 16, 1, @name)  
  7394.  GOTO EXIT_TRAN
  7395. END  
  7396.  
  7397. -- check user_prohibit  
  7398. IF EXISTS(SELECT char_name FROM user_prohibit (nolock) WHERE char_name = @name)  
  7399. BEGIN
  7400.  RAISERROR ('alliance name is prohibited: name = [%s]', 16, 1, @name)  
  7401.  GOTO EXIT_TRAN
  7402. END
  7403.  
  7404. DECLARE @user_prohibit_word NVARCHAR(20)  
  7405. SELECT TOP 1 @user_prohibit_word = words FROM user_prohibit_word (nolock) WHERE PATINDEX('%' + words + '%', @name) > 0  
  7406. IF @user_prohibit_word IS NOT NULL
  7407. BEGIN
  7408.  RAISERROR ('alliance name has prohibited word: name = [%s], word[%s]', 16, 1, @name, @user_prohibit_word)  
  7409.  GOTO EXIT_TRAN
  7410. END
  7411.  
  7412. INSERT INTO alliance (name, master_pledge_id) VALUES (@name, @master_pledge_id)
  7413.  
  7414. IF @@ERROR = 0 AND @@ROWCOUNT = 1
  7415. BEGIN
  7416.     SELECT @alliance_id = @@IDENTITY
  7417.     UPDATE pledge
  7418.     SET alliance_id = @alliance_id
  7419.     WHERE pledge_id = @master_pledge_id
  7420. END
  7421. ELSE
  7422. BEGIN
  7423.     SELECT @alliance_id = 0
  7424.     GOTO EXIT_TRAN
  7425. END
  7426.  
  7427. IF @@ERROR <> 0 OR @@ROWCOUNT <> 1
  7428. BEGIN
  7429.     SELECT @alliance_id = 0
  7430. END
  7431.  
  7432. EXIT_TRAN:
  7433. IF @alliance_id <> 0
  7434. BEGIN
  7435.     COMMIT TRAN
  7436. END
  7437. ELSE
  7438. BEGIN
  7439.     ROLLBACK TRAN
  7440. END
  7441.  
  7442. SELECT @alliance_id
  7443. GO
  7444.  
  7445. /****** Object:  Stored Procedure dbo.lin_CreateCastle    Script Date: 2003-09-20 ?? 11:51:58 ******/
  7446. /********************************************
  7447. lin_CreateCastle
  7448.    
  7449. INPUT  
  7450.     @id int,
  7451.     @name   nvarchar(50)
  7452. OUTPUT
  7453. return
  7454. made by
  7455.     carrot
  7456. date
  7457.     2002-06-16
  7458. ********************************************/
  7459. ALTER PROCEDURE [DBO].[lin_CreateCastle]
  7460. (
  7461.     @id INT,
  7462.     @name   nvarchar(50)
  7463. )
  7464. AS
  7465. SET NOCOUNT ON
  7466.  
  7467. INSERT INTO castle (id, name) VALUES (@id, @name)
  7468. GO
  7469.  
  7470. ALTER PROCEDURE dbo.lin_CreateChar
  7471. (  
  7472. @char_name NVARCHAR(24),  
  7473. @account_name NVARCHAR(24),  
  7474. @account_id INT,  
  7475. @pledge_id INT,  
  7476. @builder  TINYINT,  
  7477. @gender TINYINT,  
  7478. @race  TINYINT,  
  7479. @class  TINYINT,  
  7480. @world  SMALLINT,  
  7481. @xloc  INT,  
  7482. @yloc  INT,  
  7483. @zloc  INT,  
  7484. @HP  FLOAT,  
  7485. @MP  FLOAT,  
  7486. @SP  INT,  
  7487. @EXP  INT,  
  7488. @Lev  TINYINT,  
  7489. @align  SMALLINT,  
  7490. @PK  INT,  
  7491. @Duel  INT,  
  7492. @PKPardon  INT,  
  7493. @FaceIndex   INT = 0,  
  7494. @HairShapeIndex  INT = 0,  
  7495. @HairColorIndex  INT = 0  
  7496. )  
  7497. AS  
  7498.  
  7499. SET NOCOUNT ON  
  7500.  
  7501. SET @char_name = RTRIM(@char_name)  
  7502. DECLARE @char_id INT  
  7503. SET @char_id = 0  
  7504.  
  7505.  
  7506. IF @char_name LIKE N' '  
  7507. BEGIN  
  7508.  RAISERROR ('Character name has space : name = [%s]', 16, 1, @char_name)  
  7509.  RETURN -1  
  7510. END  
  7511.  
  7512. -- check user_prohibit  
  7513. IF EXISTS(SELECT char_name FROM user_prohibit (nolock) WHERE char_name = @char_name)  
  7514. BEGIN  
  7515.  RAISERROR ('Character name is prohibited: name = [%s]', 16, 1, @char_name)  
  7516.  RETURN -1  
  7517. END  
  7518.  
  7519. DECLARE @user_prohibit_word nvarchar(20)  
  7520. SELECT top 1 @user_prohibit_word = words FROM user_prohibit_word (nolock) WHERE @char_name LIKE '%' + words + '%'
  7521. IF @user_prohibit_word IS NOT NULL  
  7522. BEGIN  
  7523.  RAISERROR ('Character name has prohibited word: name = [%s], word[%s]', 16, 1, @char_name, @user_prohibit_word)  
  7524.  RETURN -1  
  7525. END  
  7526.  
  7527. -- check reserved name  
  7528. DECLARE @reserved_name nvarchar(50)  
  7529. DECLARE @reserved_account_id INT  
  7530. SELECT top 1 @reserved_name = char_name, @reserved_account_id = account_id FROM user_name_reserved (nolock) WHERE used = 0 AND char_name = @char_name  
  7531. IF NOT @reserved_name IS NULL  
  7532. BEGIN  
  7533.  IF NOT @reserved_account_id = @account_id  
  7534.  BEGIN  
  7535.   RAISERROR ('Character name is reserved by other player: name = [%s]', 16, 1, @char_name)  
  7536.   RETURN -1  
  7537.  END  
  7538. END  
  7539.  
  7540. IF @race>5
  7541. BEGIN  
  7542.  RAISERROR ('Race overflow : = [%s]', 16, 1, @char_name)  
  7543.  RETURN -1  
  7544. END  
  7545.  
  7546. IF @race=0 AND @class!=0 AND @class!=10
  7547. BEGIN  
  7548.  RAISERROR ('Class Overflow for Human: = [%s]', 16, 1, @class)  
  7549.  RETURN -1  
  7550. END  
  7551.  
  7552. IF @race=1 AND @class!=18 AND @class!=25
  7553. BEGIN  
  7554.  RAISERROR ('Class Overflow for Elf: = [%s]', 16, 1, @class)  
  7555.  RETURN -1  
  7556. END  
  7557.  
  7558. IF @race=2 AND @class!=31 AND @class!=38
  7559. BEGIN  
  7560.  RAISERROR ('Class Overflow for DE: = [%s]', 16, 1, @class)  
  7561.  RETURN -1  
  7562. END  
  7563.  
  7564. IF @race=3 AND @class!=44 AND @class!=49
  7565. BEGIN  
  7566.  RAISERROR ('Class Overflow for Orc: = [%s]', 16, 1, @class)  
  7567.  RETURN -1  
  7568. END  
  7569.  
  7570. IF @race=4 AND @class!=53
  7571. BEGIN  
  7572.  RAISERROR ('Class Overflow for Dwarf: = [%s]', 16, 1, @class)  
  7573.  RETURN -1  
  7574. END  
  7575.  
  7576. IF @race=5 AND @class!=123 AND @class!=124
  7577.  BEGIN
  7578.  RAISERROR ('Class Overflow for Kamael: = [%s]', 16, 1, @class)
  7579.  RETURN -1
  7580. END
  7581.  
  7582. -- insert user_data  
  7583. INSERT INTO user_data  
  7584. ( char_name, account_name, account_id, pledge_id, builder, gender, race, class, subjob0_class,
  7585. world, xloc, yloc, zloc, HP, MP, max_hp, max_mp, SP, EXP, Lev, align, PK, PKpardon, duel, create_date, face_index, hair_shape_index, hair_color_index )  
  7586. VALUES  
  7587. (@char_name, @account_name, @account_id, @pledge_id, @builder, @gender, @race, @class, @class,
  7588. @world, @xloc, @yloc, @zloc, @HP, @MP, @HP, @MP, @SP, @EXP, @Lev, @align, @PK, @Duel, @PKPardon, GETDATE(), @FaceIndex, @HairShapeIndex, @HairColorIndex)  
  7589.  
  7590. IF (@@error = 0)  
  7591. BEGIN  
  7592.  SET @char_id = @@IDENTITY  
  7593.  INSERT INTO quest (char_id) VALUES (@char_id)  
  7594. END  
  7595.  
  7596. SELECT @char_id  
  7597.  
  7598. IF @char_id > 0  
  7599. BEGIN  
  7600.  -- make user_history  
  7601.  EXEC lin_InsertUserHistory @char_name, @char_id, 1, @account_name, NULL  
  7602.  IF NOT @reserved_name IS NULL  
  7603.   UPDATE user_name_reserved SET used = 1 WHERE char_name = @reserved_name  
  7604. END
  7605. GO
  7606.  
  7607. /******************************************************************************
  7608. #Name:  lin_CreateCharWithSubjob
  7609. #Desc:  create a character with subjob
  7610.  
  7611. #Argument:
  7612.     Input:  @char_name  NVARCHAR(24)
  7613.         @account_name   NVARCHAR(24)
  7614.         @account_id INT
  7615.         @pledge_id  INT
  7616.         @builder        TINYINT
  7617.         @gender TINYINT
  7618.         @race       TINYINT
  7619.         @class      TINYINT
  7620.         @world      SMALLINT
  7621.         @xloc       INT
  7622.         @yloc       INT
  7623.         @zloc       INT
  7624.         @HP     FLOAT
  7625.         @MP     FLOAT
  7626.         @SP     INT
  7627.         @Exp        INT
  7628.         @Lev        TINYINT
  7629.         @align      SMALLINT
  7630.         @PK     INT
  7631.         @Duel       INT
  7632.         @PKPardon   INT
  7633.         @FaceIndex  INT = 0
  7634.         @HairShapeIndex     INT = 0
  7635.         @HairColorIndex     INT = 0
  7636.         @SubjobID   INT = 0
  7637.         @MainClass  INT = 0
  7638.         @CP         FLOAT = 0
  7639.     Output: @char_id    INT
  7640. #Return:
  7641. #Result Set:
  7642.  
  7643. #Remark:
  7644. #Example:
  7645. #See:
  7646.     lin_CreateChar
  7647.  
  7648. #History:
  7649.     Create  btwinuni    2005-07-28
  7650.     Modify  btwinuni    2005-09-07  main_class -> subjob0_class
  7651.     Modify  btwinuni    2005-11-17
  7652. ******************************************************************************/
  7653. ALTER PROCEDURE [DBO].[lin_CreateCharWithSubjob]  
  7654. (  
  7655. @char_name NVARCHAR(24),  
  7656. @account_name NVARCHAR(24),  
  7657. @account_id INT,  
  7658. @pledge_id INT,  
  7659. @builder  TINYINT,  
  7660. @gender TINYINT,  
  7661. @race  TINYINT,  
  7662. @class  TINYINT,  
  7663. @world  SMALLINT,  
  7664. @xloc  INT,  
  7665. @yloc  INT,  
  7666. @zloc  INT,  
  7667. @HP  FLOAT,  
  7668. @MP  FLOAT,  
  7669. @SP  INT,  
  7670. @EXP  INT,  
  7671. @Lev  TINYINT,  
  7672. @align  SMALLINT,  
  7673. @PK  INT,  
  7674. @Duel  INT,  
  7675. @PKPardon  INT,  
  7676. @FaceIndex   INT = 0,  
  7677. @HairShapeIndex  INT = 0,  
  7678. @HairColorIndex  INT = 0,
  7679. @SubjobID INT = -1,
  7680. @MainClass INT = -1,
  7681. @CP FLOAT = 0
  7682. )  
  7683. AS  
  7684.  
  7685. SET NOCOUNT ON  
  7686.  
  7687. SET @char_name = RTRIM(@char_name)  
  7688. DECLARE @char_id INT  
  7689. SET @char_id = 0  
  7690.  
  7691. IF @MainClass = -1
  7692. BEGIN
  7693.     SET @MainClass = NULL
  7694. END
  7695.  
  7696. -- debug code delete in commercial  
  7697. IF (@@servername = 'DL380G3NEW')  
  7698. BEGIN
  7699.  SET @builder = 1  
  7700. END
  7701. --ELSE
  7702. --BEGIN
  7703. --  if NOT exists(select * from account_ch2 (nolock) where account = @account_name)  
  7704. --  --BEGIN  
  7705. --       RAISERROR ('Character name has space : name = [%s]', 16, 1, @account_name)  
  7706. --       RETURN -1  
  7707. --  END  
  7708. --END
  7709.  
  7710. IF @char_name LIKE N' '  
  7711. BEGIN  
  7712.  RAISERROR ('Character name has space : name = [%s]', 16, 1, @char_name)  
  7713.  RETURN -1  
  7714. END  
  7715.  
  7716. -- check user_prohibit  
  7717. IF EXISTS(SELECT char_name FROM user_prohibit (nolock) WHERE char_name = @char_name)  
  7718. BEGIN  
  7719.  RAISERROR ('Character name is prohibited: name = [%s]', 16, 1, @char_name)  
  7720.  RETURN -1  
  7721. END  
  7722.  
  7723. DECLARE @user_prohibit_word nvarchar(20)  
  7724. SELECT top 1 @user_prohibit_word = words FROM user_prohibit_word (nolock) WHERE @char_name LIKE '%' + words + '%'
  7725. IF @user_prohibit_word IS NOT NULL  
  7726. BEGIN  
  7727.  RAISERROR ('Character name has prohibited word: name = [%s], word[%s]', 16, 1, @char_name, @user_prohibit_word)  
  7728.  RETURN -1  
  7729. END  
  7730.  
  7731. -- check reserved name  
  7732. DECLARE @reserved_name nvarchar(50)  
  7733. DECLARE @reserved_account_id INT  
  7734. SELECT top 1 @reserved_name = char_name, @reserved_account_id = account_id FROM user_name_reserved (nolock) WHERE used = 0 AND char_name = @char_name  
  7735. IF NOT @reserved_name IS NULL  
  7736. BEGIN  
  7737.  IF NOT @reserved_account_id = @account_id  
  7738.  BEGIN  
  7739.   RAISERROR ('Character name is reserved by other player: name = [%s]', 16, 1, @char_name)  
  7740.   RETURN -1  
  7741.  END  
  7742. END  
  7743.  
  7744. -- insert user_data  
  7745. INSERT INTO user_data  
  7746. ( char_name, account_name, account_id, pledge_id, builder, gender, race, class,  
  7747. world, xloc, yloc, zloc, HP, MP, max_hp, max_mp, SP, EXP, Lev, align, PK, PKpardon, duel, create_date, face_index, hair_shape_index, hair_color_index,
  7748. subjob_id, subjob0_class, cp, max_cp
  7749.  )  
  7750. VALUES  
  7751. (@char_name, @account_name, @account_id, @pledge_id, @builder, @gender, @race, @class,  
  7752. @world, @xloc, @yloc, @zloc, @HP, @MP, @HP, @MP, @SP, @EXP, @Lev, @align, @PK, @Duel, @PKPardon, GETDATE(), @FaceIndex, @HairShapeIndex, @HairColorIndex,
  7753. @SubjobID, @MainClass, @CP, @CP)  
  7754.  
  7755. IF (@@error = 0)  
  7756. BEGIN  
  7757.  SET @char_id = @@IDENTITY  
  7758.  INSERT INTO quest (char_id) VALUES (@char_id)  
  7759. END  
  7760.  
  7761. SELECT @char_id  
  7762.  
  7763. IF @char_id > 0  
  7764. BEGIN  
  7765.  -- make user_history  
  7766.  EXEC lin_InsertUserHistory @char_name, @char_id, 1, @account_name, NULL  
  7767.  IF NOT @reserved_name IS NULL  
  7768.   UPDATE user_name_reserved SET used = 1 WHERE char_name = @reserved_name  
  7769. END
  7770. GO
  7771.  
  7772. ALTER PROCEDURE [dbo].[lin_CreateDoorDataIfNotExist]  
  7773. (  
  7774.  @name  NVARCHAR(50),  
  7775.  @default_hp INT  
  7776. )  
  7777. AS  
  7778. SET NOCOUNT ON  
  7779. INSERT INTO door (name, hp, max_hp) VALUES (@name, @default_hp, @default_hp)
  7780. GO
  7781.  
  7782. /********************************************
  7783. lin_CreateGroupPoint
  7784.  
  7785. INPUT
  7786. OUTPUT
  7787.  
  7788. return
  7789. made by
  7790.     young
  7791. date
  7792.     2004-07-15
  7793. ********************************************/
  7794. ALTER PROCEDURE [DBO].[lin_CreateGroupPoint]
  7795. (
  7796.     @group_id   INT,
  7797.     @group_point    FLOAT
  7798. )
  7799. AS
  7800. SET NOCOUNT ON
  7801.  
  7802. INSERT INTO event_point ( group_id, group_point) VALUES ( @group_id, @group_point)
  7803. GO
  7804.  
  7805. /****** Object:  Stored Procedure dbo.lin_CreateItem    Script Date: 2003-09-20 ?? 11:51:57 ******/
  7806. /********************************************
  7807. lin_CreateItem
  7808.     create item sp
  7809. INPUT
  7810.     @char_id    INT,
  7811.     @item_type  INT,
  7812.     @amount     INT,
  7813.     @enchant    INT,
  7814.     @eroded     INT,
  7815.     @bless      TINYINT,
  7816.     @ident      TINYINT,
  7817.     @ready      TINYINT,
  7818.     @wished     TINYINT,
  7819.     @warehouse  INT
  7820. OUTPUT
  7821.     Item_ID, @@IDENTITY
  7822. return
  7823. made by
  7824.     carrot
  7825. date
  7826.     2002-01-31
  7827. ********************************************/
  7828. ALTER PROCEDURE [DBO].[lin_CreateItem]
  7829. (
  7830. @char_id    INT,
  7831. @item_type  INT,
  7832. @amount     INT,
  7833. @enchant    INT,
  7834. @eroded     INT,
  7835. @bless      TINYINT,
  7836. @ident      TINYINT,
  7837. @wished     TINYINT,
  7838. @warehouse  INT
  7839. )
  7840. AS
  7841. SET NOCOUNT ON
  7842.  
  7843. INSERT INTO user_item
  7844.     (char_id , item_type , amount , enchant , eroded , bless , ident , wished , warehouse)
  7845.     VALUES
  7846.     (@char_id, @item_type , @amount , @enchant , @eroded , @bless , @ident , @wished , @warehouse)
  7847.  
  7848. SELECT @@IDENTITY
  7849. GO
  7850.  
  7851. ALTER PROCEDURE [DBO].[lin_CreateLottoGame]
  7852. (
  7853.     @round_number INT,
  7854.     @state INT,
  7855.     @left_time INT,
  7856.     @chosen_nuimber_flag INT,
  7857.     @rule_number INT,
  7858.     @total_count INT,
  7859.     @winner1_count INT,
  7860.     @winner2_count INT,
  7861.     @winner3_count INT,
  7862.     @winner4_count INT,
  7863.     @carried_adena INT
  7864. )
  7865. AS      
  7866. SET NOCOUNT ON    
  7867.  
  7868. INSERT INTO lotto_game
  7869. VALUES
  7870. (
  7871.     @round_number ,
  7872.     @state,
  7873.     @left_time,
  7874.     @chosen_nuimber_flag ,
  7875.     @rule_number ,
  7876.     @total_count ,
  7877.     @winner1_count ,
  7878.     @winner2_count ,
  7879.     @winner3_count ,
  7880.     @winner4_count ,
  7881.     @carried_adena )
  7882. GO
  7883.  
  7884. ALTER PROCEDURE [DBO].[lin_CreateLottoItem]
  7885. (
  7886.     @round_number INT,
  7887.     @item_id INT,
  7888.     @number_flag INT   
  7889. )
  7890. AS      
  7891. SET NOCOUNT ON    
  7892.  
  7893. INSERT INTO lotto_items
  7894. VALUES
  7895. (
  7896.     @round_number ,
  7897.     @item_id,
  7898.     @number_flag
  7899. )
  7900. GO
  7901.  
  7902. /********************************************
  7903. lin_CreateMacro
  7904.     create macro
  7905. INPUT
  7906.     @char_id        int,
  7907.     @macro_name     nvarchar(64),
  7908.     @macro_tooltip      nvarchar(64)
  7909.     @macro_iconname nvarchar(64)
  7910.     @macro_icontype     int
  7911.  
  7912. OUTPUT
  7913. return
  7914. made by
  7915.     young
  7916. date
  7917.     2004-6-11
  7918. ********************************************/
  7919. ALTER PROCEDURE [DBO].[lin_CreateMacro]
  7920. (
  7921. @char_id        INT,
  7922. @macro_name     nvarchar(64),
  7923. @macro_tooltip      nvarchar(64),
  7924. @macro_iconname nvarchar(64),
  7925. @macro_icontype INT
  7926. )
  7927. AS
  7928. SET NOCOUNT ON
  7929.  
  7930. INSERT INTO user_macro ( char_id, macro_name, macro_tooltip, macro_iconname, macro_icontype)
  7931. VALUES
  7932. ( @char_id, @macro_name, @macro_tooltip, @macro_iconname, @macro_icontype)
  7933.  
  7934. SELECT @@IDENTITY
  7935. GO
  7936.  
  7937. /********************************************
  7938. lin_CreateMacroInfo
  7939.     create macroinfo
  7940. INPUT
  7941.     @macro_id       int,
  7942.     @macro_order        int,
  7943.     @macro_int1     int,
  7944.     @macro_int2     int,
  7945.     @macro_int3     int,
  7946.     @macro_str      nvarchar(255)
  7947.  
  7948. OUTPUT
  7949. return
  7950. made by
  7951.     young
  7952. date
  7953.     2004-6-11
  7954. ********************************************/
  7955. ALTER PROCEDURE [DBO].[lin_CreateMacroInfo]
  7956. (
  7957. @macro_id       INT,
  7958. @macro_order        INT,
  7959. @macro_int1     INT,
  7960. @macro_int2     INT,
  7961. @macro_int3     INT,
  7962. @macro_str      nvarchar(255)
  7963. )
  7964. AS
  7965. SET NOCOUNT ON
  7966.  
  7967. IF ( EXISTS ( SELECT * FROM user_macro WHERE macro_id = @macro_id ) )
  7968. BEGIN
  7969.     IF ( EXISTS ( SELECT * FROM user_macroinfo WHERE macro_id = @macro_id AND macro_order = @macro_order ) )
  7970.     BEGIN
  7971.         UPDATE user_macroinfo SET macro_int1 = @macro_int1, macro_int2 = @macro_int2, macro_int3 = @macro_int3 WHERE macro_id = @macro_id AND macro_order = @macro_order
  7972.  
  7973.     END ELSE BEGIN
  7974.         INSERT INTO user_macroinfo ( macro_id, macro_order, macro_int1, macro_int2, macro_int3, macro_str )
  7975.         VALUES ( @macro_id, @macro_order, @macro_int1, @macro_int2, @macro_int3, @macro_str )
  7976.     END
  7977.  
  7978. END
  7979. GO
  7980.  
  7981. /********************************************
  7982. lin_CreateMonRace
  7983.     create monster race
  7984. INPUT
  7985.     @mon1       smallint,
  7986.     @mon2       smallint,
  7987.     @mon3       smallint,
  7988.     @mon4       smallint,
  7989.     @mon5       smallint,
  7990.     @mon6       smallint,
  7991.     @mon7       smallint,
  7992.     @mon8       smallint
  7993.  
  7994. OUTPUT
  7995. return
  7996. made by
  7997.     young
  7998. date
  7999.     2004-5-18
  8000. ********************************************/
  8001. ALTER PROCEDURE [DBO].[lin_CreateMonRace]
  8002. (
  8003. @mon1           SMALLINT,
  8004. @mon2           SMALLINT,
  8005. @mon3           SMALLINT,
  8006. @mon4           SMALLINT,
  8007. @mon5           SMALLINT,
  8008. @mon6           SMALLINT,
  8009. @mon7           SMALLINT,
  8010. @mon8           SMALLINT,
  8011. @tax_rate       INT
  8012. )
  8013. AS
  8014. SET NOCOUNT ON
  8015.  
  8016. DECLARE @race_id INT
  8017.  
  8018. INSERT INTO monrace ( lane1, lane2, lane3, lane4, lane5, lane6, lane7, lane8 , tax_rate)
  8019. VALUES ( @mon1, @mon2, @mon3, @mon4, @mon5,@mon6, @mon7,  @mon8 , @tax_rate )
  8020.  
  8021. SELECT @race_id  = @@IDENTITY
  8022.  
  8023. SELECT @race_id
  8024. GO
  8025.  
  8026. /********************************************
  8027. lin_CreateMonRaceMon
  8028.     create monster race
  8029. INPUT
  8030.     @runner_id  int
  8031.     @initial_win    int
  8032. OUTPUT
  8033. return
  8034. made by
  8035.     young
  8036. date
  8037.     2004-5-19
  8038. ********************************************/
  8039. ALTER PROCEDURE [DBO].[lin_CreateMonRaceMon]
  8040. (
  8041. @runner_id      INT,
  8042. @initial_win        INT,
  8043. @run_count      INT,
  8044. @win_count      INT
  8045. )
  8046. AS
  8047. SET NOCOUNT ON
  8048.  
  8049. IF NOT EXISTS ( SELECT * FROM monrace_mon (nolock) WHERE runner_id = @runner_id )
  8050. BEGIN
  8051.     INSERT INTO monrace_mon( runner_id, initial_win , run_count, win_count ) VALUES ( @runner_id, @initial_win , @run_count, @win_count)
  8052. END
  8053.  
  8054. SELECT initial_win, run_count, win_count  FROM monrace_mon ( nolock) WHERE runner_id = @runner_id
  8055. GO
  8056.  
  8057. /********************************************
  8058. lin_CreateMonRaceTicket
  8059.     ALTER  monster race ticket
  8060. INPUT
  8061.     @monraceid  int,
  8062.     @bet_type   smallint,
  8063.     @bet_1      smallint,
  8064.     @bet_2      smallint,
  8065.     @bet_3      smallint,
  8066.     @bet_money  int,
  8067.     @tax_money  int,
  8068.     @item_id    int,
  8069.     @remotefee  int=0
  8070.  
  8071. OUTPUT
  8072. return
  8073. made by
  8074.     young
  8075. date
  8076.     2004-5-18
  8077. ********************************************/
  8078.  
  8079. ALTER PROCEDURE [DBO].[lin_CreateMonRaceTicket]
  8080. (
  8081.     @monraceid  INT,
  8082.     @bet_type   SMALLINT,
  8083.     @bet_1      SMALLINT,
  8084.     @bet_2      SMALLINT,
  8085.     @bet_3      SMALLINT,
  8086.     @bet_money  INT,
  8087.     @tax_money  INT,
  8088.     @item_id    INT,
  8089.     @remotefee  INT=0
  8090. )
  8091. AS
  8092. SET NOCOUNT ON
  8093.  
  8094. DECLARE @ticket_id INT
  8095.  
  8096. INSERT INTO monrace_ticket ( monraceid, bet_type, bet_1, bet_2, bet_3, bet_money,  tax_money, item_id , remotefee )
  8097. VALUES ( @monraceid, @bet_type, @bet_1, @bet_2, @bet_3,  @bet_money,  @tax_money, @item_id , @remotefee )
  8098.  
  8099. SELECT @ticket_id  = @@IDENTITY
  8100.  
  8101. SELECT @ticket_id
  8102. GO
  8103.  
  8104. /********************************************
  8105. lin_CreateNewbieData
  8106.     create  newbie data
  8107. INPUT
  8108.     @account_id INT,
  8109.  
  8110. OUTPUT
  8111. return
  8112. made by
  8113.     kks
  8114. date
  8115.     2004-11-25
  8116.  
  8117. ********************************************/
  8118. ALTER PROCEDURE [DBO].[lin_CreateNewbieData]
  8119. (
  8120.     @account_id INT
  8121. )
  8122. AS
  8123. SET NOCOUNT ON
  8124.  
  8125. INSERT INTO user_newbie(account_id, char_id, newbie_stat)
  8126. VALUES (@account_id, 0, 0)
  8127. GO
  8128.  
  8129. /********************************************
  8130. lin_CreatePet
  8131.     create item sp
  8132. INPUT
  8133.     @pet_id INT,  // same as pet_collar_dbid
  8134.     @npc_class_id   INT
  8135. OUTPUT
  8136. return
  8137. made by
  8138.     kuooo
  8139. date
  8140.     2002-08-19
  8141. ********************************************/
  8142. ALTER PROCEDURE [DBO].[lin_CreatePet]
  8143. (
  8144. @pet_dbid       INT,
  8145. @npc_class_id       INT,
  8146. @exp_in     INT,
  8147. @hp         FLOAT,
  8148. @mp         FLOAT,
  8149. @meal           INT
  8150. )
  8151. AS
  8152. SET NOCOUNT ON
  8153.  
  8154. INSERT INTO pet_data
  8155.     (pet_id, npc_class_id,  expoint, hp, mp, meal)
  8156.     VALUES (@pet_dbid, @npc_class_id, @exp_in, @hp, @mp, @meal)
  8157.  
  8158. /*SELECT @@IDENTITY*/
  8159. GO
  8160.  
  8161. -- lin_CreatePledge
  8162. -- by bert
  8163. -- return pledge_id, ruler_name
  8164. ALTER PROCEDURE
  8165. dbo.lin_CreatePledge (@name NVARCHAR(50), @ruler_id INT)
  8166. AS
  8167.  
  8168. SET NOCOUNT ON
  8169.  
  8170. DECLARE @pledge_id INT
  8171.  
  8172.  
  8173. BEGIN TRAN
  8174.  
  8175. IF @name LIKE N' '  
  8176. BEGIN  
  8177.  RAISERROR ('pledge name has space : name = [%s]', 16, 1, @name)  
  8178.  GOTO EXIT_TRAN
  8179. END  
  8180.  
  8181. -- check user_prohibit  
  8182. IF EXISTS(SELECT char_name FROM user_prohibit (nolock) WHERE char_name = @name)  
  8183. BEGIN
  8184.  RAISERROR ('pledge name is prohibited: name = [%s]', 16, 1, @name)  
  8185.  GOTO EXIT_TRAN
  8186. END
  8187.  
  8188. DECLARE @user_prohibit_word NVARCHAR(20)  
  8189. SELECT TOP 1 @user_prohibit_word = words FROM user_prohibit_word (nolock) WHERE PATINDEX('%' + words + '%', @name) > 0  
  8190. IF @user_prohibit_word IS NOT NULL
  8191. BEGIN
  8192.  RAISERROR ('pledge name has prohibited word: name = [%s], word[%s]', 16, 1, @name, @user_prohibit_word)  
  8193.  GOTO EXIT_TRAN
  8194. END
  8195.  
  8196. INSERT INTO Pledge (name, ruler_id) VALUES (@name, @ruler_id)
  8197.  
  8198. IF @@ERROR = 0 AND @@ROWCOUNT = 1
  8199. BEGIN
  8200.     SELECT @pledge_id = @@IDENTITY
  8201.     UPDATE user_data
  8202.     SET pledge_id = @pledge_id
  8203.     WHERE char_id = @ruler_id
  8204. END
  8205. ELSE
  8206. BEGIN
  8207.     SELECT @pledge_id = 0
  8208.     GOTO EXIT_TRAN
  8209. END
  8210.  
  8211. IF @@ERROR <> 0 OR @@ROWCOUNT <> 1
  8212. BEGIN
  8213.     SELECT @pledge_id = 0
  8214. END
  8215.  
  8216. EXIT_TRAN:
  8217. IF @pledge_id <> 0
  8218. BEGIN
  8219.     COMMIT TRAN
  8220.     SELECT @pledge_id AS pledge_id, (SELECT char_name FROM user_data WHERE char_id = @ruler_id) AS pledge_ruler_name
  8221. END
  8222. ELSE
  8223. BEGIN
  8224.     ROLLBACK TRAN
  8225.     SELECT 0 AS pledge_id, N'' AS pledge_ruler_name
  8226. END
  8227. GO
  8228.  
  8229. /**  
  8230.   * @procedure lin_CreateSSQRound  
  8231.   * @brief SSQ ?? ??  
  8232.   *  
  8233.   * @date 2004/11/18  
  8234.   * @author sonai  <[email protected]>  
  8235.   */  
  8236. ALTER PROCEDURE [DBO].[lin_CreateSSQRound]  
  8237. (  
  8238. @round_number INT,  
  8239. @STATUS INT,  
  8240. @winner INT,  
  8241. @event_start_time INT,  
  8242. @event_end_time INT,  
  8243. @seal_effect_time INT,  
  8244. @seal_effect_end_time INT,  
  8245. @seal1 INT,  
  8246. @seal2 INT,  
  8247. @seal3 INT,  
  8248. @seal4 INT,  
  8249. @seal5 INT,  
  8250. @seal6 INT,  
  8251. @seal7 INT,  
  8252. @castle_snapshot_time INT,  
  8253. @can_drop_guard INT  
  8254. )  
  8255. AS  
  8256.  
  8257. SET NOCOUNT ON  
  8258. /*DECLARE @ret AS INT*/  
  8259.  
  8260. /* ?? ?? ?? ?? */  
  8261. INSERT ssq_join_data(round_number, point,  collected_point, main_event_point, TYPE, member_count,  
  8262.                          seal1_selection_count, seal2_selection_count, seal3_selection_count,  
  8263.              seal4_selection_count, seal5_selection_count, seal6_selection_count, seal7_selection_count,  
  8264.              last_changed_time)  
  8265.   VALUES(@round_number, 0, 0, 0, 1, 0,   0, 0, 0, 0, 0, 0, 0, GETDATE())  
  8266.  
  8267. /*SELECT @ret = @@ROWCOUNT*/  
  8268.  
  8269. /* ?? ?? ?? ?? */  
  8270. INSERT ssq_join_data(round_number, point, collected_point, main_event_point, TYPE, member_count,  
  8271.              seal1_selection_count, seal2_selection_count, seal3_selection_count,  
  8272.              seal4_selection_count, seal5_selection_count, seal6_selection_count, seal7_selection_count,  
  8273.              last_changed_time)  
  8274.   VALUES(@round_number,  0, 0, 0, 2, 0,   0, 0, 0, 0, 0, 0, 0, GETDATE())  
  8275.  
  8276. /*SELECT @ret = @ret + @@ROWCOUNT */  
  8277.  
  8278. INSERT ssq_data(round_number, STATUS, winner, event_start_time, event_end_time, seal_effect_time, seal_effect_end_time,  
  8279.        seal1, seal2, seal3, seal4, seal5, seal6, seal7,  
  8280.        last_changed_time, castle_snapshot_time, can_drop_guard)  
  8281.    VALUES(@round_number, @STATUS, @winner,  @event_start_time,  @event_end_time,  @seal_effect_time, @seal_effect_end_time,  
  8282.       @seal1, @seal2, @seal3, @seal4, @seal5, @seal6, @seal7,  
  8283.        GETDATE(), @castle_snapshot_time, @can_drop_guard)  
  8284.  
  8285. /*  
  8286. SELECT @ret = @ret + @@ROWCOUNT  
  8287.  
  8288. SELECT @ret  
  8289. */
  8290. GO
  8291.  
  8292. /**
  8293.   * @procedure lin_CreateSSQTopPointUser
  8294.   * @brief ?? ?? ?? ??.
  8295.   *
  8296.   * @date 2004/12/09
  8297.   * @author Seongeun Park  <[email protected]>
  8298.   */
  8299. ALTER PROCEDURE [DBO].[lin_CreateSSQTopPointUser]
  8300. (
  8301. @ssq_round INT,
  8302. @record_id INT,
  8303.  
  8304. @ssq_point INT,
  8305. @rank_time INT,
  8306. @char_id  INT,
  8307. @char_name NVARCHAR(50),
  8308. @ssq_part TINYINT,
  8309. @ssq_position TINYINT,
  8310. @seal_selection_no TINYINT
  8311. )
  8312. AS
  8313.  
  8314. SET NOCOUNT ON
  8315.  
  8316. INSERT INTO ssq_top_point_user  
  8317.              (ssq_round, record_id, ssq_point, rank_time, char_id, char_name,
  8318.               ssq_part, ssq_position, seal_selection_no, last_changed_time)
  8319.     VALUES (@ssq_round, @record_id, @ssq_point, @rank_time, @char_id, @char_name, @ssq_part, @ssq_position, @seal_selection_no, GETDATE())
  8320. GO
  8321.  
  8322. /**
  8323.  * @fn lin_CreateSSQUserInfo
  8324.  * @brief  SSQ?? ?? ??? ??.
  8325.  */
  8326. ALTER PROCEDURE [DBO].[lin_CreateSSQUserInfo]
  8327. (
  8328. @char_id INT,
  8329. @round_number INT,
  8330. @ssq_join_time INT,
  8331. @ssq_part INT,
  8332. @ssq_position INT,
  8333. @seal_selection_no INT,
  8334. @ssq_point INT,
  8335. @twilight_a_item_num INT,
  8336. @twilight_b_item_num INT,
  8337. @twilight_c_item_num INT,
  8338. @dawn_a_item_num INT,
  8339. @dawn_b_item_num INT,
  8340. @dawn_c_item_num INT,
  8341. @ticket_buy_count INT
  8342. )
  8343. AS
  8344. SET NOCOUNT ON
  8345.  
  8346. INSERT INTO ssq_user_data  
  8347.     (char_id, round_number, ssq_join_time, ssq_part, ssq_position, seal_selection_no, ssq_point,
  8348.               twilight_a_item_num, twilight_b_item_num, twilight_c_item_num, dawn_a_item_num, dawn_b_item_num, dawn_c_item_num,
  8349.               ticket_buy_count)
  8350.     VALUES
  8351.     (@char_id, @round_number, @ssq_join_time, @ssq_part, @ssq_position, @seal_selection_no, @ssq_point,
  8352.               @twilight_a_item_num, @twilight_b_item_num, @twilight_c_item_num, @dawn_a_item_num, @dawn_b_item_num, @dawn_c_item_num,
  8353.               @ticket_buy_count)
  8354. GO
  8355.  
  8356. ALTER PROCEDURE dbo.lin_CreateSubJob
  8357. (
  8358.     @char_id    INT,
  8359.     @new_subjob_id TINYINT,
  8360.     @new_class  TINYINT,
  8361.     @old_subjob_id  TINYINT,
  8362.     @hp     FLOAT,
  8363.     @mp     FLOAT,
  8364.     @sp     INT,
  8365.     @EXP        INT,
  8366.     @level      TINYINT,
  8367.     @henna_1    INT,
  8368.     @henna_2    INT,
  8369.     @henna_3    INT
  8370. )
  8371. AS
  8372.  
  8373. SET NOCOUNT ON
  8374.  
  8375. DECLARE @ret INT
  8376. SELECT @ret = 0
  8377. -- transaction on
  8378. BEGIN TRAN
  8379.  
  8380. IF @new_subjob_id = 1
  8381.     UPDATE user_data SET subjob1_class = @new_class WHERE char_id = @char_id
  8382. ELSE IF @new_subjob_id = 2
  8383.     UPDATE user_data SET subjob1_class = @new_class WHERE char_id = @char_id
  8384. ELSE IF @new_subjob_id = 3
  8385.     UPDATE user_data SET subjob1_class = @new_class WHERE char_id = @char_id
  8386.  
  8387. IF @@ERROR <> 0 OR @@ROWCOUNT <> 1  -- update, insert check
  8388. BEGIN
  8389.     SELECT @ret = 0
  8390.     GOTO EXIT_TRAN
  8391. END
  8392.  
  8393. -- save old class
  8394.  
  8395. IF @old_subjob_id = 0 AND (NOT EXISTS(SELECT char_id FROM user_subjob WHERE char_id = @char_id AND subjob_id = 0))
  8396. BEGIN
  8397.     DECLARE @original_date DATETIME
  8398.     SELECT @original_date = create_date FROM user_data(NOLOCK) WHERE char_id = @char_id
  8399.     INSERT INTO user_subjob
  8400.     (char_id, subjob_id, hp, mp, sp, EXP, level, henna_1, henna_2, henna_3, create_date)
  8401.     VALUES
  8402.     (@char_id, 0, @hp, @mp, @sp, @EXP, @level, @henna_1, @henna_2, @henna_3, @original_date)
  8403. END
  8404.  
  8405. UPDATE user_subjob
  8406. SET hp = @hp, mp = @mp, sp = @sp, EXP = @EXP, level = @level,
  8407.     henna_1 = @henna_1, henna_2 = @henna_2, henna_3 = @henna_3
  8408. WHERE char_id = @char_id AND subjob_id = @old_subjob_id
  8409.  
  8410. IF @@ERROR <> 0 OR @@ROWCOUNT <> 1  -- update, insert check
  8411. BEGIN
  8412.     SELECT @ret = 0
  8413.     GOTO EXIT_TRAN
  8414. END
  8415.  
  8416. -- create new class
  8417. INSERT INTO user_subjob (char_id, subjob_id, create_date) VALUES (@char_id, @new_subjob_id, GETDATE())
  8418. IF @@ERROR = 0 AND @@ROWCOUNT = 1
  8419. BEGIN
  8420.     SELECT @ret = @new_subjob_id
  8421. END
  8422. ELSE
  8423. BEGIN
  8424.     SELECT @ret = 0
  8425. END
  8426.  
  8427. EXIT_TRAN:
  8428. IF @ret<> 0
  8429. BEGIN
  8430.     COMMIT TRAN
  8431. END
  8432. ELSE
  8433. BEGIN
  8434.     ROLLBACK TRAN
  8435. END
  8436.  
  8437. SELECT @ret
  8438. GO
  8439.  
  8440. /**
  8441.  * @fn lin_CreateTimeAttackRecord
  8442.  * @brief ?? ?? ??? ?? ???? ?? ??
  8443.  */
  8444. ALTER PROCEDURE [DBO].[lin_CreateTimeAttackRecord]
  8445. (
  8446. @room_no TINYINT,
  8447. @record_type TINYINT,
  8448. @ssq_round INT,
  8449. @ssq_part TINYINT,
  8450. @point       INT,
  8451. @record_time INT,
  8452. @elapsed_time INT,
  8453. @member_count INT,
  8454. @member_names NVARCHAR(256),
  8455. @member_dbid_list NVARCHAR(128),
  8456. @member_reward_flags INT,
  8457. @fee INT
  8458.  
  8459. )
  8460. AS
  8461. SET NOCOUNT ON
  8462.  
  8463. INSERT INTO time_attack_record  
  8464.     (room_no, record_type, ssq_round, ssq_part, point, record_time, elapsed_time, member_count, member_names,
  8465.               member_dbid_list, member_reward_flags, fee)
  8466.     VALUES
  8467.     (@room_no, @record_type, @ssq_round, @ssq_part, @point, @record_time, @elapsed_time, @member_count, @member_names,
  8468.               @member_dbid_list, @member_reward_flags, @fee)
  8469. GO
  8470.  
  8471. ALTER PROCEDURE dbo.lin_DeclareWar
  8472. (
  8473. @challenger INT,
  8474. @challengee INT,
  8475. @declare_time INT
  8476. )
  8477. AS
  8478. SET NOCOUNT ON
  8479.  
  8480. INSERT INTO war_declare (challenger, challengee, declare_time) VALUES (@challenger, @challengee, @declare_time)
  8481. GO
  8482.  
  8483. ALTER PROCEDURE dbo.lin_DelAquireSkill
  8484. (
  8485.     @char_id    INT,
  8486.     @subjob_id  INT,
  8487.     @skill_id       INT
  8488. )
  8489. AS
  8490. SET NOCOUNT ON
  8491.  
  8492. DELETE FROM user_skill WHERE char_id = @char_id AND skill_id = @skill_id AND ISNULL(subjob_id, 0) = @subjob_id
  8493. GO
  8494.  
  8495. /****** Object:  Stored Procedure dbo.lin_DelBookMark    Script Date: 2003-09-20 ?? 11:51:58 ******/
  8496. /********************************************
  8497. lin_DelBookMark
  8498.     add bookmark item
  8499. INPUT
  8500.     @char_id    int,
  8501.     @bookmark_name  nvarchar(50)
  8502. OUTPUT
  8503.  
  8504. return
  8505. made by
  8506.     young
  8507. date
  8508.     2002-11-13
  8509. ********************************************/
  8510. ALTER PROCEDURE [DBO].[lin_DelBookMark]
  8511. (
  8512.     @char_id    INT,
  8513.     @bookmark_name  nvarchar(50)
  8514. )
  8515. AS
  8516. SET NOCOUNT ON
  8517.  
  8518. DELETE FROM bookmark WHERE char_id = @char_id AND name = @bookmark_name
  8519. GO
  8520.  
  8521. /********************************************
  8522. lin_DeleteAgitBid
  8523.     delete agit bid
  8524. INPUT
  8525.     @agit_id    int
  8526.     @pledge_id  int
  8527.  
  8528. OUTPUT
  8529. return
  8530. made by
  8531.     young
  8532. date
  8533.     2003-12-1
  8534. ********************************************/
  8535. ALTER PROCEDURE [DBO].[lin_DeleteAgitBid]
  8536. (
  8537. @agit_id        INT,
  8538. @pledge_id      INT
  8539. )
  8540. AS
  8541. SET NOCOUNT ON
  8542.  
  8543. DECLARE @auction_id INT
  8544. DECLARE @price INT
  8545.  
  8546. SET @auction_id = 0
  8547. SET @price = 0
  8548.  
  8549. SELECT @auction_id = isnull( auction_id , 0) FROM agit (nolock) WHERE id = @agit_id
  8550.  
  8551. IF @auction_id > 0
  8552. BEGIN
  8553.     SELECT @price = attend_price FROM agit_bid WHERE  auction_id = @auction_id AND attend_pledge_id = @pledge_id
  8554.     DELETE FROM agit_bid WHERE auction_id = @auction_id AND attend_pledge_id = @pledge_id
  8555. END
  8556.  
  8557. SELECT @agit_id, @pledge_id, @auction_id, @price
  8558. GO
  8559.  
  8560. ALTER PROCEDURE [dbo].lin_DeleteAllResidenceGuard  
  8561. (  
  8562. @res INT  
  8563. )  
  8564. AS  
  8565. IF EXISTS(SELECT * FROM residence_guard WHERE residence_id = @res)
  8566.     DELETE FROM residence_guard WHERE residence_id = @res
  8567. GO
  8568.  
  8569. /****** Object:  Stored Procedure dbo.lin_DeleteBBSBoard    Script Date: 2003-09-20 ?? 11:51:57 ******/
  8570. /********************************************
  8571. lin_DeleteBBSBoard
  8572.     Delete BBS board
  8573. INPUT
  8574.     @board_name nvarchar(20)
  8575. OUTPUT
  8576.  
  8577. return
  8578. made by
  8579.     young
  8580. date
  8581.     2002-10-16
  8582. ********************************************/
  8583. ALTER PROCEDURE [DBO].[lin_DeleteBBSBoard]
  8584. (
  8585.     @board_name nvarchar(20)
  8586. )
  8587. AS
  8588.  
  8589. SET nocount ON
  8590.  
  8591. DECLARE @ncount INT
  8592. DECLARE @TABLE_NAME nvarchar(20)
  8593. DECLARE @EXEC nvarchar(500)
  8594.  
  8595. SET @TABLE_NAME = 'bbs_' + @board_name
  8596.  
  8597. SET @EXEC = 'drop table ' + @TABLE_NAME
  8598. EXEC (@EXEC)
  8599.  
  8600. DELETE FROM bbs_board WHERE board_name =  @TABLE_NAME
  8601. GO
  8602.  
  8603. /********************************************    
  8604. lin_DeleteBlockList    
  8605.  delete character's blocked list.    
  8606. INPUT    
  8607.  char_id,    
  8608.  target char_name    
  8609. OUTPUT    
  8610. return    
  8611. made by    
  8612.  carrot    
  8613. date    
  8614.  2003-12-01    
  8615. change    
  8616. ********************************************/    
  8617. ALTER PROCEDURE [DBO].[lin_DeleteBlockList]    
  8618. (    
  8619.  @char_id INT,    
  8620.  @target_char_name NVARCHAR(50)    
  8621. )    
  8622. AS    
  8623.    
  8624. SET NOCOUNT ON    
  8625.    
  8626. DECLARE @target_char_id INT    
  8627. SET @target_char_id = 0    
  8628.  
  8629. SELECT @target_char_id = block_char_id FROM user_blocklist  WHERE block_char_name = @target_char_name    
  8630.  
  8631. --SELECT @target_char_id = char_id FROM user_data WHERE char_name = @target_char_name    
  8632.    
  8633. IF @target_char_id > 0    
  8634. BEGIN    
  8635.  DELETE user_blocklist  WHERE char_id = @char_id AND block_char_id = @target_char_id    
  8636.  IF NOT @@ROWCOUNT = 1    
  8637.  BEGIN    
  8638.   RAISERROR ('Cannot find delete blocklist: char id = [%d], target name[%s]', 16, 1, @char_id, @target_char_name)    
  8639.  END    
  8640.  ELSE    
  8641.  BEGIN    
  8642.   SELECT @target_char_id    
  8643.  END    
  8644. END    
  8645. ELSE    
  8646. BEGIN    
  8647.  RAISERROR ('Cannot find delete blocklist: char id = [%d], target naem[%s]', 16, 1, @char_id, @target_char_name)    
  8648. END
  8649. GO
  8650.  
  8651. /****** Object:  Stored Procedure dbo.lin_DeleteCastleIncome    Script Date: 2003-09-20 ?? 11:51:58 ******/
  8652. /********************************************
  8653. lin_DeleteCastleIncome
  8654.    
  8655. INPUT  
  8656.     @castle_id  int,
  8657.     @item_type  int
  8658. OUTPUT
  8659. return
  8660. made by
  8661.     carrot
  8662. date
  8663.     2002-06-16
  8664. ********************************************/
  8665. ALTER PROCEDURE [DBO].[lin_DeleteCastleIncome]
  8666. (
  8667.     @castle_id  INT,
  8668.     @item_type  INT
  8669. )
  8670. AS
  8671. SET NOCOUNT ON
  8672.  
  8673. DELETE castle_crop WHERE castle_id = @castle_id AND item_type = @item_type
  8674. GO
  8675.  
  8676. /****** Object:  Stored Procedure dbo.lin_DeleteCastleWar    Script Date: 2003-09-20 ?? 11:52:00 ******/
  8677. -- lin_DeleteCastleWar
  8678. -- by kks
  8679.  
  8680. ALTER PROCEDURE
  8681. dbo.lin_DeleteCastleWar (@pledge_id INT,  @castle_id INT)
  8682. AS
  8683. SET NOCOUNT ON
  8684.  
  8685. DELETE FROM castle_war WHERE pledge_id = @pledge_id AND castle_id = @castle_id
  8686.  
  8687. SELECT @@ROWCOUNT
  8688. GO
  8689.  
  8690. /****** Object:  Stored Procedure dbo.lin_DeleteChar    Script Date: 2003-09-20 ?? 11:52:00 ******/
  8691. /********************************************
  8692. lin_DeleteChar
  8693.     Delete character sp
  8694. INPUT
  8695.     @char_id    INT
  8696. OUTPUT
  8697.     item_id
  8698. return
  8699. made by
  8700.     carrot
  8701. date
  8702.     2002-02-16
  8703.     Update all item and return item_ids
  8704. ********************************************/
  8705. ALTER PROCEDURE [DBO].[lin_DeleteChar]
  8706. (
  8707. @char_id    INT
  8708. )
  8709. AS
  8710.  
  8711. SET NOCOUNT ON
  8712.  
  8713. DECLARE @backup_char_name NVARCHAR(50)
  8714. DECLARE @original_account_id INT
  8715. DECLARE @original_char_name NVARCHAR(50)
  8716. DECLARE @original_account_name NVARCHAR(50)
  8717. DECLARE @create_date datetime
  8718.  
  8719. SET @original_account_id = 0
  8720. SELECT
  8721.     @original_account_id = account_id
  8722.     ,@original_char_name = char_name
  8723.     ,@original_account_name = account_name
  8724.     ,@create_date = create_date
  8725. FROM user_data
  8726. WHERE char_id = @char_id
  8727.  
  8728. SELECT @backup_char_name = @original_char_name + '_' + LTRIM(STR(@original_account_id)) + '_' + LTRIM(STR(@char_id))
  8729.  
  8730. UPDATE user_data
  8731. SET account_id = -1
  8732. , char_name = @backup_char_name
  8733. , pledge_id = 0
  8734. WHERE char_id = @char_id
  8735.  
  8736. INSERT INTO user_deleted
  8737. (char_id, delete_date) VALUES (@char_id, GETDATE())
  8738.  
  8739. --DECLARE @tempItemIDtable TABLE (item_id INT)
  8740. --INSERT INTO @tempItemIDtable
  8741. --SELECT item_id FROM user_item  WHERE char_id = @char_id
  8742. --UPDATE user_item  SET char_id = 0, item_type = 0, amount = 0, enchant = 0, eroded = 0, bless = 0, ident = 0, wished = 0, warehouse = 0  WHERE char_id = @char_id
  8743. --SELECT item_id FROM @tempItemIDtable
  8744.  
  8745. SELECT item_id FROM user_item  WHERE char_id = @char_id
  8746.  
  8747. IF @original_account_id > 0
  8748. BEGIN
  8749.     -- make user_history
  8750.     EXEC lin_InsertUserHistory @original_char_name, @char_id, 2, @original_account_name, @create_date
  8751. END
  8752. GO
  8753.  
  8754. /****** Object:  Stored Procedure dbo.lin_DeleteCharClearPledge    Script Date: 2003-09-20 ?? 11:51:58 ******/
  8755. /********************************************
  8756. lin_DeleteCharClearPledge
  8757.     Delete character sp
  8758. INPUT
  8759.     @char_id    INT
  8760. OUTPUT
  8761.     item_id
  8762. return
  8763. made by
  8764.     bert, young
  8765. date
  8766.     2003-09-17
  8767. ********************************************/
  8768. ALTER PROCEDURE [dbo].lin_DeleteCharClearPledge
  8769. (
  8770.     @char_id INT
  8771. )
  8772. AS
  8773.  
  8774. SET NOCOUNT ON
  8775.  
  8776. DECLARE @pledge_id INT
  8777.  
  8778. SELECT @pledge_id = pledge_id FROM user_data WHERE char_id = @char_id
  8779.  
  8780. IF @pledge_id <> 0
  8781. BEGIN
  8782.     DECLARE @ruler_id INT
  8783.     DECLARE @now_war_id INT
  8784.  
  8785.     SELECT @ruler_id = ruler_id, @now_war_id = now_war_id FROM pledge WHERE pledge_id = @pledge_id
  8786.     IF @ruler_id = @char_id  -- ???? ?? ?? ??
  8787.     BEGIN
  8788.         IF @now_war_id <> 0 -- ?? ?? ??? ?? ?? ??
  8789.         BEGIN
  8790.             DECLARE @challenger INT
  8791.             DECLARE @challengee INT
  8792.  
  8793.             SELECT @challenger = challenger, @challengee = challengee FROM pledge_war WHERE id = @now_war_id
  8794.             UPDATE pledge SET now_war_id = 0 WHERE pledge_id IN (@challenger, @challengee)
  8795.             DELETE FROM pledge_war WHERE id = @now_war_id
  8796.         END
  8797.        
  8798.         UPDATE user_data SET pledge_id = 0 WHERE pledge_id = @pledge_id
  8799.     END
  8800.     UPDATE user_data SET pledge_id = 0 WHERE char_id = @char_id
  8801. END
  8802. GO
  8803.  
  8804. /****** Object:  Stored Procedure dbo.lin_DeleteFriends    Script Date: 2003-09-20 ?? 11:51:58 ******/
  8805. -- lin_DeleteFriends
  8806. -- by bert
  8807. -- return deleted friend id set
  8808.  
  8809. ALTER PROCEDURE dbo.lin_DeleteFriends (@char_id INT)
  8810. AS
  8811.  
  8812. SET NOCOUNT ON
  8813.  
  8814. SELECT friend_char_id FROM user_friend WHERE char_id = @char_id
  8815.  
  8816. DELETE FROM user_friend
  8817. WHERE char_id = @char_id OR friend_char_id = @char_id
  8818. GO
  8819.  
  8820. /********************************************  
  8821. lin_DeleteItem  
  8822.    
  8823. INPUT  
  8824.  @item_id  INT  
  8825. OUTPUT  
  8826. return  
  8827. made by  
  8828.  carrot  
  8829. date  
  8830.  2002-06-10  
  8831. ********************************************/  
  8832. ALTER PROCEDURE [DBO].[lin_DeleteItem]  
  8833. (  
  8834.  @item_id  INT  
  8835. )  
  8836. AS  
  8837. SET NOCOUNT ON  
  8838.  
  8839. SET NOCOUNT ON  
  8840. UPDATE user_item SET char_id=0, item_type=0 WHERE item_id=@item_id  
  8841. --UPDATE user_item  set char_id=0, item_type=0 WHERE item_id=@item_id  
  8842. SELECT @@ROWCOUNT
  8843. GO
  8844.  
  8845. /********************************************
  8846. lin_DeleteMacro
  8847.     delete  macro
  8848. INPUT
  8849.  
  8850.     @macro_id   int
  8851. OUTPUT
  8852. return
  8853. made by
  8854.     young
  8855. date
  8856.     2004-6-11
  8857. ********************************************/
  8858. ALTER PROCEDURE [DBO].[lin_DeleteMacro]
  8859. (
  8860. @macro_id       INT
  8861. )
  8862. AS
  8863. SET NOCOUNT ON
  8864.  
  8865. DELETE FROM user_macroinfo WHERE macro_id = @macro_id
  8866. DELETE FROM user_macro WHERE macro_id = @macro_id
  8867. GO
  8868.  
  8869. /********************************************
  8870. lin_DeleteMail
  8871.     delete mail
  8872. INPUT
  8873.     @char_id        int,
  8874.     @mail_id        int,
  8875.     @mailbox_type           int
  8876.  
  8877. OUTPUT
  8878. return
  8879. made by
  8880.     kks
  8881. date
  8882.     2004-12-19
  8883. modified by kks (2005-08-29)
  8884. ********************************************/
  8885. ALTER PROCEDURE [DBO].[lin_DeleteMail]
  8886. (
  8887.     @char_id        INT,
  8888.     @mail_id        INT,
  8889.     @mailbox_type           INT
  8890. )
  8891. AS
  8892. SET NOCOUNT ON
  8893.  
  8894. UPDATE user_mail_receiver
  8895. SET deleted = 1
  8896. WHERE mail_id = @mail_id AND
  8897.     receiver_id = @char_id AND
  8898.     mailbox_type = @mailbox_type AND
  8899.     deleted = 0
  8900.  
  8901. IF @@ROWCOUNT = 0
  8902.     BEGIN
  8903.     UPDATE user_mail_sender
  8904.     SET deleted = 1
  8905.     WHERE mail_id = @mail_id AND
  8906.         sender_id = @char_id AND
  8907.         mailbox_type = @mailbox_type
  8908.     END
  8909. GO
  8910.  
  8911. ALTER PROCEDURE  dbo.lin_DeleteMasterRelatedCastleWar
  8912. (
  8913.     @pledge_id INT
  8914. )  
  8915. AS  
  8916.  
  8917. SET NOCOUNT ON  
  8918.  
  8919. IF EXISTS(SELECT * FROM castle_war WHERE pledge_id = @pledge_id)
  8920. BEGIN
  8921.     DELETE  
  8922.     FROM castle_war  
  8923.     WHERE pledge_id = @pledge_id  
  8924. END
  8925. ELSE
  8926. BEGIN
  8927.     RAISERROR ('pledge id is not exist in castle_war.[%d]', 16, 1, @pledge_id)
  8928. END
  8929. GO
  8930.  
  8931. ALTER PROCEDURE [dbo].lin_DeleteMercenary
  8932. (
  8933. @residence_id INT
  8934. )
  8935. AS
  8936. IF EXISTS(SELECT * FROM mercenary WHERE residence_id = @residence_id)
  8937.     DELETE FROM mercenary WHERE residence_id = @residence_id
  8938. GO
  8939.  
  8940. /********************************************  
  8941. lin_DeleteNotOwnedItem  
  8942.    
  8943. INPUT  
  8944. OUTPUT  
  8945.  
  8946. return  
  8947. made by  
  8948.  carrot  
  8949. date  
  8950.  2003-10-12  
  8951. ********************************************/  
  8952. ALTER PROCEDURE [DBO].[lin_DeleteNotOwnedItem]  
  8953. AS  
  8954. SET NOCOUNT ON  
  8955.  
  8956. DELETE user_item WHERE char_id =  0 OR item_type = 0  
  8957.  
  8958. DECLARE @ToDeleteCharacter CURSOR  
  8959. DECLARE @char_id INT  
  8960. SET @ToDeleteCharacter = CURSOR FAST_FORWARD FOR  
  8961.  SELECT char_id  
  8962.  FROM user_data  
  8963.  WHERE account_id > 0 AND temp_delete_date IS NOT NULL AND DATEDIFF ( dd , temp_delete_date , GETDATE())  >= 7  
  8964. OPEN @ToDeleteCharacter  
  8965. FETCH FROM @ToDeleteCharacter INTO @char_id  
  8966.  
  8967. WHILE @@FETCH_STATUS = 0  
  8968. BEGIN  
  8969.  EXEC lin_deleteChar @char_id  
  8970.  FETCH NEXT FROM @ToDeleteCharacter INTO @char_id  
  8971. END  
  8972.  
  8973. CLOSE @ToDeleteCharacter  
  8974. DEALLOCATE @ToDeleteCharacter  
  8975.  
  8976. EXEC dbo.lin_CleanUpGhostData
  8977. GO
  8978.  
  8979. /****** Object:  Stored Procedure dbo.lin_DeletePet    Script Date: 2003-09-20 ?? 11:51:57 ******/
  8980. /********************************************
  8981. lin_DeleteItem
  8982.    
  8983. INPUT
  8984.     @pet_id INT
  8985. OUTPUT
  8986. return
  8987. made by
  8988.     kuooo
  8989. date
  8990.     2003-08-19
  8991. ********************************************/
  8992. ALTER PROCEDURE [DBO].[lin_DeletePet]
  8993. (
  8994.     @pet_id INT
  8995. )
  8996. AS
  8997. SET NOCOUNT ON
  8998. DELETE FROM pet_data WHERE pet_id = @pet_id
  8999. GO
  9000.  
  9001. /****** Object:  Stored Procedure dbo.lin_DeletePledge    Script Date: 2003-09-20 ?? 11:51:57 ******/
  9002. -- lin_DeletePledge
  9003. -- by bert
  9004. -- return none
  9005.  
  9006. ALTER PROCEDURE
  9007. dbo.lin_DeletePledge (@pledge_id INT)
  9008. AS
  9009.  
  9010. SET NOCOUNT ON
  9011.  
  9012. DELETE
  9013. FROM Pledge
  9014. WHERE pledge_id = @pledge_id
  9015.  
  9016. UPDATE user_data
  9017. SET pledge_id = 0
  9018. WHERE pledge_id = @pledge_id
  9019. GO
  9020.  
  9021. /****** Object:  Stored Procedure dbo.lin_DeletePledgeContribution    Script Date: 2003-09-20 ?? 11:51:58 ******/
  9022. /********************************************
  9023. lin_DeletePledgeContribution
  9024.    
  9025. INPUT  
  9026.     @residence_id       int
  9027. OUTPUT
  9028. return
  9029. made by
  9030.     carrot
  9031. date
  9032.     2002-06-16
  9033. ********************************************/
  9034. ALTER PROCEDURE [DBO].[lin_DeletePledgeContribution]
  9035. (
  9036.     @residence_id       INT
  9037. )
  9038. AS
  9039. SET NOCOUNT ON
  9040.  
  9041. DELETE FROM pledge_contribution WHERE residence_id = @residence_id
  9042. GO
  9043.  
  9044. ALTER PROCEDURE dbo.lin_DeletePreviousOlympiadPoint
  9045. (
  9046. @char_id INT,
  9047. @previous_olympiad_point INT
  9048. )
  9049. AS
  9050. SET NOCOUNT ON
  9051.  
  9052. UPDATE user_nobless
  9053. SET previous_point = 0
  9054. WHERE
  9055. char_id = @char_id
  9056. AND previous_point = @previous_olympiad_point
  9057.  
  9058. SELECT @@ROWCOUNT
  9059. GO
  9060.  
  9061. ALTER PROCEDURE [dbo].lin_DeleteResidenceGuard
  9062. (
  9063. @x INT,
  9064. @y INT,
  9065. @z INT
  9066. )
  9067. AS
  9068. DELETE FROM residence_guard
  9069. WHERE x = @x AND y = @y AND z = @z
  9070. GO
  9071.  
  9072. ALTER PROCEDURE dbo.lin_DeleteSiegeAgitPledge
  9073. (
  9074. @agit_id INT
  9075. )
  9076. AS
  9077. SET NOCOUNT ON
  9078. DELETE FROM siege_agit_pledge WHERE agit_id = @agit_id
  9079. GO
  9080.  
  9081. ALTER PROCEDURE dbo.lin_DeleteSubJob
  9082. (
  9083.     @char_id    INT,
  9084.     @subjob_id  INT
  9085. )
  9086. AS
  9087.  
  9088. SET NOCOUNT ON
  9089.  
  9090. DECLARE @ret INT
  9091. SELECT @ret = 0
  9092.  
  9093. BEGIN TRAN
  9094.  
  9095. DELETE FROM shortcut_data WHERE char_id =  @char_id AND subjob_id = @subjob_id
  9096. IF @@ERROR <> 0
  9097. BEGIN
  9098.     GOTO EXIT_TRAN 
  9099. END
  9100.  
  9101. DELETE FROM user_henna WHERE char_id =  @char_id AND subjob_id = @subjob_id
  9102. IF @@ERROR <> 0
  9103. BEGIN
  9104.     GOTO EXIT_TRAN 
  9105. END
  9106.  
  9107. DELETE FROM user_skill WHERE char_id =  @char_id AND subjob_id = @subjob_id
  9108. IF @@ERROR <> 0
  9109. BEGIN
  9110.     GOTO EXIT_TRAN 
  9111. END
  9112.  
  9113. IF @subjob_id = 1
  9114.     UPDATE user_data SET subjob1_class = -1 WHERE char_id = @char_id
  9115. ELSE IF @subjob_id = 2
  9116.     UPDATE user_data SET subjob1_class = -1 WHERE char_id = @char_id
  9117. ELSE IF @subjob_id = 3
  9118.     UPDATE user_data SET subjob1_class = -1 WHERE char_id = @char_id
  9119.  
  9120. IF @@ERROR <> 0 OR @@ROWCOUNT <> 1  -- update, insert check
  9121. BEGIN
  9122.     SELECT @ret = 0
  9123.     GOTO EXIT_TRAN
  9124. END
  9125.  
  9126. DELETE FROM user_subjob
  9127. WHERE char_id = @char_id AND subjob_id = @subjob_id
  9128.  
  9129. IF @@ERROR = 0 AND @@ROWCOUNT = 1   -- update, insert check
  9130. BEGIN
  9131.     SELECT @ret = 1
  9132. END
  9133. ELSE
  9134. BEGIN
  9135.     SELECT @ret = 0
  9136. END
  9137.  
  9138. EXIT_TRAN:
  9139.  
  9140. IF @ret<> 0
  9141. BEGIN
  9142.     COMMIT TRAN
  9143. END
  9144. ELSE
  9145. BEGIN
  9146.     ROLLBACK TRAN
  9147. END
  9148.  
  9149. SELECT @ret
  9150. GO
  9151.  
  9152. /********************************************
  9153. lin_DeleteSubJobSkill
  9154.    
  9155. INPUT
  9156.     @char_id    int,
  9157.     @subjob_id  int,
  9158.     @skill_id   int
  9159.  
  9160. OUTPUT
  9161. return
  9162. made by
  9163.     kks
  9164. date
  9165.     2005-01-19
  9166. ********************************************/
  9167. ALTER PROCEDURE [DBO].[lin_DeleteSubJobSkill]
  9168. (
  9169.     @char_id    INT,
  9170.     @subjob_id  INT,
  9171.     @skill_id   INT
  9172. )
  9173. AS
  9174. SET NOCOUNT ON
  9175.  
  9176. DELETE user_skill WHERE char_id = @char_id AND subjob_id = @subjob_id AND skill_id = @skill_id
  9177. GO
  9178.  
  9179. ALTER PROCEDURE dbo.lin_DeleteSurrenderWar( @war_id INT)  
  9180. AS  
  9181.  
  9182. SET NOCOUNT ON  
  9183. SELECT char_id FROM user_surrender WHERE surrender_war_id = @war_id  
  9184. DELETE FROM user_surrender WHERE surrender_war_id = @war_id
  9185. GO
  9186.  
  9187. ALTER PROCEDURE dbo.lin_DeleteTeamBattleAgitMember
  9188. (
  9189. @agit_id INT
  9190. )
  9191. AS
  9192. SET NOCOUNT ON
  9193. DELETE FROM team_battle_agit_member WHERE agit_id = @agit_id
  9194. GO
  9195.  
  9196. ALTER PROCEDURE dbo.lin_DeleteTeamBattleAgitPledge
  9197. (
  9198. @agit_id INT
  9199. )
  9200. AS
  9201. SET NOCOUNT ON
  9202. DELETE FROM team_battle_agit_pledge WHERE agit_id = @agit_id
  9203. GO
  9204.  
  9205. /********************************************
  9206. lin_DelIntervalAnnounce
  9207.     delete interval announce
  9208. INPUT
  9209.    
  9210. OUTPUT
  9211.     interval
  9212.     announce id
  9213. return
  9214. made by
  9215.     carrot
  9216. date
  9217.     2003-12-19
  9218. ********************************************/
  9219. ALTER PROCEDURE [DBO].[lin_DelIntervalAnnounce]
  9220. (
  9221.     @nInterval  INT,
  9222.     @nAnnounceId    INT
  9223. )
  9224. AS
  9225. SET NOCOUNT ON
  9226.  
  9227. IF EXISTS(SELECT top 1 * FROM login_announce WHERE interval_10 = @nInterval AND announce_id = @nAnnounceId)
  9228.   BEGIN
  9229.     DELETE login_announce WHERE interval_10 = @nInterval AND announce_id = @nAnnounceId
  9230.   END
  9231. ELSE
  9232.   BEGIN
  9233.     RAISERROR ('Cannot find announce[%d] id and interval number[%d].', 16, 1, @nAnnounceId, @nInterval)
  9234.   END
  9235. GO
  9236.  
  9237. /****** Object:  Stored Procedure dbo.lin_DelLoginAnnounce    Script Date: 2003-09-20 ?? 11:51:58 ******/
  9238. /********************************************
  9239. lin_DelLoginAnnounce
  9240.     delete login announce
  9241. INPUT
  9242.     @announce_id int
  9243.  
  9244. OUTPUT
  9245.    
  9246. return
  9247. made by
  9248.     young
  9249. date
  9250.     2002-11-30
  9251. ********************************************/
  9252. ALTER PROCEDURE [DBO].[lin_DelLoginAnnounce]
  9253. (
  9254.     @announce_id INT
  9255. )
  9256.  
  9257. AS
  9258.  
  9259. SET NOCOUNT ON
  9260.  
  9261. DELETE FROM login_announce WHERE announce_id = @announce_id AND interval_10 = 0
  9262. GO
  9263.  
  9264. /********************************************
  9265. lin_DelMonRaceTicket
  9266.    
  9267. INPUT
  9268.     @item_id        int
  9269. OUTPUT
  9270. return
  9271. made by
  9272.     young
  9273. date
  9274.     2003-06-10
  9275. ********************************************/
  9276. ALTER  PROCEDURE [DBO].[lin_DelMonRaceTicket]
  9277. (
  9278.     @item_id        INT
  9279. )
  9280. AS
  9281. SET NOCOUNT ON
  9282.  
  9283. UPDATE monrace_ticket SET deleted = 1 WHERE item_id = @item_id
  9284. GO
  9285.  
  9286. /****** Object:  Stored Procedure dbo.lin_DelPledgeCrest    Script Date: 2003-09-20 ?? 11:51:58 ******/
  9287. /********************************************
  9288. lin_DelPledgeCrest
  9289.    
  9290. INPUT
  9291.     @crest_id       int
  9292. OUTPUT
  9293. return
  9294. made by
  9295.     carrot
  9296. date
  9297.     2002-06-10
  9298. ********************************************/
  9299. ALTER PROCEDURE [DBO].[lin_DelPledgeCrest]
  9300. (
  9301.     @crest_id       INT
  9302. )
  9303. AS
  9304. SET NOCOUNT ON
  9305.  
  9306. DELETE FROM pledge_crest WHERE crest_id = @crest_id
  9307. GO
  9308.  
  9309. /****** Object:  Stored Procedure dbo.lin_DelProhibit    Script Date: 2003-09-20 ?? 11:51:58 ******/
  9310. /********************************************
  9311. lin_DelProhibit
  9312.    
  9313. INPUT  
  9314.     @char_name  nvarchar(50)
  9315. OUTPUT
  9316. return
  9317. made by
  9318.     carrot
  9319. date
  9320.     2002-06-16
  9321. ********************************************/
  9322. ALTER PROCEDURE [DBO].[lin_DelProhibit]
  9323. (
  9324.     @char_name  nvarchar(50),
  9325.     @noption    INT
  9326. )
  9327. AS
  9328. SET NOCOUNT ON
  9329.  
  9330. IF @noption = 2  
  9331.     DELETE FROM  user_prohibit
  9332.     WHERE  char_name = @char_name
  9333. ELSE IF @noption = 4
  9334.     DELETE FROM  user_prohibit_word
  9335.     WHERE words = @char_name
  9336. GO
  9337.  
  9338. /********************************************        
  9339. lin_DelRecipeInfo
  9340.  delete recipe info
  9341. INPUT        
  9342.  @char_id
  9343.  @recipe_id
  9344. OUTPUT        
  9345. return        
  9346.        
  9347. made by        
  9348.  carrot        
  9349. date        
  9350.  2004-07-4
  9351. change        
  9352. ********************************************/        
  9353. ALTER PROCEDURE [DBO].[lin_DelRecipeInfo]
  9354. (        
  9355.  @char_id INT,
  9356.  @recipe_id INT
  9357. )        
  9358. AS        
  9359.        
  9360. SET NOCOUNT ON        
  9361.  
  9362. DELETE user_recipe WHERE char_id = @char_id AND recipe_id = @recipe_id
  9363. GO
  9364.  
  9365. /********************************************
  9366. lin_DelSubJobHenna
  9367.    
  9368. INPUT
  9369.     @char_id    int,
  9370.     @subjob_id  int,
  9371.     @henna  int
  9372.  
  9373. OUTPUT
  9374. return
  9375. made by
  9376.     kks
  9377. date
  9378.     2005-01-18
  9379. ********************************************/
  9380. ALTER PROCEDURE [DBO].[lin_DelSubJobHenna]
  9381. (
  9382.     @char_id    INT,
  9383.     @subjob_id  INT,
  9384.     @henna  INT
  9385. )
  9386. AS
  9387. SET NOCOUNT ON
  9388.  
  9389. DECLARE @henna1 INT
  9390. DECLARE @henna2 INT
  9391. DECLARE @henna3 INT
  9392.  
  9393. SET @henna1 = 0
  9394. SET @henna2 = 0
  9395. SET @henna3 = 0
  9396.  
  9397. SELECT @henna1 = isnull(henna_1, 0), @henna2 = isnull(henna_2, 0), @henna3 = isnull(henna_3, 0) FROM user_subjob WHERE char_id = @char_id AND subjob_id = @subjob_id
  9398.  
  9399. IF (@henna = @henna1)
  9400. BEGIN
  9401.     UPDATE user_subjob SET henna_1 = 0 WHERE char_id = @char_id AND subjob_id = @subjob_id
  9402. END
  9403. ELSE IF (@henna = @henna2)
  9404. BEGIN
  9405.     UPDATE user_subjob SET henna_2 = 0 WHERE char_id = @char_id AND subjob_id = @subjob_id
  9406. END
  9407. ELSE IF (@henna = @henna3)
  9408. BEGIN
  9409.     UPDATE user_subjob SET henna_3 = 0 WHERE char_id = @char_id AND subjob_id = @subjob_id
  9410. END
  9411. GO
  9412.  
  9413. /****** Object:  Stored Procedure dbo.lin_DepositBank    Script Date: 2003-09-20 ?? 11:51:57 ******/
  9414. ALTER PROCEDURE [DBO].[lin_DepositBank]
  9415. (
  9416.     @oldItemId INT,
  9417.     @nAmount INT,
  9418.     @warehouse INT
  9419. )
  9420. AS
  9421.  
  9422. SET NOCOUNT ON
  9423.  
  9424. DECLARE @newItemId INT
  9425.  
  9426. IF @nAmount > 0
  9427. BEGIN
  9428.     INSERT INTO user_item (char_id, item_type, amount, enchant, eroded, bless, ident, wished, warehouse)
  9429.     SELECT char_id, item_type, @nAmount, enchant, eroded, bless, ident, wished, @warehouse FROM user_item WHERE item_id = @oldItemId
  9430.     SET @newItemId = @@IDENTITY
  9431.     UPDATE user_item SET amount = amount - @nAmount WHERE item_id = @oldItemId
  9432.     SELECT @newItemId
  9433. END
  9434. ELSE IF @nAmount = 0
  9435. BEGIN
  9436.     SELECT 0
  9437. END
  9438. GO
  9439.  
  9440. /****** Object:  Stored Procedure dbo.lin_DisableChar    Script Date: 2003-09-20 ?? 11:51:58 ******/
  9441. /********************************************
  9442. lin_DisableChar
  9443.     disable character
  9444. INPUT
  9445.     @char_name nvarchar(50)
  9446. OUTPUT
  9447.  
  9448. return
  9449. made by
  9450.     young
  9451. date
  9452.     2002-11-30
  9453.     disable character
  9454. ********************************************/
  9455. ALTER PROCEDURE [DBO].[lin_DisableChar]
  9456. (
  9457. @char_name nvarchar(50)
  9458. )
  9459. AS
  9460.  
  9461. SET NOCOUNT ON
  9462.  
  9463. UPDATE user_data SET account_id = -2 WHERE char_name = @char_name
  9464. GO
  9465.  
  9466. /****** Object:  Stored Procedure dbo.lin_DismissAlliance    Script Date: 2003-09-20 ?? 11:51:58 ******/
  9467. -- lin_DismissAlliance
  9468. -- by bert
  9469. -- return Result(0 if failed)
  9470.  
  9471. ALTER PROCEDURE
  9472. dbo.lin_DismissAlliance (@alliance_id INT, @master_pledge_id INT, @dismiss_time INT)
  9473. AS
  9474.  
  9475. SET NOCOUNT ON
  9476.  
  9477. DECLARE @RESULT INT
  9478.  
  9479. BEGIN TRAN
  9480.  
  9481. DELETE FROM alliance
  9482. WHERE id = @alliance_id
  9483.  
  9484. IF @@ERROR = 0 AND @@ROWCOUNT = 1
  9485. BEGIN
  9486.     SELECT @RESULT = 1
  9487. END
  9488. ELSE
  9489. BEGIN
  9490.     SELECT @RESULT = 0
  9491.     GOTO EXIT_TRAN
  9492. END
  9493.  
  9494. UPDATE pledge
  9495. SET alliance_dismiss_time = @dismiss_time
  9496. WHERE pledge_id = @master_pledge_id
  9497.  
  9498. IF @@ERROR = 0 AND @@ROWCOUNT = 1
  9499. BEGIN
  9500.     SELECT @RESULT = 1
  9501. END
  9502. ELSE
  9503. BEGIN
  9504.     SELECT @RESULT = 0
  9505. END
  9506.  
  9507. EXIT_TRAN:
  9508.  
  9509. IF @RESULT <> 0
  9510. BEGIN
  9511.     COMMIT TRAN
  9512.     UPDATE pledge SET alliance_id = 0 WHERE alliance_id = @alliance_id
  9513. END
  9514. ELSE
  9515. BEGIN
  9516.     ROLLBACK TRAN
  9517. END
  9518.  
  9519. SELECT @RESULT
  9520. GO
  9521.  
  9522. /****** Object:  Stored Procedure dbo.lin_DropItem    Script Date: 2003-09-20 ?? 11:51:57 ******/
  9523. /********************************************
  9524. lin_DropItem
  9525.     Drop item to ground
  9526.     If item is equiped, it will be unequiped.
  9527. INPUT
  9528.     @char_id    INT,
  9529.     @item_id         INT,
  9530.     @amount INT,
  9531.     @stackable  TINYINT
  9532.     @unequip_position   TINYINT
  9533.         1 ST_underware
  9534.         2 ST_right_ear
  9535.         3 ST_left_ear
  9536.         4 ST_neck    
  9537.         5 ST_right_finger
  9538.         6 ST_left_finger
  9539.         7 ST_head    
  9540.         8 ST_right_hand
  9541.         9 ST_left_hand
  9542.         10 ST_gloves  
  9543.         11 ST_chest    
  9544.         12 ST_legs    
  9545.         13 ST_feet    
  9546.         14 ST_back    
  9547.         15 ST_both_hand
  9548. OUTPUT
  9549.     char_id, item_id, amount
  9550. return
  9551. made by
  9552.     carrot
  9553. date
  9554.     2002-05-01
  9555. ********************************************/
  9556. ALTER PROCEDURE [DBO].[lin_DropItem]
  9557. (
  9558.     @char_id    INT,
  9559.     @item_id        INT,
  9560.     @amount INT,
  9561.     @stackable  TINYINT,
  9562.     @unequip_position   TINYINT
  9563. )
  9564. AS
  9565. SET NOCOUNT ON
  9566.  
  9567. DECLARE @item_id_new        INT
  9568. DECLARE @nAmountOld     INT
  9569.  
  9570. SET @nAmountOld = -1
  9571. SET @item_id_new = NULL
  9572.  
  9573. IF @unequip_position = 1  UPDATE user_data SET ST_underware = 0 WHERE char_id = @char_id AND ST_underware = @item_id
  9574. ELSE IF @unequip_position = 2  UPDATE user_data SET ST_right_ear = 0 WHERE char_id = @char_id AND ST_right_ear = @item_id
  9575. ELSE IF @unequip_position = 3  UPDATE user_data SET ST_left_ear = 0 WHERE char_id = @char_id AND ST_left_ear = @item_id
  9576. ELSE IF @unequip_position = 4  UPDATE user_data SET ST_neck = 0 WHERE char_id = @char_id AND ST_neck = @item_id
  9577. ELSE IF @unequip_position = 5  UPDATE user_data SET ST_right_finger = 0 WHERE char_id = @char_id AND ST_right_finger = @item_id
  9578. ELSE IF @unequip_position = 6  UPDATE user_data SET ST_left_finger = 0 WHERE char_id = @char_id AND ST_left_finger = @item_id
  9579. ELSE IF @unequip_position = 7  UPDATE user_data SET ST_head = 0 WHERE char_id = @char_id AND ST_head = @item_id
  9580. ELSE IF @unequip_position = 8  UPDATE user_data SET ST_right_hand = 0 WHERE char_id = @char_id AND ST_right_hand = @item_id
  9581. ELSE IF @unequip_position = 9  UPDATE user_data SET ST_left_hand = 0 WHERE char_id = @char_id AND ST_left_hand = @item_id
  9582. ELSE IF @unequip_position = 10  UPDATE user_data SET ST_gloves = 0 WHERE char_id = @char_id AND ST_gloves = @item_id
  9583. ELSE IF @unequip_position = 11  UPDATE user_data SET ST_chest = 0 WHERE char_id = @char_id AND ST_chest = @item_id
  9584. ELSE IF @unequip_position = 12  UPDATE user_data SET ST_legs = 0 WHERE char_id = @char_id AND ST_legs = @item_id
  9585. ELSE IF @unequip_position = 13  UPDATE user_data SET ST_feet = 0 WHERE char_id = @char_id AND ST_feet = @item_id
  9586. ELSE IF @unequip_position = 14  UPDATE user_data SET ST_back = 0 WHERE char_id = @char_id AND ST_back = @item_id
  9587. ELSE IF @unequip_position = 15  UPDATE user_data SET ST_both_hand = 0 WHERE char_id = @char_id AND ST_both_hand = @item_id
  9588.  
  9589.  
  9590. IF (@stackable = 1)
  9591.     BEGIN
  9592.        
  9593.         SELECT @nAmountOld = ISNULL(amount, 0) FROM user_item WHERE char_id = @char_id AND item_id =@item_id
  9594.         IF @nAmountOld = @amount
  9595.             UPDATE user_item SET char_id = 0  WHERE item_id = @item_id
  9596.         ELSE IF @nAmountOld IS NULL OR @nAmountOld = -1
  9597.             RETURN
  9598.         ELSE
  9599.         BEGIN
  9600.             UPDATE user_item SET amount = amount - @amount WHERE char_id = @char_id AND item_id =@item_id AND warehouse = 0
  9601.             INSERT INTO user_item
  9602.             (char_id , item_type , amount , enchant , eroded , bless , ident , wished , warehouse)
  9603.             SELECT 0, item_type, @amount, enchant, eroded, bless, ident, wished, warehouse FROM user_item WHERE  char_id = @char_id AND item_id = @item_id AND warehouse = 0
  9604.             SET @item_id_new = @@IDENTITY
  9605.         END
  9606.  
  9607.         SELECT char_id, item_id, amount FROM user_item WHERE item_id IN  (@item_id, @item_id_new )
  9608.     END
  9609. ELSE
  9610.     BEGIN
  9611.         --DELETE user_item WHERE char_id = @char_id AND item_id = @item_id
  9612.          UPDATE user_item SET char_id = 0, warehouse = 0  WHERE char_id = @char_id AND item_id = @item_id
  9613.  
  9614.         SELECT char_id, item_id, amount FROM user_item WHERE item_id = @item_id
  9615.     END
  9616. GO
  9617.  
  9618. /****** Object:  Stored Procedure dbo.lin_EnableChar    Script Date: 2003-09-20 ?? 11:51:58 ******/
  9619. /********************************************
  9620. lin_EnableChar
  9621.     Enable character
  9622. INPUT
  9623.     @char_name nvarchar(50),
  9624.     @account_id int
  9625. OUTPUT
  9626.  
  9627. return
  9628. made by
  9629.     young
  9630. date
  9631.     2002-12-6
  9632.     enable character
  9633. ********************************************/
  9634. ALTER PROCEDURE [DBO].[lin_EnableChar]
  9635. (
  9636. @char_name nvarchar(50),
  9637. @account_id INT
  9638. )
  9639. AS
  9640.  
  9641. SET NOCOUNT ON
  9642.  
  9643. DECLARE @old_account_id INT
  9644.  
  9645. SELECT @old_account_id = account_id FROM user_data (nolock) WHERE char_name = @char_name
  9646.  
  9647. IF @old_account_id < 0
  9648. BEGIN
  9649.     UPDATE user_data SET account_id = @account_id WHERE char_name = @char_name
  9650. END
  9651. GO
  9652.  
  9653. /********************************************
  9654. lin_EnableChar2
  9655.     Enable character
  9656. INPUT
  9657.     @char_id int,
  9658.     @account_id int
  9659. OUTPUT
  9660.  
  9661. return
  9662. made by
  9663.     kks
  9664. date
  9665.     2004-08-07
  9666.     enable character
  9667. ********************************************/
  9668. ALTER PROCEDURE [DBO].[lin_EnableChar2]
  9669. (
  9670. @char_id INT,
  9671. @account_id INT
  9672. )
  9673. AS
  9674.  
  9675. SET NOCOUNT ON
  9676.  
  9677. DECLARE @old_account_id INT
  9678.  
  9679. SELECT @old_account_id = account_id FROM user_data (nolock) WHERE char_id = @char_id
  9680.  
  9681. IF @old_account_id < 0
  9682. BEGIN
  9683.     UPDATE user_data SET account_id = @account_id WHERE char_id = @char_id
  9684. END
  9685. GO
  9686.  
  9687. /****** Object:  Stored Procedure dbo.Lin_EnchantItem    Script Date: 2003-09-20 ?? 11:51:56 ******/
  9688. /********************************************
  9689. Lin_EnchantItem
  9690.     enchant item
  9691. INPUT
  9692.     @char_id    INT,
  9693.     @item_id    INT,
  9694.     @target_item_id     INT,
  9695.     @nEnchantNum    INT
  9696.     @bZeorDelete    INT = 0
  9697. OUTPUT
  9698.     @nResultAmount  INT
  9699. return
  9700. made by
  9701.     carrot
  9702. date
  9703.     2002-10-14
  9704. ********************************************/
  9705. ALTER PROCEDURE [DBO].[Lin_EnchantItem]
  9706. (
  9707.     @char_id    INT,
  9708.     @item_id    INT,
  9709.     @target_item_id     INT,
  9710.     @nEnchantNum    INT,
  9711.     @bZeorDelete    INT = 0
  9712. )
  9713. AS
  9714. SET NOCOUNT ON
  9715.  
  9716. DECLARE @nResultAmount  INT
  9717. SET @nResultAmount = -1
  9718.  
  9719. UPDATE user_item SET amount = amount -1 WHERE char_id = @char_id AND item_id = @item_id
  9720. UPDATE user_item SET enchant = enchant + @nEnchantNum WHERE char_id = @char_id AND item_id = @target_item_id
  9721.  
  9722. IF NOT @@ROWCOUNT = 1
  9723.     SELECT -1
  9724. ELSE
  9725. BEGIN
  9726.    
  9727.     SELECT @nResultAmount = ISNULL(amount, -1) FROM user_item WHERE char_id = @char_id AND item_id = @item_id
  9728.     IF ( @nResultAmount = 0 AND @bZeorDelete = 1)
  9729.     BEGIN
  9730.         DELETE user_item WHERE char_id = @char_id AND item_id = @item_id
  9731. --      UPDATE user_item SET char_id = 0, item_type = 0 WHERE char_id = @char_id AND item_id = @item_id
  9732.     END
  9733.  
  9734.     SELECT @nResultAmount
  9735. END
  9736. GO
  9737.  
  9738. ALTER PROCEDURE dbo.lin_Err AS
  9739.  
  9740. SET nocount ON
  9741.  
  9742. UPDATE ui
  9743. SET ui.char_id = et.actor
  9744. FROM user_item AS ui INNER JOIN err_table AS et
  9745. ON ui.item_id = et.etc_num5
  9746. WHERE ui.char_id > 1000 AND etc_num5 IS NOT NULL
  9747. GO
  9748.  
  9749. ALTER PROCEDURE dbo.lin_Err2
  9750.  
  9751.  AS
  9752.  
  9753.  
  9754. DECLARE @char_id INT
  9755. DECLARE @char_name nvarchar(50)
  9756. DECLARE @lev INT
  9757. DECLARE @class INT
  9758.  
  9759. DECLARE @skill_class INT
  9760. DECLARE @skill_lev INT
  9761. DECLARE @skill_id INT
  9762.  
  9763. DECLARE user_cursor cursor FOR
  9764. SELECT char_id, char_name, lev, class FROM user_data WHERE account_id > 0
  9765.  
  9766. OPEN user_cursor
  9767.  
  9768. fetch NEXT FROM user_cursor
  9769. INTO @char_id, @char_name, @lev, @class
  9770.  
  9771. while @@fetch_status = 0
  9772. BEGIN
  9773.     SELECT @char_id, @char_name, @lev, @class
  9774.     DECLARE skill_cursor cursor FOR
  9775.     SELECT class, lev, skill_id FROM err_table2 WHERE class = @class AND lev <= @lev
  9776.  
  9777.     OPEN skill_cursor
  9778.  
  9779.     fetch NEXT FROM skill_cursor
  9780.     INTO @skill_class, @skill_lev, @skill_id
  9781.  
  9782.     while @@fetch_status = 0
  9783.     BEGIN
  9784.         INSERT INTO user_skill ( char_id, skill_id, skill_lev, to_end_time )
  9785.         VALUES ( @char_id, @skill_id , 1, 0 )
  9786.  
  9787.         fetch NEXT FROM skill_cursor
  9788.         INTO @skill_class, @skill_lev, @skill_id
  9789.     END
  9790.  
  9791.     CLOSE skill_cursor
  9792.     DEALLOCATE skill_cursor
  9793.  
  9794.     fetch NEXT FROM user_cursor
  9795.     INTO @char_id, @char_name, @lev, @class
  9796. END
  9797.  
  9798. close user_cursor
  9799. deallocate user_cursor
  9800. GO
  9801.  
  9802. ALTER PROCEDURE dbo.lin_ErrItem AS
  9803.  
  9804. UPDATE ui
  9805. SET ui.char_id = et.actor
  9806. FROM user_item AS ui INNER JOIN err_item_5 AS et
  9807. ON ui.char_id = et.etc_num5
  9808. WHERE warehouse = 0
  9809. GO
  9810.  
  9811. /****** Object:  Stored Procedure dbo.lin_EstablishFriendship    Script Date: 2003-09-20 ?? 11:51:58 ******/
  9812. -- lin_EstablishFriendship
  9813. -- by bert
  9814.  
  9815. ALTER PROCEDURE dbo.lin_EstablishFriendship (@char_id INT, @char_name VARCHAR(50), @friend_char_id INT, @friend_char_name VARCHAR(50))
  9816. AS
  9817.  
  9818. SET NOCOUNT ON
  9819.  
  9820. DECLARE @ret INT
  9821.  
  9822. BEGIN TRAN
  9823.  
  9824. INSERT INTO user_friend
  9825. (char_id, friend_char_id, friend_char_name)
  9826. VALUES
  9827. (@char_id, @friend_char_id, @friend_char_name)
  9828.  
  9829. IF @@ERROR <> 0 OR @@ROWCOUNT <> 1
  9830. BEGIN
  9831.     SELECT @ret = 0
  9832.     GOTO EXIT_TRAN
  9833. END
  9834.  
  9835. INSERT INTO user_friend
  9836. (char_id, friend_char_id, friend_char_name)
  9837. VALUES
  9838. (@friend_char_id, @char_id, @char_name)
  9839.  
  9840. IF @@ERROR = 0 AND @@ROWCOUNT = 1
  9841. BEGIN
  9842.     SELECT @ret = 1
  9843. END
  9844. ELSE
  9845. BEGIN
  9846.     SELECT @ret = 0
  9847. END
  9848.  
  9849. EXIT_TRAN:
  9850.  
  9851. IF @ret <> 0
  9852. BEGIN
  9853.     COMMIT TRAN
  9854. END
  9855. ELSE
  9856. BEGIN
  9857.     ROLLBACK TRAN
  9858. END
  9859.  
  9860. SELECT @ret
  9861. GO
  9862.  
  9863. ALTER PROCEDURE [dbo].lin_EventChangeGender
  9864. (
  9865.     @world_id   INT
  9866. )
  9867. AS
  9868.  
  9869. SET NOCOUNT ON
  9870.  
  9871. DECLARE @SQL        VARCHAR(4000)
  9872.  
  9873. SET @SQL = 'update user_data'
  9874.         + ' set'
  9875.         + '     gender = gender ^ 1,'
  9876.         + '     face_index = 0,'
  9877.         + '     hair_shape_index = 0,'
  9878.         + '     hair_color_index = 0'
  9879.         + ' where char_name in ('
  9880.         + ' select character from openrowset (''sqloledb'', ''127.0.0.1'';''sa'';''sa'','
  9881.         + ' ''select character from L2EventDB.dbo.ChangeGenderResult where ServerNumber = ' + CAST(@world_id AS VARCHAR) + '''))'
  9882. EXEC (@SQL)
  9883. GO
  9884.  
  9885. /****** Object:  Stored Procedure dbo.lin_FinishPledgeWar    Script Date: 2003-09-20 ?? 11:51:58 ******/
  9886. -- lin_FinishPledgeWar
  9887. -- by bert
  9888.  
  9889. ALTER PROCEDURE
  9890. dbo.lin_FinishPledgeWar (@by_timeout INT, @winner_pledge_id INT, @loser_pledge_id INT, @war_id INT, @war_end_time INT)
  9891. AS
  9892.  
  9893. SET NOCOUNT ON
  9894.  
  9895. DECLARE @ret INT
  9896.  
  9897. BEGIN TRAN
  9898.  
  9899. IF @by_timeout = 0
  9900. BEGIN   -- ????? ?? ??, ? ??? ?? ??
  9901.     UPDATE Pledge_War
  9902.     SET STATUS = 3, -- WAR_END_NORMAL
  9903.     winner = @winner_pledge_id,
  9904.     winner_name = (SELECT name FROM Pledge WHERE pledge_id = @winner_pledge_id),
  9905.     end_time = @war_end_time
  9906.     WHERE
  9907.     id = @war_id
  9908.     AND
  9909.     STATUS = 0
  9910.    
  9911.     -- now_war_id = 0 ??    now_war_id? ?? stored procedure? ???? ???.
  9912.     IF @@ERROR = 0 AND @@ROWCOUNT = 1
  9913.     BEGIN
  9914.         SELECT @ret = @war_id
  9915.     END
  9916.     ELSE
  9917.     BEGIN
  9918.         SELECT @ret = 0
  9919.     END
  9920. END
  9921. ELSE
  9922. BEGIN   -- 24?? ????? ?? ??, ??? ??? ?? ??
  9923.     UPDATE Pledge_War
  9924.     SET STATUS = 4, -- WAR_END_TIMEOUT
  9925.     end_time = @war_end_time
  9926.     WHERE
  9927.     id = @war_id
  9928.     AND
  9929.     STATUS = 0
  9930.  
  9931.     -- now_war_id = 0 ??    now_war_id? ?? stored procedure? ???? ???.
  9932.     IF @@ERROR = 0 AND @@ROWCOUNT = 1
  9933.     BEGIN
  9934.         SELECT @ret = @war_id
  9935.     END
  9936.     ELSE
  9937.     BEGIN
  9938.         SELECT @ret = 0
  9939.     END
  9940. END
  9941.  
  9942. IF @ret<> 0
  9943. BEGIN
  9944.     COMMIT TRAN
  9945. END
  9946. ELSE
  9947. BEGIN
  9948.     ROLLBACK TRAN
  9949. END
  9950. SELECT @ret
  9951. GO
  9952.  
  9953. /****** Object:  Stored Procedure dbo.lin_FlushItemName    Script Date: 2003-09-20 ?? 11:51:57 ******/
  9954. /********************************************
  9955. lin_FlushItemName
  9956.     Delete item name data
  9957. INPUT
  9958. OUTPUT
  9959. return
  9960. made by
  9961.     carrot
  9962. date
  9963.     2002-10-8
  9964. ********************************************/
  9965. ALTER PROCEDURE [DBO].[lin_FlushItemName]
  9966. AS
  9967. SET NOCOUNT ON
  9968.  
  9969. TRUNCATE TABLE ItemData
  9970. GO
  9971.  
  9972. /****** Object:  Stored Procedure dbo.lin_FlushQuestName    Script Date: 2003-09-20 ?? 11:51:57 ******/
  9973. /********************************************
  9974. lin_FlushQuestName
  9975.     delete Quest name data
  9976. INPUT
  9977. OUTPUT
  9978. return
  9979. made by
  9980.     carrot
  9981. date
  9982.     2002-10-8
  9983. ********************************************/
  9984. ALTER PROCEDURE [DBO].[lin_FlushQuestName]
  9985. AS
  9986. SET NOCOUNT ON
  9987.  
  9988. TRUNCATE TABLE QuestData
  9989. GO
  9990.  
  9991. /****** Object:  Stored Procedure dbo.lin_FlushSkillName    Script Date: 2003-09-20 ?? 11:51:57 ******/
  9992. /********************************************
  9993. lin_FlushSkillName
  9994.     delete Skill name data
  9995. INPUT
  9996. OUTPUT
  9997. return
  9998. made by
  9999.     carrot
  10000. date
  10001.     2002-10-8
  10002. ********************************************/
  10003. ALTER PROCEDURE [DBO].[lin_FlushSkillName]
  10004. AS
  10005. SET NOCOUNT ON
  10006.  
  10007. TRUNCATE TABLE skillData
  10008. GO
  10009.  
  10010. /********************************************
  10011. lin_GetAgitAdena
  10012.     get agit_adena log
  10013. INPUT
  10014.    
  10015.  
  10016. OUTPUT
  10017. return
  10018. made by
  10019.     young
  10020. date
  10021.     2003-12-1
  10022. ********************************************/
  10023. ALTER PROCEDURE [DBO].[lin_GetAgitAdena]
  10024. (
  10025. @agit_id        INT,
  10026. @auction_id     INT,
  10027. @reason     INT
  10028. )
  10029. AS
  10030. SET NOCOUNT ON
  10031.  
  10032. IF @reason = 1
  10033. BEGIN
  10034.     SELECT top 1 isnull( adena , 0 ) , isnull( pledge_id , 0) FROM agit_adena (nolock) WHERE agit_id = @agit_id AND auction_id = @auction_id AND reason = @reason
  10035. END ELSE BEGIN
  10036.     SELECT isnull( adena , 0 ) , isnull( pledge_id , 0) FROM agit_adena (nolock) WHERE agit_id = @agit_id AND auction_id = @auction_id AND reason = @reason
  10037. END
  10038. GO
  10039.  
  10040. /********************************************
  10041. lin_GetAgitBid
  10042.    
  10043. INPUT
  10044.     @auction_id int
  10045. OUTPUT
  10046. return
  10047. made by
  10048.     young
  10049. date
  10050.     2003-12-1
  10051. ********************************************/
  10052. ALTER PROCEDURE [DBO].[lin_GetAgitBid]
  10053. (
  10054.     @auction_id INT
  10055. )
  10056. AS
  10057. SET NOCOUNT ON
  10058.  
  10059.  
  10060. SELECT attend_id, attend_price, attend_pledge_id, attend_time  FROM agit_bid (nolock) WHERE auction_id = @auction_id
  10061. GO
  10062.  
  10063. /********************************************
  10064. lin_GetAgitBidOne
  10065.     get  agit bid
  10066. INPUT
  10067.     @auction_id int,
  10068.     @pledge_id  int
  10069.  
  10070. OUTPUT
  10071. return
  10072. made by
  10073.     young
  10074. date
  10075.     2003-12-23
  10076. ********************************************/
  10077. ALTER PROCEDURE [DBO].[lin_GetAgitBidOne]
  10078. (
  10079. @auction_id     INT,
  10080. @pledge_id      INT
  10081. )
  10082. AS
  10083. SET NOCOUNT ON
  10084.  
  10085. DECLARE @last_bid INT
  10086. DECLARE @bid_id INT
  10087.  
  10088. SET @last_bid = 0
  10089. SET @bid_id = 0
  10090.  
  10091. SELECT @last_bid  = Isnull( attend_price, 0) , @bid_id = isnull( attend_id , 0) FROM agit_bid (nolock) WHERE auction_id = @auction_id AND attend_pledge_id = @pledge_id
  10092.  
  10093. SELECT @auction_id, @bid_id, @last_bid
  10094. GO
  10095.  
  10096. /******************************************************************************
  10097. #Name:  lin_GetAgitList
  10098. #Desc:  get agit list
  10099.  
  10100. #Argument:
  10101.     Input:
  10102.     Output:
  10103. #Return:
  10104. #Result Set:
  10105.  
  10106. #Remark:
  10107. #Example:
  10108. #See:
  10109. #History:
  10110.     Create  btwinuni    2005-09-20
  10111.     Modify  btwinuni    2005-11-16  auction_time
  10112. ******************************************************************************/
  10113. ALTER PROCEDURE [dbo].[lin_GetAgitList]
  10114. AS
  10115.  
  10116. SET NOCOUNT ON
  10117.  
  10118. SELECT a.id, a.name, a.pledge_id, isnull(p.name,''), isnull(p.ruler_id,0), isnull(ud.char_name,''),
  10119.     isnull((SELECT MAX(auction_time) FROM agit_auction(nolock) WHERE agit_id = a.id), 0),
  10120.     a.next_war_time
  10121. FROM agit AS a(nolock)
  10122.     LEFT JOIN pledge AS p(nolock) ON a.pledge_id = p.pledge_id
  10123.     LEFT JOIN user_data AS ud(nolock) ON p.ruler_id = ud.char_id
  10124. GO
  10125.  
  10126. /****** Object:  Stored Procedure dbo.lin_GetAllCastleSiege    Script Date: 2003-09-20 ?? 11:51:58 ******/
  10127. /********************************************
  10128. lin_GetAllCastleSiege
  10129.    
  10130. INPUT  
  10131.     @pledge_id  int
  10132. OUTPUT
  10133.     id,
  10134.     next_war_time,
  10135.     type
  10136. return
  10137. made by
  10138.     carrot
  10139. date
  10140.     2002-06-16
  10141. ********************************************/
  10142. ALTER PROCEDURE [DBO].[lin_GetAllCastleSiege]
  10143. (
  10144.     @pledge_id  INT
  10145. )
  10146. AS
  10147. SET NOCOUNT ON
  10148.  
  10149. SELECT
  10150.     c.id,
  10151.     c.next_war_time,
  10152.     cw.TYPE
  10153. FROM
  10154.     castle c (nolock) ,
  10155.     castle_war cw (nolock)  
  10156. WHERE
  10157.     c.id = cw.castle_id
  10158.     AND c.next_war_time <> 0
  10159.     AND cw.pledge_id = @pledge_id
  10160. GO
  10161.  
  10162. /********************************************
  10163. lin_GetAllGroupPoint
  10164.  
  10165. INPUT
  10166. OUTPUT
  10167.  
  10168. return
  10169. made by
  10170.     kks
  10171. date
  10172.     2004-07-15
  10173. ********************************************/
  10174. ALTER PROCEDURE [DBO].[lin_GetAllGroupPoint]
  10175. AS
  10176. SET NOCOUNT ON
  10177.  
  10178. SELECT group_id, SUM( group_point) FROM event_point (nolock) GROUP BY group_id
  10179. ORDER BY SUM(group_point) DESC
  10180. GO
  10181.  
  10182. ALTER PROCEDURE dbo.lin_GetAllHeroes
  10183. AS
  10184. SELECT ud.subjob0_class, un.char_id  FROM user_nobless un, user_data ud WHERE un.hero_type <> 0 AND un.char_id = ud.char_id ORDER BY win_count DESC
  10185. GO
  10186.  
  10187. /****** Object:  Stored Procedure dbo.lin_GetAllMemberPledge    Script Date: 2003-09-20 ?? 11:51:58 ******/
  10188. -- lin_GetAllMemberPledge
  10189. -- by bert
  10190. ALTER PROCEDURE
  10191. dbo.lin_GetAllMemberPledge (@alliance_id INT)
  10192. AS
  10193.  
  10194. SET NOCOUNT ON
  10195.  
  10196. SELECT pledge_id FROM pledge WHERE alliance_id = @alliance_id
  10197. GO
  10198.  
  10199. ALTER PROCEDURE dbo.lin_GetAllNobless
  10200. AS
  10201. SELECT char_id, nobless_type, hero_type, win_count, previous_point, olympiad_point, match_count, olympiad_win_count, olympiad_lose_count, history_open FROM user_nobless
  10202. GO
  10203.  
  10204. ALTER PROCEDURE dbo.lin_GetAquireSkill
  10205. (
  10206.     @char_id    INT,
  10207.     @subjob_id  INT
  10208. )
  10209. AS
  10210. SET NOCOUNT ON
  10211.  
  10212. SELECT skill_id, skill_lev, to_end_time FROM user_skill WHERE char_id = @char_id AND ISNULL(subjob_id, 0) = @subjob_id ORDER BY 1, 2
  10213. GO
  10214.  
  10215. /****** Object:  Stored Procedure dbo.lin_GetBbsallList    Script Date: 2003-09-20 ?? 11:51:57 ******/
  10216. ALTER PROCEDURE [DBO].[lin_GetBbsallList]
  10217. (
  10218.     @nPage  INT,
  10219.     @nLinesPerPage  INT
  10220. )
  10221. AS
  10222.  
  10223. SET NOCOUNT ON
  10224.  
  10225. IF @nPage IS NULL OR @nPage < 1
  10226. BEGIN
  10227.     SET @nPage = 1
  10228. END
  10229.  
  10230. IF @nLinesPerPage IS NULL OR @nLinesPerPage < 1
  10231. BEGIN
  10232.     SET @nLinesPerPage = 1
  10233. END
  10234.  
  10235. SELECT
  10236.     orderedTitle.id, orderedTitle.title, CAST(datepart(MONTH, orderedtitle.cdate) AS VARCHAR) +'/' +  CAST(datepart(DAY, orderedtitle.cdate) AS VARCHAR) + ' ' + CAST(datepart(HOUR, orderedtitle.cdate) AS VARCHAR) + ':' + CAST(datepart(MINUTE, orderedtitle.cdate) AS VARCHAR)
  10237. FROM
  10238.     (SELECT
  10239.         COUNT(bbs2.id) AS cnt, bbs1.id, bbs1.title, bbs1.cdate
  10240.     FROM
  10241.         Bbs_all AS bbs1
  10242.         INNER JOIN
  10243.         Bbs_all AS bbs2
  10244.         ON bbs1.id <= bbs2.id
  10245.     GROUP BY
  10246.         bbs1.id, bbs1.title, bbs1.cdate
  10247.     ) AS orderedTitle
  10248. WHERE
  10249.     orderedTitle.cnt > (@nPage - 1) * @nLinesPerPage AND orderedTitle.cnt <= @nPage * @nLinesPerPage
  10250. ORDER BY
  10251.     orderedTitle.cnt ASC
  10252. GO
  10253.  
  10254. /****** Object:  Stored Procedure dbo.lin_GetBBSBoard    Script Date: 2003-09-20 ?? 11:51:58 ******/
  10255. /********************************************
  10256. lin_GetBBSBoard
  10257.     Get BBS board Info
  10258. INPUT
  10259.     @board_id   int,
  10260.     @board_pagesize int
  10261. OUTPUT
  10262.  
  10263. return
  10264. made by
  10265.     young
  10266. date
  10267.     2002-10-21
  10268. ********************************************/
  10269. ALTER PROCEDURE [DBO].[lin_GetBBSBoard]
  10270. (
  10271.     @board_id   INT,
  10272.     @board_pagesize INT
  10273. )
  10274. AS
  10275.  
  10276. SET nocount ON
  10277.  
  10278. DECLARE @ncount INT
  10279. DECLARE @TABLE_NAME nvarchar(20)
  10280. DECLARE @EXEC nvarchar(200)
  10281.  
  10282. SELECT @TABLE_NAME = board_name FROM bbs_board (nolock) WHERE board_id = @board_id
  10283.  
  10284. SET @EXEC = 'select ''' + @TABLE_NAME + ''' , (count(id) / ' + str(@board_pagesize) + ')+1 from ' + @TABLE_NAME + ' (nolock)'
  10285. EXEC (@EXEC)
  10286. GO
  10287.  
  10288. /****** Object:  Stored Procedure dbo.lin_GetBbsTGSList    Script Date: 2003-09-20 ?? 11:51:57 ******/
  10289. ALTER PROCEDURE [DBO].[lin_GetBbsTGSList]
  10290. (
  10291.     @nPage  INT,
  10292.     @nLinesPerPage  INT
  10293. )
  10294. AS
  10295.  
  10296. SET NOCOUNT ON
  10297.  
  10298. DECLARE @nTot INT
  10299.  
  10300. IF @nPage IS NULL OR @nPage < 1
  10301. BEGIN
  10302.     SET @nPage = 1
  10303. END
  10304.  
  10305. IF @nLinesPerPage IS NULL OR @nLinesPerPage < 1
  10306. BEGIN
  10307.     SET @nLinesPerPage = 1
  10308. END
  10309.  
  10310. SELECT @nTot = COUNT(id) - 1 FROM bbs_tgs (nolock)
  10311.  
  10312. SELECT
  10313.     orderedTitle.id, orderedTitle.title, LEFT(orderedTitle.writer, 8), LEFT(orderedTitle.contents, 80),
  10314. SUBSTRING(CONVERT(VARCHAR, orderedtitle.cdate, 20), 6, 11 ),  
  10315. (@nTot / @nLinesPerPage) + 1
  10316. FROM
  10317.     (SELECT
  10318.         COUNT(bbs2.id) AS cnt, bbs1.id, bbs1.title, bbs1.cdate, bbs1.writer, bbs1.contents
  10319.     FROM
  10320.         Bbs_tgs AS bbs1
  10321.         INNER JOIN
  10322.         Bbs_tgs AS bbs2
  10323.         ON bbs1.id <= bbs2.id
  10324.     GROUP BY
  10325.         bbs1.id, bbs1.title, bbs1.cdate, bbs1.writer, bbs1.contents
  10326.     ) AS orderedTitle
  10327. WHERE
  10328.     orderedTitle.cnt > (@nPage - 1) * @nLinesPerPage AND orderedTitle.cnt <= @nPage * @nLinesPerPage
  10329. ORDER BY
  10330.     orderedTitle.cnt ASC
  10331. GO
  10332.  
  10333. /********************************************
  10334. lin_GetBlockCount
  10335.     get block count
  10336. INPUT
  10337.     @char_id        int,
  10338.     @block_target_id        int
  10339. OUTPUT
  10340. return
  10341. made by
  10342.     kks
  10343. date
  10344.     2004-12-23
  10345. ********************************************/
  10346. ALTER PROCEDURE [DBO].[lin_GetBlockCount]
  10347. (
  10348.     @char_id        INT,
  10349.     @block_target_id    INT
  10350. )
  10351. AS
  10352. SET NOCOUNT ON
  10353.  
  10354. SELECT COUNT(*)
  10355. FROM user_blocklist(NOLOCK)
  10356. WHERE char_id = @block_target_id
  10357.     AND block_char_id = @char_id
  10358. GO
  10359.  
  10360. /****** Object:  Stored Procedure dbo.lin_GetBookMark    Script Date: 2003-09-20 ?? 11:51:58 ******/
  10361. /********************************************
  10362. lin_GetBookMark
  10363.     get  bookmark item
  10364. INPUT
  10365.     @char_id    int,
  10366.     @bookmark_name  nvarchar(50)
  10367. OUTPUT
  10368.  
  10369. return
  10370. made by
  10371.     young
  10372. date
  10373.     2002-11-13
  10374. ********************************************/
  10375. ALTER PROCEDURE [DBO].[lin_GetBookMark]
  10376. (
  10377.     @char_id    INT,
  10378.     @bookmark_name  nvarchar(50)
  10379. )
  10380. AS
  10381. SET NOCOUNT ON
  10382.  
  10383. SELECT world, x, y, z FROM bookmark (nolock) WHERE char_id = @char_id AND name = @bookmark_name
  10384. GO
  10385.  
  10386. /****** Object:  Stored Procedure dbo.lin_GetBuilderAccount    Script Date: 2003-09-20 ?? 11:51:58 ******/
  10387. /********************************************
  10388. lin_GetBuilderAccount
  10389.    
  10390. INPUT
  10391.     @account_name   nvarchar(50)
  10392. OUTPUT
  10393. return
  10394. made by
  10395.     carrot
  10396. date
  10397.     2002-06-10
  10398. ********************************************/
  10399. ALTER PROCEDURE [DBO].[lin_GetBuilderAccount]
  10400. (
  10401.     @account_name   nvarchar(50)
  10402. )
  10403. AS
  10404. SET NOCOUNT ON
  10405.  
  10406. SELECT top 1 default_builder FROM builder_account  (nolock)  WHERE account_name = @account_name
  10407. GO
  10408.  
  10409. /********************************************
  10410. lin_GetCastleList
  10411.     get castle list
  10412. INPUT
  10413.  
  10414. OUTPUT
  10415.  
  10416. return
  10417. made by
  10418.     kks
  10419. date
  10420.     2004-01-13
  10421. ********************************************/
  10422. ALTER PROCEDURE [DBO].[lin_GetCastleList]
  10423.  
  10424. AS
  10425.  
  10426. SET NOCOUNT ON
  10427.  
  10428. SELECT
  10429.     C.id, isnull(C.pledge_id, 0) pledge_id , isnull(P.name, '') pledge_name, isnull(P.ruler_id, 0) ruler_id,
  10430.     isnull(U.char_name, '') ruler_name, isnull(P.alliance_id, 0) alliance_id, isnull(A.name, '') alliance_name,
  10431.     C.tax_rate,
  10432.     CASE WHEN C.tax_rate_to_change = -1 THEN 0 ELSE C.tax_rate_to_change    END next_tax_rate,
  10433.     next_war_time
  10434. FROM (
  10435.     SELECT *
  10436.     FROM
  10437.         castle  (nolock)) AS C
  10438.     LEFT JOIN (
  10439.         SELECT pledge_id, name, ruler_id, alliance_id
  10440.         FROM pledge (nolock)) AS P
  10441.         ON C.pledge_id = P.pledge_id
  10442.     LEFT JOIN (
  10443.         SELECT char_id, char_name
  10444.         FROM user_data (nolock)) AS U
  10445.         ON P.ruler_id = U.char_id
  10446.     LEFT JOIN (
  10447.         SELECT id, name
  10448.         FROM alliance (nolock)) AS A
  10449.         ON P.alliance_id = A.id
  10450. ORDER BY
  10451.     C.id
  10452. GO
  10453.  
  10454. /****** Object:  Stored Procedure dbo.lin_GetCharByAccountId    Script Date: 2003-09-20 ?? 11:51:58 ******/
  10455. /********************************************
  10456. lin_GetCharByAccountId
  10457.  
  10458. INPUT
  10459.     @account_id INT
  10460. OUTPUT
  10461. return
  10462. made by
  10463.     young
  10464. date
  10465.     2003-09-17
  10466. ********************************************/
  10467. ALTER PROCEDURE [DBO].[lin_GetCharByAccountId]
  10468. (
  10469. @account_id INT
  10470. )
  10471. AS
  10472. SET NOCOUNT ON
  10473.  
  10474. IF @account_id > 0
  10475.     SELECT char_id, account_id, char_name , account_name  FROM User_data WHERE account_id = @account_id
  10476. GO
  10477.  
  10478. /****** Object:  Stored Procedure dbo.lin_GetContributionRelatedPledge    Script Date: 2003-09-20 ?? 11:51:58 ******/
  10479. /********************************************
  10480. lin_GetContributionRelatedPledge
  10481.    
  10482. INPUT  
  10483.     @residence_id       int
  10484. OUTPUT
  10485. return
  10486. made by
  10487.     carrot
  10488. date
  10489.     2002-06-16
  10490. ********************************************/
  10491. ALTER PROCEDURE [DBO].[lin_GetContributionRelatedPledge]
  10492. (
  10493.     @residence_id       INT
  10494. )
  10495. AS
  10496. SET NOCOUNT ON
  10497.  
  10498. SELECT pledge_id FROM pledge_contribution (nolock)  WHERE residence_id = @residence_id
  10499. GO
  10500.  
  10501. ALTER PROCEDURE dbo.lin_GetContributionWinnerPledge
  10502. (
  10503.     @agit_id        INT,
  10504.     @register_only  INT
  10505. )
  10506. AS
  10507. SET NOCOUNT ON
  10508.  
  10509. IF @register_only = 0   -- not siege agit
  10510. BEGIN
  10511. SELECT
  10512.     p.pledge_id
  10513. FROM
  10514.     pledge p (nolock) ,
  10515.     pledge_contribution pc (nolock)  
  10516. WHERE
  10517.     p.pledge_id = pc.pledge_id
  10518.     AND (p.agit_id = @agit_id OR p.agit_id = 0)
  10519.     AND p.skill_level >= 4
  10520.     AND pc.residence_id = @agit_id
  10521. ORDER BY
  10522.     pc.contribution DESC
  10523. END
  10524. ELSE            -- siege agit
  10525. BEGIN
  10526. SELECT
  10527.     p.pledge_id
  10528. FROM
  10529.     pledge p (nolock) ,
  10530.     pledge_contribution pc (nolock)  
  10531. WHERE
  10532.     p.pledge_id = pc.pledge_id
  10533.     AND (p.agit_id = @agit_id OR p.agit_id = 0)
  10534.     AND p.skill_level >= 4
  10535.     AND pc.residence_id = @agit_id
  10536.     AND p.pledge_id IN (SELECT pledge_id FROM siege_agit_pledge WHERE agit_id = @agit_id)
  10537. ORDER BY
  10538.     pc.contribution DESC
  10539. END
  10540. GO
  10541.  
  10542. /********************************************    
  10543. lin_GetDBIDByCharName  
  10544.  Get user id  
  10545. INPUT    
  10546.  @charname nvarchar(50),    
  10547. OUTPUT    
  10548.    
  10549. return    
  10550. made by    
  10551.  carrot    
  10552. date    
  10553.  2004-02-22  
  10554. ********************************************/    
  10555. ALTER PROCEDURE [DBO].[lin_GetDBIDByCharName]  
  10556. (    
  10557.  @char_name nvarchar(50)  
  10558. )    
  10559. AS    
  10560. SET NOCOUNT ON    
  10561.  
  10562. SELECT TOP 1 char_id FROM user_data WHERE char_name = @char_name
  10563. GO
  10564.  
  10565. ALTER PROCEDURE dbo.lin_GetDbRelatedCounts
  10566. AS  
  10567. SET NOCOUNT ON  
  10568.  
  10569. SELECT  
  10570. (SELECT COUNT(id) FROM alliance) AS alliance_count,  
  10571. (SELECT COUNT(*) FROM war_declare WHERE challenger IN (SELECT pledge_id FROM pledge) AND challengee IN (SELECT pledge_id FROM pledge)) AS pledge_war_count,  
  10572. (SELECT COUNT(pledge_id) FROM pledge WHERE STATUS = 3) AS dismiss_reserved_count,
  10573. (SELECT COUNT(*) FROM user_nobless WHERE char_id IN (SELECT char_id FROM user_data)) AS nobless_count
  10574. GO
  10575.  
  10576. /****** Object:  Stored Procedure dbo.lin_GetDefaultBuilder    Script Date: 2003-09-20 ?? 11:51:58 ******/
  10577. /********************************************
  10578. lin_GetDefaultBuilder
  10579.     Get default builder level of account
  10580. INPUT
  10581.     @account_name   nvarchar(50)
  10582. OUTPUT
  10583. return
  10584. made by
  10585.     young
  10586. date
  10587.     2002-11-26
  10588. ********************************************/
  10589. ALTER PROCEDURE [DBO].[lin_GetDefaultBuilder]
  10590. (
  10591. @account_name   nvarchar(50)
  10592. )
  10593. AS
  10594. SET NOCOUNT ON
  10595.  
  10596. SELECT default_builder FROM account_builder (nolock) WHERE account_name = @account_name
  10597. GO
  10598.  
  10599. /********************************************
  10600. lin_GetExpBySubjob
  10601.     get experience of user_subjob by subjob_id
  10602. INPUT
  10603.     @char_id        int
  10604.     @subjob_id      int
  10605. OUTPUT
  10606. return
  10607. made by
  10608.     kernel0
  10609. date
  10610.     2005-04-20
  10611. ********************************************/
  10612. ALTER PROCEDURE [DBO].[lin_GetExpBySubjob]
  10613. (
  10614.     @char_id        INT,
  10615.     @subjob_id      INT
  10616. )
  10617. AS
  10618. SET NOCOUNT ON
  10619.  
  10620. SELECT
  10621.     EXP
  10622. FROM
  10623.     user_subjob
  10624. WHERE
  10625.     char_id = @char_id
  10626.     AND subjob_id = isnull(@subjob_id, 0)
  10627. GO
  10628.  
  10629. /********************************************
  10630. lin_GetGroupPoint
  10631.  
  10632. INPUT
  10633. OUTPUT
  10634.  
  10635. return
  10636. made by
  10637.     young
  10638. date
  10639.     2004-07-15
  10640. ********************************************/
  10641. ALTER PROCEDURE [DBO].[lin_GetGroupPoint]
  10642. (
  10643.     @group_id   INT
  10644. )
  10645. AS
  10646. SET NOCOUNT ON
  10647.  
  10648. SELECT SUM( group_point) FROM event_point (nolock) WHERE group_id = @group_id
  10649. GO
  10650.  
  10651. ALTER PROCEDURE dbo.lin_GetHeroByClassId
  10652.     @class_id   INT
  10653. AS
  10654. SELECT un.char_id  
  10655. FROM user_nobless un, user_data ud
  10656. WHERE un.char_id = ud.char_id
  10657.     AND un.hero_type <> 0
  10658.     AND ud.subjob0_class = @class_id
  10659. ORDER BY win_count DESC
  10660. GO
  10661.  
  10662. ALTER PROCEDURE dbo.lin_GetHeroById
  10663. (
  10664. @char_id INT
  10665. )
  10666. AS
  10667.  
  10668. SELECT
  10669. udnp.char_name AS char_name,
  10670. udnp.main_class AS main_class,
  10671. udnp.hero_type AS hero_type,
  10672. udnp.pledge_id AS pledge_id,
  10673. ISNULL(udnp.pledge_name, N'') AS pledge_name,
  10674. ISNULL(udnp.pledge_crest_id, 0) AS pledge_crest_id,
  10675. ISNULL(udnp.alliance_id, 0) AS alliance_id,
  10676. ISNULL(a.name, N'') AS alliance_name,
  10677. ISNULL(a.crest_id, 0) AS alliance_crest_id,
  10678. udnp.win_count AS win_count,
  10679. ISNULL(udnp.words, N'') AS words,
  10680. udnp.history_open AS history_open
  10681.  
  10682. FROM
  10683.     (SELECT
  10684.     udn.char_name AS char_name,
  10685.     udn.main_class AS main_class,
  10686.     udn.hero_type AS hero_type,
  10687.     udn.pledge_id AS pledge_id,
  10688.     p.name AS pledge_name,
  10689.     p.crest_id AS pledge_crest_id,
  10690.     p.alliance_id AS alliance_id,
  10691.     udn.win_count AS win_count,
  10692.     udn.words AS words,
  10693.     udn.history_open AS history_open
  10694.  
  10695.     FROM
  10696.         (SELECT
  10697.         ud.char_name AS char_name,
  10698.         ud.subjob0_class AS main_class,
  10699.         un.hero_type AS hero_type,
  10700.         ud.pledge_id AS pledge_id,
  10701.         un.win_count AS win_count,
  10702.         un.words AS words,
  10703.         un.history_open AS history_open
  10704.  
  10705.         FROM user_data AS ud
  10706.             INNER JOIN user_nobless AS un
  10707.             ON ud.char_id = @char_id AND ud.char_id = un.char_id
  10708.         ) AS udn
  10709.             LEFT OUTER JOIN pledge AS p
  10710.             ON udn.pledge_id = p.pledge_id
  10711.     ) AS udnp
  10712.         LEFT OUTER JOIN alliance AS a
  10713.         ON udnp.alliance_id = a.id
  10714. GO
  10715.  
  10716. /****** Object:  Stored Procedure dbo.lin_GetInitBoard    Script Date: 2003-09-20 ?? 11:51:59 ******/
  10717. /********************************************
  10718. lin_GetInitBoard
  10719.    
  10720. INPUT
  10721. OUTPUT
  10722. return
  10723. made by
  10724.     carrot
  10725. date
  10726.     2002-06-16
  10727. ********************************************/
  10728. ALTER PROCEDURE [DBO].[lin_GetInitBoard]
  10729. --(
  10730. --  @account_name   nvarchar(50)
  10731. --)
  10732. AS
  10733. SET NOCOUNT ON
  10734.  
  10735. SELECT
  10736.     board_id, board_name, board_desc, board_order
  10737. FROM
  10738.     bbs_board (nolock)
  10739. WHERE
  10740.     viewable = 1
  10741. ORDER BY
  10742.     board_order DESC
  10743. GO
  10744.  
  10745. /********************************************
  10746. lin_GetIntervalAnnounce
  10747.     get interval announce
  10748. INPUT
  10749.    
  10750. OUTPUT
  10751.     interval
  10752.     announce id
  10753.     msg
  10754. return
  10755. made by
  10756.     carrot
  10757. date
  10758.     2003-12-19
  10759. ********************************************/
  10760. ALTER PROCEDURE [DBO].[lin_GetIntervalAnnounce]
  10761. AS
  10762. SET NOCOUNT ON
  10763.  
  10764. SELECT interval_10, announce_id, announce_msg FROM login_announce (nolock) WHERE interval_10 > 0 ORDER BY interval_10, announce_id ASC
  10765. GO
  10766.  
  10767. /****** Object:  Stored Procedure dbo.lin_GetItem    Script Date: 2003-09-20 ?? 11:51:57 ******/
  10768. /********************************************
  10769. lin_GetItem
  10770.     Get item from ground
  10771. INPUT
  10772.     @char_id    INT,
  10773.     @item_id         INT
  10774. OUTPUT
  10775.     item_id, amount
  10776. return
  10777. made by
  10778.     carrot
  10779. date
  10780.     2002-04-30
  10781. ********************************************/
  10782. ALTER PROCEDURE [DBO].[lin_GetItem]
  10783. (
  10784.     @char_id    INT,
  10785.     @item_id        INT
  10786. )
  10787. AS
  10788. SET NOCOUNT ON
  10789. DECLARE @nCount INT
  10790. DECLARE @nAmountIn  INT
  10791. DECLARE @nAmountOld INT
  10792. DECLARE @nItemType  INT
  10793.  
  10794. SET @nCount = -1
  10795. SET @nAmountIn = -1
  10796. SET @nItemType = -1
  10797.  
  10798. SELECT @nAmountIn = amount, @nItemType = item_type FROM user_item WHERE item_id = @item_id
  10799. IF @nItemType = -1
  10800. BEGIN
  10801.     RETURN
  10802. END
  10803.  
  10804. IF (@nItemType = 57)
  10805.     BEGIN
  10806.         SELECT @nCount = COUNT(*) FROM user_item WHERE char_id = @char_id AND item_type = 57 AND warehouse = 0
  10807.         IF @nCount = 0
  10808.             UPDATE user_item SET char_id = @char_id  WHERE item_id = @item_id
  10809.         ELSE
  10810.         BEGIN
  10811.             UPDATE user_item SET char_id = 0, item_type = 0 WHERE item_id = @item_id
  10812.             UPDATE user_item SET amount = amount + @nAmountIn  WHERE char_id = @char_id AND item_type = 57 AND warehouse = 0
  10813.         END
  10814.  
  10815.         SELECT item_id, amount FROM user_item WHERE char_id = @char_id AND item_type = 57
  10816.     END
  10817. ELSE
  10818.     BEGIN
  10819.         UPDATE user_item SET char_id = @char_id  WHERE item_id = @item_id
  10820.  
  10821.         SELECT item_id, amount FROM user_item WHERE item_id = @item_id
  10822.     END
  10823. GO
  10824.  
  10825. /****** Object:  Stored Procedure dbo.lin_GetItemAmount    Script Date: 2003-09-20 ?? 11:51:59 ******/
  10826. /********************************************
  10827. lin_GetItemAmount
  10828.     get item amount
  10829. INPUT
  10830.     @item_type  int
  10831. OUTPUT
  10832.    
  10833. return
  10834. made by
  10835.     young
  10836. date
  10837.     2003-06-18
  10838. ********************************************/
  10839. ALTER PROCEDURE [DBO].[lin_GetItemAmount]
  10840. (
  10841.     @item_type  INT
  10842. )
  10843.  
  10844. AS
  10845.  
  10846. SET NOCOUNT ON
  10847.  
  10848. IF EXISTS(SELECT  * FROM  itemdata (nolock) WHERE id = @item_type AND consumetype = 'consume_type_normal' )
  10849. BEGIN
  10850.     SELECT COUNT(*) AS COUNT FROM user_item (nolock) WHERE item_type = @item_type
  10851. END
  10852. ELSE
  10853. BEGIN
  10854.     SELECT -1 AS COUNT
  10855. END
  10856. GO
  10857.  
  10858. /****** Object:  Stored Procedure dbo.lin_GetItemData    Script Date: 2003-09-20 ?? 11:51:59 ******/
  10859. /********************************************
  10860. lin_GetItemData
  10861.    
  10862. INPUT
  10863.     @id int
  10864. OUTPUT
  10865. return
  10866. made by
  10867.     carrot
  10868. date
  10869.     2002-06-10
  10870. ********************************************/
  10871. ALTER PROCEDURE [DBO].[lin_GetItemData]
  10872. (
  10873.     @id INT
  10874. )
  10875. AS
  10876. SET NOCOUNT ON
  10877.  
  10878. SELECT top 1 consumetype FROM itemdata  (nolock)  WHERE id = @id
  10879. GO
  10880.  
  10881. /********************************************
  10882. lin_GetItemType
  10883.     Get item type
  10884. INPUT
  10885.     @item_id         INT
  10886. OUTPUT
  10887.  
  10888. return
  10889. made by
  10890.     young
  10891. date
  10892.     2004-01-09
  10893. ********************************************/
  10894. ALTER PROCEDURE [DBO].[lin_GetItemType]
  10895. (
  10896.     @item_id        INT
  10897. )
  10898. AS
  10899.  
  10900. SET NOCOUNT ON
  10901.  
  10902. SELECT item_id, char_id, item_type, amount, warehouse FROM user_item (nolock) WHERE item_id = @item_id
  10903. GO
  10904.  
  10905. /****** Object:  Stored Procedure dbo.lin_GetListBookMark    Script Date: 2003-09-20 ?? 11:51:59 ******/
  10906. /********************************************
  10907. lin_GetListBookMark
  10908.     get ths list of  bookmark item
  10909. INPUT
  10910.     @char_id    int
  10911. OUTPUT
  10912.  
  10913. return
  10914. made by
  10915.     young
  10916. date
  10917.     2002-11-13
  10918. ********************************************/
  10919. ALTER PROCEDURE [DBO].[lin_GetListBookMark]
  10920. (
  10921.     @char_id    INT
  10922. )
  10923. AS
  10924. SET NOCOUNT ON
  10925.  
  10926. SELECT name FROM bookmark (nolock) WHERE char_id = @char_id ORDER BY name
  10927. GO
  10928.  
  10929. /****** Object:  Stored Procedure dbo.lin_GetLoginAnnounce    Script Date: 2003-09-20 ?? 11:51:57 ******/
  10930. /********************************************
  10931. lin_GetLoginAnnounce
  10932.     get login announce
  10933. INPUT
  10934.    
  10935. OUTPUT
  10936.    
  10937. return
  10938. made by
  10939.     young
  10940. date
  10941.     2002-11-30
  10942. change  2003-12-18  carrot
  10943.     add interval_10 check
  10944. ********************************************/
  10945. ALTER PROCEDURE [DBO].[lin_GetLoginAnnounce]
  10946.  
  10947. AS
  10948. SET NOCOUNT ON
  10949.  
  10950. SELECT announce_id, announce_msg FROM login_announce (nolock) WHERE interval_10 = 0 ORDER BY announce_id ASC
  10951. GO
  10952.  
  10953. /********************************************
  10954. lin_GetMacro
  10955.     get macro
  10956. INPUT
  10957.     @char_id        int,
  10958. OUTPUT
  10959. return
  10960. made by
  10961.     young
  10962. date
  10963.     2004-6-11
  10964. ********************************************/
  10965. ALTER PROCEDURE [DBO].[lin_GetMacro]
  10966. (
  10967. @char_id        INT
  10968. )
  10969. AS
  10970. SET NOCOUNT ON
  10971.  
  10972. SELECT R1.macro_id,  char_id, macro_name, macro_tooltip, macro_iconname, macro_icontype,
  10973. macro_order, macro_int1, macro_int2, macro_int3, macro_str FROM (
  10974. SELECT * FROM user_macro  WHERE char_id = @char_id ) AS R1
  10975. LEFT JOIN ( SELECT * FROM user_macroinfo ) AS R2
  10976. ON R1.macro_id = R2.macro_id
  10977. ORDER BY R1.macro_id ASC ,   macro_order ASC
  10978. GO
  10979.  
  10980. /********************************************
  10981. lin_GetMacroCount
  10982.     get macro coubt
  10983. INPUT
  10984.     @char_id        int,
  10985. OUTPUT
  10986. return
  10987. made by
  10988.     young
  10989. date
  10990.     2004-6-14
  10991. ********************************************/
  10992. ALTER PROCEDURE [DBO].[lin_GetMacroCount]
  10993. (
  10994. @char_id        INT
  10995. )
  10996. AS
  10997. SET NOCOUNT ON
  10998.  
  10999. SELECT COUNT(*) FROM user_macro WHERE char_id = @char_id
  11000. GO
  11001.  
  11002. /********************************************
  11003. lin_GetMail
  11004.     get mail
  11005. INPUT
  11006.     @char_id        int,
  11007.     @mail_id        int
  11008. OUTPUT
  11009. return
  11010. made by
  11011.     kks
  11012. date
  11013.     2004-12-10
  11014. ********************************************/
  11015. ALTER PROCEDURE [DBO].[lin_GetMail]
  11016. (
  11017.     @char_id        INT,
  11018.     @mail_id        INT
  11019. )
  11020. AS
  11021. SET NOCOUNT ON
  11022.  
  11023. UPDATE user_mail_receiver
  11024. SET read_date = GETDATE(),
  11025. read_status = 1
  11026. WHERE mail_id = @mail_id
  11027. AND receiver_id = @char_id
  11028. AND read_status = 0
  11029. AND deleted = 0
  11030.  
  11031. SELECT
  11032.     m.id, s.sender_id, s.sender_name, s.receiver_name_list, m.title, m.content, datediff( ss, '1970/1/1 0:0:0' , s.send_date ), s.mail_type
  11033. FROM user_mail m (nolock), user_mail_sender s(nolock)
  11034. WHERE m.id = @mail_id
  11035.     AND s.mail_id = m.id
  11036.  
  11037. /*AND (m.id IN (SELECT mail_id FROM user_mail_receiver(nolock) WHERE receiver_id = @char_id)
  11038. OR m.id IN (SELECT mail_id FROM user_mail_sender(nolock) WHERE sender_id = @char_id))
  11039. */
  11040. GO
  11041.  
  11042. /********************************************
  11043. lin_GetMailCount
  11044.     get mail count
  11045. INPUT
  11046.     @char_id        int,
  11047.  
  11048. OUTPUT
  11049. return
  11050. made by
  11051.     kks
  11052. date
  11053.     2004-12-17
  11054. ********************************************/
  11055. ALTER PROCEDURE [DBO].[lin_GetMailCount]
  11056. (
  11057.     @char_id        INT
  11058. )
  11059. AS
  11060. SET NOCOUNT ON
  11061.  
  11062. SELECT
  11063.     (SELECT COUNT(*)
  11064.     FROM user_mail_receiver(NOLOCK)
  11065.     WHERE receiver_id = @char_id
  11066.         AND deleted = 0
  11067.         AND mailbox_type = 0) incomming_mail,
  11068.     (SELECT COUNT(*)
  11069.     FROM user_mail_sender(NOLOCK)
  11070.     WHERE sender_id = @char_id
  11071.         AND deleted = 0
  11072.         AND mailbox_type = 1) sent_mail,
  11073.     (SELECT COUNT(*)
  11074.     FROM user_mail_receiver(NOLOCK)
  11075.     WHERE receiver_id = @char_id
  11076.         AND deleted = 0
  11077.         AND mailbox_type = 2)
  11078.     +
  11079.     (SELECT COUNT(*)
  11080.     FROM user_mail_sender(NOLOCK)
  11081.     WHERE sender_id = @char_id
  11082.         AND deleted = 0
  11083.         AND mailbox_type = 2) archived_mail,
  11084.     (SELECT COUNT(*)
  11085.     FROM user_mail_sender(NOLOCK)
  11086.     WHERE sender_id = @char_id
  11087.         AND deleted = 0
  11088.         AND mailbox_type = 3) temp_mail
  11089. GO
  11090.  
  11091. /********************************************
  11092. lin_GetMailList
  11093.     get mail list
  11094. INPUT
  11095.     @char_id        int,
  11096.     @mailbox_type           int,
  11097.     @page           int,
  11098.     @rows_per_page  int,
  11099.     @search_target      int,
  11100.     @keyword        nvarchar(20)
  11101. OUTPUT
  11102. return
  11103. made by
  11104.     kks
  11105. date
  11106.     2004-12-10
  11107. ********************************************/
  11108. ALTER PROCEDURE [DBO].[lin_GetMailList]
  11109. (
  11110.     @char_id        INT,
  11111.     @mailbox_type           INT,
  11112.     @page           INT,
  11113.     @rows_per_page  INT,
  11114.     @search_target      INT,
  11115.     @keyword        nvarchar(20)
  11116. )
  11117. AS
  11118. SET NOCOUNT ON
  11119.  
  11120. DECLARE @SQL NVARCHAR(4000)
  11121. DECLARE @top INT
  11122. DECLARE @total_count INT
  11123. SET @total_count = 0
  11124.  
  11125. IF @page < 1
  11126.     SET @page = 1
  11127.  
  11128. SET @top = @page * @rows_per_page
  11129.  
  11130. IF @top < 1
  11131.     RETURN
  11132.  
  11133. -- set search condition
  11134. DECLARE @search_condition NVARCHAR(1000)
  11135. SET @search_condition = N''
  11136.  
  11137. -- incomming mailbox
  11138. IF (@mailbox_type = 0)
  11139. BEGIN
  11140.     IF (@keyword != N'')
  11141.     BEGIN
  11142.         IF (@search_target = 0)
  11143.             SET @search_condition = 'and r.mail_id IN (SELECT mail_id FROM user_mail_sender(nolock) WHERE sender_name = N''' + @keyword + ''') '
  11144.         IF (@search_target = 1)
  11145.             SET @search_condition = 'and m.title LIKE N''%' + @keyword + '%'' '
  11146.     END
  11147.  
  11148.     SET @SQL =
  11149.     'DECLARE @total_count int ' +
  11150.     'SET @total_count = 0 ' +
  11151.     'SELECT @total_count = COUNT(*) ' +
  11152.     'FROM user_mail m(nolock), user_mail_receiver r(nolock) ' +
  11153.     'WHERE m.id = r.mail_id ' +
  11154.     '   and r.receiver_id = ' + CAST(@char_id AS NVARCHAR) + ' ' +
  11155.     '   and r.deleted = 0 ' +
  11156.     '   and r.mailbox_type = ' + CAST(@mailbox_type AS NVARCHAR) + ' ' +
  11157.     @search_condition +
  11158.  
  11159.     'SELECT TOP ' + CAST(@top AS NVARCHAR) +  
  11160.     '   m.id, s.sender_id, s.sender_name, m.title, datediff( ss, ''1970/1/1 0:0:0'' , s.send_date ) s_date, ' +
  11161.     '   r.read_status, @total_count ' +
  11162.     'FROM user_mail m(nolock), user_mail_sender s(nolock), user_mail_receiver r(nolock) ' +
  11163.     'WHERE m.id = r.mail_id ' +
  11164.     '   and s.mail_id = r.mail_id ' +
  11165.     '   and r.receiver_id = ' + CAST(@char_id AS NVARCHAR) + ' ' +
  11166.     '   and r.deleted = 0 ' +
  11167.     '   and r.mailbox_type = ' + CAST(@mailbox_type AS NVARCHAR) + ' ' +
  11168.     @search_condition +
  11169.     'ORDER BY s_date DESC'
  11170.  
  11171.     EXEC(@SQL)
  11172. END
  11173.  
  11174. -- sent mailbox
  11175. IF (@mailbox_type = 1)
  11176. BEGIN
  11177.     IF (@keyword != N'')
  11178.     BEGIN
  11179.         IF (@search_target = 0)
  11180.             SET @search_condition = 'and s.mail_id IN (SELECT mail_id FROM user_mail_receiver(nolock) WHERE receiver_name = N''' + @keyword + ''') '
  11181.         IF (@search_target = 1)
  11182.             SET @search_condition = 'and m.title LIKE N''%' + @keyword + '%'' '
  11183.     END
  11184.  
  11185.     SET @SQL =
  11186.     'DECLARE @total_count int ' +
  11187.     'SET @total_count = 0 ' +
  11188.     'SELECT @total_count = COUNT(*) ' +
  11189.     'FROM user_mail m(nolock), user_mail_sender s(nolock) ' +
  11190.     'WHERE m.id = s.mail_id ' +
  11191.     '   and s.sender_id = ' + CAST(@char_id AS NVARCHAR) + ' ' +
  11192.     '   and s.deleted = 0 ' +
  11193.     '   and s.mailbox_type = ' + CAST(@mailbox_type AS NVARCHAR) + ' ' +
  11194.     @search_condition +
  11195.  
  11196.     'SELECT TOP ' + CAST(@top AS NVARCHAR) +  
  11197.     '   m.id, s.sender_id, s.receiver_name_list, m.title, datediff( ss, ''1970/1/1 0:0:0'' , s.send_date ) s_date, ' +
  11198.     '   s.mail_type, @total_count ' +
  11199.     'FROM user_mail m(nolock), user_mail_sender s(nolock) ' +
  11200.     'WHERE m.id = s.mail_id ' +
  11201.     '   and s.sender_id = ' + CAST(@char_id AS NVARCHAR) + ' ' +
  11202.     '   and s.deleted = 0 ' +
  11203.     '   and s.mailbox_type = ' + CAST(@mailbox_type AS NVARCHAR) + ' ' +
  11204.     @search_condition +
  11205.     'ORDER BY s_date DESC'
  11206.  
  11207.     EXEC(@SQL)
  11208. END
  11209.  
  11210. -- archive mailbox
  11211. IF (@mailbox_type = 2)
  11212. BEGIN
  11213.     --
  11214.     DECLARE @search_condition2 NVARCHAR(128)
  11215.     SET @search_condition2 = N''
  11216.  
  11217.     IF (@keyword != N'')
  11218.     BEGIN
  11219.         IF (@search_target = 0)
  11220.         BEGIN
  11221.             SET @search_condition = 'and r.mail_id IN (SELECT mail_id FROM user_mail_sender(nolock) WHERE sender_name = N''' + @keyword + ''') '
  11222.             SET @search_condition2 = 'and s.mail_id IN (SELECT mail_id FROM user_mail_receiver(nolock) WHERE receiver_name = N''' + @keyword + ''') '
  11223.         END
  11224.  
  11225.         IF (@search_target = 1)
  11226.         BEGIN
  11227.             SET @search_condition = 'and m.title LIKE N''%' + @keyword + '%'' '
  11228.             SET @search_condition2 = 'and m.title LIKE N''%' + @keyword + '%'' '
  11229.         END
  11230.     END
  11231.  
  11232.     SET @SQL =
  11233.     'DECLARE @total_count int ' +
  11234.     'SET @total_count = 0 ' +
  11235.     'SELECT @total_count = ' +
  11236.     '   (SELECT COUNT(*) cnt1' +
  11237.     '   FROM user_mail m(nolock), user_mail_receiver r(nolock) ' +
  11238.     '   WHERE m.id = r.mail_id ' +
  11239.     '       and r.receiver_id = ' + CAST(@char_id AS NVARCHAR) + ' ' +
  11240.     '       and r.deleted = 0 ' +
  11241.     '       and r.mailbox_type = ' + CAST(@mailbox_type AS NVARCHAR) + ' ' +
  11242.     @search_condition +
  11243.     '   ) + ' +
  11244.     '   (SELECT COUNT(*) cnt2' +
  11245.     '   FROM user_mail m(nolock), user_mail_sender s(nolock) ' +
  11246.     '   WHERE m.id = s.mail_id ' +
  11247.     '       and s.sender_id = ' + CAST(@char_id AS NVARCHAR) + ' ' +
  11248.     '       and s.deleted = 0 ' +
  11249.     '       and s.mailbox_type = ' + CAST(@mailbox_type AS NVARCHAR) + ' ' +
  11250.     @search_condition2 +
  11251.     '   ) ' +
  11252.     ' ' +
  11253.     'SELECT TOP ' + CAST(@top AS NVARCHAR) + ' *, @total_count ' +
  11254.     'FROM ( ' +
  11255.     '   SELECT ' +
  11256.     '       m.id, s.sender_id, s.sender_name, m.title, datediff( ss, ''1970/1/1 0:0:0'' , s.send_date ) s_date, ' +
  11257.     '       r.read_status type_flag ' +
  11258.     '   FROM user_mail m(nolock), user_mail_sender s(nolock), user_mail_receiver r(nolock) ' +
  11259.     '   WHERE m.id = r.mail_id ' +
  11260.     '       and s.mail_id = r.mail_id ' +
  11261.     '       and r.receiver_id = ' + CAST(@char_id AS NVARCHAR) + ' ' +
  11262.     '       and r.deleted = 0 ' +
  11263.     '       and r.mailbox_type = ' + CAST(@mailbox_type AS NVARCHAR) + ' ' +
  11264.     @search_condition +
  11265.     '   union all ' +
  11266.     '   SELECT ' +
  11267.     '       m.id, s.sender_id, s.receiver_name_list, m.title, datediff( ss, ''1970/1/1 0:0:0'' , s.send_date ) s_date, ' +
  11268.     '       s.mail_type type_flag ' +
  11269.     '   FROM user_mail m(nolock), user_mail_sender s(nolock) ' +
  11270.     '   WHERE m.id = s.mail_id ' +
  11271.     '       and s.sender_id = ' + CAST(@char_id AS NVARCHAR) + ' ' +
  11272.     '       and s.deleted = 0 ' +
  11273.     '       and s.mailbox_type = ' + CAST(@mailbox_type AS NVARCHAR) + ' ' +
  11274.     @search_condition2 +
  11275.     ') as R1 ' +
  11276.     '   ORDER BY s_date DESC'
  11277.        
  11278.     EXEC(@SQL)
  11279.  
  11280. END
  11281.  
  11282. -- temp mailbox
  11283. IF (@mailbox_type = 3)
  11284. BEGIN
  11285.     IF (@keyword != N'')
  11286.     BEGIN
  11287.         IF (@search_target = 0)
  11288.             SET @search_condition = 'and s.receiver_name_list LIKE  N''%' + @keyword + '%'' '
  11289.         IF (@search_target = 1)
  11290.             SET @search_condition = 'and m.title LIKE N''%' + @keyword + '%'' '
  11291.     END
  11292.  
  11293.     SET @SQL =
  11294.     'DECLARE @total_count int ' +
  11295.     'SET @total_count = 0 ' +
  11296.     'SELECT @total_count = COUNT(*) ' +
  11297.     'FROM user_mail m(nolock), user_mail_sender s(nolock) ' +
  11298.     'WHERE m.id = s.mail_id ' +
  11299.     '   and s.sender_id = ' + CAST(@char_id AS NVARCHAR) + ' ' +
  11300.     '   and s.deleted = 0 ' +
  11301.     '   and s.mailbox_type = ' + CAST(@mailbox_type AS NVARCHAR) + ' ' +
  11302.     @search_condition +
  11303.    
  11304.     'SELECT TOP ' + CAST(@top AS NVARCHAR) +  
  11305.     '   m.id, s.sender_id, s.receiver_name_list, m.title, datediff( ss, ''1970/1/1 0:0:0'' , s.send_date ) s_date, ' +
  11306.     '   s.mail_type, @total_count ' +
  11307.     'FROM user_mail m(nolock), user_mail_sender s(nolock) ' +
  11308.     'WHERE m.id = s.mail_id ' +
  11309.     '   and s.sender_id = ' + CAST(@char_id AS NVARCHAR) + ' ' +
  11310.     '   and s.deleted = 0 ' +
  11311.     '   and s.mailbox_type = ' + CAST(@mailbox_type AS NVARCHAR) + ' ' +
  11312.     @search_condition +
  11313.     'ORDER BY s_date DESC'
  11314.  
  11315.     EXEC(@SQL)
  11316.  
  11317. END
  11318. GO
  11319.  
  11320. /********************************************
  11321. lin_GetMonRaceBet
  11322.    
  11323. INPUT
  11324.     @bet_type       int
  11325.     @race_id        int
  11326. OUTPUT
  11327. return
  11328. made by
  11329.     young
  11330. date
  11331.     2003-05-31
  11332. ********************************************/
  11333. ALTER PROCEDURE [DBO].[lin_GetMonRaceBet]
  11334. (
  11335.     @bet_type       INT,
  11336.     @race_id        INT
  11337. )
  11338. AS
  11339. SET NOCOUNT ON
  11340.  
  11341. IF ( @bet_type = 1 )
  11342. BEGIN
  11343.  
  11344.     SELECT bet_1, SUM( bet_money) FROM monrace_ticket (nolock)
  11345.     WHERE monraceid = @race_id
  11346.     AND bet_type = 1 AND deleted = 0
  11347.     GROUP BY bet_1
  11348.  
  11349. END ELSE BEGIN
  11350.  
  11351.     SELECT bet_1, bet_2 , SUM( bet_money ) FROM monrace_ticket (nolock)
  11352.     WHERE monraceid = @race_id
  11353.     AND bet_type = 2 AND deleted = 0
  11354.     GROUP BY bet_1, bet_2
  11355.  
  11356. END
  11357. GO
  11358.  
  11359. /********************************************  
  11360. lin_GetMonRaceResult  
  11361.    
  11362. INPUT  
  11363.  @nPage  int,
  11364.  @nLinePerPage int
  11365. OUTPUT  
  11366. return  
  11367. made by  
  11368.  young  
  11369. date  
  11370.  2003-06-15  
  11371. change 
  11372.  2004-12-24 carrot
  11373.  change top 2000 to get by page number
  11374.  2005-02-22 kks
  11375.  fix column mismatch & page default
  11376. ********************************************/  
  11377. ALTER    PROCEDURE [DBO].[lin_GetMonRaceResult]  
  11378. (  
  11379.  @nPage  INT,
  11380.  @nLinePerPage INT
  11381. )  
  11382. AS  
  11383. SET NOCOUNT ON  
  11384.  
  11385. --select top 2000 race_id, lane1, lane2, lane3, lane4, lane5, lane6, lane7, lane8, win1, win2, winrate1, winrate2, race_end from  
  11386. --monrace (nolock)  
  11387. --order by race_id desc  
  11388.  
  11389. IF (@nPage <= 0)
  11390.     SET @nPage = 1
  11391.  
  11392. DECLARE @nMaxRaceId INT  
  11393. SET @nMaxRaceId = 0
  11394.  
  11395. SELECT top 1 @nMaxRaceId = race_id FROM monrace ORDER BY race_id DESC  
  11396.  
  11397. SELECT race_id, lane1, lane2, lane3, lane4, lane5, lane6, lane7, lane8, win1, win2, winrate1, winrate2, race_end
  11398. FROM monrace WHERE race_id <= (@nMaxRaceId - (@nPage - 1) * @nLinePerPage) AND race_id > (@nMaxRaceId - @nPage * @nLinePerPage)
  11399. ORDER BY race_id DESC
  11400. GO
  11401.  
  11402. /********************************************
  11403. lin_GetMonRaceTaxSum
  11404.    
  11405. INPUT
  11406.     @race_id        int
  11407. OUTPUT
  11408. return
  11409. made by
  11410.     young
  11411. date
  11412.     2004-08-05
  11413. ********************************************/
  11414. ALTER  PROCEDURE [DBO].[lin_GetMonRaceTaxSum]
  11415. (
  11416.     @race_id        INT
  11417. )
  11418. AS
  11419. SET NOCOUNT ON
  11420.  
  11421. SELECT isnull( SUM ( tax_money) , 0) FROM monrace_ticket (nolock) WHERE monraceid = @race_id AND deleted = 0
  11422. GO
  11423.  
  11424. /********************************************
  11425. lin_GetMonRaceTicket
  11426.    
  11427. INPUT
  11428.     @item_id        int
  11429. OUTPUT
  11430. return
  11431. made by
  11432.     young
  11433. date
  11434.     2003-06-10
  11435. ********************************************/
  11436. ALTER  PROCEDURE [DBO].[lin_GetMonRaceTicket]
  11437. (
  11438.     @item_id        INT
  11439. )
  11440. AS
  11441. SET NOCOUNT ON
  11442.  
  11443. DECLARE @ticket_id  INT
  11444. DECLARE @monraceid  INT
  11445. DECLARE @bet_type   INT
  11446. DECLARE @bet_1      INT
  11447. DECLARE @bet_2      INT
  11448. DECLARE @bet_3      INT
  11449. DECLARE @bet_money  INT
  11450. DECLARE @winrate1   FLOAT
  11451. DECLARE @winrate2   FLOAT
  11452. DECLARE @win1       INT
  11453. DECLARE @win2       INT
  11454. DECLARE @race_end   INT
  11455. DECLARE @tax_money  INT
  11456. DECLARE @remotefee  INT
  11457.  
  11458. SELECT @ticket_id = ticket_id, @monraceid = monraceid, @bet_type=bet_type, @bet_1 = bet_1, @bet_2 = bet_2 , @bet_3 = bet_3, @bet_money = bet_money  , @tax_money = tax_money , @remotefee = remotefee FROM monrace_ticket WHERE item_id = @item_id AND deleted = 0
  11459. SELECT @winrate1=winrate1, @winrate2=winrate2, @win1 = win1, @win2=win2 , @race_end = race_end  FROM monrace WHERE race_id = @monraceid
  11460.  
  11461. SELECT @ticket_id, @monraceid, @bet_type, @bet_1, @bet_2, @bet_3, @bet_money, @winrate1, @winrate2, @win1, @win2, @race_end, @tax_money, @remotefee
  11462. GO
  11463.  
  11464. ALTER PROCEDURE dbo.lin_GetNoblessAchievements
  11465. (
  11466. @char_id INT
  11467. )
  11468. AS
  11469. SELECT win_type, target, win_time FROM nobless_achievements WHERE char_id = @char_id ORDER BY win_time DESC
  11470. GO
  11471.  
  11472. ALTER PROCEDURE dbo.lin_GetNoblessById
  11473. (
  11474. @char_id AS INT
  11475. )
  11476. AS
  11477. SELECT nobless_type, hero_type, win_count, previous_point, olympiad_point, match_count, olympiad_win_count, olympiad_lose_count, history_open FROM user_nobless WHERE char_id = @char_id
  11478. GO
  11479.  
  11480. ALTER PROCEDURE dbo.lin_GetNoblessTop10
  11481. (
  11482. @class INT,
  11483. @season INT
  11484. )
  11485. AS  
  11486. SET NOCOUNT ON  
  11487.  
  11488. SELECT TOP 10 WITH TIES u.char_id, u.char_name, o.point, o.match_count
  11489. FROM user_data u, olympiad_result o
  11490. WHERE o.class = @class AND u.char_id = o.char_id AND o.season = @season
  11491. ORDER BY point DESC
  11492. GO
  11493.  
  11494. /********************************************
  11495. lin_GetOneMacro
  11496.     get one macro
  11497. INPUT
  11498.     @char_id        int,
  11499.     @macro_number   int
  11500. OUTPUT
  11501. return
  11502. made by
  11503.     young
  11504. date
  11505.     2004-6-11
  11506. ********************************************/
  11507. ALTER PROCEDURE [DBO].[lin_GetOneMacro]
  11508. (
  11509. @char_id        INT,
  11510. @macro_id   INT
  11511. )
  11512. AS
  11513. SET NOCOUNT ON
  11514.  
  11515. SELECT R1.macro_id,  char_id, macro_name, macro_tooltip, macro_iconname, macro_icontype,
  11516. macro_order, macro_int1, macro_int2, macro_int3, macro_str FROM (
  11517. SELECT * FROM user_macro  WHERE char_id = @char_id AND macro_id = @macro_id ) AS R1
  11518. LEFT JOIN ( SELECT * FROM user_macroinfo WHERE macro_id = @macro_id  ) AS R2
  11519. ON R1.macro_id = R2.macro_id
  11520.  ORDER BY macro_order ASC
  11521. GO
  11522.  
  11523. /****** Object:  Stored Procedure dbo.lin_GetPetitionMsg    Script Date: 2003-09-20 ?? 11:51:59 ******/
  11524. /********************************************
  11525. lin_GetPetitionMsg
  11526.     get Petition Msg and delete it
  11527. INPUT
  11528.     @char_id    int
  11529. OUTPUT
  11530.     msg(nvarchar 500)
  11531. return
  11532. made by
  11533.     carrot
  11534. date
  11535.     2003-02-27
  11536. ********************************************/
  11537. ALTER PROCEDURE [DBO].[lin_GetPetitionMsg]
  11538. (
  11539.     @char_id    INT
  11540. )
  11541. AS
  11542. SET NOCOUNT ON
  11543.  
  11544. SELECT ISNULL(msg, '') AS msg FROM PetitionMsg WHERE char_id = @char_id
  11545. DELETE PetitionMsg WHERE char_id = @char_id
  11546. GO
  11547.  
  11548. /********************************************
  11549. lin_GetPledgeAdena
  11550.     Get pledge adena
  11551. INPUT
  11552.     @pledge_id  INT
  11553. OUTPUT
  11554. return
  11555. made by
  11556.     young
  11557. date
  11558.     2003-12-11
  11559. ********************************************/
  11560. ALTER PROCEDURE [DBO].[lin_GetPledgeAdena ]
  11561. (
  11562.     @pledge_id  INT
  11563. )
  11564.  
  11565. AS
  11566.  
  11567. SET nocount ON
  11568.  
  11569. SELECT isnull( SUM(amount) , 0) FROM user_item (nolock) WHERE warehouse = 2 AND char_id = @pledge_id AND item_type = 57
  11570. GO
  11571.  
  11572. ALTER PROCEDURE dbo.lin_GetPledgeKillDeathCount
  11573. (
  11574. @castle_id INT
  11575. )
  11576. AS
  11577. SET NOCOUNT ON
  11578.  
  11579. SELECT pledge_id, siege_kill, siege_death FROM pledge
  11580. WHERE pledge_id IN
  11581. (SELECT pledge_id FROM castle_war WHERE castle_id = @castle_id AND (TYPE = 1 OR TYPE = 2))
  11582. GO
  11583.  
  11584. /****** Object:  Stored Procedure dbo.lin_GetPunish    Script Date: 2003-09-20 ?? 11:51:59 ******/
  11585. /********************************************
  11586. lin_GetPunish
  11587.     Get punish
  11588. INPUT
  11589.     @char_id    INT
  11590. OUTPUT
  11591. return
  11592. made by
  11593.     young
  11594. date
  11595.     2002-11-27
  11596. ********************************************/
  11597. ALTER PROCEDURE [DBO].[lin_GetPunish]
  11598. (
  11599.     @char_id    INT
  11600. )
  11601.  
  11602. AS
  11603.  
  11604. SET nocount ON
  11605.  
  11606. SELECT punish_id, punish_on, remain_game, remain_real FROM user_punish (nolock) WHERE char_id = @char_id
  11607. GO
  11608.  
  11609. /****** Object:  Stored Procedure dbo.lin_GetRelatedCastleSiege    Script Date: 2003-09-20 ?? 11:51:59 ******/
  11610. /********************************************
  11611. lin_GetRelatedCastleSiege
  11612.    
  11613. INPUT  
  11614.     @castle_id  int,
  11615.     @pledge_id  int
  11616. OUTPUT
  11617.     id,
  11618.     next_war_time,
  11619.     type
  11620. return
  11621. made by
  11622.     carrot
  11623. date
  11624.     2002-06-16
  11625. ********************************************/
  11626. ALTER PROCEDURE [DBO].[lin_GetRelatedCastleSiege]
  11627. (
  11628.     @castle_id  INT,
  11629.     @pledge_id  INT
  11630. )
  11631. AS
  11632. SET NOCOUNT ON
  11633.  
  11634. SELECT
  11635.     c.id,
  11636.     c.next_war_time,
  11637.     cw.TYPE
  11638. FROM
  11639.     castle c (nolock) ,
  11640.     castle_war cw (nolock)  
  11641. WHERE
  11642.     c.id = cw.castle_id
  11643.     AND c.next_war_time <> 0
  11644.     AND c.id = @castle_id
  11645.     AND cw.pledge_id = @pledge_id
  11646. GO
  11647.  
  11648. /********************************************
  11649. lin_GetSendMailCount
  11650.     get send mail count
  11651. INPUT
  11652.     @char_id        int
  11653.  
  11654. OUTPUT
  11655. return
  11656. made by
  11657.     kks
  11658. date
  11659.     2004-12-23
  11660. ********************************************/
  11661. ALTER PROCEDURE [DBO].[lin_GetSendMailCount]
  11662. (
  11663.     @char_id        INT
  11664. )
  11665. AS
  11666. SET NOCOUNT ON
  11667.  
  11668. SELECT COUNT(*)
  11669. FROM user_mail_sender(NOLOCK)
  11670. WHERE sender_id IN (SELECT char_id FROM user_data(nolock) WHERE account_id = (SELECT account_id FROM user_data (nolock) WHERE char_id = @char_id))
  11671.     AND mailbox_type = 1
  11672.     AND send_date BETWEEN CONVERT(DATETIME, CONVERT(NVARCHAR(10), GETDATE(), 120) + ' 00:00:00') AND
  11673.         CONVERT(DATETIME, CONVERT(NVARCHAR(10), GETDATE(), 120) + ' 23:59:59')
  11674. GO
  11675.  
  11676. ALTER  PROCEDURE  dbo.lin_GetShortCut
  11677. (  
  11678. @char_id  INT,
  11679. @subjob_id INT
  11680. )  
  11681. AS  
  11682. SET NOCOUNT ON  
  11683.  
  11684. SELECT slotnum, shortcut_type, shortcut_id, shortcut_macro
  11685. FROM shortcut_data (nolock)
  11686. WHERE char_id = @char_id AND subjob_id = @subjob_id
  11687. ORDER BY slotnum
  11688. GO
  11689.  
  11690. /****** Object:  Stored Procedure dbo.lin_GetSiegeRelatedAlliancePledge    Script Date: 2003-09-20 ?? 11:51:59 ******/
  11691. /********************************************
  11692. lin_GetSiegeRelatedAlliancePledge
  11693.    
  11694. INPUT  
  11695.     @alliance_id    int
  11696.  
  11697. OUTPUT
  11698.     castle_id,
  11699.     pledge_id,
  11700.     type
  11701. return
  11702. made by
  11703.     bert
  11704. ********************************************/
  11705. ALTER PROCEDURE [DBO].[lin_GetSiegeRelatedAlliancePledge]
  11706. (
  11707.     @alliance_id    INT
  11708. )
  11709. AS
  11710. SET NOCOUNT ON
  11711.  
  11712. SELECT castle_id, pledge_id, TYPE
  11713. FROM castle_war
  11714. WHERE pledge_id IN (SELECT pledge_id FROM pledge WHERE alliance_id = @alliance_id)
  11715. GO
  11716.  
  11717. /********************************************
  11718. lin_GetMainEventRecord
  11719.     get ssq main event record
  11720. INPUT
  11721.  
  11722. OUTPUT
  11723.  
  11724. return
  11725. made by
  11726.     kks
  11727. date
  11728.     2005-02-23
  11729. ********************************************/
  11730. ALTER PROCEDURE [DBO].[lin_GetSSQMainEventRecord]
  11731.  
  11732. AS
  11733.  
  11734. SET NOCOUNT ON
  11735.  
  11736. SELECT ssq_round, room_no, record_type, point, record_time, elapsed_time, member_count, member_names, datediff(s, '1970-01-01', getutcdate())
  11737. FROM time_attack_record
  11738. WHERE record_type > 0
  11739. AND ssq_round = (SELECT MAX(round_number) max_ssq_round FROM ssq_data)
  11740. ORDER BY record_type ASC, room_no DESC
  11741. GO
  11742.  
  11743. /********************************************
  11744. lin_GetSSQStatus
  11745.     get ssq status
  11746. INPUT
  11747.  
  11748. OUTPUT
  11749.  
  11750. return
  11751. made by
  11752.     kks
  11753. date
  11754.     2005-02-23
  11755. changed by
  11756.     carrot
  11757. date
  11758.     2005-03-08
  11759. changed by
  11760.     kks
  11761. date   
  11762.     2005-03-15
  11763. changed by
  11764.     kks
  11765. date    2005-03-21
  11766. changed by
  11767.     kks
  11768. date    2005-03-23
  11769. ********************************************/
  11770. ALTER PROCEDURE [DBO].[lin_GetSSQStatus]
  11771.  
  11772. AS
  11773.  
  11774. SET NOCOUNT ON
  11775.  
  11776. DECLARE @dawn_collected_point INT
  11777. DECLARE @dawn_main_event_point INT
  11778. DECLARE @twilight_collected_point INT
  11779. DECLARE @twilight_main_event_point INT
  11780. DECLARE @current_round_number INT
  11781.  
  11782. SELECT  @current_round_number = MAX(round_number) FROM ssq_data
  11783.  
  11784. SELECT @dawn_collected_point = CASE WHEN dawn_point + twilight_point = 0 THEN 0 ELSE  ((CONVERT(FLOAT, dawn_point) / (dawn_point + twilight_point)) * 500) END,
  11785. @twilight_collected_point = CASE WHEN dawn_point + twilight_point = 0 THEN 0 ELSE ((CONVERT(FLOAT, twilight_point) / (dawn_point + twilight_point)) * 500) END
  11786. FROM
  11787. (
  11788. SELECT SUM(dawn) dawn_point, SUM(twilight) twilight_point
  11789. FROM
  11790. (SELECT
  11791. CASE WHEN TYPE = 1 THEN SUM(collected_point) ELSE 0 END twilight,
  11792. CASE WHEN TYPE = 2 THEN SUM(collected_point) ELSE 0 END dawn
  11793. FROM ssq_join_data
  11794. WHERE round_number = @current_round_number
  11795. GROUP BY TYPE
  11796. ) AS a
  11797. ) AS b
  11798.  
  11799. SELECT @dawn_main_event_point = SUM(dawn), @twilight_main_event_point = SUM(twilight)
  11800. FROM
  11801. (
  11802. SELECT
  11803. CASE WHEN ssq_part = 1 THEN SUM(point) ELSE 0 END twilight,
  11804. CASE WHEN ssq_part = 2 THEN SUM(point) ELSE 0 END dawn
  11805. FROM
  11806. (
  11807. SELECT
  11808. CASE
  11809. WHEN sum_point > 0 THEN 1   -- if sum(point) is positive, twilight wins!!!
  11810. WHEN sum_point < 0 THEN 2   -- if sum(point) is negative, dawn wins!!!
  11811. ELSE 0 END ssq_part,        -- even, none wins
  11812. CASE WHEN room_no = 1 THEN 60
  11813. WHEN room_no = 2 THEN 70
  11814. WHEN room_no = 3 THEN 100
  11815. WHEN room_no = 4 THEN 120
  11816. WHEN room_no = 5 THEN 150
  11817. ELSE 0 END point
  11818. FROM
  11819. (
  11820. SELECT room_no, SUM(point) sum_point -- twilight point + dawn point
  11821. FROM
  11822. (
  11823. SELECT room_no,
  11824. CASE
  11825. WHEN ssq_part = 1 THEN point    -- twilight point
  11826. WHEN ssq_part = 2 THEN -point   -- dawn point
  11827. ELSE 0 END point
  11828. FROM time_attack_record
  11829. WHERE record_type > 0
  11830. AND ssq_round = @current_round_number
  11831. ) AS x
  11832. GROUP BY room_no
  11833. ) AS y
  11834. ) AS a
  11835. GROUP BY ssq_part
  11836. ) AS b
  11837.  
  11838. SELECT top 1 round_number, @twilight_main_event_point + @twilight_collected_point twilight_point, @dawn_main_event_point + @dawn_collected_point dawn_point,  
  11839. seal1, seal2, seal3, seal4, seal5, seal6, seal7, datediff(s, '1970-01-01', getutcdate()), STATUS
  11840. FROM ssq_data
  11841. WHERE round_number = @current_round_number
  11842. GO
  11843.  
  11844. ALTER PROCEDURE dbo.lin_GetSubJobLevel
  11845. (  
  11846.  @char_id INT  
  11847. )  
  11848. AS  
  11849.  
  11850. SET NOCOUNT ON  
  11851. SELECT subjob_id, ISNULL(level, 40) FROM user_subjob WHERE char_id = @char_id ORDER BY subjob_id
  11852. GO
  11853.  
  11854. /****** Object:  Stored Procedure dbo.Lin_GetSummary    Script Date: 2003-09-20 ?? 11:51:56 ******/
  11855. ALTER PROCEDURE [DBO].[Lin_GetSummary]
  11856. AS
  11857.  
  11858. SET NOCOUNT ON
  11859.  
  11860. SELECT COUNT(id) AS Total FROM BBS_All
  11861. GO
  11862.  
  11863. /********************************************
  11864. lin_GetSurrenderWarId
  11865.  
  11866. INPUT
  11867.     @char_id    INT
  11868. OUTPUT
  11869. return
  11870. made by
  11871.     bert
  11872. date
  11873.     2003-10-07
  11874. ********************************************/
  11875. ALTER PROCEDURE [DBO].[lin_GetSurrenderWarId]
  11876. (
  11877. @char_id    INT
  11878. )
  11879. AS
  11880. SET NOCOUNT ON
  11881.  
  11882.  
  11883. SELECT char_id, surrender_war_id FROM user_surrender us, pledge_war pw WHERE us.char_id = @char_id AND us.surrender_war_id = pw.id AND pw.STATUS = 0
  11884. GO
  11885.  
  11886. /********************************************
  11887. lin_GetTempMail
  11888.     get temp mail
  11889. INPUT
  11890.     @char_id        int,
  11891.     @mail_id        int
  11892. OUTPUT
  11893. return
  11894. made by
  11895.     kks
  11896. date
  11897.     2004-12-19
  11898. ********************************************/
  11899. ALTER PROCEDURE [DBO].[lin_GetTempMail]
  11900. (
  11901.     @char_id        INT,
  11902.     @mail_id        INT
  11903. )
  11904. AS
  11905. SET NOCOUNT ON
  11906.  
  11907. SELECT
  11908.     m.id, s.receiver_name_list, m.title, m.content
  11909. FROM user_mail m (nolock), user_mail_sender s(nolock)
  11910. WHERE m.id = @mail_id
  11911.     AND s.mail_id = m.id
  11912.  
  11913. /*AND (m.id IN (SELECT mail_id FROM user_mail_receiver(nolock) WHERE receiver_id = @char_id)
  11914. OR m.id IN (SELECT mail_id FROM user_mail_sender(nolock) WHERE sender_id = @char_id))
  11915. */
  11916. GO
  11917.  
  11918. /********************************************
  11919. lin_GetUnreadMailCount
  11920.     get unread mail count
  11921. INPUT
  11922.     @char_id        int,
  11923.  
  11924. OUTPUT
  11925. return
  11926. made by
  11927.     kks
  11928. date
  11929.     2004-12-23
  11930. ********************************************/
  11931. ALTER PROCEDURE [DBO].[lin_GetUnreadMailCount]
  11932. (
  11933.     @char_id        INT
  11934. )
  11935. AS
  11936. SET NOCOUNT ON
  11937.  
  11938. SELECT COUNT(*)
  11939. FROM user_mail_receiver(NOLOCK)
  11940. WHERE receiver_id = @char_id
  11941.     AND mailbox_type = 0
  11942.     AND read_status = 0;
  11943. GO
  11944.  
  11945. ALTER    PROCEDURE dbo.lin_GetUserDataByCharId
  11946. (      
  11947. @char_id INT      
  11948. )      
  11949. AS      
  11950. SET NOCOUNT ON      
  11951.      
  11952. IF @char_id > 0      
  11953. SELECT      
  11954.  RTRIM(ud.char_name), ud.char_id, RTRIM(ud.account_name), ud.account_id, ud.pledge_id, ud.builder, ud.gender, ud.race, ud.class,      
  11955.  ud.world, ud.xloc, ud.yloc, ud.zloc, ud.IsInVehicle, ud.HP, ud.MP, ud.Max_HP, ud.Max_MP, ud.CP, ud.Max_CP, ud.SP, ud.EXP, ud.Lev, ud.align, ud.PK, ud.duel, ud.pkpardon,      
  11956.  ud.ST_underware, ud.ST_right_ear, ud.ST_left_ear, ud.ST_neck, ud.ST_right_finger, ud.ST_left_finger, ud.ST_head, ud.ST_right_hand, ud.ST_left_hand, ud.ST_gloves, ud.ST_chest, ud.ST_legs, ud.ST_feet, ud.ST_back, ud.ST_both_hand, ud.ST_hair,  
  11957.  ISNULL(YEAR(temp_delete_date),0), ISNULL(MONTH(temp_delete_date),0), ISNULL(DAY(temp_delete_date),0),  
  11958.  ISNULL(DATEPART(HOUR, temp_delete_date),0), ISNULL(DATEPART(mi, temp_delete_date),0), ISNULL(DATEPART(s, temp_delete_date),0),  
  11959.  ISNULL(uas.s1, 0), ISNULL(uas.l1, 0), ISNULL(uas.d1, 0), ISNULL(uas.c1, 0),      
  11960.  ISNULL(uas.s2, 0), ISNULL(uas.l2, 0), ISNULL(uas.d2, 0), ISNULL(uas.c2, 0),      
  11961.  ISNULL(uas.s3, 0), ISNULL(uas.l3, 0), ISNULL(uas.d3, 0), ISNULL(uas.c3, 0),      
  11962.  ISNULL(uas.s4, 0), ISNULL(uas.l4, 0), ISNULL(uas.d4, 0), ISNULL(uas.c4, 0),      
  11963.  ISNULL(uas.s5, 0), ISNULL(uas.l5, 0), ISNULL(uas.d5, 0), ISNULL(uas.c5, 0),      
  11964.  ISNULL(uas.s6, 0), ISNULL(uas.l6, 0), ISNULL(uas.d6, 0), ISNULL(uas.c6, 0),      
  11965.  ISNULL(uas.s7, 0), ISNULL(uas.l7, 0), ISNULL(uas.d7, 0), ISNULL(uas.c7, 0),      
  11966.  ISNULL(uas.s8, 0), ISNULL(uas.l8, 0), ISNULL(uas.d8, 0), ISNULL(uas.c8, 0),      
  11967.  ISNULL(uas.s9, 0), ISNULL(uas.l9, 0), ISNULL(uas.d9, 0), ISNULL(uas.c9, 0),      
  11968.  ISNULL(uas.s10, 0), ISNULL(uas.l10, 0), ISNULL(uas.d10, 0), ISNULL(uas.c10, 0),      
  11969.  ISNULL(uas.s11, 0), ISNULL(uas.l11, 0), ISNULL(uas.d11, 0), ISNULL(uas.c11, 0),      
  11970.  ISNULL(uas.s12, 0), ISNULL(uas.l12, 0), ISNULL(uas.d12, 0), ISNULL(uas.c12, 0),      
  11971.  ISNULL(uas.s13, 0), ISNULL(uas.l13, 0), ISNULL(uas.d13, 0), ISNULL(uas.c13, 0),      
  11972.  ISNULL(uas.s14, 0), ISNULL(uas.l14, 0), ISNULL(uas.d14, 0), ISNULL(uas.c14, 0),      
  11973.  ISNULL(uas.s15, 0), ISNULL(uas.l15, 0), ISNULL(uas.d15, 0), ISNULL(uas.c15, 0),      
  11974.  ISNULL(uas.s16, 0), ISNULL(uas.l16, 0), ISNULL(uas.d16, 0), ISNULL(uas.c16, 0),      
  11975.  ISNULL(uas.s17, 0), ISNULL(uas.l17, 0), ISNULL(uas.d17, 0), ISNULL(uas.c17, 0),      
  11976.  ISNULL(uas.s18, 0), ISNULL(uas.l18, 0), ISNULL(uas.d18, 0), ISNULL(uas.c18, 0),      
  11977.  ISNULL(uas.s19, 0), ISNULL(uas.l19, 0), ISNULL(uas.d19, 0), ISNULL(uas.c19, 0),    
  11978.  ISNULL(uas.s20, 0), ISNULL(uas.l20, 0), ISNULL(uas.d20, 0), ISNULL(uas.c20, 0),      
  11979.  ud.quest_flag, ud.face_index, ud.hair_shape_index, ud.hair_color_index,      
  11980.  ud.nickname, ud.power_flag, ud.pledge_dismiss_time, ud.pledge_ousted_time, ud.pledge_withdraw_time, ud.surrender_war_id, ud.use_time, ud.drop_exp,
  11981.  ISNULL( ub.STATUS, 0), ISNULL( ub.ban_end , 0), ISNULL(ud.subjob_id , 0),
  11982.  ud.subjob0_class, ud.subjob1_class, ud.subjob2_class, ud.subjob3_class, ISNULL(ssq_dawn_round, 0),
  11983.  ISNULL(uun.color_rgb, 0x00ffffff)  
  11984. FROM        
  11985.  (SELECT * FROM User_data (nolock) WHERE char_id = @char_id) AS ud      
  11986.  LEFT OUTER JOIN      
  11987.  (SELECT * FROM user_ActiveSkill (nolock) WHERE char_id = @char_id) AS uas ON ud.char_id = uas.char_id
  11988.  LEFT  OUTER JOIN
  11989.  (SELECT * FROM user_ban (nolock) WHERE char_id = @char_id) AS ub ON ud.char_id = ub.char_id  
  11990.  LEFT OUTER JOIN
  11991.  (SELECT * FROM user_name_color (nolock) WHERE char_id = @char_id) AS uun ON ud.char_id = uun.char_id
  11992. GO
  11993.  
  11994. /****** Object:  Stored Procedure dbo.lin_GetUserDataByCharName    Script Date: 2003-09-20 ?? 11:51:59 ******/
  11995. /********************************************
  11996. lin_GetUserDataByCharName
  11997.  
  11998. INPUT
  11999.     @char_name  NVARCHAR(50)
  12000. OUTPUT
  12001.     ud.char_name, ud.account_name, ud.account_id, ud.pledge_id, ud.builder, ud.gender, ud.race, ud.class, ud.world, ud.xloc, ud.yloc, ud.zloc,
  12002.     ud.HP, ud.MP, ud.SP, ud.Exp, ud.Lev, ud.align, ud.PK, ud.Str, ud.Dex, ud.Con, ud.Int, ud.Wit, ud.Men,
  12003.     ud.ST_underware, ud.ST_right_ear, ud.ST_left_ear, ud.ST_neck, ud.ST_right_finger, ud.ST_left_finger, ud.ST_head, ud.ST_right_hand,
  12004.     ud.ST_left_hand, ud.ST_gloves, ud.ST_chest, ud.ST_legs, ud.ST_feet, ud.ST_back, ud.ST_both_hand,
  12005.     uas.s1, uas.l1, uas.d1, uas.s2, uas.l2, uas.d2, uas.s3, uas.l3, uas.d3, uas.s4, uas.l4, uas.d4, uas.s5, uas.l5, uas.d5, uas.s6, uas.l6, uas.d6, uas.s7, uas.l7, uas.d7, uas.s8, uas.l8, uas.d8, uas.s9, uas.l9, uas.d9, uas.s10, uas.l10, uas.d10,
  12006.     uas.s11, uas.l11, uas.d11, uas.s12, uas.l12, uas.d12, uas.s13, uas.l13, uas.d13, uas.s14, uas.l14, uas.d14, uas.s15, uas.l15, uas.d15, uas.s16, uas.l16, uas.d16, uas.s17, uas.l17, uas.d17, uas.s18, uas.l18, uas.d18, uas.s19, uas.l19, uas.d19, uas.s20, uas.l20, uas.d20
  12007. return
  12008. made by
  12009.     carrot
  12010. date
  12011.     2002-06-09
  12012. ********************************************/
  12013. ALTER PROCEDURE [DBO].[lin_GetUserDataByCharName]
  12014. (
  12015. @char_name  nvarchar(50)
  12016. )
  12017. AS
  12018. SET NOCOUNT ON
  12019.  
  12020. DECLARE @char_id    INT
  12021.  
  12022. SET @char_id = 0
  12023.  
  12024. SELECT top 1 @char_id = char_id FROM user_data WHERE char_name = @char_name
  12025.  
  12026. EXEC lin_GetUserDataByCharId @char_id
  12027. GO
  12028.  
  12029. /****** Object:  Stored Procedure dbo.lin_GetUserLogTime    Script Date: 2003-09-20 ?? 11:51:59 ******/
  12030. /********************************************
  12031. lin_GetUserLogTime
  12032.     get user log time
  12033. INPUT
  12034.     char_id,
  12035.     log_id,
  12036.     log_to
  12037.  
  12038. OUTPUT
  12039.     time diff
  12040. return
  12041. made by
  12042.     young
  12043. date
  12044.     2003-01-22
  12045. change
  12046. ********************************************/
  12047. ALTER PROCEDURE [DBO].[lin_GetUserLogTime]
  12048. (
  12049.     @char_id    INT,
  12050.     @log_id     INT,
  12051.     @log_to INT
  12052. )
  12053. AS
  12054.  
  12055. SET NOCOUNT ON
  12056.  
  12057. DECLARE @use_time INT
  12058.  
  12059. SELECT
  12060.     top 1 @use_time = use_time
  12061. FROM
  12062.     user_log (nolock)
  12063. WHERE
  12064.     char_id = @char_id
  12065.     AND log_id = @log_id
  12066.     AND log_to = @log_to
  12067. ORDER BY
  12068.     log_date DESC
  12069.  
  12070. IF @use_time = NULL
  12071. BEGIN
  12072.     SELECT @use_time = use_time
  12073.     FROM user_data (nolock)
  12074.     WHERE char_id = @char_id
  12075. END
  12076.  
  12077. SELECT @use_time
  12078. GO
  12079.  
  12080. ALTER PROCEDURE dbo.lin_GetWarDeclare
  12081. AS
  12082. SELECT challenger, challengee FROM war_declare WHERE challenger IN (SELECT pledge_id FROM pledge) AND challengee IN (SELECT pledge_id FROM pledge)
  12083. GO
  12084.  
  12085. /********************************************
  12086. lin_GetWearingItemList
  12087.     GetWearingItemList
  12088. INPUT
  12089.     @char_id    int,
  12090. OUTPUT
  12091. return
  12092. made by
  12093.     kks
  12094. date
  12095.     2004-02-17
  12096. ********************************************/
  12097. ALTER PROCEDURE [dbo].[lin_GetWearingItemList]
  12098. (
  12099. @char_id    INT
  12100. )
  12101. AS
  12102. SET NOCOUNT ON
  12103.  
  12104. SELECT 'st_underware', item_id, char_id, item_type, amount, enchant, eroded, bless, ident, wished, warehouse FROM user_item (nolock) WHERE item_id = (SELECT st_underware FROM user_data WHERE char_id = @char_id) UNION
  12105. SELECT 'st_right_ear', item_id, char_id, item_type, amount, enchant, eroded, bless, ident, wished, warehouse FROM user_item (nolock) WHERE item_id = (SELECT st_right_ear FROM user_data WHERE char_id = @char_id) UNION
  12106. SELECT 'st_left_ear', item_id, char_id, item_type, amount, enchant, eroded, bless, ident, wished, warehouse FROM user_item (nolock) WHERE item_id = (SELECT st_left_ear FROM user_data WHERE char_id = @char_id) UNION
  12107. SELECT 'st_neck', item_id, char_id, item_type, amount, enchant, eroded, bless, ident, wished, warehouse FROM user_item (nolock) WHERE item_id = (SELECT st_neck FROM user_data WHERE char_id = @char_id) UNION
  12108. SELECT 'st_right_finger', item_id, char_id, item_type, amount, enchant, eroded, bless, ident, wished, warehouse FROM user_item (nolock) WHERE item_id = (SELECT st_right_finger FROM user_data WHERE char_id = @char_id) UNION
  12109. SELECT 'st_left_finger', item_id, char_id, item_type, amount, enchant, eroded, bless, ident, wished, warehouse FROM user_item (nolock) WHERE item_id = (SELECT st_left_finger FROM user_data WHERE char_id = @char_id) UNION
  12110. SELECT 'st_head', item_id, char_id, item_type, amount, enchant, eroded, bless, ident, wished, warehouse FROM user_item (nolock) WHERE item_id = (SELECT st_head FROM user_data WHERE char_id = @char_id) UNION
  12111. SELECT 'st_right_hand', item_id, char_id, item_type, amount, enchant, eroded, bless, ident, wished, warehouse FROM user_item (nolock) WHERE item_id = (SELECT st_right_hand FROM user_data WHERE char_id = @char_id) UNION
  12112. SELECT 'st_left_hand', item_id, char_id, item_type, amount, enchant, eroded, bless, ident, wished, warehouse FROM user_item (nolock) WHERE item_id = (SELECT st_left_hand FROM user_data WHERE char_id = @char_id) UNION
  12113. SELECT 'st_gloves', item_id, char_id, item_type, amount, enchant, eroded, bless, ident, wished, warehouse FROM user_item (nolock) WHERE item_id = (SELECT st_gloves FROM user_data WHERE char_id = @char_id) UNION
  12114. SELECT 'st_chest', item_id, char_id, item_type, amount, enchant, eroded, bless, ident, wished, warehouse FROM user_item (nolock) WHERE item_id = (SELECT st_chest FROM user_data WHERE char_id = @char_id) UNION
  12115. SELECT 'st_legs', item_id, char_id, item_type, amount, enchant, eroded, bless, ident, wished, warehouse FROM user_item (nolock) WHERE item_id = (SELECT st_legs FROM user_data WHERE char_id = @char_id) UNION
  12116. SELECT 'st_feet', item_id, char_id, item_type, amount, enchant, eroded, bless, ident, wished, warehouse FROM user_item (nolock) WHERE item_id = (SELECT st_feet FROM user_data WHERE char_id = @char_id) UNION
  12117. SELECT 'st_back', item_id, char_id, item_type, amount, enchant, eroded, bless, ident, wished, warehouse FROM user_item (nolock) WHERE item_id = (SELECT st_back FROM user_data WHERE char_id = @char_id) UNION
  12118. SELECT 'st_both_hand', item_id, char_id, item_type, amount, enchant, eroded, bless, ident, wished, warehouse FROM user_item (nolock) WHERE item_id = (SELECT st_both_hand FROM user_data WHERE char_id = @char_id)
  12119. GO
  12120.  
  12121. ALTER PROCEDURE dbo.lin_InitAllOlympiadPoint
  12122. (
  12123. @season INT,
  12124. @step INT,
  12125. @init_point INT
  12126. )
  12127. AS
  12128. SET NOCOUNT ON
  12129.  
  12130. UPDATE user_nobless
  12131. SET olympiad_point = @init_point
  12132.  
  12133. UPDATE olympiad
  12134. SET step = @step
  12135. WHERE season = @season
  12136. GO
  12137.  
  12138. /****** Object:  Stored Procedure dbo.lin_InitPledgeCrest    Script Date: 2003-09-20 ?? 11:51:59 ******/
  12139. /********************************************
  12140. lin_InitPledgeCrest
  12141.    
  12142. INPUT  
  12143.     @pledge_id  int
  12144. OUTPUT
  12145.  
  12146. return
  12147. made by
  12148.     carrot
  12149. date
  12150.     2002-06-16
  12151. ********************************************/
  12152. ALTER PROCEDURE [DBO].[lin_InitPledgeCrest]
  12153. (
  12154.     @pledge_id  INT
  12155. )
  12156. AS
  12157. SET NOCOUNT ON
  12158.  
  12159. UPDATE Pledge SET crest_id = 0 WHERE pledge_id = @pledge_id -- update tuple from pledge table
  12160. GO
  12161.  
  12162. /********************************************
  12163. lin_InitPledgeEmblem
  12164.    
  12165. INPUT  
  12166.     @pledge_id  int
  12167. OUTPUT
  12168.  
  12169. return
  12170. made by
  12171.     kks
  12172. date
  12173.     2005-07-22
  12174. ********************************************/
  12175. ALTER PROCEDURE [DBO].[lin_InitPledgeEmblem]
  12176. (
  12177.     @pledge_id  INT
  12178. )
  12179. AS
  12180. SET NOCOUNT ON
  12181.  
  12182. UPDATE Pledge SET emblem_id = 0 WHERE pledge_id = @pledge_id    -- update tuple from pledge table
  12183. GO
  12184.  
  12185. /********************************************
  12186. lin_InsertAgitAdena
  12187.     create agit_adena
  12188. INPUT
  12189.    
  12190.  
  12191. OUTPUT
  12192. return
  12193. made by
  12194.     young
  12195. date
  12196.     2003-12-1
  12197. ********************************************/
  12198. ALTER PROCEDURE [DBO].[lin_InsertAgitAdena]
  12199. (
  12200. @agit_id        INT,
  12201. @pledge_id      INT,
  12202. @auction_id     INT,
  12203. @reason     INT,
  12204. @adena      INT
  12205. )
  12206. AS
  12207. SET NOCOUNT ON
  12208.  
  12209. INSERT INTO agit_adena ( agit_id, pledge_id, auction_id, reason, adena)
  12210. VALUES ( @agit_id, @pledge_id, @auction_id, @reason, @adena)
  12211. GO
  12212.  
  12213. ALTER PROCEDURE [dbo].lin_InsertIntoControlTower
  12214. (
  12215. @name VARCHAR(256),
  12216. @residence_id INT,
  12217. @control_level INT,
  12218. @hp INT,
  12219. @STATUS INT
  12220. )
  12221. AS
  12222. INSERT INTO control_tower
  12223. (name, residence_id, control_level, hp, STATUS)
  12224. VALUES
  12225. (@name, @residence_id, @control_level, @hp, @STATUS)
  12226. GO
  12227.  
  12228. ALTER PROCEDURE [dbo].lin_InsertIntoMercenary  
  12229. (  
  12230. @residence_id INT,  
  12231. @npc_id INT,  
  12232. @x INT,  
  12233. @y INT,  
  12234. @z INT,  
  12235. @angle INT,  
  12236. @hp INT,  
  12237. @mp INT  
  12238. )  
  12239. AS  
  12240. SET NOCOUNT ON  
  12241.  
  12242. IF EXISTS(SELECT * FROM mercenary WHERE x= @x AND y = @y AND  z = @z)  
  12243. BEGIN  
  12244.  DELETE mercenary WHERE x= @x AND y = @y AND  z = @z  
  12245. END  
  12246.  
  12247. INSERT INTO mercenary  
  12248. (residence_id, npc_id, x, y, z, angle, hp, mp)  
  12249. VALUES  
  12250. (@residence_id, @npc_id, @x, @y, @z, @angle, @hp, @mp)  
  12251. SELECT @@IDENTITY
  12252. GO
  12253.  
  12254. ALTER PROCEDURE [dbo].lin_InsertIntoResidenceGuard
  12255. (
  12256. @residence_id INT,
  12257. @item_id INT,
  12258. @npc_id INT,
  12259. @guard_type INT,
  12260. @can_move INT,
  12261. @x INT,
  12262. @y INT,
  12263. @z INT,
  12264. @angle INT
  12265. )
  12266. AS
  12267. INSERT INTO residence_guard
  12268. (residence_id, item_id, npc_id, guard_type, can_move, x, y, z, angle)
  12269. VALUES
  12270. (@residence_id, @item_id, @npc_id, @guard_type, @can_move, @x, @y, @z, @angle)
  12271. GO
  12272.  
  12273. ALTER PROCEDURE dbo.lin_InsertIntoTeamBattleAgitMember
  12274. (
  12275. @agit_id INT,
  12276. @char_id INT,
  12277. @pledge_id INT,
  12278. @propose_time INT
  12279. )
  12280. AS
  12281. SET NOCOUNT ON
  12282. INSERT INTO team_battle_agit_member
  12283. (agit_id, char_id, pledge_id, propose_time)
  12284. VALUES
  12285. (@agit_id, @char_id, @pledge_id, @propose_time)
  12286. GO
  12287.  
  12288. ALTER PROCEDURE dbo.lin_InsertIntoTeamBattleAgitPledge
  12289. (
  12290. @agit_id INT,
  12291. @pledge_id INT,
  12292. @propose_time INT,
  12293. @color INT,
  12294. @npc_type INT
  12295. )
  12296. AS
  12297. SET NOCOUNT ON
  12298. INSERT INTO team_battle_agit_pledge
  12299. (agit_id, pledge_id, propose_time, color, npc_type)
  12300. VALUES
  12301. (@agit_id, @pledge_id, @propose_time, @color, @npc_type)
  12302. GO
  12303.  
  12304. /****** Object:  Stored Procedure dbo.lin_InsertItemName    Script Date: 2003-09-20 ?? 11:51:59 ******/
  12305. /********************************************
  12306. lin_InsertItemName
  12307.     insert item name data
  12308. INPUT
  12309.     @id INT,
  12310.     @name   nvarchar(50),
  12311.     @desc   nvarchar(50)
  12312. OUTPUT
  12313. return
  12314. made by
  12315.     carrot
  12316. date
  12317.     2002-10-8
  12318. change      carrot
  12319.     2003-1-9    add IsQuest field
  12320. ********************************************/
  12321. ALTER PROCEDURE [DBO].[lin_InsertItemName]
  12322. (
  12323. @id INT,
  12324. @name   nvarchar(50),
  12325. @DESC   nvarchar(50),
  12326. @consumeType    nvarchar(50),
  12327. @IsQuest    TINYINT = 0
  12328. )
  12329. AS
  12330. SET NOCOUNT ON
  12331.  
  12332.  
  12333. INSERT INTO ItemData
  12334.     (id, name, [DESC], consumeType, IsQuest)
  12335.     VALUES
  12336.     (@id, @name, @DESC, @consumeType, @IsQuest)
  12337. GO
  12338.  
  12339. /****** Object:  Stored Procedure dbo.lin_InsertQuestName    Script Date: 2003-09-20 ?? 11:51:59 ******/
  12340.  
  12341. /********************************************
  12342. lin_InsertQuestName
  12343.     insert Quest name data
  12344. INPUT
  12345.     @id INT,
  12346.     @name   nvarchar(50),
  12347.     @data   nvarchar(50)
  12348. OUTPUT
  12349. return
  12350. made by
  12351.     carrot
  12352. date
  12353.     2002-10-8
  12354. ********************************************/
  12355. ALTER PROCEDURE [DBO].[lin_InsertQuestName]
  12356. (
  12357. @id INT,
  12358. @name   nvarchar(50),
  12359. @DATA   nvarchar(50)
  12360. )
  12361. AS
  12362. SET NOCOUNT ON
  12363.  
  12364.  
  12365. INSERT INTO QuestData
  12366.     (id, name, DATA)
  12367.     VALUES
  12368.     (@id, @name, @DATA)
  12369. GO
  12370.  
  12371. /****** Object:  Stored Procedure dbo.lin_InsertSkillName    Script Date: 2003-09-20 ?? 11:51:59 ******/
  12372.  
  12373. /********************************************
  12374. lin_InsertSkillName
  12375.     insert Skill name data
  12376. INPUT
  12377.     @id INT,
  12378.     @lev    INT,
  12379.     @name   nvarchar(50)
  12380.     @skill_desc     nvarchar(50),
  12381.     @magic_skill    INT,
  12382.     @activateType   nvarchar(5)
  12383. OUTPUT
  12384. return
  12385. made by
  12386.     carrot
  12387. date
  12388.     2002-10-8
  12389. ********************************************/
  12390. ALTER PROCEDURE [DBO].[lin_InsertSkillName]
  12391. (
  12392. @id INT,
  12393. @lev    INT,
  12394. @name   nvarchar(50),
  12395. @skill_desc     nvarchar(50),
  12396. @magic_skill    INT,
  12397. @activateType   nvarchar(5)
  12398. )
  12399. AS
  12400. SET NOCOUNT ON
  12401.  
  12402.  
  12403. INSERT INTO skillData
  12404.     (id, lev, name, skill_desc, bIsMagic, activate_type)
  12405.     VALUES
  12406.     (@id, @lev, @name, @skill_desc, @magic_skill, @activateType)
  12407. GO
  12408.  
  12409. /****** Object:  Stored Procedure dbo.lin_InsertUserLog    Script Date: 2003-09-20 ?? 11:51:59 ******/
  12410. /********************************************
  12411. lin_InsertUserLog
  12412.     add user log data
  12413. INPUT
  12414.     char_id
  12415.     log_id
  12416. OUTPUT
  12417. return
  12418. made by
  12419.     young
  12420. date
  12421.     2003-1-15
  12422. change
  12423. ********************************************/
  12424. ALTER PROCEDURE [DBO].[lin_InsertUserLog]
  12425. (
  12426.     @char_id    INT,
  12427.     @log_id TINYINT
  12428. )
  12429. AS
  12430.  
  12431. SET NOCOUNT ON
  12432.  
  12433. INSERT INTO user_log( char_id, log_id)
  12434. VALUES (@char_id, @log_id)
  12435. GO
  12436.  
  12437. /****** Object:  Stored Procedure dbo.lin_InstallBattleCamp    Script Date: 2003-09-20 ?? 11:51:59 ******/
  12438. -- lin_InstallBattleCamp
  12439. -- by bert
  12440. -- return new battle camp id
  12441.  
  12442. ALTER PROCEDURE dbo.lin_InstallBattleCamp (@pledge_id INT, @castle_id INT, @max_hp INT, @hp INT, @x INT, @y INT, @z INT, @TYPE INT)
  12443. AS
  12444.  
  12445. SET NOCOUNT ON
  12446.  
  12447. INSERT INTO object_data
  12448. (owner_id, residence_id, max_hp, hp, x_pos, y_pos, z_pos, TYPE)
  12449. VALUES
  12450. (@pledge_id, @castle_id, @max_hp, @hp, @x, @y, @z, @TYPE)
  12451.  
  12452. SELECT @@IDENTITY
  12453. GO
  12454.  
  12455. /****** Object:  Stored Procedure dbo.lin_JoinAlliance    Script Date: 2003-09-20 ?? 11:51:59 ******/
  12456. -- lin_JoinAlliance
  12457. -- by bert
  12458. -- return Result(0 if failed)
  12459.  
  12460. ALTER PROCEDURE
  12461. dbo.lin_JoinAlliance (@alliance_id INT, @member_pledge_id INT)
  12462. AS
  12463.  
  12464. SET NOCOUNT ON
  12465.  
  12466. DECLARE @RESULT INT
  12467.  
  12468. UPDATE pledge
  12469. SET alliance_id = @alliance_id
  12470. WHERE pledge_id = @member_pledge_id
  12471.  
  12472. IF @@ERROR = 0 AND @@ROWCOUNT = 1
  12473. BEGIN
  12474.     SELECT @RESULT = 1
  12475. END
  12476. ELSE
  12477. BEGIN
  12478.     SELECT @RESULT = 0
  12479. END
  12480.  
  12481. SELECT @RESULT
  12482. GO
  12483.  
  12484. /****** Object:  Stored Procedure dbo.lin_JoinPledgeMember    Script Date: 2003-09-20 ?? 11:51:57 ******/
  12485. -- lin_JoinPledgeMember
  12486. -- by bert
  12487.  
  12488. ALTER PROCEDURE
  12489. dbo.lin_JoinPledgeMember (@pledge_id INT, @member_id INT)
  12490. AS
  12491.  
  12492. SET NOCOUNT ON
  12493.  
  12494. DECLARE @ret INT
  12495.  
  12496. BEGIN TRAN
  12497.  
  12498. UPDATE user_data
  12499. SET pledge_id = @pledge_id
  12500. WHERE char_id = @member_id
  12501.  
  12502. IF @@ERROR = 0 AND @@ROWCOUNT = 1
  12503. BEGIN
  12504.     -- ???? ??? ???
  12505.     SELECT @ret = 1
  12506. END
  12507. ELSE
  12508. BEGIN
  12509.     SELECT @ret = 0
  12510.     GOTO EXIT_TRAN
  12511. END
  12512.  
  12513. EXIT_TRAN:
  12514. IF @ret<> 0
  12515. BEGIN
  12516.     COMMIT TRAN
  12517. END
  12518. ELSE
  12519. BEGIN
  12520.     ROLLBACK TRAN
  12521. END
  12522. SELECT @ret
  12523. GO
  12524.  
  12525. /****** Object:  Stored Procedure dbo.lin_LoadAccount    Script Date: 2003-09-20 ?? 11:51:59 ******/
  12526. /********************************************
  12527. lin_LoadAccount
  12528.    
  12529. INPUT
  12530.     @account_id int
  12531. OUTPUT
  12532. return
  12533. made by
  12534.     carrot
  12535. date
  12536.     2002-06-09
  12537. ********************************************/
  12538. ALTER PROCEDURE [DBO].[lin_LoadAccount]
  12539. (
  12540. @account_id INT
  12541. )
  12542. AS
  12543. SET NOCOUNT ON
  12544.  
  12545. IF @account_id < 1
  12546. BEGIN
  12547.     RAISERROR ('lin_LoadAccount : invalid account_id [%d]', 16, 1, @account_id)
  12548.     RETURN -1  
  12549. END
  12550.  
  12551. SELECT top 10 char_id, account_name FROM user_data (nolock) WHERE account_id= @account_id
  12552. GO
  12553.  
  12554. /********************************************    
  12555. lin_LoadAgit    
  12556.      
  12557. INPUT    
  12558.  @agit_id  int    
  12559. OUTPUT    
  12560.  pledge_id,    
  12561.  hp_stove,    
  12562.  hp_stove_expire,    
  12563.  mp_flame,    
  12564.  mp_flame_expire,    
  12565.  hatcher,    
  12566.  status,    
  12567.  next_war_time    
  12568. return    
  12569. made by    
  12570.  carrot    
  12571. date    
  12572.  2002-06-16    
  12573. ********************************************/    
  12574. ALTER PROCEDURE [DBO].[lin_LoadAgit]    
  12575. (    
  12576.  @agit_id  INT    
  12577. )    
  12578. AS    
  12579.    
  12580. SET NOCOUNT ON    
  12581.    
  12582. SELECT pledge_id, hp_stove, hp_stove_expire, mp_flame, mp_flame_expire, hatcher, STATUS, next_war_time ,  
  12583.   isnull(R1.auction_id, 0) , isnull( auction_time, 0)   , isnull ( last_price , 0) , isnull(last_cancel, 0) , isnull (min_price, 0), isnull(teleport_level, 0),  
  12584.  isnull(teleport_expire, 0),  isnull ( auction_desc, '') , isnull( next_cost, 0) , isnull ( cost_fail, 0 )  , isnull ( tax_rate, 0 ),  
  12585.  isnull (tax_rate_to_change, 0), isnull (tax_child_rate, 0), isnull (tax_child_rate_to_change, 0), isnull(shop_income, 0), isnull(shop_income_temp, 0)  
  12586. FROM (    
  12587.  SELECT id, pledge_id, hp_stove, hp_stove_expire, mp_flame, mp_flame_expire, hatcher, STATUS, next_war_time , auction_id, last_price, last_cancel,  
  12588.  teleport_level, teleport_expire, next_cost, cost_fail  , tax_rate, tax_rate_to_change, tax_child_rate, tax_child_rate_to_change, shop_income_temp, shop_income  
  12589.  FROM agit (nolock)    
  12590.  WHERE id = @agit_id      
  12591.  ) AS R1    
  12592.  LEFT JOIN    
  12593.  (    
  12594.  SELECT agit_id, auction_id, auction_time , min_price, auction_desc    
  12595.  FROM agit_auction (nolock)    
  12596.  WHERE agit_id = @agit_id    
  12597.  ) AS R2    
  12598.  ON R1.id = R2.agit_id AND R1.auction_id = R2.auction_id
  12599. GO
  12600.  
  12601. -- lin_LoadAgitDeco
  12602. -- by bert
  12603. -- return (1, 0)
  12604. ALTER PROCEDURE dbo.lin_LoadAgitDeco
  12605. (
  12606.     @agit_id INT
  12607. )
  12608. AS
  12609. SET NOCOUNT ON
  12610.  
  12611. SELECT TYPE, id, level, expire FROM agit_deco WHERE agit_id = @agit_id
  12612. GO
  12613.  
  12614. /****** Object:  Stored Procedure dbo.lin_LoadAllAgit    Script Date: 2003-09-20 ?? 11:51:59 ******/
  12615. /********************************************
  12616. lin_LoadAllAgit
  12617.    
  12618. INPUT
  12619. OUTPUT
  12620. return
  12621. made by
  12622.     carrot
  12623. date
  12624.     2002-06-10
  12625. ********************************************/
  12626. ALTER PROCEDURE [DBO].[lin_LoadAllAgit]
  12627. AS
  12628. SET NOCOUNT ON
  12629.  
  12630. SELECT id, pledge_id FROM castle  (nolock) WHERE TYPE = 2 ORDER BY id
  12631. GO
  12632.  
  12633. /****** Object:  Stored Procedure dbo.lin_LoadAllAllianceId    Script Date: 2003-09-20 ?? 11:51:57 ******/
  12634. -- lin_LoadAllAllianceId
  12635. -- by bert
  12636. ALTER PROCEDURE
  12637. dbo.lin_LoadAllAllianceId
  12638. AS
  12639.  
  12640. SET NOCOUNT ON
  12641.  
  12642. SELECT id FROM alliance
  12643. GO
  12644.  
  12645. /********************************************
  12646. lin_LoadAllAllianceWarData
  12647.    
  12648. INPUT  
  12649.     @status int
  12650. OUTPUT
  12651.     id,
  12652.     begin_time,
  12653.     challenger,
  12654.     challengee
  12655. return
  12656. made by
  12657.     bert
  12658. date
  12659.     2003-11-07
  12660. ********************************************/
  12661. ALTER PROCEDURE [DBO].[lin_LoadAllAllianceWarData]
  12662. (
  12663.     @STATUS INT
  12664. )
  12665. AS
  12666. SET NOCOUNT ON
  12667.  
  12668. SELECT
  12669.     id, begin_time, challenger, challengee
  12670. FROM
  12671.     alliance_war (nolock)  
  12672. WHERE
  12673.     STATUS = @STATUS
  12674. GO
  12675.  
  12676. /****** Object:  Stored Procedure dbo.lin_LoadAllCastle    Script Date: 2003-09-20 ?? 11:51:59 ******/
  12677. /********************************************
  12678. lin_LoadAllCastle
  12679.    
  12680. INPUT
  12681. OUTPUT
  12682. return
  12683. made by
  12684.     carrot
  12685. date
  12686.     2002-06-10
  12687. ********************************************/
  12688. ALTER PROCEDURE [DBO].[lin_LoadAllCastle]
  12689. --(
  12690. --  @tax_rate       int,
  12691. --  @castle_id      int
  12692. --)
  12693. AS
  12694. SET NOCOUNT ON
  12695.  
  12696. SELECT castle_d.id, castle_d.pledge_id, castle_d.next_war_time, castle_d.tax_rate, (SELECT char_name FROM user_data WHERE char_id = p.ruler_id)
  12697. FROM
  12698.     (SELECT * FROM castle (nolock) WHERE TYPE= 1) AS castle_d
  12699.     INNER JOIN
  12700.     (SELECT * FROM pledge (nolock) WHERE pledge_id IN (SELECT pledge_id FROM castle)) AS p
  12701.     ON
  12702.     castle_d.pledge_id = p.pledge_id
  12703. ORDER BY castle_d.id
  12704. GO
  12705.  
  12706. /****** Object:  Stored Procedure dbo.lin_LoadAlliance    Script Date: 2003-09-20 ?? 11:51:57 ******/
  12707. -- lin_LoadAlliance
  12708. -- by bert
  12709. ALTER PROCEDURE
  12710. dbo.lin_LoadAlliance (@alliance_id INT)
  12711. AS
  12712.  
  12713. SET NOCOUNT ON
  12714.  
  12715. SELECT id, name, master_pledge_id, oust_time, crest_id FROM alliance WHERE id = @alliance_id
  12716. GO
  12717.  
  12718. /********************************************
  12719. lin_LoadAllianceWar
  12720.    
  12721. INPUT
  12722.     @war_id     int
  12723. OUTPUT
  12724. return
  12725. made by
  12726.     bert
  12727. date
  12728.     2003-11-07
  12729. ********************************************/
  12730. ALTER PROCEDURE [DBO].[lin_LoadAllianceWar]
  12731. (
  12732.     @war_id     INT
  12733. )
  12734. AS
  12735. SET NOCOUNT ON
  12736.  
  12737. SELECT challenger, challengee, begin_time, STATUS FROM alliance_war (nolock)  WHERE id = @war_id
  12738. GO
  12739.  
  12740. /****** Object:  Stored Procedure dbo.lin_LoadAllPledge    Script Date: 2003-09-20 ?? 11:51:59 ******/
  12741. /********************************************
  12742. lin_LoadAllPledge
  12743.    
  12744. INPUT
  12745. OUTPUT
  12746. return
  12747. made by
  12748.     carrot
  12749. date
  12750.     2002-06-16
  12751. ********************************************/
  12752. ALTER PROCEDURE [DBO].[lin_LoadAllPledge]
  12753. --(
  12754. --  @account_name   nvarchar(50)
  12755. --)
  12756. AS
  12757. SET NOCOUNT ON
  12758.  
  12759. SELECT
  12760.     p.pledge_id, p.name, p.ruler_id, ud.char_name,
  12761.     p.alliance_id, p.challenge_time, p.now_war_id, p.name_value, p.oust_time, p.skill_level,
  12762.     p.private_flag, p.STATUS, p.rank, p.castle_id, p.agit_id, p.root_name_value,
  12763.     p.crest_id, p.is_guilty, p.dismiss_reserved_time
  12764. FROM
  12765.     pledge p (nolock),
  12766.     (SELECT * FROM user_data (nolock) WHERE pledge_id > 0 ) ud
  12767. WHERE
  12768.     p.ruler_id = ud.char_id
  12769. GO
  12770.  
  12771. /****** Object:  Stored Procedure dbo.lin_LoadAllWarData    Script Date: 2003-09-20 ?? 11:51:59 ******/
  12772. /********************************************
  12773. lin_LoadAllWarData
  12774.    
  12775. INPUT  
  12776.     @status int
  12777. OUTPUT
  12778.     id,
  12779.     begin_time,
  12780.     challenger,
  12781.     challengee
  12782. return
  12783. made by
  12784.     carrot
  12785. date
  12786.     2002-06-16
  12787. ********************************************/
  12788. ALTER PROCEDURE [DBO].[lin_LoadAllWarData]
  12789. (
  12790.     @STATUS INT
  12791. )
  12792. AS
  12793. SET NOCOUNT ON
  12794.  
  12795. SELECT
  12796.     id, begin_time, challenger, challengee
  12797. FROM
  12798.     pledge_war (nolock)  
  12799. WHERE
  12800.     STATUS = @STATUS
  12801. GO
  12802.  
  12803. /********************************************
  12804. lin_LoadBlockList
  12805.     when character log in, load he's blocked list.
  12806. INPUT
  12807.     char_id
  12808. OUTPUT
  12809. return
  12810. made by
  12811.     carrot
  12812. date
  12813.     2003-12-01
  12814. change
  12815. ********************************************/
  12816. ALTER PROCEDURE [DBO].[lin_LoadBlockList]
  12817. (
  12818.     @char_id    INT
  12819. )
  12820. AS
  12821.  
  12822. SET NOCOUNT ON
  12823.  
  12824. SELECT block_char_id, block_char_name FROM user_blocklist WHERE char_id = @char_id
  12825. GO
  12826.  
  12827. /****** Object:  Stored Procedure dbo.lin_LoadBuilderAccountByAccountName    Script Date: 2003-09-20 ?? 11:51:59 ******/
  12828. /********************************************
  12829. lin_LoadBuilderAccountByAccountName
  12830.    
  12831. INPUT
  12832.     @account_name   NVARCHAR(50)
  12833. OUTPUT
  12834. return
  12835. made by
  12836.     carrot
  12837. date
  12838.     2002-06-09
  12839. change  2003-07-03  carrot
  12840.     restrict only builer account
  12841. ********************************************/
  12842. ALTER PROCEDURE [DBO].[lin_LoadBuilderAccountByAccountName]
  12843. (
  12844. @account_name   NVARCHAR(50)
  12845. )
  12846. AS
  12847. SET NOCOUNT ON
  12848.  
  12849. SELECT top 1 account_id FROM builder_account (nolock) WHERE account_name= @account_name AND account_id > 0
  12850. GO
  12851.  
  12852. /********************************************  
  12853. lin_LoadCastle  
  12854.    
  12855. INPUT  
  12856.  @id int,  
  12857.  @type int  
  12858. OUTPUT  
  12859.  pledge_id,  
  12860.  next_war_time,  
  12861.  tax_rate,  
  12862.  status,  
  12863.  name,  
  12864.  crop_income,  
  12865.  shop_income,  
  12866.  siege_elapsed_time  
  12867.  shop_Income_Temp,  
  12868.  Tax_rate_to_change,  
  12869.  tax_child_rate_to_change  
  12870. return  
  12871. made by  
  12872.  carrot  
  12873. date  
  12874.  2002-06-16  
  12875. change 2004-02-29 carrot  
  12876.  add CastleIncomeTemp and TaxRateTochange, tax_child_rate_to_change  
  12877. ********************************************/  
  12878. ALTER PROCEDURE [DBO].[lin_LoadCastle]  
  12879. (  
  12880.  @id INT,  
  12881.  @TYPE INT  
  12882. )  
  12883. AS  
  12884. SET NOCOUNT ON  
  12885.  
  12886. SELECT  
  12887.  pledge_id, next_war_time, tax_rate, tax_child_rate, STATUS, name, crop_income, shop_income, siege_elapsed_time, shop_Income_Temp, Tax_rate_to_change,  
  12888.  tax_child_rate_to_change  
  12889. FROM  
  12890.  castle (nolock)  
  12891. WHERE  
  12892.  id = @id AND TYPE = @TYPE
  12893. GO
  12894.  
  12895. /****** Object:  Stored Procedure dbo.lin_LoadCastleCrop    Script Date: 2003-09-20 ?? 11:51:59 ******/
  12896. /********************************************
  12897. lin_LoadCastleCrop
  12898.    
  12899. INPUT  
  12900.     @castle_id  int,
  12901. OUTPUT
  12902.     item_type,
  12903.     droprate,
  12904.     price,
  12905.     level
  12906. return
  12907. made by
  12908.     carrot
  12909. date
  12910.     2002-06-16
  12911. ********************************************/
  12912. ALTER PROCEDURE [DBO].[lin_LoadCastleCrop]
  12913. (
  12914.     @castle_id  INT
  12915. )
  12916. AS
  12917. SET NOCOUNT ON
  12918.  
  12919. SELECT
  12920.     item_type, droprate, price, level
  12921. FROM
  12922.     castle_crop (nolock)  
  12923. WHERE
  12924.     castle_id = @castle_id
  12925. GO
  12926.  
  12927. /****** Object:  Stored Procedure dbo.lin_LoadCastleWarRelatedPledge    Script Date: 2003-09-20 ?? 11:51:59 ******/
  12928. /********************************************
  12929. lin_LoadCastleWarRelatedPledge
  12930.    
  12931. INPUT  
  12932.     @castle_id  int
  12933. OUTPUT
  12934. return
  12935. made by
  12936.     bert
  12937. ********************************************/
  12938. ALTER PROCEDURE [DBO].[lin_LoadCastleWarRelatedPledge]
  12939. (
  12940.     @castle_id  INT
  12941. )
  12942. AS
  12943. SET NOCOUNT ON
  12944.  
  12945. SELECT
  12946.     pledge_id, TYPE, propose_time
  12947. FROM
  12948.     castle_war (nolock)  
  12949. WHERE
  12950.     castle_id = @castle_id
  12951. GO
  12952.  
  12953. ALTER PROCEDURE [dbo].lin_LoadControlTowerByName
  12954. (
  12955. @name VARCHAR(256)
  12956. )
  12957. AS
  12958. SELECT residence_id, control_level, hp, STATUS
  12959. FROM control_tower
  12960. WHERE name = @name
  12961. GO
  12962.  
  12963. ALTER PROCEDURE [dbo].lin_LoadControlTowerByResidenceId
  12964. (
  12965. @residence_id INT
  12966. )
  12967. AS
  12968. SELECT name, control_level, hp, STATUS
  12969. FROM control_tower
  12970. WHERE residence_id = @residence_id
  12971. GO
  12972.  
  12973. /********************************************    
  12974. lin_LoadDayUsedTime    
  12975.  load account's today used time    
  12976. INPUT    
  12977.  account_id    
  12978. OUTPUT    
  12979. return    
  12980.  used sec INT    
  12981. made by    
  12982.  carrot    
  12983. date    
  12984.  2004-03-29    
  12985. ********************************************/    
  12986. ALTER PROCEDURE [DBO].[lin_LoadDayUsedTime]    
  12987. (    
  12988.  @account_id INT    
  12989. )    
  12990. AS    
  12991.    
  12992. SET NOCOUNT ON    
  12993.  
  12994. SELECT TOP 1 used_sec, CONVERT(VARCHAR(19), last_logout, 121) FROM time_data (nolock) WHERE account_id = @account_id
  12995. GO
  12996.  
  12997. /****** Object:  Stored Procedure dbo.lin_LoadDismissReservedPledge    Script Date: 2003-09-20 ?? 11:51:59 ******/
  12998. /********************************************
  12999. lin_LoadDismissReservedPledge
  13000.    
  13001. INPUT  
  13002.     @status int
  13003. OUTPUT
  13004.     pledge_id,
  13005.     dismiss_reserved_time
  13006. return
  13007. made by
  13008.     carrot
  13009. date
  13010.     2002-06-16
  13011. ********************************************/
  13012. ALTER PROCEDURE [DBO].[lin_LoadDismissReservedPledge]
  13013. (
  13014.     @STATUS INT
  13015. )
  13016. AS
  13017. SET NOCOUNT ON
  13018.  
  13019. SELECT pledge_id, dismiss_reserved_time FROM pledge  (nolock) WHERE STATUS = @STATUS
  13020. GO
  13021.  
  13022. ALTER PROCEDURE [dbo].[lin_LoadDoor]  
  13023. (  
  13024.  @name NVARCHAR(50)  
  13025. )  
  13026. AS  
  13027. SET NOCOUNT ON  
  13028. SELECT hp, ISNULL(max_hp, hp) FROM door  (nolock) WHERE name = @name
  13029. GO
  13030.  
  13031. ALTER PROCEDURE dbo.lin_LoadFriends (@char_id INT)  
  13032. AS  
  13033.  
  13034. SET NOCOUNT ON  
  13035.  
  13036. SELECT friend_char_id, ud.char_name AS friend_char_name  
  13037. FROM user_friend AS uf, user_data AS ud  
  13038. WHERE uf.char_id = @char_id AND uf.friend_char_id = ud.char_id AND ud.account_id <> -1
  13039. GO
  13040.  
  13041. ALTER PROCEDURE dbo.lin_LoadHenna
  13042. (        
  13043. @char_id INT
  13044. )        
  13045. AS    
  13046. SET NOCOUNT ON        
  13047.  
  13048. SELECT  henna_1, henna_2, henna_3 FROM user_henna WHERE char_id = @char_id
  13049. GO
  13050.  
  13051. /****** Object:  Stored Procedure dbo.lin_LoadItemByItemId    Script Date: 2003-09-20 ?? 11:51:57 ******/
  13052. /********************************************
  13053. lin_LoadItemByItemId
  13054.    
  13055. INPUT
  13056.     @item_id        INT
  13057. OUTPUT
  13058. return
  13059. made by
  13060.     carrot
  13061. date
  13062.     2002-06-10
  13063. ********************************************/
  13064. ALTER PROCEDURE [DBO].[lin_LoadItemByItemId]
  13065. (
  13066.     @item_id        INT
  13067. )
  13068. AS
  13069. SET NOCOUNT ON
  13070.  
  13071. SELECT char_id, item_type, amount, enchant, eroded, bless, ident, wished, warehouse FROM user_item (nolock) WHERE item_id = @item_id AND (NOT item_type = 0)
  13072. GO
  13073.  
  13074. /********************************************  
  13075. lin_LoadItems  
  13076.  Load item data and check adena data  
  13077. INPUT  
  13078.  @char_id INT,  
  13079.  @warehouse  INT  
  13080. OUTPUT  
  13081.  item_id, item_type, amount, enchant, eroded, bless, ident, wished  
  13082. return  
  13083. made by  
  13084.  carrot  
  13085. date  
  13086.  2002-04-23  
  13087. //const WCHAR* qsLoadItems = L"SELECT item_id, item_type, amount, enchant, eroded, bless, ident, wished FROM user_item WHERE char_id = %d AND warehouse = %d AND (NOT item_type = 0) AND NOT ITEM_TYPE = 57";  
  13088. ********************************************/  
  13089. ALTER PROCEDURE [DBO].[lin_LoadItems]  
  13090. (  
  13091.  @char_id INT,  
  13092.  @warehouse INT  
  13093. )  
  13094. AS  
  13095. SET NOCOUNT ON  
  13096.  
  13097. DECLARE @nSum  INT  
  13098. DECLARE @nCount INT  
  13099.  
  13100. SET @nSum = 0  
  13101. SET @nCount = 0  
  13102.  
  13103.  
  13104. --SELECT @nCount = count(amount), @nSum = sum(amount) FROM user_item WHERE char_id = @char_id AND item_type = 57 AND warehouse = @warehouse  
  13105. --IF @nCount > 1  
  13106. --BEGIN  
  13107. -- DECLARE @nMaxItemId INT  
  13108. -- SELECT @nMaxItemId = Max(item_id) FROM user_item WHERE char_id = @char_id AND item_type = 57 AND warehouse = @warehouse  
  13109. -- IF @nMaxItemId > 0  
  13110. -- BEGIN  
  13111. --  UPDATE user_item Set amount = @nSum WHERE char_id = @char_id AND item_type = 57 AND warehouse = @warehouse And item_id = @nMaxItemId  
  13112. --  DELETE user_item WHERE char_id = @char_id AND item_type = 57 AND warehouse = @warehouse And NOT item_id = @nMaxItemId  
  13113. -- END  
  13114. --END  
  13115.  
  13116. SELECT item_id, item_type, amount, enchant, eroded, bless, ident, wished FROM user_item (nolock) WHERE char_id = @char_id AND warehouse = @warehouse  AND item_type > 0
  13117. GO
  13118.  
  13119. /********************************************
  13120. lin_LoadLastLogout
  13121.     load char last logout
  13122. INPUT
  13123.     char_id int
  13124.  
  13125. OUTPUT
  13126. return
  13127. made by
  13128.     carrot
  13129. date
  13130.     2003-12-1
  13131. ********************************************/
  13132. ALTER PROCEDURE [DBO].[lin_LoadLastLogout]
  13133. (
  13134. @char_id        INT
  13135.  
  13136. )
  13137. AS
  13138. SET NOCOUNT ON
  13139.  
  13140.  
  13141. SELECT YEAR(logout), MONTH(logout), DAY(logout), DATEPART(HOUR, logout), DATEPART(mi, logout), DATEPART(s, logout),
  13142. YEAR(login), MONTH(login), DAY(login), DATEPART(HOUR, login), DATEPART(mi, login), DATEPART(s, login),
  13143. YEAR(create_date), MONTH(create_date), DAY(create_date), DATEPART(HOUR, create_date), DATEPART(mi, create_date), DATEPART(s, create_date)
  13144. FROM user_data (nolock) WHERE char_id = @char_id
  13145. GO
  13146.  
  13147. /********************************************    
  13148. lin_LoadLastTaxUpdate  
  13149.      
  13150. INPUT    
  13151. OUTPUT    
  13152. made by    
  13153.  carrot    
  13154. date    
  13155.  2004-02-29  
  13156. ********************************************/    
  13157. ALTER PROCEDURE [DBO].[lin_LoadLastTaxUpdate]  
  13158. AS    
  13159.    
  13160. SET NOCOUNT ON    
  13161.  
  13162. SELECT TOP 1  
  13163.  YEAR(income_update), MONTH(income_update), DAY(income_update),  
  13164.  DATEPART ( hh , income_update ), DATEPART ( mi , income_update ), DATEPART ( ss , income_update ),  
  13165.  YEAR(tax_change), MONTH(tax_change), DAY(tax_change),  
  13166.  DATEPART ( hh , tax_change ), DATEPART ( mi , tax_change), DATEPART ( ss , tax_change),  
  13167.  YEAR(manor_reset), MONTH(manor_reset), DAY(manor_reset),  
  13168.  DATEPART ( hh , manor_reset ), DATEPART ( mi , manor_reset), DATEPART ( ss , manor_reset)  
  13169. FROM  
  13170.  castle_tax
  13171. GO
  13172.  
  13173. ALTER PROCEDURE [DBO].[lin_LoadLottoGame]
  13174. AS    
  13175.    
  13176. SET NOCOUNT ON    
  13177.  
  13178. SELECT  top 65535
  13179.     round_number,  
  13180.     state,
  13181.     left_time,
  13182.     chosen_number_flag,
  13183.     rule_number,
  13184.  
  13185.     total_count,
  13186.     winner1_count,
  13187.     winner2_count,
  13188.     winner3_count,
  13189.     winner4_count,
  13190.     carried_adena
  13191.  
  13192. FROM lotto_game (nolock)
  13193. ORDER BY round_number
  13194. GO
  13195.  
  13196. ALTER PROCEDURE [DBO].[lin_LoadLottoItems]
  13197. (
  13198.     @round INT
  13199. )
  13200. AS    
  13201.    
  13202. SET NOCOUNT ON    
  13203.  
  13204. SELECT  item_id,
  13205.     number_flag
  13206. FROM lotto_items
  13207. WHERE round_number = @round
  13208. GO
  13209.  
  13210. /********************************************        
  13211. lin_LoadManorInfo
  13212.  load manor seed next
  13213. INPUT        
  13214.  @manor_id
  13215. OUTPUT        
  13216. return        
  13217.        
  13218. made by        
  13219.  carrot        
  13220. date        
  13221.  2004-07-4
  13222. change        
  13223. ********************************************/        
  13224. ALTER  PROCEDURE [DBO].[lin_LoadManorInfo]
  13225. (        
  13226.  @manor_id INT
  13227. )        
  13228. AS        
  13229.        
  13230. SET NOCOUNT ON        
  13231.  
  13232. IF EXISTS(SELECT * FROM manor_info WHERE manor_id = @manor_id)
  13233. BEGIN
  13234.     SELECT
  13235.         residence_id, adena_vault, crop_buy_vault, change_state, CONVERT(nvarchar(19), last_changed, 121)
  13236.     FROM
  13237.         manor_info
  13238.     WHERE
  13239.         manor_id = @manor_id
  13240. END
  13241. ELSE
  13242. BEGIN
  13243.     SELECT 0, 0, 0, 0, '0000-00-00 00:00:00'
  13244.  
  13245. END
  13246. GO
  13247.  
  13248. /********************************************        
  13249. lin_LoadManorSeed
  13250.  load manor seed
  13251. INPUT        
  13252.  @manor_id
  13253. OUTPUT        
  13254. return        
  13255.        
  13256. made by        
  13257.  carrot        
  13258. date        
  13259.  2004-07-4
  13260. change        
  13261. ********************************************/        
  13262. ALTER PROCEDURE [DBO].[lin_LoadManorSeed]
  13263. (        
  13264.  @manor_id INT
  13265. )        
  13266. AS        
  13267.        
  13268. SET NOCOUNT ON        
  13269.  
  13270. SELECT
  13271.     data_index, seed_id, seed_price, seed_sell_count, seed_remain_count,
  13272.     crop_id, crop_price, crop_buy_count, crop_remain_count, crop_type, crop_deposit
  13273. FROM
  13274.     manor_data
  13275. WHERE
  13276.     manor_id = @manor_id
  13277. ORDER BY data_index
  13278. GO
  13279.  
  13280. /********************************************        
  13281. lin_LoadManorSeed_N
  13282.  load manor seed next
  13283. INPUT        
  13284.  @manor_id
  13285. OUTPUT        
  13286. return        
  13287.        
  13288. made by        
  13289.  carrot        
  13290. date        
  13291.  2004-07-4
  13292. change        
  13293. ********************************************/        
  13294. ALTER PROCEDURE [DBO].[lin_LoadManorSeed_N]
  13295. (        
  13296.  @manor_id INT
  13297. )        
  13298. AS        
  13299.        
  13300. SET NOCOUNT ON        
  13301.  
  13302. SELECT
  13303.     data_index, seed_id_n, seed_price_n, seed_sell_count_n,
  13304.     crop_id_n, crop_buy_count_n, crop_price_n, crop_type_n
  13305. FROM
  13306.     manor_data_n
  13307. WHERE
  13308.     manor_id = @manor_id
  13309. ORDER BY
  13310.     data_index
  13311. GO
  13312.  
  13313. /********************************************
  13314. lin_LoadMarketPriceList
  13315.     load item market price list
  13316. INPUT
  13317.  
  13318. OUTPUT
  13319. return
  13320. made by
  13321.     kks
  13322. date
  13323.     2005-04-01
  13324. ********************************************/
  13325. ALTER PROCEDURE [DBO].[lin_LoadMarketPriceList]
  13326. AS
  13327.  
  13328. SET NOCOUNT ON
  13329.  
  13330. SELECT item_type, enchant, avg_price FROM item_market_price (nolock)
  13331. WHERE frequency >= 10
  13332. GO
  13333.  
  13334. ALTER PROCEDURE [dbo].lin_LoadMercenary
  13335. (
  13336. @residence_id INT
  13337. )
  13338. AS
  13339. SELECT id, npc_id, x, y, z, angle, hp, mp
  13340. FROM mercenary
  13341. WHERE residence_id = @residence_id
  13342. GO
  13343.  
  13344. /********************************************
  13345. lin_LoadNewbieData
  13346.     load newbie data
  13347. INPUT
  13348.  
  13349. OUTPUT
  13350. return
  13351. made by
  13352.     kks
  13353. date
  13354.     2004-11-25
  13355. change
  13356. ********************************************/
  13357. ALTER PROCEDURE [DBO].[lin_LoadNewbieData]
  13358.  
  13359. AS
  13360.  
  13361. SET NOCOUNT ON
  13362.  
  13363. SELECT account_id, char_id, newbie_stat
  13364. FROM user_newbie (nolock)
  13365. GO
  13366.  
  13367. /****** Object:  Stored Procedure dbo.lin_LoadNpcBoss    Script Date: 2003-09-20 ?? 11:51:59 ******/
  13368. /********************************************
  13369. lin_LoadNpcBoss
  13370.    
  13371. INPUT  
  13372.     @NPC_name   nvarchar(50)
  13373. OUTPUT
  13374.     alive,
  13375.     hp,
  13376.     mp,
  13377.     pos_x,
  13378.     pos_y,
  13379.     pos_z,
  13380.     time_low,
  13381.     time_high
  13382.     i0
  13383. return
  13384. made by
  13385.     carrot
  13386. date
  13387.     2002-06-16
  13388. ********************************************/
  13389. ALTER PROCEDURE [DBO].[lin_LoadNpcBoss]
  13390. (
  13391.     @NPC_name   nvarchar(50)
  13392. )
  13393. AS
  13394. SET NOCOUNT ON
  13395.  
  13396. SELECT
  13397.     alive,  hp,  mp, pos_x, pos_y, pos_z, time_low, time_high , i0
  13398. FROM
  13399.     npc_boss  (nolock)  
  13400. WHERE
  13401.     npc_db_name = @NPC_name
  13402. GO
  13403.  
  13404. ALTER PROCEDURE dbo.lin_LoadOlympiad
  13405. AS
  13406. SET NOCOUNT ON
  13407.  
  13408. DECLARE @cnt INT
  13409. SELECT @cnt = COUNT(*) FROM olympiad
  13410.  
  13411. IF @cnt = 0
  13412. BEGIN
  13413.     INSERT INTO olympiad (step) VALUES (0)
  13414. END
  13415. SELECT TOP 1 season, step,
  13416. ISNULL(season_start_time, 0),
  13417. ISNULL(start_sec, 0),
  13418. ISNULL(bonus1_sec, 0),
  13419. ISNULL(bonus2_sec, 0),
  13420. ISNULL(bonus3_sec, 0),
  13421. ISNULL(bonus4_sec, 0),
  13422. ISNULL(nominate_sec, 0)
  13423. FROM olympiad ORDER BY season DESC
  13424. GO
  13425.  
  13426. /********************************************
  13427. lin_LoadPet
  13428.    
  13429. INPUT  
  13430.     @pet_id int
  13431. OUTPUT
  13432. return
  13433. made by
  13434.     kuooo
  13435. date
  13436.     2003-08-22
  13437. ********************************************/
  13438. ALTER PROCEDURE [DBO].[lin_LoadPet]
  13439. (
  13440.     @pet_id INT
  13441. )
  13442. AS
  13443. SET NOCOUNT ON
  13444.  
  13445. SELECT npc_class_id  , expoint , hp, mp, sp, meal, nick_name , slot1, slot2 FROM pet_data (nolock) WHERE pet_id = @pet_id
  13446. GO
  13447.  
  13448. /****** Object:  Stored Procedure dbo.lin_LoadPetItems    Script Date: 2003-09-20 ?? 11:51:59 ******/
  13449. /********************************************
  13450. lin_LoadPetItems
  13451.     Load item data from pet inventory
  13452. INPUT
  13453.     @pet_id     INT
  13454. OUTPUT
  13455.     item_id, item_type, amount, enchant, eroded, bless, ident, wished
  13456. return
  13457. made by
  13458.     kuooo
  13459. date
  13460.     2003-08-25
  13461.  
  13462. ********************************************/
  13463. ALTER PROCEDURE [DBO].[lin_LoadPetItems]
  13464. (
  13465.     @pet_id     INT
  13466. )
  13467. AS
  13468. SET NOCOUNT ON
  13469.  
  13470. SELECT item_id, item_type, amount, enchant, eroded, bless, ident, wished FROM user_item WHERE char_id = @pet_id  AND warehouse = 5
  13471. GO
  13472.  
  13473. /********************************************
  13474. lin_LoadPledgeAnnounce
  13475.     load pledge announce
  13476. INPUT
  13477.     @pledge_id      int
  13478. OUTPUT
  13479. return
  13480. made by
  13481.     kks
  13482. date
  13483.     2005-07-22
  13484. ********************************************/
  13485. ALTER PROCEDURE dbo.lin_LoadPledgeAnnounce
  13486. (  
  13487.     @pledge_id      INT
  13488. )  
  13489. AS  
  13490. SET NOCOUNT ON  
  13491.  
  13492.  
  13493. SELECT show_flag, content
  13494. FROM pledge_announce (nolock)
  13495. WHERE pledge_id = @pledge_id
  13496. GO
  13497.  
  13498. /****** Object:  Stored Procedure dbo.lin_LoadPledgeById    Script Date: 2003-09-20 ?? 11:51:59 ******/
  13499. /********************************************
  13500. lin_LoadPledgeById
  13501.    
  13502. INPUT
  13503.     @CharName       NVARCHAR(50)
  13504. OUTPUT
  13505. return
  13506. made by
  13507.     carrot
  13508. date
  13509.     2002-06-10
  13510. modified by kks (2005-07-22)
  13511. ********************************************/
  13512. ALTER PROCEDURE [DBO].[lin_LoadPledgeById]
  13513. (
  13514.     @PledgeId       INT
  13515. )
  13516. AS
  13517. SET NOCOUNT ON
  13518.  
  13519. SELECT
  13520.     p.pledge_id, p.name, p.ruler_id, ud.char_name,
  13521.     p.alliance_id, p.challenge_time, p.now_war_id, p.name_value, p.oust_time, p.skill_level,
  13522.     p.private_flag, p.STATUS, p.rank, p.castle_id, p.agit_id, p.root_name_value,
  13523.     p.crest_id, p.is_guilty, p.dismiss_reserved_time, p.alliance_ousted_time, p.alliance_withdraw_time, p.alliance_dismiss_time,
  13524.     p.emblem_id
  13525. FROM
  13526.     (SELECT * FROM pledge (nolock)WHERE pledge_id = @PledgeId) AS  p  
  13527.     JOIN
  13528.     (SELECT * FROM user_data (nolock)WHERE pledge_id = @PledgeId) AS  ud
  13529.     ON p.ruler_id = ud.char_id
  13530. GO
  13531.  
  13532. ALTER PROCEDURE [dbo].[lin_LoadPledgeByName]
  13533. (
  13534.  @PledgeName  NVARCHAR(50)  
  13535. )
  13536. AS
  13537. SET NOCOUNT ON
  13538.  
  13539. SELECT
  13540.     p.pledge_id, p.name, p.ruler_id, ud.char_name,  
  13541.     p.alliance_id, p.challenge_time, p.now_war_id, p.name_value, p.oust_time, p.skill_level,  
  13542.     p.private_flag, p.STATUS, p.rank, p.castle_id, p.agit_id, p.root_name_value,  
  13543.     p.crest_id, p.is_guilty, p.dismiss_reserved_time, p.alliance_ousted_time, p.alliance_withdraw_time, p.alliance_dismiss_time,
  13544.     p.emblem_id
  13545. FROM
  13546.     pledge p (NOLOCK), user_data ud (NOLOCK)
  13547. WHERE
  13548.     p.name = @PledgeName AND p.ruler_id = ud.char_id AND p.pledge_id = ud.pledge_id AND p.pledge_id <> -1
  13549. GO
  13550.  
  13551. /****** Object:  Stored Procedure dbo.lin_LoadPledgeCrest    Script Date: 2003-09-20 ?? 11:51:59 ******/
  13552. /********************************************
  13553. lin_LoadPledgeCrest
  13554.    
  13555. INPUT
  13556.     @crest_id   int
  13557. OUTPUT
  13558.     bitmap_size,
  13559.     bitmap
  13560. return
  13561. made by
  13562.     carrot
  13563. date
  13564.     2002-06-16
  13565. ********************************************/
  13566. ALTER PROCEDURE [DBO].[lin_LoadPledgeCrest]
  13567. (
  13568.     @crest_id   INT
  13569. )
  13570. AS
  13571. SET NOCOUNT ON
  13572.  
  13573. SELECT
  13574.     bitmap_size, bitmap
  13575. FROM
  13576.     pledge_crest  (nolock)
  13577. WHERE
  13578.     crest_id = @crest_id
  13579. GO
  13580.  
  13581. /********************************************  
  13582. lin_LoadPledgeMember  
  13583.    
  13584. INPUT  
  13585.  pledge_id = @pledge_id  
  13586. OUTPUT  
  13587. return  
  13588. made by  
  13589.  carrot  
  13590. date  
  13591.  2002-06-10  
  13592. change 2003-07-22 carrot  
  13593.  check character is deleted.  
  13594. ********************************************/  
  13595. ALTER PROCEDURE [DBO].[lin_LoadPledgeMember]  
  13596. (  
  13597.  @pledge_id  INT  
  13598. )  
  13599. AS  
  13600. SET NOCOUNT ON  
  13601.  
  13602. IF (@pledge_id > 0)
  13603. SELECT TOP 40 char_id FROM user_data (nolock) WHERE pledge_id = @pledge_id AND account_id > 0
  13604. GO
  13605.  
  13606. /****** Object:  Stored Procedure dbo.lin_LoadPledgeWar    Script Date: 2003-09-20 ?? 11:51:59 ******/
  13607. /********************************************
  13608. lin_LoadPledgeWar
  13609.    
  13610. INPUT
  13611.     @war_id     int
  13612. OUTPUT
  13613. return
  13614. made by
  13615.     carrot
  13616. date
  13617.     2002-06-10
  13618. ********************************************/
  13619. ALTER PROCEDURE [DBO].[lin_LoadPledgeWar]
  13620. (
  13621.     @war_id     INT
  13622. )
  13623. AS
  13624. SET NOCOUNT ON
  13625.  
  13626. SELECT challenger, challengee, begin_time, STATUS FROM pledge_war (nolock)  WHERE id = @war_id
  13627. GO
  13628.  
  13629. /********************************************  
  13630. lin_LoadQuest  
  13631.    
  13632. INPUT  
  13633.  @char_id int  
  13634. OUTPUT  
  13635. return  
  13636. made by  
  13637.  carrot  
  13638. date  
  13639.  2002-06-09  
  13640. ********************************************/  
  13641. ALTER PROCEDURE [DBO].[lin_LoadQuest]  
  13642. (  
  13643. @char_id INT  
  13644. )  
  13645. AS  
  13646. SET NOCOUNT ON  
  13647.  
  13648. SELECT TOP 1  q1, s1,  s2_1, j1,    
  13649.   q2, s2,  s2_2, j2,  
  13650.   q3, s3,  s2_3, j3,  
  13651.   q4, s4,  s2_4, j4,  
  13652.   q5, s5,  s2_5, j5,  
  13653.   q6, s6,  s2_6, j6,  
  13654.   q7, s7, s2_7,  j7,  
  13655.   q8, s8, s2_8,  j8,  
  13656.   q9, s9,  s2_9, j9,  
  13657.   q10, s10, s2_10,  j10,  
  13658.   q11, s11,  s2_11,  j11,  
  13659.   q12, s12, s2_12,  j12,  
  13660.   q13, s13, s2_13,  j13,  
  13661.    q14, s14, s2_14,  j14,  
  13662.   q15, s15,  s2_15, j15,  
  13663.   q16, s16,  s2_16, j16    
  13664. FROM quest (nolock)  
  13665. WHERE char_id = @char_id
  13666. GO
  13667.  
  13668. /********************************************        
  13669. lin_LoadRecipeInfo
  13670.  load all recipe
  13671. INPUT        
  13672.  @char_id
  13673. OUTPUT        
  13674. return        
  13675.        
  13676. made by        
  13677.  carrot        
  13678. date        
  13679.  2004-07-4
  13680. change        
  13681. ********************************************/        
  13682. ALTER PROCEDURE [DBO].[lin_LoadRecipeInfo]
  13683. (        
  13684.  @char_id INT
  13685. )        
  13686. AS        
  13687.        
  13688. SET NOCOUNT ON        
  13689.  
  13690. SELECT recipe_id FROM user_recipe WHERE char_id = @char_id ORDER BY recipe_id
  13691. GO
  13692.  
  13693. ALTER PROCEDURE [dbo].lin_LoadResidenceGuard
  13694. (
  13695. @residence_id INT
  13696. )
  13697. AS
  13698. SELECT item_id, npc_id, guard_type, can_move, x, y, z, angle
  13699. FROM residence_guard
  13700. WHERE residence_id = @residence_id
  13701. GO
  13702.  
  13703. ALTER PROCEDURE dbo.lin_LoadSiegeAgitPledge
  13704. (
  13705.     @agit_id INT
  13706. )
  13707. AS
  13708. SET NOCOUNT ON
  13709. SELECT pledge_id, propose_time, STATUS FROM siege_agit_pledge WHERE agit_id = @agit_id
  13710. GO
  13711.  
  13712. /********************************************        
  13713. lin_LoadSociality
  13714.  load sociality
  13715. INPUT        
  13716.  @char_id
  13717. OUTPUT        
  13718. return        
  13719.        
  13720. made by        
  13721.  carrot        
  13722. date        
  13723.  2004-07-4
  13724. change        
  13725. ********************************************/        
  13726. ALTER PROCEDURE [DBO].[lin_LoadSociality]
  13727. (        
  13728.  @char_id INT
  13729. )        
  13730. AS        
  13731.        
  13732. SET NOCOUNT ON        
  13733.  
  13734. IF EXISTS(SELECT  * FROM user_sociality WHERE char_id = @char_id)
  13735. BEGIN
  13736.     SELECT  sociality, used_sulffrage, CONVERT(nvarchar(19), last_changed, 121) FROM user_sociality WHERE char_id = @char_id
  13737. END
  13738. ELSE
  13739. BEGIN
  13740.     SELECT  0, 0, '0000-00-00 00:00:00'
  13741. END
  13742. GO
  13743.  
  13744. /**
  13745.   * @procedure lin_LoadSSQJoinInfo
  13746.   * @brief SSQ ??/?? ?? ?? ??
  13747.   *
  13748.   * @date 2004/11/18
  13749.   * @author sonai  <[email protected]>
  13750.   */
  13751. ALTER PROCEDURE [DBO].[lin_LoadSSQJoinInfo]
  13752. (
  13753. @round_number INT
  13754. )
  13755.  AS
  13756.  
  13757. SELECT point, collected_point, main_event_point, TYPE, member_count,
  13758.      seal1_selection_count,
  13759.      seal2_selection_count,
  13760.      seal3_selection_count,
  13761.      seal4_selection_count,
  13762.      seal5_selection_count,
  13763.      seal6_selection_count,
  13764.      seal7_selection_count
  13765.      
  13766.     FROM ssq_join_data WHERE round_number = @round_number
  13767. GO
  13768.  
  13769. /**  
  13770.   * @procedure lin_LoadSSQSystemInfo  
  13771.   * @brief SSQ ?? ??  
  13772.   *  
  13773.   * @date 2004/11/18  
  13774.   * @author sonai  <[email protected]>  
  13775.   */  
  13776. ALTER PROCEDURE [DBO].[lin_LoadSSQSystemInfo] AS  
  13777.  
  13778.  
  13779.  
  13780.  SELECT TOP 1 round_number,  STATUS, winner,  
  13781.    event_start_time, event_end_time, seal_effect_time, seal_effect_end_time,  
  13782.    seal1, seal2, seal3, seal4, seal5, seal6, seal7, ISNULL(castle_snapshot_time, 0), ISNULL(can_drop_guard, 0)  
  13783.    FROM ssq_data ORDER BY round_number DESC
  13784. GO
  13785.  
  13786. /**
  13787.   * @procedure lin_LoadSSQTopPointUser
  13788.   * @brief SSQ top point user? ??.
  13789.   *
  13790.   * @date 2004/12/08
  13791.   * @author sonai  <[email protected]>
  13792.   */
  13793. ALTER PROCEDURE [DBO].[lin_LoadSSQTopPointUser]
  13794. (
  13795. @ssq_round INT
  13796. )
  13797. AS
  13798.  
  13799. SELECT ssq_round, record_id, ssq_point, rank_time, char_id, char_name, ssq_part, ssq_position, seal_selection_no
  13800.             FROM ssq_top_point_user  WHERE ssq_round  = @ssq_round
  13801. GO
  13802.  
  13803. /**
  13804.  * @procedure lin_LoadSSQUserInfo
  13805.  * @brief  Load user's ssq info from ssq_user_data
  13806.  *
  13807.  * @date  2004/11/18
  13808.  * @author sonai <[email protected]>
  13809.  *
  13810.  * @param[in]  char_id user_data's id
  13811.  */
  13812. ALTER PROCEDURE [DBO].[lin_LoadSSQUserInfo]
  13813. (
  13814. @char_id INT
  13815. )
  13816. AS
  13817. SET NOCOUNT ON
  13818.  
  13819. SELECT round_number, ssq_join_time, ssq_part, ssq_position, seal_selection_no,
  13820.               ssq_point,
  13821.               twilight_a_item_num,twilight_b_item_num,twilight_c_item_num,
  13822.               dawn_a_item_num,dawn_b_item_num, dawn_c_item_num,
  13823.               ticket_buy_count      
  13824.              FROM ssq_user_data WHERE char_id = @char_id
  13825. GO
  13826.  
  13827. ALTER PROCEDURE dbo.lin_LoadTeamBattleAgitMember
  13828. (
  13829.     @agit_id INT
  13830. )
  13831. AS
  13832. SET NOCOUNT ON
  13833. SELECT char_id, pledge_id, propose_time FROM team_battle_agit_member WHERE agit_id = @agit_id
  13834. GO
  13835.  
  13836. ALTER PROCEDURE dbo.lin_LoadTeamBattleAgitPledge
  13837. (
  13838.     @agit_id INT
  13839. )
  13840. AS
  13841. SET NOCOUNT ON
  13842. SELECT pledge_id, propose_time, color, npc_type FROM team_battle_agit_pledge WHERE agit_id = @agit_id
  13843. GO
  13844.  
  13845. ALTER PROCEDURE dbo.lin_LoadTeamBattleAgitStatus
  13846. (
  13847.     @agit_id INT
  13848. )
  13849. AS
  13850. SET NOCOUNT ON
  13851. SELECT ISNULL(team_battle_status, 0) FROM agit WHERE id = @agit_id
  13852. GO
  13853.  
  13854. /**
  13855.   * @procedure lin_LoadTimeAttackRecord
  13856.   * @brief TimeAttackRecord ??
  13857.   *
  13858.   * @date 2004/12/04
  13859.   * @author sonai  <[email protected]>
  13860.   */
  13861. ALTER PROCEDURE [DBO].[lin_LoadTimeAttackRecord]
  13862. (
  13863. @ssq_round INT
  13864. )
  13865. AS
  13866.  
  13867. SELECT room_no, record_type, ssq_round, ssq_part, point, record_time, elapsed_time, member_count, member_names,
  13868.      ISNULL(member_dbid_list, ''), ISNULL(member_reward_flags, 0), ISNULL(fee, 0)
  13869.      FROM time_attack_record  WHERE ssq_round = @ssq_round
  13870. GO
  13871.  
  13872. /****** Object:  Stored Procedure dbo.lin_MakeBBSBoard    Script Date: 2003-09-20 ?? 11:51:57 ******/
  13873. /********************************************
  13874. lin_MakeBBSBoard
  13875.     Make BBS board
  13876. INPUT
  13877.     @board_name nvarchar(20),
  13878.     @board_desc nvarchar(50)
  13879. OUTPUT
  13880.  
  13881. return
  13882. made by
  13883.     young
  13884. date
  13885.     2002-10-16
  13886. ********************************************/
  13887. ALTER PROCEDURE [DBO].[lin_MakeBBSBoard]
  13888. (
  13889.     @board_name nvarchar(20),
  13890.     @board_desc nvarchar(50)
  13891. )
  13892. AS
  13893.  
  13894. SET nocount ON
  13895.  
  13896. DECLARE @ncount INT
  13897. DECLARE @TABLE_NAME nvarchar(20)
  13898. DECLARE @EXEC nvarchar(500)
  13899.  
  13900. SET @TABLE_NAME = 'bbs_' + @board_name
  13901.  
  13902. SELECT @ncount = COUNT(*) FROM sysobjects (nolock) WHERE name = @TABLE_NAME
  13903. SELECT @ncount
  13904. IF @ncount = 0
  13905. BEGIN
  13906.  
  13907.     SET @EXEC = 'CREATE TABLE dbo.' + @TABLE_NAME + '(' + CHAR(13)
  13908.     SET @EXEC = @EXEC + ' id int IDENTITY (1,1) NOT NULL, ' + CHAR(13)
  13909.     SET @EXEC = @EXEC + ' title nvarchar(100) NULL, ' + CHAR(13)
  13910.     SET @EXEC = @EXEC + ' contents nvarchar(3000) NULL, ' + CHAR(13)
  13911.     SET @EXEC = @EXEC + ' writer nvarchar(50) NULL, ' + CHAR(13)
  13912.     SET @EXEC = @EXEC + ' cdate datetime NOT NULL, ' + CHAR(13)
  13913.     SET @EXEC = @EXEC + ' nread int NOT NULL)  ' + CHAR(13)
  13914.     EXEC (@EXEC)
  13915.     SET @EXEC = 'ALTER TABLE dbo.' + @TABLE_NAME + ' WITH NOCHECK ADD' + CHAR(13)
  13916.     SET @EXEC = @EXEC + 'CONSTRAINT PK_' + @TABLE_NAME + ' PRIMARY KEY CLUSTERED' + CHAR(13)
  13917.     SET @EXEC = @EXEC + '( ' + CHAR(13)
  13918.     SET @EXEC = @EXEC + 'id ' + CHAR(13)
  13919.     SET @EXEC = @EXEC + ')' + CHAR(13)
  13920.     EXEC (@EXEC)
  13921.     SET @EXEC = 'ALTER TABLE dbo.' + @TABLE_NAME + ' WITH NOCHECK ADD' + CHAR(13)
  13922.     SET @EXEC = @EXEC + 'CONSTRAINT DF_' + @TABLE_NAME + '_cdate DEFAULT getdate() FOR cdate, ' + CHAR(13)
  13923.     SET @EXEC = @EXEC + 'CONSTRAINT DF_' + @TABLE_NAME + '_nread DEFAULT 0 FOR nread ' + CHAR(13)
  13924.     EXEC (@EXEC)
  13925.  
  13926.     INSERT INTO bbs_board(board_name, board_desc) VALUES(@TABLE_NAME, @board_desc)
  13927. END
  13928. GO
  13929.  
  13930. /********************************************
  13931. lin_MakeDailyWorldSnap
  13932. Daily World DB Snap
  13933.  
  13934. #argument   @db_server  varchar(30) name of database server
  13935. #argument   @user_id    varchar(30) user id
  13936. #argument   @user_pass  varchar(30) user password
  13937. #argument   @worldId    int     world id
  13938. #return
  13939. #result_set
  13940. #remark
  13941. #example    lin_RPMakeDailyWorldSnap 'db_server', 'gamma', '', 8
  13942. #history    create  zzangse     2005-03-03
  13943. #see lin_RPJoinSSQMember
  13944. #see lin_RPSSQSealSelection
  13945. #see lin_RPSnapSSQData
  13946. #see lin_RPSnapSSQJoinData
  13947. #see lin_RPSnapTimeAttackRecord
  13948. ********************************************/
  13949.  
  13950. ALTER             PROCEDURE [DBO].[lin_MakeDailyWorldSnap]
  13951.     @db_server  VARCHAR(30) ,
  13952.     @user_id    VARCHAR(30),
  13953.     @user_pass  VARCHAR(30),
  13954.     @worldId    INT
  13955. AS
  13956. SET NOCOUNT ON
  13957.  
  13958.  
  13959. DECLARE @table_to VARCHAR(60)
  13960. DECLARE @SQL VARCHAR(512)
  13961.  
  13962. -----------------------------
  13963. -- exec DailyWorldSnaptSP --
  13964. -----------------------------
  13965.  
  13966. -- lin_RPJoinSSQMember
  13967. SET @table_to =  'RP_TBLJOINSSQMEMBER_' + CAST(@worldId AS VARCHAR)
  13968. EXEC [lin2report].[dbo].[lin_RPJoinSSQMember] @db_server, @user_id, @user_pass, @table_to
  13969. waitfor delay '0:0:6'
  13970.  
  13971.  
  13972. -- lin_RPSSQSealSelection
  13973. SET @table_to =  'RP_TBLSSQSEALSELECTION_' + CAST(@worldId AS VARCHAR)
  13974. EXEC [lin2report].[dbo].[lin_RPSSQSealSelection] @db_server, @user_id, @user_pass, @table_to
  13975. waitfor delay '0:0:6'
  13976.  
  13977. -- lin_RPSnapSSQData
  13978. SET @table_to = 'RP_SNAPSSQDATA_' + CAST ( @worldId  AS VARCHAR )
  13979. EXEC [lin2report].[dbo].[lin_RPSnapSSQData] @db_server, @user_id, @user_pass, @table_to
  13980. waitfor delay '0:0:6'
  13981.  
  13982. -- lin_RPSnapSSQJoinData
  13983. SET @table_to = 'RP_SNAPSSQJOINDATA_' + CAST ( @worldId AS VARCHAR )
  13984. EXEC [lin2report].[dbo].[lin_RPSnapSSQJoinData] @db_server, @user_id, @user_pass, @table_to
  13985. waitfor delay '0:0:6'
  13986.  
  13987. -- lin_RPSnapTimeAttackRecord
  13988. SET @table_to = 'RP_SNAPTIMEATTACKRECORD_' + CAST (@worldId AS VARCHAR)
  13989. EXEC [lin2report].[dbo].[lin_RPSnapTimeAttackRecord] @db_server, @user_id, @user_pass, @table_to
  13990. waitfor delay '0:0:6'
  13991. GO
  13992.  
  13993. /****** Object:  Stored Procedure dbo.LIN_MakeNewBlankItem    Script Date: 2003-09-20 ?? 11:51:56 ******/
  13994. ALTER PROCEDURE [DBO].[LIN_MakeNewBlankItem]
  13995. AS
  13996.  
  13997. SET NOCOUNT ON
  13998.  
  13999. DECLARE @newItemId INT
  14000.  
  14001. INSERT INTO user_item (char_id, item_type, amount, enchant, eroded, bless, ident, wished, warehouse)
  14002. VALUES(0,0,0,0,0,0,0,0,0)
  14003.  
  14004. SET @newItemId = @@IDENTITY
  14005. SELECT @newItemId
  14006. GO
  14007.  
  14008. /******************************************************************************
  14009. #Name:  lin_MakeSnapTable
  14010. #Desc:  make tmp table for world snap shot of user_data, user_item, pledge, user_nobless
  14011.  
  14012. #Argument:
  14013.     Input:
  14014.     Output:
  14015. #Return:
  14016. #Result Set:
  14017.  
  14018. #Remark:
  14019. #Example:   exec lin_MakeSnapTable
  14020. #See:
  14021.  
  14022. #History:
  14023.     Create  flagoftiger 2004-06-15
  14024.     Modify  btwinuni    2005-05-16  add: pledge
  14025.     MOdify  btwinuni    2005-09-29  add: user_nobless
  14026. ******************************************************************************/
  14027. ALTER PROCEDURE [DBO].[lin_MakeSnapTable]
  14028.  
  14029. AS
  14030. SET NOCOUNT ON
  14031.  
  14032. DECLARE @SQL VARCHAR(4000)
  14033.  
  14034. -- check table whether tmp_user_item is exists or not
  14035. SET @SQL = 'if exists (select * from dbo.sysobjects where id = object_id(N''[dbo].[tmp_user_item]'') and objectproperty(id, N''IsUserTable'') = 1)'
  14036.     + ' begin'
  14037.     + ' drop table dbo.tmp_user_item'
  14038.     + ' end'
  14039. EXEC (@SQL)
  14040.  
  14041. -- user_item copy
  14042. SET @SQL = 'select item_id, char_id, item_type, amount, enchant, warehouse '
  14043.     + 'into tmp_user_item from user_item (nolock) where char_id > 0'
  14044. EXEC (@SQL)
  14045.  
  14046.  
  14047.  
  14048. -- check table whether tmp_user_data is exists or not
  14049. SET @SQL = 'if exists (select * from dbo.sysobjects where id = object_id(N''[dbo].[tmp_user_data]'') and objectproperty(id, N''IsUserTable'') = 1)'
  14050.     + ' begin'
  14051.     + ' drop table dbo.tmp_user_data'
  14052.     + ' end'
  14053. EXEC (@SQL)
  14054.  
  14055. -- user_data copy
  14056. SET @SQL = 'select char_name, char_id, account_name, account_id, pledge_id, builder, '
  14057.     + ' gender, race, class, world, SP, EXP, Lev, align, PK, PKpardon, Duel, create_date, '
  14058.     + ' login, logout, nickname, max_hp, max_mp, use_time, drop_exp, '
  14059.     + ' cp, max_cp, subjob_id, subjob0_class, subjob1_class, subjob2_class, subjob3_class '     -- add by btwinuni 2005-09-29
  14060.     + ' into tmp_user_data from user_data (nolock)'
  14061. EXEC (@SQL)
  14062.  
  14063.  
  14064.  
  14065. -- check table whether tmp_pledge is exists or not
  14066. SET @SQL = 'if exists (select * from dbo.sysobjects where id = object_id(N''[dbo].[tmp_pledge]'') and objectproperty(id, N''IsUserTable'') = 1)'
  14067.     + ' begin'
  14068.     + ' drop table dbo.tmp_pledge'
  14069.     + ' end'
  14070. EXEC (@SQL)
  14071.  
  14072. -- pledge copy
  14073. SET @SQL = 'select pledge_id, ruler_id, name, alliance_id, root_name_value, name_value, oust_time, skill_level,'
  14074.     + ' castle_id, agit_id, rank, status, is_guilty, dismiss_reserved_time'
  14075.     + ' into tmp_pledge from pledge (nolock)'
  14076. EXEC (@SQL)
  14077.  
  14078.  
  14079.  
  14080. -- check table whether tmp_user_nobless is exists or not
  14081. SET @SQL = 'if exists (select * from dbo.sysobjects where id = object_id(N''[dbo].[tmp_user_nobless]'') and objectproperty(id, N''IsUserTable'') = 1)'
  14082.     + ' begin'
  14083.     + ' drop table dbo.tmp_user_nobless'
  14084.     + ' end'
  14085. EXEC (@SQL)
  14086.  
  14087. -- user_nobless copy
  14088. SET @SQL = 'select char_id, nobless_type, hero_type, win_count, previous_point, olympiad_point, match_count, words'
  14089.     + ' into tmp_user_nobless from user_nobless (nolock)'
  14090. EXEC (@SQL)
  14091. GO
  14092.  
  14093. /********************************************
  14094. lin_ManageUserNameReserved
  14095.     manage user name reserved ( add, del )
  14096. INPUT
  14097.     @option int,
  14098.     @char_name  nvarchar(50),
  14099.     @account_id int,
  14100.     @used       int
  14101. OUTPUT
  14102.  
  14103. return
  14104. made by
  14105.     kks
  14106. date
  14107.     2004-12-13
  14108. ********************************************/
  14109. ALTER PROCEDURE [DBO].[lin_ManageUserNameReserved]
  14110. (
  14111.     @OPTION INT,
  14112.     @char_name  nvarchar(50),
  14113.     @account_id INT,
  14114.     @used       INT
  14115. )
  14116. AS
  14117. SET NOCOUNT ON
  14118.  
  14119. DECLARE @reservedcount INT
  14120. SET @reservedcount  = 0
  14121.  
  14122. IF ( @OPTION = 0 )
  14123. BEGIN
  14124.     -- add user name reserved
  14125.     SELECT @reservedcount  = COUNT(*) FROM user_name_reserved (nolock) WHERE char_name = @char_name
  14126.     IF ( @reservedcount >= 1)
  14127.         RETURN
  14128.  
  14129.     INSERT INTO user_name_reserved ( char_name, account_id, used )
  14130.     VALUES ( @char_name, @account_id, @used )
  14131. END
  14132.  
  14133. IF ( @OPTION = 1 )
  14134. BEGIN
  14135.     -- del user_name_reserved
  14136.     DELETE FROM user_name_reserved WHERE char_name = @char_name
  14137. END
  14138. GO
  14139.  
  14140. /********************************************
  14141. lin_ManBookMark
  14142.     manage bookmark ( add, get-list, get , del )
  14143. INPUT
  14144.     @char_id    int,
  14145.     @bookmark_name  nvarchar(50)
  14146. OUTPUT
  14147.  
  14148. return
  14149. made by
  14150.     young
  14151. date
  14152.     2002-11-13
  14153. ********************************************/
  14154. ALTER PROCEDURE [DBO].[lin_ManBookMark]
  14155. (
  14156.     @OPTION INT,
  14157.     @char_id    INT,
  14158.     @bookmark_id    INT=0,
  14159.     @bookmark_name  nvarchar(50)='',
  14160.     @x_loc      INT= 0,
  14161.     @y_loc      INT=0,
  14162.     @z_loc      INT=0
  14163. )
  14164. AS
  14165. SET NOCOUNT ON
  14166.  
  14167. DECLARE @bookmarkcount INT
  14168. SET @bookmarkcount  = 0
  14169.  
  14170. IF ( @OPTION = 1 )
  14171. BEGIN
  14172.     -- add bookmark
  14173.     SELECT @bookmarkcount  = COUNT(*) FROM bookmark (nolock) WHERE char_id = @char_id
  14174.     IF ( @bookmarkcount >= 200 )
  14175.         RETURN
  14176.  
  14177.     INSERT INTO bookmark ( char_id, name, world, x, y, z )
  14178.     VALUES ( @char_id, @bookmark_name, 0, @x_loc, @y_loc, @z_loc )
  14179. END
  14180.  
  14181. IF ( @OPTION = 2 )
  14182. BEGIN
  14183.     -- get bookmark list
  14184.     SELECT bookmarkid, name, x, y, z FROM bookmark (nolock) WHERE char_id = @char_id ORDER BY name ASC
  14185. END
  14186.  
  14187. IF ( @OPTION = 3 )
  14188. BEGIN
  14189.     -- get on ebookmark
  14190.     SELECT name, x, y, z FROM bookmark (nolock) WHERE bookmarkid = @bookmark_id
  14191. END
  14192.  
  14193. IF ( @OPTION = 4 )
  14194. BEGIN
  14195.     -- del one bookmark
  14196.     DELETE FROM bookmark WHERE bookmarkid = @bookmark_id
  14197. END
  14198. GO
  14199.  
  14200. /****** Object:  Stored Procedure dbo.lin_ModChar    Script Date: 2003-09-20 ?? 11:51:59 ******/
  14201. /********************************************
  14202. lin_ModChar
  14203.    
  14204. INPUT
  14205.     @sp     int,
  14206.     @exp        int,
  14207.     @align      int,
  14208.     @pk     int,
  14209.     @pkpardon   int,
  14210.     @duel       int,
  14211.     @char_id    int,
  14212.     @level      int
  14213. OUTPUT
  14214. return
  14215. made by
  14216.     carrot
  14217. date
  14218.     2002-06-10
  14219. ********************************************/
  14220. ALTER PROCEDURE [DBO].[lin_ModChar]
  14221. (
  14222.     @sp     INT,
  14223.     @EXP        INT,
  14224.     @level      INT,
  14225.     @align      INT,
  14226.     @pk     INT,
  14227.     @pkpardon   INT,
  14228.     @duel       INT,
  14229.     @char_id    INT
  14230. )
  14231. AS
  14232. SET NOCOUNT ON
  14233.  
  14234. UPDATE user_data SET sp=@sp, EXP=@EXP, lev = @level,  align=@align, pk=@pk, pkpardon=@pkpardon, duel=@duel WHERE char_id = @char_id
  14235. GO
  14236.  
  14237. /****** Object:  Stored Procedure dbo.lin_ModChar2    Script Date: 2003-09-20 ?? 11:51:59 ******/
  14238. /********************************************
  14239. lin_ModChar2
  14240.    
  14241. INPUT
  14242.     @sp     int,
  14243.     @exp        int,
  14244.     @align      int,
  14245.     @pk     int,
  14246.     @pkpardon   int,
  14247.     @duel       int,
  14248.     @char_id    int
  14249. OUTPUT
  14250. return
  14251. made by
  14252.     carrot
  14253. date
  14254.     2002-06-10
  14255. ********************************************/
  14256. ALTER PROCEDURE [DBO].[lin_ModChar2]
  14257. (
  14258.     @gender     INT,
  14259.     @race       INT,
  14260.     @class      INT,
  14261.     @face_index     INT,
  14262.     @hair_shape_index   INT,
  14263.     @hair_color_index       INT,
  14264.     @char_id    INT
  14265. )
  14266. AS
  14267. SET NOCOUNT ON
  14268.  
  14269. UPDATE user_data SET gender=@gender, race=@race, class=@class, face_index=@face_index, hair_shape_index=@hair_shape_index, hair_color_index=@hair_color_index WHERE char_id = @char_id
  14270. GO
  14271.  
  14272. /****** Object:  Stored Procedure dbo.lin_ModChar3    Script Date: 2003-09-20 ?? 11:51:59 ******/
  14273. /********************************************
  14274. lin_ModChar3
  14275.    
  14276. INPUT
  14277.     @mod field  int,
  14278.     @delta      int,
  14279.     @char_id    int
  14280. OUTPUT
  14281. return
  14282. made by
  14283.     young
  14284. date
  14285.     2003-08-26
  14286. ********************************************/
  14287. ALTER PROCEDURE [DBO].[lin_ModChar3]
  14288. (
  14289.     @sp     INT,
  14290.     @EXP        INT,
  14291.     @level      INT,
  14292.     @align      INT,
  14293.     @pk     INT,
  14294.     @pkpardon   INT,
  14295.     @duel       INT,
  14296.     @char_id    INT
  14297. )
  14298. AS
  14299. SET NOCOUNT ON
  14300.  
  14301. UPDATE user_data SET
  14302.     sp = sp + @sp,
  14303.     EXP = EXP + @EXP,  
  14304.     align = align + @align,
  14305.     pk = pk + @pk,
  14306.     pkpardon = pkpardon + @pkpardon,
  14307.     duel = duel + @duel,
  14308.     lev = @level
  14309. WHERE char_id = @char_id
  14310. GO
  14311.  
  14312. ALTER PROCEDURE dbo.lin_ModifyAllianceName
  14313. (  
  14314. @alliance_name  NVARCHAR(50),  
  14315. @alliance_id  INT  
  14316. )  
  14317. AS  
  14318. SET NOCOUNT ON
  14319.  
  14320. UPDATE alliance SET name = @alliance_name WHERE id = @alliance_id
  14321. GO
  14322.  
  14323. /****** Object:  Stored Procedure dbo.lin_ModifyPledgeName    Script Date: 2003-09-20 ?? 11:51:59 ******/
  14324. /********************************************
  14325. lin_ModifyPledgeName
  14326.    
  14327. INPUT
  14328.     @crest_id       int
  14329. OUTPUT
  14330. return
  14331. made by
  14332.     carrot
  14333. date
  14334.     2002-06-10
  14335. ********************************************/
  14336. ALTER PROCEDURE [DBO].[lin_ModifyPledgeName]
  14337. (
  14338.     @pledge_name        NVARCHAR(50),
  14339.     @pledge_id      INT
  14340. )
  14341. AS
  14342. SET NOCOUNT ON
  14343.  
  14344. UPDATE pledge SET name = @pledge_name WHERE pledge_id = @pledge_id
  14345. GO
  14346.  
  14347. /********************************************
  14348. lin_SendMailToReceiver
  14349.     send mail  to receiver
  14350. INPUT
  14351.     @mail_id        int,
  14352.     @receiverName       nvarchar(50)
  14353. OUTPUT
  14354. return
  14355. made by
  14356.     kks
  14357. date
  14358.     2004-12-19
  14359. modified by
  14360.     kks
  14361. date
  14362.     2005-04-06
  14363. ********************************************/
  14364. ALTER PROCEDURE [DBO].[lin_SendMailToReceiver]
  14365. (
  14366.     @mail_id        INT,
  14367.     @receiver_name      nvarchar(50)
  14368. )
  14369. AS
  14370. SET NOCOUNT ON
  14371.  
  14372. IF (@receiver_name = NULL)
  14373. BEGIN
  14374.     RETURN
  14375. END
  14376.  
  14377. DECLARE @receiver_id INT
  14378. SET @receiver_id = 0
  14379.  
  14380. SELECT @receiver_id  = char_id FROM user_data(nolock) WHERE char_name = @receiver_name
  14381.  
  14382. IF (@receiver_id > 0)
  14383. BEGIN
  14384.     INSERT INTO user_mail_receiver
  14385.     (mail_id, receiver_id, receiver_name)
  14386.     VALUES
  14387.     (@mail_id, @receiver_id, @receiver_name)
  14388. END
  14389. GO
  14390.  
  14391. /********************************************
  14392. lin_ModifySendTempMail
  14393.     modify and send temp mail
  14394. INPUT
  14395.     @char_id        int,
  14396.     @mail_id        int,
  14397.     @receiver_name_list     nvarchar(250),
  14398.     @title          nvarchar(200),
  14399.     @content        nvarchar(4000)
  14400. OUTPUT
  14401. return
  14402. made by
  14403.     kks
  14404. date
  14405.     2004-12-19
  14406. ********************************************/
  14407. ALTER PROCEDURE [dbo].[lin_ModifySendTempMail]
  14408. (
  14409.     @char_id        INT,
  14410.     @mail_id        INT,
  14411.     @receiver_name_list     nvarchar(250),
  14412.     @title          nvarchar(200),
  14413.     @content        nvarchar(4000)
  14414. )
  14415. AS
  14416. SET NOCOUNT ON
  14417.  
  14418. UPDATE user_mail
  14419. SET title = @title,
  14420.     content = @content,
  14421.     created_date = GETDATE()
  14422. WHERE id = @mail_id
  14423.  
  14424. UPDATE user_mail_sender
  14425. SET receiver_name_list = @receiver_name_list,
  14426.     send_date = GETDATE(),
  14427.     mailbox_type = 1
  14428. WHERE
  14429.     mail_id = @mail_id AND
  14430.     sender_id = @char_id
  14431.  
  14432. DECLARE @mail_type INT
  14433. SELECT @mail_type = mail_type FROM user_mail_sender(nolock) WHERE mail_id = @mail_id
  14434.  
  14435. IF @mail_type = 1
  14436. BEGIN
  14437.     DECLARE @char_name NVARCHAR(50)
  14438.     DECLARE name_cursor CURSOR FOR
  14439.     (SELECT char_name FROM user_data(nolock) WHERE pledge_id = (SELECT pledge_id FROM pledge(nolock) WHERE name = @receiver_name_list))
  14440.     OPEN name_cursor
  14441.     FETCH NEXT FROM name_cursor INTO @char_name
  14442.     WHILE @@FETCH_STATUS = 0
  14443.     BEGIN
  14444.         EXEC lin_SendMailToReceiver @mail_id, @char_name
  14445.     END
  14446.  
  14447.     CLOSE name_cursor
  14448.     DEALLOCATE name_cursor
  14449. END
  14450. ELSE
  14451. BEGIN
  14452.     DECLARE @receiver_name_list_replaced nvarchar(300)
  14453.     SELECT @receiver_name_list_replaced = REPLACE(@receiver_name_list,';', ' ; ')
  14454.    
  14455.     DECLARE @receiver_name1 nvarchar (50), @receiver_name2 nvarchar (50), @receiver_name3 nvarchar (50), @receiver_name4 nvarchar (50), @receiver_name5 nvarchar (50)
  14456.     EXEC master..xp_sscanf @receiver_name_list_replaced, '%s ; %s ; %s ; %s ; %s',
  14457.        @receiver_name1 OUTPUT, @receiver_name2 OUTPUT, @receiver_name3 OUTPUT, @receiver_name4 OUTPUT, @receiver_name5 OUTPUT
  14458.    
  14459.     EXEC lin_SendMailToReceiver @mail_id, @receiver_name1
  14460.     EXEC lin_SendMailToReceiver @mail_id, @receiver_name2
  14461.     EXEC lin_SendMailToReceiver @mail_id, @receiver_name3
  14462.     EXEC lin_SendMailToReceiver @mail_id, @receiver_name4
  14463.     EXEC lin_SendMailToReceiver @mail_id, @receiver_name5
  14464. END
  14465. GO
  14466.  
  14467. /********************************************
  14468. lin_ModifyTempMail
  14469.     modify temp mail
  14470. INPUT
  14471.     @char_id        int,
  14472.     @mail_id        int,
  14473.     @receiver_name_list     nvarchar(250),
  14474.     @title          nvarchar(200),
  14475.     @content        nvarchar(4000)
  14476. OUTPUT
  14477. return
  14478. made by
  14479.     kks
  14480. date
  14481.     2004-12-19
  14482. ********************************************/
  14483. ALTER PROCEDURE [dbo].[lin_ModifyTempMail]
  14484. (
  14485.     @char_id        INT,
  14486.     @mail_id        INT,
  14487.     @receiver_name_list     nvarchar(250),
  14488.     @title          nvarchar(200),
  14489.     @content        nvarchar(4000)
  14490. )
  14491. AS
  14492. SET NOCOUNT ON
  14493.  
  14494. UPDATE user_mail
  14495. SET title = @title,
  14496.     content = @content,
  14497.     created_date = GETDATE()
  14498. WHERE id = @mail_id
  14499.  
  14500. UPDATE user_mail_sender
  14501. SET receiver_name_list = @receiver_name_list,
  14502.     send_date = GETDATE()
  14503. WHERE
  14504.     mail_id = @mail_id AND
  14505.     sender_id = @char_id
  14506. GO
  14507.  
  14508. /********************************************
  14509. lin_ModItemOwner
  14510.    
  14511. INPUT
  14512.     @item_id    INT,
  14513.     @new_char_id    INT,
  14514.     @new_warehouse  INT
  14515. OUTPUT
  14516. return
  14517. made by
  14518.     young
  14519. date
  14520.     2003-11-07
  14521. ********************************************/
  14522. ALTER PROCEDURE [DBO].[lin_ModItemOwner]
  14523. (
  14524. @item_id    INT,
  14525. @new_char_id    INT,
  14526. @new_warehouse  INT
  14527.  
  14528. )
  14529. AS
  14530. SET NOCOUNT ON
  14531.  
  14532. UPDATE user_item  SET char_id=@new_char_id,  warehouse=@new_warehouse WHERE item_id=@item_id
  14533. GO
  14534.  
  14535. -- 2005-11-16   created by btwinuni
  14536. -- 2005-11-23   modified by btwinuni    check nobless
  14537. ALTER PROCEDURE dbo.lin_ModOlympiadPoint
  14538. (
  14539.     @char_id    INT,
  14540.     @previous_point INT,
  14541.     @olympiad_point INT,
  14542.     @mod_type   INT
  14543. )
  14544. AS
  14545.  
  14546. DECLARE
  14547.     @old_previous_point INT,
  14548.     @old_olympiad_point INT,
  14549.     @new_previous_point INT,
  14550.     @new_olympiad_point INT
  14551.  
  14552. SELECT @old_previous_point = previous_point, @old_olympiad_point = olympiad_point
  14553. FROM user_nobless (nolock)
  14554. WHERE char_id = @char_id
  14555.  
  14556. -- is not nobless
  14557. IF @old_previous_point IS NULL OR @old_olympiad_point IS NULL
  14558. RETURN
  14559.  
  14560. IF @mod_type = 1    -- relative
  14561. BEGIN
  14562.     SET @new_previous_point = @old_previous_point + @previous_point
  14563.     IF @new_previous_point < 0
  14564.         SET @new_previous_point = 0
  14565.  
  14566.     SET @new_olympiad_point = @old_olympiad_point + @olympiad_point
  14567.     IF @new_olympiad_point < 0
  14568.         SET @new_olympiad_point = 0
  14569. END
  14570. ELSE        -- absolute
  14571. BEGIN
  14572.     SET @new_previous_point = @previous_point
  14573.     IF @new_previous_point < 0
  14574.         SET @new_previous_point = 0
  14575.  
  14576.     SET @new_olympiad_point = @olympiad_point
  14577.     IF @new_olympiad_point < 0
  14578.         SET @new_olympiad_point = 0
  14579. END
  14580.  
  14581. UPDATE user_nobless
  14582. SET previous_point = @new_previous_point,
  14583.     olympiad_point = @new_olympiad_point
  14584. WHERE char_id = @char_id
  14585. GO
  14586.  
  14587. /********************************************
  14588. lin_ModSubJobAbility
  14589.    
  14590. INPUT
  14591.     @char_id    int,
  14592.     @subjob_id  int,
  14593.     @sp     int,
  14594.     @exp        int,
  14595.     @lev        int
  14596. OUTPUT
  14597. return
  14598. made by
  14599.     kks
  14600. date
  14601.     2005-01-18
  14602. modified by
  14603.     kernel0
  14604. date    2005-04-20 
  14605. ********************************************/
  14606. ALTER PROCEDURE [DBO].[lin_ModSubJobAbility]
  14607. (
  14608.     @char_id    INT,
  14609.     @subjob_id  INT,
  14610.     @sp     INT,
  14611.     @EXP        INT,
  14612.     @lev        INT
  14613. )
  14614. AS
  14615. SET NOCOUNT ON
  14616.  
  14617. UPDATE user_subjob SET sp = sp + @sp, EXP = EXP + @EXP,  level = @lev WHERE char_id = @char_id AND subjob_id = @subjob_id
  14618. GO
  14619.  
  14620. /********************************************
  14621. lin_ModSubJobAbilityAbsolutely
  14622.    
  14623. INPUT
  14624.     @char_id    int,
  14625.     @subjob_id  int,
  14626.     @sp     int,
  14627.     @exp        int,
  14628.     @lev        int
  14629. OUTPUT
  14630. return
  14631. made by
  14632.     kks
  14633. date
  14634.     2005-01-18
  14635. ********************************************/
  14636. ALTER PROCEDURE [DBO].[lin_ModSubJobAbilityAbsolutely]
  14637. (
  14638.     @char_id    INT,
  14639.     @subjob_id  INT,
  14640.     @sp     INT,
  14641.     @EXP        INT,
  14642.     @lev        INT
  14643. )
  14644. AS
  14645. SET NOCOUNT ON
  14646.  
  14647. UPDATE user_subjob SET sp =  @sp, EXP = @EXP,  level =  @lev WHERE char_id = @char_id AND subjob_id = @subjob_id
  14648. GO
  14649.  
  14650. /********************************************
  14651. lin_ModSubJobClass
  14652.    
  14653. INPUT
  14654.     @char_id    int,
  14655.     @subjob_id  int,
  14656.     @class      int
  14657. OUTPUT
  14658. return
  14659. made by
  14660.     kks
  14661. date
  14662.     2005-01-18
  14663.     2005-09-07  modified by btwinuni
  14664. ********************************************/
  14665. ALTER PROCEDURE [DBO].[lin_ModSubJobClass]
  14666. (
  14667.     @char_id    INT,
  14668.     @subjob_id  INT,
  14669.     @class      INT
  14670. )
  14671. AS
  14672. SET NOCOUNT ON
  14673.  
  14674. --update user_subjob set class=@class where char_id = @char_id and subjob_id = @subjob_id
  14675. DECLARE @SQL VARCHAR(1000)
  14676. SET @SQL = 'update user_data '
  14677.     + ' set subjob' + CAST(@subjob_id AS VARCHAR) + '_class = ' + CAST(@class AS VARCHAR)
  14678.     + ' where char_id = ' + CAST(@char_id AS VARCHAR)
  14679. EXEC (@SQL)
  14680. GO
  14681.  
  14682. ALTER PROCEDURE [dbo].lin_MoveCharacter
  14683. (
  14684.     @player_id INT
  14685. )
  14686. AS
  14687. SET NOCOUNT ON
  14688.  
  14689. DECLARE @pledge_id INT
  14690. DECLARE @alliance_id    INT
  14691.  
  14692. SELECT @pledge_id = pledge_id  FROM user_data WHERE char_id = @player_id
  14693.  
  14694. IF @pledge_id <> 0
  14695. BEGIN
  14696.     DECLARE @ruler_id INT
  14697.     SELECT @ruler_id = ruler_id FROM pledge WHERE pledge_id = @pledge_id
  14698.  
  14699. --  IF @ruler_id = @player_id -- ???? ?? ?? ??
  14700. --  BEGIN
  14701. --      DELETE FROM pledge WHERE pledge_id = @pledge_id
  14702. --  END
  14703.     UPDATE user_data SET pledge_id = 0 , nickname = NULL WHERE char_id = @player_id
  14704. END
  14705. GO
  14706.  
  14707. /********************************************
  14708. lin_MoveCharClear
  14709.     clear moved character
  14710. INPUT
  14711.  
  14712. OUTPUT
  14713.  
  14714. return
  14715. made by
  14716.     young
  14717. date
  14718.     2003-7-30
  14719. ********************************************/
  14720. ALTER PROCEDURE [DBO].[lin_MoveCharClear]
  14721.     @world_id   INT
  14722. AS
  14723.  
  14724. SET NOCOUNT ON
  14725.  
  14726. -- set character as non-playable
  14727. -- update user_data set old_account_id = account_id
  14728. -- where account_id > 0 and char_id in ( select old_char_id from lin2comm.dbo.req_charmove (nolock) where old_world_id = @world_id )
  14729.  
  14730. UPDATE user_data SET account_id = -3
  14731. WHERE char_id IN ( SELECT old_char_id FROM dbo.req_charmove (nolock) WHERE old_world_id = @world_id )
  14732.  
  14733. -- update pledge info
  14734. DECLARE @old_char_id INT
  14735. DECLARE @old_char_name nvarchar(50)
  14736.  
  14737. DECLARE move_cursor CURSOR FOR
  14738. SELECT old_char_id, old_char_name
  14739. FROM dbo.req_charmove (nolock)
  14740. WHERE old_world_id = @world_id
  14741.  
  14742. OPEN move_cursor
  14743.  
  14744. FETCH NEXT FROM move_cursor  
  14745. INTO @old_char_id, @old_char_name
  14746.  
  14747. WHILE @@FETCH_STATUS = 0
  14748. BEGIN
  14749.     SELECT @old_char_id, @old_char_name
  14750.     EXEC lin_MoveCharacter @old_char_id
  14751.  
  14752.     -- Get the next
  14753.     FETCH NEXT FROM move_cursor
  14754.     INTO @old_char_id, @old_char_name
  14755.  
  14756. END
  14757.  
  14758. close move_cursor
  14759. deallocate move_cursor
  14760. GO
  14761.  
  14762. ALTER PROCEDURE dbo.lin_MoveCharCopyChar
  14763. (
  14764.     @world_id   VARCHAR(5)
  14765. )
  14766. AS
  14767.  
  14768.  
  14769. DECLARE @SQL VARCHAR(1024)
  14770. DECLARE @conn_str VARCHAR(256)
  14771.  
  14772. SET @conn_str = '127.0.0.' + @world_id + ''';''sa'';''sa'
  14773.  
  14774.  
  14775. SET @SQL = ' insert into req_charmove ( old_char_name, old_char_id, account_name, account_id,  old_world_id, new_world_id, new_char_name ) select R1.char_name, char_id, account_name, account_id, ' + @world_id + ' , 100, R1.char_name + ''-' + @world_id + '''   from ( select * from '
  14776.     + ' OPENROWSET ( ''SQLOLEDB'', ''' + @conn_str + ''', '' select char_id, char_name, account_id, account_name from lin2world.dbo.user_data (nolock)  '' ) )  as R1 '
  14777.     + ' left join ( select * from req_char (nolock) where server_id = ' + @world_id + ' ) as R2 '
  14778.     + ' on R1.char_name = R2.char_name '
  14779.     + ' where server_id is not null '
  14780. EXEC ( @SQL )
  14781. GO
  14782.  
  14783. ALTER PROCEDURE dbo.lin_MoveCharCopyPledge
  14784. (
  14785.     @world_id   VARCHAR(5)
  14786. )
  14787. AS
  14788.  
  14789.  
  14790. DECLARE @SQL VARCHAR(1024)
  14791. DECLARE @conn_str VARCHAR(256)
  14792.  
  14793. SET @conn_str = '127.0.0.' + @world_id + ''';''sa'';''sa'
  14794.  
  14795. SET @SQL = ' insert into req_charmove ( old_char_name, old_char_id, account_name, account_id,  old_world_id, new_world_id, new_char_name ) select R1.char_name, char_id, account_name, account_id, ' + @world_id + ' , 100, R1.char_name + ''-' + @world_id + '''   from ( select * from '
  14796.     + ' OPENROWSET ( ''SQLOLEDB'', ''' + @conn_str + ''', '' select pledge_id, char_id, char_name, account_id, account_name from lin2world.dbo.user_data (nolock) where account_id > 0  '' ) )  as R1 '
  14797.     + ' left join ( select * from req_pledge (nolock) where server_id = ' + @world_id + ' ) as R2 '
  14798.     + ' on R1.pledge_id = R2.pledge_id '
  14799.     + ' where server_id is not null '
  14800.  
  14801. EXEC ( @SQL )
  14802. GO
  14803.  
  14804. ALTER PROCEDURE dbo.lin_MoveCharPlg
  14805. (
  14806.     @world_id   VARCHAR(5)
  14807. )
  14808. AS
  14809.  
  14810.  
  14811. DECLARE @SQL VARCHAR(1024)
  14812. DECLARE @conn_str VARCHAR(256)
  14813.  
  14814. SET @conn_str = '127.0.0.' + @world_id + ''';''sa'';''sa'
  14815.  
  14816. SET @SQL = ' insert into pledge ( old_world_id, old_pledge_id,  old_ruler_id, ruler_id, name, alliance_id, challenge_time, root_name_value, now_war_id, oust_time, skill_level, castle_id, agit_id, rank, name_value, status, private_flag, crest_id, is_guilty, dismiss_reserved_time, alliance_ousted_time, alliance_withdraw_time, alliance_dismiss_time )  '
  14817.     + ' select ' + @world_id + '  , R1.pledge_id, ruler_id, 0, name + ''-' + @world_id + ''' , 0, 0, 0, 0 ,0 ,0 , 0, 0, 0, name_value, 0, 0, 0, 0, 0, 0, 0, 0  from ( select * from '
  14818.     + ' OPENROWSET ( ''SQLOLEDB'', ''' + @conn_str + ''', '' select * from lin2world.dbo.pledge (nolock)  '' ) )  as R1 '
  14819.     + ' left join ( select * from req_pledge (nolock) where server_id = ' + @world_id + ' ) as R2 '
  14820.     + ' on R1.pledge_id = R2.pledge_id '
  14821.     + ' where server_id is not null '
  14822.  
  14823. EXEC ( @SQL )
  14824. GO
  14825.  
  14826. -- drop procedure lin_MoveCharSvr
  14827.  
  14828. /********************************************
  14829. lin_MoveCharSvr
  14830.     move char
  14831. INPUT
  14832.     @world_id   int
  14833. OUTPUT
  14834.  
  14835. return
  14836. made by
  14837.     young
  14838. date
  14839.     2003-7-30
  14840.     2003-10-06
  14841.     2004-1-6
  14842. ********************************************/
  14843. ALTER PROCEDURE [DBO].[lin_MoveCharSvr]
  14844. (
  14845.     @old_world_id       INT,
  14846.     @new_world_id       INT,
  14847.     @conn_str       VARCHAR(100)
  14848. )
  14849. AS
  14850.  
  14851. SET NOCOUNT ON
  14852.  
  14853. DECLARE @SQL VARCHAR(4000)
  14854.  
  14855. --  & ' OPENROWSET ( 'SQLOLEDB', '127.0.0.1';'sa';'sa', '
  14856.  
  14857.  
  14858. -- make user_data
  14859.  
  14860. SET @SQL = ' insert into user_data ( '
  14861.     + ' char_name, pledge_id, account_name, account_id, builder, gender, race, class, world, xloc, yloc, zloc,  '
  14862.     + ' IsInVehicle, HP, MP, SP, Exp, Lev, align, PK, PKpardon, Duel, ST_underware, ST_right_ear, ST_left_ear, '
  14863.     + ' ST_neck, ST_right_finger, ST_left_finger, ST_head, ST_right_hand, ST_left_hand, ST_gloves, ST_chest,  '
  14864.     + ' ST_feet, ST_back, ST_both_hand, ST_legs, create_date, login, logout, quest_flag, power_flag, max_hp, max_mp, '
  14865.     + ' quest_memo, face_index, hair_color_index,  hair_shape_index, use_time, drop_exp,  '
  14866.     + ' surrender_war_id, pledge_withdraw_time, pledge_ousted_time, pledge_leave_status, pledge_leave_time, '
  14867.     + ' pledge_dismiss_time , old_pledge_id, old_char_id '
  14868.     + ' ) '
  14869.     + ' select R2.new_char_name, 0, account_name, R1.account_id, builder, gender, race, class, world, xloc, yloc, zloc,  '
  14870.     + ' IsInVehicle, HP, MP, SP, Exp, Lev, align, PK, PKpardon, Duel, 0, 0, 0, '
  14871.     + ' 0, 0, 0, 0, 0, 0, 0, 0,  '
  14872.     + ' 0, 0, 0, 0,  create_date, login, logout, quest_flag, power_flag, max_hp, max_mp, '
  14873.     + ' quest_memo, face_index, hair_color_index, hair_shape_index, use_time, drop_exp,  '
  14874.     + ' 0, 0, 0, 0, 0, '
  14875.     + '  0 , pledge_id, char_id '
  14876.     + ' from '
  14877.     + ' ( '
  14878.     + ' select pledge_id, char_id, account_name, account_id, builder, gender, race, class, world, xloc, yloc, zloc,  '
  14879.     + ' IsInVehicle, HP, MP, SP, Exp, Lev, align, PK, PKpardon, Duel, ST_underware, ST_right_ear, ST_left_ear, '
  14880.     + ' ST_neck, ST_right_finger, ST_left_finger, ST_head, ST_right_hand, ST_left_hand, ST_gloves, ST_chest,  '
  14881.     + ' ST_feet, ST_back, ST_both_hand, ST_legs,  create_date, login, logout, quest_flag, power_flag, max_hp, max_mp, '
  14882.     + ' quest_memo, face_index, hair_color_index, hair_shape_index, use_time, drop_exp,  '
  14883.     + ' surrender_war_id, pledge_withdraw_time, pledge_ousted_time, pledge_leave_status, pledge_leave_time, '
  14884.     + ' pledge_dismiss_time '
  14885.     + ' from '
  14886.     + ' OPENROWSET ( ''SQLOLEDB'', ''' + @conn_str + ''', '
  14887.     + ' '' select * from lin2world.dbo.user_data (nolock) '' ) '
  14888.     + ' where char_id in ( select old_char_id from req_charmove (nolock) where old_world_id = ' + CAST ( @old_world_id AS VARCHAR) + ' and new_world_id = ' + CAST ( @new_world_id AS VARCHAR) + ' ) '
  14889.     + ' ) as R1 '
  14890.     + ' left join ( select new_char_name, account_id, old_char_id from req_charmove (nolock) where old_world_id = ' + CAST ( @old_world_id AS VARCHAR) + ' and new_world_id = ' + CAST ( @new_world_id  AS VARCHAR ) + ' )  '
  14891.     + ' as R2 '
  14892.     + ' on R1.char_id = R2.old_char_id '
  14893.  
  14894. SELECT @SQL
  14895.  
  14896. EXEC (@SQL)
  14897.  
  14898. -- update char_id
  14899. SET @SQL = ' update r '
  14900.     + ' set r.new_char_id = u.char_id '
  14901.     + ' from req_charmove as r  inner join user_data as u '
  14902.     + ' on r.new_char_name = u.char_name '
  14903.     + ' where r.old_world_id = ' +  CAST ( @old_world_id AS VARCHAR)  + ' and r.new_world_id = ' + CAST ( @new_world_id AS VARCHAR)   + '  and u.account_id > 0  '
  14904.  
  14905. EXEC (@SQL)
  14906.  
  14907. -- update pledge in user_data table
  14908. SET @SQL = ' update r '
  14909.     + ' set r.pledge_id = u.pledge_id '
  14910.     + ' from user_data as r  inner join pledge as u '
  14911.     + ' on r.old_pledge_id = u.old_pledge_id '
  14912.     + ' where r.char_name like ''%-' +  CAST ( @old_world_id AS VARCHAR)  + '''  and u.pledge_id is not null  '
  14913. SELECT @SQL
  14914.  
  14915. EXEC (@SQL)
  14916.  
  14917.  
  14918. -- update pledge owner in pledge table
  14919. SET @SQL = ' update r '
  14920.     + ' set r.ruler_id = u.char_id'
  14921.     + ' from pledge as r  inner join user_data as u '
  14922.     + ' on r.old_ruler_id = u.old_char_id '
  14923.     + ' where r.old_world_id = ' +  CAST ( @old_world_id AS VARCHAR)  + '  and u.char_id is not null  '
  14924.  
  14925. EXEC (@SQL)
  14926.  
  14927.  
  14928. -- copy user_item
  14929. SET @SQL = ' insert into user_item (char_id, item_type, amount, enchant, eroded, bless,  ident, wished, warehouse, old_world_id, old_item_id ) '
  14930.     + ' select R2.new_char_id, R1.item_type, R1.amount, R1.enchant, R1.eroded, R1.bless, R1. ident, R1.wished, R1.warehouse, ' + CAST ( @old_world_id AS VARCHAR ) + ' , R1.item_id '
  14931.     + ' from '
  14932.     + ' ( '
  14933.     + ' select * from '
  14934.     + ' OPENROWSET ( ''SQLOLEDB'', ''' + @conn_str + ''', '
  14935.     + ' '' select * from lin2world.dbo.user_item (nolock) '' ) '
  14936.     + ' where char_id in ( select old_char_id from req_charmove (nolock) where old_world_id = ' +  CAST ( @old_world_id AS VARCHAR) + ' and new_world_id = ' + CAST ( @new_world_id AS VARCHAR) + '  ) '
  14937.     + ' ) as R1 '
  14938.     + ' left join ( select new_char_id , old_char_id from req_charmove (nolock) where old_world_id = ' +   CAST ( @old_world_id AS VARCHAR) + ' and new_world_id = ' + CAST ( @new_world_id AS VARCHAR) + ' ) '
  14939.     + ' as R2 '
  14940.     + ' on R1.char_id = R2.old_char_id '
  14941.     + ' where new_char_id is not null '
  14942.  
  14943. EXEC (@SQL)
  14944.  
  14945.  
  14946. -- copy user_skill
  14947. SET @SQL = ' insert into user_skill ( char_id, skill_id, skill_lev, to_end_time) '
  14948.     + ' select R2.new_char_id, R1.skill_id, R1.skill_lev, R1.to_end_time '
  14949.     + ' from '
  14950.     + ' ( '
  14951.     + ' select * from  '
  14952.     + ' OPENROWSET ( ''SQLOLEDB'', ''' + @conn_str + ''', '
  14953.     + ' '' select * from lin2world.dbo.user_skill (nolock) '' ) '
  14954.     + ' where char_id in ( select old_char_id from req_charmove (nolock) where old_world_id = ' +   CAST ( @old_world_id AS VARCHAR) + ' and new_world_id = ' + CAST ( @new_world_id AS VARCHAR) + ' ) '
  14955.     + ' ) as R1 '
  14956.     + ' left join ( select new_char_id , old_char_id from req_charmove (nolock) where old_world_id = ' +  CAST ( @old_world_id AS VARCHAR) + ' and new_world_id = ' + CAST ( @new_world_id AS VARCHAR) + ' ) '
  14957.     + ' as R2 '
  14958.     + ' on R1.char_id = R2.old_char_id '
  14959.     + ' where new_char_id is not null '
  14960. EXEC (@SQL)
  14961.  
  14962.  
  14963. -- copy quest
  14964. SET @SQL = ' insert into quest ( char_id, q1, s1, q2, s2, q3, s3, q4, s4, q5, s5, q6, s6, q7, s7, q8, s8, q9, s9, q10, s10, q11, s11, q12, s12, q13, s13, q14, s14, q15, s15, q16, s16) '
  14965.     + ' select R2.new_char_id, q1, s1, q2, s2, q3, s3, q4, s4, q5, s5, q6, s6, q7, s7, q8, s8, q9, s9, q10, s10, q11, s11, q12, s12, q13, s13, q14, s14, q15, s15, q16, s16 '
  14966.     + ' from '
  14967.     + ' ( '
  14968.     + ' select * from  '
  14969.     + ' OPENROWSET ( ''SQLOLEDB'', ''' + @conn_str + ''', '
  14970.     + ' '' select * from lin2world.dbo.quest (nolock) '' ) '
  14971.     + ' where char_id in ( select old_char_id from req_charmove (nolock) where old_world_id = ' +  CAST ( @old_world_id AS VARCHAR) + ' and new_world_id = ' + CAST ( @new_world_id AS VARCHAR) + ' ) '
  14972.     + ' ) as R1 '
  14973.     + ' left join ( select new_char_id , old_char_id from req_charmove (nolock) where old_world_id = ' +  CAST ( @old_world_id AS VARCHAR) + ' and new_world_id = ' + CAST ( @new_world_id AS VARCHAR) + ' ) '
  14974.     + ' as R2 '
  14975.     + ' on R1.char_id = R2.old_char_id '
  14976.     + ' where new_char_id is not null '
  14977.  
  14978. EXEC (@SQL)
  14979.  
  14980.  
  14981. -- copy user_history
  14982. SET @SQL = ' insert into user_history( char_name, char_id, log_date, log_action, account_name, create_date) '
  14983.     + ' select R2.new_char_name, R2.new_char_id, R1.log_date, R1.log_action, R1.account_name, R1.create_date '
  14984.     + ' from '
  14985.     + ' ( '
  14986.     + ' select * from  '
  14987.     + ' OPENROWSET ( ''SQLOLEDB'', ''' + @conn_str + ''', '
  14988.     + ' '' select * from lin2world.dbo.user_history (nolock) '' ) '
  14989.     + ' where char_id in ( select old_char_id from req_charmove (nolock) where old_world_id = ' +   CAST ( @old_world_id AS VARCHAR) + ' and new_world_id = ' + CAST ( @new_world_id AS VARCHAR) + ' ) '
  14990.     + ' ) as R1 '
  14991.     + ' left join ( select new_char_name, new_char_id , old_char_id from req_charmove (nolock) where old_world_id = ' +   CAST ( @old_world_id AS VARCHAR) + ' and new_world_id = ' + CAST ( @new_world_id AS VARCHAR) + ' ) '
  14992.     + ' as R2 '
  14993.     + ' on R1.char_id = R2.old_char_id '
  14994.     + ' where new_char_id is not null '
  14995.  
  14996. EXEC (@SQL)
  14997.  
  14998.  
  14999. -- copy user_log
  15000. SET @SQL = ' insert into user_log  ( char_id, log_id, log_date, log_from, log_to, use_time ) '
  15001.     + ' select R2.new_char_id, log_id, log_date, log_from, log_to, use_time  '
  15002.     + ' from '
  15003.     + ' ( '
  15004.     + ' select * from  '
  15005.     + ' OPENROWSET ( ''SQLOLEDB'', ''' + @conn_str + ''', '
  15006.     + ' '' select * from lin2world.dbo.user_log  (nolock) '' ) '
  15007.     + ' where char_id in ( select old_char_id from req_charmove (nolock) where old_world_id = ' +   CAST ( @old_world_id AS VARCHAR) + ' and new_world_id = ' + CAST ( @new_world_id AS VARCHAR)  + ' ) '
  15008.     + ' ) as R1 '
  15009.     + ' left join ( select new_char_id , old_char_id from req_charmove (nolock) where old_world_id = ' +   CAST ( @old_world_id AS VARCHAR) + '  and new_world_id = ' + CAST ( @new_world_id AS VARCHAR)  + '  ) '
  15010.     + ' as R2 '
  15011.     + ' on R1.char_id = R2.old_char_id '
  15012.     + ' where new_char_id is not null '
  15013. EXEC (@SQL)
  15014.  
  15015.  
  15016. -- shortcut_data
  15017. SET @SQL = ' insert into shortcut_data ( char_id, slotnum, shortcut_type, shortcut_id, shortcut_macro ) '
  15018.     + ' select R2.new_char_id, slotnum, shortcut_type, shortcut_id, shortcut_macro '
  15019.     + ' from '
  15020.     + ' ( '
  15021.     + ' select * from  '
  15022.     + ' OPENROWSET ( ''SQLOLEDB'', ''' + @conn_str + ''', '
  15023.     + ' '' select * from lin2world.dbo.shortcut_data (nolock) '' ) '
  15024.     + ' where char_id in ( select old_char_id from req_charmove (nolock) where old_world_id = ' +   CAST ( @old_world_id AS VARCHAR)  + ' and new_world_id = ' + CAST ( @new_world_id AS VARCHAR) + ' ) '
  15025.     + ' ) as R1 '
  15026.     + ' left join ( select new_char_id , old_char_id from req_charmove (nolock) where old_world_id = ' +  CAST ( @old_world_id AS VARCHAR) + ' and new_world_id = ' + CAST ( @new_world_id AS VARCHAR)  + ' ) '
  15027.     + ' as R2 '
  15028.     + ' on R1.char_id = R2.old_char_id '
  15029.     + ' where new_char_id is not null '
  15030. EXEC (@SQL)
  15031.  
  15032.  
  15033. -- user_comment
  15034. SET @SQL = ' insert into user_comment ( char_name, char_id, comment, comment_date, writer, deleted ) '
  15035.     + ' select R2.new_char_name, R2.new_char_id, comment, comment_date, writer, deleted  '
  15036.     + ' from '
  15037.     + ' ( '
  15038.     + ' select * from  '
  15039.     + ' OPENROWSET ( ''SQLOLEDB'', ''' + @conn_str + ''', '
  15040.     + ' '' select * from lin2world.dbo.user_comment  (nolock) '' ) '
  15041.     + ' where char_id in ( select old_char_id from req_charmove (nolock) where old_world_id = ' +   CAST ( @old_world_id AS VARCHAR)  + ' and new_world_id = ' + CAST ( @new_world_id AS VARCHAR) + ' ) '
  15042.     + ' ) as R1 '
  15043.     + ' left join ( select new_char_name, new_char_id , old_char_id from req_charmove (nolock) where old_world_id = ' +  CAST ( @old_world_id AS VARCHAR) + ' and new_world_id = ' + CAST ( @new_world_id AS VARCHAR)  + ' ) '
  15044.     + ' as R2 '
  15045.     + ' on R1.char_id = R2.old_char_id '
  15046.     + ' where new_char_id is not null '
  15047. EXEC (@SQL)
  15048.  
  15049.  
  15050. -- pet_data
  15051. SET @SQL = ' insert into pet_data ( pet_id, npc_class_id, expoint, nick_name, hp, mp, sp, meal  ) '
  15052.     + ' select item_id, npc_class_id, expoint, null, hp, mp, sp, meal   '
  15053.     + ' from '
  15054.     + ' ( select * from user_item (nolock) where item_type = 2375 and old_world_id = ' + CAST ( @old_world_id AS VARCHAR ) + ' ) as R1 '
  15055.     + ' left join '
  15056.     + ' ( '
  15057.     + ' select * from  '
  15058.     + ' OPENROWSET ( ''SQLOLEDB'', ''' + @conn_str + ''', '
  15059.     + ' '' select pet_id, npc_class_id, expoint, hp, mp, sp, meal  from lin2world.dbo.pet_data (nolock) '' ) '
  15060.     + ' ) as R2 '
  15061.     + ' on R1.old_item_id = R2.pet_id '
  15062.     + ' where R2.npc_class_id is not null '
  15063. EXEC (@SQL)
  15064.  
  15065.  
  15066.  
  15067. -- user_item owned by pet
  15068. SET @SQL = ' insert into user_item( char_id, item_type, amount, enchant, eroded, bless, ident, wished, warehouse  ) '
  15069.     + ' select R2.item_id, R1.item_type, R1.amount, R1.enchant, R1.eroded, R1.bless, R1.ident, R1.wished, R1.warehouse  '
  15070.     + ' from '
  15071.     + ' ( '
  15072.     + ' select * from  '
  15073.     + ' OPENROWSET ( ''SQLOLEDB'', ''' + @conn_str + ''', '
  15074.     + ' '' select * from lin2world.dbo.user_item (nolock) where warehouse = 5 '' ) '
  15075.     + ' ) as R1 '
  15076.     + ' left join '
  15077.     + ' ( select * from user_item (nolock) where old_world_id = ' + CAST ( @old_world_id AS VARCHAR ) + ' ) as R2 '
  15078.     + ' on R1.char_id = R2.old_item_id '
  15079.     + ' where R2.item_id is not null '
  15080.  
  15081. EXEC (@SQL)
  15082. GO
  15083.  
  15084. ALTER PROCEDURE dbo.lin_NewNobless
  15085. (
  15086. @char_id INT,
  15087. @nobless_type INT,
  15088. @olympiad_point INT
  15089. )
  15090. AS
  15091. SET NOCOUNT ON
  15092.  
  15093. INSERT user_nobless
  15094. (char_id,  nobless_type, olympiad_point)
  15095. VALUES
  15096. (@char_id, @nobless_type, @olympiad_point)
  15097.  
  15098. SELECT @@ROWCOUNT
  15099. GO
  15100.  
  15101. ALTER PROCEDURE dbo.lin_NewTeamBattleAgitMember
  15102. (
  15103.     @agit_id INT,
  15104.     @char_id INT,
  15105.     @pledge_id INT,
  15106.     @propose_time INT
  15107. )
  15108. AS
  15109. SET NOCOUNT ON
  15110.  
  15111. DECLARE @ret INT
  15112.  
  15113. INSERT INTO team_battle_agit_member
  15114. (agit_id, char_id, pledge_id, propose_time)
  15115. VALUES
  15116. (@agit_id, @char_id, @pledge_id, @propose_time)
  15117.  
  15118. IF @@ERROR = 0 AND @@ROWCOUNT = 1
  15119. BEGIN
  15120.     SELECT @ret = 1
  15121. END
  15122. ELSE
  15123. BEGIN
  15124.     SELECT @ret = 0
  15125. END
  15126.  
  15127. SELECT @ret
  15128. GO
  15129.  
  15130. ALTER PROCEDURE dbo.lin_NewTeamBattleAgitPledge
  15131. (
  15132.     @agit_id INT,
  15133.     @pledge_id INT,
  15134.     @char_id INT,
  15135.     @propose_time INT,
  15136.     @color INT,
  15137.     @npc_type INT
  15138. )
  15139. AS
  15140. SET NOCOUNT ON
  15141.  
  15142. DECLARE @ret INT
  15143.  
  15144. BEGIN TRAN
  15145.  
  15146. INSERT INTO team_battle_agit_pledge
  15147. (agit_id, pledge_id, propose_time, color, npc_type)
  15148. VALUES
  15149. (@agit_id, @pledge_id, @propose_time, @color, @npc_type)
  15150.  
  15151. IF @@ERROR <> 0 OR @@ROWCOUNT <> 1
  15152. BEGIN
  15153.     SELECT @ret = 0
  15154.     GOTO EXIT_TRAN
  15155. END
  15156.  
  15157. INSERT INTO team_battle_agit_member
  15158. (agit_id, char_id, pledge_id, propose_time)
  15159. VALUES
  15160. (@agit_id, @char_id, @pledge_id, @propose_time)
  15161.  
  15162. IF @@ERROR = 0 AND @@ROWCOUNT = 1
  15163. BEGIN
  15164.     SELECT @ret = 1
  15165. END
  15166. ELSE
  15167. BEGIN
  15168.     SELECT @ret = 0
  15169. END
  15170.  
  15171. EXIT_TRAN:
  15172.  
  15173. IF @ret <> 0
  15174. BEGIN
  15175.     COMMIT TRAN
  15176. END
  15177. ELSE
  15178. BEGIN
  15179.     ROLLBACK TRAN
  15180. END
  15181.  
  15182. SELECT @ret
  15183. GO
  15184.  
  15185. ALTER PROCEDURE dbo.lin_NominateHeroes
  15186. (
  15187. @now_season INT,
  15188. @new_step INT,
  15189. @new_season_start_time INT
  15190. )
  15191. AS
  15192. SET NOCOUNT ON
  15193.  
  15194. UPDATE user_nobless
  15195. SET hero_type = 0
  15196.  
  15197. CREATE TABLE #hero_candidate (char_id INT, main_class INT, match_count INT, olympiad_point INT)
  15198. INSERT INTO #hero_candidate
  15199.     SELECT un.char_id, ud.subjob0_class, un.match_count, un.olympiad_point
  15200.     FROM user_nobless un, user_data ud
  15201.     WHERE un.char_id = ud.char_id AND un.match_count >= 5 AND un.olympiad_win_count >= 1
  15202.  
  15203. CREATE TABLE #highest_score (main_class INT, olympiad_point INT, match_count INT)
  15204.  
  15205. DECLARE @hero_candidate_class INT
  15206. DECLARE hero_candidate_cursor CURSOR FOR
  15207. SELECT DISTINCT main_class FROM #hero_candidate
  15208.  
  15209. OPEN hero_candidate_cursor
  15210.  
  15211. FETCH NEXT FROM hero_candidate_cursor INTO @hero_candidate_class
  15212.  
  15213. WHILE @@FETCH_STATUS = 0
  15214. BEGIN
  15215.  
  15216. INSERT INTO #highest_score
  15217.     SELECT TOP 1 main_class, olympiad_point, match_count
  15218.     FROM #hero_candidate
  15219.     WHERE main_class = @hero_candidate_class
  15220.     ORDER BY olympiad_point DESC, match_count DESC
  15221.  
  15222.     FETCH NEXT FROM hero_candidate_cursor INTO @hero_candidate_class
  15223. END
  15224.  
  15225. CLOSE hero_candidate_cursor
  15226. DEALLOCATE hero_candidate_cursor
  15227.  
  15228. CREATE TABLE #highest_score_nobless (char_id INT, main_class INT)
  15229. INSERT INTO #highest_score_nobless
  15230.     SELECT c.char_id, c.main_class FROM #hero_candidate c, #highest_score s
  15231.         WHERE c.main_class = s.main_class AND c.olympiad_point = s.olympiad_point AND c.match_count = s.match_count
  15232.  
  15233. CREATE TABLE #hero (char_id INT, main_class INT)
  15234. INSERT INTO #hero
  15235.     SELECT char_id, main_class  FROM #highest_score_nobless WHERE main_class IN (SELECT main_class FROM #highest_score_nobless GROUP BY main_class HAVING COUNT(main_class) = 1)
  15236.  
  15237. UPDATE user_nobless
  15238. SET hero_type = 1, win_count = win_count+1
  15239. WHERE char_id IN (SELECT char_id FROM #hero)
  15240.  
  15241. UPDATE user_nobless
  15242. SET previous_point = olympiad_point
  15243.  
  15244. UPDATE user_nobless
  15245. SET olympiad_point = 0, match_count = 0, olympiad_win_count = 0, olympiad_lose_count = 0
  15246.  
  15247. INSERT INTO olympiad_result
  15248.     SELECT @now_season, main_class, char_id, olympiad_point, match_count FROM #hero_candidate
  15249.  
  15250. INSERT INTO olympiad
  15251.     (step, season_start_time) VALUES (@new_step, @new_season_start_time)
  15252.  
  15253. SELECT @@IDENTITY
  15254. GO
  15255.  
  15256. /****** Object:  Stored Procedure dbo.lin_OustMemberPledge    Script Date: 2003-09-20 ?? 11:51:59 ******/
  15257. -- lin_OustMemberPledge
  15258. -- by bert
  15259. -- return Result(0 if failed)
  15260.  
  15261. ALTER PROCEDURE
  15262. dbo.lin_OustMemberPledge (@alliance_id INT, @member_pledge_id INT, @oust_time INT)
  15263. AS
  15264.  
  15265. SET NOCOUNT ON
  15266.  
  15267. DECLARE @RESULT INT
  15268.  
  15269. BEGIN TRAN
  15270.  
  15271. UPDATE alliance
  15272. SET oust_time = @oust_time
  15273. WHERE id = @alliance_id
  15274.  
  15275. IF @@ERROR = 0 AND @@ROWCOUNT = 1
  15276. BEGIN
  15277.     SELECT @RESULT = 1
  15278. END
  15279. ELSE
  15280. BEGIN
  15281.     SELECT @RESULT = 0
  15282.     GOTO EXIT_TRAN
  15283. END
  15284.  
  15285. UPDATE pledge
  15286. SET alliance_id = 0, alliance_ousted_time = @oust_time
  15287. WHERE pledge_id = @member_pledge_id
  15288.  
  15289. IF @@ERROR = 0 AND @@ROWCOUNT = 1
  15290. BEGIN
  15291.     SELECT @RESULT = 1
  15292. END
  15293. ELSE
  15294. BEGIN
  15295.     SELECT @RESULT = 0
  15296. END
  15297.  
  15298. EXIT_TRAN:
  15299. IF @RESULT <> 0
  15300. BEGIN
  15301.     COMMIT TRAN
  15302. END
  15303. ELSE
  15304. BEGIN
  15305.     ROLLBACK TRAN
  15306. END
  15307.  
  15308. SELECT @RESULT
  15309. GO
  15310.  
  15311. /****** Object:  Stored Procedure dbo.lin_OustPledgeMember    Script Date: 2003-09-20 ?? 11:51:57 ******/
  15312. -- lin_OustPledgeMember
  15313. -- by bert
  15314. -- return ousted member id
  15315. ALTER PROCEDURE [DBO].[lin_OustPledgeMember]
  15316. (
  15317.     @pledge_id  INT,
  15318.     @char_name  NVARCHAR(50)
  15319. )
  15320. AS
  15321.  
  15322. DECLARE @ret INT
  15323. DECLARE @char_id INT
  15324.  
  15325. SELECT @char_id = char_id
  15326. FROM user_data
  15327. WHERE char_name = @char_name
  15328.  
  15329. IF @@ERROR <> 0 OR @@ROWCOUNT <> 1
  15330. BEGIN
  15331.     SELECT @ret = 0
  15332.     GOTO EXIT_PROC
  15333. END
  15334.  
  15335. SET NOCOUNT ON
  15336.  
  15337. BEGIN TRAN
  15338.  
  15339. UPDATE user_data
  15340. SET pledge_id = 0
  15341. WHERE char_id = @char_id AND pledge_id = @pledge_id
  15342.  
  15343. IF @@ERROR = 0 AND @@ROWCOUNT = 1
  15344. BEGIN
  15345.     SELECT @ret = @char_id
  15346.     -- ???? ??? ??? ????.
  15347. END
  15348. ELSE
  15349. BEGIN
  15350.     SELECT @ret = 0
  15351.     GOTO EXIT_TRAN
  15352. END
  15353.  
  15354. EXIT_TRAN:
  15355. IF @ret<> 0
  15356. BEGIN
  15357.     COMMIT TRAN
  15358. END
  15359. ELSE
  15360. BEGIN
  15361.     ROLLBACK TRAN
  15362. END
  15363.  
  15364. EXIT_PROC:
  15365. SELECT @ret
  15366. GO
  15367.  
  15368. /****** Object:  Stored Procedure dbo.lin_ReadBbsall    Script Date: 2003-09-20 ?? 11:51:57 ******/
  15369. ALTER PROCEDURE [DBO].[lin_ReadBbsall]
  15370. (
  15371.     @nId    INT
  15372. )
  15373. AS
  15374.  
  15375. SET NOCOUNT ON
  15376.  
  15377. SELECT
  15378.     cnt, orderedTitle.title, orderedTitle.contents, orderedTitle.writer, CAST( orderedTitle.cdate AS smalldatetime)
  15379. FROM
  15380.     (SELECT
  15381.         COUNT(bbs2.id) AS cnt, bbs1.id, bbs1.title, bbs1.contents, bbs1.writer, bbs1.cdate
  15382.     FROM
  15383.         Bbs_all AS bbs1
  15384.         INNER JOIN
  15385.         Bbs_all AS bbs2
  15386.         ON bbs1.id <= bbs2.id
  15387.     GROUP BY
  15388.         bbs1.id, bbs1.title, bbs1.contents, bbs1.writer, bbs1.cdate
  15389.     ) AS orderedTitle
  15390. WHERE
  15391.     orderedTitle.id = @nId
  15392.  
  15393. IF @@rowcount = 1  
  15394.     UPDATE Bbs_all SET nRead = nRead + 1 WHERE id = @nId
  15395. ELSE
  15396.     RAISERROR ('Unavailable id.', 16, 1)
  15397. GO
  15398.  
  15399. /****** Object:  Stored Procedure dbo.lin_ReadBbsTGS    Script Date: 2003-09-20 ?? 11:51:57 ******/
  15400. ALTER PROCEDURE [DBO].[lin_ReadBbsTGS]
  15401. (
  15402.     @nId    INT
  15403. )
  15404. AS
  15405.  
  15406. SET NOCOUNT ON
  15407.  
  15408. SELECT id, title, contents, writer, CAST( cdate AS smalldatetime)
  15409. FROM bbs_tgs (nolock)
  15410. WHERE id = @nId
  15411.  
  15412. UPDATE bbs_tgs SET nRead = nRead + 1 WHERE id = @nId
  15413. GO
  15414.  
  15415. /****** Object:  Stored Procedure dbo.lin_RefreshCharacterByName    Script Date: 2003-09-20 ?? 11:52:00 ******/
  15416. /********************************************
  15417. lin_RefreshCharacterByName
  15418.    
  15419. INPUT
  15420.     @CharName       NVARCHAR(50)
  15421. OUTPUT
  15422. return
  15423. made by
  15424.     carrot
  15425. date
  15426.     2002-06-10
  15427. ********************************************/
  15428. ALTER PROCEDURE [DBO].[lin_RefreshCharacterByName]
  15429. (
  15430.     @CharName       NVARCHAR(50)
  15431. )
  15432. AS
  15433. SET NOCOUNT ON
  15434.  
  15435. SELECT
  15436.     char_id, account_name, account_id, pledge_id, builder, gender, race, class, world, xloc, yloc, zloc,
  15437.     HP, MP, SP, EXP, Lev, align, PK, duel, pkpardon,
  15438.     ST_underware, ST_right_ear, ST_left_ear, ST_neck, ST_right_finger, ST_left_finger, ST_head, ST_right_hand, ST_left_hand, ST_gloves, ST_chest, ST_legs, ST_feet, ST_back, ST_both_hand
  15439. FROM user_data (nolock)  
  15440. WHERE char_name = @CharName
  15441. GO
  15442.  
  15443. /******************************************************************************
  15444. #Name:  lin_RegisterAccount
  15445. #Desc:  add account to account_ch2 table
  15446.  
  15447. #Argument:
  15448.     Input:  @account_name   VARCHAR(50)
  15449.     Output:
  15450. #Return:
  15451. #Result Set:
  15452.  
  15453. #Remark:
  15454. #Example:
  15455. #See:
  15456. #History:
  15457.     Create  btwinuni    2005-09-12
  15458. ******************************************************************************/
  15459. ALTER PROCEDURE [dbo].[lin_RegisterAccount]
  15460. (
  15461.     @account_name   nvarchar(50)
  15462. )
  15463. AS
  15464.  
  15465. SET NOCOUNT ON
  15466.  
  15467. -- if there is not account_ch2 table, end procedure
  15468. IF NOT EXISTS (SELECT * FROM dbo.sysobjects WHERE id = object_id(N'[dbo].[account_ch2]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1)
  15469. BEGIN
  15470.     RETURN
  15471. END
  15472.  
  15473. -- account duplication check
  15474. IF NOT EXISTS (SELECT * FROM account_ch2 WHERE account = @account_name)
  15475. BEGIN
  15476.     INSERT INTO account_ch2 VALUES (@account_name)
  15477. END
  15478. GO
  15479.  
  15480. ALTER PROCEDURE dbo.lin_RegisterSiegeAgitPledge
  15481. (
  15482.     @agit_id INT,
  15483.     @pledge_id INT,
  15484.     @propose_time INT
  15485. )
  15486. AS
  15487. SET NOCOUNT ON
  15488.  
  15489. DECLARE @ret INT
  15490.  
  15491. INSERT INTO siege_agit_pledge
  15492. (agit_id, pledge_id, propose_time)
  15493. VALUES
  15494. (@agit_id, @pledge_id, @propose_time)
  15495.  
  15496. IF @@ERROR = 0 AND @@ROWCOUNT = 1
  15497. BEGIN
  15498.     SELECT @ret = 1
  15499. END
  15500. ELSE
  15501. BEGIN
  15502.     SELECT @ret = 0
  15503. END
  15504.  
  15505. SELECT @ret
  15506. GO
  15507.  
  15508. ALTER PROCEDURE dbo.lin_ReloadOlympiadPoint
  15509. (
  15510. @char_id INT
  15511. )
  15512. AS
  15513. SELECT olympiad_point FROM user_nobless WHERE char_id = @char_id
  15514. GO
  15515.  
  15516. -- lin_RenewAgitDeco
  15517. -- by bert
  15518. -- return (1, 0)
  15519. ALTER PROCEDURE dbo.lin_RenewAgitDeco
  15520. (
  15521.     @agit_id INT,
  15522.     @TYPE INT,
  15523.     @expire INT
  15524. )
  15525. AS
  15526. SET NOCOUNT ON
  15527.  
  15528. UPDATE agit_deco
  15529. SET expire = @expire
  15530. WHERE agit_id = @agit_id AND TYPE = @TYPE
  15531.  
  15532. SELECT @@ROWCOUNT
  15533. GO
  15534.  
  15535. ALTER PROCEDURE dbo.lin_RenewSubjob
  15536. (
  15537.     @char_id        INT,
  15538.     @subjob_id      TINYINT,
  15539.     @new_class      TINYINT,
  15540.     @old_subjob_id      TINYINT,
  15541.     @hp             FLOAT,
  15542.     @mp             FLOAT,
  15543.     @sp             INT,
  15544.     @EXP            INT,
  15545.     @level          TINYINT,
  15546.     @henna_1        INT,
  15547.     @henna_2        INT,
  15548.     @henna_3        INT
  15549. )
  15550. AS
  15551.  
  15552. SET NOCOUNT ON
  15553.  
  15554. DECLARE @ret INT
  15555. SELECT @ret = 0
  15556. -- transaction on
  15557. BEGIN TRAN
  15558.  
  15559. IF (@subjob_id != @old_subjob_id)   -- save now info
  15560. BEGIN
  15561.     UPDATE user_subjob
  15562.     SET hp = @hp, mp = @mp, sp = @sp, EXP = @EXP, level = @level,
  15563.         henna_1 = @henna_1, henna_2 = @henna_2, henna_3 = @henna_3
  15564.     WHERE char_id = @char_id AND subjob_id = @old_subjob_id
  15565.  
  15566.     IF @@ERROR <> 0 OR @@ROWCOUNT <> 1  -- update, insert check
  15567.     BEGIN
  15568.         GOTO EXIT_TRAN
  15569.     END    
  15570. END
  15571.  
  15572.  
  15573. DELETE FROM shortcut_data WHERE char_id =  @char_id AND subjob_id = @subjob_id
  15574. IF @@ERROR <> 0
  15575. BEGIN
  15576.     GOTO EXIT_TRAN 
  15577. END
  15578.  
  15579. DELETE FROM user_henna WHERE char_id =  @char_id AND subjob_id = @subjob_id
  15580. IF @@ERROR <> 0
  15581. BEGIN
  15582.     GOTO EXIT_TRAN 
  15583. END
  15584.  
  15585. DELETE FROM user_skill WHERE char_id =  @char_id AND subjob_id = @subjob_id
  15586. IF @@ERROR <> 0
  15587. BEGIN
  15588.     GOTO EXIT_TRAN 
  15589. END
  15590.  
  15591. IF @subjob_id = 1
  15592.     UPDATE user_data SET subjob1_class = @new_class WHERE char_id = @char_id
  15593. ELSE IF @subjob_id = 2
  15594.     UPDATE user_data SET subjob1_class = @new_class WHERE char_id = @char_id
  15595. ELSE IF @subjob_id = 3
  15596.     UPDATE user_data SET subjob1_class = @new_class WHERE char_id = @char_id
  15597.  
  15598. IF @@ERROR <> 0 OR @@ROWCOUNT <> 1  -- update, insert check
  15599. BEGIN
  15600.     SELECT @ret = 0
  15601.     GOTO EXIT_TRAN
  15602. END
  15603.  
  15604. -- update new class
  15605. UPDATE user_subjob
  15606. SET hp = NULL, mp = NULL, sp = NULL, EXP = NULL, level = NULL, henna_1 = NULL, henna_2 = NULL, henna_3 = NULL, create_date = GETDATE()
  15607. WHERE char_id = @char_id AND subjob_id = @subjob_id
  15608. IF @@ERROR = 0 AND @@ROWCOUNT = 1
  15609. BEGIN
  15610.     SELECT @ret = 1
  15611. END
  15612.  
  15613. EXIT_TRAN:
  15614. IF @ret<> 0
  15615. BEGIN
  15616.     COMMIT TRAN
  15617. END
  15618. ELSE
  15619. BEGIN
  15620.     ROLLBACK TRAN
  15621. END
  15622.  
  15623. SELECT @ret
  15624. GO
  15625.  
  15626. -- lin_ResetAgitDeco
  15627. -- by bert
  15628. -- return (1, 0)
  15629. ALTER PROCEDURE dbo.lin_ResetAgitDeco
  15630. (
  15631.     @agit_id INT,
  15632.     @TYPE INT
  15633. )
  15634. AS
  15635. SET NOCOUNT ON
  15636.  
  15637. DELETE FROM agit_deco
  15638. WHERE agit_id = @agit_id AND TYPE = @TYPE
  15639.  
  15640. SELECT @@ROWCOUNT
  15641. GO
  15642.  
  15643. ALTER PROCEDURE dbo.lin_ResetOlympiadPoint
  15644. (
  15645. @give_point INT
  15646. )
  15647. AS
  15648. SET NOCOUNT ON
  15649.  
  15650. UPDATE user_nobless
  15651. SET previous_point = olympiad_point
  15652.  
  15653. UPDATE user_nobless
  15654. SET olympiad_point = @give_point
  15655. GO
  15656.  
  15657. /********************************************        
  15658. lin_ResetSociality
  15659.  set sociality
  15660. INPUT        
  15661.  @char_id
  15662.  @sociality
  15663.  @sulffrage
  15664.  @last_changed
  15665. OUTPUT        
  15666. return        
  15667.        
  15668. made by        
  15669.  carrot        
  15670. date        
  15671.  2004-07-4
  15672. change        
  15673. ********************************************/        
  15674. ALTER PROCEDURE [DBO].[lin_ResetSociality]
  15675. (        
  15676.  @char_id INT,
  15677.  @sociality INT,
  15678.  @sulffrage INT,
  15679.  @last_changed DATETIME
  15680. )        
  15681. AS        
  15682.        
  15683. SET NOCOUNT ON        
  15684.  
  15685. IF EXISTS(SELECT  * FROM user_sociality WHERE char_id = @char_id)
  15686. BEGIN
  15687.     UPDATE user_sociality
  15688.     SET sociality = @sociality , used_sulffrage = @sulffrage , last_changed = @last_changed
  15689.     WHERE char_id = @char_id
  15690. END
  15691. ELSE
  15692. BEGIN
  15693.     INSERT INTO user_sociality (char_id, sociality , used_sulffrage , last_changed ) VALUES (@char_id, @sociality , @sulffrage , @last_changed)
  15694. END
  15695. GO
  15696.  
  15697. /********************************************
  15698. lin_SetCharAccountId
  15699.     update account_id character
  15700. INPUT
  15701.     @account_id int,
  15702.     @char_id    int
  15703. OUTPUT
  15704.  
  15705. return
  15706. made by
  15707.     young
  15708. date
  15709.     2003-09-02
  15710.     update account_id from character
  15711. ********************************************/
  15712. ALTER PROCEDURE [DBO].[lin_RestoreChar ]
  15713. (
  15714.     @account_id INT,
  15715.     @char_id    INT,
  15716.     @account_name   nvarchar(50) = ''
  15717. )
  15718. AS
  15719.  
  15720. SET NOCOUNT ON
  15721.  
  15722. DECLARE @char_inx INT
  15723. DECLARE @old_char_name nvarchar(50)
  15724. DECLARE @new_char_name nvarchar(50)
  15725.  
  15726. SELECT @old_char_name = char_name FROM user_data (nolock) WHERE char_id = @char_id
  15727. SELECT @char_inx = CHARINDEX ( '_', @old_char_name )
  15728.  
  15729. IF @char_inx > 0
  15730. BEGIN
  15731.     SELECT @new_char_name = SUBSTRING( @old_char_name, 1, @char_inx - 1)
  15732. END
  15733. ELSE
  15734. BEGIN
  15735.     SELECT @new_char_name = @old_char_name
  15736. END
  15737.  
  15738. IF ( len ( @account_name ) > 0 )
  15739. BEGIN
  15740.     UPDATE user_data SET account_id = @account_id , char_name = @new_char_name, account_name = @account_name , temp_delete_date = NULL  WHERE char_id = @char_id
  15741. END ELSE BEGIN
  15742.     UPDATE user_data SET account_id = @account_id , char_name = @new_char_name , temp_delete_date = NULL  WHERE char_id = @char_id
  15743. END
  15744. GO
  15745.  
  15746. /********************************************
  15747. lin_RestoreChar2
  15748.     restore deleted char
  15749. INPUT
  15750.     @account_id int,
  15751.     @char_id    int
  15752. OUTPUT
  15753.  
  15754. return
  15755. made by
  15756.     young
  15757. date
  15758.     2004-03-11
  15759.     update account_id from character
  15760. ********************************************/
  15761. ALTER PROCEDURE [DBO].[lin_RestoreChar2 ]
  15762. (
  15763.     @account_id INT,
  15764.     @char_id    INT,
  15765.     @new_char_name  nvarchar(50),
  15766.     @account_name   nvarchar(50) = ''
  15767. )
  15768. AS
  15769.  
  15770. SET NOCOUNT ON
  15771.  
  15772. IF ( len ( @account_name ) > 0 )
  15773. BEGIN
  15774.     UPDATE user_data SET account_id = @account_id , char_name = @new_char_name, account_name = @account_name , temp_delete_date = NULL  WHERE char_id = @char_id
  15775. END ELSE BEGIN
  15776.     UPDATE user_data SET account_id = @account_id , char_name = @new_char_name , temp_delete_date = NULL  WHERE char_id = @char_id
  15777. END
  15778. GO
  15779.  
  15780. /********************************************      
  15781. lin_SaveCastleIncome      
  15782.        
  15783. INPUT      
  15784.  @crop_income int,      
  15785.  @shop_income int,      
  15786.  @castle_id int      
  15787. OUTPUT      
  15788. return      
  15789. made by      
  15790.  carrot      
  15791. date      
  15792.  2002-06-16      
  15793. change 2003-12-22 carrot    
  15794.  add about agit income    
  15795. change 2004-03-02 carrot    
  15796.  add taxincomeTemp  
  15797.  ********************************************/      
  15798. ALTER PROCEDURE [DBO].[lin_SaveCastleIncome]      
  15799. (      
  15800.  @crop_income INT,      
  15801.  @shop_income INT,      
  15802.  @castle_id INT  ,    
  15803.  @crop_income_temp INT,      
  15804.  @is_castle INT    
  15805. )      
  15806. AS      
  15807. SET NOCOUNT ON      
  15808.      
  15809. IF (@is_castle = 1) -- castle    
  15810.  UPDATE castle SET crop_income = @crop_income, shop_income = @shop_income, shop_income_temp = @crop_income_temp WHERE id = @castle_id      
  15811. ELSE -- agit    
  15812.  UPDATE agit SET shop_income = @shop_income, shop_income_temp = @crop_income_temp WHERE id = @castle_id
  15813. GO
  15814.  
  15815. /****** Object:  Stored Procedure dbo.lin_SaveCastleSiegeElapsedTime    Script Date: 2003-09-20 ?? 11:52:00 ******/
  15816. /********************************************
  15817. lin_SaveCastleSiegeElapsedTime
  15818.    
  15819. INPUT  
  15820.     @siege_elapsed_time int,
  15821.     @castle_id  int
  15822. OUTPUT
  15823.  
  15824. return
  15825. made by
  15826.     carrot
  15827. date
  15828.     2002-06-16
  15829. ********************************************/
  15830. ALTER PROCEDURE [DBO].[lin_SaveCastleSiegeElapsedTime]
  15831. (
  15832.     @siege_elapsed_time INT,
  15833.     @castle_id  INT
  15834. )
  15835. AS
  15836. SET NOCOUNT ON
  15837.  
  15838. UPDATE castle SET siege_elapsed_time = @siege_elapsed_time WHERE id = @castle_id
  15839. GO
  15840.  
  15841. /****** Object:  Stored Procedure dbo.lin_SaveCastleStatus    Script Date: 2003-09-20 ?? 11:52:00 ******/
  15842. /********************************************
  15843. lin_SaveCastleStatus
  15844.    
  15845. INPUT  
  15846.     @status     int,
  15847.     @castle_id  int
  15848. OUTPUT
  15849. return
  15850. made by
  15851.     carrot
  15852. date
  15853.     2002-06-16
  15854. ********************************************/
  15855. ALTER PROCEDURE [DBO].[lin_SaveCastleStatus]
  15856. (
  15857.     @STATUS     INT,
  15858.     @castle_id  INT
  15859. )
  15860. AS
  15861. SET NOCOUNT ON
  15862.  
  15863. UPDATE castle SET STATUS = @STATUS WHERE id = @castle_id
  15864. GO
  15865.  
  15866. ALTER PROCEDURE dbo.lin_SaveCharacter
  15867. (
  15868.     @subjob_id INT,
  15869.     @pledge_id INT,
  15870.     @class INT,
  15871.     @world INT,
  15872.     @xloc INT,
  15873.     @yloc INT,
  15874.     @zloc INT,
  15875.     @IsInVehicle INT,
  15876.     @HP FLOAT,
  15877.     @MP FLOAT,
  15878.     @max_HP FLOAT,
  15879.     @max_MP FLOAT,
  15880.     @SP INT,
  15881.     @EXP INT,
  15882.     @Lev INT,
  15883.     @align INT,
  15884.     @PK INT,
  15885.     @duel INT,
  15886.     @pkpardon INT,
  15887.     @ST_underware INT,
  15888.     @ST_right_ear INT,
  15889.     @ST_left_ear INT,
  15890.     @ST_neck INT,
  15891.     @ST_right_finger INT,
  15892.     @ST_left_finger INT,
  15893.     @ST_head INT,
  15894.     @ST_right_hand INT,
  15895.     @ST_left_hand INT,
  15896.     @ST_gloves INT,
  15897.     @ST_chest INT,
  15898.     @ST_legs INT,
  15899.     @ST_feet INT,
  15900.     @ST_back INT,
  15901.     @ST_both_hand INT,
  15902.     @Face_Index INT,
  15903.     @Hair_Shape_Index INT,
  15904.     @Hair_Color_Index INT,
  15905.     @ssq_dawn_round INT,
  15906.     @char_id  INT,
  15907.     @subjob0_class INT,
  15908.     @subjob1_class INT,
  15909.     @subjob2_class INT,
  15910.     @subjob3_class INT,
  15911.     @CP FLOAT,
  15912.     @max_CP FLOAT,
  15913.     @ST_hair INT
  15914. )
  15915. AS
  15916.  
  15917. SET NOCOUNT ON
  15918.  
  15919. UPDATE
  15920.     user_data
  15921. SET
  15922.     subjob_id = @subjob_id,
  15923.     class= @class,
  15924.     world= @world,
  15925.     xloc= @xloc,
  15926.     yloc= @yloc,
  15927.     zloc= @zloc,
  15928.     IsInVehicle= @IsInVehicle,
  15929.     HP= @HP,
  15930.     MP= @MP,
  15931.     max_HP= @max_HP,
  15932.     max_MP= @max_MP,
  15933.     SP= @SP,
  15934.     EXP= @EXP,
  15935.     Lev= @Lev,
  15936.     align= @align,
  15937.     PK= @PK,
  15938.     duel= @duel,
  15939.     pkpardon= @pkpardon,
  15940.     ST_underware= @ST_underware,
  15941.     ST_right_ear= @ST_right_ear,
  15942.     ST_left_ear= @ST_left_ear,
  15943.     ST_neck= @ST_neck,
  15944.     ST_right_finger= @ST_right_finger,
  15945.     ST_left_finger= @ST_left_finger,
  15946.     ST_head= @ST_head,
  15947.     ST_right_hand= @ST_right_hand,
  15948.     ST_left_hand= @ST_left_hand,
  15949.     ST_gloves= @ST_gloves,
  15950.     ST_chest= @ST_chest,
  15951.     ST_legs= @ST_legs,
  15952.     ST_feet= @ST_feet,
  15953.     ST_back= @ST_back,
  15954.     ST_both_hand= @ST_both_hand,
  15955.     Face_Index= @Face_Index,
  15956.     Hair_Shape_Index= @Hair_Shape_Index,
  15957.     Hair_Color_Index= @Hair_Color_Index ,
  15958.     ssq_dawn_round = @ssq_dawn_round,
  15959.     subjob0_class = @subjob0_class,
  15960.     subjob1_class = @subjob1_class,
  15961.     subjob2_class = @subjob2_class,
  15962.     subjob3_class = @subjob3_class,
  15963.     cp = @CP,
  15964.     max_cp = @max_CP,
  15965.     ST_hair = @ST_hair
  15966. WHERE
  15967.     char_id= @char_id
  15968. GO
  15969.  
  15970. /****** Object:  Stored Procedure dbo.lin_SaveCharacter_temp    Script Date: 2003-09-20 ?? 11:52:00 ******/
  15971. /********************************************
  15972. lin_SaveCharacter_temp
  15973.  
  15974. INPUT
  15975. OUTPUT
  15976. return
  15977. made by
  15978.     carrot
  15979. date
  15980.     2003-06-13
  15981. change
  15982. ********************************************/
  15983. ALTER PROCEDURE [DBO].[lin_SaveCharacter_temp]
  15984. (
  15985.     @pledge_id INT,
  15986.     @class INT,
  15987.     @world INT,
  15988.     @xloc INT,
  15989.     @yloc INT,
  15990.     @zloc INT,
  15991.     @IsInVehicle INT,
  15992.     @HP FLOAT,
  15993.     @MP FLOAT,
  15994.     @max_HP FLOAT,
  15995.     @max_MP FLOAT,
  15996.     @SP INT,
  15997.     @EXP INT,
  15998.     @Lev INT,
  15999.     @align INT,
  16000.     @PK INT,
  16001.     @duel INT,
  16002.     @pkpardon INT,
  16003.     @char_id  INT
  16004. )
  16005. AS
  16006.  
  16007. SET NOCOUNT ON
  16008.  
  16009. UPDATE
  16010.     user_data
  16011. SET
  16012.     class= @class,
  16013.     world= @world,
  16014.     xloc= @xloc,
  16015.     yloc= @yloc,
  16016.     zloc= @zloc,
  16017.     IsInVehicle= @IsInVehicle,
  16018.     HP= @HP,
  16019.     MP= @MP,
  16020.     max_HP= @max_HP,
  16021.     max_MP= @max_MP,
  16022.     SP= @SP,
  16023.     EXP= @EXP,
  16024.     Lev= @Lev,
  16025.     align= @align,
  16026.     PK= @PK,
  16027.     duel= @duel,
  16028.     pkpardon= @pkpardon
  16029. WHERE
  16030.     char_id= @char_id
  16031. GO
  16032.  
  16033. /****** Object:  Stored Procedure dbo.lin_SaveCharacter_temp2    Script Date: 2003-09-20 ?? 11:52:00 ******/
  16034. /********************************************
  16035. lin_SaveCharacter_temp
  16036.  
  16037. INPUT
  16038. OUTPUT
  16039. return
  16040. made by
  16041.     carrot
  16042. date
  16043.     2003-06-13
  16044. change
  16045. ********************************************/
  16046. ALTER PROCEDURE [DBO].[lin_SaveCharacter_temp2]
  16047. (
  16048.     @ST_underware INT,
  16049.     @ST_right_ear INT,
  16050.     @ST_left_ear INT,
  16051.     @ST_neck INT,
  16052.     @ST_right_finger INT,
  16053.     @ST_left_finger INT,
  16054.     @ST_head INT,
  16055.     @ST_right_hand INT,
  16056.     @ST_left_hand INT,
  16057.     @ST_gloves INT,
  16058.     @ST_chest INT,
  16059.     @ST_legs INT,
  16060.     @ST_feet INT,
  16061.     @ST_back INT,
  16062.     @ST_both_hand INT,
  16063.     @char_id  INT
  16064. )
  16065. AS
  16066.  
  16067. SET NOCOUNT ON
  16068.  
  16069. UPDATE
  16070.     user_data
  16071. SET
  16072.     ST_underware= @ST_underware,
  16073.     ST_right_ear= @ST_right_ear,
  16074.     ST_left_ear= @ST_left_ear,
  16075.     ST_neck= @ST_neck,
  16076.     ST_right_finger= @ST_right_finger,
  16077.     ST_left_finger= @ST_left_finger,
  16078.     ST_head= @ST_head,
  16079.     ST_right_hand= @ST_right_hand,
  16080.     ST_left_hand= @ST_left_hand,
  16081.     ST_gloves= @ST_gloves,
  16082.     ST_chest= @ST_chest,
  16083.     ST_legs= @ST_legs,
  16084.     ST_feet= @ST_feet,
  16085.     ST_back= @ST_back,
  16086.     ST_both_hand= @ST_both_hand
  16087. WHERE
  16088.     char_id= @char_id
  16089. GO
  16090.  
  16091. /****** Object:  Stored Procedure dbo.lin_SaveCharacterPledge    Script Date: 2003-09-20 ?? 11:52:00 ******/
  16092. /********************************************
  16093. lin_SaveCharacterPledge
  16094.  
  16095. INPUT
  16096. OUTPUT
  16097. return
  16098. made by
  16099.     carrot
  16100. date
  16101.     2003-06-30
  16102. change
  16103. ********************************************/
  16104. ALTER PROCEDURE [DBO].[lin_SaveCharacterPledge]
  16105. (
  16106.     @pledge_id INT,
  16107.     @char_id  INT
  16108. )
  16109. AS
  16110.  
  16111. SET NOCOUNT ON
  16112.  
  16113. UPDATE
  16114.     user_data
  16115. SET
  16116.     pledge_id= @pledge_id
  16117. WHERE
  16118.     char_id= @char_id
  16119. GO
  16120.  
  16121. /****** Object:  Stored Procedure dbo.lin_SaveCropData    Script Date: 2003-09-20 ?? 11:52:00 ******/
  16122. /********************************************
  16123. lin_SaveCropData
  16124.     create  or update castle crop data
  16125. INPUT
  16126.     @castle_id  INT,
  16127.     @item_type  INT,
  16128.     @droprate   INT,
  16129.     @price  INT
  16130. OUTPUT
  16131. return
  16132. made by
  16133.     carrot
  16134. date
  16135.     2003-05-06
  16136. change 2003-06-11
  16137.     add level
  16138. ********************************************/
  16139. ALTER PROCEDURE [DBO].[lin_SaveCropData]
  16140. (
  16141.     @castle_id  INT,
  16142.     @item_type  INT,
  16143.     @droprate   INT,
  16144.     @price      INT,
  16145.     @level      INT
  16146. )
  16147. AS
  16148. SET NOCOUNT ON
  16149.  
  16150. IF EXISTS(SELECT item_type FROM castle_crop WHERE castle_id = @castle_id AND item_type = @item_type)
  16151. BEGIN
  16152.     UPDATE castle_crop SET droprate =@droprate, price = @price , level = @level WHERE castle_id = @castle_id AND item_type = @item_type
  16153. END
  16154. ELSE
  16155. BEGIN
  16156.     INSERT INTO  castle_crop (castle_id, item_type, droprate, price, level) VALUES (@castle_id,@item_type,@droprate ,@price,@level )
  16157. END
  16158. GO
  16159.  
  16160. ALTER PROCEDURE [dbo].[lin_SaveDoorStatus]  
  16161. (  
  16162.  @hp INT,  
  16163.  @max_hp INT,  
  16164.  @name NVARCHAR(50)  
  16165. )  
  16166. AS  
  16167. SET NOCOUNT ON  
  16168. UPDATE door SET hp = @hp, max_hp = @max_hp WHERE name = @name
  16169. GO
  16170.  
  16171. /****** Object:  Stored Procedure dbo.lin_SaveDropExp    Script Date: 2003-09-20 ?? 11:52:00 ******/
  16172. /********************************************
  16173. lin_SaveDropExp
  16174.    
  16175. INPUT  
  16176.     @drop_exe   int,
  16177.     @char_id    int
  16178. OUTPUT
  16179. return
  16180. made by
  16181.     carrot
  16182. date
  16183.     2002-06-16
  16184. ********************************************/
  16185. ALTER PROCEDURE [DBO].[lin_SaveDropExp]
  16186. (
  16187.     @drop_exe   INT,
  16188.     @char_id    INT
  16189. )
  16190. AS
  16191. SET NOCOUNT ON
  16192.  
  16193. UPDATE user_data SET drop_exp = @drop_exe WHERE char_id = @char_id
  16194. GO
  16195.  
  16196. ALTER PROCEDURE dbo.lin_SaveHenna
  16197. (        
  16198. @char_id INT,
  16199. @henna_1 INT,
  16200. @henna_2 INT,
  16201. @henna_3 INT
  16202. )        
  16203. AS  
  16204. SET NOCOUNT ON        
  16205.  
  16206. IF EXISTS(SELECT * FROM user_henna WHERE char_id = @char_id)
  16207. BEGIN
  16208.     UPDATE user_henna SET henna_1 = @henna_1, henna_2 = @henna_2, henna_3 = @henna_3
  16209.     WHERE char_id = @char_id
  16210. END
  16211. ELSE
  16212. BEGIN
  16213.     INSERT INTO user_henna (char_id, henna_1, henna_2, henna_3)
  16214.     VALUES (@char_id, @henna_1, @henna_2, @henna_3)
  16215. END
  16216. GO
  16217.  
  16218. ALTER PROCEDURE dbo.lin_SaveHeroType
  16219. (
  16220. @char_id INT,
  16221. @hero_type INT
  16222. )
  16223. AS
  16224. SET NOCOUNT ON
  16225.  
  16226. UPDATE user_nobless
  16227. SET hero_type = @hero_type
  16228. WHERE char_id = @char_id
  16229. GO
  16230.  
  16231. ALTER PROCEDURE dbo.lin_SaveKillDeath
  16232. (
  16233. @pledge_id INT,
  16234. @kill_no INT,
  16235. @death_no INT
  16236. )
  16237. AS
  16238. SET NOCOUNT ON
  16239.  
  16240. UPDATE pledge
  16241. SET siege_kill = @kill_no, siege_death = @death_no
  16242. WHERE pledge_id = @pledge_id
  16243. GO
  16244.  
  16245. /********************************************
  16246. lin_SaveMaill
  16247.     save mail
  16248. INPUT
  16249.     @char_id        int,
  16250.     @mail_type      int,
  16251.     @related_id     int,
  16252.     @receiver_name_list     nvarchar(250),
  16253.     @title          nvarchar(200),
  16254.     @content        nvarchar(4000)
  16255. OUTPUT
  16256. return
  16257. made by
  16258.     kks
  16259. date
  16260.     2004-12-15
  16261. ********************************************/
  16262. ALTER PROCEDURE [DBO].[lin_SaveMail]
  16263. (
  16264.     @char_id        INT,
  16265.     @mail_type      INT,
  16266.     @related_id     INT,
  16267.     @receiver_name_list     nvarchar(250),
  16268.     @title          nvarchar(200),
  16269.     @content        nvarchar(4000)
  16270. )
  16271. AS
  16272. SET NOCOUNT ON
  16273.  
  16274. DECLARE @mail_id INT
  16275. SET @mail_id = 0
  16276.  
  16277. INSERT INTO user_mail
  16278. (title, content) VALUES (@title, @content)
  16279.  
  16280. SET @mail_id = @@IDENTITY
  16281.  
  16282. DECLARE @sender_name nvarchar(50)
  16283.  
  16284. SELECT @sender_name = char_name FROM user_data(nolock) WHERE char_id = @char_id
  16285.  
  16286. INSERT INTO user_mail_sender
  16287. (mail_id, related_id, mail_type, mailbox_type, sender_id, sender_name, receiver_name_list)
  16288. VALUES
  16289. (@mail_id, @related_id, @mail_type, 3, @char_id, @sender_name, @receiver_name_list)
  16290. GO
  16291.  
  16292. /********************************************        
  16293. lin_SaveManorInfo
  16294.  
  16295. INPUT        
  16296.  @manor_id
  16297.  
  16298. OUTPUT        
  16299. return        
  16300.        
  16301. made by        
  16302.  carrot        
  16303. date        
  16304.  2004-07-4
  16305. change        
  16306. ********************************************/        
  16307. ALTER  PROCEDURE [DBO].[lin_SaveManorInfo]
  16308. (        
  16309.  @manor_id INT,
  16310.  @residence_id INT,
  16311.  @AdenaSeedSell INT,
  16312.  @AdenaCropBuy INT,
  16313.  @change_state TINYINT,
  16314.  @last_changed DATETIME
  16315. )        
  16316. AS        
  16317.        
  16318. SET NOCOUNT ON        
  16319.  
  16320. IF EXISTS(SELECT * FROM manor_info WHERE manor_id = @manor_id)
  16321. BEGIN
  16322.     UPDATE
  16323.         manor_info
  16324.     SET
  16325.         residence_id = @residence_id,
  16326.         adena_vault = @AdenaSeedSell,
  16327.         crop_buy_vault = @AdenaCropBuy,
  16328.         change_state = @change_state,
  16329.         last_changed = @last_changed
  16330.     WHERE
  16331.         manor_id = @manor_id
  16332. END
  16333. ELSE
  16334. BEGIN
  16335.     INSERT INTO manor_info (manor_id, residence_id, adena_vault, crop_buy_vault, change_state, last_changed)
  16336.     VALUES (@manor_id, @residence_id,@AdenaSeedSell,@AdenaCropBuy, @change_state, @last_changed)
  16337. END
  16338. GO
  16339.  
  16340. /********************************************        
  16341. lin_SaveManorSeed
  16342.  save manor seed crop data
  16343. INPUT
  16344.    
  16345. OUTPUT        
  16346. return        
  16347.        
  16348. made by        
  16349.  carrot        
  16350. date        
  16351.  2004-06-21
  16352. change        
  16353. ********************************************/        
  16354. ALTER PROCEDURE [DBO].[lin_SaveManorSeed]
  16355. (
  16356. @manor_id INT,
  16357. @data_index INT,
  16358. @seed_id INT,
  16359. @seed_price INT,
  16360. @seed_sell_count INT,
  16361. @seed_remain_count INT,
  16362. @crop_id INT,
  16363. @crop_buy_count INT,
  16364. @crop_remain_count INT,
  16365. @crop_price INT,
  16366. @crop_type INT,
  16367. @crop_deposit INT
  16368. )
  16369. AS        
  16370.        
  16371. SET NOCOUNT ON        
  16372.  
  16373. IF EXISTS(SELECT * FROM manor_data WHERE manor_id = @manor_id AND data_index =@data_index)
  16374. BEGIN
  16375.     UPDATE 
  16376.         manor_data
  16377.     SET
  16378.         seed_id = @seed_id,
  16379.         seed_price = @seed_price,
  16380.         seed_sell_count = @seed_sell_count,
  16381.         seed_remain_count = @seed_remain_count,
  16382.         crop_id = @crop_id,
  16383.         crop_buy_count = @crop_buy_count,
  16384.         crop_price = @crop_price,
  16385.         crop_type = @crop_type,
  16386.         crop_remain_count = @crop_remain_count,
  16387.         crop_deposit = @crop_deposit
  16388.     WHERE
  16389.         manor_id = @manor_id AND data_index = @data_index
  16390. END
  16391. ELSE
  16392. BEGIN
  16393.     INSERT INTO
  16394.     manor_data
  16395.     (manor_id, data_index, seed_id, seed_price, seed_sell_count, seed_remain_count, crop_id, crop_buy_count, crop_price, crop_type, crop_remain_count, crop_deposit)
  16396.     VALUES
  16397.     (@manor_id, @data_index, @seed_id, @seed_price, @seed_sell_count, @seed_remain_count, @crop_id, @crop_buy_count, @crop_price, @crop_type, @crop_remain_count, @crop_deposit)
  16398. END
  16399. GO
  16400.  
  16401. /********************************************        
  16402. lin_SaveManorSeed_N
  16403.  save manor seed crop data next
  16404. INPUT
  16405.    
  16406. OUTPUT        
  16407. return        
  16408.        
  16409. made by        
  16410.  carrot        
  16411. date        
  16412.  2004-07-4
  16413. change        
  16414. ********************************************/        
  16415. ALTER PROCEDURE [DBO].[lin_SaveManorSeed_N]
  16416. (
  16417. @manor_id INT,
  16418. @data_index INT,
  16419. @seed_id_n INT,
  16420. @seed_price_n INT,
  16421. @seed_sell_count_n INT,
  16422. @crop_id_n INT,
  16423. @crop_buy_count_n INT,
  16424. @crop_price_n INT,
  16425. @crop_type_n INT
  16426. )
  16427. AS        
  16428.        
  16429. SET NOCOUNT ON        
  16430.  
  16431. IF EXISTS(SELECT * FROM manor_data_n WHERE manor_id = @manor_id AND data_index =@data_index)
  16432. BEGIN
  16433.     UPDATE 
  16434.         manor_data_n
  16435.     SET
  16436.         seed_id_n = @seed_id_n,
  16437.         seed_price_n = @seed_price_n,
  16438.         seed_sell_count_n = @seed_sell_count_n,
  16439.         crop_id_n = @crop_id_n,
  16440.         crop_buy_count_n = @crop_buy_count_n,
  16441.         crop_price_n = @crop_price_n,
  16442.         crop_type_n = @crop_type_n
  16443.     WHERE
  16444.         manor_id = @manor_id AND data_index = @data_index
  16445. END
  16446. ELSE
  16447. BEGIN
  16448.     INSERT INTO
  16449.     manor_data_n
  16450.     (manor_id, data_index, seed_id_n, seed_price_n, seed_sell_count_n, crop_id_n, crop_buy_count_n, crop_price_n, crop_type_n)
  16451.     VALUES
  16452.     (@manor_id, @data_index, @seed_id_n, @seed_price_n, @seed_sell_count_n, @crop_id_n, @crop_buy_count_n, @crop_price_n, @crop_type_n)
  16453. END
  16454. GO
  16455.  
  16456. ALTER PROCEDURE dbo.lin_SaveNoblessType
  16457. (
  16458. @char_id INT,
  16459. @nobless_type INT
  16460. )
  16461. AS
  16462. SET NOCOUNT ON
  16463.  
  16464. UPDATE user_nobless
  16465. SET nobless_type = @nobless_type
  16466. WHERE char_id = @char_id
  16467.  
  16468. SELECT @@ROWCOUNT
  16469. GO
  16470.  
  16471. /****** Object:  Stored Procedure dbo.lin_SaveNpcBoss    Script Date: 2003-09-20 ?? 11:52:00 ******/
  16472. /********************************************
  16473. lin_SaveNpcBoss
  16474.    
  16475. INPUT
  16476. OUTPUT
  16477. return
  16478. made by
  16479. date
  16480. ********************************************/
  16481. ALTER PROCEDURE [DBO].[lin_SaveNpcBoss]
  16482. (
  16483. @npc_db_name    nvarchar(50),
  16484. @alive      INT,
  16485. @hp         INT,
  16486. @mp         INT,
  16487. @pos_x      INT,
  16488. @pos_y      INT,
  16489. @pos_z      INT,
  16490. @time_low   INT,
  16491. @time_high  INT
  16492. )
  16493. AS
  16494. SET NOCOUNT ON
  16495.  
  16496. IF EXISTS(SELECT alive FROM npc_boss WHERE npc_db_name = @npc_db_name)
  16497. BEGIN
  16498.     UPDATE npc_boss
  16499.     SET
  16500.         alive=@alive, hp=@hp, mp=@mp, pos_x=@pos_x, pos_y=@pos_y, pos_z=@pos_z, time_low=@time_low, time_high=@time_high
  16501.     WHERE npc_db_name = @npc_db_name
  16502. END
  16503. ELSE
  16504. BEGIN
  16505.     INSERT INTO npc_boss VALUES
  16506.     (@npc_db_name, @alive, @hp,@mp, @pos_x, @pos_y,@pos_z, @time_low, @time_high, 0)
  16507. END
  16508. GO
  16509.  
  16510. /****** Object:  Stored Procedure dbo.lin_SaveObjectHp    Script Date: 2003-09-20 ?? 11:52:00 ******/
  16511. /********************************************
  16512. lin_SaveObjectHp
  16513.    
  16514. INPUT  
  16515.     @hp int,
  16516.     @id int
  16517. OUTPUT
  16518.  
  16519. return
  16520. made by
  16521.     carrot
  16522. date
  16523.     2002-06-16
  16524. ********************************************/
  16525. ALTER PROCEDURE [DBO].[lin_SaveObjectHp]
  16526. (
  16527.     @hp INT,
  16528.     @id INT
  16529. )
  16530. AS
  16531. SET NOCOUNT ON
  16532.  
  16533. UPDATE object_data SET hp = @hp WHERE id = @id
  16534. GO
  16535.  
  16536. ALTER PROCEDURE dbo.lin_SaveOlympiadRecord
  16537. (
  16538. @season INT,
  16539. @winner_id INT,
  16540. @winner_point INT,
  16541. @loser_id INT,
  16542. @loser_point INT,
  16543. @TIME INT
  16544. )
  16545. AS
  16546. SET NOCOUNT ON
  16547.  
  16548. IF @winner_id <> 0
  16549. BEGIN
  16550.     UPDATE user_nobless
  16551.     SET olympiad_point = olympiad_point + @winner_point, match_count = match_count+1, olympiad_win_count = olympiad_win_count+1
  16552.     WHERE char_id = @winner_id
  16553.  
  16554.     DECLARE @winner_class INT
  16555.     SELECT @winner_class = subjob0_class FROM user_data WHERE char_id = @winner_id
  16556.  
  16557.     INSERT olympiad_match
  16558.     (season, class, match_time, char_id, rival_id, point, is_winner)
  16559.     VALUES
  16560.     (@season, @winner_class, @TIME, @winner_id, @loser_id, @winner_point, 1)
  16561. END
  16562.  
  16563. IF @loser_id <> 0
  16564. BEGIN
  16565.     UPDATE user_nobless
  16566.     SET olympiad_point = olympiad_point + @loser_point, match_count = match_count+1, olympiad_lose_count = olympiad_lose_count+1
  16567.     WHERE char_id = @loser_id
  16568.  
  16569.     DECLARE @loser_class INT
  16570.     SELECT @loser_class = subjob0_class FROM user_data WHERE char_id = @loser_id
  16571.  
  16572.     INSERT olympiad_match
  16573.     (season, class, match_time, char_id, rival_id, point, is_winner)
  16574.     VALUES
  16575.     (@season, @loser_class, @TIME, @loser_id, @winner_id, @loser_point, 0)
  16576. END
  16577. GO
  16578.  
  16579. ALTER PROCEDURE dbo.lin_SaveOlympiadTerm
  16580. (
  16581. @season INT,
  16582. @start_sec INT,
  16583. @bonus1_sec INT,
  16584. @bonus2_sec INT,
  16585. @bonus3_sec INT,
  16586. @bonus4_sec INT,
  16587. @nominate_sec INT
  16588. )
  16589. AS
  16590. SET NOCOUNT ON
  16591.  
  16592. UPDATE olympiad
  16593. SET start_sec = @start_sec,
  16594. bonus1_sec = @bonus1_sec, bonus2_sec = @bonus2_sec, bonus3_sec = @bonus3_sec, bonus4_sec = @bonus4_sec,
  16595. nominate_sec = @nominate_sec
  16596. WHERE season = @season
  16597.  
  16598. SELECT @@ROWCOUNT
  16599. GO
  16600.  
  16601. /********************************************
  16602. lin_SavePet
  16603.  
  16604. INPUT
  16605. OUTPUT
  16606. return
  16607. made by
  16608.     kuooo
  16609. date
  16610.     2003-08-19
  16611. change
  16612. ********************************************/
  16613. ALTER PROCEDURE [DBO].[lin_SavePet]
  16614. (
  16615.     @pet_id     INT,
  16616.     @expoint    INT,
  16617.     @hp     FLOAT,
  16618.     @mp     FLOAT,
  16619.     @sp     INT,
  16620.     @meal       INT,
  16621.     @nick_name  NVARCHAR(50),
  16622.     @slot1      INT,
  16623.     @slot2      INT
  16624. )
  16625. AS
  16626.  
  16627. SET NOCOUNT ON
  16628.  
  16629. UPDATE
  16630.     pet_data
  16631. SET
  16632.     expoint = @expoint,
  16633.     hp = @hp,
  16634.     mp = @mp,
  16635.     sp = @sp,
  16636.     meal = @meal,
  16637.     nick_name = @nick_name,
  16638.     slot1 = @slot1,
  16639.     slot2 = @slot2
  16640. WHERE
  16641.     pet_id = @pet_id
  16642. GO
  16643.  
  16644. ALTER PROCEDURE dbo.lin_SavePledgeContribution
  16645. (
  16646. @agit_id INT,
  16647. @pledge_id INT,
  16648. @contribution INT
  16649. )
  16650. AS
  16651. SET NOCOUNT ON
  16652.  
  16653. UPDATE pledge_contribution SET contribution = contribution + @contribution WHERE pledge_id = @pledge_id AND residence_id = @agit_id
  16654. IF @@ROWCOUNT = 0
  16655. INSERT INTO pledge_contribution (contribution, pledge_id, residence_id) VALUES (@contribution, @pledge_id , @agit_id)
  16656. GO
  16657.  
  16658. /********************************************        
  16659. lin_SaveRecipeInfo
  16660.  delete recipe info
  16661. INPUT        
  16662.  @char_id
  16663.  @recipe_id
  16664. OUTPUT        
  16665. return        
  16666.        
  16667. made by        
  16668.  carrot        
  16669. date        
  16670.  2004-07-4
  16671. change        
  16672. ********************************************/        
  16673. ALTER PROCEDURE [DBO].[lin_SaveRecipeInfo]
  16674. (        
  16675.  @char_id INT,
  16676.  @recipe_id INT
  16677. )        
  16678. AS        
  16679.        
  16680. SET NOCOUNT ON        
  16681.  
  16682. INSERT user_recipe VALUES (@char_id, @recipe_id)
  16683. GO
  16684.  
  16685. ALTER PROCEDURE dbo.lin_SaveSeasonStartTime
  16686. (
  16687. @season AS INT,
  16688. @season_start_time AS INT
  16689. )
  16690. AS
  16691. SET NOCOUNT ON
  16692. UPDATE olympiad
  16693. SET season_start_time = @season_start_time
  16694. WHERE season = @season
  16695. GO
  16696.  
  16697. /**
  16698.   * @procedure lin_SaveSSQJoinInfo
  16699.   * @brief SSQ ??? ?? DB? ????.
  16700.   *
  16701.   * @date 2004/11/26
  16702.   * @author Seongeun Park  <[email protected]>
  16703.   */
  16704. ALTER PROCEDURE [DBO].[lin_SaveSSQJoinInfo]
  16705. (
  16706. @round_number INT,
  16707. @TYPE TINYINT,
  16708. @point INT,
  16709. @collected_point INT,
  16710. @main_event_point INT,
  16711. @member_count INT,
  16712. @seal1 INT,
  16713. @seal2 INT,
  16714. @seal3 INT,
  16715. @seal4 INT,
  16716. @seal5 INT,
  16717. @seal6 INT,
  16718. @seal7 INT
  16719. )
  16720. AS
  16721.  
  16722. SET NOCOUNT ON
  16723.  
  16724. UPDATE ssq_join_data SET point = @point, collected_point = @collected_point, main_event_point = @main_event_point,
  16725.                    member_count = @member_count,
  16726.                    seal1_selection_count = @seal1,
  16727.                    seal2_selection_count = @seal2,
  16728.                    seal3_selection_count = @seal3,
  16729.                    seal4_selection_count = @seal4,
  16730.                    seal5_selection_count = @seal5,
  16731.                    seal6_selection_count = @seal6,
  16732.                    seal7_selection_count = @seal7,
  16733.                    last_changed_time = GETDATE()                                 
  16734.                        WHERE round_number = @round_number AND TYPE =@TYPE
  16735. GO
  16736.  
  16737. /**  
  16738.   * @procedure lin_SaveSSQSystemInfo  
  16739.   * @brief SSQ ??? ?? DB? ????.  
  16740.   *  
  16741.   * @date 2004/11/26  
  16742.   * @author Seongeun Park  <[email protected]>  
  16743.   */  
  16744. ALTER PROCEDURE [DBO].[lin_SaveSSQSystemInfo]  
  16745. (  
  16746. @round_number INT,  
  16747. @STATUS TINYINT,  
  16748. @winner TINYINT,  
  16749. @event_start_time INT,  
  16750. @event_end_time  INT,  
  16751. @seal_effect_time INT,  
  16752. @seal_effect_end_time INT,  
  16753. @seal1 TINYINT,  
  16754. @seal2 TINYINT,  
  16755. @seal3 TINYINT,  
  16756. @seal4 TINYINT,  
  16757. @seal5 TINYINT,  
  16758. @seal6 TINYINT,  
  16759. @seal7 TINYINT,  
  16760. @castle_snapshot_time INT,  
  16761. @can_drop_guard INT  
  16762. )  
  16763. AS  
  16764.  
  16765. SET NOCOUNT ON  
  16766.  
  16767. UPDATE ssq_data SET  STATUS = @STATUS,  
  16768.                                         winner = @winner,  
  16769.    event_start_time = @event_start_time,  
  16770.    event_end_time = @event_end_time,  
  16771.                seal_effect_time  =  @seal_effect_time,  
  16772.    seal_effect_end_time = @seal_effect_end_time,  
  16773.    seal1 = @seal1,  
  16774.    seal2 = @seal2,  
  16775.    seal3 = @seal3,  
  16776.    seal4 = @seal4,  
  16777.    seal5 = @seal5,  
  16778.    seal6 = @seal6,  
  16779.    seal7 = @seal7,  
  16780.    castle_snapshot_time = @castle_snapshot_time,  
  16781.                can_drop_guard = @can_drop_guard,  
  16782.    last_changed_time = GETDATE()  
  16783.                       WHERE round_number = @round_number
  16784. GO
  16785.  
  16786. /**
  16787.   * @procedure lin_SaveSSQTopPointUser
  16788.   * @brief ?? ?? ?? ??.
  16789.   *
  16790.   * @date 2004/12/09
  16791.   * @author Seongeun Park  <[email protected]>
  16792.   */
  16793. ALTER PROCEDURE [DBO].[lin_SaveSSQTopPointUser]
  16794. (
  16795. @ssq_round INT,
  16796. @record_id INT,
  16797.  
  16798. @ssq_point INT,
  16799. @rank_time INT,
  16800. @char_id  INT,
  16801. @char_name NVARCHAR(50),
  16802. @ssq_part TINYINT,
  16803. @ssq_position TINYINT,
  16804. @seal_selection_no TINYINT
  16805. )
  16806. AS
  16807.  
  16808. SET NOCOUNT ON
  16809.  
  16810. UPDATE ssq_top_point_user  SET  ssq_point = @ssq_point,
  16811.                     rank_time = @rank_time,
  16812.                     char_id = @char_id,
  16813.                     char_name = @char_name,
  16814.                     ssq_part = @ssq_part,
  16815.                     ssq_position = @ssq_position,
  16816.                     seal_selection_no = @seal_selection_no,
  16817.                     last_changed_time = GETDATE()
  16818.                                        
  16819.                        WHERE record_id = @record_id AND ssq_round = @ssq_round
  16820. GO
  16821.  
  16822. /**
  16823.   * @procedure lin_SaveSSQUserInfo
  16824.   * @brief Save user's ssq parameter  to ssq_user_data
  16825.   *
  16826.   * @date 2004/11/18
  16827.   * @author sonai <[email protected]>
  16828.   *
  16829.   * ???? ?? ???? ??? ?? ???.
  16830.   *
  16831.   * @param[in]  ssq_part    SSQ ??(?? : 1,  ?? : 2)
  16832.   * @param[in]  ssq_position  SSQ ??
  16833.   * @param[in]  seal_selection_no  ??? ??? ?? ??
  16834.   * @param[in]  ssq_point  SSQ ??? ??
  16835.   */
  16836.  
  16837. ALTER PROCEDURE [DBO].[lin_SaveSSQUserInfo]
  16838. (
  16839. @char_id INT,
  16840. @round_number INT,
  16841. @ssq_join_time INT,
  16842. @ssq_part INT,
  16843. @ssq_position INT,
  16844. @seal_selection_no INT,
  16845. @ssq_point INT,
  16846. @twilight_a_item_num INT,
  16847. @twilight_b_item_num INT,
  16848. @twilight_c_item_num INT,
  16849. @dawn_a_item_num INT,
  16850. @dawn_b_item_num INT,
  16851. @dawn_c_item_num INT,
  16852. @ticket_buy_count INT
  16853. )
  16854. AS
  16855.  
  16856. SET NOCOUNT ON
  16857.  
  16858. IF EXISTS(SELECT * FROM ssq_user_data WHERE char_id = @char_id)
  16859.     BEGIN
  16860.  
  16861.     UPDATE ssq_user_data SET  round_number = @round_number,
  16862.                                                      ssq_join_time = @ssq_join_time,
  16863.                          ssq_part = @ssq_part,
  16864.                                   ssq_position = @ssq_position,
  16865.                          seal_selection_no = @seal_selection_no,
  16866.                                   ssq_point = @ssq_point,                                        
  16867.                          twilight_a_item_num = @twilight_a_item_num,
  16868.                          twilight_b_item_num = @twilight_b_item_num,
  16869.                          twilight_c_item_num = @twilight_c_item_num,
  16870.                          dawn_a_item_num = @dawn_a_item_num,
  16871.                          dawn_b_item_num = @dawn_b_item_num,
  16872.                          dawn_c_item_num = @dawn_c_item_num,
  16873.                          ticket_buy_count = @ticket_buy_count  
  16874.                          WHERE char_id = @char_id
  16875.  
  16876.    END
  16877. ELSE
  16878.    BEGIN
  16879.  
  16880.    INSERT INTO ssq_user_data (char_id, round_number, ssq_join_time, ssq_part, ssq_position,
  16881.                         seal_selection_no, ssq_point,
  16882.                                                     twilight_a_item_num, twilight_b_item_num, twilight_c_item_num,
  16883.                                                     dawn_a_item_num, dawn_b_item_num, dawn_c_item_num,
  16884.                                                     ticket_buy_count)
  16885.     VALUES (@char_id, @round_number, @ssq_join_time, @ssq_part, @ssq_position,
  16886.                         @seal_selection_no, @ssq_point,
  16887.                                                     @twilight_a_item_num, @twilight_b_item_num, @twilight_c_item_num,
  16888.                                                     @dawn_a_item_num, @dawn_b_item_num, @dawn_c_item_num,
  16889.                                                     @ticket_buy_count)
  16890.    END
  16891. GO
  16892.  
  16893. /**
  16894.   * @procedure lin_SaveTimeAttackRecord
  16895.   * @brief ?? ?? ?? ??.
  16896.   *
  16897.   * @date 2004/12/04
  16898.   * @author Seongeun Park  <[email protected]>
  16899.   */
  16900. ALTER PROCEDURE [DBO].[lin_SaveTimeAttackRecord]
  16901. (
  16902. @room_no TINYINT,
  16903. @record_type TINYINT,
  16904. @ssq_round INT,
  16905.  
  16906. @ssq_part TINYINT,
  16907. @point INT,
  16908. @record_time INT,
  16909. @elapsed_time INT,
  16910. @member_count  INT,
  16911. @member_names NVARCHAR(256),
  16912. @member_dbid_list NVARCHAR(128),
  16913. @member_reward_flags INT,
  16914. @fee INT
  16915. )
  16916. AS
  16917.  
  16918. SET NOCOUNT ON
  16919.  
  16920. UPDATE time_attack_record SET  ssq_part = @ssq_part,
  16921.                   point = @point,
  16922.                   record_time = @record_time,
  16923.                   elapsed_time = @elapsed_time,
  16924.                       member_count = @member_count,
  16925.                   member_names = @member_names,
  16926.                   member_dbid_list = @member_dbid_list,
  16927.                   member_reward_flags = @member_reward_flags,
  16928.                   fee = @fee                                             
  16929.                        WHERE room_no = @room_no AND record_type = @record_type AND ssq_round = @ssq_round
  16930. GO
  16931.  
  16932. /********************************************            
  16933. lin_SaveTimeData    
  16934.  Save time data table          
  16935. INPUT            
  16936.  @char_name NVARCHAR(30),            
  16937.  @nUsedSec INT            
  16938. OUTPUT            
  16939. return            
  16940.            
  16941. made by            
  16942.  carrot            
  16943. date            
  16944.  2004-05-10    
  16945. change            
  16946. ********************************************/            
  16947. ALTER PROCEDURE [DBO].[lin_SaveTimeData]    
  16948. (            
  16949.  @account_id INT,
  16950.  @nUsedSec INT,
  16951.  @dtLastSaveDate NVARCHAR(20)
  16952. )            
  16953. AS            
  16954.            
  16955. SET NOCOUNT ON            
  16956.  
  16957. IF (@nUsedSec < 0)            
  16958. BEGIN            
  16959.     RAISERROR ('Not valid parameter : account id[%d] sec[%d], dt[%s] ',16, 1,  @account_id,  @nUsedSec, @dtLastSaveDate)
  16960.     RETURN -1            
  16961. END            
  16962.  
  16963. UPDATE  time_data SET last_logout = @dtLastSaveDate, used_sec = @nUsedSec WHERE account_id = @account_id
  16964.  
  16965. IF (@@ROWCOUNT = 0)
  16966. BEGIN
  16967.     INSERT INTO time_data (account_id, last_logout, used_sec) VALUES (@account_id, @dtLastSaveDate, @nUsedSec)    
  16968. END
  16969. GO
  16970.  
  16971. /****** Object:  Stored Procedure dbo.lin_SeizeItem    Script Date: 2003-09-20 ?? 11:52:00 ******/
  16972. /********************************************
  16973. lin_SeizeItem
  16974.    
  16975. INPUT
  16976.     @option INT,
  16977.     @warehouse  INT,
  16978.     @item_id    INT
  16979. OUTPUT
  16980. return
  16981. made by
  16982.     young
  16983. date
  16984.     2003-06-25
  16985.     2004-5-21 modified by young
  16986. ********************************************/
  16987. ALTER PROCEDURE [DBO].[lin_SeizeItem]
  16988. (
  16989. @OPTION INT,
  16990. @warehouse  INT,
  16991. @item_id    INT
  16992. )
  16993. AS
  16994. SET NOCOUNT ON
  16995.  
  16996.  
  16997. IF @OPTION = 1
  16998.     UPDATE user_item SET warehouse = 1001 WHERE item_id = @item_id
  16999. ELSE IF @OPTION = 2
  17000.     UPDATE user_item SET warehouse = @warehouse WHERE item_id = @item_id
  17001. GO
  17002.  
  17003. /********************************************
  17004. lin_SeizeItem2
  17005.    
  17006. INPUT
  17007.     @option INT,
  17008.     @warehouse  INT,
  17009.     @item_id    INT
  17010. OUTPUT
  17011. return
  17012. made by
  17013.     young
  17014. date
  17015.     2004-6-22
  17016. ********************************************/
  17017. ALTER PROCEDURE [DBO].[lin_SeizeItem2]
  17018. (
  17019. @OPTION INT,
  17020. @warehouse  INT,
  17021. @item_id    INT
  17022. )
  17023. AS
  17024. SET NOCOUNT ON
  17025.  
  17026. UPDATE user_item SET warehouse = @warehouse WHERE item_id = @item_id
  17027. GO
  17028.  
  17029. /********************************************
  17030. lin_SendMail
  17031.     send mail
  17032. INPUT
  17033.     @char_id        int,
  17034.     @mail_type      int,
  17035.     @related_id     int,
  17036.     @receiverName       nvarchar(50),
  17037.     @title          nvarchar(200),
  17038.     @content        nvarchar(4000)
  17039. OUTPUT
  17040. return
  17041. made by
  17042.     kks
  17043. date
  17044.     2004-12-15
  17045. modified by
  17046.     kks
  17047. date
  17048.     2005-04-26
  17049. ********************************************/
  17050. ALTER PROCEDURE [DBO].[lin_SendMail]
  17051. (
  17052.     @char_id        INT,
  17053.     @mail_type      INT,
  17054.     @related_id     INT,
  17055.     @receiver_name_list     nvarchar(250),
  17056.     @title          nvarchar(200),
  17057.     @content        nvarchar(4000)
  17058. )
  17059. AS
  17060. SET NOCOUNT ON
  17061.  
  17062. DECLARE @mail_id INT
  17063. SET @mail_id = 0
  17064.  
  17065. INSERT INTO user_mail
  17066. (title, content) VALUES (@title, @content)
  17067.  
  17068. SET @mail_id = @@IDENTITY
  17069.  
  17070. DECLARE @sender_name nvarchar(50)
  17071. DECLARE @char_name NVARCHAR(50)
  17072.  
  17073. SELECT @sender_name = char_name FROM user_data(nolock) WHERE char_id = @char_id
  17074.  
  17075. INSERT INTO user_mail_sender
  17076. (mail_id, related_id, mail_type, sender_id, sender_name, receiver_name_list)
  17077. VALUES
  17078. (@mail_id, @related_id, @mail_type, @char_id, @sender_name, @receiver_name_list)
  17079.  
  17080. IF @mail_type = 1
  17081. BEGIN
  17082.     DECLARE name_cursor CURSOR FOR
  17083.     (SELECT char_name FROM user_data(nolock) WHERE pledge_id = (SELECT pledge_id FROM pledge(nolock) WHERE name = @receiver_name_list))
  17084.     OPEN name_cursor
  17085.     FETCH NEXT FROM name_cursor INTO @char_name
  17086.     WHILE @@FETCH_STATUS = 0
  17087.     BEGIN
  17088.         EXEC lin_SendMailToReceiver @mail_id, @char_name
  17089.         FETCH NEXT FROM name_cursor INTO @char_name
  17090.     END
  17091.  
  17092.     CLOSE name_cursor
  17093.     DEALLOCATE name_cursor
  17094. END
  17095. ELSE
  17096. BEGIN
  17097. --  DECLARE @receiver_name_list_replaced nvarchar(300)
  17098. --  SELECT @receiver_name_list_replaced = REPLACE(@receiver_name_list,';', ' ; ')
  17099.    
  17100. --  DECLARE @receiver_name1 nvarchar (50), @receiver_name2 nvarchar (50), @receiver_name3 nvarchar (50), @receiver_name4 nvarchar (50), @receiver_name5 nvarchar (50)
  17101. --  EXEC master..xp_sscanf @receiver_name_list_replaced, '%s ; %s ; %s ; %s ; %s ',
  17102. --     @receiver_name1 OUTPUT, @receiver_name2 OUTPUT, @receiver_name3 OUTPUT, @receiver_name4 OUTPUT, @receiver_name5 OUTPUT
  17103.    
  17104. --  EXEC lin_SendMailToReceiver @mail_id, @receiver_name1
  17105. --  EXEC lin_SendMailToReceiver @mail_id, @receiver_name2
  17106. --  EXEC lin_SendMailToReceiver @mail_id, @receiver_name3
  17107. --  EXEC lin_SendMailToReceiver @mail_id, @receiver_name4
  17108. --  EXEC lin_SendMailToReceiver @mail_id, @receiver_name5
  17109.    
  17110.     DECLARE @pos INT
  17111.  
  17112.     SET @pos = charindex(';', @receiver_name_list)
  17113.     while (@pos > 0)
  17114.     BEGIN
  17115.         SET @char_name = SUBSTRING(@receiver_name_list, 0, @pos)
  17116.         EXEC lin_SendMailToReceiver @mail_id, @char_name
  17117.  
  17118.         SET @receiver_name_list = SUBSTRING(@receiver_name_list, @pos+1, len(@receiver_name_list)-@pos+1)
  17119.         SET @pos = charindex(';', @receiver_name_list)
  17120.     END
  17121. END
  17122. GO
  17123.  
  17124. /********************************************
  17125. lin_SetAgitAuction
  17126.     create agit bid
  17127. INPUT
  17128.     @auction_id int
  17129.  
  17130. OUTPUT
  17131. return
  17132. made by
  17133.     young
  17134. date
  17135.     2003-12-1
  17136. ********************************************/
  17137. ALTER PROCEDURE [DBO].[lin_SetAgitAuction]
  17138. (
  17139. @agit_id        INT,
  17140. @auction_id     INT,
  17141. @next_cost      INT
  17142.  
  17143. )
  17144. AS
  17145. SET NOCOUNT ON
  17146.  
  17147. DECLARE @max_price  INT
  17148. DECLARE @attend_id INT
  17149. DECLARE @pledge_id INT
  17150. DECLARE @tax INT
  17151.  
  17152. SET @attend_id = 0
  17153. SET @max_price = 0
  17154. SET @pledge_id = 0
  17155. SET @tax = 0
  17156.  
  17157. SELECT top 1 @max_price = attend_price, @attend_id = attend_id, @pledge_id = attend_pledge_id FROM agit_bid (nolock)
  17158.     WHERE auction_id = @auction_id
  17159.     ORDER BY attend_price DESC, attend_id ASC
  17160.  
  17161. IF ( @max_price > 0 )
  17162. BEGIN
  17163.     -- ??
  17164.     UPDATE agit_auction SET accepted_bid = @attend_id WHERE auction_id = @auction_id
  17165.     UPDATE agit SET auction_id = NULL , last_price = @max_price, next_cost = @next_cost  , cost_fail = NULL  WHERE id = @agit_id
  17166.     UPDATE pledge SET agit_id = @agit_id WHERE pledge_id = @pledge_id
  17167.     SELECT @tax = isnull( auction_tax , 0) FROM agit_auction (nolock) WHERE auction_id = @auction_id
  17168. END  ELSE BEGIN
  17169.     -- ??
  17170.     UPDATE agit_auction SET accepted_bid = 0 WHERE auction_id = @auction_id
  17171.     UPDATE agit SET auction_id = NULL , next_cost = 0  , cost_fail = NULL WHERE id = @agit_id
  17172. END
  17173.  
  17174. SELECT @attend_id, @max_price, @pledge_id, @tax
  17175. GO
  17176.  
  17177. -- lin_SetAgitDeco
  17178. -- by bert
  17179. -- return (1, 0)
  17180. ALTER PROCEDURE dbo.lin_SetAgitDeco
  17181. (
  17182.     @agit_id INT,
  17183.     @TYPE INT,
  17184.     @id INT,
  17185.     @name VARCHAR(256),
  17186.     @level INT,
  17187.     @expire INT
  17188. )
  17189. AS
  17190. SET NOCOUNT ON
  17191.  
  17192. DELETE FROM agit_deco
  17193. WHERE agit_id = @agit_id AND TYPE = @TYPE
  17194.  
  17195. INSERT INTO agit_deco
  17196. (agit_id, TYPE, id, name, level, expire)
  17197. VALUES
  17198. (@agit_id, @TYPE, @id, @name, @level, @expire)
  17199.  
  17200. SELECT @@ROWCOUNT
  17201. GO
  17202.  
  17203. /********************************************
  17204. lin_SetAgitNextCost
  17205.    
  17206. INPUT
  17207.    
  17208.  
  17209. OUTPUT
  17210. return
  17211. made by
  17212.     young
  17213. date
  17214.     2003-12-1
  17215. ********************************************/
  17216. ALTER PROCEDURE [DBO].[lin_SetAgitNextCost]
  17217. (
  17218. @agit_id        INT,
  17219. @next_cost      INT,
  17220. @cost_fail      INT=0
  17221.  
  17222. )
  17223. AS
  17224. SET NOCOUNT ON
  17225.  
  17226. UPDATE agit SET next_cost = @next_cost  , cost_fail = @cost_fail WHERE id = @agit_id
  17227. GO
  17228.  
  17229. /****** Object:  Stored Procedure dbo.lin_setAgitOwner    Script Date: 2003-09-20 ?? 11:52:00 ******/
  17230. /********************************************
  17231. lin_setAgitOwner
  17232.     set Agit Owner
  17233. INPUT
  17234.     nAgit_id,
  17235.     nPledge_id
  17236.  
  17237. OUTPUT
  17238. return
  17239. made by
  17240.     carrot
  17241. date
  17242.     2002-06-12
  17243. change
  17244. ********************************************/
  17245. ALTER PROCEDURE [DBO].[lin_setAgitOwner]
  17246. (
  17247.     @Agit_id        INT,
  17248.     @Pledge_id  INT
  17249. )
  17250. AS
  17251.  
  17252. SET NOCOUNT ON
  17253.  
  17254. IF NOT EXISTS(SELECT id FROM castle WHERE id = @Agit_id )
  17255.     INSERT INTO castle (id, name, pledge_id, TYPE) VALUES (@Agit_id, 'test', @Pledge_id,  2)
  17256. ELSE
  17257.     UPDATE castle  SET pledge_id = @Pledge_id WHERE id = @Agit_id AND TYPE = 2
  17258.  
  17259. IF @@ROWCOUNT > 0
  17260.     SELECT 1
  17261. ELSE
  17262.     SELECT 0
  17263. GO
  17264.  
  17265. /****** Object:  Stored Procedure dbo.lin_SetAgitOwner2    Script Date: 2003-09-20 ?? 11:52:00 ******/
  17266. /********************************************
  17267. lin_SetAgitOwner2
  17268.    
  17269. INPUT  
  17270.     @pledge_id  int,
  17271.     @agit_id        int
  17272. OUTPUT
  17273. return
  17274. made by
  17275.     carrot
  17276. date
  17277.     2002-06-16
  17278. ********************************************/
  17279. ALTER PROCEDURE [DBO].[lin_SetAgitOwner2]
  17280. (
  17281.     @pledge_id  INT,
  17282.     @agit_id        INT
  17283. )
  17284. AS
  17285. SET NOCOUNT ON
  17286.  
  17287. UPDATE agit SET pledge_id = @pledge_id WHERE id = @agit_id
  17288. GO
  17289.  
  17290. /****** Object:  Stored Procedure dbo.lin_SetAllianceInfo    Script Date: 2003-09-20 ?? 11:51:57 ******/
  17291. /********************************************
  17292. lin_SetAllianceInfo
  17293.    
  17294. INPUT  
  17295.     @fieldName  nvarchar(50),
  17296.     @field_data INT,
  17297.     @pledge_id  INT
  17298. OUTPUT
  17299.  
  17300. return
  17301. made by
  17302.     bert ^^
  17303. ********************************************/
  17304.  
  17305. ALTER PROCEDURE [DBO].[lin_SetAllianceInfo]
  17306. (
  17307. @fieldName  nvarchar(50),
  17308. @field_data INT,
  17309. @alliance_id    INT
  17310. )
  17311. AS
  17312. SET NOCOUNT ON
  17313.  
  17314. IF @fieldName = N'oust_time' BEGIN UPDATE alliance SET oust_time = @field_data WHERE id =  @alliance_id END
  17315. ELSE IF @fieldName = N'crest_id' BEGIN UPDATE alliance SET crest_id = @field_data WHERE id =  @alliance_id END
  17316. ELSE
  17317. BEGIN
  17318.     RAISERROR ('lin_SetAllianceInfo : invalid field [%s]', 16, 1, @fieldName)
  17319.     RETURN -1  
  17320. END
  17321. GO
  17322.  
  17323. ALTER PROCEDURE dbo.lin_SetAquireSkill
  17324. (
  17325.     @char_id    INT,
  17326.     @subjob_id  INT,
  17327.     @skill_id       INT,
  17328.     @skill_level    TINYINT
  17329. )
  17330. AS
  17331. SET NOCOUNT ON
  17332.  
  17333. IF EXISTS(SELECT skill_lev FROM user_skill WHERE char_id = @char_id AND skill_id = @skill_id AND ISNULL(subjob_id, 0) = @subjob_id)
  17334.     UPDATE user_skill SET skill_lev = @skill_level WHERE char_id = @char_id AND skill_id = @skill_id AND ISNULL(subjob_id, 0) = @subjob_id
  17335. ELSE
  17336.     INSERT INTO user_skill (char_id, subjob_id, skill_id, skill_lev) VALUES (@char_id, @subjob_id, @skill_id, @skill_level)
  17337. GO
  17338.  
  17339. /****** Object:  Stored Procedure dbo.lin_SetBuilderAccount     Script Date: 2003-09-20 ?? 11:52:00 ******/
  17340. /********************************************
  17341. lin_SetBuilderAccount
  17342.     set builder account
  17343. INPUT
  17344.     @account_name   nvarchar(50),
  17345.     @default_level      int
  17346.  
  17347. OUTPUT
  17348. return
  17349. made by
  17350.     young
  17351. date
  17352.     2002-11-28
  17353. change
  17354. ********************************************/
  17355. ALTER PROCEDURE [DBO].[lin_SetBuilderAccount ]
  17356. (
  17357.     @account_name   nvarchar(50),
  17358.     @default_level      INT
  17359. )
  17360. AS
  17361.  
  17362. SET NOCOUNT ON
  17363.  
  17364. IF ( @default_level = 0)
  17365. BEGIN
  17366.     DELETE FROM builder_account WHERE account_name = @account_name
  17367. END ELSE BEGIN
  17368.     IF EXISTS(SELECT * FROM builder_account WHERE account_name = @account_name)
  17369.     BEGIN
  17370.         UPDATE builder_account SET default_builder = @default_level WHERE account_name = @account_name
  17371.     END ELSE BEGIN
  17372.         DECLARE @account_id INT
  17373.         SET @account_id = 0
  17374.         SELECT top 1 @account_id = account_id FROM user_data WHERE account_name = @account_name AND account_id > 0
  17375.         INSERT INTO builder_account(account_name, default_builder, account_id) VALUES(@account_name, @default_level, @account_id)
  17376.     END
  17377. END
  17378. GO
  17379.  
  17380. /****** Object:  Stored Procedure dbo.lin_SetBuilderCharacter    Script Date: 2003-09-20 ?? 11:51:57 ******/
  17381. /********************************************
  17382. lin_SetBuilderCharacter
  17383.     Set Builder Character flag
  17384. INPUT
  17385.     @char_name  nvarchar,
  17386.     @nBuilderLev    int
  17387. OUTPUT
  17388.     char_id
  17389. return
  17390. made by
  17391.     carrot
  17392. date
  17393.     2002-06-28
  17394. ********************************************/
  17395. ALTER PROCEDURE [DBO].[lin_SetBuilderCharacter]
  17396. (
  17397.     @char_name  NVARCHAR(24),
  17398.     @nBuilderLev    INT
  17399. )
  17400. AS
  17401.  
  17402. SET NOCOUNT ON
  17403.  
  17404. DECLARE @Char_id INT
  17405. SET @Char_id = 0
  17406.  
  17407. UPDATE user_data SET builder =  @nBuilderLev WHERE char_name = @char_name
  17408. IF @@ROWCOUNT > 0
  17409. BEGIN
  17410.     SELECT @Char_id = char_id FROM user_data WHERE char_name = @char_name
  17411. END
  17412.  
  17413. SELECT @Char_id
  17414. GO
  17415.  
  17416. /****** Object:  Stored Procedure dbo.lin_setCastleOwner    Script Date: 2003-09-20 ?? 11:51:57 ******/
  17417. /********************************************
  17418. lin_setCastleOwner
  17419.     set castle Owner
  17420. INPUT
  17421.     nCastle_id,
  17422.     nPledge_id
  17423.  
  17424. OUTPUT
  17425. return
  17426. made by
  17427.     carrot
  17428. date
  17429.     2002-06-12
  17430. change
  17431. ********************************************/
  17432. ALTER PROCEDURE [DBO].[lin_setCastleOwner]
  17433. (
  17434.     @Castle_id  INT,
  17435.     @Pledge_id  INT
  17436. )
  17437. AS
  17438.  
  17439. SET NOCOUNT ON
  17440.  
  17441. DECLARE @Castle_idOld INT
  17442. DECLARE @nPledgeIdOld INT
  17443.  
  17444. SET @Castle_idOld = 0
  17445. SET @nPledgeIdOld = 0
  17446.  
  17447. SELECT @Castle_idOld = id, @nPledgeIdOld = pledge_id FROM castle WHERE id = @Castle_id
  17448.  
  17449. IF @Castle_idOld = 0
  17450.     INSERT INTO castle (id, name, pledge_id, TYPE) VALUES (@Castle_id , 'test', @Pledge_id,  1)
  17451. ELSE
  17452.     UPDATE castle  SET pledge_id = @Pledge_id WHERE id = @Castle_id  AND TYPE = 1
  17453.  
  17454. IF @@ROWCOUNT > 0
  17455.     SELECT 1
  17456. ELSE
  17457.     SELECT 0
  17458. GO
  17459.  
  17460. /****** Object:  Stored Procedure dbo.lin_SetCastleOwner2    Script Date: 2003-09-20 ?? 11:52:00 ******/
  17461. /********************************************
  17462. lin_SetCastleOwner2
  17463.    
  17464. INPUT  
  17465.     @pledge_id  int,
  17466.     @agit_id        int
  17467. OUTPUT
  17468. return
  17469. made by
  17470.     carrot
  17471. date
  17472.     2002-06-16
  17473. ********************************************/
  17474. ALTER PROCEDURE [DBO].[lin_SetCastleOwner2]
  17475. (
  17476.     @pledge_id  INT,
  17477.     @castle_id      INT
  17478. )
  17479. AS
  17480. SET NOCOUNT ON
  17481.  
  17482. UPDATE castle SET pledge_id = @pledge_id WHERE id = @castle_id
  17483. GO
  17484.  
  17485. /****** Object:  Stored Procedure dbo.lin_SetCharacterDelete    Script Date: 2003-09-20 ?? 11:51:57 ******/
  17486. /********************************************
  17487. lin_SetCharacterDelete
  17488.     Set character is deleted
  17489. INPUT
  17490.     @char_id    INT
  17491. OUTPUT
  17492.     year
  17493.     month
  17494.     day
  17495. return
  17496. made by
  17497.     carrot
  17498. date
  17499.     2003-01-7
  17500. ********************************************/
  17501. ALTER  PROCEDURE [DBO].[lin_SetCharacterDelete]
  17502. (
  17503.     @char_id    INT
  17504. )
  17505. AS
  17506.  
  17507. SET NOCOUNT ON
  17508.  
  17509. DECLARE @deletedDate    SMALLDATETIME
  17510.  
  17511. SET @deletedDate = GetDate()
  17512.  
  17513. UPDATE user_data SET temp_delete_date = @deletedDate WHERE char_id = @char_id
  17514.  
  17515. IF @@ROWCOUNT > 0
  17516. BEGIN
  17517.     SELECT  YEAR(@deletedDate), MONTH(@deletedDate), DAY(@deletedDate),
  17518.         DATEPART(HOUR, @deletedDate), DATEPART(mi, @deletedDate), DATEPART(s, @deletedDate)
  17519. END
  17520. ELSE
  17521. BEGIN
  17522.     SELECT 0,0,0,0,0,0
  17523. END
  17524. GO
  17525.  
  17526. /****** Object:  Stored Procedure dbo.lin_SetCharacterDeleteRestore    Script Date: 2003-09-20 ?? 11:51:57 ******/
  17527. /********************************************
  17528. lin_SetCharacterDeleteRestore
  17529.     Restore character which is set deleted
  17530. INPUT
  17531.     @char_id    INT
  17532. OUTPUT
  17533. return
  17534. made by
  17535.     carrot
  17536. date
  17537.     2003-01-7
  17538. ********************************************/
  17539. ALTER PROCEDURE [DBO].[lin_SetCharacterDeleteRestore]
  17540. (
  17541.     @char_id    INT
  17542. )
  17543. AS
  17544.  
  17545. SET NOCOUNT ON
  17546.  
  17547. UPDATE user_data SET temp_delete_date = NULL WHERE char_id = @char_id
  17548. GO
  17549.  
  17550. ALTER PROCEDURE dbo.lin_SetClass
  17551. (
  17552. @char_id AS INT,
  17553. @subjob_id AS INT,
  17554. @class AS INT
  17555. )
  17556. AS
  17557. SET NOCOUNT ON
  17558.  
  17559. IF @subjob_id = 0
  17560.     UPDATE user_data SET class = @class, subjob0_class = @class WHERE char_id = @char_id
  17561. ELSE IF @subjob_id = 1
  17562.     UPDATE user_data SET class = @class, subjob1_class = @class WHERE char_id = @char_id
  17563. ELSE IF @subjob_id = 2
  17564.     UPDATE user_data SET class = @class, subjob2_class = @class WHERE char_id = @char_id
  17565. ELSE IF @subjob_id = 3
  17566.     UPDATE user_data SET class = @class, subjob3_class = @class WHERE char_id = @char_id
  17567. GO
  17568.  
  17569. ALTER PROCEDURE dbo.lin_SetHistoryOpen
  17570. (
  17571. @char_id AS INT,
  17572. @history_open AS TINYINT
  17573. )
  17574. AS
  17575. SET NOCOUNT ON
  17576.  
  17577. UPDATE user_nobless
  17578. SET history_open = @history_open
  17579. WHERE char_id = @char_id
  17580. GO
  17581.  
  17582. /********************************************
  17583. lin_SetIntervalAnnounce
  17584.     set interval announce
  17585. INPUT
  17586.    
  17587. OUTPUT
  17588.     interval
  17589.     announce id
  17590.     msg
  17591. return
  17592. made by
  17593.     carrot
  17594. date
  17595.     2003-12-19
  17596. ********************************************/
  17597. ALTER PROCEDURE [DBO].[lin_SetIntervalAnnounce]
  17598. (
  17599.     @nInterval  INT,
  17600.     @nAnnounceId    INT,
  17601.     @wsMsg  NVARCHAR(100)
  17602. )
  17603. AS
  17604. SET NOCOUNT ON
  17605.  
  17606. IF EXISTS(SELECT top 1 * FROM login_announce WHERE interval_10 = @nInterval AND announce_id = @nAnnounceId)
  17607.   BEGIN
  17608.     UPDATE login_announce SET announce_msg = @wsMsg WHERE interval_10 = @nInterval AND announce_id = @nAnnounceId
  17609.   END
  17610. ELSE
  17611.   BEGIN
  17612.     INSERT INTO login_announce (interval_10, announce_id, announce_msg) VALUES (@nInterval, @nAnnounceId, @wsMsg)
  17613.   END
  17614. GO
  17615.  
  17616. /********************************************    
  17617. lin_SetLastTaxUpdate  
  17618.      
  17619. INPUT    
  17620. @income  datetime,
  17621. @tax datetime
  17622. OUTPUT    
  17623. made by    
  17624.  carrot    
  17625. date    
  17626.  2004-02-29  
  17627. ********************************************/    
  17628. ALTER PROCEDURE [DBO].[lin_SetLastTaxUpdate]  
  17629. (  
  17630. @income  datetime,
  17631. @tax datetime,
  17632. @manor datetime
  17633. )  
  17634. AS    
  17635.    
  17636. SET NOCOUNT ON    
  17637.  
  17638. IF EXISTS(SELECT * FROM castle_tax)  
  17639. BEGIN  
  17640.  UPDATE castle_tax SET   income_update =  @income, tax_change =   @tax, manor_reset =   @manor
  17641. END  
  17642. ELSE  
  17643. BEGIN  
  17644.  INSERT INTO castle_tax VALUES  
  17645.  (  @income, @tax, @manor)  
  17646.  
  17647. END
  17648. GO
  17649.  
  17650. /****** Object:  Stored Procedure dbo.lin_SetLoginAnnounce    Script Date: 2003-09-20 ?? 11:52:00 ******/
  17651. /********************************************
  17652. lin_SetLoginAnnounce
  17653.     set login announce
  17654. INPUT
  17655.     @announce_id int,
  17656.     @announce_msg nvarchar(64) 
  17657. OUTPUT
  17658.    
  17659. return
  17660. made by
  17661.     young
  17662. date
  17663.     2002-11-30
  17664. ********************************************/
  17665. ALTER PROCEDURE [DBO].[lin_SetLoginAnnounce]
  17666. (
  17667.     @announce_id INT ,
  17668.     @announce_msg nvarchar(64)
  17669. )
  17670.  
  17671. AS
  17672.  
  17673. SET NOCOUNT ON
  17674.  
  17675.  
  17676. IF EXISTS(SELECT announce_id FROM login_announce (nolock) WHERE announce_id = @announce_id  AND interval_10 = 0 )
  17677. BEGIN
  17678.  
  17679.     UPDATE login_announce SET announce_msg = @announce_msg WHERE announce_id = @announce_id AND interval_10 = 0
  17680.  
  17681. END ELSE BEGIN
  17682.  
  17683.     INSERT INTO login_announce(announce_id, announce_msg , interval_10 ) VALUES(@announce_id, @announce_msg, 0 )
  17684.  
  17685. END
  17686. GO
  17687.  
  17688. /********************************************
  17689. lin_SetMacro
  17690.     ALTER  macro
  17691. INPUT
  17692.     @macro_id       int,
  17693.     @macro_name     nvarchar(64),
  17694.     @macro_tooltip      nvarchar(64)
  17695.     @macro_iconname nvarchar(64)
  17696.     @macro_icontype     int
  17697.  
  17698. OUTPUT
  17699. return
  17700. made by
  17701.     young
  17702. date
  17703.     2004-6-16
  17704. ********************************************/
  17705. ALTER PROCEDURE [DBO].[lin_SetMacro]
  17706. (
  17707. @macro_id       INT,
  17708. @macro_name     nvarchar(64),
  17709. @macro_tooltip      nvarchar(64),
  17710. @macro_iconname nvarchar(64),
  17711. @macro_icontype INT
  17712. )
  17713. AS
  17714. SET NOCOUNT ON
  17715.  
  17716. IF ( EXISTS ( SELECT * FROM user_macro WHERE macro_id = @macro_id ) )
  17717. BEGIN
  17718.     UPDATE user_macro
  17719.     SET macro_name = @macro_name, macro_tooltip = @macro_tooltip,
  17720.         macro_iconname = @macro_iconname, macro_icontype = @macro_icontype
  17721.     WHERE macro_id = @macro_id
  17722.  
  17723.  
  17724.     DELETE FROM user_macroinfo WHERE macro_id = @macro_id
  17725.  
  17726.  
  17727. END
  17728. GO
  17729.  
  17730. /********************************************
  17731. lin_SetNewbieStat
  17732.     set newbie staus
  17733. INPUT
  17734.     @account_id INT,
  17735.     @newbie_stat    INT
  17736. OUTPUT
  17737. return
  17738. made by
  17739.     kks
  17740. date
  17741.     2004-11-25
  17742. ********************************************/
  17743. ALTER PROCEDURE [DBO].[lin_SetNewbieStat]
  17744. (
  17745.     @account_id INT,
  17746.     @newbie_stat    INT
  17747. )
  17748. AS
  17749. SET NOCOUNT ON
  17750.  
  17751. UPDATE user_newbie
  17752. SET newbie_stat = @newbie_stat
  17753. WHERE account_id = @account_id
  17754. GO
  17755.  
  17756. /****** Object:  Stored Procedure dbo.lin_SetPetitionMsg    Script Date: 2003-09-20 ?? 11:52:00 ******/
  17757. /********************************************
  17758. lin_SetPetitionMsg
  17759.     store Petition Msg
  17760. INPUT
  17761.     @char_id    int,
  17762.     @msg    nvarchar(500)
  17763. OUTPUT
  17764.  
  17765. return
  17766. made by
  17767.     carrot
  17768. date
  17769.     2003-02-27
  17770. ********************************************/
  17771. ALTER PROCEDURE [DBO].[lin_SetPetitionMsg]
  17772. (
  17773.     @char_id    INT,
  17774.     @msg    nvarchar(500)
  17775. )
  17776. AS
  17777. SET NOCOUNT ON
  17778.  
  17779. IF EXISTS(SELECT * FROM PetitionMsg WHERE char_id =@char_id)
  17780. BEGIN
  17781.     UPDATE PetitionMsg SET msg = @msg WHERE char_id = @char_id
  17782. END
  17783. ELSE
  17784. BEGIN
  17785.     INSERT INTO PetitionMsg  (char_id, msg)
  17786.     VALUES( @char_id, @msg)
  17787. END
  17788. GO
  17789.  
  17790. /********************************************
  17791. lin_SetPledgeAnnounce
  17792.     set pledge announce
  17793. INPUT
  17794.     @pledge_id      int,
  17795.     @show_flag      smallint,
  17796.     @content        nvarchar(3000)
  17797. OUTPUT
  17798. return
  17799. made by
  17800.     kks
  17801. date
  17802.     2005-07-22
  17803. ********************************************/
  17804. ALTER PROCEDURE dbo.lin_SetPledgeAnnounce
  17805. (  
  17806.     @pledge_id      INT,
  17807.     @show_flag      SMALLINT,
  17808.     @content        nvarchar(3000)
  17809. )  
  17810. AS  
  17811. SET NOCOUNT ON  
  17812.  
  17813.  
  17814. UPDATE pledge_announce SET show_flag = @show_flag , content = @content
  17815. WHERE pledge_id = @pledge_id
  17816.  
  17817. IF (@@ROWCOUNT = 0)  
  17818.  BEGIN  
  17819.   INSERT INTO pledge_announce (pledge_id, show_flag, content)
  17820.     VALUES (@pledge_id, @show_flag, @content)
  17821.  END
  17822. GO
  17823.  
  17824. /****** Object:  Stored Procedure dbo.lin_SetPledgeCrest    Script Date: 2003-09-20 ?? 11:51:57 ******/
  17825. -- lin_SetPledgeCrest
  17826. -- by bert
  17827. -- return crest id
  17828. -- modified by kks (2005-08-18)
  17829.  
  17830. ALTER PROCEDURE [DBO].[lin_SetPledgeCrest]
  17831. (
  17832.     @bitmap_size    INT,
  17833.     @bitmap VARBINARY(3072)
  17834. )
  17835. AS
  17836.  
  17837. SET NOCOUNT ON
  17838.  
  17839. INSERT INTO Pledge_Crest
  17840. (bitmap_size, bitmap) VALUES (@bitmap_size, @bitmap)
  17841.  
  17842. SELECT @@IDENTITY
  17843. GO
  17844.  
  17845. /****** Object:  Stored Procedure dbo.lin_SetPledgeInfo    Script Date: 2003-09-20 ?? 11:52:00 ******/
  17846.  
  17847. /********************************************
  17848. lin_SetPledgeInfo
  17849.    
  17850. INPUT  
  17851.     @fieldName  nvarchar(50),
  17852.     @field_data INT,
  17853.     @pledge_id  INT
  17854. OUTPUT
  17855.  
  17856. return
  17857. made by
  17858.     carrot
  17859. date
  17860.     2002-06-16
  17861. modified by
  17862.     kks (2005-07-22)
  17863. ********************************************/
  17864. ALTER PROCEDURE [DBO].[lin_SetPledgeInfo]
  17865. (
  17866. @fieldName  nvarchar(50),
  17867. @field_data INT,
  17868. @pledge_id  INT
  17869. )
  17870. AS
  17871. SET NOCOUNT ON
  17872.  
  17873. IF @fieldName = N'alliance_id' BEGIN UPDATE pledge SET alliance_id = @field_data WHERE pledge_id =  @pledge_id END
  17874. ELSE IF @fieldName = N'challenge_time' BEGIN UPDATE pledge SET challenge_time = @field_data WHERE pledge_id =  @pledge_id END
  17875. ELSE IF @fieldName = N'root_name_value' BEGIN UPDATE pledge SET root_name_value = @field_data WHERE pledge_id =  @pledge_id END
  17876. ELSE IF @fieldName = N'now_war_id' BEGIN UPDATE pledge SET now_war_id = @field_data WHERE pledge_id =  @pledge_id END
  17877. ELSE IF @fieldName = N'oust_time' BEGIN UPDATE pledge SET oust_time = @field_data WHERE pledge_id =  @pledge_id END
  17878. ELSE IF @fieldName = N'skill_level' BEGIN UPDATE pledge SET skill_level = @field_data WHERE pledge_id =  @pledge_id END
  17879. ELSE IF @fieldName = N'castle_id' BEGIN UPDATE pledge SET castle_id = @field_data WHERE pledge_id =  @pledge_id END
  17880. ELSE IF @fieldName = N'agit_id' BEGIN UPDATE pledge SET agit_id = @field_data WHERE pledge_id =  @pledge_id END
  17881. ELSE IF @fieldName = N'rank' BEGIN UPDATE pledge SET rank = @field_data WHERE pledge_id =  @pledge_id END
  17882. ELSE IF @fieldName = N'name_value' BEGIN UPDATE pledge SET name_value = @field_data WHERE pledge_id =  @pledge_id END
  17883. ELSE IF @fieldName = N'status' BEGIN UPDATE pledge SET STATUS = @field_data WHERE pledge_id =  @pledge_id END
  17884. ELSE IF @fieldName = N'private_flag' BEGIN UPDATE pledge SET private_flag = @field_data WHERE pledge_id =  @pledge_id END
  17885. ELSE IF @fieldName = N'crest_id' BEGIN UPDATE pledge SET crest_id = @field_data WHERE pledge_id =  @pledge_id END
  17886. ELSE IF @fieldName = N'is_guilty' BEGIN UPDATE pledge SET is_guilty = @field_data WHERE pledge_id =  @pledge_id END
  17887. ELSE IF @fieldName = N'dismiss_reserved_time' BEGIN UPDATE pledge SET dismiss_reserved_time = @field_data WHERE pledge_id =  @pledge_id END
  17888. ELSE IF @fieldName = N'alliance_ousted_time' BEGIN UPDATE pledge SET alliance_ousted_time = @field_data WHERE pledge_id =  @pledge_id END
  17889. ELSE IF @fieldName = N'alliance_withdraw_time' BEGIN UPDATE pledge SET alliance_withdraw_time = @field_data WHERE pledge_id =  @pledge_id END
  17890. ELSE IF @fieldName = N'alliance_dismiss_time' BEGIN UPDATE pledge SET alliance_dismiss_time = @field_data WHERE pledge_id =  @pledge_id END
  17891. ELSE IF @fieldName = N'ruler_id' BEGIN UPDATE pledge SET ruler_id = @field_data WHERE pledge_id =  @pledge_id END
  17892. ELSE IF @fieldName = N'emblem_id' BEGIN UPDATE pledge SET emblem_id = @field_data WHERE pledge_id =  @pledge_id END
  17893. ELSE
  17894. BEGIN
  17895.     RAISERROR ('lin_SetPledgeInfo : invalid field [%s]', 16, 1, @fieldName)
  17896.     RETURN -1  
  17897. END
  17898. GO
  17899.  
  17900. /****** Object:  Stored Procedure dbo.lin_SetPunish    Script Date: 2003-09-20 ??? 11:52:00 ******/
  17901. /********************************************
  17902. lin_SetPunish
  17903.     Set punish
  17904. INPUT
  17905.     @char_id    INT,
  17906.     @punish_id  INT,
  17907.     @punish_on  INT,
  17908.     @remain INT
  17909. OUTPUT
  17910. return
  17911. made by
  17912.     young
  17913. date
  17914.     2002-11-27
  17915. ********************************************/
  17916. ALTER   PROCEDURE [DBO].[lin_SetPunish]
  17917. (
  17918.     @char_id    INT,
  17919.     @punish_id  INT,
  17920.     @punish_on  INT,
  17921.     @remain INT
  17922.  
  17923. )
  17924. AS
  17925. SET NOCOUNT ON
  17926.  
  17927. DECLARE @nCount INT
  17928.  
  17929. SELECT @nCount = COUNT(*) FROM user_punish (nolock) WHERE char_id = @char_id AND punish_id = @punish_id
  17930.  
  17931. IF ( @nCount > 0 AND @remain = 0)
  17932. BEGIN
  17933.     DELETE FROM user_punish WHERE char_id = @char_id AND punish_id = @punish_id
  17934. END
  17935.  
  17936. IF ( @nCount > 0 AND @remain > 0)
  17937. BEGIN
  17938.     IF @punish_on = 1
  17939.         UPDATE user_punish SET  remain_game = @remain WHERE char_id = @char_id AND punish_id = @punish_id
  17940.  
  17941.     IF @punish_on = 0
  17942.         UPDATE user_punish SET  remain_real = @remain  WHERE char_id = @char_id AND punish_id = @punish_id
  17943.        
  17944. END
  17945.  
  17946. IF ( @nCount = 0 AND @remain > 0)
  17947. BEGIN
  17948.     IF @punish_on = 1
  17949.         INSERT INTO user_punish(char_id, punish_id, punish_on, remain_game) VALUES (@char_id, @punish_id, 1, @remain)
  17950.  
  17951.     IF @punish_on = 0
  17952.         INSERT INTO user_punish(char_id, punish_id, punish_on, remain_real) VALUES (@char_id, @punish_id, 0, @remain)
  17953. END
  17954. GO
  17955.  
  17956. /********************************************  
  17957. lin_SetQuest  
  17958.    
  17959. INPUT  
  17960. @q1 INT,  
  17961. @s1 INT,  
  17962. @j1 INT,  
  17963.  
  17964. @q2 INT,  
  17965. @s2 INT,  
  17966. @j2 INT,  
  17967.  
  17968. @q3 INT,  
  17969. @s3 INT,  
  17970. @j3 INT,  
  17971.  
  17972. @q4 INT,  
  17973. @s4 INT,  
  17974. @j4 INT,  
  17975.  
  17976. @q5 INT,  
  17977. @s5 INT,  
  17978. @j5 INT,  
  17979.  
  17980. @q6 INT,  
  17981. @s6 INT,  
  17982. @j6 INT,  
  17983.  
  17984.  
  17985. @q7 INT,  
  17986. @s7 INT,  
  17987. @j7 INT,  
  17988.  
  17989. @q8 INT,  
  17990. @s8 INT,  
  17991. @j8 INT,  
  17992.  
  17993. @q9 INT,  
  17994. @s9 INT,  
  17995. @j9 INT,  
  17996.  
  17997. @q10 INT,  
  17998. @s10 INT,  
  17999. @j10 INT,  
  18000.  
  18001. @q11 INT,  
  18002. @s11 INT,  
  18003. @j11 INT,  
  18004.  
  18005. @q12 INT,  
  18006. @s12 INT,  
  18007. @j12 INT,  
  18008.  
  18009. @q13 INT,  
  18010. @s13 INT,  
  18011. @j13 INT,  
  18012.  
  18013. @q14 INT,  
  18014. @s14 INT,  
  18015. @j14 INT,  
  18016.  
  18017. @q15 INT,  
  18018. @s15 INT,  
  18019. @j15 INT,  
  18020.  
  18021. @q16 INT,  
  18022. @s16 INT,  
  18023. @j16 INT,  
  18024.  
  18025. @char_id  INT  
  18026. OUTPUT  
  18027. return  
  18028. made by  
  18029.  carrot  
  18030. date  
  18031.  2002-06-09  
  18032. ********************************************/  
  18033. ALTER PROCEDURE [DBO].[lin_SetQuest]  
  18034. (  
  18035. @q1 INT,  
  18036. @s1 INT,  
  18037. @s2_1 INT,  
  18038. @j1 INT,  
  18039.  
  18040. @q2 INT,  
  18041. @s2 INT,  
  18042. @s2_2 INT,  
  18043. @j2 INT,  
  18044.  
  18045. @q3 INT,  
  18046. @s3 INT,  
  18047. @s2_3 INT,  
  18048. @j3 INT,  
  18049.  
  18050. @q4 INT,  
  18051. @s4 INT,  
  18052. @s2_4 INT,  
  18053. @j4 INT,  
  18054.  
  18055. @q5 INT,  
  18056. @s5 INT,  
  18057. @s2_5 INT,  
  18058. @j5 INT,  
  18059.  
  18060. @q6 INT,  
  18061. @s6 INT,  
  18062. @s2_6 INT,  
  18063. @j6 INT,  
  18064.  
  18065.  
  18066. @q7 INT,  
  18067. @s7 INT,  
  18068. @s2_7 INT,  
  18069. @j7 INT,  
  18070.  
  18071. @q8 INT,  
  18072. @s8 INT,  
  18073. @s2_8 INT,  
  18074. @j8 INT,  
  18075.  
  18076. @q9 INT,  
  18077. @s9 INT,  
  18078. @s2_9 INT,  
  18079. @j9 INT,  
  18080.  
  18081. @q10 INT,  
  18082. @s10 INT,  
  18083. @s2_10 INT,  
  18084. @j10 INT,  
  18085.  
  18086. @q11 INT,  
  18087. @s11 INT,  
  18088. @s2_11 INT,  
  18089. @j11 INT,  
  18090.  
  18091. @q12 INT,  
  18092. @s12 INT,  
  18093. @s2_12 INT,  
  18094. @j12 INT,  
  18095.  
  18096. @q13 INT,  
  18097. @s13 INT,  
  18098. @s2_13 INT,  
  18099. @j13 INT,  
  18100.  
  18101. @q14 INT,  
  18102. @s14 INT,  
  18103. @s2_14 INT,  
  18104. @j14 INT,  
  18105.  
  18106. @q15 INT,  
  18107. @s15 INT,  
  18108. @s2_15 INT,  
  18109. @j15 INT,  
  18110.  
  18111. @q16 INT,  
  18112. @s16 INT,  
  18113. @s2_16 INT,  
  18114. @j16 INT,  
  18115.  
  18116. @char_id  INT  
  18117.  
  18118. )  
  18119. AS  
  18120. SET NOCOUNT ON  
  18121.  
  18122. UPDATE quest  
  18123. SET  
  18124. q1=@q1, s1=@s1, s2_1=@s2_1, j1=@j1,  
  18125. q2=@q2, s2=@s2, s2_2=@s2_2, j2=@j2,  
  18126. q3=@q3, s3=@s3, s2_3=@s2_3, j3=@j3,  
  18127. q4=@q4, s4=@s4, s2_4=@s2_4, j4=@j4,  
  18128. q5=@q5, s5=@s5, s2_5=@s2_5, j5=@j5,  
  18129. q6=@q6, s6=@s6, s2_6=@s2_6, j6=@j6,  
  18130. q7=@q7, s7=@s7, s2_7=@s2_7, j7=@j7,  
  18131. q8=@q8, s8=@s8, s2_8=@s2_8, j8=@j8,  
  18132. q9=@q9, s9=@s9, s2_9=@s2_9, j9=@j9,  
  18133. q10=@q10, s10=@s10, s2_10=@s2_10, j10=@j10,  
  18134. q11=@q11, s11=@s11, s2_11=@s2_11, j11=@j11,  
  18135. q12=@q12, s12=@s12, s2_12=@s2_12, j12=@j12,  
  18136. q13=@q13, s13=@s13, s2_13=@s2_13, j13=@j13,  
  18137. q14=@q14, s14=@s14, s2_14=@s2_14, j14=@j14,  
  18138. q15=@q15, s15=@s15, s2_15=@s2_15, j15=@j15,  
  18139. q16=@q16, s16=@s16, s2_16=@s2_16, j16=@j16  
  18140. WHERE char_id = @char_id
  18141. GO
  18142.  
  18143. ALTER PROCEDURE dbo.lin_SetShortCut
  18144. (  
  18145.  @char_id INT,
  18146.  @subjob_id INT,
  18147.  @slotnum  INT,  
  18148.  @TYPE   INT,  
  18149.  @id   INT,  
  18150.  @macro   NVARCHAR(256)  
  18151. )  
  18152. AS  
  18153. SET NOCOUNT ON  
  18154.  
  18155. IF (@char_id = 0)
  18156. BEGIN
  18157. SET @char_id = @subjob_id
  18158. SET @subjob_id = 0
  18159. END
  18160.  
  18161. IF (@TYPE = 0)  
  18162. BEGIN  
  18163.  DELETE shortcut_data WHERE  char_id = @char_id AND subjob_id = @subjob_id AND slotnum = @slotnum  
  18164. END  
  18165. ELSE  
  18166. BEGIN  
  18167.  UPDATE shortcut_data SET shortcut_type=@TYPE , shortcut_id= @id, shortcut_macro = @macro WHERE char_id = @char_id AND subjob_id = @subjob_id AND slotnum = @slotnum  
  18168.  IF (@@ROWCOUNT = 0)  
  18169.  BEGIN  
  18170.   INSERT INTO shortcut_data (char_id, slotnum, shortcut_type, shortcut_id, shortcut_macro, subjob_id) VALUES (@char_id, @slotnum, @TYPE, @id, @macro, @subjob_id)  
  18171.  END  
  18172. END
  18173. GO
  18174.  
  18175. /****** Object:  Stored Procedure dbo.lin_SetSiegeTime    Script Date: 2003-09-20 ?? 11:52:00 ******/
  18176. /********************************************
  18177. lin_SetSiegeTime
  18178.    
  18179. INPUT  
  18180.     @next_war_time  int,
  18181.     @castle_id  int,
  18182. OUTPUT
  18183. return
  18184. made by
  18185.     carrot
  18186. date
  18187.     2002-06-16
  18188. ********************************************/
  18189. ALTER PROCEDURE [DBO].[lin_SetSiegeTime]
  18190. (
  18191.     @next_war_time  INT,
  18192.     @castle_id  INT
  18193. )
  18194. AS
  18195. SET NOCOUNT ON
  18196.  
  18197. UPDATE
  18198.     castle
  18199. SET
  18200.     next_war_time = @next_war_time
  18201. WHERE
  18202.     id = @castle_id
  18203. GO
  18204.  
  18205. ALTER PROCEDURE dbo.lin_SetSkillCoolTime
  18206. (
  18207.     @char_id    INT,
  18208.     @subjob_id  INT,
  18209.     @skill_id       INT,
  18210.     @nToEndTime INT
  18211. )
  18212. AS
  18213. SET NOCOUNT ON
  18214.  
  18215. UPDATE user_skill SET to_end_time = @nToEndTime WHERE char_id = @char_id AND skill_id = @skill_id AND ISNULL(subjob_id, 0) = @subjob_id
  18216. GO
  18217.  
  18218. /********************************************
  18219. lin_SetSubJobAcquireSkill
  18220.    
  18221. INPUT
  18222.     @char_id    int,
  18223.     @subjob_id  int,
  18224.     @skill_id   int,
  18225.     @skill_level    int
  18226.  
  18227. OUTPUT
  18228. return
  18229. made by
  18230.     kks
  18231. date
  18232.     2005-01-19
  18233. ********************************************/
  18234. ALTER PROCEDURE [DBO].[lin_SetSubJobAcquireSkill]
  18235. (
  18236.     @char_id    INT,
  18237.     @subjob_id  INT,
  18238.     @skill_id   INT,
  18239.     @skill_level    INT
  18240. )
  18241. AS
  18242. SET NOCOUNT ON
  18243.  
  18244. DECLARE @cnt INT
  18245. SET @cnt = 0
  18246.  
  18247. IF EXISTS(SELECT * FROM user_skill(nolock) WHERE char_id = @char_id AND subjob_id = @subjob_id AND skill_id = @skill_id)    
  18248. BEGIN    
  18249.     UPDATE user_skill SET skill_lev = @skill_level WHERE char_id = @char_id AND subjob_id = @subjob_id AND skill_id = @skill_id
  18250. END    
  18251. ELSE
  18252. BEGIN    
  18253.     INSERT INTO user_skill VALUES (@char_id, @skill_id, @skill_level, 0, @subjob_id)
  18254. END
  18255. GO
  18256.  
  18257. ALTER PROCEDURE dbo.lin_SetTeamBattleNpcType
  18258. (
  18259.     @agit_id INT,
  18260.     @pledge_id INT,
  18261.     @npc_type INT
  18262. )
  18263. AS
  18264. SET NOCOUNT ON
  18265. UPDATE team_battle_agit_pledge
  18266. SET npc_type = @npc_type
  18267. WHERE agit_id = @agit_id AND pledge_id = @pledge_id
  18268. GO
  18269.  
  18270. ALTER PROCEDURE dbo.lin_SetTeamBattleStatus
  18271. (
  18272. @agit_id INT,
  18273. @new_team_battle_status INT
  18274. )
  18275. AS
  18276. SET NOCOUNT ON
  18277. UPDATE agit SET team_battle_status = @new_team_battle_status WHERE id = @agit_id
  18278. GO
  18279.  
  18280. ALTER PROCEDURE dbo.lin_SetTeamBattleWinner
  18281. (
  18282. @agit_id INT,
  18283. @winner_pledge_id INT,
  18284. @master_pledge_id INT,
  18285. @is_final INT
  18286. )
  18287. AS
  18288. SET NOCOUNT ON
  18289. IF @is_final <> 0   -- battle royal
  18290. BEGIN
  18291.     DELETE FROM team_battle_agit_pledge WHERE agit_id = @agit_id AND pledge_id <> @winner_pledge_id AND pledge_id <> @master_pledge_id
  18292.     DELETE FROM team_battle_agit_member WHERE agit_id = @agit_id AND pledge_id <> @winner_pledge_id AND pledge_id <> @master_pledge_id
  18293. END
  18294. ELSE    -- final winner
  18295. BEGIN
  18296.     DELETE FROM team_battle_agit_pledge WHERE agit_id = @agit_id AND pledge_id <> @winner_pledge_id
  18297.     DELETE FROM team_battle_agit_member WHERE agit_id = @agit_id
  18298. END
  18299. GO
  18300.  
  18301. /********************************************
  18302. lin_SetUserBan
  18303.  
  18304. INPUT
  18305.     @char_id    INT
  18306.     @ban_hour   smallint
  18307. OUTPUT
  18308. return
  18309. made by
  18310.     young
  18311. date
  18312.     2003-09-22
  18313. ********************************************/
  18314. ALTER PROCEDURE [DBO].[lin_SetUserBan]
  18315. (
  18316.     @char_id    INT,
  18317.     @STATUS     INT,
  18318.     @ban_hour   SMALLINT,
  18319.     @ban_end    INT
  18320. )
  18321. AS
  18322. SET NOCOUNT ON
  18323.  
  18324. IF @ban_hour = 0
  18325. BEGIN
  18326.     DELETE FROM user_ban WHERE char_id = @char_id
  18327. END ELSE BEGIN
  18328.  
  18329.     IF ( EXISTS ( SELECT * FROM user_ban (nolock) WHERE char_id = @char_id ) )
  18330.     BEGIN
  18331.         -- update
  18332.         UPDATE user_ban SET STATUS = @STATUS, ban_date = getdate(), ban_hour = @ban_hour, ban_end = @ban_end WHERE char_id = @char_id
  18333.     END ELSE BEGIN
  18334.         -- insert
  18335.         INSERT INTO user_ban ( char_id, STATUS, ban_hour , ban_end ) VALUES ( @char_id, @STATUS, @ban_hour, @ban_end  )
  18336.     END
  18337. END
  18338. GO
  18339.  
  18340. /****** Object:  Stored Procedure dbo.lin_SetUserDataEx    Script Date: 2003-09-20 ?? 11:52:00 ******/
  18341. /********************************************
  18342. lin_SetUserDataEx
  18343.    
  18344. INPUT  
  18345.     @char_id    int,
  18346.     @dismiss_penalty_reserved   int
  18347. OUTPUT
  18348. return
  18349. made by
  18350.     carrot
  18351. date
  18352.     2002-06-16
  18353. ********************************************/
  18354. ALTER PROCEDURE [DBO].[lin_SetUserDataEx]
  18355. (
  18356.     @char_id    INT,
  18357.     @dismiss_penalty_reserved   INT
  18358. )
  18359. AS
  18360. SET NOCOUNT ON
  18361.  
  18362. INSERT INTO user_data_ex (char_id, dismiss_penalty_reserved) VALUES (@char_id, @dismiss_penalty_reserved)
  18363. GO
  18364.  
  18365. /****** Object:  Stored Procedure dbo.lin_SetUserNickname    Script Date: 2003-09-20 ?? 11:51:57 ******/
  18366. ALTER PROCEDURE
  18367. dbo.lin_SetUserNickname (@user_id INT, @nickname NVARCHAR(50))
  18368. AS
  18369.  
  18370. SET NOCOUNT ON
  18371.  
  18372. DECLARE @ret INT
  18373.  
  18374. UPDATE user_data
  18375. SET nickname = @nickname
  18376. WHERE char_id = @user_id
  18377.  
  18378. IF @@ERROR = 0 AND @@ROWCOUNT = 1
  18379. BEGIN
  18380.     SELECT @ret = @user_id
  18381. END
  18382. ELSE
  18383. BEGIN
  18384.     SELECT @ret = 0
  18385. END
  18386.  
  18387. SELECT @ret
  18388. GO
  18389.  
  18390. /**  
  18391.   * @procedure lin_SetUserSSQDawnRound  
  18392.   * @brief SSQ ?? ?? ??  
  18393.   *  
  18394.   * @date 2004/12/17  
  18395.   * @author Seongeun Park  <[email protected]>  
  18396.   */  
  18397. ALTER PROCEDURE dbo.lin_SetUserSSQDawnRound  
  18398. (  
  18399.  @char_id  INT,  
  18400.  @ssq_dawn_round INT  
  18401. )  
  18402. AS  
  18403. SET NOCOUNT ON  
  18404.  
  18405. UPDATE user_data SET ssq_dawn_round = @ssq_dawn_round WHERE char_id = @char_id
  18406. GO
  18407.  
  18408. -- lin_StartAllianceWar
  18409. -- by bert
  18410.  
  18411. ALTER PROCEDURE
  18412. dbo.lin_StartAllianceWar (@challenger_alliance_id INT, @challengee_alliance_id INT, @war_begin_time INT)
  18413. AS
  18414.  
  18415. SET NOCOUNT ON
  18416.  
  18417. DECLARE @ret INT
  18418.  
  18419. DECLARE @challenger_name VARCHAR(50)
  18420. DECLARE @challengee_name VARCHAR(50)
  18421.  
  18422. SELECT @challenger_name = name FROM alliance WHERE id = @challenger_alliance_id
  18423. SELECT @challengee_name = name FROM alliance WHERE id = @challengee_alliance_id
  18424.  
  18425. INSERT INTO Alliance_War
  18426. (challenger, challengee, begin_time, challenger_name, challengee_name)
  18427. VALUES
  18428. (@challenger_alliance_id, @challengee_alliance_id, @war_begin_time, @challenger_name, @challengee_name)
  18429.  
  18430. SELECT @@IDENTITY
  18431. GO
  18432.  
  18433. ALTER PROCEDURE dbo.lin_StartOlympiadSeason
  18434. (
  18435. @season INT,
  18436. @step INT,
  18437. @season_start_time INT
  18438. )
  18439. AS
  18440. SET NOCOUNT ON
  18441.  
  18442. UPDATE olympiad
  18443. SET step = @step, season_start_time = @season_start_time
  18444. WHERE season = @season
  18445.  
  18446. SELECT @@ROWCOUNT
  18447. GO
  18448.  
  18449. /****** Object:  Stored Procedure dbo.lin_StartPledgeWar    Script Date: 2003-09-20 ?? 11:52:00 ******/
  18450. -- lin_StartPledgeWar
  18451. -- by bert
  18452.  
  18453. ALTER PROCEDURE
  18454. dbo.lin_StartPledgeWar (@challenger_pledge_id INT, @challengee_pledge_id INT, @war_begin_time INT)
  18455. AS
  18456.  
  18457. SET NOCOUNT ON
  18458.  
  18459. DECLARE @ret INT
  18460.  
  18461. DECLARE @challenger_name VARCHAR(50)
  18462. DECLARE @challengee_name VARCHAR(50)
  18463.  
  18464. SELECT @challenger_name = name FROM Pledge WHERE pledge_id = @challenger_pledge_id
  18465. SELECT @challengee_name = name FROM Pledge WHERE pledge_id = @challengee_pledge_id
  18466.  
  18467. INSERT INTO Pledge_War
  18468. (challenger, challengee, begin_time, challenger_name, challengee_name)
  18469. VALUES
  18470. (@challenger_pledge_id, @challengee_pledge_id, @war_begin_time, @challenger_name, @challengee_name)
  18471.  
  18472. SELECT @@IDENTITY
  18473. GO
  18474.  
  18475. ALTER PROCEDURE
  18476. dbo.lin_StopAllianceWar (@proposer_alliance_id INT, @proposee_alliance_id INT, @war_id INT,  @war_end_time INT)
  18477. AS
  18478.  
  18479. SET NOCOUNT ON
  18480.  
  18481. DECLARE @ret INT
  18482.  
  18483. UPDATE Alliance_War
  18484. SET STATUS = 1, -- WAR_END_STOP
  18485. winner = 0,
  18486. end_time = @war_end_time
  18487. WHERE
  18488. id = @war_id
  18489.  
  18490. IF @@ERROR = 0 AND @@ROWCOUNT = 1
  18491. BEGIN
  18492.     SELECT @ret = @war_id
  18493. END
  18494. ELSE
  18495. BEGIN
  18496.     SELECT @ret = 0
  18497. END
  18498.  
  18499. SELECT @ret
  18500. GO
  18501.  
  18502. /****** Object:  Stored Procedure dbo.lin_StopPledgeWar    Script Date: 2003-09-20 ?? 11:52:00 ******/
  18503. -- lin_StopPledgeWar
  18504. -- by bert
  18505.  
  18506. ALTER PROCEDURE
  18507. dbo.lin_StopPledgeWar (@proposer_pledge_id INT, @proposee_pledge_id INT, @war_id INT,  @war_end_time INT)
  18508. AS
  18509.  
  18510. SET NOCOUNT ON
  18511.  
  18512. DECLARE @ret INT
  18513.  
  18514. BEGIN TRAN
  18515.  
  18516. UPDATE Pledge_War
  18517. SET STATUS = 1, -- WAR_END_STOP
  18518. winner = 0,
  18519. end_time = @war_end_time
  18520. WHERE
  18521. id = @war_id
  18522.  
  18523. IF @@ERROR = 0 AND @@ROWCOUNT = 1
  18524. BEGIN
  18525.     SELECT @ret = @war_id
  18526. END
  18527. ELSE
  18528. BEGIN
  18529.     SELECT @ret = 0
  18530. END
  18531.  
  18532. EXIT_TRAN:
  18533. IF @ret<> 0
  18534. BEGIN
  18535.     COMMIT TRAN
  18536. END
  18537. ELSE
  18538. BEGIN
  18539.     ROLLBACK TRAN
  18540. END
  18541. SELECT @ret
  18542. GO
  18543.  
  18544. -- lin_SurrenderAllianceWar
  18545. -- by bert
  18546.  
  18547. ALTER PROCEDURE
  18548. dbo.lin_SurrenderAllianceWar (@proposer_alliance_id INT, @proposee_alliance_id INT, @war_id INT, @war_end_time INT)
  18549. AS
  18550.  
  18551. SET NOCOUNT ON
  18552.  
  18553. DECLARE @ret INT
  18554.  
  18555. UPDATE alliance_war
  18556. SET STATUS = 2, -- WAR_END_SURRENDER
  18557. winner = @proposee_alliance_id,
  18558. winner_name = (SELECT name FROM alliance WHERE id = @proposee_alliance_id),
  18559. end_time = @war_end_time
  18560. WHERE
  18561. id = @war_id
  18562.  
  18563. IF @@ERROR = 0 AND @@ROWCOUNT = 1
  18564. BEGIN
  18565.     SELECT @ret = @war_id
  18566. END
  18567. ELSE
  18568. BEGIN
  18569.     SELECT @ret = 0
  18570. END
  18571.  
  18572. SELECT @ret
  18573. GO
  18574.  
  18575. ALTER PROCEDURE dbo.lin_SurrenderPersonally(@char_id INT, @war_id INT)  
  18576. AS  
  18577.  
  18578. SET NOCOUNT ON  
  18579.  
  18580. INSERT INTO user_surrender  
  18581. (char_id, surrender_war_id)  
  18582. VALUES  
  18583. (@char_id, @war_id)  
  18584.  
  18585. SELECT @@ROWCOUNT
  18586. GO
  18587.  
  18588. /****** Object:  Stored Procedure dbo.lin_SurrenderPledgeWar    Script Date: 2003-09-20 ?? 11:52:00 ******/
  18589. -- lin_SurrenderPledgeWar
  18590. -- by bert
  18591.  
  18592. ALTER PROCEDURE
  18593. dbo.lin_SurrenderPledgeWar (@proposer_pledge_id INT, @proposee_pledge_id INT, @war_id INT, @war_end_time INT)
  18594. AS
  18595.  
  18596. SET NOCOUNT ON
  18597.  
  18598. DECLARE @ret INT
  18599.  
  18600. BEGIN TRAN
  18601.  
  18602. UPDATE Pledge_War
  18603. SET STATUS = 2, -- WAR_END_SURRENDER
  18604. winner = @proposee_pledge_id,
  18605. winner_name = (SELECT name FROM Pledge WHERE pledge_id = @proposee_pledge_id),
  18606. end_time = @war_end_time
  18607. WHERE
  18608. id = @war_id
  18609.  
  18610. IF @@ERROR = 0 AND @@ROWCOUNT = 1
  18611. BEGIN
  18612.     SELECT @ret = @war_id
  18613. END
  18614. ELSE
  18615. BEGIN
  18616.     SELECT @ret = 0
  18617. END
  18618.  
  18619. IF @ret<> 0
  18620. BEGIN
  18621.     COMMIT TRAN
  18622. END
  18623. ELSE
  18624. BEGIN
  18625.     ROLLBACK TRAN
  18626. END
  18627. SELECT @ret
  18628. GO
  18629.  
  18630. /********************************************
  18631. lin_SwitchPledgeAnnounceShowFlag
  18632.     set pledge announce show flag
  18633. INPUT
  18634.     @pledge_id      int,
  18635.     @show_flag      smallint
  18636. OUTPUT
  18637. return
  18638. made by
  18639.     kks
  18640. date
  18641.     2005-07-22
  18642. ********************************************/
  18643. ALTER PROCEDURE dbo.lin_SwitchPledgeAnnounceShowFlag
  18644. (  
  18645.     @pledge_id      INT,
  18646.     @show_flag      SMALLINT
  18647. )  
  18648. AS  
  18649. SET NOCOUNT ON  
  18650.  
  18651.  
  18652. UPDATE pledge_announce SET show_flag = @show_flag
  18653. WHERE pledge_id = @pledge_id
  18654. GO
  18655.  
  18656. /****** Object:  Stored Procedure dbo.lin_TrasferWarehouseNewAll    Script Date: 2003-09-20 ?? 11:52:00 ******/
  18657. /********************************************
  18658. lin_TrasferWarehouseNewPartial
  18659.     movet inventory to warehouse || move warehouse to inventory total item
  18660. INPUT
  18661.     @char_id        INT,
  18662.     @item_id            INT,
  18663.     @ToWarehouseID  INT,
  18664.     @bIsToInven     TINYINT
  18665. OUTPUT
  18666.    
  18667. return
  18668. made by
  18669.     carrot
  18670. date
  18671.     2002-10-17
  18672. ********************************************/
  18673. ALTER PROCEDURE [DBO].[lin_TrasferWarehouseNewAll]
  18674. (
  18675.     @char_id        INT,
  18676.     @item_id            INT,
  18677.     @ToWarehouseID  INT,
  18678.     @bIsToInven     TINYINT
  18679. )
  18680. AS
  18681. SET NOCOUNT ON
  18682.  
  18683. IF (@bIsToInven > 0)
  18684. BEGIN
  18685.     SET IDENTITY_INSERT user_item ON
  18686.  
  18687.     IF (SELECT COUNT(*) FROM user_warehouse WHERE item_id = @item_id) = 1
  18688.     BEGIN
  18689.         INSERT INTO user_item (item_id, char_id, item_type, amount, enchant, eroded, bless, ident, wished, warehouse)
  18690.             SELECT item_id, char_id, item_type, amount, enchant, eroded, bless, ident, wished, warehouse FROM user_warehouse WHERE item_id = @item_id
  18691.         IF @@ROWCOUNT = 0
  18692.         BEGIN
  18693.             SELECT 0
  18694.         END
  18695.         ELSE
  18696.         BEGIN
  18697.             DELETE user_warehouse WHERE item_id = @item_id
  18698.             SELECT 1
  18699.         END
  18700.     END
  18701.     ELSE
  18702.     BEGIN
  18703.         SELECT 0
  18704.     END
  18705.  
  18706.     SET IDENTITY_INSERT user_item OFF
  18707. END
  18708. ELSE
  18709. BEGIN
  18710.     IF (SELECT COUNT(*) FROM user_item WHERE item_id = @item_id) = 1
  18711.     BEGIN
  18712.         INSERT INTO user_warehouse (item_id, char_id, item_type, amount, enchant, eroded, bless, ident, wished, warehouse)
  18713.             SELECT item_id, char_id, item_type, amount, enchant, eroded, bless, ident, wished, warehouse FROM user_item WHERE item_id = @item_id
  18714.         IF @@ROWCOUNT = 0
  18715.         BEGIN
  18716.             SELECT 0
  18717.         END
  18718.         ELSE
  18719.         BEGIN
  18720.             DELETE user_item WHERE item_id = @item_id
  18721.             SELECT 1
  18722.         END
  18723.     END
  18724.     ELSE
  18725.     BEGIN
  18726.         SELECT 0
  18727.     END
  18728. END
  18729. GO
  18730.  
  18731. /****** Object:  Stored Procedure dbo.lin_TrasferWarehouseNewPartial    Script Date: 2003-09-20 ?? 11:52:00 ******/
  18732. /********************************************
  18733. lin_TrasferWarehouseNewPartial
  18734.     move inventory to warehouse || move warehouse to inventory total partial item
  18735. INPUT
  18736.     @char_id        INT,
  18737.     @item_id            INT,
  18738.     @ToWarehouseID  INT,
  18739.     @bIsToInven     TINYINT
  18740.     @nCount         INT
  18741. OUTPUT
  18742.     bIsSuccess      1/0
  18743. return
  18744. made by
  18745.     carrot
  18746. date
  18747.     2002-10-17
  18748. ********************************************/
  18749. ALTER PROCEDURE [DBO].[lin_TrasferWarehouseNewPartial]
  18750. (
  18751.     @char_id        INT,
  18752.     @item_id            INT,
  18753.     @ToWarehouseID  INT,
  18754.     @bIsToInven     TINYINT,
  18755.     @nCount         INT
  18756. )
  18757. AS
  18758. SET NOCOUNT ON
  18759.  
  18760. IF (@bIsToInven > 0)
  18761. BEGIN
  18762.     IF (SELECT amount FROM user_warehouse WHERE item_id = @item_id) > @nCount
  18763.     BEGIN
  18764.         INSERT INTO user_item (char_id, item_type, amount, enchant, eroded, bless, ident, wished, warehouse)
  18765.             SELECT char_id, item_type, @nCount, enchant, eroded, bless, ident, wished, warehouse FROM user_warehouse WHERE item_id = @item_id
  18766.         IF @@ROWCOUNT = 0
  18767.         BEGIN
  18768.             SELECT 0
  18769.         END
  18770.         ELSE
  18771.         BEGIN
  18772.             SELECT item_id FROM user_item WHERE item_id = @@IDENTITY
  18773.             UPDATE user_warehouse SET amount = amount - @nCount WHERE item_id = @item_id
  18774.         END
  18775.     END
  18776.     ELSE
  18777.     BEGIN
  18778.         SELECT 0
  18779.     END
  18780. END
  18781. ELSE
  18782. BEGIN
  18783.     IF (SELECT amount FROM user_item WHERE item_id = @item_id) > @nCount
  18784.     BEGIN
  18785.         INSERT INTO user_item (char_id, item_type, amount, enchant, eroded, bless, ident, wished, warehouse)
  18786.             SELECT char_id, item_type, @nCount, enchant, eroded, bless, ident, wished, warehouse FROM user_item WHERE item_id = @item_id
  18787.         INSERT INTO user_warehouse (item_id, char_id, item_type, amount, enchant, eroded, bless, ident, wished, warehouse)
  18788.             SELECT item_id, char_id, item_type, @nCount, enchant, eroded, bless, ident, wished, warehouse FROM user_item WHERE item_id = @@IDENTITY
  18789.         IF @@ROWCOUNT = 0
  18790.         BEGIN
  18791.             SELECT 0
  18792.         END
  18793.         ELSE
  18794.         BEGIN
  18795.             SELECT item_id FROM user_warehouse WHERE item_id = @@IDENTITY
  18796.             DELETE user_item WHERE item_id = @@IDENTITY
  18797.             UPDATE user_item SET amount = amount - @nCount WHERE item_id = @item_id
  18798.         END
  18799.     END
  18800.     ELSE
  18801.     BEGIN
  18802.         SELECT 0
  18803.     END
  18804. END
  18805. GO
  18806.  
  18807. /****** Object:  Stored Procedure dbo.lin_UninstallAllBattleCamp    Script Date: 2003-09-20 ?? 11:52:00 ******/
  18808. -- lin_UninstallAllBattleCamp
  18809. -- by bert
  18810. -- return deleted battle camp ids
  18811.  
  18812. ALTER PROCEDURE dbo.lin_UninstallAllBattleCamp (@castle_id INT, @TYPE INT)
  18813. AS
  18814.  
  18815. SET NOCOUNT ON
  18816.  
  18817. SELECT id FROM object_data WHERE residence_id = @castle_id AND TYPE = @TYPE
  18818.  
  18819. DELETE FROM object_data WHERE residence_id = @castle_id AND TYPE = @TYPE
  18820. GO
  18821.  
  18822. /****** Object:  Stored Procedure dbo.lin_UninstallBattleCamp    Script Date: 2003-09-20 ?? 11:52:00 ******/
  18823. -- lin_UninstalllBattleCamp
  18824. -- by bert
  18825. -- return deleted battle camp id
  18826.  
  18827. ALTER PROCEDURE dbo.lin_UninstallBattleCamp (@pledge_id INT, @TYPE INT)
  18828. AS
  18829.  
  18830. SET NOCOUNT ON
  18831.  
  18832. SELECT id FROM object_data WHERE owner_id = @pledge_id AND TYPE = @TYPE
  18833.  
  18834. DELETE FROM object_data WHERE owner_id = @pledge_id AND TYPE = @TYPE
  18835. GO
  18836.  
  18837. ALTER PROCEDURE dbo.lin_UnregisterSiegeAgitPledge
  18838. (
  18839.     @agit_id INT,
  18840.     @pledge_id INT
  18841. )
  18842. AS
  18843. SET NOCOUNT ON
  18844.  
  18845. DECLARE @ret INT
  18846.  
  18847. DELETE FROM siege_agit_pledge
  18848. WHERE
  18849. agit_id = @agit_id AND pledge_id = @pledge_id
  18850.  
  18851. IF @@ERROR = 0
  18852. BEGIN
  18853.     SELECT @ret = 1
  18854. END
  18855. ELSE
  18856. BEGIN
  18857.     SELECT @ret = 0
  18858. END
  18859.  
  18860. SELECT @ret
  18861. GO
  18862.  
  18863. ALTER PROCEDURE dbo.lin_UnregisterTeamBattleAgitMember
  18864. (
  18865.     @agit_id INT,
  18866.     @char_id INT,
  18867.     @pledge_id INT
  18868. )
  18869. AS
  18870. SET NOCOUNT ON
  18871.  
  18872. DECLARE @ret INT
  18873.  
  18874. DELETE FROM team_battle_agit_member
  18875. WHERE
  18876. agit_id = @agit_id AND char_id = @char_id AND pledge_id = @pledge_id
  18877.  
  18878. IF @@ERROR = 0
  18879. BEGIN
  18880.     SELECT @ret = 1
  18881. END
  18882. ELSE
  18883. BEGIN
  18884.     SELECT @ret = 0
  18885. END
  18886.  
  18887. SELECT @ret
  18888. GO
  18889.  
  18890. ALTER PROCEDURE dbo.lin_UnregisterTeamBattleAgitPledge
  18891. (
  18892.     @agit_id INT,
  18893.     @pledge_id INT
  18894. )
  18895. AS
  18896. SET NOCOUNT ON
  18897.  
  18898. DECLARE @ret INT
  18899.  
  18900. BEGIN TRAN
  18901.  
  18902. DELETE FROM team_battle_agit_pledge
  18903. WHERE
  18904. agit_id = @agit_id AND pledge_id = @pledge_id
  18905.  
  18906. IF @@ERROR <> 0
  18907. BEGIN
  18908.     SELECT @ret = 0
  18909.     GOTO EXIT_TRAN
  18910. END
  18911.  
  18912. DELETE FROM  team_battle_agit_member
  18913. WHERE agit_id = @agit_id AND pledge_id = @pledge_id
  18914.  
  18915. IF @@ERROR = 0
  18916. BEGIN
  18917.     SELECT @ret = 1
  18918. END
  18919. ELSE
  18920. BEGIN
  18921.     SELECT @ret = 0
  18922. END
  18923.  
  18924. EXIT_TRAN:
  18925.  
  18926. IF @ret <> 0
  18927. BEGIN
  18928.     COMMIT TRAN
  18929. END
  18930. ELSE
  18931. BEGIN
  18932.     ROLLBACK TRAN
  18933. END
  18934.  
  18935. SELECT @ret
  18936. GO
  18937.  
  18938. /****** Object:  Stored Procedure dbo.lin_UpdateActiveSkill    Script Date: 2003-09-20 ?? 11:52:00 ******/    
  18939. ALTER PROCEDURE [DBO].[lin_UpdateActiveSkill]    
  18940. (    
  18941.  @char_id INT,    
  18942.  @s1 INT, @l1 TINYINT, @d1 INT, @c1 TINYINT,    
  18943.  @s2 INT, @l2 TINYINT, @d2 INT, @c2 TINYINT,    
  18944.  @s3 INT, @l3 TINYINT, @d3 INT, @c3 TINYINT,    
  18945.  @s4 INT, @l4 TINYINT, @d4 INT, @c4 TINYINT,    
  18946.  @s5 INT, @l5 TINYINT, @d5 INT, @c5 TINYINT,    
  18947.  @s6 INT, @l6 TINYINT, @d6 INT, @c6 TINYINT,    
  18948.  @s7 INT, @l7 TINYINT, @d7 INT, @c7 TINYINT,    
  18949.  @s8 INT, @l8 TINYINT, @d8 INT, @c8 TINYINT,    
  18950.  @s9 INT, @l9 TINYINT, @d9 INT, @c9 TINYINT,    
  18951.  @s10 INT, @l10 TINYINT, @d10 INT, @c10 TINYINT,    
  18952.  @s11 INT, @l11 TINYINT, @d11 INT, @c11 TINYINT,    
  18953.  @s12 INT, @l12 TINYINT, @d12 INT, @c12 TINYINT,    
  18954.  @s13 INT, @l13 TINYINT, @d13 INT, @c13 TINYINT,    
  18955.  @s14 INT, @l14 TINYINT, @d14 INT, @c14 TINYINT,    
  18956.  @s15 INT, @l15 TINYINT, @d15 INT, @c15 TINYINT,    
  18957.  @s16 INT, @l16 TINYINT, @d16 INT, @c16 TINYINT,    
  18958.  @s17 INT, @l17 TINYINT, @d17 INT, @c17 TINYINT,    
  18959.  @s18 INT, @l18 TINYINT, @d18 INT, @c18 TINYINT,    
  18960.  @s19 INT, @l19 TINYINT, @d19 INT, @c19 TINYINT,    
  18961.  @s20 INT, @l20 TINYINT, @d20 INT, @c20 TINYINT    
  18962. )    
  18963. AS    
  18964. SET NOCOUNT ON    
  18965.  
  18966. IF EXISTS(SELECT * FROM user_activeskill WHERE char_id = @char_id)  
  18967. BEGIN  
  18968.  UPDATE user_activeskill    
  18969.  SET    
  18970.  s1 = @s1, l1 = @l1, d1 = @d1, c1 = @c1,    
  18971.  s2 = @s2, l2 = @l2, d2 = @d2, c2 = @c2,    
  18972.  s3 = @s3, l3 = @l3, d3 = @d3, c3 = @c3,    
  18973.  s4 = @s4, l4 = @l4, d4 = @d4, c4 = @c4,    
  18974.  s5 = @s5, l5 = @l5, d5 = @d5, c5 = @c5,    
  18975.  s6 = @s6, l6 = @l6, d6 = @d6, c6 = @c6,    
  18976.  s7 = @s7, l7 = @l7, d7 = @d7, c7 = @c7,    
  18977.  s8 = @s8, l8 = @l8, d8 = @d8, c8 = @c8,    
  18978.  s9 = @s9, l9 = @l9, d9 = @d9, c9 = @c9,    
  18979.  s10 = @s10, l10 = @l10, d10 = @d10, c10 = @c10,    
  18980.  s11 = @s11, l11 = @l11, d11 = @d11, c11 = @c11,    
  18981.  s12 = @s12, l12 = @l12, d12 = @d12, c12 = @c12,    
  18982.  s13 = @s13, l13 = @l13, d13 = @d13, c13 = @c13,    
  18983.  s14 = @s14, l14 = @l14, d14 = @d14, c14 = @c14,    
  18984.  s15 = @s15, l15 = @l15, d15 = @d15, c15 = @c15,    
  18985.  s16 = @s16, l16 = @l16, d16 = @d16, c16 = @c16,    
  18986.  s17 = @s17, l17 = @l17, d17 = @d17, c17 = @c17,    
  18987.  s18 = @s18, l18 = @l18, d18 = @d18, c18 = @c18,    
  18988.  s19 = @s19, l19 = @l19, d19 = @d19, c19 = @c19,    
  18989.  s20 = @s20, l20 = @l20, d20 = @d20, c20 = @c20    
  18990.  WHERE char_id = @char_id    
  18991. END  
  18992. ELSE  
  18993. BEGIN  
  18994.  INSERT INTO user_activeskill    
  18995.  (char_id,    
  18996.  s1, l1, d1, c1,    
  18997.  s2, l2, d2, c2,    
  18998.  s3, l3, d3, c3,    
  18999.  s4, l4, d4, c4,    
  19000.  s5, l5, d5, c5,    
  19001.  s6, l6, d6, c6,    
  19002.  s7, l7, d7, c7,    
  19003.  s8, l8, d8, c8,    
  19004.  s9, l9, d9, c9,    
  19005.  s10, l10, d10, c10,    
  19006.  s11, l11, d11, c11,    
  19007.  s12, l12, d12, c12,    
  19008.  s13, l13, d13, c13,    
  19009.  s14, l14, d14, c14,    
  19010.  s15, l15, d15, c15,    
  19011.  s16, l16, d16, c16,    
  19012.  s17, l17, d17, c17,    
  19013.  s18, l18, d18, c18,    
  19014.  s19, l19, d19, c19,    
  19015.  s20, l20, d20, c20)    
  19016.  VALUES    
  19017.  (@char_id,    
  19018.  @s1, @l1, @d1, @c1,    
  19019.  @s2, @l2, @d2, @c2,    
  19020.  @s3, @l3, @d3, @c3,    
  19021.  @s4, @l4, @d4, @c4,    
  19022.  @s5, @l5, @d5, @c5,    
  19023.  @s6, @l6, @d6, @c6,    
  19024.  @s7, @l7, @d7, @c7,    
  19025.  @s8, @l8, @d8, @c8,    
  19026.  @s9, @l9, @d9, @c9,    
  19027.  @s10, @l10, @d10, @c10,    
  19028.  @s11, @l11, @d11, @c11,    
  19029.  @s12, @l12, @d12, @c12,    
  19030.  @s13, @l13, @d13, @c13,    
  19031.  @s14, @l14, @d14, @c14,    
  19032.  @s15, @l15, @d15, @c15,    
  19033.  @s16, @l16, @d16, @c16,    
  19034.  @s17, @l17, @d17, @c17,    
  19035.  @s18, @l18, @d18, @c18,    
  19036.  @s19, @l19, @d19, @c19,    
  19037.  @s20, @l20, @d20, @c20)    
  19038. END
  19039. GO
  19040.  
  19041. /****** Object:  Stored Procedure dbo.lin_UpdateCastle    Script Date: 2003-09-20 ?? 11:51:57 ******/
  19042. ALTER PROCEDURE
  19043. dbo.lin_UpdateCastle (@id INT, @pledge_id INT, @next_war_time INT, @tax_rate SMALLINT)
  19044. AS
  19045. UPDATE castle
  19046. SET pledge_id = @pledge_id, next_war_time = @next_war_time, tax_rate = @tax_rate
  19047. WHERE id = @id
  19048. GO
  19049.  
  19050. /****** Object:  Stored Procedure dbo.lin_UpdateCastleWar    Script Date: 2003-09-20 ?? 11:52:00 ******/
  19051. -- lin_UpdateCastleWar
  19052. -- by bert ( -_-)/
  19053.  
  19054. ALTER PROCEDURE
  19055. dbo.lin_UpdateCastleWar (@castle_id INT, @pledge_id INT, @STATUS INT)
  19056. AS
  19057. SET NOCOUNT ON
  19058.  
  19059. UPDATE castle_war
  19060. SET TYPE = @STATUS
  19061. WHERE castle_id = @castle_id AND pledge_id = @pledge_id
  19062.  
  19063. SELECT @@ROWCOUNT
  19064. GO
  19065.  
  19066. ALTER PROCEDURE [dbo].lin_UpdateControlTower
  19067. (
  19068. @control_level INT,
  19069. @hp INT,
  19070. @STATUS INT,
  19071. @name VARCHAR(256)
  19072. )
  19073. AS
  19074. UPDATE control_tower
  19075. SET
  19076. control_level = @control_level,
  19077. hp = @hp,
  19078. STATUS = @STATUS
  19079. WHERE name = @name
  19080. IF @@ROWCOUNT <> 1
  19081. BEGIN
  19082. RAISERROR ('Failed to Update Control Tower name = %s.', 16, 1, @name)
  19083. END
  19084. GO
  19085.  
  19086. --  kuooo
  19087. ALTER PROCEDURE
  19088. dbo.lin_UpdateJournal ( @id INT,  
  19089. @j1 INT, @j2 INT, @j3 INT, @j4 INT, @j5 INT, @j6 INT, @j7 INT, @j8 INT,
  19090. @j9 INT, @j10 INT, @j11 INT, @j12 INT, @j13 INT, @j14 INT, @j15 INT, @j16 INT)
  19091. AS
  19092. UPDATE Quest
  19093. SET
  19094. j1 = @j1,
  19095. j2 = @j2,
  19096. j3 = @j3,
  19097. j4 = @j4,
  19098. j5 = @j5,
  19099. j6 = @j6,
  19100. j7 = @j7,
  19101. j8 = @j8,
  19102. j9 = @j9,
  19103. j10 = @j10,
  19104. j11 = @j11,
  19105. j12 = @j12,
  19106. j13 = @j13,
  19107. j14 = @j14,
  19108. j15 = @j15,
  19109. j16 = @j16
  19110. WHERE char_id = @id
  19111. GO
  19112.  
  19113. ALTER PROCEDURE [DBO].[lin_UpdateLottoGame]
  19114. (
  19115.     @round_number INT,
  19116.     @state INT,
  19117.     @left_time INT,
  19118.     @chosen_nuimber_flag INT,
  19119.     @rule_number INT,
  19120.     @total_count INT,
  19121.     @winner1_count INT,
  19122.     @winner2_count INT,
  19123.     @winner3_count INT,
  19124.     @winner4_count INT,
  19125.     @carried_adena INT
  19126. )
  19127. AS      
  19128. SET NOCOUNT ON    
  19129.  
  19130. UPDATE lotto_game
  19131. SET     state = @state,
  19132.     left_time = @left_time,
  19133.     chosen_number_flag = @chosen_nuimber_flag ,
  19134.     rule_number = @rule_number ,
  19135.     total_count = @total_count ,
  19136.     winner1_count = @winner1_count ,
  19137.     winner2_count = @winner2_count ,
  19138.     winner3_count = @winner3_count ,
  19139.     winner4_count = @winner4_count ,
  19140.     carried_adena = @carried_adena
  19141. WHERE round_number = @round_number
  19142. GO
  19143.  
  19144. ALTER PROCEDURE [DBO].[lin_UpdateLottoGameState]
  19145. (
  19146.     @round_number INT,
  19147.     @state INT,
  19148.     @left_time INT
  19149. )
  19150. AS      
  19151. SET NOCOUNT ON    
  19152.  
  19153. UPDATE lotto_game
  19154. SET     state = @state,
  19155.     left_time = @left_time
  19156. WHERE round_number = @round_number
  19157. GO
  19158.  
  19159. /********************************************
  19160. lin_UpdateMarketPrice
  19161.     update item market price
  19162. INPUT
  19163.     @item_type INT,
  19164.     @price INT
  19165. OUTPUT
  19166. return
  19167. made by
  19168.     kks
  19169. date
  19170.     2005-04-01
  19171. ********************************************/
  19172. ALTER PROCEDURE [DBO].[lin_UpdateMarketPrice]
  19173. (
  19174. @item_type INT,
  19175. @enchant INT,
  19176. @price INT
  19177. )
  19178. AS
  19179.  
  19180. SET NOCOUNT ON
  19181.  
  19182. DECLARE @avg_price FLOAT
  19183. DECLARE @frequency INT
  19184. DECLARE @new_avg_price FLOAT
  19185.  
  19186. IF EXISTS(SELECT TOP 1 * FROM item_market_price(nolock) WHERE item_type = @item_type AND enchant = @enchant)
  19187.     BEGIN
  19188.     UPDATE item_market_price
  19189.     SET
  19190.         avg_price = ((avg_price * frequency) + @price) / (frequency + 1),
  19191.         frequency = frequency + 1
  19192.     WHERE item_type = @item_type AND
  19193.         enchant = @enchant
  19194.    END
  19195. ELSE
  19196.    BEGIN
  19197.     INSERT INTO item_market_price
  19198.         (item_type, enchant, avg_price, frequency)
  19199.     VALUES
  19200.         (@item_type, @enchant, @price, 1)
  19201.    END
  19202. GO
  19203.  
  19204. ALTER PROCEDURE [dbo].lin_UpdateMercenary
  19205. (
  19206. @id INT,
  19207. @x INT,
  19208. @y INT,
  19209. @z INT,
  19210. @angle INT,
  19211. @hp INT,
  19212. @mp INT
  19213. )
  19214. AS
  19215. UPDATE mercenary
  19216. SET
  19217. x = @x,
  19218. y = @y,
  19219. z = @z,
  19220. angle = @angle,
  19221. hp = @hp,
  19222. mp = @mp
  19223. WHERE id = @id
  19224. IF @@ROWCOUNT <> 1
  19225. BEGIN
  19226. RAISERROR ('Failed to Update Mercenary id = %d.', 16, 1, @id)
  19227. END
  19228. GO
  19229.  
  19230. /********************************************
  19231. lin_UpdateMonRace
  19232.     update monster race
  19233. INPUT
  19234.     @race_id    int
  19235.     @winrate1   float,
  19236.     @winrate2   float
  19237. OUTPUT
  19238. return
  19239. made by
  19240.     young
  19241. date
  19242.     2004-5-18
  19243. ********************************************/
  19244. ALTER PROCEDURE [DBO].[lin_UpdateMonRace]
  19245. (
  19246. @race_id        INT,
  19247. @winrate1       FLOAT,
  19248. @winrate2       FLOAT
  19249. )
  19250. AS
  19251. SET NOCOUNT ON
  19252.  
  19253. UPDATE monrace SET winrate1 = @winrate1, winrate2 = @winrate2 WHERE race_id = @race_id
  19254. GO
  19255.  
  19256. /********************************************
  19257. lin_UpdateMonRaceInfo
  19258.     update monster race info
  19259. INPUT
  19260.     @race_id    int
  19261.     @run1   float,
  19262.     @run2   float,
  19263.     @run3   float,
  19264.     @run4   float,
  19265.     @run5   float,
  19266.     @run6   float,
  19267.     @run7   float,
  19268.     @run8   float,
  19269.     @win1   int,
  19270.     @win2   int,
  19271.  
  19272. OUTPUT
  19273. return
  19274. made by
  19275.     young
  19276. date
  19277.     2004-5-18
  19278. ********************************************/
  19279. ALTER  PROCEDURE [DBO].[lin_UpdateMonRaceInfo]
  19280. (
  19281. @race_id        INT,
  19282. @run1           FLOAT,
  19283. @run2           FLOAT,
  19284. @run3           FLOAT,
  19285. @run4           FLOAT,
  19286. @run5           FLOAT,
  19287. @run6           FLOAT,
  19288. @run7           FLOAT,
  19289. @run8           FLOAT,
  19290. @win1           INT,
  19291. @win2           INT
  19292.  
  19293. )
  19294. AS
  19295. SET NOCOUNT ON
  19296.  
  19297. UPDATE monrace SET run1 = @run1, run2 = @run2, run3 = @run3, run4 = @run4, run5 = @run5, run6 = @run6, run7 = @run7, run8 = @run8, win1 = @win1, win2 = @win2 , race_end = 1 WHERE race_id = @race_id
  19298. GO
  19299.  
  19300. /********************************************
  19301. lin_UpdateMonRaceMon
  19302.     update monster race
  19303. INPUT
  19304.     @runner_id  int
  19305.     @win_rate   int
  19306. OUTPUT
  19307. return
  19308. made by
  19309.     young
  19310. date
  19311.     2004-5-19
  19312. ********************************************/
  19313. ALTER PROCEDURE [DBO].[lin_UpdateMonRaceMon]
  19314. (
  19315. @runner_id      INT,
  19316. @win_rate       INT,
  19317. @run_count      INT,
  19318. @win_count      INT
  19319. )
  19320. AS
  19321. SET NOCOUNT ON
  19322.  
  19323. IF EXISTS ( SELECT * FROM monrace_mon (nolock) WHERE runner_id = @runner_id )
  19324. BEGIN
  19325.     UPDATE monrace_mon SET initial_win = @win_rate , run_count = @run_count, win_count = @win_count WHERE runner_id = @runner_id
  19326. END ELSE BEGIN
  19327.     INSERT INTO monrace_mon( runner_id, initial_win , run_count, win_count ) VALUES ( @runner_id, @win_rate , @run_count, @win_count )
  19328. END
  19329.  
  19330. SELECT initial_win , run_count, win_count  FROM monrace_mon ( nolock) WHERE runner_id = @runner_id
  19331. GO
  19332.  
  19333. /********************************************
  19334. lin_UpdateNewbieCharData
  19335.     update newbie char
  19336. INPUT
  19337.     @account_id INT,
  19338.     @char_id    INT
  19339. OUTPUT
  19340. return
  19341. made by
  19342.     kks
  19343. date
  19344.     2004-11-25
  19345. ********************************************/
  19346. ALTER PROCEDURE [DBO].[lin_UpdateNewbieCharData]
  19347. (
  19348.     @account_id INT,
  19349.     @char_id    INT
  19350. )
  19351. AS
  19352. SET NOCOUNT ON
  19353.  
  19354. UPDATE user_newbie
  19355. SET char_id = @char_id
  19356. WHERE account_id = @account_id
  19357. GO
  19358.  
  19359. -- kuooo
  19360. ALTER PROCEDURE [DBO].[lin_UpdateNpcBossVariable]
  19361. (
  19362.     @npc_name   nvarchar(50),
  19363.     @i0     INT
  19364. )
  19365. AS
  19366. SET NOCOUNT ON
  19367. UPDATE npc_boss
  19368. SET
  19369. i0 = @i0
  19370. WHERE npc_db_name = @npc_name
  19371. GO
  19372.  
  19373. /****** Object:  Stored Procedure dbo.lin_UpdatePledgeInfo    Script Date: 2003-09-20 ?? 11:52:00 ******/
  19374. /********************************************
  19375. lin_UpdatePledgeInfo
  19376.  
  19377. INPUT
  19378.     @fieldName  nvarchar(50),
  19379.     @field_data INT,
  19380.     @char_id    INT
  19381. OUTPUT
  19382. return
  19383. made by
  19384.     carrot
  19385. date
  19386.     2003-06-13
  19387. ********************************************/
  19388. ALTER PROCEDURE [DBO].[lin_UpdatePledgeInfo]
  19389. (
  19390. @fieldName  nvarchar(50),
  19391. @field_data INT,
  19392. @char_id    INT
  19393. )
  19394. AS
  19395. SET NOCOUNT ON
  19396.  
  19397. IF @fieldName = N'pledge_dismiss_time' BEGIN UPDATE user_data SET pledge_dismiss_time = @field_data WHERE char_id =  @char_id END
  19398. ELSE IF @fieldName = N'pledge_ousted_time' BEGIN UPDATE user_data SET pledge_ousted_time = @field_data WHERE char_id =  @char_id END
  19399. ELSE IF @fieldName = N'pledge_withdraw_time' BEGIN UPDATE user_data SET pledge_withdraw_time = @field_data WHERE char_id =  @char_id END
  19400. ELSE IF @fieldName = N'surrender_war_id' BEGIN UPDATE user_data SET surrender_war_id = @field_data WHERE char_id =  @char_id END
  19401. ELSE
  19402. BEGIN
  19403.     RAISERROR ('lin_UpdatePledgeInfo : invalid field [%s]', 16, 1, @fieldName)
  19404.     RETURN -1  
  19405. END
  19406. GO
  19407.  
  19408. /********************************************        
  19409. lin_updateSociality
  19410.  set sociality
  19411. INPUT        
  19412.  @char_id
  19413.  @sociality
  19414.  @sulffrage
  19415.  @last_changed
  19416. OUTPUT        
  19417. return        
  19418.        
  19419. made by        
  19420.  carrot        
  19421. date        
  19422.  2004-07-4
  19423. change        
  19424. ********************************************/        
  19425. ALTER PROCEDURE [DBO].[lin_updateSociality]
  19426. (        
  19427.  @char_id INT,
  19428.  @sociality INT
  19429. )        
  19430. AS        
  19431.        
  19432. SET NOCOUNT ON        
  19433.  
  19434. UPDATE user_sociality
  19435. SET sociality = @sociality
  19436. WHERE char_id = @char_id
  19437. GO
  19438.  
  19439. /********************************************        
  19440. lin_updateSulffrageUsed
  19441.  set sulffrage
  19442. INPUT        
  19443.  @char_id
  19444.  @sociality
  19445.  @sulffrage
  19446.  @last_changed
  19447. OUTPUT        
  19448. return        
  19449.        
  19450. made by        
  19451.  carrot        
  19452. date        
  19453.  2004-07-4
  19454. change        
  19455. ********************************************/        
  19456. ALTER PROCEDURE [DBO].[lin_updateSulffrageUsed]
  19457. (        
  19458.  @char_id INT,
  19459.  @sulffrage INT
  19460. )        
  19461. AS        
  19462.        
  19463. SET NOCOUNT ON        
  19464.  
  19465. UPDATE user_sociality
  19466. SET used_sulffrage = @sulffrage
  19467. WHERE char_id = @char_id
  19468. GO
  19469.  
  19470. /****** Object:  Stored Procedure dbo.lin_UpdateUserItem    Script Date: 2003-09-20 ?? 11:51:57 ******/
  19471. /********************************************
  19472. lin_UpdateUserItem
  19473.    
  19474. INPUT
  19475.     @char_id    INT,
  19476.     @item_type  INT,
  19477.     @amount INT,
  19478.     @enchant    INT,
  19479.     @eroded INT,
  19480.     @bless      INT,
  19481.     @ident      INT,
  19482.     @wished INT,
  19483.     @warehouse  INT,
  19484.     @item_id        INT
  19485. OUTPUT
  19486. return
  19487. made by
  19488.     carrot
  19489. date
  19490.     2002-06-09
  19491. ********************************************/
  19492. ALTER PROCEDURE [DBO].[lin_UpdateUserItem]
  19493. (
  19494. @char_id    INT,
  19495. @item_type  INT,
  19496. @amount INT,
  19497. @enchant    INT,
  19498. @eroded INT,
  19499. @bless      INT,
  19500. @ident      INT,
  19501. @wished INT,
  19502. @warehouse  INT,
  19503. @item_id        INT
  19504. )
  19505. AS
  19506. SET NOCOUNT ON
  19507.  
  19508. UPDATE user_item  SET char_id=@char_id, item_type=@item_type, amount=@amount, enchant=@enchant, eroded=@eroded, bless=@bless, ident=@ident, wished=@wished, warehouse=@warehouse WHERE item_id=@item_id
  19509. GO
  19510.  
  19511. /****** Object:  Stored Procedure dbo.lin_UpdateUseTime    Script Date: 2003-09-20 ?? 11:51:57 ******/
  19512. /********************************************
  19513. lin_UpdateUseTime
  19514.     update character use time
  19515. INPUT
  19516.     char_id     int,
  19517.     usedtimesec int
  19518. OUTPUT
  19519. return
  19520. made by
  19521.     young
  19522. date
  19523.     2003-03-26
  19524.  
  19525.         add usetime set
  19526. ********************************************/
  19527. ALTER PROCEDURE [DBO].[lin_UpdateUseTime]
  19528. (
  19529.     @char_id    INT,
  19530.     @usedTimeSec    INT
  19531. )
  19532. AS
  19533.  
  19534. SET NOCOUNT ON
  19535.  
  19536. UPDATE user_data SET use_time = use_time + @usedTimeSec WHERE char_id = @char_id
  19537. GO
  19538.  
  19539. /****** Object:  Stored Procedure dbo.lin_UpdateWarehouseItem    Script Date: 2003-09-20 ?? 11:51:57 ******/
  19540. /********************************************
  19541. lin_UpdateWarehouseItem
  19542.    
  19543. INPUT
  19544.     @warehouse  INT,
  19545.     @amount INT,
  19546.     @item_id        INT
  19547. OUTPUT
  19548. return
  19549. made by
  19550.     carrot
  19551. date
  19552.     2002-06-10
  19553. ********************************************/
  19554. ALTER PROCEDURE [DBO].[lin_UpdateWarehouseItem]
  19555. (
  19556.     @warehouse  INT,
  19557.     @amount INT,
  19558.     @item_id        INT
  19559. )
  19560. AS
  19561. SET NOCOUNT ON
  19562.  
  19563. UPDATE user_item SET warehouse=@warehouse,amount=@amount WHERE item_id=@item_id
  19564. GO
  19565.  
  19566. /****** Object:  Stored Procedure dbo.lin_ViewSiegeList    Script Date: 2003-09-20 ?? 11:52:00 ******/
  19567. /********************************************
  19568. lin_ViewSiegeList
  19569.    
  19570. INPUT  
  19571.     @castle_id  int,
  19572.     @type   int
  19573. OUTPUT
  19574.     pledge_id,
  19575.     name
  19576. return
  19577. made by
  19578.     carrot
  19579. date
  19580.     2002-06-16
  19581. ********************************************/
  19582. ALTER PROCEDURE [DBO].[lin_ViewSiegeList]
  19583. (
  19584.     @castle_id  INT,
  19585.     @TYPE   INT
  19586. )
  19587. AS
  19588. SET NOCOUNT ON
  19589.  
  19590. SELECT
  19591.     p.pledge_id, p.name
  19592. FROM
  19593.     pledge p (nolock) ,
  19594.     castle_war cw (nolock)  
  19595. WHERE
  19596.     p.pledge_id = cw.pledge_id
  19597.     AND cw.castle_id = @castle_id
  19598.     AND cw.TYPE = @TYPE
  19599. GO
  19600.  
  19601. /****** Object:  Stored Procedure dbo.lin_WithdrawAlliance    Script Date: 2003-09-20 ?? 11:52:00 ******/
  19602. -- lin_WithdrawAlliance
  19603. -- by bert
  19604. -- return Result(0 if failed)
  19605.  
  19606. ALTER PROCEDURE
  19607. dbo.lin_WithdrawAlliance (@alliance_id INT, @member_pledge_id INT, @alliance_withdraw_time INT)
  19608. AS
  19609.  
  19610. SET NOCOUNT ON
  19611.  
  19612. DECLARE @RESULT INT
  19613.  
  19614. UPDATE pledge
  19615. SET alliance_id = 0, alliance_withdraw_time = @alliance_withdraw_time
  19616. WHERE pledge_id = @member_pledge_id
  19617.  
  19618. IF @@ERROR = 0 AND @@ROWCOUNT = 1
  19619. BEGIN
  19620.     SELECT @RESULT = 1
  19621. END
  19622. ELSE
  19623. BEGIN
  19624.     SELECT @RESULT = 0
  19625. END
  19626.  
  19627. SELECT @RESULT
  19628. GO
  19629.  
  19630. /****** Object:  Stored Procedure dbo.lin_WithdrawPledgeMember    Script Date: 2003-09-20 ?? 11:51:57 ******/
  19631. -- lin_WithdrawPledgeMember
  19632. -- by bert
  19633.  
  19634. ALTER PROCEDURE
  19635. dbo.lin_WithdrawPledgeMember (@pledge_id INT, @member_id INT)
  19636. AS
  19637.  
  19638. SET NOCOUNT ON
  19639.  
  19640. DECLARE @ret INT
  19641.  
  19642. BEGIN TRAN
  19643.  
  19644. UPDATE user_data
  19645. SET pledge_id = 0
  19646. WHERE char_id = @member_id
  19647. AND pledge_id = @pledge_id
  19648.  
  19649. IF @@ERROR = 0 AND @@ROWCOUNT = 1
  19650. BEGIN
  19651.     -- ???? ??? ???
  19652.     SELECT @ret = 1
  19653. END
  19654. ELSE
  19655. BEGIN
  19656.     SELECT @ret = 0
  19657.     GOTO EXIT_TRAN
  19658. END
  19659.  
  19660. EXIT_TRAN:
  19661. IF @ret<> 0
  19662. BEGIN
  19663.     COMMIT TRAN
  19664. END
  19665. ELSE
  19666. BEGIN
  19667.     ROLLBACK TRAN
  19668. END
  19669. SELECT @ret
  19670. GO
  19671.  
  19672. /****** Object:  Stored Procedure dbo.lin_writeBbsall    Script Date: 2003-09-20 ?? 11:51:57 ******/
  19673. ALTER PROCEDURE [DBO].[lin_writeBbsall]
  19674. (
  19675.     @title NVARCHAR(50),
  19676.     @contents NVARCHAR(4000),
  19677.     @writer NVARCHAR(50)
  19678. )
  19679. AS
  19680. INSERT INTO bbs_all (title, contents, writer) VALUES (@title, @contents, @writer)
  19681. GO
  19682.  
  19683. /****** Object:  Stored Procedure dbo.lin_writeBbsTGS    Script Date: 2003-09-20 ?? 11:51:57 ******/
  19684. ALTER PROCEDURE [DBO].[lin_writeBbsTGS]
  19685. (
  19686.     @title NVARCHAR(50),
  19687.     @contents NVARCHAR(4000),
  19688.     @writer NVARCHAR(50)
  19689. )
  19690. AS
  19691.  
  19692.  
  19693. INSERT INTO bbs_tgs (title, contents, writer) VALUES (@title, @contents, @writer)
  19694. GO
  19695.  
  19696. /********************************************      
  19697. lin_WriteCastleTax      
  19698.        
  19699. INPUT      
  19700. OUTPUT      
  19701. return      
  19702. made by      
  19703.  carrot      
  19704. date      
  19705.  2002-06-10      
  19706. change carrot 2003-12-22    
  19707.  add tax_type, residence type to differentiate agit from castle    
  19708. change carrot 2004-02-29  
  19709.  add TaxRateToChange  
  19710. ********************************************/      
  19711. ALTER PROCEDURE [DBO].[lin_WriteCastleTax]      
  19712. (      
  19713.  @nIsCastle INT,    
  19714.  @tax_type INT,      
  19715.  @tax_rate  INT,      
  19716.  @to_change  INT,      
  19717.  @residence_id  INT      
  19718. )      
  19719. AS      
  19720. SET NOCOUNT ON      
  19721.    
  19722. IF(@nIsCastle = 1)    
  19723. BEGIN    
  19724.  IF (@tax_type = 2)    
  19725.   UPDATE castle SET tax_child_rate = @tax_rate, tax_child_rate_to_change = @to_change  WHERE id = @residence_id      
  19726.  ELSE IF (@tax_type = 1)    
  19727.   UPDATE castle SET tax_rate = @tax_rate, tax_rate_to_change = @to_change  WHERE id = @residence_id      
  19728.  ELSE    
  19729.   RAISERROR ('tax type is invalid. castle cannot save type[%d] id and castle id[%d].', 16, 1, @tax_type, @residence_id )    
  19730. END    
  19731. ELSE IF(@nIsCastle = 0)    
  19732. BEGIN    
  19733.  IF (@tax_type = 2)    
  19734. BEGIN  
  19735.   UPDATE agit SET tax_child_rate = @tax_rate, tax_child_rate_to_change = @to_change  WHERE id = @residence_id      
  19736. END  
  19737.  ELSE IF (@tax_type = 1)    
  19738.   UPDATE agit SET tax_rate = @tax_rate, tax_rate_to_change = @to_change WHERE id = @residence_id      
  19739.  ELSE    
  19740.   RAISERROR ('tax type is invalid. agit cannot save type[%d] id and agit id[%d].', 16, 1, @tax_type, @residence_id )    
  19741. END
  19742. GO
  19743.  
  19744. ALTER PROCEDURE dbo.lin_WriteHeroWords
  19745. (
  19746. @char_id INT,
  19747. @hero_words VARCHAR(128)
  19748. )
  19749. AS
  19750. SET NOCOUNT ON
  19751.  
  19752. UPDATE user_nobless
  19753. SET words = @hero_words
  19754. WHERE char_id = @char_id
  19755. GO
  19756.  
  19757. ALTER PROCEDURE dbo.lin_WriteNoblessAchievement
  19758. (
  19759. @char_id INT,
  19760. @win_type INT,
  19761. @target INT,
  19762. @win_time INT
  19763. )
  19764. AS
  19765. SET NOCOUNT ON
  19766.  
  19767. INSERT INTO nobless_achievements
  19768. (char_id, win_type, target, win_time)
  19769. VALUES
  19770. (@char_id, @win_type, @target, @win_time)
  19771. GO
  19772.  
  19773. ALTER PROCEDURE [dbo].SP_DBCC
  19774.  
  19775. AS  
  19776.  
  19777. DECLARE @JOBKIND VARCHAR(20)
  19778. DECLARE @ST_TIME DATETIME  
  19779. DECLARE @EN_TIME DATETIME  
  19780. DECLARE @ST_SIZE  INT  
  19781. DECLARE @END_SIZE  INT  
  19782.  
  19783. SELECT @ST_SIZE=0, @END_SIZE=0  
  19784.  
  19785.  
  19786. --==========================================
  19787. SELECT @JOBKIND = 'CLEANUP'
  19788. BEGIN
  19789.     SELECT @ST_TIME=getdate()  
  19790.     --1.  ?? ?? ITEM ??
  19791.     EXEC lin_DeleteNotOwnedItem  
  19792.     --2. GHOST ??? ??
  19793.     EXEC lin_CleanUpGhostData
  19794.     SELECT @EN_TIME=getdate()
  19795.    
  19796.     INSERT lin2audit..dbcc_history  
  19797.         SELECT hostname,loginame,@JOBKIND,@ST_TIME,@EN_TIME,datediff(MINUTE,@ST_TIME,@EN_TIME),@ST_SIZE,@END_SIZE  
  19798.         FROM master.dbo.sysprocesses
  19799.         WHERE spid = @@spid
  19800. END
  19801. --==========================================
  19802.  
  19803. --==========================================  
  19804. SELECT @JOBKIND = 'CHECKDB'  
  19805. BEGIN  
  19806.     SELECT @ST_TIME=getdate()  
  19807.     DBCC CHECKDB('lin2world')
  19808.     SELECT @EN_TIME=getdate()  
  19809.  
  19810.     INSERT lin2audit..dbcc_history  
  19811.         SELECT hostname,loginame,@JOBKIND,@ST_TIME,@EN_TIME,datediff(MINUTE,@ST_TIME,@EN_TIME),@ST_SIZE,@END_SIZE  
  19812.         FROM master.dbo.sysprocesses
  19813.         WHERE spid = @@spid
  19814. END
  19815. --==========================================
  19816.  
  19817. --==========================================  
  19818. SELECT @JOBKIND = 'reindex'  
  19819. BEGIN  
  19820.     SELECT @ST_SIZE=SUM(dpages)*8/1024 FROM sysindexes WHERE id = object_id('user_item')  
  19821.     SELECT @ST_TIME=getdate()  
  19822.     DBCC DBREINDEX('user_item','',90)  
  19823.     SELECT @EN_TIME=getdate()  
  19824.     SELECT @END_SIZE=SUM(dpages)*8/1024 FROM sysindexes WHERE id = object_id('user_item')  
  19825.  
  19826.     INSERT lin2audit..dbcc_history  
  19827.         SELECT hostname,loginame,@JOBKIND,@ST_TIME,@EN_TIME,datediff(MINUTE,@ST_TIME,@EN_TIME),@ST_SIZE,@END_SIZE  
  19828.         FROM master.dbo.sysprocesses
  19829.         WHERE spid = @@spid
  19830. END  
  19831. --==========================================
  19832. GO
  19833.  
  19834. /****** Object:  Stored Procedure dbo.sp_test    Script Date: 2003-09-20 ?? 11:51:57 ******/
  19835. ALTER PROCEDURE [dbo].sp_test
  19836. (
  19837.     @strIn  NCHAR(30)
  19838. )
  19839. AS
  19840.  
  19841. SET @strIn = RTRIM(@strIn)
  19842.  
  19843. IF @strIn LIKE N' %'
  19844. BEGIN
  19845.     print 'Space [' + @strIn + ']'
  19846.     RAISERROR ('Character name has space : name = [%s]', 16, 1, '')
  19847.     RETURN -1
  19848. END
  19849.  
  19850. print 'No space [' + @strIn + ']'
  19851. GO
  19852.  
  19853. /****** Object:  Stored Procedure dbo.spCopyXYZlocForDummy    Script Date: 2003-09-20 ?? 11:51:57 ******/
  19854. ALTER PROCEDURE [dbo].spCopyXYZlocForDummy (@nSrc INT, @nDest INT, @nCount INT)
  19855. AS
  19856.  
  19857. DECLARE @i INT
  19858. DECLARE @xloc INT
  19859. DECLARE @yloc INT
  19860. DECLARE @zloc INT
  19861.  
  19862. SELECT @i = 0
  19863.  
  19864. WHILE @i < @nCount
  19865. BEGIN
  19866.  
  19867. SELECT @xloc = xloc, @yloc = yloc, @zloc = zloc
  19868. FROM user_data
  19869. WHERE char_name = 'dummy0' + STR(@nSrc + @i, 4)
  19870.  
  19871. UPDATE user_data
  19872. SET xloc = @xloc, yloc = @yloc, zloc = @zloc
  19873. WHERE char_name = 'dummy0' + STR(@nDest + @i, 4)
  19874.  
  19875. SELECT @i = @i + 1
  19876.  
  19877. END
  19878. GO
  19879.  
  19880. ALTER PROCEDURE [dbo].STAT_ITEM_ACC      
  19881. AS        
  19882. BEGIN        
  19883.        
  19884. TRUNCATE TABLE LIN2AUDIT..STAT_ITEM_CNT      
  19885. TRUNCATE TABLE LIN2AUDIT..STAT_ITEM_ENT        
  19886. TRUNCATE TABLE LIN2AUDIT..STAT_ITEM_MENT        
  19887. TRUNCATE TABLE LIN2AUDIT..STAT_ITEM_MINCNT        
  19888.        
  19889. --1. ?? ??? ???? ???? ??? ??        
  19890. --================================================================================================================================      
  19891. DECLARE @LAST_ITEM_TYPE INT      
  19892. DECLARE @SQL    VARCHAR(1000)      
  19893.      
  19894. DECLARE ITEM_TYPE_CURSOR CURSOR      
  19895.  FOR SELECT TOP 1 ITEM_TYPE FROM USER_ITEM ORDER BY ITEM_TYPE DESC      
  19896. OPEN ITEM_TYPE_CURSOR      
  19897. FETCH NEXT FROM ITEM_TYPE_CURSOR      
  19898. INTO @LAST_ITEM_TYPE      
  19899. WHILE @@FETCH_STATUS = 0      
  19900. BEGIN      
  19901.      
  19902. DECLARE @I VARCHAR(10)      
  19903. SET @I = 1      
  19904. WHILE (@I < @LAST_ITEM_TYPE)      
  19905. BEGIN      
  19906.  SET @SQL = 'INSERT INTO LIN2AUDIT..STAT_ITEM_CNT '      
  19907.  SET @SQL = @SQL + 'SELECT '+@I+' AS ITEM_TYPE, COUNT(*) AS ''??? ???'', SUM(CAST(AMOUNT AS BIGINT))  AS ''??? ??'' '      
  19908.  SET @SQL = @SQL + 'FROM USER_ITEM WITH (NOLOCK) WHERE ITEM_TYPE = '+@I+''      
  19909.  EXEC (@SQL)      
  19910.  SET @I = @I + 1      
  19911. END      
  19912.      
  19913. FETCH NEXT FROM ITEM_TYPE_CURSOR      
  19914. INTO @LAST_ITEM_TYPE      
  19915. END      
  19916. CLOSE ITEM_TYPE_CURSOR      
  19917. DEALLOCATE ITEM_TYPE_CURSOR      
  19918. --================================================================================================================================      
  19919.        
  19920. ---------------------------------------------------------------        
  19921. --2. ?? ??? ???? +1 ??? ???? ???? ? ??        
  19922.        
  19923. INSERT INTO LIN2AUDIT..STAT_ITEM_ENT        
  19924.  SELECT ITEM_TYPE, ENCHANT , COUNT(ITEM_TYPE)  AS '??? ???', SUM(AMOUNT) AS '??? ??'        
  19925.  FROM USER_ITEM WITH (NOLOCK)        
  19926.  WHERE ENCHANT >0        
  19927.  GROUP BY ITEM_TYPE, ENCHANT        
  19928.  ORDER BY ITEM_TYPE, ENCHANT ASC        
  19929.        
  19930. ----------------------------------------------------------------        
  19931. --3. ?? ???? ???? ?? ?? ???? unique_id        
  19932. INSERT INTO LIN2AUDIT..STAT_ITEM_MENT        
  19933.  SELECT T2.ITEM_TYPE, T2.ITEM_ID, UD.CHAR_NAME, T2.ME,  UD.BUILDER        
  19934.  FROM      
  19935.  (        
  19936.  SELECT UI.CHAR_ID AS CHAR_ID ,UI.ITEM_TYPE AS ITEM_TYPE, UI.ITEM_ID AS ITEM_ID, t.MAX_ENCHANT AS ME        
  19937.  FROM USER_ITEM AS UI INNER JOIN        
  19938.  (        
  19939.  SELECT ITEM_TYPE, MAX(ENCHANT) AS MAX_ENCHANT        
  19940.  FROM USER_ITEM WITH (NOLOCK)        
  19941.  WHERE ENCHANT >0        
  19942.  GROUP BY ITEM_TYPE        
  19943.          
  19944.  ) AS T        
  19945.  ON UI.ITEM_TYPE = T.ITEM_TYPE AND UI.ENCHANT = T.MAX_ENCHANT        
  19946.  --ORDER BY UI.ITEM_TYPE        
  19947.  ) AS T2 INNER JOIN USER_DATA AS UD        
  19948.  ON T2.CHAR_ID = UD.CHAR_ID        
  19949.  WHERE UD.ACCOUNT_ID<>-1        
  19950.  ORDER BY T2.ITEM_TYPE        
  19951.      
  19952. ------------------------------------------------------------------        
  19953.        
  19954. --4. 1??? ??? ?? ??? ? ??? 10??? ???? unique_id        
  19955. INSERT INTO LIN2AUDIT..STAT_ITEM_MINCNT        
  19956.  SELECT  ITEM_TYPE , ITEM_ID        
  19957.  FROM USER_ITEM        
  19958.  WHERE ITEM_TYPE IN (SELECT ITEM_TYPE        
  19959.    FROM USER_ITEM WITH (NOLOCK)        
  19960.    GROUP BY ITEM_TYPE        
  19961.    HAVING COUNT(ITEM_TYPE)<11)        
  19962.  ORDER BY ITEM_TYPE        
  19963.        
  19964. --====================================================================        
  19965.        
  19966. TRUNCATE TABLE LIN2AUDIT..STAT_ACC_RACE      
  19967. TRUNCATE TABLE LIN2AUDIT..STAT_ACC_CLASS        
  19968. TRUNCATE TABLE LIN2AUDIT..STAT_ACC_LEV        
  19969. TRUNCATE TABLE LIN2AUDIT..STAT_ACC_MLEV        
  19970.        
  19971. --1. ??? ???? COUNT        
  19972. INSERT INTO LIN2AUDIT..STAT_ACC_RACE        
  19973.  SELECT RACE,COUNT(RACE) FROM USER_DATA WITH (NOLOCK) WHERE BUILDER=0 AND ACCOUNT_ID > 0 GROUP BY RACE ORDER BY RACE        
  19974.        
  19975. INSERT INTO LIN2AUDIT..STAT_ACC_CLASS        
  19976.  SELECT CLASS,COUNT(CLASS) FROM USER_DATA WITH (NOLOCK) WHERE BUILDER=0 AND ACCOUNT_ID > 0 GROUP BY CLASS ORDER BY CLASS        
  19977.        
  19978. --2. ??? COUNT        
  19979. INSERT INTO LIN2AUDIT..STAT_ACC_LEV        
  19980.  SELECT LEV,COUNT(LEV) FROM USER_DATA WITH (NOLOCK) WHERE BUILDER=0 AND ACCOUNT_ID > 0 GROUP BY LEV ORDER BY LEV        
  19981.        
  19982. --3. 70????? ?????        
  19983. INSERT INTO LIN2AUDIT..STAT_ACC_MLEV        
  19984.  SELECT ACCOUNT_NAME, CHAR_NAME, LEV, RACE, CLASS        
  19985.  FROM USER_DATA WITH (NOLOCK)      
  19986.  WHERE LEV>=76 AND BUILDER=0 AND ACCOUNT_ID > 0    
  19987.  ORDER BY LEV DESC        
  19988.          
  19989. END
  19990. GO
  19991.  
  19992. ALTER proc [dbo].table_info    
  19993. AS    
  19994.    
  19995.    
  19996. DECLARE @id INT      
  19997. DECLARE @TYPE CHARACTER(2)      
  19998. DECLARE @pages INT      
  19999. DECLARE @dbname sysname    
  20000. DECLARE @dbsize DEC(15,0)    
  20001. DECLARE @bytesperpage DEC(15,0)    
  20002. DECLARE @pagesperMB  DEC(15,0)    
  20003.    
  20004. CREATE TABLE #spt_space    
  20005. (    
  20006.  objid  INT NULL,    
  20007.  ROWS  INT NULL,    
  20008.  reserved DEC(15) NULL,    
  20009.  DATA  DEC(15) NULL,    
  20010.  indexp  DEC(15) NULL,    
  20011.  unused  DEC(15) NULL    
  20012. )    
  20013.    
  20014. SET nocount ON    
  20015.    
  20016. -- Create a cursor to loop through the user tables    
  20017. DECLARE c_tables cursor FOR    
  20018. SELECT id    
  20019. FROM sysobjects    
  20020. WHERE xtype = 'U'    
  20021.    
  20022. OPEN c_tables    
  20023.    
  20024. fetch NEXT FROM c_tables    
  20025. INTO @id    
  20026.    
  20027. while @@fetch_status = 0    
  20028. BEGIN    
  20029.    
  20030.  /* Code from sp_spaceused */    
  20031.  INSERT INTO #spt_space (objid, reserved)    
  20032.   SELECT objid = @id, SUM(reserved)    
  20033.    FROM sysindexes    
  20034.     WHERE indid IN (0, 1, 255)    
  20035.      AND id = @id    
  20036.    
  20037.  SELECT @pages = SUM(dpages)    
  20038.    FROM sysindexes    
  20039.     WHERE indid < 2    
  20040.      AND id = @id    
  20041.  SELECT @pages = @pages + isnull(SUM(used), 0)    
  20042.   FROM sysindexes    
  20043.    WHERE indid = 255    
  20044.     AND id = @id    
  20045.  UPDATE #spt_space    
  20046.   SET DATA = @pages    
  20047.  WHERE objid = @id    
  20048.    
  20049.    
  20050.  /* index: sum(used) where indid in (0, 1, 255) - data */    
  20051.  UPDATE #spt_space    
  20052.   SET indexp = (SELECT SUM(used)    
  20053.     FROM sysindexes    
  20054.     WHERE indid IN (0, 1, 255)    
  20055.     AND id = @id)    
  20056.        - DATA    
  20057.   WHERE objid = @id    
  20058.    
  20059.  /* unused: sum(reserved) - sum(used) where indid in (0, 1, 255) */    
  20060.  UPDATE #spt_space    
  20061.   SET unused = reserved    
  20062.     - (SELECT SUM(used)    
  20063.      FROM sysindexes    
  20064.       WHERE indid IN (0, 1, 255)    
  20065.       AND id = @id)    
  20066.   WHERE objid = @id    
  20067.    
  20068.  UPDATE #spt_space    
  20069.   SET ROWS = i.ROWS    
  20070.    FROM sysindexes i    
  20071.     WHERE i.indid < 2    
  20072.     AND i.id = @id    
  20073.     AND objid = @id    
  20074.    
  20075.  fetch NEXT FROM c_tables    
  20076.  INTO @id    
  20077. END    
  20078.    
  20079. SELECT  TableName = (SELECT LEFT(name,60) FROM sysobjects WHERE id = objid),    
  20080.  ROWS = CONVERT(CHAR(11), ROWS),    
  20081.  ReservedKB = ltrim(str(reserved * d.low / 1024.,15,0)),    
  20082.  DataKB = ltrim(str(DATA * d.low / 1024.,15,0)),    
  20083.  IndexSizeKB = ltrim(str(indexp * d.low / 1024.,15,0)),    
  20084.  UnusedKB = ltrim(str(unused * d.low / 1024.,15,0))    
  20085.      
  20086. FROM  #spt_space, master.dbo.spt_values d    
  20087. WHERE  d.NUMBER = 1    
  20088. AND  d.TYPE = 'E'    
  20089. ORDER BY tablename    
  20090. DROP TABLE #spt_space    
  20091. close c_tables    
  20092. deallocate c_tables
  20093. GO
  20094.  
  20095. ALTER PROC [dbo].TranLogBackup
  20096.     @DBNAME VARCHAR(20)
  20097. AS
  20098.  
  20099. --==================================================================================
  20100. --?? ?? ??
  20101.     DECLARE
  20102.         @query VARCHAR(1000),
  20103.         @cur_hour tinyint,
  20104.         @del_hour tinyint,
  20105.         @cur_device VARCHAR(50),
  20106.         @del_device VARCHAR(50),
  20107.         @description VARCHAR(48),
  20108.         @physical_name  VARCHAR(64)  
  20109.        
  20110.  
  20111. --==================================================================================
  20112. --?? ?? ??
  20113.     SET @cur_hour = datepart(HOUR,getdate())
  20114.     SET @del_hour = datepart( HOUR,dateadd(HOUR,-24,getdate()))
  20115.  
  20116. --==================================================================================
  20117. --????
  20118.     IF @cur_hour = 6 --full backup ?? ??
  20119.         RETURN
  20120.  
  20121.  
  20122.     SET @cur_device = @@servername + '_' + @DBNAME + '_tlog_' + CONVERT(CHAR(8),getdate(),112) + '_'
  20123.     SET @del_device = @@servername + '_' + @DBNAME + '_tlog_' + CONVERT(CHAR(8),dateadd(HOUR,-24,getdate()),112) + '_'
  20124.     SET @description = 'Log Hourly Backup , ' + @DBNAME  + '  ' + CONVERT(CHAR(16),GETDATE(),20)  
  20125.  
  20126.    
  20127.     IF @cur_hour < 10
  20128.         SET @cur_device = @cur_device + '0' + CONVERT(CHAR(1),@cur_hour)
  20129.     ELSE
  20130.         SET @cur_device = @cur_device + CONVERT(CHAR(2),@cur_hour)
  20131.  
  20132.  
  20133.     IF @del_hour < 10
  20134.         SET @del_device = @del_device + '0' + CONVERT(CHAR(1),@del_hour)
  20135.     ELSE
  20136.         SET @del_device = @del_device + CONVERT(CHAR(2),@del_hour)
  20137.  
  20138.     SET @physical_name = 'D:\MSSQL\BACKUP\' + @cur_device + '.tbak'
  20139.  
  20140.     PRINT 'cur_device : ' + @cur_device
  20141.     PRINT 'del_device : ' + @del_device
  20142.     PRINT 'physical_name : ' + @physical_name
  20143.    
  20144.  
  20145. --==================================================================================
  20146. --12 ?? ??? device? ????.
  20147.     IF ( select count(*) from master.dbo.sysdevices where name = rtrim(@del_device) ) = 1
  20148.         EXEC sp_dropdevice @del_device,'delfile'    
  20149.  
  20150.  
  20151. --==================================================================================
  20152. --dump device? ????.
  20153.     IF ( select count(*) from master.dbo.sysdevices where name = rtrim(@cur_device) ) = 0  
  20154.         EXEC sp_addumpdevice 'disk' , @cur_device , @physical_name  
  20155.  
  20156.  
  20157. --==================================================================================
  20158. --transaction log ? ?????.
  20159.     SET @query = 'BACKUP LOG ' + @DBNAME + ' TO ' + @cur_device
  20160.     PRINT @query
  20161.     EXECUTE(@query)
  20162. GO
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement