אז הנה מדריך איך לעשות שיהיו 2 עולמות בשרת פרטי!!!
נתחיל!
לכו לתיקייה של הריפאק שלכם ואז MapleStoryServer ושמה תחפשו Worlds.cpp
ובתוך Worlds.cpp תחפשו את זה :
CODE
void Worlds::showWorld(PlayerLogin* player){
if(player->getStatus() != 4){
// hacking
return;
}
World world;
strcpy_s(world.name, 15, "Scania");
world.channels = Channels::getChannels();;
world.id = 0;
LoginPacket::showWorld(player, world);
LoginPacket::worldEnd(player);
}
אחרי שמצאתם את זה תוסיפו את זה מתחת :
CODE
void Worlds::showWorld2(PlayerLogin* player){
if(player->getStatus() != 4){
// hacking
return;
}
World world;
strcpy_s(world.name, 15, "Bera");
world.channels = Channels::getChannels();;
world.id = 9;
LoginPacket::showWorld(player, world);
LoginPacket::worldEnd(player);
}
עכשיו תלכו ל-Worlds.h ותחפשו את זה :
CODE
static void showWorld(PlayerLogin* player);
אחרי שמצאתם את זה תוסיפו את זה מתחת לזה :
CODE
static void showWorld2(PlayerLogin* player);
עכשיו תלכו ל- LoginPacket.h ותחפשו את זה:
CODE
static void showWorld(PlayerLogin* player, World world);
אחרי שמצאתם את זה תוסיפו את זה מתחת:
CODE
static void showWorld2(PlayerLogin* player, World world);
עכשיו תלכו ל-PlayerLogin.cpp ותחפשו את זה :
CODE
case 0x18: Worlds::showWorld(this); break;
ותשימו את זה במקום מה שכתבתי למעלה ^^ :
CODE
case 0x18: Worlds::showWorld(this), Worlds::showWorld2(this); break;
עכשיו אתם תראו מתחת לזה את זה:
CODE
case 0x02: Worlds::showWorld(this); break;
אז עכשיו עוד פעם תחליפו את זה עם זה:
CODE
case 0x02: Worlds::showWorld(this), Worlds::showWorld2(this); break;
חושבים שנגמר!? טעיתם ><
אוקיי אז עכשיו תלכו ל-LoginPacket.cpp ותחפשו את זה:
CODE
void LoginPacket::showWorld(PlayerLogin* player, World world){
Packet packet = Packet();
packet.addHeader(0x05);
packet.addByte(world.id);
packet.addShort(strlen(world.name));
packet.addString(world.name, strlen(world.name));
packet.addByte(0); //Type 2-new
packet.addShort(0);
packet.addShort(100);
packet.addByte(100);
packet.addShort(0);
packet.addByte(world.channels);
for(int i=0; i char channelname[15];
strcpy_s(channelname, 15, world.name);
strcat_s(channelname, 15, "-");
char cid[15]={0};
cid[0] = i+'1';
strcat_s(channelname, 15, cid);
packet.addShort(strlen(channelname));
packet.addString(channelname, strlen(channelname));
packet.addInt(0x0); // Pop
packet.addByte(world.id);
packet.addShort(i);
}
packet.packetSendLogin(player);
}
אחרי שמצאתם את זה תוסיפו את זה מתחת:
CODE
void LoginPacket::showWorld2(PlayerLogin* player, World world){
Packet packet = Packet();
packet.addHeader(0x05);
packet.addByte(world.id);
packet.addShort(strlen(world.name));
packet.addString(world.name, strlen(world.name));
packet.addByte(0); //Type 2-new
packet.addShort(0);
packet.addShort(100);
packet.addByte(100);
packet.addShort(0);
packet.addByte(world.channels);
for(int i=0; i char channelname[15];
strcpy_s(channelname, 15, world.name);
strcat_s(channelname, 15, "-");
char cid[15]={0};
cid[0] = i+'1';
strcat_s(channelname, 15, cid);
packet.addShort(strlen(channelname));
packet.addString(channelname, strlen(channelname));
packet.addInt(0x0); // Pop
packet.addByte(world.id);
packet.addShort(i);
}
packet.packetSendLogin(player);
}
זהו, סיימנו =].
במדריך הזה אני רוצה תגובות והרבה!
תגידו אם עובד לכם או לא ותשאלו שאלות אם נתקלתם בבעיה.
תהנו =]].
נ.ב:
זה לא עובד בכל גרסא. זה עובד רק על טיטן זה לא יעובד לכם ב-Vana וגם בכמה גרסאות מסוימות של טיטן.
באודין גם מן הסתם זה לא יעבוד..