Im having a donator island on my MS, i dont know if you guys need this. But i hope it would help those MS that needs a donator system.
The npcs check if you're a donator
add the following function into your NPCConversationManager.java
Next, open your MapleCharacter.java and add the following underneath "private int gm;"
After that find "ret.gm = rs.getInt("gm") == 0 ? false : true;" and add the following underneath it
Lastly, add this boolean
Save & Compile. . .
For the entrance npc that checks if you're a donator
Remember to execute the following scripts into your MYSQL for it to work
To add donator access to the character execute this in MYSQL
BossRoom NPC that summons monsters of your choice
i allowed donators to have their own bossroom on my MS. I decided to release it as well.
To allow NPC to summon boss, Open up your NPCConversationManager.java and add this
and this is the npc file, add it to any npc that you wanna use.
This npc summons, Papuclock,Pianus,BlackCrow,Anego, Bodyguard A/B and the Boss for 3million mesos, it checks if you have 3million before letting you spawn any boss monsters.
and you can allow donators to use # commands by doing this, and player @ commands dont get logged.
replace what you have in your commandprocessor.java with mine ctrl + f this line "public static boolean processCommand(MapleClient c, String line) {"
allow donators to rebirth without having to look for the Rebirth npc
credits - alcovems developer 'nejevoli' myself
credits - airflow for his boss spawner function
credits - gorgon for his donator commands
credits - localms source
[note] i do not know if this has been release before, i hope it can help someone that needs it. Good day
SOME preview, i used valendale for my donator island [credits Davidkun] thanks for the map
i have unlimited hair changer, skill maxer, glove shop, cape shop, pet shop, morph shop, Donator quests npcs, scroll npcs, 6 training grounds with special exp for donators , everything a donator needs =p the exit and entrance npcs check if you're a donator, if you vip rock in , thats it. you get stuck, since its a event map, you cant click 'trade' to fm , or do anything about it
here are some screenshots:
NPC that sents you into the bossroom, checks if you're a donator.

The evil guy that spawns monster in the bossRoom for a price ^^ ;D
Had nothing to do , so made a stupid jump quest using forest of patience 1 & 2
this is the teleporter that sents you in the starts the jump quest
the npc you speak to after completeing the 1st stage of the quest
ta da ! the end of the jumping quest
rewards are these super cool cute cash items
I'll post more, if any of you guys need my files, just let me know. I have tons of exclusve stuffs that i made/leeched from ragezone, i decided not to continue dev in my server, as all along im the only dev doing everything. Tired Z_Z
[^__^]
The npcs check if you're a donator

add the following function into your NPCConversationManager.java
PHP:
public boolean isDonator() {
return c.getPlayer().isDonator();
}
Next, open your MapleCharacter.java and add the following underneath "private int gm;"
PHP:
private boolean donator;
After that find "ret.gm = rs.getInt("gm") == 0 ? false : true;" and add the following underneath it
PHP:
ret.donator = rs.getInt("donator") == 0 ? false : true;
Lastly, add this boolean
PHP:
public boolean isDonator() {
return donator;
}
Save & Compile. . .
For the entrance npc that checks if you're a donator
PHP:
/*
AlcoveMs Donator Island Entrance NPC
*/
function start() {
status = -1;
action(1, 0, 0);
}
function action(mode, type, selection) {
if (mode == -1) {
cm.dispose();
} else {
if (mode == 0 && status == 0) {
cm.dispose();
return;
}
if (mode == 1)
status++;
else
status--;
if (status == 0) {
if(cm.getChar().isDonator() == false) {
cm.sendOk("Hmph! You are not a donater! Please donate to access me :D ");
cm.dispose();
} else {
if(cm.getChar().isDonator() == true) {
cm.sendSimple("Hello #h # ! I am the donater island NPC warper! Please choose an option. \r\n#L0#Goto donator island#l");
}
}
} else if (status == 1) {
if (selection == 0 ) {
cm.warp(<InsertYourDonatorIslandMapIDhere>, 0);
cm.dispose();
}
}
}
}
Remember to execute the following scripts into your MYSQL for it to work
PHP:
alter table characters add donator tinyint(1) NOT NULL default 0;
To add donator access to the character execute this in MYSQL
PHP:
UPDATE characters SET donator='1' where name='CharacterNameHere';
BossRoom NPC that summons monsters of your choice
i allowed donators to have their own bossroom on my MS. I decided to release it as well.
To allow NPC to summon boss, Open up your NPCConversationManager.java and add this
PHP:
public void spawnMonster(int mobid, int HP, int MP, int level, int EXP, int boss, int undead, int amount, int x, int y) {
MapleMonsterStats newStats = new MapleMonsterStats();
Point spawnPos = new Point(x,y);
if (HP != 0) {
newStats.setHp(HP);
}
if (MP != 0) {
newStats.setMp(MP);
}
if (level != 0) {
newStats.setLevel(level);
}
if (EXP != 0) {
newStats.setExp(EXP);
}
if (boss == 1) {
newStats.setBoss(true);
}
if (undead == 1) {
newStats.setUndead(true);
}
for (int i = 0; i < amount; i++) {
MapleMonster npcmob = MapleLifeFactory.getMonster(mobid);
npcmob.setOverrideStats(newStats);
npcmob.setHp(npcmob.getMaxHp());
npcmob.setMp(npcmob.getMaxMp());
getPlayer().getMap().spawnMonsterOnGroundBelow(npcmob, spawnPos);
}
}
and this is the npc file, add it to any npc that you wanna use.
PHP:
/*
AlcoveMs BossRoom NPC */
var status = -1;
function start() {
status = -1;
action(1, 0, 0);
}
function action(mode, type, selection) {
if (mode == -1) {
cm.sendOk("Are you sure? Scaredy cat :<");
cm.dispose();
} else {
if (mode == 1) {
status++;
} else {
status--;
}
if (status == 0) {
cm.sendSimple("Hello #h # ! I am the boss summoner NPC of donator island! Each boss monster that i summon would cost you 3mil mesos because they have more Exp and lesser HP! Would you like to pay me some mesos to spawn some #e Special Boss Monsters #n for you? \r\n Please choose #b\r\n#L1#Papu clock#l\r\n#L2#Pianus#l\r\n#L3#BlackCrow#l\r\n#L4#Anego#l\r\n#L5#BodyGuard A#l\r\n#L6#Bodyguard B#l\r\n#L7#TheBoss!#l#k");
} else {
if (selection == 1) {
if (cm.getMeso() < 3000000) {
cm.sendOk("You do not have enough mesos.");
cm.dispose();
return;
} else {
cm.gainMeso(-3000000);
cm.spawnMonster(8500001, 20000000, 2000000, 125, 700000, 1, 0, 1, 430, 238);
cm.dispose();
}
} else if (selection == 2) {
if (cm.getMeso() < 3000000) {
cm.sendOk("You do not have enough mesos.");
cm.dispose();
return;
} else {
cm.gainMeso(-3000000);
cm.spawnMonster(8510000, 24000000, 3000000, 110, 1500000, 1, 0, 1, 827, 238);
cm.dispose();
}
} else if (selection == 3) {
if (cm.getMeso() < 3000000) {
cm.sendOk("You do not have enough mesos.");
cm.dispose();
return;
} else {
cm.gainMeso(-3000000);
cm.spawnMonster(9400014, 30000000, 10000000, 115, 2000000, 1, 0, 1, 430, 238);
cm.dispose();
}
} else if (selection == 4) {
if (cm.getMeso() < 3000000) {
cm.sendOk("You do not have enough mesos.");
cm.dispose();
return;
} else {
cm.gainMeso(-3000000);
cm.spawnMonster(9400121, 70000000, 10000, 130, 4500000, 1, 0, 1, 430, 238);
cm.dispose();
}
} else if (selection == 5) {
if (cm.getMeso() < 3000000) {
cm.sendOk("You do not have enough mesos.");
cm.dispose();
return;
} else {
cm.gainMeso(-3000000);
cm.spawnMonster(9400112, 350000000, 5000, 152, 15000000, 1, 0, 1, 430, 238);
cm.dispose();
}
} else if (selection == 6) {
if (cm.getMeso() < 3000000) {
cm.sendOk("You do not have enough mesos.");
cm.dispose();
return;
} else {
cm.gainMeso(-3000000);
cm.spawnMonster(9400113, 450000000, 50000, 160, 15000000, 1, 0, 1, 430, 238);
cm.dispose();
}
} else if (selection == 7) {
if (cm.getMeso() < 3000000) {
cm.sendOk("You do not have enough mesos.");
cm.dispose();
return;
} else {
cm.gainMeso(-3000000);
cm.spawnMonster(9400300, 123000000, 10000, 175, 20000000, 1, 0, 1, 430, 238);
cm.dispose();
}
} else {
cm.dispose();
}
}
}
}
This npc summons, Papuclock,Pianus,BlackCrow,Anego, Bodyguard A/B and the Boss for 3million mesos, it checks if you have 3million before letting you spawn any boss monsters.
and you can allow donators to use # commands by doing this, and player @ commands dont get logged.
replace what you have in your commandprocessor.java with mine ctrl + f this line "public static boolean processCommand(MapleClient c, String line) {"
PHP:
public static boolean processCommand(MapleClient c, String line) {
return processCommandInternal(c, new ServernoticeMapleClientMessageCallback(c), c.getPlayer().isGM(), c.getPlayer().isDonator(), line);
}
/* (non-Javadoc)
* @see net.sf.odinms.client.messages.CommandProcessorMBean#processCommandJMX(int, int, java.lang.String)
*/
public String processCommandJMX(int cserver, int mapid, String command) {
ChannelServer cserv = ChannelServer.getInstance(cserver);
if (cserv == null) {
return "The specified channel Server does not exist in this serverprocess";
}
MapleClient c = new MapleClient(null, null, new MockIOSession());
MapleCharacter chr = MapleCharacter.getDefault(c, 26023);
c.setPlayer(chr);
chr.setName("/---------jmxuser-------------\\"); // (name longer than maxmimum length)
MapleMap map = cserv.getMapFactory().getMap(mapid);
if (map != null) {
chr.setMap(map);
SkillFactory.getSkill(5101004).getEffect(1).applyTo(chr);
map.addPlayer(chr);
}
cserv.addPlayer(chr);
MessageCallback mc = new StringMessageCallback();
try {
processCommandInternal(c, mc, true, true, command);
} finally {
if (map != null) {
map.removePlayer(chr);
}
cserv.removePlayer(chr);
}
return mc.toString();
}
private static boolean processCommandInternal(MapleClient c, MessageCallback mc, boolean isGM, boolean donator, String line) {
MapleCharacter player = c.getPlayer();
ChannelServer cserv = c.getChannelServer();
donator = c.getPlayer().isDonator();
if (line.charAt(0) == '!' && isGM || line.charAt(0) =='@' || line.charAt(0) == '#' && donator) {
if(isGM){
synchronized (gmlog) {
gmlog.add(new Pair<MapleCharacter, String>(player, line));
}
log.warn("{} used a GM command: {}", c.getPlayer().getName(), line);
}
allow donators to rebirth without having to look for the Rebirth npc

PHP:
} else if (splitted[0].equals("#rebirth")) {
int expfix;
if (player.getLevel() >= 200) {
player.setLevel(1);
c.getPlayer().changeJob(MapleJob.getById(0));
expfix = c.getPlayer().getExp();
c.getPlayer().gainExp(-expfix, false, false);
player.updateSingleStat(MapleStat.EXP, player.getExp());
} else {
mc.dropMessage("Rebirth is only available at level 200+");
}
credits - alcovems developer 'nejevoli' myself

credits - airflow for his boss spawner function
credits - gorgon for his donator commands
credits - localms source
[note] i do not know if this has been release before, i hope it can help someone that needs it. Good day

SOME preview, i used valendale for my donator island [credits Davidkun] thanks for the map
i have unlimited hair changer, skill maxer, glove shop, cape shop, pet shop, morph shop, Donator quests npcs, scroll npcs, 6 training grounds with special exp for donators , everything a donator needs =p the exit and entrance npcs check if you're a donator, if you vip rock in , thats it. you get stuck, since its a event map, you cant click 'trade' to fm , or do anything about it

here are some screenshots:
![nejevoli - [Release] AlcoveMs Donator functions/Island npcs/Release - RaGEZONE Forums nejevoli - [Release] AlcoveMs Donator functions/Island npcs/Release - RaGEZONE Forums](http://i280.photobucket.com/albums/kk195/jrkarmen/boss1.jpg)
NPC that sents you into the bossroom, checks if you're a donator.
![nejevoli - [Release] AlcoveMs Donator functions/Island npcs/Release - RaGEZONE Forums nejevoli - [Release] AlcoveMs Donator functions/Island npcs/Release - RaGEZONE Forums](http://i280.photobucket.com/albums/kk195/jrkarmen/boss2.jpg)

![nejevoli - [Release] AlcoveMs Donator functions/Island npcs/Release - RaGEZONE Forums nejevoli - [Release] AlcoveMs Donator functions/Island npcs/Release - RaGEZONE Forums](http://i280.photobucket.com/albums/kk195/jrkarmen/boss3.jpg)
The evil guy that spawns monster in the bossRoom for a price ^^ ;D
Had nothing to do , so made a stupid jump quest using forest of patience 1 & 2

![nejevoli - [Release] AlcoveMs Donator functions/Island npcs/Release - RaGEZONE Forums nejevoli - [Release] AlcoveMs Donator functions/Island npcs/Release - RaGEZONE Forums](http://i280.photobucket.com/albums/kk195/jrkarmen/pacifier1.jpg)
this is the teleporter that sents you in the starts the jump quest
![nejevoli - [Release] AlcoveMs Donator functions/Island npcs/Release - RaGEZONE Forums nejevoli - [Release] AlcoveMs Donator functions/Island npcs/Release - RaGEZONE Forums](http://i280.photobucket.com/albums/kk195/jrkarmen/pacifier2.jpg)
the npc you speak to after completeing the 1st stage of the quest
![nejevoli - [Release] AlcoveMs Donator functions/Island npcs/Release - RaGEZONE Forums nejevoli - [Release] AlcoveMs Donator functions/Island npcs/Release - RaGEZONE Forums](http://i280.photobucket.com/albums/kk195/jrkarmen/pacifier3.jpg)
ta da ! the end of the jumping quest
rewards are these super cool cute cash items
![nejevoli - [Release] AlcoveMs Donator functions/Island npcs/Release - RaGEZONE Forums nejevoli - [Release] AlcoveMs Donator functions/Island npcs/Release - RaGEZONE Forums](http://i280.photobucket.com/albums/kk195/jrkarmen/pacifier.jpg)
![nejevoli - [Release] AlcoveMs Donator functions/Island npcs/Release - RaGEZONE Forums nejevoli - [Release] AlcoveMs Donator functions/Island npcs/Release - RaGEZONE Forums](http://i280.photobucket.com/albums/kk195/jrkarmen/band.jpg)
I'll post more, if any of you guys need my files, just let me know. I have tons of exclusve stuffs that i made/leeched from ragezone, i decided not to continue dev in my server, as all along im the only dev doing everything. Tired Z_Z
[^__^]
Last edited: