Shaiya Raid Kill Share

09/10/2022 10:42 melihxrist#1
You can open SQL Query, paste the code, read it and turn on kill sharing between raids.

Code:
USE [PS_GameData]
GO
/* Publisher By Cyanide DC: Broken#7035 ? */
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
Create trigger [dbo].[NewCharsAdded] on [PS_GameData].[dbo].[_CreatedChars]
after INSERT
as
begin
SET NOCOUNT ON
declare [MENTION=2326962]oldk[/MENTION]1 int, [MENTION=829095]Newk[/MENTION]1 int, [MENTION=2805776]UserU[/MENTION]ID INT, [MENTION=339306]newuser[/MENTION]UID INT, [MENTION=395373]Chari[/MENTION]D INT

set [MENTION=2805776]UserU[/MENTION]ID = (select UserUID from inserted) -- gets useruid from inserted row
SET [MENTION=395373]Chari[/MENTION]D = (select CHARID from inserted) -- gets char id from new inserted row
set [MENTION=339306]newuser[/MENTION]UID = (SELECT USERUID FROM PS_gameData.dbo.chars WHERE charID  [MENTION=395373]Chari[/MENTION]D) -- sets newuserid as the id to look for
set [MENTION=2326962]oldk[/MENTION]1 = (SELECT k1 FROM PS_gameData.dbo.chars WHERE CHARID  [MENTION=395373]Chari[/MENTION]D) -- sets [MENTION=2326962]oldk[/MENTION]1 as the new chars k1
set [MENTION=829095]Newk[/MENTION]1 = (select MAX(k1) FROM dbo.chars where UserUID = [MENTION=339306]newuser[/MENTION]UID) -- gets max kills from a account

update PS_GAMEDATA.dbo.CHARS
set K1 = [MENTION=829095]Newk[/MENTION]1 
from PS_GAMEDATA.dbo.CHARS where [MENTION=395373]Chari[/MENTION]D = CharID
SET NOCOUNT off
END

But If you want to download it directly in SQL Query:

[Only registered and activated users can see links. Click Here To Register...]
04/14/2023 04:09 MorningstarV#2
Here is a CT for the same

[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
alloc(newmem,2048)
label(returnhere)
label(originalcode)
label(exit)
label(M1)
label(M2)
label(M3)
label(M4)
label(M5)
label(M6)
label(M7)
label(M8)
label(M9)

newmem:
call CustomFuncDeath
pushad
mov edi,esi
mov edx,[esi+000000E0]
xor ecx,ecx
mov cl,[esi+0000012D]
cmp ecx,01
je setzero
mov ecx,01
jmp gocall
setzero:
mov ecx,00
gocall:
push ecx
push edx
call ShareKill
popad
originalcode:

exit:
jmp 00465ACF

ShareKill:
sub esp,10 { 16 }
push ebx
push ebp
mov ebp,[esp+1C]
push esi
call dword ptr [ps_game.exe+1540D0] { ->kernel32.GetTickCount }
lea esi,[ebp+0000018C]
mov ebx,eax
push esi
add ebx,000003E8 { 1000 }
mov [esp+1C],esi
call dword ptr [ps_game.exe+1540DC] { ->ntdll.RtlEnterCriticalSection }
mov ecx,[ebp+00000184]
mov eax,[ecx+04]
mov [ebp+00000188],eax
cmp eax,ecx
je M1
test eax,eax
je M1
M8:
mov eax,[eax+08]
test eax,eax
je M2
lea esi,[eax-000000D0]
jmp M3
M2:
xor esi,esi
M3:
// cmp byte ptr [esi+00005808],0A { if ( *(_BYTE *)(v8 + 22376) > 0xAu )}
//ja M4
//mov eax,[ebp+00000188] { v6 = (CObjectLink *)CZone->m_listUser.cursor->next;}
//mov eax,[eax+04]
//jmp M6

M4:
cmp edi,esi
jne M5
mov ecx,[ebp+00000188]
mov eax,[ecx+04]
jmp M6
M5:
mov dl,[esp+24]
cmp [esi+0000012D],dl { if ( *(_BYTE *)(v8 + 301) == byCountry )}
jne M9
// NEW CODE HERE //
fld dword ptr [edi+000000D0]
push ecx
fsub dword ptr [esi+000000D0]
fstp dword ptr [esp+14]
fld dword ptr [edi+000000D8]
fsub dword ptr [esi+000000D8]
fstp dword ptr [esp+24]
fld dword ptr [esp+24]
fld dword ptr [esp+14]
fmul st(0),st(0)
fld st(1)
fmulp st(2),st(0)
faddp
fstp dword ptr [esp+24]
fld dword ptr [esp+24]
fstp dword ptr [esp]
call ps_game.exe+1B8A0
fcomp dword ptr [RangeFloat] { [100.00] }
add esp,04 { 00000004 }
fnstsw ax
sahf
//test ah,41 { 65 }
jae M9 { if ( v11 > 10.0 )}
//Need check party
cmp [esi+000017F4],00
je M9
mov ecx,esi
push edi
call ps_game.exe+67CE0
// //
M9:
mov edx,[ebp+00000188]
mov eax,[edx+04]
M6:
cmp eax,[ebp+00000184] { while ( v6 != CZone->m_listUser.head && v6 );}
mov [ebp+00000188],eax
je M7
test eax,eax
jne M8
M7:
mov esi,[esp+18] { v4 = &this->m_listUser.m_csList.m_cs;}
M1:
push esi
call dword ptr [ps_game.exe+1540D4] { ->ntdll.RtlLeaveCriticalSection }
pop esi
pop ebp
pop ebx
add esp,10 { 16 }
ret 0008 { 00000008 }

RangeFloat:
dd 42C80000

CustomFuncDeath:
sub esp,14 { 20 }
mov eax,[esi+0000014C]
cmp eax,[ps_game.exe+1823AC] { [000F4240] }
jae FuncDeathM
mov edx,[esi+0000582C]
inc eax
mov [esi+0000014C],eax
mov ecx,0000060C { 1548 }
mov [esp+0F],eax
push 0B { 11 }
lea eax,[esp+0C]
mov [esp+0C],cx
mov ecx,[ps_game.exe+18796C] { [010A2628] }
push eax
mov [esp+12],edx
mov byte ptr [esp+16],01 { 1 }
call ps_game.exe+ED2D0
mov edx,[esi+0000014C]
mov ecx,0000020E { 526 }
push 07 { 7 }
lea eax,[esp+04]
mov [esp+04],cx
push eax
mov ecx,esi
mov byte ptr [esp+0A],01 { 1 }
mov [esp+0B],edx
call ps_game.exe+ED0E0
FuncDeathM:
add esp,14 { 20 }
ret

"ps_game.exe"+65AAD:
jmp newmem
returnhere:




[DISABLE]
//code from here till the end of the code will be used to disable the cheat
dealloc(newmem)
"ps_game.exe"+65AAD:
call ps_game.exe+67EE0
//Alt: db E8 2E 24 00 00