• Unfortunately, we have experienced significant hard drive damage that requires urgent maintenance and rebuilding. The forum will be a state of read only until we install our new drives and rebuild all the configurations needed. Please follow our Facebook page for updates, we will be back up shortly! (The forum could go offline at any given time due to the nature of the failed drives whilst awaiting the upgrades.) When you see an Incapsula error, you know we are in the process of migration.

[Development] Source Mu Main 1.03.35 [Season 5.1 - Season 5.2]

Newbie Spellweaver
Joined
Jul 13, 2019
Messages
87
Reaction score
37
fix display damage, hp, mp, sd, ag

nzes41 - [Development] Source Mu Main 1.03.35 [Season 5.1 - Season 5.2] - RaGEZONE Forums
 

Attachments

You must be registered for see attachments list
Newbie Spellweaver
Joined
Jul 13, 2019
Messages
87
Reaction score
37
I damage in Rage Fighter?
Will you be overflowing with ignore, critical and double hit?
Or don't you enable RF at all?

I don't have RF enabled, but I'll try it now
 
Newbie Spellweaver
Joined
Jul 13, 2019
Messages
87
Reaction score
37
I found a bug, can't display item info in inventory, has anyone reviewed it yet

tf1BN2h - [Development] Source Mu Main 1.03.35 [Season 5.1 - Season 5.2] - RaGEZONE Forums

 

Attachments

You must be registered for see attachments list
Junior Spellweaver
Joined
Aug 1, 2011
Messages
126
Reaction score
90
No more inventory invisible items:

Find ( in ZzzInformation.cpp )

Code:
			BYTE *pSeek = Buffer;
			for(int i=0;i<MAX_ITEM;i++)
			{
				BuxConvert(pSeek,Size);
				memcpy(&ItemAttribute[i],pSeek,Size);
				pSeek += Size;
			}

Replace to:

Code:
			BYTE *pSeek = Buffer;
			for(int i=0;i<MAX_ITEM;i++)
			{
				BuxConvert(pSeek,Size);
				memcpy(&ItemAttribute[i],pSeek,Size);
				ItemAttribute[i].Width = MAX(1, ItemAttribute[i].Width);
				ItemAttribute[i].Height = MAX(1, ItemAttribute[i].Height);
				pSeek += Size;
			}

It makes broken items are still clickable in inventory.



No more quest window and talking with npc crashing game:

Find ( in QuestMng.cpp )

Code:
const char* CQuestMng::GetWords(int nWordsIndex)
{
	QuestWordsMap::const_iterator iter = m_mapQuestWords.find(nWordsIndex);
	if (iter == m_mapQuestWords.end())
		return NULL;

	return iter->second.c_str();
}

const char* CQuestMng::GetNPCDlgNPCWords(DWORD dwDlgState)
{
	if (0 == m_nNPCIndex)
		return NULL;

	DWORD dwNPCDlgIndex = (DWORD)m_nNPCIndex * 0x10000 + dwDlgState;

	NPCDialogueMap::const_iterator iter = m_mapNPCDialogue.find(dwNPCDlgIndex);
	if (iter == m_mapNPCDialogue.end())
		return NULL;

	return GetWords(iter->second.m_nNPCWords);
}

const char* CQuestMng::GetNPCDlgAnswer(DWORD dwDlgState, int nAnswer)
{
	if (0 == m_nNPCIndex)
		return NULL;

	_ASSERT(0 <= nAnswer || nAnswer < QM_MAX_ND_ANSWER);

	DWORD dwNPCDlgIndex = (DWORD)m_nNPCIndex * 0x10000 + dwDlgState;

	NPCDialogueMap::const_iterator iter = m_mapNPCDialogue.find(dwNPCDlgIndex);
	if (iter == m_mapNPCDialogue.end())
		return NULL;

	DWORD nNowAnswer = iter->second.m_anAnswer[nAnswer*2];
	if (0 == nNowAnswer)
		return NULL;

	return GetWords(nNowAnswer);
}

Replace with:

Code:
const char* CQuestMng::GetWords(int nWordsIndex)
{
	QuestWordsMap::const_iterator iter = m_mapQuestWords.find(nWordsIndex);
	if (iter == m_mapQuestWords.end())
		return "";

	return iter->second.c_str();
}

const char* CQuestMng::GetNPCDlgNPCWords(DWORD dwDlgState)
{
	if (0 == m_nNPCIndex)
		return "";

	DWORD dwNPCDlgIndex = (DWORD)m_nNPCIndex * 0x10000 + dwDlgState;

	NPCDialogueMap::const_iterator iter = m_mapNPCDialogue.find(dwNPCDlgIndex);
	if (iter == m_mapNPCDialogue.end())
		return "";

	return GetWords(iter->second.m_nNPCWords);
}

const char* CQuestMng::GetNPCDlgAnswer(DWORD dwDlgState, int nAnswer)
{
	if (0 == m_nNPCIndex)
		return "";

	_ASSERT(0 <= nAnswer || nAnswer < QM_MAX_ND_ANSWER);

	DWORD dwNPCDlgIndex = (DWORD)m_nNPCIndex * 0x10000 + dwDlgState;

	NPCDialogueMap::const_iterator iter = m_mapNPCDialogue.find(dwNPCDlgIndex);
	if (iter == m_mapNPCDialogue.end())
		return "";

	DWORD nNowAnswer = iter->second.m_anAnswer[nAnswer*2];
	if (0 == nNowAnswer)
		return "";

	return GetWords(nNowAnswer);
}

+ FIX (in NewUINPCDialogue.cpp)

Code:
		if (NULL == pszAnswer)
			break;

Replace with:

Code:
		if (NULL == pszAnswer || "" == pszAnswer)
			break;



Fix NPC Names (in ZzzInformation.cpp):

Code:
char*   getMonsterName ( int type )
{
    for ( int i=0; i<MAX_MONSTER; ++i )
    {
        if ( MonsterScript[i].Type==type )
        {
            return MonsterScript[i].Name;
        }
    }
    return "Unknown";
}

+ Fix in ZzzCharacter.cpp in Setting_Monster

Code:
	if(c != NULL)
	{

Replace with:

Code:
	if(c != NULL)
	{
		strcpy(c->ID, ::getMonsterName(Type));

Find Data/Local/Eng/Npcname(eng).txt and rename it to Npcname_eng.txt

U can use file formatted by me:

Code:
0	1	"Bull Fighter"
1	1	"Hound"
2	1	"Budge Dragon"
3	1	"Spider"
4	1	"Elite Bull Fighter"
5	1	"Hell Hound"
6	1	"LIch"
7	1	"Giant"
8	1	"Poison Bull Fighter"
9	1	"Thunder Lich"
10	1	"Dark Knight"
11	1	"Ghost"
12	1	"Larva"
13	1	"Hell Spider"
14	1	"Skeleton"
15	1	"Skeleton Archer"
16	1	"Chief Skeleton Warrior"
17	1	"Cyclops"
18	1	"Gorgon"
19	1	"Yeti"
20	1	"Elite Yeti"
21	1	"Assassin"
22	1	"Ice Monster"
23	1	"Hommerd"
24	1	"Worm"
25	1	"Ice Queen"
26	1	"Goblin"
27	1	"Chain Scorpion"
28	1	"Beetle Monster"
29	1	"Hunter"
30	1	"Forest Monster"
31	1	"Agon"
32	1	"Stone Golem"
33	1	"Elite Goblin"
34	1	"Cursed Wizard"
35	1	"Death Gorgon"
36	1	"Shadow"
37	1	"Devil"
38	1	"Balrog"
39	1	"Poison Shadow"
40	1	"Death Knight"
41	1	"Death Cow"
43	1	"Golden Budge Dragon"
44	1	"Dragon"
45	1	"Bahamut"
46	1	"Vepar"
47	1	"Valkyrie"
48	1	"Lizard King"
49	1	"Hydra"
50	1	"Sea Worm"
51	1	"Great Bahamut"
52	1	"Silver Valkyrie"
53	1	"Golden Titan"
54	1	"Golden Soldier"
55	1	"Death King"
56	1	"Death Bone"
57	1	"Iron Wheel"
58	1	"Tantalos"
59	1	"Zaikan"
60	1	"Bloody wolf"
61	1	"Beam Knight"
62	1	"Mutant"
63	1	"Death Beam Knight"
64	1	"Ogre archer"
65	1	"Elite Ogre"
66	1	"Cursed king"
67	1	"Metal Balrog"
68	1	"Molt"
69	1	"Alquamos"
70	1	"Queen Rainier"
71	1	"Mega Crust"
72	1	"Phantom Knight"
73	1	"Drakan"
74	1	"Alpha Crust"
75	1	"Great Drakan"
76	1	"Phoenix Darkness shield"
77	1	"Phoenix of Darkness"
78	1	"Golden Goblin"
79	1	"Golden Derkon"
80	1	"Golden Lizard King"
81	1	"Golden Vepar"
82	1	"Golden Tantalos"
83	1	"Golden Wheel"
84	1	"Chief Skeleton Warrior"
85	1	"Chief Skeleton Archer"
86	1	"Dark Skull Soldier"
87	1	"Giant Ogre"
88	1	"Red Skeleton Knight"
89	1	"Magic Skeleton"
90	1	"Chief Skeleton Warrior"
91	1	"Chief Skeleton Archer"
92	1	"Dark Skull Soldier"
93	1	"Giant Ogre"
94	1	"Red Skeleton Knight"
95	1	"Magic Skeleton"
96	1	"Chief Skeleton Warrior"
97	1	"Chief Skeleton Archer"
98	1	"Dark Skull Soldier"
99	1	"Giant Ogre"
100	1	"Lance"
101	1	"Iron Stick"
102	1	"Fire"
103	1	"Meteorite"
104	1	"Trap"
105	1	"Canon Trap"
106	1	"Laser Trap"
111	1	"Red Skeleton Knight"
112	1	"Magic Skeleton"
113	1	"Chief Skeleton Warrior"
114	1	"Chief Skeleton Archer"
115	1	"Dark Skull Soldier"
116	1	"Giant Ogre"
117	1	"Red Skeleton Knight"
118	1	"Magic Skeleton"
119	1	"Chief Skeleton Warrior"
120	1	"Chief Skeleton Archer"
121	1	"Dark Skull Soldier"
122	1	"Giant Ogre"
123	1	"Red Skeleton Knight"
124	1	"Magic Skeleton"
125	1	"Chief Skeleton Warrior"
126	1	"Chief Skeleton Archer"
127	1	"Dark Skull Soldier"
128	1	"Giant Ogre"
129	1	"Red Skeleton Knight"
130	1	"Magic Skeleton"
131	1	"Castle Gate"
132	1	"Statue of Saint"
133	1	"Statue of Saint"
134	1	"Statue of Saint"
135	1	"White wizard"
136	1	"Destructive ogre soldier"
137	1	"Destructive ogre archer"
138	1	"Chief Skeleton Warrior"
139	1	"Chief Skeleton Archer"
140	1	"Dark Skull Soldier"
141	1	"Giant Ogre"
142	1	"Red Skeleton Knight"
143	1	"Magic Skeleton"
144	1	"Death Angel"
145	1	"Death Centurion"
146	1	"Blood Soldier"
147	1	"Aegis"
148	1	"Rogue Centurion"
149	1	"Necron"
150	1	"Bali"
151	1	"Soldier"
152	1	"Magic stone of %s "
153	1	"Magic stone of %s "
154	1	"Magic stone of %s "
155	1	"Magic stone of %s "
156	1	"Magic stone of %s "
157	1	"Magic stone of %s "
158	1	"Magic stone of %s "
160	1	"Schriker"
161	1	"Illusion of Kundun"
162	1	"Chaos Castle 1"
163	1	"Chaos Castle 2"
164	1	"Chaos Castle 3"
165	1	"Chaos Castle 4"
166	1	"Chaos Castle 5"
167	1	"Chaos Castle 6"
168	1	"Chaos Castle 7"
169	1	"Chaos Castle 8"
170	1	"Chaos Castle 9"
171	1	"Chaos Castle 10"
172	1	"Chaos Castle 11"
173	1	"Chaos Castle 12"
174	1	"Death Angel"
175	1	"Death Centurion"
176	1	"Blood Soldier"
177	1	"Aegis"
178	1	"Rogue Centurion"
179	1	"Necron"
180	1	"Schriker"
181	1	"Illusion of Kundun"
182	1	"Death Angel"
183	1	"Death Centurion"
184	1	"Blood Soldier"
185	1	"Aegis"
186	1	"Rogue Centurion"
187	1	"Necron"
188	1	"Schriker"
189	1	"Illusion of Kundun"
190	1	"Death Angel"
191	1	"Death Centurion"
192	1	"Blood Soldier"
193	1	"Aegis"
194	1	"Rogue Centurion"
195	1	"Necron"
196	1	"Schriker"
197	1	"Illusion of Kundun"
200	1	"Soccer Ball"
204	1	"Wolf Status"
205	1	"Wolf Altar1"
206	1	"Wolf Altar2"
207	1	"Wolf Altar3"
208	1	"Wolf Altar4"
209	1	"Wolf Altar5"
215	1	"Shield"
216	1	"Crown"
217	1	"Crown Switch2"
218	1	"Crown Switch1"
219	1	"Castle Gate Switch"
220	1	"Gatekeeper"
221	1	"Slingshot attack"
222	1	"Slingshot defense"
223	1	"Senior"
224	1	"Guardsman"
226	1	"Trainer"
229	1	"Marlon"
230	1	"Wandering Merchant Alex"
231	1	"Thompson Kenel"
232	1	"Archangel"
233	1	"Messenger of Archangel"
234	1	"Pet Trainer"
235	1	"Sebina the Priest"
236	1	"Golden Archer"
237	1	"Charon"
238	1	"Chaos Goblin"
239	1	"Arena Guard"
240	1	"Safety Guardian"
241	1	"Royal Guard Captain Lorence"
242	1	"Elf Lala"
243	1	"Eo the Craftsman"
244	1	"Caren the Barmaid"
245	1	"Wizard Izabel"
246	1	"Weapons Merchant Zienna"
247	1	"Guard"
248	1	"Wandering Merchant Martin"
249	1	"Guard"
250	1	"Wandering Merchant"
251	1	"Hanzo the Blacksmith"
252	1	""
253	1	"Potion Girl Amy"
254	1	"Pasi the Mage"
255	1	"Lumen the Barmaid"
256	1	"Lahap"
257	1	"Shadow Phantom Soldier"
258	1	"Luke the Helper"
259	1	"Oracle Layla"
260	1	"Death Angel"
261	1	"Death Centurion"
262	1	"Blood Soldier"
263	1	"Aegis"
264	1	"Rogue Centurion"
265	1	"Necron"
266	1	"Schriker"
267	1	"Illusion of Kundun"
268	1	"Death Angel"
269	1	"Death Centurion"
270	1	"Blood Soldier"
271	1	"Aegis"
272	1	"Rogue Centurion"
273	1	"Necron"
274	1	"Schriker"
275	1	"Kundun"
277	1	"Castle Gate"
278	1	"Life Stone"
283	1	"Guardian Statue"
285	1	"Guardian"
286	1	"Archer"
287	1	"Spearman"
288	1	"Canon Tower"
290	1	"Lizard Warrior"
291	1	"Fire Golem"
292	1	"Queen Bee"
293	1	"Poison Golem"
294	1	"Ax Warrior"
295	1	"Erohim"
296	1	"Monster7"
300	1	"Hero Mutant"
301	1	"Omega Wing"
302	1	"Axl Hero"
303	1	"Gigas Golem"
304	1	"Witch Queen"
305	1	"Blue Golem"
306	1	"Death Rider"
307	1	"Forest Orc"
308	1	"Death Tree"
309	1	"Hell Maine"
310	1	"Hammer Scout"
311	1	"Lance Scout"
312	1	"Bow Scout"
313	1	"Werewolf"
314	1	"Scout(Hero)"
315	1	"Werewolf(Hero)"
316	1	"Balram"
317	1	"Soram"
331	1	"Aegis"
332	1	"Rogue Centurion"
333	1	"Blood Soldier"
334	1	"Death Angel"
335	1	"Necron"
336	1	"Death Centurion"
337	1	"Schriker"
338	1	"Illusion of Kundun"
340	1	"Dark Elf"
341	1	"Soram"
344	1	"Balram"
345	1	"Death spirit"
348	1	"Tanker"
349	1	"Balgass"
350	1	"Berserker"
351	1	"Splinter Wolf"
352	1	"Iron Rider"
353	1	"Satyros"
354	1	"Blade Hunter"
355	1	"Kentauros"
356	1	"Gigantis"
357	1	"Genocider"
358	1	"Persona"
359	1	"Twin Tale"
360	1	"Dreadfear"
361	1	"Nightmare"
362	1	"Maya Hand"
363	1	"Maya Hand"
364	1	"Maya"
365	1	"Pouch of Blessing"
367	1	"Gateway Machine"
368	1	"Elpis"
369	1	"Osbourne"
370	1	"Jerridon"
371	1	"Leo the Helper"
372	1	"Elite Skull Soldier"
373	1	"Jack Olantern"
374	1	"Santa"
375	1	"Chaos Card Master"
376	1	"Pamela the Supplier"
377	1	"Angela the Supplier"
378	1	"GameMaster"
379	1	"Natasha the Firecracker Merchant"
380	1	"Stone Statue"
381	1	"MU Allies General"
382	1	"Illusion Sorcerer Elder"
383	1	"Alliance Sacred Item Storage"
384	1	"Illusion Castle Sacred Item Storage"
385	1	"Mirage"
386	1	"Illusion Sorcerer Spirit"
387	1	"Illusion Sorcerer Spirit"
388	1	"Illusion Sorcerer Spirit"
389	1	"Illusion Sorcerer Spirit"
390	1	"Illusion Sorcerer Spirit"
391	1	"Illusion Sorcerer Spirit"
392	1	"Illusion Sorcerer Spirit"
393	1	"Illusion Sorcerer Spirit"
394	1	"Illusion Sorcerer Spirit"
395	1	"Illusion Sorcerer Spirit"
396	1	"Illusion Sorcerer Spirit"
397	1	"Illusion Sorcerer Spirit"
398	1	"Illusion Sorcerer Spirit"
399	1	"Illusion Sorcerer Spirit"
400	1	"Illusion Sorcerer Spirit"
401	1	"Illusion Sorcerer Spirit"
402	1	"Illusion Sorcerer Spirit"
403	1	"Illusion Sorcerer Spirit"
404	1	"MU Allies"
405	1	"Illusion Sorcerer"
406	1	"Apostle Devin"
407	1	"Werewolf Quarel"
408	1	"Gatekeeper"
409	1	"Balram (Trainee Soldier)"
410	1	"Death Spirit (Trainee Soldier)"
411	1	"Soram (Trainee Soldier)"
412	1	"Dark Elf (Trainee Soldier)"
413	1	"Lunar Rabbit"
414	1	"Helper Ellen"
415	1	"Silvia"
416	1	"Rhea"
417	1	"Marce"
418	1	"Strange Rabbit"
419	1	"Hideous Rabbit"
420	1	"Werewolf"
421	1	"Polluted Butterfly"
422	1	"Cursed Lich"
423	1	"Totem Golem"
424	1	"Grizzly"
425	1	"Captain Grizzly"
426	1	"Chaos Castle13"
427	1	"Chaos Castle14"
428	1	"Chief Skeleton Warrior"
429	1	"Chief Skeleton Archer"
430	1	"Dark Skull Soldier"
431	1	"Giant Ogre"
432	1	"Red Skeleton Knight"
433	1	"Magic Skeleton"
434	1	"Gigantis"
435	1	"Berserker"
436	1	"Balram (Trainee Soldier)"
437	1	"Soram (Trainee Soldier)"
438	1	"Persona"
439	1	"Dreadfear"
440	1	"Dark Elf"
441	1	"Sapi-Unus"
442	1	"Sapi-Duo"
443	1	"Sapi-Tres"
444	1	"Shadow Pawn"
445	1	"Shadow Knight"
446	1	"Shadow Look"
447	1	"Thunder Napin"
448	1	"Ghost Napin"
449	1	"Blaze Napin"	 
450	1	"Cherry Blossom Spirit"
451	1	"Cherry Blossom Tree"
452	1	"Seed Master"
453	1	"Seed Researcher"
454	1	"Ice Walker"
455	1	"Giant Mammoth"
456	1	"Ice Giant"
457	1	"Coolutin"
458	1	"Iron Knight"
459	1	"Selupan"
460	1	"Spider Eggs"
461	1	"Spider Eggs"
462	1	"Spider Eggs"
463	1	"Fire Flame Ghost"
465	1	"Santa Claus"
466	1	"Cursed Goblin"
467	1	"Snowman"
468	1	"Dasher"
469	1	"Kermit"
470	1	"Little Santa"
471	1	"Cupid"
472	1	"Prancer"
473	1	"Donner"
474	1	"Vixen"
475	1	"Blitzen"
476	1	"Cursed Santa"
477	1	"Transformed Snowman"
478	1	"Delgado"
479	1	"Doorkeeper Titus"
480	1	"Zombie Fighter"
481	1	"Zombie Fighter"
482	1	"Resurrected Gladiator"
483	1	"Resurrected Gladiator"
484	1	"Ash Slaughterer"
485	1	"Ash Slaughterer"
486	1	"Blood Assassin"
487	1	"Cruel Blood Assassin"
488	1	"Cruel Blood Assassin"
489	1	"Burning Lava Giant"
490	1	"Ruthless Lava Giant"
491	1	"Ruthless Lava Giant"
492	1	"Moss"
493	1	"Golden Dark Knight"
494	1	"Golden Devil"
495	1	"Golden Stone Golem"
496	1	"Golden Crust"
497	1	"Golden Satyros"
498	1	"Golden Twin Tail"
499	1	"Golden Iron Knight"
500	1	"Golden Napin"
501	1	"Great Golden Dragon"
502	1	"Golden Rabbit"
503	1	"Transformed Panda"
504	1	"Gaion Kharein"
505	1	"Jerint"
506	1	"Raymond"
507	1	"Erkanne"
508	1	"Destler"
509	1	"Vermont"
510	1	"Kato"
511	1	"Galia"
512	1	"Quartermaster"
513	1	"Combat Instructor"
514	1	"Knight Commander"
515	1	"Grand Wizard"
516	1	"Master Assassin"
517	1	"Cavalry Captain"
518	1	"Shield Bearer"
519	1	"Medic"
520	1	"Knights"
521	1	"Bodyguard"
522	1	"Jerint the Assistant"
523	1	"Trap"
524	1	"Castle Gate 1"
525	1	"Castle Gate 2"
526	1	"Stone Statue 1"
527	1	"Castle Gate 3"
528	1	"Castle Gate 4"
529	1	"Furious Slaughterer"
530	1	"Slaughterer"
531	1	"Ice Walker"
532	1	"Larva"
533	1	"Doppelganger"
534	1	"Doppelganger Elf"
535	1	"Doppelganger Knight"
536	1	"Doppelganger Wizard"
537	1	"Doppelganger Magic Gladiator"
538	1	"Doppelganger Dark Lord"
539	1	"Doppelganger Summoner"
540	1	"Lugard"
541	1	"Interim Reward Chest"
542	1	"Final Reward Chest"
543	1	"Gens Duprian Steward"
544	1	"Gens Vanert Steward"
545	1	"Christine the General Goods Merchant"
546	1	"Jeweler Raul"
547	1	"Market Union Member Julia"
548	1	"Transformed Skeleton"
549	1	"Bloody Orc"
550	1	"Bloody Death Rider"
551	1	"Bloody Golem"
552	1	"Bloody Witch Queen"
553	1	"Berserker Warrior"
554	1	"Kentauros Warrior"
555	1	"Gigantis Warrior"
556	1	"Genocider Warrior"
557	1	"Sapi Queen"
558	1	"Ice Napin"
559	1	"Shadow Master"
560	1	"Sapi Queen"
561	1	"Medusa"
562	1	"Dark Mammoth"
563	1	"Dark Giant"
564	1	"Dark Coolutin"
565	1	"Dark Iron Knight"
566	1	"Mercenary Guild Manager Tercia"
567	1	"Priestess Veina"
568	1	"Wandering Merchant Zyro"
569	1	"Venomous Chain Scorpion"
570	1	"Bone Scorpion"
571	1	"Orcus"
572	1	"Gollock"
573	1	"Crypta"
574	1	"Crypos"
575	1	"Condra"
576	1	"Narcondra"
577	1	"Leina the General Goods Merchant"
578	1	"Weapons Merchant Bolo"
579	1	"David"
end

Everything should works!



No more map like Chaos Castle, Blood Castle loading fail:

You should correct your MapManager to be like mine:

Code:
bool CMapManager::InChaosCastle()
{
	if((this->WorldActive >= WD_18CHAOS_CASTLE && this->WorldActive <= WD_18CHAOS_CASTLE_END)|| this->WorldActive == WD_53CAOSCASTLE_MASTER_LEVEL)
	{
		return true;
	}

	return false; 
}

bool CMapManager::InBloodCastle()
{
	if((this->WorldActive >= WD_11BLOODCASTLE1 && this->WorldActive <= WD_11BLOODCASTLE_END)|| this->WorldActive == WD_52BLOODCASTLE_MASTER_LEVEL)
	{
		return true;
	}

	return false;
}

bool CMapManager::InDevilSquare()
{
	return WD_9DEVILSQUARE == this->WorldActive ? true : false;
}

bool CMapManager::InKalima() 
{ 
	return ((this->WorldActive>=WD_24KALIMA && this->WorldActive<=WD_24KALIMA_END) || (this->WorldActive==WD_24HELLAS_7)); 
}

bool CMapManager::InHiddenHellas() 
{ 

	return this->WorldActive == WD_24HELLAS_7 ? true : false; 
}

bool CMapManager::IsPKField()
{
	return (this->WorldActive == WD_63PK_FIELD) ? true : false;
}

bool CMapManager::IsCursedTemple()
{
	return ( this->WorldActive >= WD_45CURSEDTEMPLE_LV1 && this->WorldActive <= WD_45CURSEDTEMPLE_LV6) ? true : false;
}

bool CMapManager::IsEmpireGuardian1()
{
	return (this->WorldActive==WD_69EMPIREGUARDIAN1) ? true : false;
}

bool CMapManager::IsEmpireGuardian2()
{
	return (this->WorldActive==WD_70EMPIREGUARDIAN2) ? true : false;
}

bool CMapManager::IsEmpireGuardian3()
{
	return (this->WorldActive==WD_71EMPIREGUARDIAN3) ? true : false;
}

bool CMapManager::IsEmpireGuardian4()
{
	if(this->WorldActive == WD_72EMPIREGUARDIAN4 || this->WorldActive == WD_73NEW_LOGIN_SCENE || this->WorldActive == WD_74NEW_CHARACTER_SCENE )
	{
		return true;
	}
	return false;
}

bool CMapManager::IsEmpireGuardian()
{
	if(	this->IsEmpireGuardian1() == false &&
		this->IsEmpireGuardian2() == false && 
		this->IsEmpireGuardian3() == false &&
		this->IsEmpireGuardian4() == false )
	{
		return false;
	}

	return true;
}

bool CMapManager::InBattleCastle () 
{ 
	return this->WorldActive == WD_30BATTLECASTLE ? true : false;
}


const char* CMapManager::GetMapName( int iMap)
{

	if(iMap == WD_34CRYWOLF_1ST)
	{
		return( GlobalText[1851]);
	}
	else if( iMap == WD_33AIDA )
	{
		return( GlobalText[1850]);
	}
	else if( iMap == WD_37KANTURU_1ST )
	{
		return( GlobalText[2177]);
	}
	else if( iMap == WD_38KANTURU_2ND )
	{
		return( GlobalText[2178]);
	}
	else if( iMap == WD_39KANTURU_3RD )
	{
		return( GlobalText[2179]);
	}
	else if( iMap == WD_40AREA_FOR_GM)
	{
		return( GlobalText[2324]);
	}
	else if( iMap == WD_51HOME_6TH_CHAR)
	{
		return( GlobalText[1853]);
	}
	else if(iMap == WD_57ICECITY)
	{
		return( GlobalText[1855]);
	}
	else if(iMap == WD_58ICECITY_BOSS)
	{
		return( GlobalText[1856]);
	}
	
    if (iMap == WD_30BATTLECASTLE)
    {
        return ( GlobalText[669] );
    }
    if ( iMap == WD_31HUNTING_GROUND )
    {
        return ( GlobalText[59] );
    }
    if ((iMap >= WD_18CHAOS_CASTLE && iMap <= WD_18CHAOS_CASTLE_END) || iMap == WD_53CAOSCASTLE_MASTER_LEVEL)
    {
        return ( GlobalText[57] );
    }
    if ((iMap >= WD_24KALIMA && iMap <= WD_24KALIMA_END) || (iMap == WD_24HELLAS_7))
    {
		if (iMap == WD_24HELLAS_7)
			return ( GlobalText[1852] );
        return ( GlobalText[58] );
    }
	if ((iMap >= WD_11BLOODCASTLE1 && iMap <= WD_11BLOODCASTLE_END) || iMap == WD_52BLOODCASTLE_MASTER_LEVEL)
	{
		return ( GlobalText[56] );
	}
	if ( iMap==WD_10HEAVEN )
	{
		return ( GlobalText[55+iMap-WD_10HEAVEN]);
	}
	if ( iMap==32 )
	{
		return ( GlobalText[39]);
	}
	if (SEASON3A::CGM3rdChangeUp::Instance().IsBalgasBarrackMap())
		return GlobalText[1678];
	else if (SEASON3A::CGM3rdChangeUp::Instance().IsBalgasRefugeMap())
		return GlobalText[1679];
	if( this->IsCursedTemple() )
	{
		return ( GlobalText[2369] );
	}
	if( iMap == WD_51HOME_6TH_CHAR )
	{
		return ( GlobalText[1853] );
	}
	if( iMap == WD_56MAP_SWAMP_OF_QUIET )
	{
		return ( GlobalText[1854] );
	}
	if( iMap == WD_62SANTA_TOWN )
	{
		return ( GlobalText[2611] );
	}
	if( iMap == WD_64DUELARENA)
	{
		return ( GlobalText[2703] );
	}
	if( iMap == WD_63PK_FIELD)
	{
		return (GlobalText[2686]);
	}
	if( iMap == WD_65DOPPLEGANGER1)
	{
		return (GlobalText[3057]);
	}
	if( iMap == WD_66DOPPLEGANGER2)
	{
		return (GlobalText[3057]);
	}
	if( iMap == WD_67DOPPLEGANGER3)
	{
		return (GlobalText[3057]);
	}
	if( iMap == WD_68DOPPLEGANGER4)
	{
		return (GlobalText[3057]);
	}
	if( iMap == WD_69EMPIREGUARDIAN1)
	{
		return (GlobalText[2806]);
	}
	if( iMap == WD_70EMPIREGUARDIAN2)
	{
		return (GlobalText[2806]);
	}
	if( iMap == WD_71EMPIREGUARDIAN3)
	{
		return (GlobalText[2806]);
	}
	if( iMap == WD_72EMPIREGUARDIAN4)
	{
		return (GlobalText[2806]);
	}
	if( iMap == WD_79UNITEDMARKETPLACE )
	{
		return (GlobalText[3017]);
	}
	if (iMap == WD_80KARUTAN1 || iMap == WD_81KARUTAN2)
	{
		return (GlobalText[3285]);
	}
	return ( GlobalText[30+iMap] );
}

Fix your header and other source files to this by removing parameters. Have fun!



No more socket bit operation problem

Just find Defined_Global.h and paste:
Code:
#define KJW_FIX_SOCKET_BONUS_BIT_OPERATION



No more EXP crash problem

Open WSClient.cpp, find
Code:
WORD iExp = CharacterAttribute->NextExperince - CharacterAttribute->Experience;

Replace with:

Code:
[B]D[/B]WORD iExp = CharacterAttribute->NextExperince - CharacterAttribute->Experience;



Fix loading item.bmd after enabling ragefighter:

Find (in ITEM_ATTRIBUTE, _struct.h):

Code:
BYTE RequireClass[MAX_CLASS+1];

Replace with:

Code:
#ifdef PBG_ADD_NEWCHAR_MONK_SKILL
	BYTE RequireClass[MAX_CLASS];
#else //PBG_ADD_NEWCHAR_MONK_SKILL
	BYTE RequireClass[MAX_CLASS+1];
#endif //PBG_ADD_NEWCHAR_MONK_SKILL

Find (in ITEM_SET_OPTION, _struct.h):

Code:
	BYTE	byRequireClass[MAX_CLASS];

Replace with:

Code:
#ifdef PBG_ADD_NEWCHAR_MONK_SKILL
	BYTE byRequireClass[MAX_CLASS];
#else //PBG_ADD_NEWCHAR_MONK_SKILL
	BYTE byRequireClass[MAX_CLASS + 1];
#endif //PBG_ADD_NEWCHAR_MONK_SKILL




No more merchant ragefighter items crash:

In tagITEM, _struct.h:

Code:
#ifdef PBG_ADD_NEWCHAR_MONK_SKILL
	WORD  Special     [MAX_ITEM_SPECIAL];
#else //PBG_ADD_NEWCHAR_MONK_SKILL
	BYTE  Special     [MAX_ITEM_SPECIAL];
#endif //PBG_ADD_NEWCHAR_MONK_SKILL

Replace with:

Code:
	WORD  Special     [MAX_ITEM_SPECIAL];

In ZzzInventory.cpp:

Code:
#ifdef PBG_ADD_NEWCHAR_MONK_SKILL
void GetSpecialOptionText ( int Type, char* Text, WORD Option, BYTE Value, int iMana )
#else //PBG_ADD_NEWCHAR_MONK_SKILL
void GetSpecialOptionText ( int Type, char* Text, WORD Option, BYTE Value, int iMana )
#endif //PBG_ADD_NEWCHAR_MONK_SKILL

Replace with

Code:
void GetSpecialOptionText ( int Type, char* Text, WORD Option, BYTE Value, int iMana )

In ZzzInventory.h

Code:
#ifdef PBG_ADD_NEWCHAR_MONK_SKILL
void GetSpecialOptionText ( int Type, char* Text, WORD Option, BYTE Value, int iMana );
#else //PBG_ADD_NEWCHAR_MONK_SKILL
void GetSpecialOptionText ( int Type, char* Text, BYTE Option, BYTE Value, int iMana );
#endif //PBG_ADD_NEWCHAR_MONK_SKILL

Replace with:

Code:
void GetSpecialOptionText ( int Type, char* Text, WORD Option, BYTE Value, int iMana );



Fix for close button / disconnect:

Code:
void CMsgWin::ManageOKClick()
{
	CUIMng& rUIMng = CUIMng::Instance();
	rUIMng.HideWin(this);

	switch (m_nMsgCode)
	{
	case MESSAGE_SERVER_LOST:
	case MESSAGE_VERSION:
	case RECEIVE_LOG_IN_FAIL_ERROR:
	case RECEIVE_LOG_IN_FAIL_VERSION:

Replace with:

Code:
void CMsgWin::ManageOKClick()
{
	CUIMng& rUIMng = CUIMng::Instance();
	rUIMng.HideWin(this);

	switch (m_nMsgCode)
	{
	case MESSAGE_SERVER_LOST:
	case MESSAGE_VERSION:
	case RECEIVE_LOG_IN_FAIL_ERROR:
	case RECEIVE_LOG_IN_FAIL_VERSION:
		::PostMessage(g_hWnd, WM_CLOSE, 0, 0);
		break;



Known bugs:

- Item names disapears in merchant window
- Cashshop not working for me

- I cant open personal store
void OpenPersonalShop(int iType); have no sourcecode

Fun fact:
- Louis emulator using my custom - https://forum.ragezone.com/f197/release-x-team-muemu-custom-1125847/
 
Last edited:
Newbie Spellweaver
Joined
Apr 24, 2015
Messages
31
Reaction score
7
Thx For your Fixes.

void OpenPersonalShop(int iType); // Is useless

Fix Personal Shop

Update Inventory Size and all will be fine
#define MAX_INVENTORY (COLUMN_INVENTORY*ROW_INVENTORY)+((COLUMN_INVENTORY*2)*ROW_INVENTORY)
 
Junior Spellweaver
Joined
Aug 1, 2011
Messages
126
Reaction score
90
#define MAX_INVENTORY (COLUMN_INVENTORY*ROW_INVENTORY)+((COLUMN_INVENTORY*2)*ROW_INVENTORY)

Not working. I cant even put item into personal shop. Inventory is 8*8. You trying tell me that should be increased of personal shop size? + (4*8)? I dont think it will work.

SendRequestCreatePersonalShop(name) is probably sending right packet

Code:
struct PMSG_PSHOP_OPEN_RECV
{
	PSBMSG_HEAD header; // C1:3F:02
	char text[36];
};

I dont know.
 
Last edited:
Newbie Spellweaver
Joined
Jul 13, 2019
Messages
87
Reaction score
37
I tried the original source, but it still has the item options display error and the personal store opening error :(
 
Skilled Illusionist
Joined
Jun 22, 2017
Messages
363
Reaction score
561
Not working. I cant even put item into personal shop. Inventory is 8*8. You trying tell me that should be increased of personal shop size? + (4*8)? I dont think it will work.

SendRequestCreatePersonalShop(name) is probably sending right packet

Code:
struct PMSG_PSHOP_OPEN_RECV
{
    PSBMSG_HEAD header; // C1:3F:02
    char text[36];
};

I dont know.

max_inventory = inv_col*inv_row+expanded_inv_col*expanded_inv_row*max_expanded_inv(4)
pshop start = max_equipment+max_inventory
 
Joined
Jul 31, 2012
Messages
490
Reaction score
93
The camera works fine, but I can't find the monster display.
Monsters will show a maximum of 15 forward and backward coordinates.
 
Back
Top