sandeagle
Premium Member-
Posts
732 -
Credits
0 -
Joined
-
Last visited
-
Feedback
0%
Content Type
Articles
Profiles
Forums
Store
Everything posted by sandeagle
-
Help How to extend the duration of summonned?
sandeagle posted a question in Request Server Development Help [L2OFF]
i use vang's IL pack...the summoned only 20mins...how to extend this time to 1hour? -
Discussion What happened to MasterToma :D
sandeagle replied to guytis's topic in Server Development Discussion [L2OFF]
what happened? -
Help AI Functions
sandeagle replied to sandeagle's question in Request Server Development Help [L2OFF]
thx, Amenadiel i had check other rebirth system,they use no more than 2.1 billion exp。 so i think there is one function in Vanganth ai,that could down level not via EXP. well,seems its SetPCLevel??? //0xD020012 AiFunction& func3 = g_GlobalObjectFunctionArray[index]; func3.wName = g_SetPCLevel; func3.handler = CGlobalObject::SetPCLevel; func3.returnType = AI_TYPE_VOID; func3.paramCount = 2; func3.param1Type = AI_TYPE_SHARED_CREATURE_DATA; func3.param2Type = AI_TYPE_INT; index++; -
anybody knows Down level functions in Vanganth IL AI? i wanna to down players level from 80 to 1,if use myself::IncrementParam (talker, @PARAM_EXP, exp); the Exp only -2100000000 max... any another functions for down level??? thank you.
-
codz from DN style stack sub system.support stack sub once...my question is how to adapt it for 2 times stack sub? thx. class 1 stack_sub_npc: (null) { parameter: string selectClassHuman = "custom_select_class_human.htm"; string selectClassElf = "custom_select_class_elf.htm"; string selectClassDarkElf = "custom_select_class_darkelf.htm"; string selectClassOrc = "custom_select_class_orc.htm"; string selectClassDwarf = "custom_select_class_dwarf.htm"; string welcome = "custom_welcome.htm"; string notSubbed = "custom_not_subbed.htm"; string alreadySubbed = "custom_already_subbed.htm"; string questDesc = "custom_quest_desc.htm"; string questAccepted = "custom_quest_accepted.htm"; string killGolkonda = "custom_kill_golkonda.htm"; string getLevels = "custom_level_up.htm"; string notThirdClass = "custom_not_third_class.htm"; string cantPickSameClass = "custom_cant_pick_same_class.htm"; int toggleLvReq = 0; // when set to 1 'reqLevel' will be in effect for swiitching subclasses int reqLevel = 78; int subItem = 11085; // item given by boss int questDone = 11087; // item symbolizes quest is finished int xpDecrease = -1495852905; // currently set to lower xp to level 40 from 76 int plzSelectClass = 11086; // item given when quest is finished, this is removed when 2nd class is selected int questID = 950; int modifier = 800; //NOTES: //memos from 802 - 857 are now being used. handler: EventHandler TALKED (talker, c0, reply, i0, i1, i2) { if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 88) { myself::SetMemoState (talker, (modifier + 2), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 89) { myself::SetMemoState (talker, (modifier + 3), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 89) { myself::SetMemoState (talker, (modifier + 3), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 90) { myself::SetMemoState (talker, (modifier + 5), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 91) { myself::SetMemoState (talker, (modifier + 6), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 93) { myself::SetMemoState (talker, (modifier + 8), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 92) { myself::SetMemoState (talker, (modifier + 9), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 94) { myself::SetMemoState (talker, (modifier + 12), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 95) { myself::SetMemoState (talker, (modifier + 13), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 96) { myself::SetMemoState (talker, (modifier + 14), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 97) { myself::SetMemoState (talker, (modifier + 16), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 98) { myself::SetMemoState (talker, (modifier + 17), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 99) { myself::SetMemoState (talker, (modifier + 20), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 100) { myself::SetMemoState (talker, (modifier + 21), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 101) { myself::SetMemoState (talker, (modifier + 23), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 102) { myself::SetMemoState (talker, (modifier + 24), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 103) { myself::SetMemoState (talker, (modifier + 27), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 104) { myself::SetMemoState (talker, (modifier + 28), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 105) { myself::SetMemoState (talker, (modifier + 30), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 106) { myself::SetMemoState (talker, (modifier + 33), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 107) { myself::SetMemoState (talker, (modifier + 34), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 108) { myself::SetMemoState (talker, (modifier + 36), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 109) { myself::SetMemoState (talker, (modifier + 37), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 110) { myself::SetMemoState (talker, (modifier + 40), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 111) { myself::SetMemoState (talker, (modifier + 41), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 112) { myself::SetMemoState (talker, (modifier + 43), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 113) { myself::SetMemoState (talker, (modifier + 46), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 114) { myself::SetMemoState (talker, (modifier + 48), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 115) { myself::SetMemoState (talker, (modifier + 51), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 116) { myself::SetMemoState (talker, (modifier + 52), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 117) { myself::SetMemoState (talker, (modifier + 55), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 118) { myself::SetMemoState (talker, (modifier + 57), 2); } } //c4class synch if (myself::IsInCategory (7, talker.occupation) == 1) { i4 = talker.occupation + modifier; myself::SetMemoState (talker, i4, 1); } // handles class change after quest is finished if (myself::OwnItemCount (talker, plzSelectClass) != 0) { if (talker.race == 0) { myself::ShowPage (talker, selectClassHuman); return; } if (talker.race == 1) { myself::ShowPage (talker, selectClassElf); return; } if (talker.race == 2) { myself::ShowPage (talker, selectClassDarkElf); return; } if (talker.race == 3) { myself::ShowPage (talker, selectClassOrc); return; } if (talker.race == 4) { myself::ShowPage (talker, selectClassDwarf); return; } } // ends quest gives item to pick class else if(myself::GetMemoState (talker, questID) == 5 && myself::OwnItemCount (talker, subItem) != 0) { if (talker.level < reqLevel) { myself::ShowPage (talker, getLevels); return; } myself::RemoveMemo (talker, questID); myself::DeleteItem1 (talker, subItem, 1); myself::GiveItem1 (talker, plzSelectClass, 1); myself::GiveItem1 (talker, questDone, 1); myself::SoundEffect(talker, "ItemSound.quest_finish"); if (myself::OwnItemCount (talker, plzSelectClass) != 0) { if (talker.race == 0) { myself::ShowPage (talker, selectClassHuman); return; } if (talker.race == 1) { myself::ShowPage (talker, selectClassElf); return; } if (talker.race == 2) { myself::ShowPage (talker, selectClassDarkElf); return; } if (talker.race == 3) { myself::ShowPage (talker, selectClassOrc); return; } if (talker.race == 4) { myself::ShowPage (talker, selectClassDwarf); return; } } } else { myself::ShowPage (talker, welcome); return; } } EventHandler MENU_SELECTED (talker, c0, reply, i0, i1, i2, i3) { // selecting subclass if (reply >= 0 && reply <= 57 && myself::OwnItemCount (talker, plzSelectClass) != 0) { if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 88) { myself::SetMemoState (talker, (modifier + 2), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 89) { myself::SetMemoState (talker, (modifier + 3), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 89) { myself::SetMemoState (talker, (modifier + 3), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 90) { myself::SetMemoState (talker, (modifier + 5), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 91) { myself::SetMemoState (talker, (modifier + 6), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 93) { myself::SetMemoState (talker, (modifier + 8), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 92) { myself::SetMemoState (talker, (modifier + 9), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 94) { myself::SetMemoState (talker, (modifier + 12), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 95) { myself::SetMemoState (talker, (modifier + 13), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 96) { myself::SetMemoState (talker, (modifier + 14), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 97) { myself::SetMemoState (talker, (modifier + 16), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 98) { myself::SetMemoState (talker, (modifier + 17), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 99) { myself::SetMemoState (talker, (modifier + 20), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 100) { myself::SetMemoState (talker, (modifier + 21), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 101) { myself::SetMemoState (talker, (modifier + 23), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 102) { myself::SetMemoState (talker, (modifier + 24), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 103) { myself::SetMemoState (talker, (modifier + 27), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 104) { myself::SetMemoState (talker, (modifier + 28), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 105) { myself::SetMemoState (talker, (modifier + 30), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 106) { myself::SetMemoState (talker, (modifier + 33), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 107) { myself::SetMemoState (talker, (modifier + 34), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 108) { myself::SetMemoState (talker, (modifier + 36), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 109) { myself::SetMemoState (talker, (modifier + 37), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 110) { myself::SetMemoState (talker, (modifier + 40), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 111) { myself::SetMemoState (talker, (modifier + 41), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 112) { myself::SetMemoState (talker, (modifier + 43), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 113) { myself::SetMemoState (talker, (modifier + 46), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 114) { myself::SetMemoState (talker, (modifier + 48), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 115) { myself::SetMemoState (talker, (modifier + 51), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 116) { myself::SetMemoState (talker, (modifier + 52), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 117) { myself::SetMemoState (talker, (modifier + 55), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 118) { myself::SetMemoState (talker, (modifier + 57), 2); } } //c4class synch if (myself::IsInCategory (7, talker.occupation) == 1) { i4 = talker.occupation + modifier; myself::SetMemoState (talker, i4, 1); } i2 = reply + modifier; if (myself::GetMemoState (talker, i2) == 1 || myself::GetMemoState (talker, i2) == 2) { myself::ShowPage (talker, cantPickSameClass); return; } myself::ClassChange (talker, reply); if (myself::IsInCategory (8, talker.occupation) == 1) { myself::SetMemoState (talker, i2, 1); } else if (myself::IsInCategory (9, talker.occupation) == 1) { myself::SetMemoState (talker, i2, 2); } myself::IncrementParam (talker, @PARAM_EXP, xpDecrease); myself::DeleteItem1 (talker, plzSelectClass, 1); myself::SoundEffect(talker, "ItemSound.quest_finish"); return; } // handles class swapping if (reply == 20) { // resynchs class with memo if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 88) { myself::SetMemoState (talker, (modifier + 2), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 89) { myself::SetMemoState (talker, (modifier + 3), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 89) { myself::SetMemoState (talker, (modifier + 3), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 90) { myself::SetMemoState (talker, (modifier + 5), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 91) { myself::SetMemoState (talker, (modifier + 6), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 93) { myself::SetMemoState (talker, (modifier + 8), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 92) { myself::SetMemoState (talker, (modifier + 9), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 94) { myself::SetMemoState (talker, (modifier + 12), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 95) { myself::SetMemoState (talker, (modifier + 13), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 96) { myself::SetMemoState (talker, (modifier + 14), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 97) { myself::SetMemoState (talker, (modifier + 16), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 98) { myself::SetMemoState (talker, (modifier + 17), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 99) { myself::SetMemoState (talker, (modifier + 20), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 100) { myself::SetMemoState (talker, (modifier + 21), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 101) { myself::SetMemoState (talker, (modifier + 23), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 102) { myself::SetMemoState (talker, (modifier + 24), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 103) { myself::SetMemoState (talker, (modifier + 27), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 104) { myself::SetMemoState (talker, (modifier + 28), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 105) { myself::SetMemoState (talker, (modifier + 30), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 106) { myself::SetMemoState (talker, (modifier + 33), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 107) { myself::SetMemoState (talker, (modifier + 34), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 108) { myself::SetMemoState (talker, (modifier + 36), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 109) { myself::SetMemoState (talker, (modifier + 37), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 110) { myself::SetMemoState (talker, (modifier + 40), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 111) { myself::SetMemoState (talker, (modifier + 41), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 112) { myself::SetMemoState (talker, (modifier + 43), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 113) { myself::SetMemoState (talker, (modifier + 46), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 114) { myself::SetMemoState (talker, (modifier + 48), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 115) { myself::SetMemoState (talker, (modifier + 51), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 116) { myself::SetMemoState (talker, (modifier + 52), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 117) { myself::SetMemoState (talker, (modifier + 55), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 118) { myself::SetMemoState (talker, (modifier + 57), 2); } } //c4class synch if (myself::IsInCategory (7, talker.occupation) == 1) { i4 = talker.occupation + modifier; myself::SetMemoState (talker, i4, 1); } if (toggleLvReq == 1) { if (talker.level < reqLevel) { myself::ShowPage (talker, getLevels); return; } } if (myself::GetMemoState (talker, 802) >= 1 && talker.occupation != 2 && talker.occupation != 88) { if (myself::GetMemoState (talker, 802) == 1) { myself::ClassChange (talker, 2); //sets 2nd class myself::SoundEffect(talker, "ItemSound.quest_finish"); return; } else if (myself::GetMemoState (talker, 802) == 2) { myself::ClassChange (talker, 88); //sets 3rd class myself::SoundEffect(talker, "ItemSound.quest_finish"); return; } } else if (myself::GetMemoState (talker, 803) >= 1 && talker.occupation != 3 && talker.occupation != 89) { if (myself::GetMemoState (talker, 803) == 1) { myself::ClassChange (talker, 3); //sets 2nd class myself::SoundEffect(talker, "ItemSound.quest_finish"); return; } else if (myself::GetMemoState (talker, 803) == 2) { myself::ClassChange (talker, 89); //sets 3rd class myself::SoundEffect(talker, "ItemSound.quest_finish"); return; } } else if (myself::GetMemoState (talker, 805) >= 1 && talker.occupation != 5 && talker.occupation != 90) { if (myself::GetMemoState (talker, 805) == 1) { myself::ClassChange (talker, 5); //sets 2nd class myself::SoundEffect(talker, "ItemSound.quest_finish"); return; } else if (myself::GetMemoState (talker, 805) == 2) { myself::ClassChange (talker, 90); //sets 3rd class myself::SoundEffect(talker, "ItemSound.quest_finish"); return; } } else if (myself::GetMemoState (talker, 806) >= 1 && talker.occupation != 6 && talker.occupation != 91) { if (myself::GetMemoState (talker, 806) == 1) { myself::ClassChange (talker, 6); //sets 2nd class myself::SoundEffect(talker, "ItemSound.quest_finish"); return; } else if (myself::GetMemoState (talker, 806) == 2) { myself::ClassChange (talker, 91); //sets 3rd class myself::SoundEffect(talker, "ItemSound.quest_finish"); return; } } else if (myself::GetMemoState (talker, 808) >= 1 && talker.occupation != 8 && talker.occupation != 93) { if (myself::GetMemoState (talker, 808) == 1) { myself::ClassChange (talker, 8); //sets 2nd class myself::SoundEffect(talker, "ItemSound.quest_finish"); return; } else if (myself::GetMemoState (talker, 808) == 2) { myself::ClassChange (talker, 93); //sets 3rd class myself::SoundEffect(talker, "ItemSound.quest_finish"); return; } } else if (myself::GetMemoState (talker, 809) >= 1 && talker.occupation != 9 && talker.occupation != 92) { if (myself::GetMemoState (talker, 809) == 1) { myself::ClassChange (talker, 9); //sets 2nd class myself::SoundEffect(talker, "ItemSound.quest_finish"); return; } else if (myself::GetMemoState (talker, 809) == 2) { myself::ClassChange (talker, 92); //sets 3rd class myself::SoundEffect(talker, "ItemSound.quest_finish"); return; } } else if (myself::GetMemoState (talker, 812) >= 1 && talker.occupation != 12 && talker.occupation != 94) { if (myself::GetMemoState (talker, 812) == 1) { myself::ClassChange (talker, 12); //sets 2nd class myself::SoundEffect(talker, "ItemSound.quest_finish"); return; } else if (myself::GetMemoState (talker, 812) == 2) { myself::ClassChange (talker, 94); //sets 3rd class myself::SoundEffect(talker, "ItemSound.quest_finish"); return; } } else if (myself::GetMemoState (talker, 813) >= 1 && talker.occupation != 13 && talker.occupation != 95) { if (myself::GetMemoState (talker, 813) == 1) { myself::ClassChange (talker, 13); //sets 2nd class myself::SoundEffect(talker, "ItemSound.quest_finish"); return; } else if (myself::GetMemoState (talker, 813) == 2) { myself::ClassChange (talker, 95); //sets 3rd class myself::SoundEffect(talker, "ItemSound.quest_finish"); return; } } else if (myself::GetMemoState (talker, 814) >= 1 && talker.occupation != 14 && talker.occupation != 96) { if (myself::GetMemoState (talker, 814) == 1) { myself::ClassChange (talker, 14); //sets 2nd class myself::SoundEffect(talker, "ItemSound.quest_finish"); return; } else if (myself::GetMemoState (talker, 814) == 2) { myself::ClassChange (talker, 96); //sets 3rd class myself::SoundEffect(talker, "ItemSound.quest_finish"); return; } } else if (myself::GetMemoState (talker, 816) >= 1 && talker.occupation != 16 && talker.occupation != 97) { if (myself::GetMemoState (talker, 816) == 1) { myself::ClassChange (talker, 16); //sets 2nd class myself::SoundEffect(talker, "ItemSound.quest_finish"); return; } else if (myself::GetMemoState (talker, 816) == 2) { myself::ClassChange (talker, 97); //sets 3rd class myself::SoundEffect(talker, "ItemSound.quest_finish"); return; } } else if (myself::GetMemoState (talker, 817) >= 1 && talker.occupation != 17 && talker.occupation != 98) { if (myself::GetMemoState (talker, 817) == 1) { myself::ClassChange (talker, 17); //sets 2nd class myself::SoundEffect(talker, "ItemSound.quest_finish"); return; } else if (myself::GetMemoState (talker, 817) == 2) { myself::ClassChange (talker, 98); //sets 3rd class myself::SoundEffect(talker, "ItemSound.quest_finish"); return; } } else if (myself::GetMemoState (talker, 820) >= 1 && talker.occupation != 20 && talker.occupation != 99) { if (myself::GetMemoState (talker, 820) == 1) { myself::ClassChange (talker, 20); //sets 2nd class myself::SoundEffect(talker, "ItemSound.quest_finish"); return; } else if (myself::GetMemoState (talker, 820) == 2) { myself::ClassChange (talker, 99); //sets 3rd class myself::SoundEffect(talker, "ItemSound.quest_finish"); return; } } else if (myself::GetMemoState (talker, 821) >= 1 && talker.occupation != 21 && talker.occupation != 100) { if (myself::GetMemoState (talker, 821) == 1) { myself::ClassChange (talker, 21); //sets 2nd class myself::SoundEffect(talker, "ItemSound.quest_finish"); return; } else if (myself::GetMemoState (talker, 821) == 2) { myself::ClassChange (talker, 100); //sets 3rd class myself::SoundEffect(talker, "ItemSound.quest_finish"); return; } } else if (myself::GetMemoState (talker, 823) >= 1 && talker.occupation != 23 && talker.occupation != 101) { if (myself::GetMemoState (talker, 823) == 1) { myself::ClassChange (talker, 23); //sets 2nd class myself::SoundEffect(talker, "ItemSound.quest_finish"); return; } else if (myself::GetMemoState (talker, 823) == 2) { myself::ClassChange (talker, 101); //sets 3rd class myself::SoundEffect(talker, "ItemSound.quest_finish"); return; } } else if (myself::GetMemoState (talker, 824) >= 1 && talker.occupation != 24 && talker.occupation != 102) { if (myself::GetMemoState (talker, 824) == 1) { myself::ClassChange (talker, 24); //sets 2nd class myself::SoundEffect(talker, "ItemSound.quest_finish"); return; } else if (myself::GetMemoState (talker, 824) == 2) { myself::ClassChange (talker, 102); //sets 3rd class myself::SoundEffect(talker, "ItemSound.quest_finish"); return; } } else if (myself::GetMemoState (talker, 827) >= 1 && talker.occupation != 27 && talker.occupation != 103) { if (myself::GetMemoState (talker, 827) == 1) { myself::ClassChange (talker, 27); //sets 2nd class myself::SoundEffect(talker, "ItemSound.quest_finish"); return; } else if (myself::GetMemoState (talker, 827) == 2) { myself::ClassChange (talker, 103); //sets 3rd class myself::SoundEffect(talker, "ItemSound.quest_finish"); return; } } else if (myself::GetMemoState (talker, 828) >= 1 && talker.occupation != 28 && talker.occupation != 104) { if (myself::GetMemoState (talker, 828) == 1) { myself::ClassChange (talker, 28); //sets 2nd class myself::SoundEffect(talker, "ItemSound.quest_finish"); return; } else if (myself::GetMemoState (talker, 828) == 2) { myself::ClassChange (talker, 104); //sets 3rd class myself::SoundEffect(talker, "ItemSound.quest_finish"); return; } } else if (myself::GetMemoState (talker, 830) >= 1 && talker.occupation != 30 && talker.occupation != 105) { if (myself::GetMemoState (talker, 830) == 1) { myself::ClassChange (talker, 30); //sets 2nd class myself::SoundEffect(talker, "ItemSound.quest_finish"); return; } else if (myself::GetMemoState (talker, 830) == 2) { myself::ClassChange (talker, 105); //sets 3rd class myself::SoundEffect(talker, "ItemSound.quest_finish"); return; } } else if (myself::GetMemoState (talker, 833) >= 1 && talker.occupation != 33 && talker.occupation != 106) { if (myself::GetMemoState (talker, 833) == 1) { myself::ClassChange (talker, 33); //sets 2nd class myself::SoundEffect(talker, "ItemSound.quest_finish"); return; } else if (myself::GetMemoState (talker, 833) == 2) { myself::ClassChange (talker, 106); //sets 3rd class myself::SoundEffect(talker, "ItemSound.quest_finish"); return; } } else if (myself::GetMemoState (talker, 834) >= 1 && talker.occupation != 34 && talker.occupation != 107) { if (myself::GetMemoState (talker, 834) == 1) { myself::ClassChange (talker, 34); //sets 2nd class myself::SoundEffect(talker, "ItemSound.quest_finish"); return; } else if (myself::GetMemoState (talker, 834) == 2) { myself::ClassChange (talker, 107); //sets 3rd class myself::SoundEffect(talker, "ItemSound.quest_finish"); return; } } else if (myself::GetMemoState (talker, 836) >= 1 && talker.occupation != 36 && talker.occupation != 108) { if (myself::GetMemoState (talker, 836) == 1) { myself::ClassChange (talker, 36); //sets 2nd class myself::SoundEffect(talker, "ItemSound.quest_finish"); return; } else if (myself::GetMemoState (talker, 836) == 2) { myself::ClassChange (talker, 108); //sets 3rd class myself::SoundEffect(talker, "ItemSound.quest_finish"); return; } } else if (myself::GetMemoState (talker, 837) >= 1 && talker.occupation != 37 && talker.occupation != 109) { if (myself::GetMemoState (talker, 837) == 1) { myself::ClassChange (talker, 37); //sets 2nd class myself::SoundEffect(talker, "ItemSound.quest_finish"); return; } else if (myself::GetMemoState (talker, 837) == 2) { myself::ClassChange (talker, 109); //sets 3rd class myself::SoundEffect(talker, "ItemSound.quest_finish"); return; } } else if (myself::GetMemoState (talker, 840) >= 1 && talker.occupation != 40 && talker.occupation != 110) { if (myself::GetMemoState (talker, 840) == 1) { myself::ClassChange (talker, 40); //sets 2nd class myself::SoundEffect(talker, "ItemSound.quest_finish"); return; } else if (myself::GetMemoState (talker, 840) == 2) { myself::ClassChange (talker, 110); //sets 3rd class myself::SoundEffect(talker, "ItemSound.quest_finish"); return; } } else if (myself::GetMemoState (talker, 841) >= 1 && talker.occupation != 41 && talker.occupation != 111) { if (myself::GetMemoState (talker, 841) == 1) { myself::ClassChange (talker, 41); //sets 2nd class myself::SoundEffect(talker, "ItemSound.quest_finish"); return; } else if (myself::GetMemoState (talker, 841) == 2) { myself::ClassChange (talker, 111); //sets 3rd class myself::SoundEffect(talker, "ItemSound.quest_finish"); return; } } else if (myself::GetMemoState (talker, 843) >= 1 && talker.occupation != 43 && talker.occupation != 112) { if (myself::GetMemoState (talker, 843) == 1) { myself::ClassChange (talker, 43); //sets 2nd class myself::SoundEffect(talker, "ItemSound.quest_finish"); return; } else if (myself::GetMemoState (talker, 843) == 2) { myself::ClassChange (talker, 112); //sets 3rd class myself::SoundEffect(talker, "ItemSound.quest_finish"); return; } } else if (myself::GetMemoState (talker, 846) >= 1 && talker.occupation != 46 && talker.occupation != 113) { if (myself::GetMemoState (talker, 846) == 1) { myself::ClassChange (talker, 46); //sets 2nd class myself::SoundEffect(talker, "ItemSound.quest_finish"); return; } else if (myself::GetMemoState (talker, 846) == 2) { myself::ClassChange (talker, 113); //sets 3rd class myself::SoundEffect(talker, "ItemSound.quest_finish"); return; } } else if (myself::GetMemoState (talker, 848) >= 1 && talker.occupation != 48 && talker.occupation != 114) { if (myself::GetMemoState (talker, 848) == 1) { myself::ClassChange (talker, 48); //sets 2nd class myself::SoundEffect(talker, "ItemSound.quest_finish"); return; } else if (myself::GetMemoState (talker, 848) == 2) { myself::ClassChange (talker, 114); //sets 3rd class myself::SoundEffect(talker, "ItemSound.quest_finish"); return; } } else if (myself::GetMemoState (talker, 851) >= 1 && talker.occupation != 51 && talker.occupation != 115) { if (myself::GetMemoState (talker, 851) == 1) { myself::ClassChange (talker, 51); //sets 2nd class myself::SoundEffect(talker, "ItemSound.quest_finish"); return; } else if (myself::GetMemoState (talker, 851) == 2) { myself::ClassChange (talker, 115); //sets 3rd class myself::SoundEffect(talker, "ItemSound.quest_finish"); return; } } else if (myself::GetMemoState (talker, 852) >= 1 && talker.occupation != 52 && talker.occupation != 116) { if (myself::GetMemoState (talker, 852) == 1) { myself::ClassChange (talker, 52); //sets 2nd class myself::SoundEffect(talker, "ItemSound.quest_finish"); return; } else if (myself::GetMemoState (talker, 852) == 2) { myself::ClassChange (talker, 116); //sets 3rd class myself::SoundEffect(talker, "ItemSound.quest_finish"); return; } } else if (myself::GetMemoState (talker, 855) >= 1 && talker.occupation != 55 && talker.occupation != 117) { if (myself::GetMemoState (talker, 855) == 1) { myself::ClassChange (talker, 55); //sets 2nd class myself::SoundEffect(talker, "ItemSound.quest_finish"); return; } else if (myself::GetMemoState (talker, 855) == 2) { myself::ClassChange (talker, 117); //sets 3rd class myself::SoundEffect(talker, "ItemSound.quest_finish"); return; } } else if (myself::GetMemoState (talker, 857) >= 1 && talker.occupation != 57 && talker.occupation != 118) { if (myself::GetMemoState (talker, 857) == 1) { myself::ClassChange (talker, 57); //sets 2nd class myself::SoundEffect(talker, "ItemSound.quest_finish"); return; } else if (myself::GetMemoState (talker, 857) == 2) { myself::ClassChange (talker, 118); //sets 3rd class myself::SoundEffect(talker, "ItemSound.quest_finish"); return; } } else { myself::ShowPage (talker, notSubbed); return; } } // handles quest part of ai if (reply == 21) { if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 88) { myself::SetMemoState (talker, (modifier + 2), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 89) { myself::SetMemoState (talker, (modifier + 3), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 89) { myself::SetMemoState (talker, (modifier + 3), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 90) { myself::SetMemoState (talker, (modifier + 5), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 91) { myself::SetMemoState (talker, (modifier + 6), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 93) { myself::SetMemoState (talker, (modifier + 8), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 92) { myself::SetMemoState (talker, (modifier + 9), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 94) { myself::SetMemoState (talker, (modifier + 12), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 95) { myself::SetMemoState (talker, (modifier + 13), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 96) { myself::SetMemoState (talker, (modifier + 14), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 97) { myself::SetMemoState (talker, (modifier + 16), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 98) { myself::SetMemoState (talker, (modifier + 17), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 99) { myself::SetMemoState (talker, (modifier + 20), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 100) { myself::SetMemoState (talker, (modifier + 21), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 101) { myself::SetMemoState (talker, (modifier + 23), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 102) { myself::SetMemoState (talker, (modifier + 24), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 103) { myself::SetMemoState (talker, (modifier + 27), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 104) { myself::SetMemoState (talker, (modifier + 28), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 105) { myself::SetMemoState (talker, (modifier + 30), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 106) { myself::SetMemoState (talker, (modifier + 33), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 107) { myself::SetMemoState (talker, (modifier + 34), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 108) { myself::SetMemoState (talker, (modifier + 36), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 109) { myself::SetMemoState (talker, (modifier + 37), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 110) { myself::SetMemoState (talker, (modifier + 40), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 111) { myself::SetMemoState (talker, (modifier + 41), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 112) { myself::SetMemoState (talker, (modifier + 43), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 113) { myself::SetMemoState (talker, (modifier + 46), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 114) { myself::SetMemoState (talker, (modifier + 48), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 115) { myself::SetMemoState (talker, (modifier + 51), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 116) { myself::SetMemoState (talker, (modifier + 52), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 117) { myself::SetMemoState (talker, (modifier + 55), 2); } } if (myself::IsInCategory (8, talker.occupation) == 1) { if (talker.occupation == 118) { myself::SetMemoState (talker, (modifier + 57), 2); } } //c4class synch if (myself::IsInCategory (7, talker.occupation) == 1) { i4 = talker.occupation + modifier; myself::SetMemoState (talker, i4, 1); } if (talker.level < reqLevel) { myself::ShowPage (talker, getLevels); return; } if (myself::OwnItemCount (talker, questDone) != 0) { myself::ShowPage (talker, alreadySubbed); return; } else if(myself::GetMemoState (talker, questID) == 4) { myself::ShowPage (talker, killGolkonda); return; } else { myself::ShowPage (talker, questDesc); return; } } // sets quest begin if (reply == 75 && myself::OwnItemCount (talker, questDone) == 0) { myself::SetMemoState (talker, questID, 4); i3 = talker.occupation + modifier; if (myself::IsInCategory (8, talker.occupation) == 1) { i0 = 2; } else { i0 = 1; } myself::SetMemoState (talker, i3, i0); myself::ShowPage (talker, questAccepted); } } }
-
Armor Warrior White Costume and Helmet - High Five
sandeagle replied to Celestine's topic in Client Development Discussion
rly cool armor,thx,celestine. no light and robe? -
Request how to decompile interface.u and interface.xdat?
sandeagle replied to sandeagle's topic in [Request] Client Dev Help
thx...NevesOma -
i means change Warriors attack_speed according level...any regular expression or tools? npc_begin warrior 20001 [gremlin] level=1 acquire_exp_rate=29 acquire_sp=2 unsowing=0 clan={} ignore_clan_list={} clan_help_range=300 slot_chest=[] slot_rhand=[] slot_lhand=[] shield_defense_rate=0 shield_defense=0 skill_list={@s_race_fairies} npc_ai={[gremlin];{[MoveAroundSocial]=0};{[MoveAroundSocial1]=0};{[MoveAroundSocial2]=0}} category={} race=fairy sex=male undying=0 can_be_attacked=1 corpse_time=7 no_sleep_mode=0 agro_range=1000 ground_high={50;0;0} ground_low={20;0;0} exp=1 org_hp=39.74519 org_hp_regen=2 org_mp=40 org_mp_regen=0.9 collision_radius={10;10} collision_height={15;15} str=40 int=21 dex=30 wit=20 con=43 men=20 base_attack_type=fist base_attack_range=40 base_damage_range={0;0;80;120} base_rand_dam=30 base_physical_attack=8.47458 base_critical=4 physical_hit_modify=4.75 base_attack_speed=253 base_reuse_delay=0 base_magic_attack=5.78704 base_defend=44.44444 base_magic_defend=29.5916164000214 physical_avoid_modify=0 soulshot_count=0 spiritshot_count=0 hit_time_factor=0.37 item_make_list={} corpse_make_list={} additional_make_list={} additional_make_multi_list={} hp_increase=0 mp_increase=0 safe_height=100 npc_end npc_begin warrior 20002 [rabbit] level=1 acquire_exp_rate=29 acquire_sp=2 unsowing=0 clan={} ignore_clan_list={} clan_help_range=300 slot_chest=[] slot_rhand=[] slot_lhand=[] shield_defense_rate=0 shield_defense=0 skill_list={@s_race_animals} npc_ai={[rabbit];{[MoveAroundSocial]=0};{[MoveAroundSocial1]=0};{[MoveAroundSocial2]=0}} category={} race=animal sex=male undying=0 can_be_attacked=1 corpse_time=7 no_sleep_mode=0 agro_range=1000 ground_high={80;0;0} ground_low={50;0;0} exp=1 org_hp=39.74519 org_hp_regen=2 org_mp=40 org_mp_regen=0.9 collision_radius={5;5} collision_height={4.5;4.5} str=40 int=21 dex=30 wit=20 con=43 men=20 base_attack_type=fist base_attack_range=40 base_damage_range={0;0;80;120} base_rand_dam=30 base_physical_attack=8.47458 base_critical=4 physical_hit_modify=4.75 base_attack_speed=253 base_reuse_delay=0 base_magic_attack=5.78704 base_defend=44.44444 base_magic_defend=29.5916164000214 physical_avoid_modify=0 soulshot_count=0 spiritshot_count=0 hit_time_factor=0.6 item_make_list={} corpse_make_list={} additional_make_list={} additional_make_multi_list={} hp_increase=0 mp_increase=0 safe_height=100 npc_end npc_begin warrior 20003 [goblin] level=5 acquire_exp_rate=7.12 acquire_sp=5 unsowing=0 clan={@goblin_clan} ignore_clan_list={} clan_help_range=300 slot_chest=[] slot_rhand=[club] slot_lhand=[] shield_defense_rate=0 shield_defense=0 skill_list={@s_race_humanoids} npc_ai={[goblin];{[MoveAroundSocial]=42};{[MoveAroundSocial1]=42};{[MoveAroundSocial2]=42}} category={} race=humanoid sex=male undying=0 can_be_attacked=1 corpse_time=7 no_sleep_mode=0 agro_range=1000 ground_high={110;0;0} ground_low={40;0;0} exp=2885 org_hp=80.17319 org_hp_regen=2 org_mp=69.6 org_mp_regen=0.9 collision_radius={10;10} collision_height={16.5;16.5} str=40 int=21 dex=30 wit=20 con=43 men=20 base_attack_type=blunt base_attack_range=40 base_damage_range={0;0;80;120} base_rand_dam=50 base_physical_attack=12.34006 base_critical=1 physical_hit_modify=9 base_attack_speed=253 base_reuse_delay=0 base_magic_attack=8.42666 base_defend=51.60553 base_magic_defend=34.3595464531323 physical_avoid_modify=0 soulshot_count=0 spiritshot_count=0 hit_time_factor=0.32 item_make_list={} corpse_make_list={{[magic_ring];1;1;34.3131};{[rp_broad_sword];1;1;4.5293};{[charcoal];1;1;5.6617}} additional_make_list={} additional_make_multi_list={{{{[adena];30;42;100}};70};{{{[apprentice_s_earing];1;1;30.9858};{[magic_ring];1;1;46.0093};{[necklace_of_magic];1;1;23.0049}};25.7011};{{{[thread];1;1;29.1259};{[suede];1;1;9.70862};{[varnish];1;1;14.5629};{[stem];1;1;29.1259};{[rp_bow];1;1;11.6506};{[silver_nugget];1;1;5.82607}};6.6992}} hp_increase=0 mp_increase=0 safe_height=100 npc_end only replace base_attack_speed if Monsters level=1 ok,use EMeditor's filter could do that... lock this topic plz...thx
-
Request I would like to buy c4 vanguath downgraded from c6
sandeagle replied to Dwalliams's question in Request Server Development Help [L2OFF]
its shared stuff...search it... -
-
maybe they use thire own utx icon files,you just use yours...or check your skillgrp.dat you will find what you want..
-
hey guyz...im from china...i found a interface in this forum,its Wellinton V3 - 2020...its good for english IL client,but i test it in cn client,its crashed and i found its interface.xdat problem...so i have some questions about interface. 1,how to modify interface.xdat? 2,how to change Interface text? i means Title name like Inventory、Clan、Quest...etc 3,which files control Background text? i wanna modify the background text for chinese.(lobby background text) 4,which files control miniMap?i try to replaced it for my own MiniMap.(i means Alt+M in game) sry for my bad english...rly thx.
-
its easy fix...just check these CB html files you can found the utx files which they used,then replaced it with yours.
-
Help Vanganth downgrade to C4 some bugs
sandeagle replied to Keiko's question in Request Server Development Help [L2OFF]
i guess that Vang's C4 server side geodata still use IL ver...so maybe you can change it to leaked c4 geodata,also you have to respawn lots npcdata...i didn't know,maybe you have adapt more stuff.. infact they still use IL system patch,you can check it...so i guess IL client is better? -
rly thx NevesOma. but second link was dead.i guess its lindvior weapons.
-
could any1 have Dragon claw weapons??? i means all dragon weapons,include Valacas,Antaras, Lindvior and all stage glow effects?
-
Share Fafurion Temple & Lair for H5 +geodata
sandeagle replied to Xtellia's topic in Client Development Discussion
does it works on IL client?