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.
- - - Updated - - -
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;
- - - Updated - - -
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
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!
- - - Updated - - -
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!
- - - Updated - - -
No more socket bit operation problem
Just find Defined_Global.h and paste:
Code:
#define KJW_FIX_SOCKET_BONUS_BIT_OPERATION
- - - Updated - - -
No more EXP crash problem
Open WSClient.cpp, find
Code:
WORD iExp = CharacterAttribute->NextExperince - CharacterAttribute->Experience;
Replace with:
Code:
DWORD iExp = CharacterAttribute->NextExperince - CharacterAttribute->Experience;
- - - Updated - - -
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
- - - Updated - - -
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 );
- - - Updated - - -
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;
- - - Updated - - -
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/rele...ustom-1125847/