• Content Count

  • Joined

  • Last visited

  • Days Won


Everything posted by PACI

  1. PACI

    open i need info of dark protection

    Keep in mind they did changes to a couple of skills with the balancing update. So this one could have been one of those as well. Therefore, there's a chance wiki's data is either out or up-to-date.
  2. PACI


    You better throw your frustrations on somebody else, my post never had the purpose of offending, nor I think I'm doing it. I never said it wasn't tested or working or if it was paid, whatever. Furthermore, never said I could do better as well. I could have saved my comment but I felt like leaving a positive thing, even if I didn't finish reading the post, 'cause I didn't, as I said above. If you took it as a personal attack, mate, I'm sorry, but you should get your shit straight.
  3. PACI


    I must say I stopped reading on the first code-block, but thanks for the contribution!
  4. PACI

    open Shaman buff target visual bug

    Head to d:/ymir work/pc/shaman/skill and post here, let's say, jeongeop 2, 3 and 4.
  5. PACI

    [RLS]Private Shop Search System

    How about fixing it yourself?
  6. Because that area is out of the button's parent range. In other words, it's limited by your taskbar's height, in this case.
  7. PACI

    open Random game crash

    You should had reverted every recent change you did to your core already. What is that CSemaphore thing that shit is talking about?
  8. Probably the client sniffing around. That exact character (along with brackets and vertical bar) is used for parsing quests' strings sent by the server. At this point, you may have noticed that the client doesn't only receives whatever text a quest has, but also an event type bound to that said text, being it formatting, window resizing, image preview, etc. Those actions are read this way. This is what the server will send to the client, using the example you provided above: [QUESTION resume;0|1;Hi, how are you today;|2;Close] resume stands for, eh.. a suspended state, can be said iirc. Meaning that it requires the player to answer. Everything else are necessary data the binary will send to the python-side of your client in order to create the so well known: chat-event. In order words, the buttons. My suggestion is to jump into your PythonEventManager class for further info. The parser is in EterLib/parser.*
  9. PACI

    c++ Mob attacking mobs

    ATTMOB AIflag in mob_proto.
  10. PACI

    Transmutation better Shang | LeNnt?

    Shang(ai) is the real deal.
  11. PACI

    open Some questions about LUA functions

    It is not the seed you have to use for comparison, but the random number generated by math.random(). Calling it once - math.randomseed(os.time()) - is enough, otherwise the randomness could break. Anyhow, 'nothing changed about the drop chance' as in? Doesn't even drops, drops too much, not enough? My suggestion is to use a simple debug message just to be sure which values number(a, z) is returning, and comparing it to your chance constant.
  12. PACI

    open Some questions about LUA functions

    The best results are achieved using os.time() for seeding. math.randomseed(os.time()) local random = math.random(1, 100) print(random) However, I prefer to use the built-in function for these kind of matters: number(min, max).
  13. PACI

    [Release] Quest Categories

    Hi there. While cleaning out "my closet", I found this thing I developed between 2014-2015 - maybe(?) - for my, at that moment, server. Since it's now closed, and I won't use it, I'm sharing it with you guys. Note: Didn't do the scrollbar, wasn't needed for me, so yeah. Now, let's start with opening your locale_game.txt and adding these lines: QUESTCATEGORY_0 Main Quests QUESTCATEGORY_1 Sub Quests QUESTCATEGORY_2 Collect Quests QUESTCATEGORY_3 Levelup Quests QUESTCATEGORY_4 Scroll Quests QUESTCATEGORY_5 System Quests Alright, now find your (uiscript?) and you can either comment Quest_Page children or simply remove them all. Moving on to your find this line self.BINARY_RecvQuest(index, name, "file", localeInfo.GetLetterImageName()) and replace it with self.wndCharacter.questCategory.RecvQuest(self.BINARY_RecvQuest, index, name) Ok, then we are at the most, let's say, difficult part of this. Open your and just as you did in your, remove or simply comment any single line related to quests. You can just search for these vars: self.questShowingStartIndex self.questScrollBar self.questSlot self.questNameList self.questLastTimeList self.questLastCountList Once you did that, you just: # Find these lines self.soloEmotionSlot = self.GetChild("SoloEmotionSlot") self.dualEmotionSlot = self.GetChild("DualEmotionSlot") self.__SetEmotionSlot() # And add the following import uiQuestCategory self.questCategory = uiQuestCategory.QuestCategoryWindow(self.pageDict["QUEST"]) # Find this def OnUpdate(self): self.__UpdateQuestClock() # Replace it with def OnUpdate(self): self.questCategory.OnUpdate() And we're done with the client-side. I attached some extra elements needed (such as the main python file ( and some image resources). Remember to edit the path linked to these images in that file. For the server-side... Well, screw it, uploaded it too. Too lazy to write. It has only a new quest function (q.getcurrentquestname()) and a few things to add in your questlib.lua. Btw, not sure if you have it, but if not, just add this extra function in ui.Button() ( - class Button). def SetTextAlignLeft(self, text, height = 4): if not self.ButtonText: textLine = TextLine() textLine.SetParent(self) textLine.SetPosition(27, self.GetHeight()/2) textLine.SetVerticalAlignCenter() textLine.SetHorizontalAlignLeft() textLine.Show() self.ButtonText = textLine #Äù½ºÆ® ¸®½ºÆ® UI¿¡ ¸ÂÃç À§Ä¡ ÀâÀ½ self.ButtonText.SetText(text) self.ButtonText.SetPosition(27, self.GetHeight()/2) self.ButtonText.SetVerticalAlignCenter() self.ButtonText.SetHorizontalAlignLeft() Forgot the source part, fml, here it is. Add it to your questlua_quest.cpp. int quest_get_current_quest_name(lua_State* L) { CQuestManager& q = CQuestManager::instance(); PC* pPC = q.GetCurrentPC(); lua_pushstring(L, pPC->GetCurrentQuestName().c_str()); return 1; } void RegisterQuestFunctionTable() { luaL_reg quest_functions[] = { { "getcurrentquestname", quest_get_current_quest_name}, { NULL, NULL } }; CQuestManager::instance().AddLuaFunctionTable("q", quest_functions); } Now, finally, have fun and bye! questcategory.7z server-side.7z
  14. PACI

    open Temple Ochao - Black Floor

    Setting.txt terrainvisible[TAB]0
  15. PACI

    [RELEASE]Fix Korean Errors #PART1

    !ch->IsDead() for FCountMonster is also handy.
  16. PACI

    open Python ignore function

    I assume you already have the Ignored group added to your client's friends list. If that's not the case, just take a look at root/ and UIScript/ and follow the pattern. Now I'd personally cache the file's entries at the client's startup, but even if you don't do that, the concept's still the same. Loop over your file lines/dict content and then use the AppendMember(key, playerName) function in order to add the entries to the list. Regarding the deletion, it is almost the same, the only difference is you firstly need to find the object, FindMember(key), and then use the RemoveMember(obj) func.
  17. PACI

    open Python ignore function

    Is that file client or server sided?
  18. PACI

    open Python ignore function

    Got the idea and stuff, but you didn't clarify where's the problem at. Is it the deletion thingy?
  19. you can't use any kind of quest function that sends the player into a suspended state (e.g: wait(), input(), select()) with a login statement. if you want to use it that way, add a quick timer, and then do the stuff.
  20. PACI

    solved Bug pet mount

    i don't even know why you're using the same piece of code on each condition. there's no difference at all. it's useless. also, you're using item.vnum (item.get_vnum()) without anything pointing to an item.
  21. PACI

    Kind of Belt System for r34083

    Hello. I made this quest some time ago, I was still using rev 34083 and iMer posted a very useful lib. So, thanks to the quest functions which this lib has included, it allowed me to do something like belt system, but without belt inventory. Also, nowadays, we have that crap systems full, and that's why I post this here. Now first of all, iMer's stuff: And now the quest: quest belt_system begin state start begin function is_belt() return item.vnum >= 18000 and item.vnum <= 18089 end function equip_belt() item2.equip(11) pc.setqf('belt', item.vnum) end when 18000.use or 18001.use or 18002.use or 18003.use or 18004.use or 18005.use or 18006.use or 18007.use or 18008.use or 18009.use or 18010.use or 18011.use or 18012.use or 18013.use or 18014.use or 18015.use or 18016.use or 18017.use or 18018.use or 18019.use or 18020.use or 18021.use or 18022.use or 18023.use or 18024.use or 18025.use or 18026.use or 18027.use or 18028.use or 18029.use or 18030.use or 18031.use or 18032.use or 18033.use or 18034.use or 18035.use or 18036.use or 18037.use or 18038.use or 18039.use or 18040.use or 18041.use or 18042.use or 18043.use or 18044.use or 18045.use or 18046.use or 18047.use or 18048.use or 18049.use or 18050.use or 18051.use or 18052.use or 18053.use or 18054.use or 18055.use or 18056.use or 18057.use or 18058.use or 18059.use or 18060.use or 18061.use or 18062.use or 18063.use or 18064.use or 18065.use or 18066.use or 18067.use or 18068.use or 18069.use or 18070.use or 18071.use or 18072.use or 18073.use or 18074.use or 18075.use or 18076.use or 18077.use or 18078.use or 18079.use or 18080.use or 18081.use or 18082.use or 18083.use or 18084.use or 18085.use or 18086.use or 18087.use or 18088.use or 18089.use begin local v = item.vnum local bonus = {{item2.get_attr(0)}, {item2.get_attr(1)}, {item2.get_attr(2)}, {item2.get_attr(3)}, {item2.get_attr(4)}, {item2.get_attr(5)}, {item2.get_attr(6)}} if belt_system.is_belt() and v ~= pc.getqf('belt') then belt_system.equip_belt() elseif item.select_cell(101) then item.remove() pc2.give_or_drop_item_and_select(v) for i = 1, table.getn(bonus) do if tonumber(bonus[i][1]) > 0 then item2.set_attr(i-1, bonus[i][1], bonus[i][2]) end end else belt_system.equip_belt() end end when 20090.take with belt_system.is_belt() begin local maintab = { [0] = { {18000, 1, 50}, {18010, 2, 20}, {18020, 44, 1}, {18030, 44, 1}, {18040, 78, 1}, {18050, 79, 1}, {18060, 80, 1}, {18070, 81, 1}, {18080, 63, 1} }, [1] = { {18000, 1, 50}, {18010, 2, 20}, {18020, 44, 1}, {18030, 44, 1}, {18040, 78, 1}, {18050, 79, 1}, {18060, 80, 1}, {18070, 81, 1}, {18080, 63, 1} }, [2] = { {18000, 1, 100}, {18010, 2, 40}, {18020, 44, 1}, {18030, 44, 1}, {18040, 78, 1}, {18050, 79, 1}, {18060, 80, 1}, {18070, 81, 1}, {18080, 63, 1} } } if pc.count_item(18900) < 1 then syschat("You dont have "..item_name(18900)..".") return end for i = 0, 2 do for k = 1, table.getn(maintab[i]) do if item.vnum >= maintab[i][k][1] and item.vnum <= maintab[i][k][1]+9 and item2.get_attr(i) == 0 then if number(1,3) == 1 then item2.set_attr(i, maintab[i][k][2], maintab[i][k][3]) syschat('Your belt received a bonus.') else syschat('Wasnt possible to put a bonus in your belt.') end end end pc.remove_item(18900, 1) end end end endIt also wasn't possible to add the stones to belt's, so I made also a NPC which gives your belt a bonus in exchange for that item. All we have to do in clientside, is adding a new line on our which is localed in locale. So we search this: {"index":EQUIPMENT_START_INDEX+10, "x":75, "y":35, "width":32, "height":32},And we write down the following line: {"index":EQUIPMENT_START_INDEX+11, "x":39, "y":106, "width":32, "height":32},We also need equipment_bg_without_ring.tga, or with_ring as you wish. And change the inventory image path to that file. That's all. Special thanks to iMer who had written the lib that made this possible, and without cmdchats and affects, because, since the item is equipped into a true slot, the bonuses are defined on item_proto, like a normal weapon, armor, etc.
  22. -> say("")
  23. PACI

    solved How to get client bonus name on quest

    if you have an ingame ui for your system just send the affect id to the client. otherwise you have to build a lua table having the ids as keys and the names as values.
  24. PACI

    open Newbie with lots of questions.

    yes my bad, was a long time ago and didn't remember correctly. yes it is.