mako
26-02-09, 03:38 PM
Here is a handy guide on how to compiel custom scripts for those who dont know how
THE SCRIPT IM USING AS AN EXAMPLE IS PORTABLE TELEPORTER FROM
ASPIREDEV
Heres one way to compile scripts even if you have almost 0 C++ knowledge.
First off do a fresh compile of ArcEmu
Now head to arcemudirectory/src/scripts/src
http://i219.photobucket.com/albums/cc140/hellspawn93/svntrunk.jpg
Now take GossipScripts and copy and paste a new folder out of it by right clicking it and copy then right clicking and paste.
You now have this
http://i219.photobucket.com/albums/cc140/hellspawn93/gossipcopy.jpg
Now rename it to anything you want i will be renaming it CustomScript just for the guide youu can name it anything you want.
Now its time to edit the makefile.am Open up MakeFile.am still inside the src/scripts/src folder and it shoudl say the following
SUBDIRS = GossipScripts InstanceScripts ServerStatusPlugin SpellHandlers LUAScripting
SUBDIRS = GossipScripts CustomScript InstanceScripts ServerStatusPlugin SpellHandlers LUAScripting
Change customscript to whatever you named your folder
Now close the makefile and delete
Gossip_Battlemaster.cpp
Gossip_Innkeeper.cpp
GuardGossip.cpp
you should have this
http://i219.photobucket.com/albums/cc140/hellspawn93/lolo.jpg
Now you add your scripts in (the .cpp's)
I am only adding the teleporter so i have this now
http://i219.photobucket.com/albums/cc140/hellspawn93/source.jpg
Now head to CustomScript and open makefile.am in notepad
You should see this on the bottom line
libGossipScripts_la_SOURCES = Gossip_Battlemaster.cpp Gossip_Innkeepers.cpp GuardGossip.cpp Setup.cpp
Change it to
libGossipScripts_la_SOURCES = Script Name.cpp Setup.cpp
Change Script Name to your script name
Ok Now it is time to open up Setup.cpp and this should be in the middle
extern "C" SCRIPT_DECL uint32 _exp_get_script_type()
{
return SCRIPT_TYPE_MISC;
}
extern "C" SCRIPT_DECL void _exp_script_register(ScriptMgr* mgr)
{
SetupInnkeepers(mgr);
SetupBattlemaster(mgr);
SetupGuardGossip(mgr);
}
#ifdef WIN32
delete
SetupInnkeepers(mgr);
SetupBattlemaster(mgr);
SetupGuardGossip(mgr);
LEAVE THIS OPEN
now open your script (.cpp) and search for
class SCRIPT_DECL
For example the Portable Teleporter says
class SCRIPT_DECL Pwarper : public GossipScript
Pwarper is what you need.
Now go back to your Setup.cpp and where the
SetupInnkeepers(mgr);
SetupBattlemaster(mgr);
SetupGuardGossip(mgr);
Was, add
SetupPwarper(mgr);
change Pwarper to whatever your script says
it now looks like this
extern "C" SCRIPT_DECL uint32 _exp_get_script_type()
{
return SCRIPT_TYPE_MISC;
}
extern "C" SCRIPT_DECL void _exp_script_register(ScriptMgr* mgr)
{
SetupPwarper(mgr);
}
#ifdef WIN32
Now close and save Setup.cpp and open up Setup.h
Should say
#ifndef INSTANCE_SCRIPTS_SETUP_H
#define INSTANCE_SCRIPTS_SETUP_H
void SetupInnkeepers(ScriptMgr * mgr);
void SetupGuardGossip(ScriptMgr * mgr);
void SetupBattlemaster(ScriptMgr * mgr);
#endif
Delete
void SetupInnkeepers(ScriptMgr * mgr);
void SetupGuardGossip(ScriptMgr * mgr);
void SetupBattlemaster(ScriptMgr * mgr);
And add
void SetupPwarper(ScriptMgr * mgr);
Pwarper being what you got from your script.
ALMOST DONE!!!!
Head to the Arcemu root folder and look for configure.ac
Inside configure.ac search for ARCEMU_CONFIG_FILES
You should see
AC_CONFIG_FILES([
./Makefile
src/Makefile
src/arcemu-shared/Makefile
src/arcemu-world/Makefile
src/arcemu-logonserver/Makefile
src/arcemu-voicechat/Makefile
src/arcemu-realmserver/Makefile
src/scripts/Makefile
src/scripts/src/Makefile
src/scripts/src/GossipScripts/Makefile
src/scripts/src/InstanceScripts/Makefile
src/scripts/src/ServerStatusPlugin/Makefile
src/scripts/src/SpellHandlers/Makefile
src/scripts/src/LUAScripting/Makefile
extras/Makefile
extras/collision/Makefile
extras/collision/collision_dll/Makefile
])
and your going to want to change it to this
AC_CONFIG_FILES([
./Makefile
src/Makefile
src/arcemu-shared/Makefile
src/arcemu-world/Makefile
src/arcemu-logonserver/Makefile
src/arcemu-voicechat/Makefile
src/arcemu-realmserver/Makefile
src/scripts/Makefile
src/scripts/src/Makefile
src/scripts/src/GossipScripts/Makefile
src/scripts/src/InstanceScripts/Makefile
src/scripts/src/ServerStatusPlugin/Makefile
src/scripts/src/CustomScript/Makefile
src/scripts/src/SpellHandlers/Makefile
src/scripts/src/LUAScripting/Makefile
extras/Makefile
extras/collision/Makefile
extras/collision/collision_dll/Makefile
])
REMEMBER CUSTOMSCRIPT IS YOUR FOLDER NAME.
head to ArcEmu/src/scripts/projects
And look for GossipScripts2003,2005, or 2008 depending on what visual studio you have. I am using 2008
Copy and paste it to make a copy then rename your copy anything you want.
Now you have to open it up with notepad and use Find and Replace you want to change the word GossipScripts to CustomScript then click replace all now save and open with Visual Studio.
Now click the little + sign next to CustomScript and delete all the files in them then go to Add then Existing Item and add your Setup.h and Setup.cpp from your CustomScript folder and also add your script.
the Setup files go in main resources and your script goes in Scripts.
Now just hit F7 and away you go!
This will not work unless you have already compiled Arcemu
--------------------------------
CREDITS
Aldaus for the original guide.
HellSpawn for spending hours re-writing and updating it to look like the recent ArcEmu
THE SCRIPT IM USING AS AN EXAMPLE IS PORTABLE TELEPORTER FROM
ASPIREDEV
Heres one way to compile scripts even if you have almost 0 C++ knowledge.
First off do a fresh compile of ArcEmu
Now head to arcemudirectory/src/scripts/src
http://i219.photobucket.com/albums/cc140/hellspawn93/svntrunk.jpg
Now take GossipScripts and copy and paste a new folder out of it by right clicking it and copy then right clicking and paste.
You now have this
http://i219.photobucket.com/albums/cc140/hellspawn93/gossipcopy.jpg
Now rename it to anything you want i will be renaming it CustomScript just for the guide youu can name it anything you want.
Now its time to edit the makefile.am Open up MakeFile.am still inside the src/scripts/src folder and it shoudl say the following
SUBDIRS = GossipScripts InstanceScripts ServerStatusPlugin SpellHandlers LUAScripting
SUBDIRS = GossipScripts CustomScript InstanceScripts ServerStatusPlugin SpellHandlers LUAScripting
Change customscript to whatever you named your folder
Now close the makefile and delete
Gossip_Battlemaster.cpp
Gossip_Innkeeper.cpp
GuardGossip.cpp
you should have this
http://i219.photobucket.com/albums/cc140/hellspawn93/lolo.jpg
Now you add your scripts in (the .cpp's)
I am only adding the teleporter so i have this now
http://i219.photobucket.com/albums/cc140/hellspawn93/source.jpg
Now head to CustomScript and open makefile.am in notepad
You should see this on the bottom line
libGossipScripts_la_SOURCES = Gossip_Battlemaster.cpp Gossip_Innkeepers.cpp GuardGossip.cpp Setup.cpp
Change it to
libGossipScripts_la_SOURCES = Script Name.cpp Setup.cpp
Change Script Name to your script name
Ok Now it is time to open up Setup.cpp and this should be in the middle
extern "C" SCRIPT_DECL uint32 _exp_get_script_type()
{
return SCRIPT_TYPE_MISC;
}
extern "C" SCRIPT_DECL void _exp_script_register(ScriptMgr* mgr)
{
SetupInnkeepers(mgr);
SetupBattlemaster(mgr);
SetupGuardGossip(mgr);
}
#ifdef WIN32
delete
SetupInnkeepers(mgr);
SetupBattlemaster(mgr);
SetupGuardGossip(mgr);
LEAVE THIS OPEN
now open your script (.cpp) and search for
class SCRIPT_DECL
For example the Portable Teleporter says
class SCRIPT_DECL Pwarper : public GossipScript
Pwarper is what you need.
Now go back to your Setup.cpp and where the
SetupInnkeepers(mgr);
SetupBattlemaster(mgr);
SetupGuardGossip(mgr);
Was, add
SetupPwarper(mgr);
change Pwarper to whatever your script says
it now looks like this
extern "C" SCRIPT_DECL uint32 _exp_get_script_type()
{
return SCRIPT_TYPE_MISC;
}
extern "C" SCRIPT_DECL void _exp_script_register(ScriptMgr* mgr)
{
SetupPwarper(mgr);
}
#ifdef WIN32
Now close and save Setup.cpp and open up Setup.h
Should say
#ifndef INSTANCE_SCRIPTS_SETUP_H
#define INSTANCE_SCRIPTS_SETUP_H
void SetupInnkeepers(ScriptMgr * mgr);
void SetupGuardGossip(ScriptMgr * mgr);
void SetupBattlemaster(ScriptMgr * mgr);
#endif
Delete
void SetupInnkeepers(ScriptMgr * mgr);
void SetupGuardGossip(ScriptMgr * mgr);
void SetupBattlemaster(ScriptMgr * mgr);
And add
void SetupPwarper(ScriptMgr * mgr);
Pwarper being what you got from your script.
ALMOST DONE!!!!
Head to the Arcemu root folder and look for configure.ac
Inside configure.ac search for ARCEMU_CONFIG_FILES
You should see
AC_CONFIG_FILES([
./Makefile
src/Makefile
src/arcemu-shared/Makefile
src/arcemu-world/Makefile
src/arcemu-logonserver/Makefile
src/arcemu-voicechat/Makefile
src/arcemu-realmserver/Makefile
src/scripts/Makefile
src/scripts/src/Makefile
src/scripts/src/GossipScripts/Makefile
src/scripts/src/InstanceScripts/Makefile
src/scripts/src/ServerStatusPlugin/Makefile
src/scripts/src/SpellHandlers/Makefile
src/scripts/src/LUAScripting/Makefile
extras/Makefile
extras/collision/Makefile
extras/collision/collision_dll/Makefile
])
and your going to want to change it to this
AC_CONFIG_FILES([
./Makefile
src/Makefile
src/arcemu-shared/Makefile
src/arcemu-world/Makefile
src/arcemu-logonserver/Makefile
src/arcemu-voicechat/Makefile
src/arcemu-realmserver/Makefile
src/scripts/Makefile
src/scripts/src/Makefile
src/scripts/src/GossipScripts/Makefile
src/scripts/src/InstanceScripts/Makefile
src/scripts/src/ServerStatusPlugin/Makefile
src/scripts/src/CustomScript/Makefile
src/scripts/src/SpellHandlers/Makefile
src/scripts/src/LUAScripting/Makefile
extras/Makefile
extras/collision/Makefile
extras/collision/collision_dll/Makefile
])
REMEMBER CUSTOMSCRIPT IS YOUR FOLDER NAME.
head to ArcEmu/src/scripts/projects
And look for GossipScripts2003,2005, or 2008 depending on what visual studio you have. I am using 2008
Copy and paste it to make a copy then rename your copy anything you want.
Now you have to open it up with notepad and use Find and Replace you want to change the word GossipScripts to CustomScript then click replace all now save and open with Visual Studio.
Now click the little + sign next to CustomScript and delete all the files in them then go to Add then Existing Item and add your Setup.h and Setup.cpp from your CustomScript folder and also add your script.
the Setup files go in main resources and your script goes in Scripts.
Now just hit F7 and away you go!
This will not work unless you have already compiled Arcemu
--------------------------------
CREDITS
Aldaus for the original guide.
HellSpawn for spending hours re-writing and updating it to look like the recent ArcEmu