· 6 years ago · Aug 22, 2019, 01:32 PM
1//-- 8/22/2019 -- 13:25:53 UTC ======== 8/22/2019 -- 14:25:53 Local-- yo_1.4.4.5 --
2ECHO 2019-08-22 14:25:53.318 {} <> [0] Processor Init:
3ECHO 2019-08-22 14:25:53.319 {} <> [0] Features detected: FPU VME DE PSE TSC MSR PAE MCE CX8 APIC MTRR SEP PGE MCA CMOV PAT PSE36 CLFLUSH DTS ACPI MMX FXSR SSE SSE2 SS HT TM PBE PNI PCLMUL DTS64 MONITOR DS_CPL VMX SMX EST TM2 SSSE3 CX16 XTPR PDCM DCA SSE4_1 SSE4_2 SYSCALL XD POPCNT AES XSAVE OSXSAVE AVX RDTSCP LM LAHF_LM CONSTANT_TSC F16C RDRAND X2APIC HTT
4ECHO 2019-08-22 14:25:53.319 {} <> [0] GenuineIntel, Xeon LV
5ECHO 2019-08-22 14:25:53.319 {} <> [0] MP detected [8 cores, 32 logical, 2 physical]
6ECHO 2019-08-22 14:25:53.319 {} <> [0]
7ECHO 2019-08-22 14:25:53.319 {} <> [0] Intel(R) Xeon(R) CPU E5-2667 v2 @ 3.30GHz, ~3.30 Ghz
8ECHO 2019-08-22 14:25:53.319 {} <> [0] Initializing platform...
9ECHO 2019-08-22 14:25:53.322 {} <> [0] Done
10ECHO 2019-08-22 14:25:53.465 {} <> [0]
11ECHO 2019-08-22 14:25:53.469 {} <> [0] --------- Loading DIRS ---------
12INFO 2019-08-22 14:25:53.469 {} <> [0] vyo_1.4.4.5
13ECHO 2019-08-22 14:25:53.471 {} <> [0]
14ECHO 2019-08-22 14:25:53.672 {01} <onStart> [0]
15--------- Initializing Directory: scripts ---------
16ECHO 2019-08-22 14:25:53.674 {02} <initServer> [0]
17--------- Initializing LiF Server: Server Scripts ---------
18ECHO 2019-08-22 14:25:53.685 {02} <initServer> [0] Loading CmConfiguration
19ECHO 2019-08-22 14:25:53.687 {02} <initServer> [0] Init of DB interface
20INFO 2019-08-22 14:25:53.690 {03} <checkServerIdLockFile> [0] Renaming log file name from 'logs/2019-08-22/S0_WIN-VV8M41OP55U_2019-08-22-14-25-53_p63104.log' to 'logs/2019-08-22/S129692_WIN-VV8M41OP55U_2019-08-22-14-25-53_p63104.log'...
21//-- 8/22/2019 -- 13:25:53 UTC ======== 8/22/2019 -- 14:25:53 Local-- yo_1.4.4.5 --
22INFO 2019-08-22 14:25:53.711 {03} <checkServerIdLockFile> [0] Log file name successfully renamed!
23INFO 2019-08-22 14:25:53.726 {02} <initServer> [0] WORLD_ID=129692
24WARN 2019-08-22 14:25:53.729 {02} <initServer> [0] DB::RS(2 ms) SHOW DATABASES LIKE 'lif_129692';
25WARN 2019-08-22 14:25:53.729 {02} <initServer> [0] DB::noRS(0 ms) USE `lif_129692`;
26WARN 2019-08-22 14:25:53.842 {02} <initServer> [0] DB::mNoRS(113 ms) DROP TABLE IF EXISTS `_patch_execute_status`; CREATE TABLE `_patch_execute_status`( ^`Value` tinyint unsigned NOT NULL DEFAULT 0 ) ENGINE = InnoDB DEFAULT CHARSET = utf8 COLLATE = utf8_unicode_ci; INSERT INTO `_patch_execute_status` () VALUES ();
27ECHO 2019-08-22 14:25:53.843 {02} <initServer> [0] Patching database [1/2]...
28WARN 2019-08-22 14:25:53.844 {02} <initServer> [0] DB::noRS(0 ms) USE `lif_129692`;
29WARN 2019-08-22 14:25:54.149 {02} <initServer> [0] DB::mNoRS(306 ms)
30-- NOTE: do not use DELIMITER here
31-- NOTE: do not use DEFINER for stored procedures and functions here
32
33DROP PROCEDURE IF EXISTS _transferSkill;
34CREATE PROCEDURE _transferSkill(
35^IN `in_oldSkillTypeID` INT UNSIGNED,
36^IN `in_newSkillTypeID` INT UNSIGNED
37)
38BEGIN
39
40-- allocate needed skill with 0 values at first.
41-- don't use "insert ... select on duplicate key update" here - it is not so safe for replication.
42insert into skills_new (CharacterID, SkillTypeID, SkillAmount, LockStatus)
43^select c.ID, in_newSkillTypeID as SkillTypeID, 0 as newSkillAmount, 1 as newLockStatus
44^^from `character` c
45^^join skills s on s.CharacterID = c.ID
46^^where s.SkillTypeID = in_oldSkillTypeID
47^^^and !exists(select * from skills_new sn where sn.CharacterID = c.ID and sn.SkillTypeID = in_newSkillTypeID)
48^^order by c.ID;
49
50-- transfer skill values
51update skills_new sn
52^join skills s on sn.CharacterID = s.CharacterID and sn.SkillTypeID = in_newSkillTypeID and s.SkillTypeID = in_oldSkillTypeID
53^set sn.SkillAmount = (sn.SkillAmount + s.SkillAmount);
54
55-- empty old skill values
56update skills
57^set SkillAmount = 0
58^where SkillTypeID = in_oldSkillTypeID;
59
60-- allocate child skills, if our skill has value >= 30
61insert into skills_new (CharacterID, SkillTypeID, SkillAmount, LockStatus)
62^select sn.CharacterID, stn.ID, 0 as newSkillAmount, 1 as newLockStatus
63^from skill_type_new stn
64^join skills_new sn on sn.SkillTypeID = stn.Parent
65^where stn.Parent = in_newSkillTypeID
66^^and sn.SkillAmount >= 30*10000000
67^^and !exists(select * from skills_new sn2 where sn2.CharacterID = sn.CharacterID and sn2.SkillTypeID = stn.ID);
68
69-- distribute skills with value > 100 to first child skill with value < 100
70-- (we can't use ORDER BY and LIMIT in multiple-table update. Also, we can't use LIMIT in subqueries due to MariaDB compatibility reasons)
71update skills_new sn
72-- select sn.SkillAmount as oldVal, (sn.SkillAmount + (sn_base.SkillAmount - 100*10000000)) as newVal, sn.* from skills_new sn
73^join skill_type_new stn on stn.ID = sn.SkillTypeID
74^-- join skills_new sn_base on sn_base.SkillTypeID = stn.Parent and sn_base.CharacterID = sn.CharacterID -- we can't use updated table in subquery, so implicitly copy it into a temporary table
75^join (select SkillTypeID, CharacterID, SkillAmount from skills_new where SkillTypeID = in_newSkillTypeID) as sn_base
76^^on sn_base.SkillTypeID = stn.Parent and sn_base.CharacterID = sn.CharacterID
77^set sn.SkillAmount = (sn.SkillAmount + (sn_base.SkillAmount - 100*10000000))
78^where sn_base.SkillAmount > 100*10000000
79^^-- and sn.SkillAmount < 100*10000000
80^^-- and stn.Parent = 1
81^^and stn.ID in
82^^(
83^^^select min(stn2.ID)
84^^^from skill_type_new stn2
85^^^-- join skills_new sn2 on sn2.SkillTypeID = stn2.ID -- we can't use updated table in subquery, so implicitly copy it into a temporary table
86^^^join (select SkillTypeID, CharacterID, SkillAmount from skills_new where SkillAmount < 100*10000000) as sn2
87^^^^on sn2.SkillTypeID = stn2.ID
88^^^where stn2.Parent = in_newSkillTypeID
89^^^^and sn2.CharacterID = sn.CharacterID
90^^^^-- and sn2.SkillAmount < 100*10000000
91^^);
92^-- order by stn.ID
93^-- limit 1
94
95-- cap skill values at 100
96update skills_new
97^set SkillAmount = 100*10000000
98^where SkillAmount > 100*10000000;
99
100END;
101
102DROP FUNCTION IF EXISTS _getMaxSkillValue;
103CREATE FUNCTION `_getMaxSkillValue`(
104^`in_parentSkillValue` INT UNSIGNED
105)
106^RETURNS INT UNSIGNED
107BEGIN
108^declare skillAmountMult INT UNSIGNED DEFAULT 10000000;
109
110^if(in_parentSkillValue < 30*skillAmountMult) then
111^^return 0;
112^elseif(in_parentSkillValue < 60*skillAmountMult) then
113^^return (30*skillAmountMult - 1);
114^end if;
115
116^return 100*skillAmountMult;
117END;
118
119DROP PROCEDURE IF EXISTS _transferSkillStraight;
120CREATE PROCEDURE _transferSkillStraight(
121^IN `in_oldSkillTypeID` INT UNSIGNED,
122^IN `in_newSkillTypeID` INT UNSIGNED
123)
124BEGIN
125
126declare skillAmountMult INT UNSIGNED DEFAULT 10000000;
127
128-- allocate needed skill with 0 values at first.
129-- don't use "insert ... select on duplicate key update" here - it is not so safe for replication.
130insert into skills_new (CharacterID, SkillTypeID, SkillAmount, LockStatus)
131^select c.ID, in_newSkillTypeID as SkillTypeID, 0 as newSkillAmount, 1 as newLockStatus
132^^from `character` c
133^^join skills s on s.CharacterID = c.ID
134^^where s.SkillTypeID = in_oldSkillTypeID
135^^^and !exists(select * from skills_new sn where sn.CharacterID = c.ID and sn.SkillTypeID = in_newSkillTypeID)
136^^order by c.ID;
137
138-- transfer skill values
139update skills_new sn
140^join skills s
141^^on sn.CharacterID = s.CharacterID
142^^and sn.SkillTypeID = in_newSkillTypeID
143^^and s.SkillTypeID = in_oldSkillTypeID
144^set sn.SkillAmount = (sn.SkillAmount + s.SkillAmount);
145
146-- empty old skill values
147update skills
148^set SkillAmount = 0
149^where SkillTypeID = in_oldSkillTypeID;
150
151-- allocate child skills, if our skill has value >= 30
152insert into skills_new (CharacterID, SkillTypeID, SkillAmount, LockStatus)
153^select sn.CharacterID, stn.ID, 0 as newSkillAmount, 1 as newLockStatus
154^from skill_type_new stn
155^join skills_new sn on sn.SkillTypeID = stn.Parent
156^where stn.Parent = in_newSkillTypeID
157^^and sn.SkillAmount >= 30*skillAmountMult
158^^and !exists(select * from skills_new sn2 where sn2.CharacterID = sn.CharacterID and sn2.SkillTypeID = stn.ID);
159
160-- cap skill values at 100
161update skills_new
162^set SkillAmount = 100*10000000
163^where SkillAmount > 100*10000000;
164
165END;
166
167
168DROP PROCEDURE IF EXISTS _transferSkillToSkillChainLimit;
169CREATE PROCEDURE _transferSkillToSkillChainLimit(
170^IN `in_oldSkillTypeID` INT UNSIGNED,
171^IN `in_newBaseSkillTypeID` INT UNSIGNED,
172^IN `in_skillAmountLimit` INT UNSIGNED
173)
174BEGIN
175
176declare skillAmountMult INT UNSIGNED DEFAULT 10000000;
177declare skillAmountLimit INT UNSIGNED DEFAULT least(greatest(in_skillAmountLimit, 30), 100); -- clamp skill amount limit at 100
178declare newBaseSkillTypeID INT UNSIGNED DEFAULT in_newBaseSkillTypeID; -- currently used parent skill in skill chain
179
180if(in_skillAmountLimit < 30 or in_skillAmountLimit > 100) then
181^SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'in_skillAmountLimit should be between 30 and 100';
182end if;
183
184while newBaseSkillTypeID is not n
185WARN 2019-08-22 14:25:54.152 {02} <initServer> [0] DB::RS(1 ms) SELECT `Value` FROM `_patch_execute_status` LIMIT 1;
186ERRR 2019-08-22 14:25:54.152 {02} <initServer> [0] CmServerInfoManager::_applyDbPatch() - validation of patch file execution failed
187ERRR 2019-08-22 14:25:54.152 {02} <initServer> [0] [line #1165] CmServerInfoManager::initLocalWorld() - can't access to db for world id=129692
188ERRR 2019-08-22 14:25:54.152 {02} <initServer> [0] Fatal: Can't init local world (id=129692). Terminating.
189quit() -- quit requested!
190ECHO 2019-08-22 14:25:54.153 {} <> [0] Engine initialized...
191ECHO 2019-08-22 14:25:54.158 {} <> [0] Thread pool initialized, threads: 31
192WARN 2019-08-22 14:25:54.158 {} <> [0] Warning - Last tick took 1307 (>64) ms!
193core/scripts/server/server.cs (0): Unable to find function destroyWorld
194INFO 2019-08-22 14:25:54.159 {01} <onExit> [1] The server has been shut down!
195ECHO 2019-08-22 14:25:54.159 {} <<Thread>> [] Thread worker terminated [T:WorkerThread27:114428]
196ECHO 2019-08-22 14:25:54.159 {} <<Thread>> [] Thread worker terminated [T:WorkerThread30:113680]
197ECHO 2019-08-22 14:25:54.160 {} <<Thread>> [] Thread worker terminated [T:WorkerThread25:104828]
198ECHO 2019-08-22 14:25:54.160 {} <<Thread>> [] Thread worker terminated [T:WorkerThread24:106396]
199ECHO 2019-08-22 14:25:54.160 {} <<Thread>> [] Thread worker terminated [T:WorkerThread22:68904]
200ECHO 2019-08-22 14:25:54.160 {} <<Thread>> [] Thread worker terminated [T:WorkerThread21:127448]
201ECHO 2019-08-22 14:25:54.160 {} <<Thread>> [] Thread worker terminated [T:WorkerThread20:39272]
202ECHO 2019-08-22 14:25:54.160 {} <<Thread>> [] Thread worker terminated [T:WorkerThread14:55036]
203ECHO 2019-08-22 14:25:54.160 {} <<Thread>> [] Thread worker terminated [T:WorkerThread23:7308]
204ECHO 2019-08-22 14:25:54.160 {} <<Thread>> [] Thread worker terminated [T:WorkerThread13:129824]
205ECHO 2019-08-22 14:25:54.160 {} <<Thread>> [] Thread worker terminated [T:WorkerThread28:140320]
206ECHO 2019-08-22 14:25:54.160 {} <<Thread>> [] Thread worker terminated [T:WorkerThread26:108540]
207ECHO 2019-08-22 14:25:54.160 {} <<Thread>> [] Thread worker terminated [T:WorkerThread11:57488]
208ECHO 2019-08-22 14:25:54.161 {} <<Thread>> [] Thread worker terminated [T:WorkerThread29:38356]
209ECHO 2019-08-22 14:25:54.161 {} <<Thread>> [] Thread worker terminated [T:WorkerThread10:46892]
210ECHO 2019-08-22 14:25:54.161 {} <<Thread>> [] Thread worker terminated [T:WorkerThread12:50936]
211ECHO 2019-08-22 14:25:54.161 {} <<Thread>> [] Thread worker terminated [T:WorkerThread9:106128]
212ECHO 2019-08-22 14:25:54.161 {} <<Thread>> [] Thread worker terminated [T:WorkerThread6:51492]
213ECHO 2019-08-22 14:25:54.161 {} <<Thread>> [] Thread worker terminated [T:WorkerThread8:38176]
214ECHO 2019-08-22 14:25:54.161 {} <<Thread>> [] Thread worker terminated [T:WorkerThread4:25676]
215ECHO 2019-08-22 14:25:54.161 {} <<Thread>> [] Thread worker terminated [T:WorkerThread3:80604]
216ECHO 2019-08-22 14:25:54.161 {} <<Thread>> [] Thread worker terminated [T:WorkerThread5:118192]
217ECHO 2019-08-22 14:25:54.162 {} <<Thread>> [] Thread worker terminated [T:WorkerThread19:125976]
218ECHO 2019-08-22 14:25:54.162 {} <<Thread>> [] Thread worker terminated [T:WorkerThread7:98872]
219ECHO 2019-08-22 14:25:54.162 {} <<Thread>> [] Thread worker terminated [T:WorkerThread0:115880]
220ECHO 2019-08-22 14:25:54.162 {} <<Thread>> [] Thread worker terminated [T:WorkerThread2:135124]
221ECHO 2019-08-22 14:25:54.162 {} <<Thread>> [] Thread worker terminated [T:WorkerThread1:77816]
222ECHO 2019-08-22 14:25:54.162 {} <<Thread>> [] Thread worker terminated [T:WorkerThread17:37800]
223ECHO 2019-08-22 14:25:54.162 {} <<Thread>> [] Thread worker terminated [T:WorkerThread16:91480]
224ECHO 2019-08-22 14:25:54.162 {} <<Thread>> [] Thread worker terminated [T:WorkerThread18:78912]
225ECHO 2019-08-22 14:25:54.162 {} <<Thread>> [] Thread worker terminated [T:WorkerThread15:29748]
226ECHO 2019-08-22 14:25:54.162 {} <> [1] Thread pool shut down