If you have problems with install the gameserver and to make it runs, feel free to post your issues here.
Printable View
If you have problems with install the gameserver and to make it runs, feel free to post your issues here.
all problems probably solved sorry for unnecessary post :)
I've problem with compilation about al-commons 1.3. I tried all: debug mode, move jar file into libs folder of game and login ext
Any ideas? I want to compile, not pre-built!
hello
There is a post here
antecedent:
Re: [Release] Full AL 3.9 Source! (100% FREE!)@Csak Egy Ember
I don't know what source you have, bu it seems that all is corupted, also your database.
Download again and install your gameserver and sql tables properly.
If you have other questions, please post in the help Forum.
Does anyone have idea what could be wrong?
where can I get a clean source?
First record source is not good for me.. does not work
Regards F.
Login and Chat server initialized without problems, but when I run the GS get this error.
I appreciate all the help they can provide.Code:Starting Aion Lightning Game Server in PRODUCTION mode.
Error occurred during initialization of VM
java.lang.ExceptionInInitializerError
at java.lang.System.initializeSystemClass(Unknown Source)
Caused by: java.lang.RuntimeException: java.lang.IllegalAccessException: Class j
ava.util.concurrent.atomic.AtomicReferenceFieldUpdater can not access a member o
f class java.io.BufferedInputStream with modifiers "volatile"
at java.util.concurrent.atomic.AtomicReferenceFieldUpdater$AtomicReferen
ceFieldUpdaterImpl.<init>(AtomicReferenceFieldUpdater.java:205)
at java.util.concurrent.atomic.AtomicReferenceFieldUpdater.newUpdater(At
omicReferenceFieldUpdater.java:69)
at java.io.BufferedInputStream.<clinit>(Unknown Source)
at java.lang.System.initializeSystemClass(Unknown Source)
Caused by: java.lang.IllegalAccessException: Class java.util.concurrent.atomic.A
tomicReferenceFieldUpdater can not access a member of class java.io.BufferedInpu
tStream with modifiers "volatile"
at sun.reflect.Reflection.ensureMemberAccess(Unknown Source)
at sun.reflect.misc.ReflectUtil.ensureMemberAccess(Unknown Source)
at java.util.concurrent.atomic.AtomicReferenceFieldUpdater$AtomicReferen
ceFieldUpdaterImpl.<init>(AtomicReferenceFieldUpdater.java:193)
at java.util.concurrent.atomic.AtomicReferenceFieldUpdater.newUpdater(At
omicReferenceFieldUpdater.java:69)
at java.io.BufferedInputStream.<clinit>(Unknown Source)
at java.lang.System.initializeSystemClass(Unknown Source)
Game Server has terminated abnormaly!
SOLVED
okay but I do not think that success will be: (
Could you please share with me what kind of system you?
OS, Java version, mysql version, apache version?
I appreciate your help!
regards CS
I have prepared what you've written.
New codes became the new goods and new mysql database.
All new!
Yet here's the rub, causing server error
Anyone can propose a smart step forward?
What does this error?
What is a packet processor?
Attachment 133940
Now i installed al-commons-1.3.jar as plugin but i still have compilation error
Exmpl. loginserver:
depends on jdk version? i'm using jdk7_21, pre-built runs but i can't compile... and i want to do it, because if i want edit something in the code i can't.Quote:
[ERROR] \Users\Gian\Desktop\trunk\AL-Login\src\com\aionemu\loginserver\LoginServ
er.java:[61,35] error: cannot find symbol
[ERROR] \Users\Gian\Desktop\trunk\AL-Login\src\com\aionemu\loginserver\LoginServ
er.java:[96,2] error: cannot find symbol
[ERROR] \Users\Gian\Desktop\trunk\AL-Login\src\com\aionemu\loginserver\LoginServ
er.java:[96,22] error: cannot find symbol
[ERROR] \Users\Gian\Desktop\trunk\AL-Login\src\com\aionemu\loginserver\LoginServ
er.java:[96,37] error: cannot find symbol
[ERROR] \Users\Gian\Desktop\trunk\AL-Login\src\com\aionemu\loginserver\LoginServ
er.java:[98,3] error: cannot find symbol
[ERROR] \Users\Gian\Desktop\trunk\AL-Login\src\com\aionemu\loginserver\LoginServ
er.java:[98,40] error: cannot find symbol
[ERROR] \Users\Gian\Desktop\trunk\AL-Login\src\com\aionemu\loginserver\LoginServ
er.java:[102,11] error: cannot find symbol
[ERROR] \Users\Gian\Desktop\trunk\AL-Login\src\com\aionemu\loginserver\LoginServ
er.java:[114,13] error: method initSingleton in class CronService cannot be appl
ied to given types;
Help!
I can't seem to get through the login-screen with my login-credentials, it seems to freeze after I give in my login-info?
Login and Game Server are connected to each other
Gameserver in database set to : ID:1 MASK:* PASSWORD:123
Game-accounts manually added to the database via Navicat as I have no idea how to create an account elsewise. Please help with this issue
This not error at all, this just telling you a possible modificated skill in client, maybe working more faster than server, i have this log when using GM Skill or add some skill manually whos not for the class of character im using, so the another things must working good, but this one is not a server error or something, just notification about a ilegal action into the game
Trying in debug mode?...
We need the log into gameserver, with this we can tell you whats exactly wrong... please show us you log and we can analize that ;)
Attachment 133968 i can't fix this error i think is from my client version :/ (i changed bin32 with the one from initial post)
So you are saying that checks defense skills.
And if I use the skills more quickly, the server will automatically respond as error and shuts down server, and then start again?
Possible protective function completely off?
Thanks for your efforts
OS:Microsoft windows7 Starter x86,Processor:AMD athlon 6000+.RAM:Kingstone2+1Gb 800MhZ
1 Gb RAM?
Forget it, quickly.
OS, MySQL + Gameserver, Loginserver, Chatserver need minimum 4 GB RAM
Code:@ECHO off
TITLE Aion Lightning - Game Server Panel
:MENU
CLS
ECHO.
ECHO ^*--------------------------------------------------------------------------^*
ECHO ^| Aion Lightning - Game Server Panel ^|
ECHO ^*--------------------------------------------------------------------------^*
ECHO ^| ^|
ECHO ^| 1 - Development 4 - Quit ^|
ECHO ^| 2 - Production ^|
ECHO ^| 3 - Production X2 ^|
ECHO ^| ^|
ECHO ^*--------------------------------------------------------------------------^*
ECHO.
SET /P OPTION=Type your option and press ENTER:
IF %OPTION% == 1 (
SET MODE=DEVELOPMENT
SET JAVA_OPTS=-Xms1280m -Xmx1280m -XX:MaxHeapSize=1280m -Xdebug -Xrunjdwp:transport=dt_socket,address=8998,server=y,suspend=n -ea
CALL StartGS.bat
)
IF %OPTION% == 2 (
SET MODE=PRODUCTION
SET JAVA_OPTS=-Xms1536m -Xmx1536m -server
CALL StartGS.bat
)
IF %OPTION% == 3 (
SET MODE=PRODUCTION X2
SET JAVA_OPTS=-Xms3072m -Xmx3072m -server
CALL StartGS.bat
)
IF %OPTION% == 4 (
EXIT
)
IF %OPTION% GEQ 5 (
GOTO :MENU
)
Fixed with fix.rar
Already fixed this issue myself, although thank you for the help still! :)
Next question tho xD
I've been trying to figure out so enable Fly everywhere but I just can't seem to figure this one out >.<
Have been editing some files at the game-server but still I am unable to do this.
The files that I have edited:
AL-Game\gameserver\data\static_data\word_maps.xml
AL-Game\gameserver\data\static_data\zones\zones_120010000.xmlQuote:
<map id="120010000" name="Pandaemonium" death_level="150" water_level="16" world_type="ASMODAE" world_size="3072" flags="RECALL GLIDE FLY RIDE FLY_RIDE PVP DUEL_SAME_RACE"/> //(I have added FLY towards the flags)
Now when I use //zone in Pandaemonium on the Vifrost Bridge I actually do get Fly: True back instead of Fly: False, but still receiving the message: You cannot fly in this area.Quote:
<zone mapid="120010000" name="VIFROST_BRIDGE_120010000" area_type="POLYGON" zone_type="SUB" priority="18"> // I have removed all flags from this line aswell
AL-Game\src\com\aionemu\gameserver\world\zone\ZoneInstance.java
Hope that someone can actually help me with this issue as I am kinda breaking my neck on this issue as I'd like to explore everything by flying ^^Quote:
public boolean canFly() { if (template.getZoneTemplate().getFlags() == -1 || World.getInstance().getWorldMap(mapId).hasOverridenOption(ZoneAttributes.GLIDE))
return World.getInstance().getWorldMap(mapId).isPossibleFly();
return (template.getZoneTemplate().getFlags() & ZoneAttributes.GLIDE.getId()) != 0;
}
public boolean canGlide() {
if (template.getZoneTemplate().getFlags() == -1 || World.getInstance().getWorldMap(mapId).hasOverridenOption(ZoneAttributes.GLIDE))
return World.getInstance().getWorldMap(mapId).canGlide();
return (template.getZoneTemplate().getFlags() & ZoneAttributes.GLIDE.getId()) != 0;
}
Now this is where it gets interesting, in this file, I have actually changed that when the zone attribute GLIDE is enabled (since you can actually glide everywhere you should be getting the possibility to fly) but still not result. Is flying actually hard-coded inside the client and not editable in the server files?
Extract this to your client ( same place as your launcher bat file )
Attachment 134094
Then add "g_freefly 1" to your launch bat file. Enjoy.
I have the "OTCBuildclient32bit_woGG" error when i try to //goto oriel. I am able to //goto Pernon though, anyone have the same issue?
I can't create more than 1 account. accounts.autocreate = true, server.maintenance = false. I was able to create account yesterday, but today it says "wrong ip or password" for not existing account.
Use this to edit your system.cfg file.
Attachment 134136
You need to paste the path to your system.cfg in the top area and then click the button.
Remember to make the file read-only when you are done editing it.
i cant edit/fix these problems..need help
~freefly on certain areas only
~when using toll, toll deducts normally. but when exit and reenter gameshop, toll show the original amount before purchase. only shows tho, amount in database is ok..i'm guessing the toll amount update is delayed for like 10 mins or so..
~bad walker ID(makes server laggy, the only solution is to restart server)
~fly bug- when dying while flying and getting ress, u see yourself walking but others see you flying on ground.
thx in advance
edit:ops wrong thread xD
Some one can help me 013-07-07 19:40:39,966 INFO [main] com.aionemu.gameserver.world.zone.ZoneService [ZoneService.java:153] Loaded 5 zone handlers.
2013-07-07 19:40:39,981 INFO [main] com.aionemu.gameserver.world.geo.GeoService [GeoService.java:50] Configured Geo type: NO_GEO
2013-07-07 19:40:43,413 INFO [main] com.aionemu.gameserver.world.World [World.java:94] World: 117 worlds map created.
2013-07-07 19:40:43,429 INFO [InstantPool-1] com.aionemu.gameserver.questEngine.QuestEngine [QuestEngine.java:955] Quest engine load started
2013-07-07 19:41:05,425 INFO [InstantPool-1] com.aionemu.gameserver.questEngine.QuestEngine [QuestEngine.java:978] Loaded 5033 quest handlers.
2013-07-07 19:41:05,441 WARN [InstantPool-1] com.aionemu.commons.utils.concurrent.ExecuteWrapper [ExecuteWrapper.java:67] class com.aionemu.gameserver.GameServer$2 - execution time: 22005msec
2013-07-07 19:41:05,441 INFO [InstantPool-1] com.aionemu.gameserver.instance.InstanceEngine [InstanceEngine.java:52] Instance engine load started
2013-07-07 19:41:09,965 INFO [InstantPool-1] com.aionemu.gameserver.instance.InstanceEngine [InstanceEngine.java:63] Loaded 50 instance handlers.
2013-07-07 19:41:09,965 INFO [InstantPool-1] com.aionemu.gameserver.ai2.AI2Engine [AI2Engine.java:58] AI2 engine load started
2013-07-07 19:41:17,156 INFO [InstantPool-1] com.aionemu.gameserver.ai2.AI2Engine [AI2Engine.java:69] Loaded 308 ai handlers.
2013-07-07 19:41:17,312 WARN [InstantPool-1] com.aionemu.commons.utils.concurrent.ExecuteWrapper [ExecuteWrapper.java:67] class com.aionemu.gameserver.GameServer$2 - execution time: 7360msec
killerzone try this :
"thread.properties" (game/config/main)
change gameserver.thread.basepoolsize = 1 to 2
and change gameserver.thread.runtime = 5000 to 50000
To not have this message in the console:
[ExecuteWrapper.java:67] class com.aionemu.gameserver.GameServer$2 - execution time: 7360msec
And allow the gameserver to start without crash,
From my side i have a VPS 4GB and this work.
which version you are using, I did the download of the full client, I do not know what to do
2013-07-08 17:38:07,466 INFO [InstantPool-2] com.aionemu.gameserver.taskmanager.AbstractPeriodicTaskManager [AbstractPeriodicTaskManager.java:41] MovementNotifyTask: Initialized.
2013-07-08 17:38:07,470 INFO [InstantPool-2] com.aionemu.gameserver.taskmanager.AbstractPeriodicTaskManager [AbstractPeriodicTaskManager.java:41] ZoneUpdateService: Initialized.
I use the EU Client 3.9
Hi :)
I run the game server, and after i have :
http://www.image-heberg.fr/files/137332813282673.png
Hello someone can enchant one set beyond level 10 because it will not until lvl 15
from enchant level 10 try adding 1 manastone then enchant again
hi guys, just wondering if any one having issue with executing game server into sql. I have followed the setup guide according to http://forum.ragezone.com/f588/cooki...on-945068-new/ but is prompting the below message
[Err] 1067 - Invalid default value for 'level_up_date'
[Err] CREATE TABLE `towns` (
`id` int(11) NOT NULL,
`level` int(11) NOT NULL DEFAULT '1',
`points` int(10) NOT NULL DEFAULT '0',
`race` enum('ELYOS','ASMODIANS') NOT NULL,
`level_up_date` timestamp NOT NULL DEFAULT '1970-01-01 07:00:01',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
[Msg] Finished - Unsuccessfully
--------------------------------------------------
Anyone know how to fix this issue? Thank heaps.
I need help,
I run the server and the login server works, Gameserver works, Chat server works.
However when I go to the client, I can log in but when I get to server select screen, ALL servers are down.
Idk why they are saying down but in ipconfig in gameserver I got it set to external IP
In network.properties in gameserver it is listed as external IP
the password is 123 for the game server, and I tried making 4 login servers, 1 being External, 1 being Internal, one being a no-ip, and one being localhost. They all say down and I cannot connect to the gameserver via client.
I used the Pre-built aion 3.9 server it didn't come with AL server just AL Login, AL Game, and AL Chat. I did set the settings of ipconfig.xml,
Ipconfig:
Quote:
<!--
This file is part of aion-unique <aion-unique.org>.
aion-unique is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
aion-unique is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with aion-unique. If not, see <http://www.gnu.org/licenses/>.
File that is responsible for network address mapping.
We can have any number of ip ranges mapped to various network interfaces
Useful for those who run server in local areas with two (or more) networks
For ipconfig's "default" attribute both DNS and ip address is supported.
Example: <ipconfig default="216.239.59.104">
Examples: <ipconfig default="google.com">
-->
<ipconfig default="173.69.XXX.XXX">
<iprange min="10.0.0.0" max="10.255.255.255" address="10.0.0.0"/>
<iprange min="172.16.0.0" max="172.31.255.255" address="172.16.0.0"/>
<iprange min="192.168.0.0" max="192.168.255.255" address="192.168.0.0"/>
<iprange min="127.0.0.1" max="127.0.255.255" address="127.0.0.1"/>
</ipconfig>
Network.properties:
Quote:
#
# This file is part of aion-unique <aion-unique.org>.
#
# aion-unique is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# aion-unique is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with aion-unique. If not, see <http://www.gnu.org/licenses/>.
#
# ----------------------------
# Network Config's:
# ----------------------------
# Port that will be used to listen for client connections
gameserver.network.client.port = 7777
# Host that will be used to listen for client connections
gameserver.network.client.host = *
# Maximum online players on the server
gameserver.network.client.maxplayers = 100
# Address of login server
gameserver.network.login.address = localhost:9014
# Id of this game server
gameserver.network.login.gsid = 1
# Password of this game server
gameserver.network.login.password = 123
# Address of chat server
# Ip and port of chat server should be accessible from
# 1) game server
# 2) all connected clients
gameserver.network.chat.address = localhost:9021
# Password of this game server for chat server
gameserver.network.chat.password = 123
# Number of extra threads dedicated only to read/write network data.
# Value < 1 means that acceptor thread will also handle read & write.
# Value > 0 means there will be x dedicated read/write threads + 1 acceptor.
gameserver.network.nio.threads = 1
# Number of threads (min) that will be used to execute client packets
gameserver.network.packet.processor.threads.min = 4
# Number of threads (max) that will be used to execute client packets
gameserver.network.packet.processor.threads.max = 4
# Threshold used to decide when packet processor thread should be killed
# It have effect only if min threads != max threads
gameserver.network.packet.processor.threshold.kill = 3
# Threshold used to decide when extra packet processor thread should be spawned
# It have effect only if min threads != max threads
gameserver.network.packet.processor.threshold.spawn = 50
# This will enable or disable the messages for unknown packets
gameserver.network.display.unknownpackets = false
# Enable flood protector
gameserver.network.flood.connections = false
# Flood ms in tick
gameserver.network.flood.tick = 1000
# Short period
gameserver.network.flood.short.warn = 10
gameserver.network.flood.short.reject = 20
gameserver.network.flood.short.tick = 10
# Long period
gameserver.network.flood.long.warn = 30
gameserver.network.flood.long.reject = 60
gameserver.network.flood.long.tick = 60
gameserver.properties:
Loginserver Network.properties:Quote:
# ============================
# GS config's:
# ============================
# GS Country Code (cc)
# Examples : NA : 1 / EU : 2 / RUS : 7
gameserver.country.code = 1
# Custom name of the GS (displayed in the connection credits)
# The real server's name (Siel, Telemachus ...) is defined by the GSid
# Default: Aion Lightning
gameserver.name = SkylarProjects Aion
# Max level for players
# Actual : 60 (3.0)
gameserver.players.max.level = 60
# Real GameServer Time Zone ID (to fix Daylight Saving offsets and used by Auto Events)
# See: Joda-Time - Java date and time API - Time Zones
# Before that set -Duser.timezone switch in JAVA_OPTS variable for correction, for example, -Duser.timezone=Etc/GMT-2
# Default: empty (not overridden)
gameserver.timezone =
# Enable connection with CS (ChatServer)
# Default: false
gameserver.chatserver.enable = false
# Enable displaying the server revision in player MOTD
# SHOULD BE DISABLED ON UNIX SERVERS
# Default: false
gameserver.revisiondisplay.enable = false
# ============================
# Character creation configs:
# ============================
# Character creation mode (Numeric value between 0-2)
# 0: (Default) User can only create characters inside 1 faction.
# 1: User can create characters of both factions on the same account.
# 2: (Character reservation mode) User is bound to 1 faction, can't create more than 2 characters and can't enter the game world.
gameserver.character.creation.mode = 1
# Maximum number of characters per account (Numeric value between 0-8)
# Default: 5 (8 for premium)
gameserver.character.limit.count = 8
# ----------------------------
# Ratio's configs:
# ----------------------------
# Factions that are authorized to create characters (Only enter numeric value between 0-3)
# 0: (Default - No limitations) Both factions can be chosen
# 1: (Elyos only) You can only create Elyos characters
# 2: (Asmodians only) You can only create Asmodians characters
# 3: (Nothing) You can't create any new character
gameserver.character.faction.limitation.mode = 0
# Enable ratios limitation (Server will change the previous config's value when ratios
# Default: false
gameserver.ratio.limitation.enable = false
# ----------------------------
# When a faction ratio reach this value, it's not possible to create new characters of this faction
# Default: 60 (= 60% of the players are of the same faction)
gameserver.ratio.min.value = 60
# Minimum character's level to be taken into account in ratio calculation
# Default: 10
gameserver.ratio.min.required.level = 10
# Minimum characters count in each faction before limitating new characters creation (if enabled)
# Default: 50
gameserver.ratio.min.characters_count = 50
# Maximum character count (sum of both factions) after which ration limitation won't be used anymore
# Default: 500 (If there is more than 500 chars, no need to limit creation anymore ...)
gameserver.ratio.high_player_count.disabling = 500
# ============================
# Misc Configs :
# ============================
# Characters re-entry time in seconds
# Default: 20
gameserver.character.reentry.time = 20
Quote:
#
# This file is part of aion-unique <aion-unique.org>.
#
# aion-unique is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# aion-unique is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with aion-unique. If not, see <http://www.gnu.org/licenses/>.
#
# ----------------------------
# Network Config's:
# ----------------------------
# LoginServer will listen for connections on specified port
loginserver.network.client.port = 2106
# LoginServer will bind specified network interface
# * - bind all interfaces
loginserver.network.client.host = *
# How many times player can try to login before he get's banned for bruteforcing
loginserver.network.client.logintrybeforeban = 5
# For what time in minutes player should be banned in case of bruteforcing
loginserver.network.client.bantimeforbruteforcing = 15
# Host that will be used by LS to listen for GS connections
loginserver.network.gameserver.host = *
# Port that will be used by LS to listen for GS connections
loginserver.network.gameserver.port = 9014
# Nuber of additional threads for NIO that will handle only reading
loginserver.network.nio.threads.read = 0
# Nuber of additional threads for NIO that will handle only writing
loginserver.network.nio.threads.write = 0
# Create accounts automatically or not?
loginserver.accounts.autocreate = true
# Set if the server is in maintenance or not / only gm can login
loginserver.server.maintenance = false
# Set gm level for maintenance mode(Default 3)
loginserver.server.maintenance.gmlevel = 3
# Enable\disable flood protector from 1 ip on account login
loginserver.server.floodprotector = true
loginserver.server.bruteforceprotector = true
# Checking gs if it still alive
loginserver.server.pingpong = true
loginserver.server.pingpong.delay = 3000
# flood manager
# legal reconnection time. if faster - ban for loginserver.network.client.bantimeforbruteforcing min
# seconds
network.fastreconnection.time = 5
# Ip's excluded from flood protection
loginserver.excluded.ips =
what you use the chat server? is optional or mandatory?
Hi Guys, I am just wondering how I can remove that Aion-Lightning 2012 copyright announcement when logging into server. I am using a pre-compiled version. Thanks heap guys
i have searching, still no luck in finding them. Is there anyone that have done this in the past?
damn, does that mean that i cant remove it? not unless i know java language?
sami, i still could not find the copyright thing
i have also face another issue now regarding stigma slots. for some reason, the system doesnt auto open all stigma slots eventhough: -
# Not require quest for normal/advanced stigma slots
# Default: 10
gameserver.quest.stigma.slot = 0
any idea ? thanks
You need to read comment
Put value 10 to disable this requirementQuote:
# This file contains settings for premium membership players
# Masks (if no additional comments)
# 10 - disabled
# 3-9 - membership 3-9
# 2 - vip (membership 2)
# 1 - premium (membership 1)
# 0 - all players
#
For your other "problem" look into the file PlayerEnterWorldService.java, Modify it and recompile your Game Server
0 means you need quest (all player), 10 means you dont need quest at all!
thanks sam and dwarf,
i have changed to 10 and restarted the server. but i my stigma is still lock unless i do quest. any idea why?
Thanks again for the help.
sam, regarding PlayerEnterWorldService, i am using pre-built AL, i cant find PlayerEnterWorldService in any of the folder.
for the welcome thing you need the source files:
.\trunk\AL-Game\src\com\aionemu\gameserver\services\player\PlayerEnterWorldService.java
there you can change that - but then you need to compile your gameserver by yourself.Quote:
public final class PlayerEnterWorldService {
private static final Logger log = LoggerFactory.getLogger("GAMECONNECTION_LOG");
private static final String serverName = "Welcome to " + GSConfig.SERVER_NAME + "!";
private static final String serverIntro = "Please remember:";
private static final String serverInfo;
private static final String alInfo;
private static final Set<Integer> pendingEnterWorld = new HashSet<Integer>();
static {
String infoBuffer;
String alBuffer;
infoBuffer = "Announcement : " + GSConfig.SERVER_NAME + " Staff will never ask for your password.\n";
infoBuffer += "Announcement : Advertising for another server is prohibited.";
alBuffer = "=============================\n";
alBuffer += "Developed by Aion-Lightning\nhttp://www.aion-lightning.org\n";
alBuffer += "Copyright 2012\n";
if (GSConfig.SERVER_MOTD_DISPLAYREV) {
alBuffer += "-----------------------------\n";
alBuffer += "Server Revision: " + String.format("%-6s", new Version(GameServer.class).getRevision()) + "\n";
}
alBuffer += "=============================\n";
alBuffer += "Please enjoy your stay on our server.";
serverInfo = infoBuffer;
alInfo = alBuffer;
infoBuffer = null;
alBuffer = null;
}
and the Stigma problem I cant tell unless I see all your files, it could be anything. Or you use one of my 1-Click servers, in there AutoStigma learn work!
you can write me an skype: kajuby
and I can check your files via teamviewer if you wish.
Sure things, thanks for all the help Sam and dwarf
Hi all,
i make some modifications on PlayerEnterWorldService.java file and compile it after but after, what must i do for see modification on live client?
I just take all libs files and replace it on server files , clean cache and restart my server but allways the originals announcement :/
Maybe it have other files i must replace ?
Thank you.
can you show me your PlayerEnterWorldService.java?
Hey,
here is my file :
Maybe i need to replace some other files or just JAR on libs folder?Code:/*
* This file is part of aion-lightning <aion-lightning.com>.
*
* aion-lightning is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* aion-lightning is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with aion-lightning. If not, see <http://www.gnu.org/licenses/>.
*/
package com.aionemu.gameserver.services.player;
import com.aionemu.gameserver.services.SerialKillerService;
import com.aionemu.commons.database.dao.DAOManager;
import com.aionemu.commons.versionning.Version;
import com.aionemu.gameserver.GameServer;
import com.aionemu.gameserver.cache.HTMLCache;
import com.aionemu.gameserver.configs.administration.AdminConfig;
import com.aionemu.gameserver.configs.main.*;
import com.aionemu.gameserver.dao.*;
import com.aionemu.gameserver.model.ChatType;
import com.aionemu.gameserver.model.TaskId;
import com.aionemu.gameserver.model.account.Account;
import com.aionemu.gameserver.model.account.CharacterBanInfo;
import com.aionemu.gameserver.model.account.CharacterPasskey.ConnectType;
import com.aionemu.gameserver.model.account.PlayerAccountData;
import com.aionemu.gameserver.model.gameobjects.HouseObject;
import com.aionemu.gameserver.model.gameobjects.Item;
import com.aionemu.gameserver.model.gameobjects.PersistentState;
import com.aionemu.gameserver.model.gameobjects.player.Player;
import com.aionemu.gameserver.model.gameobjects.player.PlayerCommonData;
import com.aionemu.gameserver.model.gameobjects.player.emotion.Emotion;
import com.aionemu.gameserver.model.gameobjects.player.motion.Motion;
import com.aionemu.gameserver.model.gameobjects.player.title.Title;
import com.aionemu.gameserver.model.gameobjects.state.CreatureSeeState;
import com.aionemu.gameserver.model.gameobjects.state.CreatureVisualState;
import com.aionemu.gameserver.model.house.House;
import com.aionemu.gameserver.model.items.storage.IStorage;
import com.aionemu.gameserver.model.items.storage.Storage;
import com.aionemu.gameserver.model.items.storage.StorageType;
import com.aionemu.gameserver.model.skill.PlayerSkillEntry;
import com.aionemu.gameserver.model.team2.alliance.PlayerAllianceService;
import com.aionemu.gameserver.model.team2.group.PlayerGroupService;
import com.aionemu.gameserver.network.aion.AionConnection;
import com.aionemu.gameserver.network.aion.serverpackets.*;
import com.aionemu.gameserver.questEngine.model.QuestState;
import com.aionemu.gameserver.questEngine.model.QuestStatus;
import com.aionemu.gameserver.services.craft.RelinquishCraftStatus;
import com.aionemu.gameserver.services.PunishmentService.PunishmentType;
import com.aionemu.gameserver.services.*;
import com.aionemu.gameserver.services.abyss.AbyssSkillService;
import com.aionemu.gameserver.services.instance.InstanceService;
import com.aionemu.gameserver.services.mail.MailService;
import com.aionemu.gameserver.services.teleport.TeleportService2;
import com.aionemu.gameserver.services.toypet.PetService;
import com.aionemu.gameserver.services.transfers.PlayerTransferService;
import com.aionemu.gameserver.skillengine.effect.AbnormalState;
import com.aionemu.gameserver.taskmanager.tasks.ExpireTimerTask;
import com.aionemu.gameserver.utils.PacketSendUtility;
import com.aionemu.gameserver.utils.ThreadPoolManager;
import com.aionemu.gameserver.utils.audit.AuditLogger;
import com.aionemu.gameserver.utils.audit.GMService;
import com.aionemu.gameserver.utils.collections.ListSplitter;
import com.aionemu.gameserver.utils.rates.Rates;
import com.aionemu.gameserver.world.World;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import javolution.util.FastList;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* @author ATracer
*/
public final class PlayerEnterWorldService {
private static final Logger log = LoggerFactory.getLogger("GAMECONNECTION_LOG");
private static final String serverName = "Bienvenue sur le serveur " + GSConfig.SERVER_NAME + "!";
private static final String serverIntro = "N'oubliez pas de voter pour le serveur!";
private static final String serverInfo;
private static final String alInfo;
private static final Set<Integer> pendingEnterWorld = new HashSet<Integer>();
static {
String infoBuffer;
String alBuffer;
infoBuffer = "Announcement : Serveur prive Aion 3.9.\n";
infoBuffer += "Announcement : Visitez notre site web pour etre informe des nouveautees ou avancees..";
alBuffer = "=============================\n";
alBuffer += "Serveur Prive Aion 3.9";
alBuffer += "www.aiontemporia.com\n";
if (GSConfig.SERVER_MOTD_DISPLAYREV) {
alBuffer += "-----------------------------\n";
alBuffer += "Server Revision: " + String.format("%-6s", new Version(GameServer.class).getRevision()) + "\n";
}
alBuffer += "=============================\n";
alBuffer += "Nous vous souhaitons de passer un agreable moment sur notre serveur.";
serverInfo = infoBuffer;
alInfo = alBuffer;
infoBuffer = null;
alBuffer = null;
}
/**
* @param objectId
* @param client
*/
public static final void startEnterWorld(final int objectId, final AionConnection client) {
// check if char is banned
PlayerAccountData playerAccData = client.getAccount().getPlayerAccountData(objectId);
Timestamp lastOnline = playerAccData.getPlayerCommonData().getLastOnline();
if (lastOnline != null && client.getAccount().getAccessLevel() < AdminConfig.GM_LEVEL) {
if (System.currentTimeMillis() - lastOnline.getTime() < (GSConfig.CHARACTER_REENTRY_TIME * 1000)) {
client.sendPacket(new SM_ENTER_WORLD_CHECK((byte) 6)); // 20 sec time
return;
}
}
CharacterBanInfo cbi = client.getAccount().getPlayerAccountData(objectId).getCharBanInfo();
if (cbi != null) {
if (cbi.getEnd() > System.currentTimeMillis() / 1000) {
client.close(new SM_QUIT_RESPONSE(), false);
return;
}
else {
DAOManager.getDAO(PlayerPunishmentsDAO.class).unpunishPlayer(objectId, PunishmentType.CHARBAN);
}
}
// passkey check
if (SecurityConfig.PASSKEY_ENABLE && !client.getAccount().getCharacterPasskey().isPass()) {
showPasskey(objectId, client);
}
else {
validateAndEnterWorld(objectId, client);
}
}
/**
* @param objectId
* @param client
*/
private static final void showPasskey(final int objectId, final AionConnection client) {
client.getAccount().getCharacterPasskey().setConnectType(ConnectType.ENTER);
client.getAccount().getCharacterPasskey().setObjectId(objectId);
boolean isExistPasskey = DAOManager.getDAO(PlayerPasskeyDAO.class).existCheckPlayerPasskey(client.getAccount().getId());
if (!isExistPasskey)
client.sendPacket(new SM_CHARACTER_SELECT(0));
else
client.sendPacket(new SM_CHARACTER_SELECT(1));
}
/**
* @param objectId
* @param client
*/
private static final void validateAndEnterWorld(final int objectId, final AionConnection client) {
synchronized (pendingEnterWorld) {
if (pendingEnterWorld.contains(objectId)) {
log.warn("Skipping enter world " + objectId);
return;
}
pendingEnterWorld.add(objectId);
}
int delay = 0;
// double checked enter world
if (World.getInstance().findPlayer(objectId) != null) {
delay = 15000;
log.warn("Postponed enter world " + objectId);
}
ThreadPoolManager.getInstance().schedule(new Runnable() {
@Override
public void run() {
try {
Player player = World.getInstance().findPlayer(objectId);
if (player != null) {
AuditLogger.info(player, "Duplicate player in world");
client.close(new SM_QUIT_RESPONSE(), false);
return;
}
enterWorld(client, objectId);
}
catch (Throwable ex) {
log.error("Error during enter world " + objectId, ex);
}
finally {
synchronized (pendingEnterWorld) {
pendingEnterWorld.remove(objectId);
}
}
}
}, delay);
}
/**
* @param client
* @param objectId
*/
public static final void enterWorld(AionConnection client, int objectId) {
Account account = client.getAccount();
PlayerAccountData playerAccData = client.getAccount().getPlayerAccountData(objectId);
if (playerAccData == null) {
// Somebody wanted to login on character that is not at his account
return;
}
Player player = PlayerService.getPlayer(objectId, account);
if (player != null && client.setActivePlayer(player)) {
player.setClientConnection(client);
log.info("[MAC_AUDIT] Player " + player.getName() + " (account " + account.getName() + ") has entered world with "
+ client.getMacAddress() + " MAC.");
World.getInstance().storeObject(player);
StigmaService.onPlayerLogin(player);
/**
* Energy of Repose must be calculated before sending SM_STATS_INFO
*/
if (playerAccData.getPlayerCommonData().getLastOnline() != null) {
long lastOnline = playerAccData.getPlayerCommonData().getLastOnline().getTime();
PlayerCommonData pcd = player.getCommonData();
long secondsOffline = (System.currentTimeMillis() / 1000) - lastOnline / 1000;
if (pcd.isReadyForSalvationPoints()) {
// 10 mins offline = 0 salvation points.
if (secondsOffline > 10 * 60) {
player.getCommonData().resetSalvationPoints();
}
}
if (pcd.isReadyForReposteEnergy()) {
pcd.updateMaxReposte();
// more than 4 hours offline = start counting Reposte Energy addition.
if (secondsOffline > 4 * 3600) {
double hours = secondsOffline / 3600d;
long maxRespose = player.getCommonData().getMaxReposteEnergy();
if (hours > 24)
hours = 24;
// 24 hours offline = 100% Reposte Energy
long addResposeEnergy = (long) ((hours / 24) * maxRespose);
// Additional Energy of Repose bonus
// TODO: use player house zones
if (player.getHouseOwnerId() / 10000 * 10000 == player.getWorldId()) {
switch (player.getActiveHouse().getHouseType()) {
case STUDIO:
addResposeEnergy *= 1.05f;
break;
default:
addResposeEnergy *= 1.10f;
break;
}
}
pcd.addReposteEnergy(addResposeEnergy > maxRespose ? maxRespose : addResposeEnergy);
}
}
if (((System.currentTimeMillis() / 1000) - lastOnline) > 300)
player.getCommonData().setDp(0);
}
InstanceService.onPlayerLogin(player);
client.sendPacket(new SM_UNK_3_5_1());
if (!player.getSkillList().isSkillPresent(3512)) {
player.getSkillList().addSkill(player, 3512, 129);
}
// Update player skills first!!!
AbyssSkillService.onEnterWorld(player);
// TODO: check the split size
client.sendPacket(new SM_SKILL_LIST(player, player.getSkillList().getBasicSkills()));
for (PlayerSkillEntry stigmaSkill : player.getSkillList().getStigmaSkills())
client.sendPacket(new SM_SKILL_LIST(player, stigmaSkill));
if (player.getSkillCoolDowns() != null)
client.sendPacket(new SM_SKILL_COOLDOWN(player.getSkillCoolDowns()));
if (player.getItemCoolDowns() != null)
client.sendPacket(new SM_ITEM_COOLDOWN(player.getItemCoolDowns()));
FastList<QuestState> questList = FastList.newInstance();
FastList<QuestState> completeQuestList = FastList.newInstance();
for (QuestState qs : player.getQuestStateList().getAllQuestState()) {
if (qs.getStatus() == QuestStatus.NONE && qs.getCompleteCount() == 0)
continue;
if (qs.getStatus() != QuestStatus.COMPLETE && qs.getStatus() != QuestStatus.NONE)
questList.add(qs);
if (qs.getCompleteCount() > 0)
completeQuestList.add(qs);
}
client.sendPacket(new SM_QUEST_COMPLETED_LIST(completeQuestList));
client.sendPacket(new SM_QUEST_LIST(questList));
client.sendPacket(new SM_TITLE_INFO(player.getCommonData().getTitleId()));
client.sendPacket(new SM_MOTION(player.getMotions().getMotions().values()));
client.sendPacket(new SM_ENTER_WORLD_CHECK());
byte[] uiSettings = player.getPlayerSettings().getUiSettings();
byte[] shortcuts = player.getPlayerSettings().getShortcuts();
byte[] houseBuddies = player.getPlayerSettings().getHouseBuddies();
if (uiSettings != null)
client.sendPacket(new SM_UI_SETTINGS(uiSettings, 0));
if (shortcuts != null)
client.sendPacket(new SM_UI_SETTINGS(shortcuts, 1));
if (houseBuddies != null)
client.sendPacket(new SM_UI_SETTINGS(houseBuddies, 2));
sendItemInfos(client, player);
playerLoggedIn(player);
client.sendPacket(new SM_INSTANCE_INFO(player, false, player.getCurrentTeam()));
client.sendPacket(new SM_CHANNEL_INFO(player.getPosition()));
KiskService.getInstance().onLogin(player);
TeleportService2.sendSetBindPoint(player);
// Without player spawn initialization can't access to his mapRegion for chk below
World.getInstance().preSpawn(player);
player.getController().validateLoginZone();
VortexService.getInstance().validateLoginZone(player);
client.sendPacket(new SM_PLAYER_SPAWN(player));
// SM_WEATHER miss on login (but he 'live' in CM_LEVEL_READY.. need invistigate)
client.sendPacket(new SM_GAME_TIME());
SerialKillerService.getInstance().onLogin(player);
if (player.isLegionMember())
LegionService.getInstance().onLogin(player);
client.sendPacket(new SM_TITLE_INFO(player));
client.sendPacket(new SM_EMOTION_LIST((byte) 0, player.getEmotions().getEmotions()));
// SM_INFLUENCE_RATIO, SM_SIEGE_LOCATION_INFO, SM_RIFT_ANNOUNCE (Balaurea), SM_RIFT_ANNOUNCE (Tiamaranta)
SiegeService.getInstance().onPlayerLogin(player);
client.sendPacket(new SM_PRICES());
DisputeLandService.getInstance().onLogin(player);
client.sendPacket(new SM_ABYSS_RANK(player.getAbyssRank()));
// Intro message
PacketSendUtility.sendWhiteMessage(player, serverName);
PacketSendUtility.sendYellowMessage(player, serverIntro);
PacketSendUtility.sendBrightYellowMessage(player, serverInfo);
PacketSendUtility.sendWhiteMessage(player, alInfo);
player.setRates(Rates.getRatesFor(client.getAccount().getMembership()));
if (CustomConfig.PREMIUM_NOTIFY) {
showPremiumAccountInfo(client, account);
}
if (player.isGM()) {
if (AdminConfig.INVULNERABLE_GM_CONNECTION || AdminConfig.INVISIBLE_GM_CONNECTION
|| AdminConfig.ENEMITY_MODE_GM_CONNECTION.equalsIgnoreCase("Neutral")
|| AdminConfig.ENEMITY_MODE_GM_CONNECTION.equalsIgnoreCase("Enemy") || AdminConfig.VISION_GM_CONNECTION
|| AdminConfig.WHISPER_GM_CONNECTION) {
PacketSendUtility.sendMessage(player, "=============================");
if (AdminConfig.INVULNERABLE_GM_CONNECTION) {
player.setInvul(true);
PacketSendUtility.sendMessage(player, ">> Connection in Invulnerable mode <<");
}
if (AdminConfig.INVISIBLE_GM_CONNECTION) {
player.getEffectController().setAbnormal(AbnormalState.HIDE.getId());
player.setVisualState(CreatureVisualState.HIDE20);
PacketSendUtility.broadcastPacket(player, new SM_PLAYER_STATE(player), true);
PacketSendUtility.sendMessage(player, ">> Connection in Invisible mode <<");
}
if (AdminConfig.ENEMITY_MODE_GM_CONNECTION.equalsIgnoreCase("Neutral")) {
player.setAdminNeutral(3);
player.setAdminEnmity(0);
PacketSendUtility.sendMessage(player, ">> Connection in Neutral mode <<");
}
if (AdminConfig.ENEMITY_MODE_GM_CONNECTION.equalsIgnoreCase("Enemy")) {
player.setAdminNeutral(0);
player.setAdminEnmity(3);
PacketSendUtility.sendMessage(player, ">> Connection in Enemy mode <<");
}
if (AdminConfig.VISION_GM_CONNECTION) {
player.setSeeState(CreatureSeeState.SEARCH10);
PacketSendUtility.broadcastPacket(player, new SM_PLAYER_STATE(player), true);
PacketSendUtility.sendMessage(player, ">> Connection in Vision mode <<");
}
if (AdminConfig.WHISPER_GM_CONNECTION) {
player.setUnWispable();
PacketSendUtility.sendMessage(player, ">> Accepting Whisper : OFF <<");
}
PacketSendUtility.sendMessage(player, "=============================");
}
}
// Alliance Packet after SetBindPoint
PlayerAllianceService.onPlayerLogin(player);
if (player.isInPrison())
PunishmentService.updatePrisonStatus(player);
if (player.isNotGatherable())
PunishmentService.updateGatherableStatus(player);
PlayerGroupService.onPlayerLogin(player);
PetService.getInstance().onPlayerLogin(player);
// ----------------------------- Retail sequence -----------------------------
MailService.getInstance().onPlayerLogin(player);
HousingService.getInstance().onPlayerLogin(player);
BrokerService.getInstance().onPlayerLogin(player);
sendMacroList(client, player);
client.sendPacket(new SM_RECIPE_LIST(player.getRecipeList().getRecipeList()));
// ----------------------------- Retail sequence -----------------------------
PetitionService.getInstance().onPlayerLogin(player);
if (AutoGroupConfig.AUTO_GROUP_ENABLE) {
AutoGroupService.getInstance().onPlayerLogin(player);
}
ClassChangeService.showClassChangeDialog(player);
GMService.getInstance().onPlayerLogin(player);
/**
* Trigger restore services on login.
*/
player.getLifeStats().updateCurrentStats();
if (HTMLConfig.ENABLE_HTML_WELCOME)
HTMLService.showHTML(player, HTMLCache.getInstance().getHTML("welcome.xhtml"));
player.getNpcFactions().sendDailyQuest();
if (HTMLConfig.ENABLE_GUIDES)
HTMLService.onPlayerLogin(player);
for (StorageType st : StorageType.values()) {
if (st == StorageType.LEGION_WAREHOUSE)
continue;
IStorage storage = player.getStorage(st.getId());
if (storage != null) {
for (Item item : storage.getItemsWithKinah())
if (item.getExpireTime() > 0)
ExpireTimerTask.getInstance().addTask(item, player);
}
}
for (Item item : player.getEquipment().getEquippedItems())
if (item.getExpireTime() > 0)
ExpireTimerTask.getInstance().addTask(item, player);
player.getEquipment().checkRankLimitItems(); // Remove items after offline changed rank
for (Motion motion : player.getMotions().getMotions().values()) {
if (motion.getExpireTime() != 0) {
ExpireTimerTask.getInstance().addTask(motion, player);
}
}
for (Emotion emotion : player.getEmotions().getEmotions()) {
if (emotion.getExpireTime() != 0) {
ExpireTimerTask.getInstance().addTask(emotion, player);
}
}
for (Title title : player.getTitleList().getTitles()) {
if (title.getExpireTime() != 0) {
ExpireTimerTask.getInstance().addTask(title, player);
}
}
if (player.getHouseRegistry() != null) {
for (HouseObject<?> obj : player.getHouseRegistry().getObjects()) {
if (obj.getPersistentState() == PersistentState.DELETED)
continue;
if (obj.getObjectTemplate().getUseDays() > 0)
ExpireTimerTask.getInstance().addTask(obj, player);
}
}
// scheduler periodic update
player.getController().addTask(
TaskId.PLAYER_UPDATE,
ThreadPoolManager.getInstance().scheduleAtFixedRate(new GeneralUpdateTask(player.getObjectId()),
PeriodicSaveConfig.PLAYER_GENERAL * 1000, PeriodicSaveConfig.PLAYER_GENERAL * 1000));
player.getController().addTask(
TaskId.INVENTORY_UPDATE,
ThreadPoolManager.getInstance().scheduleAtFixedRate(new ItemUpdateTask(player.getObjectId()),
PeriodicSaveConfig.PLAYER_ITEMS * 1000, PeriodicSaveConfig.PLAYER_ITEMS * 1000));
SurveyService.getInstance().showAvailable(player);
if (EventsConfig.ENABLE_EVENT_SERVICE)
EventService.getInstance().onPlayerLogin(player);
if (CraftConfig.DELETE_EXCESS_CRAFT_ENABLE)
RelinquishCraftStatus.removeExcessCraftStatus(player, false);
PlayerTransferService.getInstance().onEnterWorld(player);
player.setPartnerId(DAOManager.getDAO(WeddingDAO.class).loadPartnerId(player));
}
else {
log.info("[DEBUG] enter world" + objectId + ", Player: " + player);
}
}
/**
* @param client
* @param player
*/
// TODO! this method code is really odd [Nemesiss]
private static void sendItemInfos(AionConnection client, Player player) {
// Cubesize limit set in inventory.
int questExpands = player.getQuestExpands();
int npcExpands = player.getNpcExpands();
player.getInventory().setLimit(StorageType.CUBE.getLimit() + (questExpands + npcExpands) * 9);
player.getWarehouse().setLimit(StorageType.REGULAR_WAREHOUSE.getLimit() + player.getWarehouseSize() * 8);
// items
Storage inventory = player.getInventory();
List<Item> allItems = new ArrayList<Item>();
if (inventory.getKinah() == 0) {
inventory.increaseKinah(0); // create an empty object with value 0
}
allItems.add(inventory.getKinahItem()); // always included even with 0 count, and first in the packet !
allItems.addAll(player.getEquipment().getEquippedItems());
allItems.addAll(inventory.getItems());
ListSplitter<Item> splitter = new ListSplitter<Item>(allItems, 10);
while (!splitter.isLast()) {
client.sendPacket(new SM_INVENTORY_INFO(splitter.isFirst(), splitter.getNext(), npcExpands, questExpands, player));
}
client.sendPacket(new SM_INVENTORY_INFO(false, new ArrayList<Item>(0), npcExpands, questExpands, player));
client.sendPacket(new SM_STATS_INFO(player));
client.sendPacket(SM_CUBE_UPDATE.stigmaSlots(player.getCommonData().getAdvencedStigmaSlotSize()));
}
private static void sendMacroList(AionConnection client, Player player) {
client.sendPacket(new SM_MACRO_LIST(player, false));
if (player.getMacroList().getSize() > 7)
client.sendPacket(new SM_MACRO_LIST(player, true));
}
/**
* @param player
*/
private static void playerLoggedIn(Player player) {
log.info("Player logged in: " + player.getName() + " Account: " + player.getClientConnection().getAccount().getName());
player.getCommonData().setOnline(true);
DAOManager.getDAO(PlayerDAO.class).onlinePlayer(player, true);
player.onLoggedIn();
player.setOnlineTime();
}
private static void showPremiumAccountInfo(AionConnection client, Account account) {
byte membership = account.getMembership();
if (membership > 0) {
String accountType = "";
switch (account.getMembership()) {
case 1:
accountType = "premium";
break;
case 2:
accountType = "VIP";
break;
}
client.sendPacket(new SM_MESSAGE(0, null, "Your account is " + accountType, ChatType.GOLDEN_YELLOW));
}
}
}
class GeneralUpdateTask implements Runnable {
private static final Logger log = LoggerFactory.getLogger(GeneralUpdateTask.class);
private final int playerId;
GeneralUpdateTask(int playerId) {
this.playerId = playerId;
}
@Override
public void run() {
Player player = World.getInstance().findPlayer(playerId);
if (player != null) {
try {
DAOManager.getDAO(AbyssRankDAO.class).storeAbyssRank(player);
DAOManager.getDAO(PlayerSkillListDAO.class).storeSkills(player);
DAOManager.getDAO(PlayerQuestListDAO.class).store(player);
DAOManager.getDAO(PlayerDAO.class).storePlayer(player);
for (House house : player.getHouses())
house.save();
}
catch (Exception ex) {
log.error("Exception during periodic saving of player " + player.getName(), ex);
}
}
}
}
class ItemUpdateTask implements Runnable {
private static final Logger log = LoggerFactory.getLogger(ItemUpdateTask.class);
private final int playerId;
ItemUpdateTask(int playerId) {
this.playerId = playerId;
}
@Override
public void run() {
Player player = World.getInstance().findPlayer(playerId);
if (player != null) {
try {
DAOManager.getDAO(InventoryDAO.class).store(player);
DAOManager.getDAO(ItemStoneListDAO.class).save(player);
}
catch (Exception ex) {
log.error("Exception during periodic saving of player items " + player.getName(), ex);
}
}
}
}
Actually i just replace all jar files on libs folder that's all.
Thank you.
this file seems legit - did you check -> .\AIONEmulator\game\data\static_data\HTML\welcome.xhtml
Yes sure :)
This is really strange to see again the lightning message with this PlayerEnterWorldService.java... I try to understand how the server can show Lightning's original message with my modificated file...
all I can think of is delete all build files and check everything again and compile the server to a fresh folder.
I got it working - took me 30 min to figure out ^^
Proof:
http://oi44.tinypic.com/28gw7wp.jpg
1. I did use ant not maven to compile the gameserver
2. After compiling the new gameserver.jar is called .\trunk\AL-Game\build\dist\gameserver\libs\NG-Game.jar
3. Rename this into AL-Game.jar
4. Copy all files into your existing .\AIONEmulator\game\libs Folder
and booom it works!
*edited* you need to copy all lib files *edited*
Hi,
thank for your help but it's not working for me...
Here is my code :
And here is the result of build :Code:static {
String infoBuffer;
String alBuffer;
infoBuffer = "Announcement : Serveur prive Aion 3.9.\n";
infoBuffer += "Announcement : Visitez notre site web pour etre informe des nouveautees ou avancees..";
infoBuffer = "=============================\n";
infoBuffer += "Serveur Prive Aion 3.9";
infoBuffer += "www.aiontemporia.com\n";
if (GSConfig.SERVER_MOTD_DISPLAYREV) {
infoBuffer += "-----------------------------\n";
infoBuffer += "Server Revision: " + String.format("%-6s", new Version(GameServer.class).getRevision()) + "\n";
}
infoBuffer += "=============================\n";
infoBuffer += "Nous vous souhaitons de passer un agreable moment sur notre serveur.";
serverInfo = infoBuffer;
alInfo = alBuffer;
infoBuffer = null;
alBuffer = null;
}
I'll check if i make all right...Code:compile:
[javac] Compiling 2122 source files to F:\Aion emu\Aion Emu\trunk\AL-Game\bu
ild\classes
[javac] warning: [options] bootstrap class path not set in conjunction with
-source 1.6
[javac] F:\Aion emu\Aion Emu\trunk\AL-Game\src\com\aionemu\gameserver\geoEng
ine\GeoWorldLoader.java:37: warning: Cleaner is internal proprietary API and may
be removed in a future release
[javac] import sun.misc.Cleaner;
[javac] ^
[javac] F:\Aion emu\Aion Emu\trunk\AL-Game\src\com\aionemu\gameserver\geoEng
ine\GeoWorldLoader.java:38: warning: DirectBuffer is internal proprietary API an
d may be removed in a future release
[javac] import sun.nio.ch.DirectBuffer;
[javac] ^
[javac] F:\Aion emu\Aion Emu\trunk\AL-Game\src\com\aionemu\gameserver\dataho
lders\DataManager.java:50: warning: OutputFormat is internal proprietary API and
may be removed in a future release
[javac] public static TradeListData TRADE_LIST_DATA;
[javac] ^
[javac] F:\Aion emu\Aion Emu\trunk\AL-Game\src\com\aionemu\gameserver\dataho
lders\DataManager.java:52: warning: XMLSerializer is internal proprietary API an
d may be removed in a future release
[javac] public static PlayerExperienceTable PLAYER_EXPERIENCE_TABLE;
[javac] ^
[javac] F:\Aion emu\Aion Emu\trunk\AL-Game\src\com\aionemu\gameserver\dataho
lders\HouseScriptData.java:111: warning: OutputFormat is internal proprietary AP
I and may be removed in a future release
[javac] OutputFormat format = new OutputFormat(d
ocument);
[javac] ^
[javac] F:\Aion emu\Aion Emu\trunk\AL-Game\src\com\aionemu\gameserver\dataho
lders\HouseScriptData.java:111: warning: OutputFormat is internal proprietary AP
I and may be removed in a future release
[javac] OutputFormat format = new OutputFormat(d
ocument);
[javac] ^
[javac] F:\Aion emu\Aion Emu\trunk\AL-Game\src\com\aionemu\gameserver\dataho
lders\HouseScriptData.java:116: warning: XMLSerializer is internal proprietary A
PI and may be removed in a future release
[javac] XMLSerializer serializer = new XMLSerial
izer(out, format);
[javac] ^
[javac] F:\Aion emu\Aion Emu\trunk\AL-Game\src\com\aionemu\gameserver\dataho
lders\HouseScriptData.java:116: warning: XMLSerializer is internal proprietary A
PI and may be removed in a future release
[javac] XMLSerializer serializer = new XMLSerial
izer(out, format);
[javac] ^
[javac] F:\Aion emu\Aion Emu\trunk\AL-Game\src\com\aionemu\gameserver\geoEng
ine\GeoWorldLoader.java:277: warning: Cleaner is internal proprietary API and ma
y be removed in a future release
[javac] Cleaner cleaner = ((DirectBuffer) toBeDestroyed).cleaner
();
[javac] ^
[javac] F:\Aion emu\Aion Emu\trunk\AL-Game\src\com\aionemu\gameserver\geoEng
ine\GeoWorldLoader.java:277: warning: DirectBuffer is internal proprietary API a
nd may be removed in a future release
[javac] Cleaner cleaner = ((DirectBuffer) toBeDestroyed).cleaner
();
[javac] ^
[javac] F:\Aion emu\Aion Emu\trunk\AL-Game\src\com\aionemu\gameserver\servic
es\player\PlayerEnterWorldService.java:112: error: variable alBuffer might not h
ave been initialized
[javac] alInfo = alBuffer;
[javac] ^
[javac] Note: Some input files use or override a deprecated API.
[javac] Note: Recompile with -Xlint:deprecation for details.
[javac] Note: F:\Aion emu\Aion Emu\trunk\AL-Game\src\com\aionemu\gameserver\
geoEngine\scene\Mesh.java uses unchecked or unsafe operations.
[javac] Note: Recompile with -Xlint:unchecked for details.
[javac] 1 error
[javac] 11 warnings
BUILD FAILED
F:\Aion emu\Aion Emu\trunk\AL-Game\build.xml:45: Compile failed; see the compile
r error output for details.
Total time: 11 seconds
//EDIT :
It's my fault.. i don't see the value : alInfo = alBuffer;
This value must be alInfo = infoBuffer; too..
It's ok now :p Just the message is show 2 times i don't know why , one time in orange colour and just after in Yellow.. Really strange !
But that's working now . Thank you :)
since you got error I did it for you with your text.
You can Download here -> Download Libs 4 kurtspirit
*edit* To fast ^^ - good you got it *edit*
Hello, this is my first post.
I have a server NextGen 3.9 running thanks to this web site but I have some problems. First, the game server don't find the templates for several NPC when staic data are loaded. I have looked for this npcs in the XML files and it is true, does not exist. Here you can see a part of the console while is loading:
Second, the teleporter does not work, I can travel to another zone flying but not using the teleporter. The dialogs are right but when I should go to the city I stay in the same location.Quote:
03:44:47.357 ERROR[main]: - No template for NPC 83114503:44:47.357 ERROR[main]: - No template for NPC 701572
03:44:47.357 ERROR[main]: - No template for NPC 701572
03:44:47.357 ERROR[main]: - No template for NPC 701572
03:44:47.373 INFO [main]: - Spawned 301190000 [1] : 156
03:44:47.373 INFO [main]: - Spawned 301200000 [1] : 0
03:44:47.373 INFO [main]: - Spawned 320060000 [1] : 0
03:44:47.373 INFO [main]: - Spawned 330010010 [1] : 0
03:44:52.489 INFO [main]: - Spawned 400010000 [1] : 10245
03:44:58.651 INFO [main]: - Spawned 510010000 [1] : 0
03:44:58.667 INFO [main]: - Spawned 520010000 [1] : 0
03:44:58.698 INFO [main]: - Spawned 600010000 [1] : 396
03:44:58.714 INFO [main]: - Spawned static doors: 600020000 [1] : 3
03:44:58.885 INFO [main]: - Spawned 600020000 [1] : 4961
03:44:58.901 INFO [main]: - Spawned static doors: 600030000 [1] : 1
03:44:59.119 INFO [main]: - MoveTaskManager: Initialized.
03:44:59.291 INFO [main]: - Spawned 600030000 [1] : 8117
03:44:59.322 INFO [main]: - Spawned 600040000 [1] : 723
03:44:59.338 INFO [main]: - Spawned 600050000 [1] : 0
03:44:59.338 INFO [main]: - Spawned 600060000 [1] : 0
03:44:59.338 INFO [main]: - Spawned 600070000 [1] : 0
03:44:59.338 ERROR[main]: - No template for NPC 831634
03:44:59.338 ERROR[main]: - No template for NPC 831641
03:44:59.353 ERROR[main]: - No template for NPC 831656
03:44:59.353 ERROR[main]: - No template for NPC 831647
Thank you.
thats why NG is moe buggy than AL, I already tried adding missing NPCs but its alot of work, cuz you cant just use AL NPC xml.
With the teleport its easy to fix.
You need to do the Ascention Quest manually, so you get access to the teleporters ^^, just an issue as GM Char ^^
I can't believe that the problem with the teleport was to do a quest ^_^, I am so sorry.
The rest I have probed works rightly; it is really a great work done by all of you.
Thank you very much.
No problem, we are here to help
Crafting and gathering skill point are slowly.How I can increase rate of these value ?
.\AIONEmulator\game\config\main\rates.properties
# Gathering XP Rates
# Crafting XP Rates
Hi Dwarfpicker. I try to change value from 1 to 100.It's work. Thank you for answer.
How we can do it with aion lightning 3.9 1 click server? i don't see the file.
I need help to activate the LFG chat in game, how do?
would someone mind posting the compiled files for me its doing the same as it was for someone a few posts before me
Code:static {
String infoBuffer;
String alBuffer;
infoBuffer = "Announcement : Aion 3.9.\n";
infoBuffer += "Announcement : discussing other aion servers is against the rules..";
infoBuffer = "=============================\n";
infoBuffer += "Aion Sanctum 3.9";
infoBuffer += "www.aionsanctum.com\n";
if (GSConfig.SERVER_MOTD_DISPLAYREV) {
infoBuffer += "-----------------------------\n";
infoBuffer += "Server Revision: " + String.format("%-6s", new Version(GameServer.class).getRevision()) + "\n";
}
infoBuffer += "=============================\n";
infoBuffer += "welcome to our server.";
serverInfo = infoBuffer;
alInfo = alBuffer;
infoBuffer = null;
alBuffer = null;
}
heres what its telling me
nvm i figured it out had a moron momentCode:[javac] Compiling 2122 source files to C:\Users\Mary\Downloads\FULL_AL3.9_SO
URCE\trunk\AL-Game\build\classes
[javac] warning: [options] bootstrap class path not set in conjunction with
-source 1.6
[javac] C:\Users\Mary\Downloads\FULL_AL3.9_SOURCE\trunk\AL-Game\src\com\aion
emu\gameserver\services\player\PlayerEnterWorldService.java:87: error: ';' expec
ted
[javac] private static final String serverName = "Welcome to "Aion Sanct
um"!";
[javac] ^
[javac] C:\Users\Mary\Downloads\FULL_AL3.9_SOURCE\trunk\AL-Game\src\com\aion
emu\gameserver\services\player\PlayerEnterWorldService.java:87: error: ';' expec
ted
[javac] private static final String serverName = "Welcome to "Aion Sanct
um"!";
[javac]
^
[javac] C:\Users\Mary\Downloads\FULL_AL3.9_SOURCE\trunk\AL-Game\src\com\aion
emu\gameserver\services\player\PlayerEnterWorldService.java:97: error: ';' expec
ted
[javac] infoBuffer = "Announcement : "Ion networks" Staff will n
ever ask for your password.\n";
[javac] ^
[javac] C:\Users\Mary\Downloads\FULL_AL3.9_SOURCE\trunk\AL-Game\src\com\aion
emu\gameserver\services\player\PlayerEnterWorldService.java:97: error: ';' expec
ted
[javac] infoBuffer = "Announcement : "Ion networks" Staff will n
ever ask for your password.\n";
[javac] ^
[javac] 4 errors
[javac] 1 warning
Target 'compile' failed with message 'Compile failed; see the compiler error out
put for details.'.
Cannot execute 'jar' - 'compile' failed or was not executed.
Cannot execute 'dist' - 'jar' failed or was not executed.
ok something happened when i login to game the gs crashes so something didnt compile right and im not sure what yet
ok issues fixed but now im faced with trying to get the website visable to people on the net how would i go about setting this up in a portable envirionment?
as thats what this is 1 one click portable server and web service
can anybody provide a link for aion 3.9 client? preferably torrent. thanks in advance.
--got it already--
is there a console to input the gm commands? or just type it in normally? because i already edited a gm account in navicat but ingame i cant make the command work typing normally the commands starting with //
somebody can help me ?
after successfull compiled the source what should i do next ???
my apologize for that dumb question, i'm newbie :laugh:
Hi i know this thread is kinda old, and i'm sorry for reviving it, but i got a problem here and i would appreciate if any of you could help me.
i'm using precompiled version of master dwarfpicker AL3.9 1 click... everything went fine, except for legions.
i try to found a legion and when a hit create, the GS start showing 99999 errors with java connectors, housing things, al_game.jar and a lot stuffs... I'm sorry if i dont show pics, the error is just too long for the print screen lol...
Thanks in advance.
this is the only issue
if someone can tell me what i'm doing that would be awsome.
Quote:
2018-03-02 17:50:58,714 Critical Error - Thread: main terminated abnormaly: java.lang.Error: Can't load database script context: .\data\scripts\system\database.xmljava.lang.Error: Can't load database script context: .\data\scripts\system\database.xml at com.aionemu.commons.database.dao.DAOManager.init(DAOManager.java:74) ~[al-commons-1.0.jar:na] at com.aionemu.gameserver.GameServer.initUtilityServicesAndConfig(Unknown Source) ~[AL-Game.jar:na] at com.aionemu.gameserver.GameServer.main(Unknown Source) ~[AL-Game.jar:na]Caused by: java.io.FileNotFoundException: .\data\scripts\system\database.xml (The system cannot find the file specified) at java.io.FileInputStream.open(Native Method) ~[na:1.7.0_79] at java.io.FileInputStream.<init>(FileInputStream.java:146) ~[na:1.7.0_79] at com.aionemu.commons.scripting.scriptmanager.ScriptManager.load(ScriptManager.java:84) ~[al-commons-1.0.jar:na] at com.aionemu.commons.database.dao.DAOManager.init(DAOManager.java:71) ~[al-commons-1.0.jar:na] ... 2 common frames omitted
read the error carefully. It tells you exactly what is wrong.
Hi Everybody!
I got my Aion Client Up to date. now i downloaded emulator 5.1 to run a private server.
the Problem is, i get to the screen where i have to select the gameserver.
So i log in, I select one, and i get stuck. he Music plays, but nothing happens!
Can somebody help me pls.
No fast Track server ?
How to add ?