A3p ( Alatus 3 project )
This project was started before I had the intention on perusing a career in game development.
A3p is a project started back in 2003. The project was original called “Untold Adventures,”
later changed to “World of Alatus” and now, “A3p.” The core feature of the mod was to bring a new
element of game play into the base game called “Ragnarok Online.” A3p is built using an open source
server emulator for Ragnarok Online.
In the early stages the mod only consisted of scripts and asset modding ( Texture Changes ).
Later through the years the mod became more and more advanced. Going from advanced scripting
into minor source modifications.
Currently the project is being restarted from scratch with a stable design, now that I have a
better understanding in programming and game design.
Modifications ( incomplete )
* Custom Scripts
o Player triggered events ( Kill / Death announcements )
o Factions ( displayed on player names )
o Non-playable character dialogs
* Source
o Racial traits
o Stat dependent spells / abilities
o Dynamic Skills
* Design
o Non-class dependent game play
o Balanced classes
o Races
Sample Scripts ( eAthena )
OnPCKillEvent
This announces when a player of one faction kills the another player of the opposite faction. Also updates the player’s kill count.
- script OnPCKillEvent -1,{
if(#Alliance==1) set $@Killer$, strcharinfo(0)+"[Alliance]";
if(#Legion==1) set $@Killer$, strcharinfo(0)+"[Legion]";
set $@Killer$, strcharinfo(0);
set TotalPlayerKills, TotalPlayerKills+1;
atcommand strcharinfo(0)+ "@fakename ["+BaseLevel+"] "+strcharinfo(0)+" ["+TotalPlayerKills+"]";
if(#Alliance==1) announce "You have killed ["+LegionKilled+"] Legion Players",bc_blue|bc_self;
if(#Legion==1) announce "You have killed ["+AllianceKilled+"] Alliance Players",bc_blue|bc_self;
announce "You have ["+QuestPoint+"] Quest Points",bc_blue|bc_self;
announce "You have ["+VictoryPoints+"] Victory Points",bc_blue|bc_self;
attachrid killedrid;
if(#Alliance==1) set $@Killed$, strcharinfo(0)+"[Alliance]";
if(#Legion==1) set $@Killed$, strcharinfo(0)+"[Legion]";
set $@Killed$, strcharinfo(0);
set TotalDeaths, TotalDeaths+1;
announce ""+$@Killer$+" has killed "+$@Killed$+"!",bc_yellow|bc_map;
atcommand strcharinfo(0)+ "@fakename ["+BaseLevel+"] "+strcharinfo(0)+" ["+TotalPlayerKills+"]";
if ($@Killer$==strcharinfo(0)+"[Legion]") set AllianceKilled, AllianceKilled+1;
if ($@Killer$==strcharinfo(0)+"[Alliance]") set LegionKilled, LegionKilled+1;
if(#Alliance==1) announce "You have killed ["+LegionKilled+"] Legion Players",bc_blue|bc_self;
if(#Legion==1) announce "You have killed ["+AllianceKilled+"] Alliance Players",bc_blue|bc_self;
announce "You have ["+QuestPoint+"] Quest Points",bc_blue|bc_self;
announce "You have ["+VictoryPoints+"] Victory Points",bc_blue|bc_self;
end;
}
PCDieEvent
When a player dies the script will announce to the player themselves with an updated
kills / deaths. If a player is a certain class he or she will revive and be given two summons
of themselves. This will be triggered two seconds after his or her death.
- script PCDieEvent -1,{
atcommand strcharinfo(0)+ "@fakename ["+BaseLevel+"] "+strcharinfo(0)+" ["+TotalPlayerKills+"]";
if(#Alliance==1) announce "You have killed ["+LegionKilled+"] Legion Players",bc_blue|bc_self;
if(#Legion==1) announce "You have killed ["+AllianceKilled+"] Alliance Players",bc_blue|bc_self;
announce "You have ["+QuestPoint+"] Quest Points",bc_blue|bc_self;
announce "You have ["+VictoryPoints+"] Victory Points",bc_blue|bc_self;
if(Vengance==1) goto AvaterFunc;
if(Vengance==2) goto AvaterFunc2;
if(Class==4018) goto AvaterFunc;
if(Class!=4018) goto ReincarnationFunc;
ReincarnationFunc:
callfunc "Reincarnation";
end;
AvaterFunc:
callfunc "AvaterRes";
end;
AvaterFunc2:
callfunc "AvaterRes2";
end;
OnRevive:
atcommand strcharinfo(0)+":@alive";
end;
OnAvatar:
atcommand strcharinfo(0)+":@alive";
atcommand strcharinfo(0)+":@useskill "+"359 1 "+strcharinfo(0);
atcommand strcharinfo(0)+":@slaveclone "+strcharinfo(0);
atcommand strcharinfo(0)+":@slaveclone "+strcharinfo(0);
end;
OnReAvatar:
warp "SavePoint",0,0;
atcommand strcharinfo(0)+":@alive";
end;
}