Collection Lineage 2 Shares [Updated 23/05/2022]

CriticalError

Выдающийся
Местный
Сообщения
75
Розыгрыши
0
Репутация
389
Реакции
144
Баллы
1 358
NPC C4





NPC Interlude-CT2.3-H5


1.png

2.png

3.png

4.png




NPC Interlude


1.jpg

4.jpg

3.jpg

2.jpg

1.jpg

spacer.png



1.jpg

2.jpg

spacer.png
1.jpg

4.jpg

spacer.png
2.jpg

1.jpg

7.jpg

6.jpg

5.jpg

4.jpg

3.jpg

2.jpg

1.jpg

1.jpg




1.png




Guard-V2.png

Guard.png

spacer.png
Without-effect.png




1.jpg




spacer.png



1.jpg




1.jpg




spacer.png



1.jpg




1.png

spacer.png
3.png

4.png

spacer.png
6.png

6.png

8.png




1.jpg




1.jpg













1.jpg




1.jpg



2.jpg


1.jpg

spacer.png



1.jpg

2.jpg


1.jpg




1.jpg




1.jpg

2.jpg

3.jpg

4.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg


1.jpg




1.jpg




1.jpg




1.png

2.png

3.png

4.png

5.png

6.png




spacer.png



1.jpg




1.jpg




NPC CT2.3


spacer.png
6.jpg

5.jpg

spacer.png
3.jpg

2.jpg

1.jpg

1.jpg

1.jpg

1.jpg

Baium-Statue-Golden.jpg

Baium-Statue-Frozen.png






4.jpg

3.jpg

2.jpg

1.jpg

1.jpg

3.jpg

2.jpg

1.jpg

1.jpg

1.jpg






1.png







NPC CT2.3-H5





spacer.png
moon.png




1.jpg




spacer.png






NPC H5


1.jpg







HTML





1.png




1.png




1.gif

1.png




1.png

2.png







1.png




1.png




1.png







Weapons Interlude


1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg















1.jpg




1.jpg

2.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg

2.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg


1.jpg


1.jpg


1.jpg


1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg


1.jpg


1.jpg




1.jpg


1.jpg


1.jpg




1.jpg


1.jpg


1.jpg




1.jpg


1.jpg


1.jpg




1.jpg

2.jpg

3.jpg

4.jpg


1.jpg


1.jpg




1.jpg




1.jpg




1.png




1.jpg







Weapons Interlude-H5





1.jpg

2.jpg

3.jpg

4.jpg

5.jpg

6.jpg

7.jpg


1.jpg

2.jpg

3.jpg

4.jpg

5.jpg

6.jpg

7.jpg




Weapons CT2.3


1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg















1.jpg

2.jpg

3.jpg

4.jpg




1.jpg

2.jpg

3.jpg

4.jpg

5.jpg

6.jpg

7.jpg

8.jpg

9.jpg

10.jpg




1.jpg

2.jpg




1.jpg




1.jpg




1.jpg

2.jpg

3.jpg

4.jpg




1.jpg

2.jpg

3.jpg

4.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg

2.jpg




1.jpg

2.jpg

3.jpg




1.jpg




1.jpg

2.jpg

3.jpg




1.jpg

2.jpg

3.jpg

4.jpg

5.jpg

6.jpg

7.jpg

8.jpg

9.jpg

10.jpg

11.jpg

12.jpg

13.jpg




1.jpg

2.jpg

3.jpg




1.jpg




1.jpg




1.jpg

2.jpg

3.jpg

4.jpg




1.jpg

2.jpg




1.jpg




1.jpg

2.jpg

3.jpg

4.jpg

5.jpg




1.jpg

2.jpg

3.jpg

4.jpg




1.jpg

2.jpg




1.jpg

2.jpg




1.jpg

2.jpg




1.jpg

2.jpg

3.jpg

4.jpg




1.jpg




1.jpg

2.jpg

3.jpg

4.jpg

5.jpg

6.jpg

7.jpg

8.jpg

9.jpg

10.jpg

11.jpg




Weapons H5


1.jpg




1.png

2.png

3.png




1.png

2.png

3.png




1.jpg




Accesories Interlude


1.jpg




1.jpg




Ares-Poseidon-Helmet-Interlude.jpg

Ares-Poseidon-Wings-Interlude-1.jpg

Ares-Poseidon-Wings-Interlude-2.jpg

Baium-Dreds-RED-BLUE-Interlude.jpg

Demon-Wings-Interlude.jpg

Ixion-Wings-Interlude.jpg

Noob-Wings-Interlude.jpg




1.jpg




1.jpg







1.jpg







1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg

2.jpg

3.jpg

4.jpg




1.jpg




1.jpg

2.jpg




1.jpg

2.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg

2.jpg




1.jpg




1.jpg




1.jpg

2.jpg




1.jpg




1.jpg

2.jpg







1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg










1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




Click-LOL-Interlude.jpg

Click-Me-Gusta-Interlude.jpg

Click-Poker-Face-Interlude.jpg

Click-Yao-Ming-Interlude.jpg

Troll-Face-Click-Ciano-Interlude.jpg




1.jpg

2.jpg




1.jpg

2.jpg




1.jpg




1.jpg




1.jpg

2.jpg

3.jpg

4.jpg

5.jpg

6.jpg

7.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg


1.jpg


1.jpg


1.jpg


1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg


1.jpg


1.jpg


1.jpg


1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg


1.jpg


1.jpg


1.jpg




1.jpg




Accesories CT2.3





1.jpg




1.jpg

2.jpg




1.jpg




1.jpg




1.jpg




1.jpg

2.jpg

3.jpg

4.jpg




1.jpg

2.jpg

3.jpg




1.jpg




1.jpg

2.jpg

3.jpg

4.jpg

5.jpg

6.jpg

7.jpg

8.jpg

9.jpg

10.jpg

11.jpg

12.jpg

13.jpg

14.jpg

15.jpg




1.jpg




13.jpg




1.jpg

2.jpg






1.jpg




1.jpg




1.jpg

2.jpg




1.jpg




1.jpg




1.jpg




1.jpg

2.jpg







1.jpg




1.jpg

2.jpg




1.jpg

2.jpg




1.jpg




1.jpg




1.jpg






1.jpg




1.jpg




1.jpg

2.jpg

3.jpg




1.jpg

2.jpg

3.jpg

4.jpg

5.jpg

6.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg






1.jpg

2.jpg

3.jpg




1.jpg




1.jpg




1.jpg
g


2.jpg

3.jpg






1.jpg









Accesories H5


1.png

2.png






1.jpg

2.jpg

3.jpg

4.jpg

5.jpg

6.jpg

7.jpg

8.jpg

9.jpg




1.jpg

2.jpg

3.jpg

4.jpg




1.jpg

2.jpg

3.jpg

4.jpg

5.jpg

6.jpg

7.jpg

8.jpg







Armors Interlude
















1.jpg


1.jpg


1.jpg


1.jpg


1.jpg







1.jpg




1.jpg




1.jpg




1.jpg




Benom-Armor-Interlude.jpg




1.jpg




1.jpg

2.jpg

3.jpg




1.jpg




1.jpg

2.jpg




1.jpg




1.jpg




1.jpg

(File deleted)


1.jpg




1.jpg




1.jpg






1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg

2.jpg




1.jpg




1.jpg




1.jpg

2.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg


1.jpg


1.jpg


1.jpg


1.jpg




1.jpg


1.jpg


1.jpg


1.jpg


1.jpg

2.jpg

3.jpg

4.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.gif




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg

2.jpg

3.jpg

4.jpg

5.jpg

6.jpg

7.jpg


1.jpg




5.jpg





1.jpg

2.jpg

3.jpg

4.jpg



7.jpg

8.jpg

9.jpg

10.jpg




1.jpg







Armors Interlude-H5





1.jpg







Armors CT2.1


1.jpg









Armors CT2.3





1.jpg




1.jpg




1.jpg

2.jpg




1.jpg

2.jpg

3.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg

2.jpg

3.jpg






1.jpg

2.jpg

3.jpg




1.jpg

2.jpg

3.jpg






1.jpg







Armors H5





1.jpg




1.jpg




1.jpg




1.jpg




1632895110019.png

1632895237578.png

1632895341353.png






1.jpg






1.jpg




1.jpg







Skills Interlude





1.gif

2.gif

3.gif

4.gif

5.gif




1.jpg




1.jpg




1.gif




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg




1.jpg







Skills Interlude-H5





1.jpg




Maps Interlude


1.jpg




1.jpg




1.jpg




1.jpg

2.jpg

3.jpg







Mounts Interlude


1.png







Patchs














Patchs Interlude


1.jpg




1.jpg







1.jpg




1.jpg




1.jpg




1.jpg













Interfaces C4


1.jpg




Interfaces Interlude





1.png

2.png

3.png

4.png

5.gif

6.png

7.png

8.png

9.png

10.png

11.png

12.png

13.png

14.png

15.png

16.png

17.png




Interfaces CT2.3





1.jpg




Interfaces H5





1.png




1.jpg

2.jpg

3.jpg

4.jpg

5.jpg

6.jpg

7.jpg

8.jpg

9.jpg

10.jpg

11.jpg

12.jpg

13.jpg

14.jpg

15.jpg

17.jpg

18.jpg

19.jpg

20.jpg

21.jpg

22.jpg

23.jpg

24.jpg

25.jpg

26.jpg

27.jpg

28.jpg

29.jpg

30.jpg

31.jpg

32.jpg




1.png

2.png

3.png

4.png




Interfaces Essence






1653356249293.gif




Interfaces


1.png







Java Mods/Add-Ons


1.jpg




1.png

2.png

3.png

4.png

5.png

6.png

7.png




Java Mods/Add-Ons Interlude


grade-R.png

grade-R95.png

grade-R99.png

grade-R110.png

grade-S80.png

grade-S84.png








1653356249317.gif




Tools





1.png




1.png










+





Updaters





1.jpg

2.jpg







Splashs





1.png

2.png

3.png

4.png

5.png




1.png







Guides





Adding click-to-buff removal to interlude


1.gif



Being able to remove UD, Snipe, Stealth or CoV is great, especially in Interlude where these skills don't have a penalty enchant. Many people are already used to canceling Chant of Revenge before pressing Mirage or healing by removing Celestial Shield.


We will need


server sources
interface.u sources with compiler

Everything you need is freely available.


The server part


The server in our case is ACIS 36x, but any one will do (perhaps PTS). All that is required is to add a command that will remove the specified buff. To keep the example simple, let's get by with a bypass


To remove the buff, more modern clients send a RequestDispel packet , so we'll use the term dispel


First, let's add a dispel method to L2Character. Similar to more recent versions of the game, it will not remove effects that should remain after death (for example, penalties), debuffs, dances and songs:





// L2Character.java

public final void dispelSkillEffect ( int skillId, int skillLevel ) {
// Find skill with matching ID and level
final L2Skill skill = SkillTable. getInstance ( ) . getInfo ( skillId, skillLevel ) ;
// Skill wasn't found and can't be dispelled
if ( skill == null )
{
return ;
}
// Penalty-like or debuff skill effect can't be dispelled
if ( skill.isStayAfterDeath ( ) || skill. isDebuff ( ) )
{
return ;
}
// Dance-like skill effect can't be dispelled
if ( skill. isDance ( ) )
{
return ;
}
// Stop skill effect by ID
_effects. stopSkillEffects ( skill. getId ( ) ) ;
}

Code: Java


Now let's add the bypass handling to the runImpl of the RequestBypassToServer network packet that comes from the client. Since the dispelSkillEffect method requires a skill ID and skill level as arguments, the client must pass them as parameters to the dispel command :


// RequestBypassToServer.java

// Usage: _dispel:<int:skill_id>,<int:skill_level>
// Example: _dispel:313,8
else if ( _command. startsWith ( "_dispel" ) )
{
// Cut out command params
String params = _command. substring ( _command. indexOf ( ":" ) + 1 ) ;
// Split params into tokens
StringTokenizer st = new StringTokenizer ( params, "," ) ;
// Get skill ID from first token
intid = Integer . parseInt ( st.nextToken ( ) ) ; _ // Get skill level from second token int level = Integer . parseInt ( st.nextToken ( ) ) ; _ // Dispel skill effect on current character
activeChar. dispelSkillEffect ( id, level ) ; }


Code: Java


Call example: _dispel:313,8 I


recommend making a command with similar parameters instead of bypass. In addition, then players will be able to write macros to remove the buff .


Client-side





2.png






Unfortunately, there is no easy way to track Alt + Click in the Interlude client, so we use the usual double-click of the left mouse button to remove the buff . The event will be handled by the AbnormalStatusWnd window , which displays the icons of buffs and debuffs

Algorithm:


1. We listen in the window AbnormalStatusWnd double click event (OnLButtonDblClick)
2. Determine the buff that was clicked (via StatusIcon.GetItem)
3. Determine the ID and skill level of this buff (via GetSkillInfo)
4. We send a request to the server (via RequestBypassToServer or ExecuteCommand)
5. We call dispelSkillEffect on the server with the received ID and skill level

The double-click event of the left mouse button OnLButtonDblClick receives only the click coordinates as arguments. At the same time, StatusIcon.GetItem requires specifying the row and column of the cell. Accordingly, it is necessary to determine in which row and which column of our buffs the player clicked

Since we know that the size of the buff cell is 24 pixels, and the size of the handle for which the window is dragged is 12 pixels, it is easy to calculate the row and cell: it is enough to determine the coordinates of the window with buffs, subtract all values and divide the remainder by the cell size. Values will be rounded correctly when cast to int First, let's add the NSTATUSICON_SIZE


constant , which describes the size of the buff cell, to the top of the script. The rest of the developer's constants have already been described:


// AbnormalStatusWnd.uc

class AbnormalStatusWnd extends UIScript ;

const NSTATUSICON_FRAMESIZE = 12 ;
const NSTATUSICON_MAXCOL = 12 ;
const NSTATUSICON_SIZE = 24 ;

// ...


Now, anywhere (for example, immediately after the OnEvent function), add the handling of the double click event:


// AbnormalStatusWnd.uc

function OnLButtonDblClick ( int X , int Y ) {
local Rect windowBounds ;
local int targetRow ;
local int targetCol ;

local StatusIconInfo info ;
local SkillInfo skillInfo ;

// Find window position
windowBounds = Me. GetRect ( ) ;

// Process clicks outside of window frame only
if ( X > ( windowBounds. nX + NSTATUSICON_FRAMESIZE ) ) { //
Calc row and col of targeted icon
targetRow = ( Y - windowBounds. nY ) / NSTATUSICON_SIZE ;
targetCol = ( X - windowBounds. nX - NSTATUSICON_FRAMESIZE ) / NSTATUSICON_SIZE ;

// Store status info of targeted icon
StatusIcon. GetItem ( targetRow , targetCol , info ) ;

// Store actual skill info and make sure it is exists
if ( GetSkillInfo ( info. ClassID , info. Level , skillInfo ) ) {
// Request server to stop skill effect
// Usage: _dispel:<int:skill_id>,<int :skill_level>
// Example: _dispel:313,8
RequestBypassToServer ( "_dispel:" $ string ( skillInfo. SkillID ) $ "," $ string ( skillInfo. SkillLevel ) ) ) ;
}
}
}


Compile interface.u, copy it to the client, run the game


Done!





Flying Damage [H5]


Make window OnScreenMessageExWnd with 28 textboxes on screen center:


1.png






Add it to a new *.uc class with the same name (OnScreenMessageExWnd)


class OnScreenMessageExWnd extends UICommonAPI;


const DAMAGE_MESSAGE_OFFSET = 100;
const MAX_DAMAGE_MESSAGE = 28;


var WindowHandle Me;
var TextBoxHandle DamageText[MAX_DAMAGE_MESSAGE];

function OnLoad()
{
local int i;
Me = GetWindowHandle("OnScreenMessageExWnd");

for (i=0; i<MAX_DAMAGE_MESSAGE; i++)
{
DamageText = GetTextBoxHandle("OnScreenMessageExWnd.DamageText-0-" $ i);
}
}

function OnRegisterEvent()
{
RegisterEvent( EV_SystemMessage );
}

function OnEvent(int Event_ID, string param)
{
switch( Event_ID )
{
case EV_SystemMessage:
HandleSystemMessage(param);
break;
}
}



function HandleSystemMessage (string a_Param)
{
local int SystemMsgIndex, DamageToPlayer, i;

ParseInt(a_Param,"Index",SystemMsgIndex);
switch (SystemMsgIndex)
{
case 2261: //player msg
case 2281: //summoner msg
for(i=0; i<MAX_DAMAGE_MESSAGE; i++)
{
if(DamageText.GetText() == "")
{
DamageText.SetAlpha(255);

ParseInt( a_Param, "Param3", DamageToPlayer);

DamageText.SetText(string(DamageToPlayer));
DamageText.SetAnchor( "OnScreenMessageExWnd", "BottomCenter", "BottomCenter", -200 + Rand(150), Rand(60) );
DamageText.ClearAnchor();
DamageText.Move(0, -1500, 8f);
DamageText.SetAlpha( 0, 2.8f );
Me.KillTimer(i + DAMAGE_MESSAGE_OFFSET + 1);
Me.SetTimer(i + DAMAGE_MESSAGE_OFFSET + 1, 2500);
break;
}
}
break;
}
}


function OnTimer (int TimerID)
{
Me.KillTimer(TimerID);

if(TimerID >= 101 && TimerID <= 200)
DamageText[TimerID-DAMAGE_MESSAGE_OFFSET-1].SetText("");
}


Result:


1.gif






Credits by SHEV, Empatic, NevesOma, deMEV, SGERfjs, Rolo, lot others and unknown
 

Какой то новый уровень - собрать то, что и так есть на форуме и запихать в одну тему.
 
Какой то новый уровень - собрать то, что и так есть на форуме и запихать в одну тему.
yeah I will update with pics but format of the forum don't accept copy link and automatically get source from picture to show, so need do it manually, is a lot work T_T and anyway I can't edit main post :S
 
My friend, this is a great share, it would be great if you could add it to the pictures. The diapers from the linker don't work anymore
 
Назад
Сверху Снизу