|
You last visited: Today at 05:43
Advertisement
[Release] vSRO (rework) permanent buffs
Discussion on [Release] vSRO (rework) permanent buffs within the SRO PServer Guides & Releases forum part of the SRO Private Server category.
06/08/2019, 03:27
|
#16
|
elite*gold: 100
Join Date: Jun 2013
Posts: 442
Received Thanks: 778
|
Quote:
Originally Posted by Royalblade*
It does check for existingness. "SkillID NOT IN _TimedJobs's.SkillID"
However!!
This is not very efficient. In fact, this is blatantly stupid.
#1. You don't delete from _TimedJob, as mentioned by Locklyon. Meaning the table will just become huge as fuck due to 2nd,3rd,4th chars etc. Just delete upon logout. IF @EventID = 6 -> DEL JobID from PermaBuffSkillIDList.
#2. Please guys. Stop adding columns to tables, cause you apparently don't understand how the query engine even works.
You added a "Permanent" column. Sub-mistake #1: IF you add a column for "true/false". Make it BOOL not tinyint. #2: _CharSkill is a comparatively huge table in the SRODB, due to the fact that every Characters full skill list is added. Meaning you have a quite large dataset already. Why would you add ANOTHER column again which just makes the dataset larger when its quite large already. The thing is. There are multiple ways to do this, many are at least efficient. Not clean, not good looking. BUT they work in an efficient manner. This release is for those 100player servers on VPS that srsly don't understand. But what you have done is. You apparently took a diff. permabuff query and REWORKED it into utter complete bullshit.
Thanks for that.
How to permabuff in an efficient manner:
Put all applicable buffs into new Table: PermabuffList.
Go into _RefSkill. Find out why Premium+ does NOT disappear on death (Check params guys)
Find the param for "time".
Add Time & "Stay on death" parameters to all skills from PermabuffList.
Now, go to the shieldbuff remove the parameter for "Requirement: Shield".
Additionally, go to ShieldBuff. Check column for req wep.... make it 255 for no wep needed.
Understood? Awesome. Lets do the same on Pacheon Hawks. Either Attk. Rate OR self-attacking hawk. Let people do their config if you don't wanna force em.
Now write a procedure. Join _CharSkill Where CharID = @CharID & SkillID = SkillID.
Thats very fast. Why? 'Cause CharID, SkillID have a so-called Primary Key Index.
Now since you've got all the applicable skills. Insert them into _timedJob.
When a character logs out, delete those.
Want it perfect without two teleports?
Hook it to the filter and wait while query executes.
OR
Check USER login, grant buffs to all _User.CharIDs.
When Character finally logs in, delete buffs from other characters on same User.
Done.
Yes this is more work. But stop doing UNFINISHED systems/releases for the masses. Either let them die stupid or explain it to them. But 'release' your crap from your generous anal hole into the potty. Don't put it here as a re-crapped version.
With hate & love,
Akasch
|
Ehm.
Make everything passive, and be done hhhhhhhhhhhhhhh
|
|
|
06/08/2019, 14:53
|
#17
|
elite*gold: 100
Join Date: Sep 2017
Posts: 1,097
Received Thanks: 889
|
Quote:
Originally Posted by Simulation1337
Ehm.
Make everything passive, and be done hhhhhhhhhhhhhhh
|
Makes a sense, lol.
|
|
|
06/10/2019, 08:39
|
#18
|
elite*gold: 85
Join Date: Feb 2014
Posts: 1,055
Received Thanks: 1,643
|
Quote:
Originally Posted by Simulation1337
Ehm.
Make everything passive, and be done hhhhhhhhhhhhhhh
|
That's what Mace said, too. But noo. People gotta see who they are fighting against. It's sort of part of the game to see the general build from buffs and since a perfect solution is out there. Might as well do it.
|
|
|
06/10/2019, 16:39
|
#19
|
elite*gold: 20
Join Date: Sep 2007
Posts: 689
Received Thanks: 774
|
Quote:
Originally Posted by Royalblade*
That's what Mace said, too. But noo. People gotta see who they are fighting against. It's sort of part of the game to see the general build from buffs and since a perfect solution is out there. Might as well do it.
|
The old crew back together in this thread
|
|
|
06/10/2019, 19:56
|
#20
|
elite*gold: 100
Join Date: Jun 2013
Posts: 442
Received Thanks: 778
|
Quote:
Originally Posted by Royalblade*
That's what Mace said, too. But noo. People gotta see who they are fighting against. It's sort of part of the game to see the general build from buffs and since a perfect solution is out there. Might as well do it.
|
A simple solution is to create a dummy skill (active) that tells you what builds the user is. The skill can have levels (based on the mastery level). So you see a lvl 100 fire skill active, the user has lvl 100 fire mastery
|
|
|
07/13/2019, 11:17
|
#21
|
elite*gold: 0
Join Date: Feb 2015
Posts: 49
Received Thanks: 27
|
Programmability find [dbo].[_skill_manage] this file deleted
re-upload please
|
|
|
08/28/2019, 21:07
|
#22
|
elite*gold: 0
Join Date: Sep 2016
Posts: 128
Received Thanks: 27
|
Link Fail
|
|
|
02/07/2020, 14:59
|
#23
|
elite*gold: 0
Join Date: Jan 2011
Posts: 373
Received Thanks: 71
|
link dead
|
|
|
11/09/2020, 09:58
|
#24
|
elite*gold: 0
Join Date: Nov 2020
Posts: 4
Received Thanks: 0
|
Link not work helps please
|
|
|
12/05/2022, 23:14
|
#25
|
elite*gold: 0
Join Date: Dec 2007
Posts: 165
Received Thanks: 28
|
Quote:
Originally Posted by Royalblade*
It does check for existingness. "SkillID NOT IN _TimedJobs's.SkillID"
However!!
This is not very efficient. In fact, this is blatantly stupid.
#1. You don't delete from _TimedJob, as mentioned by Locklyon. Meaning the table will just become huge as fuck due to 2nd,3rd,4th chars etc. Just delete upon logout. IF @EventID = 6 -> DEL JobID from PermaBuffSkillIDList.
#2. Please guys. Stop adding columns to tables, cause you apparently don't understand how the query engine even works.
You added a "Permanent" column. Sub-mistake #1: IF you add a column for "true/false". Make it BOOL not tinyint. #2: _CharSkill is a comparatively huge table in the SRODB, due to the fact that every Characters full skill list is added. Meaning you have a quite large dataset already. Why would you add ANOTHER column again which just makes the dataset larger when its quite large already. The thing is. There are multiple ways to do this, many are at least efficient. Not clean, not good looking. BUT they work in an efficient manner. This release is for those 100player servers on VPS that srsly don't understand. But what you have done is. You apparently took a diff. permabuff query and REWORKED it into utter complete bullshit.
Thanks for that.
How to permabuff in an efficient manner:
Put all applicable buffs into new Table: PermabuffList.
Go into _RefSkill. Find out why Premium+ does NOT disappear on death (Check params guys)
Find the param for "time".
Add Time & "Stay on death" parameters to all skills from PermabuffList.
Now, go to the shieldbuff remove the parameter for "Requirement: Shield".
Additionally, go to ShieldBuff. Check column for req wep.... make it 255 for no wep needed.
Understood? Awesome. Lets do the same on Pacheon Hawks. Either Attk. Rate OR self-attacking hawk. Let people do their config if you don't wanna force em.
Now write a procedure. Join _CharSkill Where CharID = @CharID & SkillID = SkillID.
Thats very fast. Why? 'Cause CharID, SkillID have a so-called Primary Key Index.
Now since you've got all the applicable skills. Insert them into _timedJob.
When a character logs out, delete those.
Want it perfect without two teleports?
Hook it to the filter and wait while query executes.
OR
Check USER login, grant buffs to all _User.CharIDs.
When Character finally logs in, delete buffs from other characters on same User.
Done.
Yes this is more work. But stop doing UNFINISHED systems/releases for the masses. Either let them die stupid or explain it to them. But 'release' your crap from your generous anal hole into the potty. Don't put it here as a re-crapped version.
With hate & love,
Akasch
|
Thank you, took me 1 hour. Just like you said, i did and it work
Its just for level 1 - 90 Skills, if you want to put higher skills, you need to add them to your permanentskillbufflist.
Table dbo._PermanentSkillBuffList
Code:
ID SkillID GroupID SkillCode GroupRange
1 93 240 SKILL_CH_COLD_GANGGI_A_01 1
2 1125 240 SKILL_CH_COLD_GANGGI_A_02 1
3 1126 240 SKILL_CH_COLD_GANGGI_A_03 1
4 1127 240 SKILL_CH_COLD_GANGGI_A_04 1
5 1128 240 SKILL_CH_COLD_GANGGI_A_05 1
6 1129 240 SKILL_CH_COLD_GANGGI_A_06 1
7 1130 240 SKILL_CH_COLD_GANGGI_A_07 1
8 1131 240 SKILL_CH_COLD_GANGGI_A_08 1
9 1132 240 SKILL_CH_COLD_GANGGI_A_09 1
10 94 241 SKILL_CH_COLD_GANGGI_B_01 1
11 1133 241 SKILL_CH_COLD_GANGGI_B_02 1
12 1134 241 SKILL_CH_COLD_GANGGI_B_03 1
13 1135 241 SKILL_CH_COLD_GANGGI_B_04 1
14 1136 241 SKILL_CH_COLD_GANGGI_B_05 1
15 1137 241 SKILL_CH_COLD_GANGGI_B_06 1
16 1138 241 SKILL_CH_COLD_GANGGI_B_07 1
17 1139 241 SKILL_CH_COLD_GANGGI_B_08 1
18 1140 241 SKILL_CH_COLD_GANGGI_B_09 1
19 95 242 SKILL_CH_COLD_GANGGI_C_01 1
20 1141 242 SKILL_CH_COLD_GANGGI_C_02 1
21 1142 242 SKILL_CH_COLD_GANGGI_C_03 1
22 1143 242 SKILL_CH_COLD_GANGGI_C_04 1
23 1144 242 SKILL_CH_COLD_GANGGI_C_05 1
24 1145 242 SKILL_CH_COLD_GANGGI_C_06 1
25 1146 242 SKILL_CH_COLD_GANGGI_C_07 1
26 1147 242 SKILL_CH_COLD_GANGGI_C_08 1
27 1148 242 SKILL_CH_COLD_GANGGI_C_09 1
28 3365 332 SKILL_CH_COLD_GANGGI_D_01 1
29 3366 332 SKILL_CH_COLD_GANGGI_D_02 1
30 3367 332 SKILL_CH_COLD_GANGGI_D_03 1
31 3368 332 SKILL_CH_COLD_GANGGI_D_04 1
32 3369 332 SKILL_CH_COLD_GANGGI_D_05 1
33 3370 332 SKILL_CH_COLD_GANGGI_D_06 1
34 3371 332 SKILL_CH_COLD_GANGGI_D_07 1
35 3372 332 SKILL_CH_COLD_GANGGI_D_08 1
36 3373 332 SKILL_CH_COLD_GANGGI_D_09 1
37 3374 332 SKILL_CH_COLD_GANGGI_D_10 1
38 3375 332 SKILL_CH_COLD_GANGGI_D_11 1
39 3376 332 SKILL_CH_COLD_GANGGI_D_12 1
40 133 280 SKILL_CH_FIRE_GANGGI_A_01 2
41 1415 280 SKILL_CH_FIRE_GANGGI_A_02 2
42 1416 280 SKILL_CH_FIRE_GANGGI_A_03 2
43 1417 280 SKILL_CH_FIRE_GANGGI_A_04 2
44 1418 280 SKILL_CH_FIRE_GANGGI_A_05 2
45 1419 280 SKILL_CH_FIRE_GANGGI_A_06 2
46 1420 280 SKILL_CH_FIRE_GANGGI_A_07 2
47 1421 280 SKILL_CH_FIRE_GANGGI_A_08 2
48 1422 280 SKILL_CH_FIRE_GANGGI_A_09 2
49 134 281 SKILL_CH_FIRE_GANGGI_B_01 2
50 1423 281 SKILL_CH_FIRE_GANGGI_B_02 2
51 1424 281 SKILL_CH_FIRE_GANGGI_B_03 2
52 1425 281 SKILL_CH_FIRE_GANGGI_B_04 2
53 1426 281 SKILL_CH_FIRE_GANGGI_B_05 2
54 1427 281 SKILL_CH_FIRE_GANGGI_B_06 2
55 1428 281 SKILL_CH_FIRE_GANGGI_B_07 2
56 1429 281 SKILL_CH_FIRE_GANGGI_B_08 2
57 1430 281 SKILL_CH_FIRE_GANGGI_B_09 2
58 135 282 SKILL_CH_FIRE_GANGGI_C_01 2
59 1431 282 SKILL_CH_FIRE_GANGGI_C_02 2
60 1432 282 SKILL_CH_FIRE_GANGGI_C_03 2
61 1433 282 SKILL_CH_FIRE_GANGGI_C_04 2
62 1434 282 SKILL_CH_FIRE_GANGGI_C_05 2
63 1435 282 SKILL_CH_FIRE_GANGGI_C_06 2
64 1436 282 SKILL_CH_FIRE_GANGGI_C_07 2
65 1437 282 SKILL_CH_FIRE_GANGGI_C_08 2
66 1438 282 SKILL_CH_FIRE_GANGGI_C_09 2
67 8224 506 SKILL_CH_FIRE_GANGGI_D_01 2
68 8225 506 SKILL_CH_FIRE_GANGGI_D_02 2
69 8226 506 SKILL_CH_FIRE_GANGGI_D_03 2
70 8227 506 SKILL_CH_FIRE_GANGGI_D_04 2
71 8228 506 SKILL_CH_FIRE_GANGGI_D_05 2
72 8229 506 SKILL_CH_FIRE_GANGGI_D_06 2
73 8230 506 SKILL_CH_FIRE_GANGGI_D_07 2
74 130 277 SKILL_CH_FIRE_GONGUP_A_01 3
75 1409 277 SKILL_CH_FIRE_GONGUP_A_02 3
76 1410 277 SKILL_CH_FIRE_GONGUP_A_03 3
77 131 278 SKILL_CH_FIRE_GONGUP_B_01 3
78 1411 278 SKILL_CH_FIRE_GONGUP_B_02 3
79 1412 278 SKILL_CH_FIRE_GONGUP_B_03 3
80 132 279 SKILL_CH_FIRE_GONGUP_C_01 3
81 1413 279 SKILL_CH_FIRE_GONGUP_C_02 3
82 1414 279 SKILL_CH_FIRE_GONGUP_C_03 3
83 8218 504 SKILL_CH_FIRE_GONGUP_D_01 3
84 8219 504 SKILL_CH_FIRE_GONGUP_D_02 3
85 8220 504 SKILL_CH_FIRE_GONGUP_D_03 3
86 127 274 SKILL_CH_FIRE_SHIELD_A_01 4
87 1394 274 SKILL_CH_FIRE_SHIELD_A_02 4
88 1395 274 SKILL_CH_FIRE_SHIELD_A_03 4
89 1396 274 SKILL_CH_FIRE_SHIELD_A_04 4
90 1397 274 SKILL_CH_FIRE_SHIELD_A_05 4
91 1398 274 SKILL_CH_FIRE_SHIELD_A_06 4
92 128 275 SKILL_CH_FIRE_SHIELD_B_01 4
93 1399 275 SKILL_CH_FIRE_SHIELD_B_02 4
94 1400 275 SKILL_CH_FIRE_SHIELD_B_03 4
95 1401 275 SKILL_CH_FIRE_SHIELD_B_04 4
96 1402 275 SKILL_CH_FIRE_SHIELD_B_05 4
97 1403 275 SKILL_CH_FIRE_SHIELD_B_06 4
98 129 276 SKILL_CH_FIRE_SHIELD_C_01 4
99 1404 276 SKILL_CH_FIRE_SHIELD_C_02 4
100 1405 276 SKILL_CH_FIRE_SHIELD_C_03 4
101 1406 276 SKILL_CH_FIRE_SHIELD_C_04 4
102 1407 276 SKILL_CH_FIRE_SHIELD_C_05 4
103 1408 276 SKILL_CH_FIRE_SHIELD_C_06 4
104 3431 338 SKILL_CH_FIRE_SHIELD_D_01 4
105 110 257 SKILL_CH_LIGHTNING_GWANTONG_A_01 5
106 1270 257 SKILL_CH_LIGHTNING_GWANTONG_A_02 5
107 1271 257 SKILL_CH_LIGHTNING_GWANTONG_A_03 5
108 111 258 SKILL_CH_LIGHTNING_GWANTONG_B_01 5
109 1272 258 SKILL_CH_LIGHTNING_GWANTONG_B_02 5
110 1273 258 SKILL_CH_LIGHTNING_GWANTONG_B_03 5
111 112 259 SKILL_CH_LIGHTNING_GWANTONG_C_01 5
112 1274 259 SKILL_CH_LIGHTNING_GWANTONG_C_02 5
113 1275 259 SKILL_CH_LIGHTNING_GWANTONG_C_03 5
114 3407 335 SKILL_CH_LIGHTNING_GWANTONG_D_01 5
115 3408 335 SKILL_CH_LIGHTNING_GWANTONG_D_02 5
116 3409 335 SKILL_CH_LIGHTNING_GWANTONG_D_03 5
141 119 266 SKILL_CH_LIGHTNING_JIPJUNG_A_01 6
142 1333 266 SKILL_CH_LIGHTNING_JIPJUNG_A_02 6
143 1334 266 SKILL_CH_LIGHTNING_JIPJUNG_A_03 6
144 1335 266 SKILL_CH_LIGHTNING_JIPJUNG_A_04 6
145 1336 266 SKILL_CH_LIGHTNING_JIPJUNG_A_05 6
146 1337 266 SKILL_CH_LIGHTNING_JIPJUNG_A_06 6
147 120 267 SKILL_CH_LIGHTNING_JIPJUNG_B_01 6
148 1338 267 SKILL_CH_LIGHTNING_JIPJUNG_B_02 6
149 1339 267 SKILL_CH_LIGHTNING_JIPJUNG_B_03 6
150 1340 267 SKILL_CH_LIGHTNING_JIPJUNG_B_04 6
151 1341 267 SKILL_CH_LIGHTNING_JIPJUNG_B_05 6
152 1342 267 SKILL_CH_LIGHTNING_JIPJUNG_B_06 6
153 3410 336 SKILL_CH_LIGHTNING_JIPJUNG_C_01 6
154 3411 336 SKILL_CH_LIGHTNING_JIPJUNG_C_02 6
155 3412 336 SKILL_CH_LIGHTNING_JIPJUNG_C_03 6
156 3413 336 SKILL_CH_LIGHTNING_JIPJUNG_C_04 6
157 3414 336 SKILL_CH_LIGHTNING_JIPJUNG_C_05 6
158 3415 336 SKILL_CH_LIGHTNING_JIPJUNG_C_06 6
159 8175 497 SKILL_CH_LIGHTNING_JIPJUNG_D_01 6
160 8176 497 SKILL_CH_LIGHTNING_JIPJUNG_D_02 6
161 8177 497 SKILL_CH_LIGHTNING_JIPJUNG_D_03 6
StoredProcedure [dbo].[_UpdateSpBalanceSkill]
Code:
USE [SRO_VT_SHARD]
GO
/****** Object: StoredProcedure [dbo].[_UpdateSpBalanceSkill] Script Date: 05.12.2022 22:52:00 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[_UpdatePermanentBuffSkill]
@CharID INT
AS
DECLARE @newtime int
set @newtime= DATEDIFF(s, '1970-01-01 00:00:00', GETUTCDATE()) --get curent timestamp
set @newtime=@newtime+24*3600
IF EXISTS(SELECT SkillID FROM dbo._PermanentSkillBuffList WHERE SkillID IN (SELECT SkillID FROM dbo._CharSkill Where CharID = @CharID))
BEGIN
DELETE FROM dbo._TimedJob WHERE CharID = @CharID AND JobID IN (SELECT SkillID FROM dbo._PermanentSkillBuffList WHERE SkillID IN (SELECT SkillID FROM dbo._CharSkill Where CharID = @CharID))
DECLARE
@COUNTER INT = 1,
@MAX INT = 0
DECLARE @myTable TABLE (
[Id] int identity,
[SkillID] int
)
INSERT INTO @myTable
SELECT ID FROM dbo._RefSkill WHERE ID IN (SELECT Max(SkillID) as SkillID FROM dbo._PermanentSkillBuffList WHERE SkillID IN (SELECT SkillID FROM dbo._CharSkill Where CharID = @CharID) Group by GroupRange)
SELECT @max = COUNT(ID) FROM @myTable
DECLARE @TempSkillID int
WHILE @counter <= @max
BEGIN
SELECT @TempSkillID = SkillID FROM @myTable WHERE Id = @counter
INSERT INTO dbo._TimedJob (CharID, Category, JobID, TimeToKeep, Data1, Data2, Data3, Data4, Data5, Data6, Data7, Data8, Serial64, JID)
values (@CharID,0,@TempSkillID, @newtime,0,0,0,0,0,0,0,0,0,0)
SET @counter +=1
END
END
SRO_VT_LOG Procedure dbo._AddLogChar
Code:
IF @EventID IN(4,6,9,11)
BEGIN
EXEC VSRO_SHARD.._UpdatePermanentBuffSkill @charid
END
|
|
|
Similar Threads
|
[Release] Permanent Buffs
09/30/2018 - SRO PServer Guides & Releases - 30 Replies
Hi,
I have decided to release this after seeing some members requesting me for it.
: there is a better way to code it but this one will work fine anyway
Description:
•Permanent Buffs:
-Are you bored of using buffs every time you teleport or die in?
|
All times are GMT +2. The time now is 05:43.
|
|