Jump to content

Recommended Posts

Posted (edited)
L2J aCis Custom Pack
 
Hello to everyone, 
 
The main goal of this project is to provide the most important, useful and necessary custom features in L2J aCis project  that every pvp server rely on, I've chosen L2J aCis because it’s a very clean and maintainable pack and of course I am going to keep it in that way. Every second week I release 15 new custom features from GitHub and of course you are welcome to join in our team. I want to mention here that I am using only the latest free revision of aCis which the current is 360.
 
The members who gives reputation on the first post will get full access for every release, and they don't need to wait for every 15 updates, I will make a private repository for them as well, I will give them my full support for any adoption, if for example they have acisVersion>acisFreeVersion exclusively, there is no problem at all !
 
 
 
NPCs
 
                Scheme Buffer
 
MSn87m.png               0YgHo6.png               Rzvc2C.png
ixABTO.png               TBfbFf.png               7e1W4W.png
 
===============================================================================================
 
                   Gatekeeper                                                    
 
mQZcPo.png               xd3Bei.png
 
===============================================================================================
 
                    Warehouse                                                 Augmenter
 
ukxpvm.png               AIRLv9.png
 
===============================================================================================
 
                 Skill Enchanter                                                Ranking
 
v55Hgo.png               0VaoDe.png
 
===============================================================================================
 
                Class Manager                          PasswordManager designed and developed  by me 
 
1lGEIH.png                7Rot2t.png
 
===============================================================================================
 
Custom Properties
 
CustomStartingLvl = True 
CharLvl = 80
CharTitle = True
CharAddTitle = MyServer.com
EnablePvPColorSystem = True
PvpAmount1 = 500
ColorForAmount1 = 293546
PvpAmount2 = 1000
ColorForAmount2 = 00ff00
PvpAmount3 = 1500
ColorForAmount3 = 0000ff
PvpAmount4 = 2500
ColorForAmount4 = ffff00
PvpAmount5 = 5000
ColorForAmount5 = ff0000
CustomSpawn = True
SpawnX = 149999
SpawnY = 46728
SpawnZ = -3414
OnlineOnLogin = True
WelcomeHtm = True
PMWelcomeShow = True
PMServerName = L2-Sample
PMText1 = Have Fun and Nice Stay on
PMText2 = Vote for us every 24h
NewPlayerEffect = True
EnableNobleCustomItem = True
AnnouncePkKill = True
AnnouncePvPKill = True
EnableHeroCustomItem = True
HeroCustomHours = 1
EnableCustomSubClass= True

 

===============================================================================================

 

Balance

 

Balance System Added + (Anarchy balance system  http://www.maxcheate...ancer-for-acis/)

 

6fomYf.png               6kfOVr.png

 

===============================================================================================

 

Events

 

TVT Event Added

 

===============================================================================================

 

User Commands

 

 .tvt_join        (joins the user in tvt)

 .tvt_leave     (leave the user from tvt)

 .tvtstatus

 

===============================================================================================

 

Admin Commands

 

//balance

//reload balance

 

//tvt_start        (not waiting for the TVT_EVENT_INTERVAL and immediately starting the event, if and only if the state == EventState.INACTIVE)

//tvt_cancel     (immediately  cancel the event, if and only if the state == EventState.PARTICIPATING)

//tvt_add         (adding a simple user in the tvt)

//tvt_remove   (removing a simple user from the tvt)

Edited by joker90
  • Like 4
  • Upvote 4
Posted (edited)

Update 1

# Usage: if True , Then When A New Character is Created , Its Level is Automatically
CustomStartingLvl = True
# Character Level You Want
CharLvl = 80

# Set this option to True to enable custom titles on new chars.
CharTitle = True
CharAddTitle = MyServer.com

# enable pvp color system
EnablePvPColorSystem = True

# Settings For Ammount 1.
PvpAmount1 = 500
ColorForAmount1 = 293546

# Settings For Ammount 2.
PvpAmount2 = 1000
ColorForAmount2 = 00ff00

# Settings For Ammount 3.
PvpAmount3 = 1500
ColorForAmount3 = 0000ff

# Settings For Ammount 4.
PvpAmount4 = 2500
ColorForAmount4 = ffff00

# Settings For Ammount 5.
PvpAmount5 = 5000
ColorForAmount5 = ff0000

# # Set this to True if you want to add a custom spawn location for ALL new characters.
# choose the coordinates you want Example:
# SpawnX = 149999
# SpawnYY = 46728
# SpawnZ = -3414
CustomSpawn = True
SpawnX = 149999
SpawnY = 46728
SpawnZ = -3414

# Shows total players number on login.
OnlineOnLogin = True

# If it is true, it shows a htm on every player's log in.
# It is located in data/html/welcome.htm
# You can edit it from there.
WelcomeHtm = True

# Show Welcome PM on start
PMWelcomeShow = True
PMServerName = L2-Sample
PMText1 = Have Fun and Nice Stay on
PMText2 = Vote for us every 24h

# New players get fireworks the first time they log in
# Default: False
NewPlayerEffect = True
 
===============================================================================================
 

Update 2

# -------------------------------------------------------
# Noble Custom Item Configuration -
# -------------------------------------------------------
# When ActiveChar will use this item will gain Noble Status.
EnableNobleCustomItem = True
# Id Itemn Need's type="EtcItem" name="handler" val="Recipes"

# Announces when a Player PK another Player. Default - false  
AnnouncePkKill = True

# Announces when a Player Pvp another Player. Default - false 
AnnouncePvPKill = True

# -----------------------------------------------------
# Hero Custom Item Configuration -
# -----------------------------------------------------
EnableHeroCustomItem = True
HeroCustomHours = 1

===============================================================================================

 

Update 3

 

Ranking System Added => Author Plugin Devlin
 
===============================================================================================
 
Update 4
 

Update Includes

 

- Custom Augmenter

- Skill Enchanter

- WareHouse

 

Skill Enchanter

<npc id="50013" idTemplate="31124" name="Maria" title="Skill Enchanter">
......
<set name="type" val="L2Trainer" />
.....
<teachTo
classes="0;1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;19;20;21;22;23;24;25;26;27;28;29;30;31;32;33;34;35;36;37;38;39;40;41;42;43;44;45;46;47;48;49;50;51;52;53;54;55;56;57" />
</npc>
Files Add/Edit
xml/npc/50000-50999 => 50013
html/trainer/50013.html
multisell/52300
 
Custom Augmenter
<npc id="50014" idTemplate="32010" name="John" title="Augment">
......
<set name="type" val="L2Merchant" />
....
</npc>
Files Add/Edit
xml/npc/50000-50999 => 50014
html/merchant/50014.html
multisell/52100
multisell/52200
 
WareHouse
<npc id="50015" idTemplate="18284" name="Marios" title="Warehouse Keeper">
.....
<set name="type" val="L2Warehouse" />
....
</npc>
Files Add/Edit
xml/npc/50000-50999 => 50015
html/warehouse/50015.html
 
===============================================================================================
 
Update 5
 
Update Includes  

 

- GATEKEEPER

<npc id="50017" idTemplate="31862" name="Crystal" title="Gatekeeper">
......
<set name="type" val="L2Teleporter" />
.....
</npc>
Files Add/Edit
xml/npc/50000-50999 => 50017
html/teleporter/{50017-1 to 50017-16}
xml/teleports.xml
 
===============================================================================================
 
Update 6
 
Update Includes  
# -----------------------------------------------------
# Availability of all subclasses by any race
# -----------------------------------------------------
EnableCustomSubClass= True

By enabling the property to true you can add whatever subclass you want from whoever master you like without restrictions, elfs can take dark elf subclasses and the opposite.

 

===============================================================================================
 
Update 7
 
Sceme Buffer: modifying the original one
 
+L2BufferCustomInstance class
 
===============================================================================================
 
Update 8
 
update includes =>

 

-Balance System Added + (Anarchy balance system  http://www.maxcheate...ancer-for-acis/)

-Geodata Added

 

Tested and working fine !

 
===============================================================================================
 
Update 9
 
Update Includes

 

Password Manager

  - PasswordManagerInstance

  - xml/npc/{id}

  - html/mods/password/{id}

 

I Introduce you my PasswordManager designed and developed by me, nice and clean

 

and if somone says anything about the early return statement he should go and read this

=> https://softwareengi...an-if-statement

 
===============================================================================================
 
Update 10

 

Update Includes => TVT Event

 

Manipulating this code => http://www.maxcheate...eave-tvtstatus/

 

VoiceCommands

  1.    .tvt_join       (joins the user in tvt)
  2.    .tvt_leave     (leave the user from tvt)
  3.    .tvtstatus

AdminCommands

  1. //tvt_start        (not waiting for the TVT_EVENT_INTERVAL and immediately starting the event, if and only if the state == EventState.INACTIVE)
  2. //tvt_cancel     (immediately  cancel the event, if and only if the state == EventState.PARTICIPATING)
  3. //tvt_add        (adding a simple user in the tvt)
  4. //tvt_remove    (removing a simple user from the tvt)

Bugs Fixed

 

1. Error in Heal.Java fixed  L2MonsterInstance: callSkill() failed on skill id: 4020 net.sf.l2j.gameserver.model.actor.instance.L2MonsterInstance cannot be cast to net.sf.l2j.gameserver.model.actor.instance.L2PcInstance  

2. IF the match is tie the tvt is getting finished and you are getting teleported and not waiting for final kill

3. Another bug i have found from the below code, In L2TvTEventNpcInstance you should replace this

if (!TvTEvent.isPlayerParticipant(playerInstance.getName()))
htmFile = "TvTEventParticipation";
else htmFile = "TvTEventRemoveParticipation";

with this

if (!TvTEvent.isPlayerParticipant(playerInstance.getName()))
htmFile += "TvTEventParticipation.htm";
else htmFile += "TvTEventRemoveParticipation.htm";

Update 10.1

 

Update Includes => new event engine 

 

Share configuration for all the new events

 

1.Dynamic number of teams

2.Different color per team

3.Different coordination per team

4.Different team name per team

 

You can create as many teams you like

 

//NEW seperated by semicolon
TvTEventTeamName = Good;Evil;Some
TvTEventTeamColor = ffff00;ff0000;0000ff
TvTEventTeamCoordinates = 148695,46725,-3414;149999,46728,-3414;149999,46728,-3414

 

To be clear here, these days I am creating a completly new event engine for TvT,CTF,DM using Polymorfism and Abstraction for all the Events. The events will share methods,atributes and fields.

The goal is a good architecture designing  so we can easily create and adopt new events above that. 

 

 

#---------------------------------------------------------------
# Team vs. Team Event Engine                     -
#---------------------------------------------------------------
# enable TvTEvent
TvTEventEnabled = true
# Time Between TvT events (in minutes, 300 = 5 hours)
TvTEventInterval = 2
#  Registration timer (in minutes) from start of event.
TvTEventParticipationTime = 1
#  Event running time, in minutes
TvTEventRunningTime = 2
# TvT Event NPC Details (create a custom npc of type L2TvTEventNpc)
TvTEventParticipationNpcId = 50021
TvTEventParticipationNpcCoordinates = 83358,148879,-3405
# Minimum amount of players allowed in each team
TvTEventMinPlayersInTeams = 1
TvTEventMaxPlayersInTeams = 20
# Level rules
TvTEventMinPlayerLevel = 70
TvTEventMaxPlayerLevel = 80
# Remove buffs effect
TvTEventRemoveBuffs = false
# If Enable Players cant be healed
TvTHealPlayersEnable = false
# If true, gives reward for kills stage without die
# Example: Get 3/7/10 kills without die, and you will be rewarded
# No more than 1 item!
TvTKillsRewardEnable = true
TvTKillsReward = 57,500000000
# Teleport delay Timers (in seconds)
TvTEventRespawnTeleportDelay = 5
TvTEventStartLeaveTeleportDelay = 10
# Back to Town
TvTEventBack = 83013,148595,-3469
#Team Details (name, start and death x,y,z tp point)


//NEW seperated by semicolon
TvTEventTeamName = Good;Evil;Some
TvTEventTeamColor = ffff00;ff0000;0000ff
TvTEventTeamCoordinates = 148695,46725,-3414;149999,46728,-3414;149999,46728,-3414


# Reward for winning team
# itemId,amount;itemId,amount;itemId,amount;...
# no ";" at the start or end
TvTEventReward = 57,100000;5575,1000
# TvTEvent Rules
TvTEventTargetTeamMembersAllowed = true
TvTEventPotionsAllowed = false
TvTEventSummonByItemAllowed = false
# Door id's to close/open on start/end
# ex.: 1;2;3;4;5;6
# no ";" at the start or end
TvTEventDoorsCloseOpenOnStartEnd =
Edited by joker90
  • Like 1
Posted (edited)

Yes but what about Hero CountDown ?

 

Let me be more clear... You have to save somewhere the state of user(The Current Time which is the time when the user use the hero item) now every time he log in you have to calculate the Current Time - Previous Time and check if he exceed  the threshold 

Edited by joker90
Posted (edited)

Update 3

 

 

L2RankingInstance Added => Author Plugin
/**
 * @author Devlin
 * @description This npc is a players Ranking npc.
 *
 */
 
Working perfectly
 
Edited by joker90
Posted

Yes but what about Hero CountDown ?

 

Let me be more clear... You have to save somewhere the state of user(The Current Time which is the time when the user use the hero item) now every time he log in you have to calculate the Current Time - Previous Time and check if he exceed  the threshold 

yes thank you very much for the info..im using memos with these things not l2jfrozen tables

Posted

your SQL file characters_custom_data is trash. It violates any possible rule regarding table relationship and the datatypes you used are wrong.

Since you are using acis avoid creating useless and trashy SQLs and start using the memos as the other guy already mentioned.

 

PS: You are wasting your time

Posted

your SQL file characters_custom_data is trash. It violates any possible rule regarding table relationship and the datatypes you used are wrong.

Since you are using acis avoid creating useless and trashy SQLs and start using the memos as the other guy already mentioned.

 

PS: You are wasting your time

 

wait for the result

Posted

As Reborn and xxdem said, it is useless to create new SQLs. You can learn how memos works. 

Also, your configs are old. I mean spawnX,spawnY,spawnZ, pvpamount1,2,3 and etc. You can make it with one line. Customlvl do not need true or false. Choose 1 for disable or more for custom value.

 

Good job buddy..

Posted

memos for a few boolean values or timestamps are more than enough, there's no reason to grow the SQLs of the database for small data that has no sense to the naked eye. After all, its a matter of personal choice. This is a gameserver, the rules of a perfect SQL database may be important but they should not be overused or make you break your design, thats just the general idea.

 

This guy is making trash-sqls for small custom and amateur code, yet you are suggesting exotic SQL alternatives, that's so wrong... This is not a giant database of millions of data. memos are enough for this

Posted (edited)

Whoever introduced memos on acis is an idiot.  If you want a to store data in sql then you make a table specifically for this model to match your needs and have proper relationships between your tables.

Why to grow the database with useless tables for herotime or any small shit?
Simple, save it on memos and it will be enough for your "mod" like this..
 
I got your point, really.. But here and sure for the most of mods like above, there's no sense to use this.

memos for a few boolean values or timestamps are more than enough.

Edited by 'Baggos'
Posted

First of all I am thinking of making only one table for all my new custom features, the reason that I didn't use the tables and the empty fields that acis database provide is because I want to keep the db clean, whoever don't want to use my custom features he can easily drop the table and BAM it's again the same, I don't want to mess up with aCIs pack, all I want is an extension for custom features...so for example when tryskell release the next free version I can easily adopt it with my customs

Posted (edited)

You see, when sql is trying to get some info from the table it "LOCKS" the table.

This means that nothing else can access it at this given point and time.

However this is ms, that is why it feels seamless.

 

This is not SQL standard for god's sake, this is handled by the underlying database engine and this behavior varies.

 

Essentially SQL doesn't know what "LOCK" is the way you describe it, its the engine's job to implement this behavior and there exist engines without locks.

 

For example I use MyISAM for a table of thousands of key paired values and it does the job exactly as fast as I need, unlike InnoDB whose locking and synchronization mechanism make the same table unable to perform.

Edited by xxdem
Guest
This topic is now closed to further replies.



×
×
  • Create New...