Jump to content

PACI

Developer
  • Posts

    402
  • Joined

  • Days Won

    18
  • Feedback

    0%

Everything posted by PACI

  1. Head to d:/ymir work/pc/shaman/skill and post here, let's say, jeongeop 2, 3 and 4.
  2. 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.
  3. You should had reverted every recent change you did to your core already. What is that CSemaphore thing that shit is talking about?
  4. 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.*
  5. 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.
  6. 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).
  7. !ch->IsDead() for FCountMonster is also handy.
  8. 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/uiMessenger.py and UIScript/messengerwindow.py 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.
  9. Got the idea and stuff, but you didn't clarify where's the problem at. Is it the deletion thingy?
  10. 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.
  11. 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.
  12. 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.
  13. yes my bad, was a long time ago and didn't remember correctly. yes it is.
  14. 1. metin2 is open source since the beginning of 2015. through a leak. 2. no, 1/10 here are actually reverse engineers. 3. as i said before, we got everything through a leak. 4. you can give it a search. took the source-files published in 2015 and modified them.
  15. you can do it without even touching your source files, messing around with the quest login statement and a cmdchat().
  16. no one uses such old cores, why don't you upgrade yourself up?
×
×
  • Create New...

Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.