Jump to content

Recommended Posts

Posted

Updated Version 3.2

 

Hello to all.

Here we go for my 2nd share. A laboratory for what you wan ^^

I use it for craft pots, ...

 

Here is the code updated in java for Hi5 server. For use it, you need to creat a folder Laboratory in custom folder of your server.

After that, add the java file in scripts.cfg

 

custom/Laboratory/Laboratory.java

 

For my labo, i use Ralford npc in ivory tower, but u can creat a new one, or use another npc.

Just add this lign in the html file of your npc:

 

<a action="bypass -h npc_%objectId%_Quest Laboratory">Laboratory</a><br1>

 

/*
* Packages: A Java package is a mechanism for organizing Java classes into namespaces similar to the modules of Modula.
* Java packages can be stored in compressed files called JAR files, allowing classes to download faster as a group rather than one at a time.
* Programmers also typically use packages to organize classes belonging to the same category or providing similar functionality.
* 
* This is the package declaration:
*/
package custom.Laboratory;

import com.l2jserver.gameserver.model.actor.L2Npc;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.model.quest.Quest;
import com.l2jserver.gameserver.datatables.MultiSell;


public class Laboratory extends Quest 
{
private static final String qn = "Laboratory";

private static final int RALFORD = 30165;
static int m = 400000000;
private static final int ORACLES_PP = m+5;
private static final int ORACLES_PP_3 = m+19;
private static final int SUMMONERS_2 = m+6;
private static final int SUMMONERS_3 = m+15;
private static final int HEALER_2 = m+1;
private static final int HEALER_3 = m+12;
private static final int SUMMONERS_TEL_2 = m+16;
private static final int SUMMONERS_TEL_3 = m+18;
private static final int SUMMONERS_TEL_HEALER_2_ORC = m+17;

/*
 * Laboratory by Darknessneo
 *      Shirya server
 *         v3.2
 */	public Laboratory(int questId, String name, String descr)
{
	super(questId, name, descr);

	addStartNpc(RALFORD);
	addTalkId(RALFORD);
}

@Override
public String onTalk(L2Npc npc, L2PcInstance player)
{
	if (player.isGM()) return "maingm.htm";
	switch (player.getClassId().getId())
	{
		case 13: // Necromancer
			MultiSell.getInstance().separateAndSend(SUMMONERS_2, player, npc, false);
			break;
		case 14: // Warlock
			MultiSell.getInstance().separateAndSend(SUMMONERS_TEL_2, player, npc, false);
			break;
		case 15: // Cleric
			MultiSell.getInstance().separateAndSend(ORACLES_PP, player, npc, false);
			break;
		case 16: // Bishop
			MultiSell.getInstance().separateAndSend(HEALER_2, player, npc, false);
			break;
		case 17: // Prophet
			MultiSell.getInstance().separateAndSend(ORACLES_PP, player, npc, false);
			break;
		case 28: // Elemental Summoner
			MultiSell.getInstance().separateAndSend(SUMMONERS_TEL_2, player, npc, false);
			break;
		case 29: // Oracle
			MultiSell.getInstance().separateAndSend(ORACLES_PP, player, npc, false);
			break;
		case 30: // Elder
			MultiSell.getInstance().separateAndSend(HEALER_2, player, npc, false);
			break;
		case 41: // Phantom Summoner
			MultiSell.getInstance().separateAndSend(SUMMONERS_TEL_2, player, npc, false);
			break;
		case 42: // Shillien Oracle
			MultiSell.getInstance().separateAndSend(ORACLES_PP, player, npc, false);
			break;
		case 43: // Shillien Elder
			MultiSell.getInstance().separateAndSend(HEALER_2, player, npc, false);
			break;
		case 50: // Shaman
			MultiSell.getInstance().separateAndSend(ORACLES_PP, player, npc, false);
			break;
		case 51: // Overlord
			MultiSell.getInstance().separateAndSend(HEALER_2, player, npc, false);
			break;
		case 52: // Warcryer
			MultiSell.getInstance().separateAndSend(SUMMONERS_TEL_HEALER_2_ORC, player, npc, false);
			break;
		case 95: // Soultaker
			MultiSell.getInstance().separateAndSend(SUMMONERS_3, player, npc, false);
			break;
		case 96: // Arcana Lord
			MultiSell.getInstance().separateAndSend(SUMMONERS_TEL_3, player, npc, false);
			break;
		case 97: // Cardinal
			MultiSell.getInstance().separateAndSend(HEALER_3, player, npc, false);
			break;
		case 98: // Hierophant
			MultiSell.getInstance().separateAndSend(ORACLES_PP, player, npc, false);
			break;
		case 104: // Elemental Master
			MultiSell.getInstance().separateAndSend(SUMMONERS_TEL_3, player, npc, false);
			break;
		case 105: // Eva's Saint
			MultiSell.getInstance().separateAndSend(HEALER_3, player, npc, false);
			break;
		case 111: // Spectral Master
			MultiSell.getInstance().separateAndSend(SUMMONERS_TEL_3, player, npc, false);
			break;
		case 112: // Shillien Saint
			MultiSell.getInstance().separateAndSend(HEALER_3, player, npc, false);
			break;
		case 115: // Dominator
			MultiSell.getInstance().separateAndSend(HEALER_3, player, npc, false);
			break;
		case 116: // Doomcryer
			MultiSell.getInstance().separateAndSend(ORACLES_PP_3, player, npc, false);
			break;
		default:
			return "nolab.htm";
	}
	return super.onTalk(npc, player);
}

public static void main(String[] args)
{
	new Laboratory(-1, qn, "custom");
}
}

 

Wan see how he work?

shot00001s.png

The GM text

shot00002im.png

The labo for potions.

shot00003f.png

The text for healers (not GM)

shot00004wh.png

For all other class

Posted

Just a tip:

You can improve your code by changing

if id == 42 or id == 15 or id == 17 or id == 29 or id == 50 or id == 52 or id == 98 or id == 116 :

to

if id in [15,17,29,42,50,52,98,116] :

Posted

Just a tip:

You can improve your code by changing

if id == 42 or id == 15 or id == 17 or id == 29 or id == 50 or id == 52 or id == 98 or id == 116 :

to

if id in [15,17,29,42,50,52,98,116] :

Thx for your comment. Guide and screens updated, archive too. Thx for your help, i added your pseudo in the credit of the file.

  • 5 months later...
Posted

OMG.. I was searching everywhere, this! Atleast how to make show htm for some class, and finaly, You madet it! Awesome. :) Now i can slee well, and dont think how to make it :))) Realy thx :)

  • 1 year later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


  • Posts

    • Hello everyone, I am looking to purchase a Premium Lineage 2 High Five server pack. My main requirements are: Stability & Quality (Most Important): The pack must be highly stable with no system errors or major bugs. Custom Features: It must include ready-to-use custom features such as a fully functional Community Board, custom NPC Buffers, and Custom Item Sellers (GM Shops), etc. Complete Files: It is absolutely necessary that the full source code (src) and complete Geodata are included. If you are selling a pack that meets these criteria, please send me a PM or leave a reply with the following information: Brief details and key features of the pack Price Test server availability (I would like to test it before buying) Thank you!
    • L2jmobiusDevClon — Classic Interlude p110 Emulator L2jmobiusDevClon is actively developing a Lineage 2 Classic Interlude p110 emulator. Development is done in free time with a strong focus on: • Stability • Authentic Classic mechanics • Clean and optimized architecture The project is based on the L2jMobius source and is continuously evolving and improving. System Requirements: • Java 25 • MariaDB 12.0 • Client p110 Current Revision: 3.0 Development Status: Active Distribution: Free Official Website: https://www.l2jmobiusdevclon.pp.ua Discord Server: https://discord.gg/23a9S8g4Bn Contact: Telegram — @L2jmobiusDevClon Also available via private messages Project Goals: ✔ Improved stability ✔ Maximum Classic accuracy ✔ Core optimization We are currently looking for: • Testers • Server administrators Suggestions, bug reports, and ideas are always welcome. Contact us via: ✔ Discord ✔ Telegram ✔ Private Messages
    • i guess loading only the effects that are needed it will maybe work, like removing from reshade shader folder the ones that are not needed, depends on the pc also i guess, also limithing the game at 30fps can be better maybe
    • Up   SELL CHARACTERS L2 REBORN FRANZ x1     destroyer 74 lvl naked - 120 euro sws 71 lvl naked - 120 euro pp 66 skills - 120 euro se 64 lvl - 90 euro   Characters are legit with mail   i can wtt the characters for adena server franz   sell adena franz 250kk stock     add discord topeseller4081  
  • Topics

×
×
  • Create New...

Important Information

This community uses essential cookies to function properly. Non-essential cookies and third-party services are used only with your consent. Read our Privacy Policy and We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue..