00:00.15 | BotanicalPuppet | there is a Window* event register func |
00:00.31 | Vonhinten | WindowRegiseterCoreEvent( windowName, "OnLButtonUp", "callback" ) |
00:01.23 | hallas | ah |
00:01.27 | hallas | thats what i was looking for |
00:01.43 | tom0 | Ah Aiiane, I understand it's a compass now. The amount of degrees you stand towards the north, right? But then I do not understand how I can use that to get to my goal. |
00:02.10 | Aiiane | because you also have a compass direction for your current direction of movement |
00:02.17 | Aiiane | based off deltaX and deltaY |
00:02.18 | Aiiane | no? |
00:02.32 | hallas | the object is north on the compass? |
00:02.33 | Aiiane | and the difference in compass directions tells you which way you need to turn |
00:02.47 | Aiiane | if your direction is 270deg |
00:02.54 | Aiiane | and the object's direction is 180deg |
00:03.21 | Aiiane | then you need to turn 180-270 = -90deg = 90degs CCW |
00:05.11 | tom0 | Ok, so I know that I need to turn 90 degrees. But how do I know if that is 90 degrees to the left or to the right Aiiane? |
00:05.48 | Aiiane | by the sign |
00:06.42 | Aiiane | scale the difference down to where it's in the +180 to -180 range |
00:06.55 | Aiiane | and if it's negative, you need to turn CCW, if it's positive, you need to turn CW |
00:06.56 | hallas | WindowRegisterCoreEvent is a nil value |
00:07.06 | Aiiane | hallas: tack a Handler on the end |
00:07.10 | hallas | Ah |
00:07.11 | hallas | ofc |
00:10.15 | tom0 | i thought so aswell Aiiane, but when I need to turn left 37 degrees it says -37, then I stand somewhere else where I need to turn right but it says -273, even though it should be positive when i need to turn right? |
00:11.05 | Aiiane | you didn't scale to to be in the 180 to -180 range |
00:11.24 | Aiiane | if it's < -180, add 360 |
00:11.29 | Aiiane | if it's > 180, subtract 360 |
00:11.39 | tom0 | oh, hold on ;) |
00:12.26 | Aiiane | alternatively, just take it % 360 |
00:12.38 | Aiiane | and then if it's > 180 you need to turn left, if it's < 180 you need to turn right |
00:13.29 | tom0 | ">if it's < -180, add 360" was the - sign a typo there? |
00:13.36 | Aiiane | no |
00:13.43 | Aiiane | -273 is less than -180 |
00:13.52 | tom0 | oh |
00:13.55 | tom0 | ill try it right now |
00:16.55 | tom0 | oh my, thanks for not giving up on me, it works great =) |
00:22.52 | *** join/#waruidev phx|rizzen (i=foo@216-197-169-70.sktn.hsdb.sasknet.sk.ca) |
00:23.14 | phx|rizzen | evening folks |
00:43.01 | Aiiane | So, would you consider it delicious if LibGUI were fully embeddable? |
00:43.51 | Aiiane | and let you do things like myButton = LibGUI:NewElement("button") |
00:43.57 | Aiiane | and instantly have a button? :) |
00:44.06 | Aiiane | with no XML? :) |
00:44.20 | Vonhinten | you can already pretty easily do that with CreateWindowFromTemplate |
00:45.12 | Aiiane | sure, but without having to worry about the individual templates |
00:46.04 | WobWork | I would find it tasty and filling |
00:46.21 | WobWork | Esp if you could sanely handle lists |
00:46.54 | WobWork | although I wish they'd fix the inability to programmatically hook OnTextChanged =( |
00:54.15 | *** join/#waruidev Tsolval (n=Tsolval@cpe-66-68-42-181.austin.res.rr.com) |
01:04.47 | Eldan | hmm, looks like an attack calls PLAYER_END_CAST but not PLAYER_BEGIN_CAST... |
01:08.50 | *** join/#waruidev Freddy (n=Freddy@cpe-76-183-32-36.tx.res.rr.com) |
01:10.47 | *** join/#waruidev Freddy (n=Freddy@cpe-76-183-32-36.tx.res.rr.com) |
01:12.19 | WobWork | we have no way of checking if an event is registered, do we? |
01:14.32 | Repo | 10rolodex: 03wobin * r37 / (3 files in 1 directory): Added guild check for non guilded people |
01:14.33 | Repo | Added guild check to not list the names if one is not in a guild |
01:19.54 | Eldan | can someone clarify what the : does in function declarations versus the .? |
01:20.19 | Eldan | [ex] function EA_System_EventEntry:IsOutOfStartingBox() |
01:20.36 | WobWork | Eldan: It's syntactic sugar |
01:20.46 | WobWork | essentially, it's passing the object as the first argument |
01:20.46 | Eldan | so treat it the same? |
01:20.48 | WobWork | no |
01:20.50 | Eldan | okay |
01:21.07 | Eldan | any common uses of it? |
01:21.21 | Eldan | or does it vary |
01:21.21 | WobWork | EA_System_EventEntry:IsOutOfStartingBox() == EA_System_EventEntry.IsOutOfStartingBox(EA_System_EventEntry) |
01:21.35 | WobWork | I suggest you have a read of PiL |
01:21.47 | WobWork | it'll give a good outline of Lua and it's bits and pieces |
01:21.49 | WobWork | ~pil |
01:21.50 | purl | Programming in Lua, a book written by the authors of the Lua programming language. The first edition is available free online at http://www.lua.org/pil and covers Lua 5.0. The second edition is available in print from most online bookstores, and covers Lua 5.1. |
01:22.22 | Eldan | ive looked over that, and kind of saw thats what it did |
01:22.24 | Eldan | but |
01:22.49 | Eldan | i didnt see the usage in the functions i was looking at so i thought i may have been missing something |
01:23.22 | WobWork | It's fairly prevalent |
01:23.30 | WobWork | just maybe not in WAR |
01:24.20 | Eldan | okay, i think i get it |
01:24.45 | Eldan | is the arguement then accessed through 'self'? |
01:24.50 | WobWork | yes |
01:24.52 | Eldan | argument* |
01:24.59 | Eldan | okay |
01:27.02 | Eldan | im having difficulties figuring out how things are printed to the combat log |
01:27.13 | Eldan | its confusing |
01:28.06 | zarious | lua> tick = 5; Tick = 3; print(tick) |
01:28.06 | lua_bot | zarious: 5 |
01:28.06 | zarious | lua> tick = 5; Tick = 3; print(Tick) |
01:28.07 | lua_bot | zarious: 3 |
01:28.45 | Aiiane | Eldan: well, it might help if you start with the realization that it's not done from Lua |
01:29.07 | Eldan | it might |
01:29.39 | Eldan | i just noticed |
01:30.27 | WobWork | hm |
01:30.34 | Eldan | every time i used an ability/attacked it called EA_System_EventText.AddCombatEventText(w, x, y, z) |
01:30.43 | Eldan | what is that doing then? |
01:30.49 | Aiiane | the floating combat text |
01:30.53 | Eldan | ah |
01:30.54 | Aiiane | that appears above your character's head |
01:30.58 | Aiiane | and/or targets' heads |
01:31.00 | WobWork | Looking to the Guild roster window for details on how to use a more complex list |
01:31.07 | WobWork | but I don't know if that's a good idea =) |
01:31.09 | Eldan | that works |
01:31.24 | Eldan | because it still runs every time a skill is used |
01:31.41 | Aiiane | not necessarily |
01:31.48 | Eldan | seems to |
01:31.48 | zarious | oh my god, drug women are nuts |
01:31.53 | Aiiane | it doesn't run with a DoT is initially applied |
01:31.54 | zarious | drunk* |
01:31.58 | Aiiane | and it runs every time a DoT ticks |
01:31.58 | Eldan | yeah |
01:32.01 | Eldan | thats true |
01:32.15 | Aiiane | it also runs any time you get healed or take damage |
01:32.20 | Aiiane | as well as any time you do healing or damage |
01:32.53 | Eldan | those are what i need to sift between |
01:33.04 | Eldan | i need dot ticks, and my healing |
01:33.16 | Eldan | and dealing/taking damage |
01:33.23 | Eldan | but not other people healing |
01:33.26 | zarious | just got back from the wedding/reception of a friend of mine..... |
01:33.42 | Aiiane | you don't need your own healing |
01:33.54 | Aiiane | just use the spellcast end event for heals and your own damage, no? |
01:34.11 | Eldan | hots* |
01:34.15 | Eldan | rather |
01:34.22 | Aiiane | all you really care about from combat events is you taking damage |
01:34.33 | Aiiane | and maybe your hots ticking on others, dunno if that affects it or not |
01:34.40 | Eldan | yeah |
01:34.52 | Eldan | well |
01:34.58 | Eldan | i feel like its bugged at the moment |
01:35.03 | Aiiane | isn't it just based on combat flag though? |
01:35.19 | Eldan | hmmm |
01:35.21 | Aiiane | if you spend 10sec not combat flagged, I thought |
01:35.26 | Eldan | may be |
01:35.33 | Eldan | i think |
01:35.35 | Aiiane | in which case you wouldn't even need all this stuff |
01:35.43 | Eldan | the waagh you get for healing is bugged anyways |
01:35.49 | Eldan | and doesnt go away |
01:36.04 | Aiiane | just watch the PLAYER_COMBAT_FLAG_UPDATED (I think that's it) |
01:36.06 | Aiiane | event |
01:36.10 | Aiiane | Eldan: no |
01:36.18 | Aiiane | it goes away /if you were in combat when you got it/ |
01:36.18 | Eldan | no? |
01:36.21 | *** join/#waruidev Nyborek (n=kero@dslb-088-074-004-196.pools.arcor-ip.net) |
01:36.22 | Aiiane | if you're out of combat and heal someone |
01:36.27 | Eldan | ah |
01:36.30 | Aiiane | then it won't go away |
01:36.50 | Eldan | question |
01:36.57 | Eldan | how'd you figure all this stuff out? |
01:36.59 | Eldan | O.O |
01:37.05 | Aiiane | observation :P |
01:37.36 | Aiiane | Aiiane is an archmage :) |
01:38.19 | Eldan | haha |
01:38.24 | Eldan | level? |
01:38.32 | Aiiane | 29 |
01:38.49 | Eldan | nice |
01:39.47 | Nyborek | hey, some1 know when zypher wil be back? |
01:40.01 | Aiiane | whenever he decides to come back ;) |
01:40.05 | Aiiane | (I don't know for sure) |
01:40.06 | Nyborek | ;) |
01:40.13 | zarious | Nyborek, what you need? |
01:40.32 | Nyborek | the unit frame ;) |
01:45.07 | phx|rizzen | doubt he'll give that away |
01:45.31 | Aiiane | btw, if you want to be able to check the client version from lua |
01:45.39 | Aiiane | major, minor, revision, build = (SystemData.ClientVersion):match(L"Version ([0-9]+)%.([0-9]+)%.([0-9]+) Build ([0-9]+)") |
01:46.02 | Eldan | PLAYER_COMBAT_FLAG_UPDATED just occur whenever you go in or out of combat? |
01:46.06 | Aiiane | they're all as wstrings though ;) you'd have to tonumber them first if you want to do mathematical comparisons |
01:46.10 | Aiiane | Eldan: I believe so yes |
01:46.14 | Eldan | okay |
01:46.26 | Vonhinten | Are anchors broken in some way when you change UI scale? |
01:46.36 | Eldan | no parameters in it soooo |
01:46.46 | Eldan | yeah |
01:47.24 | Tomed | what's the point of ui scale if you can scale individual elements through the layout editor |
01:47.27 | Aiiane | Vonhinten: um, do they fix themselves after /reloadui |
01:47.28 | Aiiane | ? |
01:47.35 | Aiiane | Tomed: to easily adjust the interface as a whole? |
01:48.12 | Tomed | I suppose |
01:48.16 | Vonhinten | Aii, yeah |
01:48.41 | Tomed | i actually have mine scaled down from when i first started messing with the default UI |
01:48.46 | Aiiane | Vonhinten: you might have to call WindowForceProcessAnchors() on a window after changing the scale then |
01:48.51 | Tomed | maybe thats' why my clean unit frames anchors are all messed up |
01:49.07 | Aiiane | dinner, bbl |
01:49.23 | Vonhinten | Aii, hmm, what's wierd though, is the way I'm doing my guidelines is reanchoring over and over |
01:49.46 | Vonhinten | So anchor's are refreshed after the fact, but still wrong |
02:04.33 | hallas | I say rewrite all the UI! |
02:06.47 | *** join/#waruidev Hamisch (n=Hamisch@67.217.8.56) |
02:07.29 | Hamisch | Hi all |
02:08.44 | Hamisch | Can someone answer a hopefully simple question for me? I'm having problems writing to the chat window |
02:14.03 | hallas | ~asktoask |
02:14.04 | purl | This is IRC. Don't ask to ask a question. Just ask your question and if someone's around, they'll be glad to help. |
02:16.30 | Hamisch | EA_ChatWindow.Print(towstring("Hello!!")) Should be printing but I am getting nothing in the chat window. The mod is appearing and is enabled. |
02:27.42 | Eldan | use |
02:28.40 | BotanicalPuppet | does the warpatch.exe always update the interface.myp to an exact copy of what's on the server whenever it does an update to that file? |
02:29.02 | Eldan | TextLogAddEntry ("Chat", SystemData.ChatLogFilters.SAY, L"text") |
02:29.45 | Eldan | i dont think so because it has the check all files button |
02:29.55 | BotanicalPuppet | can you toggle that button? |
02:29.55 | Eldan | or function |
02:29.59 | Eldan | hmm |
02:30.06 | Eldan | lemme see |
02:30.32 | BotanicalPuppet | my own experiments suggest it will make sure the .myp file is exact... if it makes an update to it... but between released updates... |
02:30.37 | BotanicalPuppet | you can sneak in your own interface.myp |
02:31.12 | Eldan | well, i cant find it now |
02:31.16 | Eldan | hmm |
02:31.29 | BotanicalPuppet | it is shown on the bottom of my warpatch, just greyed |
02:31.51 | BotanicalPuppet | when logging in |
02:33.01 | Eldan | it may check the exact size |
02:33.29 | BotanicalPuppet | i got away with a different size |
02:33.33 | Eldan | i dont think it couldnt check the whole file |
02:33.46 | BotanicalPuppet | but... when there were known updates on server, it will check every resource in the .myp |
02:33.57 | BotanicalPuppet | perhaps with a checksum |
02:34.09 | BotanicalPuppet | or perhaps... perhaps just a perfile size ya |
02:34.35 | BotanicalPuppet | this could theoretically be used to load in new sounds?? |
02:34.48 | BotanicalPuppet | provide patches to sound.myp? |
02:35.22 | BotanicalPuppet | you can also change coreinterface if you're evil |
02:36.05 | Eldan | but of course you arent evil :P |
02:36.06 | BotanicalPuppet | ...someone should patch/replace all the beta sounds that aren't called by anything anymore, there are a few of them |
02:36.19 | BotanicalPuppet | put in "HEADSHOT" or your preference |
02:36.40 | BotanicalPuppet | what's the sound format again? |
02:36.52 | Eldan | dunno, never dealt with any but interface |
02:37.32 | BotanicalPuppet | yeah... it's the only thing of direct concern to users... |
02:37.49 | Eldan | mhmm |
02:38.27 | Eldan | and most likely the only thing the ToS allows us to change |
02:39.00 | *** join/#waruidev WobWork (n=Wobin@218-214-77-166.people.net.au) |
02:39.04 | Eldan | manipulate* |
02:39.16 | WobWork | Interesting |
02:39.20 | WobWork | I didn't think I'd get a wirelless connection here |
02:39.30 | Eldan | you near a starbucks? |
02:39.36 | Eldan | :P |
02:39.42 | Wobin | no |
02:39.50 | Wobin | in a cafe down the mall from a Gloria Jeans though |
02:39.54 | Wobin | so maybe |
02:40.05 | BotanicalPuppet | and not even directly... only through the interface folder |
02:49.46 | Fal` | is there a list of WAAAGHBAR plugins somewherE? |
02:50.27 | BotanicalPuppet | if not there should be one growing on the main project page imo |
02:51.03 | BotanicalPuppet | google... inurl:curse waaaghbar |
02:53.18 | BotanicalPuppet | `Zypher_1 have you considered making subrepositories on your projects, doing what you want in them, and letting others import changes into the mainline as they wish? |
02:54.04 | BotanicalPuppet | there ARE people who like your stuff... they just like to be able to customize it a little... let them do so... and just do your thing otherwise? |
03:04.09 | hallas | Fal`: Only v2.x plugin I know of is http://war.curse.com/downloads/war-addons/details/time-to-rank.aspx |
03:04.21 | Fal` | thanks |
03:04.25 | Fal` | I have that already |
03:04.46 | hallas | We need tags to work on Curse... |
03:04.47 | hallas | now |
03:06.34 | Repo | 10nstancehighlighter: 03Nemes 041.4-release * r17 : Further stability and safety enhancements |
03:07.07 | *** join/#waruidev End (n=end@tetris.cornhooves.org) |
03:07.09 | End | NO U |
03:07.56 | *** part/#waruidev End (n=end@tetris.cornhooves.org) |
03:10.59 | Aiiane | BotanicalPuppet: that's generally called Cloning, and curseforge supports it |
03:11.21 | Hamisch | lua> not not 0 |
03:11.21 | lua_bot | Hamisch: true |
03:11.39 | BotanicalPuppet | ya i know |
03:11.54 | hallas | lua> 0 |
03:11.54 | lua_bot | hallas: 0 |
03:12.04 | hallas | lua> not 0 |
03:12.05 | lua_bot | hallas: false |
03:12.09 | hallas | Odd |
03:12.24 | hallas | Or well, not odd :P |
03:12.31 | hallas | just a funny test |
03:12.34 | BotanicalPuppet | btw the files in audio.myp are .wav if anyone is curious |
03:12.40 | hallas | lua> 1 or 0 |
03:12.41 | lua_bot | hallas: 1 |
03:12.44 | hallas | lua> 0 or 1 |
03:12.45 | BotanicalPuppet | and the graphics are a microsoft directx format dds |
03:12.45 | lua_bot | hallas: 0 |
03:14.20 | BotanicalPuppet | it should be theoretically possible to patch in your own .wav ... and the audio file doesn't get updated as much as all else as far as i've seen ... |
03:14.47 | hallas | Anyone has written any waaaghbar plugins here? |
03:15.02 | BotanicalPuppet | what does waaaghbar do for my addon? |
03:15.09 | BotanicalPuppet | i might release plugin capability.... for some... |
03:15.10 | hallas | nothing :) |
03:15.19 | hallas | atm anyway |
03:15.29 | hallas | or well, if you need text display always visual |
03:15.30 | BotanicalPuppet | not even a place to show a window? |
03:15.30 | hallas | its usefull |
03:15.33 | hallas | oh |
03:15.43 | hallas | thought you were asking me.. like.. beyond that |
03:15.47 | BotanicalPuppet | all my tools have been text-based, no new window creation |
03:16.03 | hallas | same as fubar |
03:16.26 | BotanicalPuppet | is it at a good point for releasing on it or is it going through a lot of change in its api, etc? |
03:16.39 | hallas | I would say wait |
03:16.45 | BotanicalPuppet | ok :) |
03:16.54 | hallas | I am just trying to compile a list of plugins sofar |
03:17.00 | hallas | A few have been popping up on Curse |
03:17.20 | BotanicalPuppet | is there a way to check for the existence and version of waaaghbar? |
03:17.30 | BotanicalPuppet | of course if (Waaaghbar) but version? |
03:17.51 | hallas | You think I should make it register with a LibStub type of addon? |
03:17.58 | BotanicalPuppet | i don't know |
03:18.07 | hallas | I will make a revision check |
03:18.10 | BotanicalPuppet | short of that, just be very consistent with a MajorVersoin and FullVersion variable |
03:18.33 | hallas | whats the different between major and full? |
03:18.39 | BotanicalPuppet | (which is what i've started to do in larger projects, ie chosenshelper) |
03:18.42 | BotanicalPuppet | 1.0 |
03:18.45 | hallas | is majors? |
03:18.47 | BotanicalPuppet | 1.0.12alpha |
03:18.49 | hallas | alright |
03:19.04 | BotanicalPuppet | checking for major should resolve most compat issues |
03:19.06 | BotanicalPuppet | rarely change it |
03:19.09 | hallas | api breaks wouldnt happen in a full then |
03:19.18 | hallas | and only rarely in majors |
03:19.19 | BotanicalPuppet | in theory |
03:20.01 | BotanicalPuppet | yeah but... i'm putting the MajorVersion and FullVersoin variables as part of my object for the main addon and visible at the top of the main file |
03:20.07 | BotanicalPuppet | so other developers can snoop on me |
03:20.36 | hallas | its a good standard |
03:20.55 | BotanicalPuppet | heh..won't ever be a standard |
03:21.00 | BotanicalPuppet | except within each addon |
03:21.13 | BotanicalPuppet | ....there is probably a better way |
03:21.16 | BotanicalPuppet | uimodwindow has version info |
03:21.19 | BotanicalPuppet | read from .mod |
03:21.39 | hallas | alright |
03:21.54 | BotanicalPuppet | and imo .mod version == MajorVersion |
03:22.04 | hallas | I use Major.Minor |
03:22.05 | hallas | 2.1 |
03:22.09 | hallas | 2.3 |
03:22.09 | hallas | etc |
03:22.11 | hallas | in my mod |
03:22.15 | BotanicalPuppet | because changing .mod version will break all the saved variables |
03:22.19 | BotanicalPuppet | ie reset them |
03:22.45 | BotanicalPuppet | so if you aren't doing anything different with savedvariables, keep .mod constant maybe |
03:26.46 | BotanicalPuppet | sdepiets@gmail.com = aiiane? |
03:26.57 | BotanicalPuppet | err liane |
03:27.01 | Aiiane | maybe? |
03:27.03 | BotanicalPuppet | can lliane be reached? |
03:27.07 | Aiiane | you could try |
03:27.14 | Aiiane | I haven't seen them around in a while |
03:27.19 | BotanicalPuppet | i'll ask about lua-->wiki processor |
03:27.32 | BotanicalPuppet | i wrote a custom wiki processor before, it was a bear of a project, would save time and be cool |
03:28.50 | BotanicalPuppet | heh.... DEBUG is a war-defined variable, i should stop usin git |
03:29.10 | BotanicalPuppet | got a note that it was breaking respawn windows, etc |
03:32.15 | hallas | http://waruidev.pastey.net/98064 whats wrong here? Get an error at the 2. line |
03:34.48 | hallas | looks pretty fine to me :O |
03:36.38 | hallas | perhaps string cant be key |
03:37.22 | BotanicalPuppet | not the syntax for assigning keys i think |
03:37.42 | BotanicalPuppet | imo do it in steps with local tbl = {} and table.radio = |
03:37.53 | BotanicalPuppet | the more complex may work for the lua gods but i keep it simple |
03:38.02 | hallas | it works for me |
03:38.31 | hallas | :P |
03:38.37 | BotanicalPuppet | hah trickster |
03:39.01 | hallas | key couldnt be key like that |
03:39.11 | hallas | tbl = { radio = ... } i got now |
03:40.47 | hallas | lua> case |
03:40.48 | lua_bot | hallas: nil |
03:40.59 | hallas | i take it lua doesnt have cases right? |
03:41.12 | BotanicalPuppet | if elseif elseif elseif slashwrist end |
03:41.16 | hallas | hehehe |
03:48.11 | *** join/#waruidev Wobin (n=Wobin@124-171-24-200.dyn.iinet.net.au) |
03:57.39 | Aiiane | out for the evening, bbl |
04:00.13 | Hamisch | I'm trying to figure out how the chat window actually gets written to, or what to hook on rather. The goal is to block messages that I dont want to be printed. Can anyone point me to the right location? |
04:03.10 | *** join/#waruidev End (n=end@tetris.cornhooves.org) |
04:09.23 | Eldan | id look at |
04:09.29 | Eldan | SpamMeNot |
04:09.32 | Eldan | http://war.curse.com/downloads/war-addons/details/spam-me-not/download/235898.aspx |
04:10.18 | Hamisch | I've been looking at that addon for a while now, however where the text actually gets printed to the chat window eludes me. It appears that spammenot blocks the messages then prints them on its own |
04:13.53 | BotanicalPuppet | you mean ... it has its own print? or it hooks the print and suppress some... |
04:14.18 | Eldan | thats what i was trying to figure out |
04:14.33 | Eldan | its own print essentialy consists of |
04:14.45 | Eldan | TextLogAddEntry("SpamMeNotLog", SpamMeNotWindow.filterID_Print, s) |
04:14.46 | BotanicalPuppet | either way would it not kinda have to hook existing print in order to at least suppress some |
04:14.54 | BotanicalPuppet | that's just for spam |
04:14.55 | Eldan | EA_ChatWindow.Print(L"[SpamMeNot]: " .. s) |
04:15.27 | BotanicalPuppet | goes in a spamlog you can see in their window |
04:16.30 | Hamisch | It seems to be usign filters to block messages from printing |
04:17.11 | BotanicalPuppet | yes |
04:17.18 | BotanicalPuppet | hey they made exp easier in t3/4 |
04:35.00 | Vonhinten | omg... 72 emails on my DE bot |
04:35.17 | Vonhinten | that's gonna take 20 hours to open |
04:35.26 | Pirauder[RAR] | SystemData.ActiveWindow.name what does that give back? The current window the event is being fired in or something? |
04:35.46 | Pirauder[RAR] | If anyone knows |
04:43.13 | *** join/#waruidev Phosphoros (n=chatzill@12-207-155-219.client.mchsi.com) |
04:50.05 | hallas | yes |
04:50.07 | hallas | Pirauder[RAR] |
04:50.25 | hallas | it matches the name you see in the debug window when you move around your mouse |
04:52.05 | Pirauder[RAR] | Mmk... |
04:52.47 | Pirauder[RAR] | So if I click a button, it's that button I guess. |
04:54.30 | Vonhinten | Goddamn this email system is a piece of shit |
04:56.41 | Phosphoros | amen |
04:59.00 | Phosphoros | I tried using this.. http://war.curse.com/downloads/war-addons/details/qmt.aspx |
04:59.07 | Phosphoros | But the server just boots me |
05:29.27 | Eldan | lua> ((4==4)and(true or not(true))) |
05:29.28 | lua_bot | Eldan: true |
05:29.46 | Eldan | lua> ((4==4)and(false or not(true))) |
05:29.46 | lua_bot | Eldan: false |
05:29.56 | Eldan | lua> ((4==4)and(false or not(false))) |
05:29.56 | lua_bot | Eldan: true |
05:30.37 | Eldan | lua> ((2==4)and(false or not(false))) |
05:30.38 | lua_bot | Eldan: false |
05:32.51 | Eldan | lua> math.floor(9.88864568 * 10 + 0.5) / 10 |
05:32.51 | lua_bot | Eldan: 9.9 |
05:33.09 | Eldan | :D |
05:34.52 | Tomed | anyone happen to know if it's possible to steal focus or play a sound out-of-game when an event is triggered |
05:43.34 | *** join/#waruidev Chryzo (n=dtc@92.80.117.27) |
05:45.54 | *** join/#waruidev TC-Laptop (n=chatzill@adsl-76-214-22-203.dsl.lsan03.sbcglobal.net) |
05:48.44 | TC-Laptop | ping Aiiane |
05:50.25 | zarious | she said she was going to sleep a bit ago |
05:51.53 | TC-Laptop | ~fail Aiiane |
05:51.54 | purl | Aiiane, you Fail! |
05:52.04 | TC-Laptop | thanks zarious |
05:54.33 | Vonhinten | Tomed, absolutely not |
05:54.33 | Daegalus | Tomed: nope |
06:02.58 | art3mis | <MrDev> If you had purchased $1,000 of AIG stock one year ago, you would have $42 left. |
06:02.58 | art3mis | <MrDev> With Lehman, you would have $6.60 left. |
06:02.58 | art3mis | <MrDev> With Fannie or Freddie, you would have less than $5 left. |
06:02.58 | art3mis | <MrDev> But if you had purchased $1,000 worth of alcohol one year ago, drank all of it, then turned in the bottles for the recycling REFUND, you would have had $114. |
06:02.58 | art3mis | <MrDev> Based on the above, the best current investment advice is to drink heavily and recycle. |
06:03.10 | TC-Laptop | art3mis: old news is old |
06:03.21 | art3mis | boobies have nipples |
06:03.28 | Pirauder[RAR] | wtf? |
06:03.28 | art3mis | i didnt know this |
06:03.30 | Pirauder[RAR] | really? |
06:03.31 | TC-Laptop | hmm....old news is good |
06:03.47 | art3mis | simple investing guide |
06:03.56 | art3mis | at 8:30 buy 1000 shares of SKF |
06:04.04 | art3mis | at 9:35 sell them |
06:04.07 | Pirauder[RAR] | I go for the "Don't invest in shit... because shit happens" |
06:04.22 | art3mis | you will have made on average in this market with the s&p500 starting off low about 6-12k |
06:04.39 | TC-Laptop | art3mis: stop failing |
06:05.00 | art3mis | at noon short SKF for 1000 points and well them by at most 2:45 |
06:05.05 | art3mis | im not ;) |
06:05.18 | art3mis | this is what ive done with my fake money each day for the last 3 weeks |
06:05.23 | art3mis | and it works ;) |
06:06.18 | art3mis | is the s&p500 is negative or low 10's positive premarkwet you can rest assurred that it will drop when market open hits and then recover about 9:45-10am as it slowly climbs |
06:06.31 | art3mis | it's wierd |
06:07.07 | art3mis | yesterday my fake money account closed +24k doing exactly the above ;) |
06:07.27 | TC-Laptop | fake money is fake |
06:07.40 | art3mis | its live quotes just fake executor ;) |
06:07.53 | art3mis | so i cant actually make any monies on it |
06:08.01 | art3mis | but the buy and sell prices are real and live |
06:08.28 | art3mis | and to be honest if i had 500k in my trading account i'd prolly p[lay this way normally |
06:08.49 | art3mis | i'd prolly be more attentive to the get out pricing though and thus make more |
06:09.04 | art3mis | sometimes network issues and phones get in the way of my trading ;) |
06:09.15 | art3mis | its pretty fun |
06:10.10 | art3mis | of course it also depends on whether skf is positive or engative at 8:30 in correlation to the s&p500 |
06:10.20 | art3mis | but if you're trading you already understand that |
06:12.31 | TC-Laptop | i understand everything |
06:12.52 | art3mis | hows blizzcon btw? |
06:12.59 | TC-Laptop | over |
06:13.03 | art3mis | im guessing crappy if yer on irc |
06:13.08 | art3mis | heh |
06:13.13 | TC-Laptop | no, i got home already |
06:13.16 | art3mis | gibb0r me yer polarbear code! |
06:13.24 | TC-Laptop | i dont even play wow atm |
06:13.25 | art3mis | i thought it was the whole weekend |
06:13.30 | art3mis | me neither |
06:13.32 | TC-Laptop | fri-sat |
06:13.35 | art3mis | oh |
06:13.37 | art3mis | weak |
06:13.45 | TC-Laptop | eh |
06:15.28 | TC-Laptop | i missed the last meeting :( |
06:19.55 | Pirauder[RAR] | I cancelled my wwo accoutn after a week of not playing it while playing war |
06:19.56 | Pirauder[RAR] | war > wow |
06:29.54 | hallas | fucking cocksuckers on my gaming forum |
06:30.00 | hallas | saying that "lol ool war sucks as much as AoC" |
06:30.12 | hallas | and they prolly didnt try WAR either |
06:30.22 | art3mis | they're only saying that because they fail ;) |
06:30.36 | hallas | WAR beats WoW in every aspect im interested in |
06:30.50 | art3mis | "dude you cant even buy level 60's yet or a decent price for gold" |
06:31.05 | hallas | balance, content, graphics, char development, skills and the whole guild leveling thing |
06:31.14 | hallas | Blizzard has had WoW since 2004 |
06:31.18 | hallas | with 9 mill customers |
06:31.36 | hallas | so much money |
06:31.37 | art3mis | just remember eq was before wow and uo before eq |
06:31.39 | hallas | SO LITTLE CONTENT |
06:31.46 | hallas | Can you belive that? |
06:31.47 | art3mis | they will slowly move over and wow will be a memory |
06:31.59 | hallas | dude |
06:32.02 | hallas | 9 min customers |
06:32.08 | hallas | 20 dollars a month? |
06:32.10 | art3mis | the old school kids will say "remember when we used to play wow and tbc came out" |
06:32.13 | hallas | 4 years? |
06:32.17 | hallas | and only two expansions |
06:32.18 | hallas | hahaha |
06:32.21 | hallas | its lame |
06:32.26 | art3mis | yup |
06:32.36 | art3mis | thier model is good |
06:32.41 | art3mis | thier length of dev time isnt |
06:32.57 | hallas | indewd |
06:33.02 | art3mis | nor is the filler content to sedate people and provide more fun than a meaningless grind |
06:33.06 | PenguinOfDoom | Is there a way to hide the warband windows? |
06:33.17 | art3mis | right click em ion the layout editor |
06:33.21 | art3mis | and choose hide? |
06:33.42 | PenguinOfDoom | No such option |
06:33.52 | art3mis | lies! |
06:34.01 | art3mis | you can also drop thier opactity to 0 |
06:34.16 | PenguinOfDoom | that's not terribly useful |
06:35.10 | hallas | night |
06:54.54 | Aiiane | zarious: I didn't say I was going to sleep o.o |
06:54.58 | Aiiane | just that I was going out |
06:55.01 | Pirauder[RAR] | Those global functions, are those in any of those publically accessible lua files? SelectItemRollChoice specifically |
06:55.08 | zarious | orly? |
06:55.28 | zarious | <Aiiane> out for the evening, bbl |
06:55.38 | Pirauder[RAR] | evening != night |
06:55.39 | Pirauder[RAR] | :P |
06:55.52 | zarious | i thought you meant out like, out like a light = sleeping |
06:56.06 | Aiiane | Pirauder[RAR]: most of them are C functions |
06:57.01 | Pirauder[RAR] | I was wondering how well the roll system was protected for the new need thing, you can select need but it just makes the window disappear and then inside of that function it checks if you have access I guess |
06:58.42 | Repo | 10nrarity: 03Nemes * r37 source/containers/Character.lua: Fix issue with character borders showing on the brag tab |
07:00.50 | *** join/#waruidev Lialith (n=Lialith@dyndsl-091-096-056-034.ewe-ip-backbone.de) |
07:02.00 | zarious | aiiane i gues now that i thinka bout it, you live in pst so going to sleep then would've been a little weird |
07:04.55 | zarious | ugh i need more water....too much beer |
07:05.01 | zarious | dehydrated |
07:06.07 | zarious | i hate hanging out with my older friends, one just got married and i was at his reception today and while there were a lot of good lookin women there.....they all had frickin rings |
07:14.32 | zarious | lua> if not x or type(x) == "string" then print("something") end |
07:14.33 | lua_bot | zarious: something |
07:14.53 | zarious | lua> if not x and type(x) == "string" then print("something") end |
07:14.53 | lua_bot | zarious: No output |
07:15.19 | zarious | lua> print(type(x)) |
07:15.19 | lua_bot | zarious: nil |
07:15.42 | zarious | does WAR error out on type calls to nil? |
07:15.58 | zarious | s/does/doesn't/ |
07:18.47 | Repo | 10nstancehighlighter: 03Nemes * r18 NStanceHighlighter.lua: Don't attempt to re-register for stance updates on reload |
07:20.29 | Aiiane | no, zarious |
07:20.36 | Aiiane | because the type of nil is "nil" |
07:20.47 | Aiiane | lua> print(type(nil)..2) |
07:20.47 | lua_bot | Aiiane: nil2 |
07:20.57 | zarious | no shit? i could've sworn i ran into that error |
07:21.00 | Aiiane | lua> print(type(nil):sub(1,1)) |
07:21.01 | lua_bot | Aiiane: n |
07:21.11 | Aiiane | lua> print(type(type(nil))) |
07:21.11 | lua_bot | Aiiane: string |
07:21.17 | zarious | well i guess i can take out some extra error checking |
07:22.21 | Aiiane | I'm going crazy with metatables in libgui >.> heh |
07:24.24 | Repo | 10ztimelib: 03zMod * r19 zTimeLib.lua: |
07:24.25 | Repo | *added frame scheduler for scheduling functions to run every frame (uses would be fps counter, milisec timer, things that need very precise time etc etc) |
07:25.04 | Aiiane | one of the reasons for the fun with metatables |
07:25.36 | Aiiane | is that libgui will handle registering the events for the gui objects, so you don't have to expose non-local functions yourself in your addon |
07:25.43 | Aiiane | (if you don't want to, that is) |
07:26.14 | zarious | yeah |
07:26.36 | zarious | RDX used metatables up the wazoo and it was one of the parts i didn't understand |
07:27.00 | zarious | that and a shitload of metamethods |
07:27.59 | art3mis | has anyone made a potion bar thingy? |
07:28.10 | art3mis | that automagically adds potions you loot? |
07:28.23 | zarious | are there item libs yet? |
07:28.24 | art3mis | or something like engineers bag for the profs |
07:28.30 | art3mis | not sure |
07:28.45 | zarious | art3mis, you can have items automatically go into certain bags with the default ui |
07:29.03 | art3mis | ooo? |
07:29.15 | art3mis | oh no i meant a seperate thingy |
07:29.29 | art3mis | sorta like ark inventory |
07:29.46 | art3mis | where it would just divide up stuff for ya |
07:32.43 | zarious | defaultui does a decent job of that already, it doesn't do the bar like you were talking though |
07:33.39 | art3mis | yeah the bar part was what i was hoping for |
07:33.48 | art3mis | something like autobar would be great ;) |
07:44.35 | Vonhinten | Is there a damn hedge wizard or talisman crafting merchant somewhere in the inevitable city? |
07:54.28 | Wobin | It's weird, I've seen the apothecary in both cities, but never the hedge wizard |
07:56.20 | zarious | Vonhinten, i've never found the vendor in altdorf |
07:56.33 | zarious | i usually goto high pass for that stuff |
07:56.51 | zarious | cuz the merch camp is pretty close to the order flight master |
07:58.44 | *** join/#waruidev Slakah (n=Slakah@5acd4394.bb.sky.com) |
08:04.05 | Vonhinten | fucking Mythic |
08:04.20 | Vonhinten | just when I think I'm pissed off enough at this game, they find a way to make it worse |
08:04.36 | Aiiane | you are a very emotional person :) |
08:04.57 | Vonhinten | well, I'm not tearing up |
08:05.16 | Vonhinten | But, I've got 7 years of Mythic annoyance built up |
08:06.07 | Vonhinten | Not to mention, 2 of my friends has already quite playing, and 2 more are seriously thinking about quiting due to the stupid bugs |
08:06.18 | Vonhinten | has=have, quite=quit |
08:08.00 | Vonhinten | seriously, I have to go all the way back to Sorcerer's Axiom for fucking talisman stuff? |
08:53.01 | *** join/#waruidev Werelds (n=ask@cm1113418-a.maast1.lb.home.nl) |
09:14.16 | Aiiane | hrm. |
09:14.29 | Aiiane | there doesn't appear to be any way to set the childscrollwindow of a scrollwindow from lua :| |
09:21.02 | Vonhinten | What skill level do you have to be to DE items from tier 2? |
09:21.09 | Vonhinten | I have 62 salvaging and can't do it |
09:25.49 | zarious | Vonhinten, like 11-20 level items? |
09:26.00 | Vonhinten | 21+ |
09:26.05 | Vonhinten | sorry, tier 3 |
09:26.37 | Vonhinten | I can DE 19, but not 21 |
09:26.40 | zarious | 21+ is around 90-120 (for up to around 30 greens) |
09:26.48 | Vonhinten | oh god |
09:27.14 | zarious | those values are only for greens as you definatly need higher skill the rarer things get |
09:27.45 | zarious | and its only from my limited experience with it (i'm at 121 TM, 129 MS) |
09:28.45 | Vonhinten | How did you get up to 90 salvage? |
09:28.45 | Aiiane | renown items are good for leveling |
09:28.45 | Vonhinten | I rarely get points at this point (62) |
09:28.45 | zarious | honestly you buy ah items if the deals really good |
09:29.02 | zarious | but you really just need to ante up some bank and buy renow items |
09:29.11 | zarious | its the fastest easist way |
09:29.21 | zarious | you can also select the level of items as you go |
09:29.27 | zarious | so you can find your sweet spot |
09:29.40 | Werelds | i got to 50 from the tier 1 renown things |
09:29.46 | Werelds | works like a charm :p |
09:30.04 | Werelds | was like 7.6s per skill level, not too bad |
09:30.21 | zarious | its like 8.5 but yeah |
09:30.26 | zarious | that works to 60 or 65 |
09:30.33 | zarious | then just buy tier 2 renow items lol. |
09:33.12 | zarious | bleh i don't like my periodic latch implementation |
09:33.25 | Vonhinten | tier 2 renown is in a keep right? |
09:33.28 | zarious | veni's wow version was like 5000x cooler |
09:33.39 | zarious | yes, or in your home city if you're in a guild that doesn't suck |
09:34.23 | Vonhinten | I guess I'll have to get my renown up.. only level 12 |
09:34.52 | zarious | what level are you? |
09:35.08 | Vonhinten | 12 |
09:38.05 | zarious | then whats your renown rank? |
09:43.57 | Vonhinten | 7 :) |
09:44.20 | Vonhinten | it's an alt I stopped playing early on |
09:46.25 | *** join/#waruidev Chryzo_ (n=dtc@92.80.76.6) |
09:47.58 | *** join/#waruidev BotanicalPuppet (n=Botanica@adsl-69-230-183-166.dsl.irvnca.pacbell.net) |
09:51.24 | *** join/#waruidev Chryzo_ (n=dtc@92.80.76.6) |
09:55.24 | Chryzo_ | netcode de merde! |
09:57.27 | zarious | ?quien es netcode? |
09:58.03 | PenguinOfDoom | wow, inevitable city looks trippy |
09:58.19 | PenguinOfDoom | I guess Mythic got some stock textures/ideas for Altdorf, but went full-on artists-on-drugs for IE |
09:58.23 | PenguinOfDoom | err IC |
10:00.57 | *** join/#waruidev Chryzo (n=dtc@92.81.73.111) |
10:01.45 | Chryzo | connexion de merde! |
10:01.45 | Chryzo | jeu de merde! |
10:01.48 | Chryzo | i can't believe it |
10:02.00 | Chryzo | i get like all the possible bugs one after the other |
10:02.07 | Chryzo | now the patcher won't even launch properly |
10:03.06 | Chryzo | now i have to reboot a second time |
10:03.08 | Chryzo | jeez |
10:04.28 | Wobin | PenguinOfDoom: The chained eyeballs are cool |
10:05.47 | Repo | 10libgui: 03Aiiane * r0 / (3 files in 1 directory): Initial commit, library for GUI creation in WAR via Lua (fully embeddable via LibStub). |
10:06.05 | *** join/#waruidev Chryzo (n=dtc@92.81.73.111) |
10:06.14 | Aiiane | It's not done yet |
10:06.19 | Aiiane | which is why it's not tagged |
10:06.56 | zarious | yeah i was gonna ask |
10:07.44 | Aiiane | if you want to peek at it, http://hg.curseforge.net/war/libgui/mainline/ |
10:09.40 | zarious | wtf is the gui for libgui gonna be called? GUIGUI? |
10:09.46 | zarious | Gooey? |
10:10.47 | Aiiane | libgui is a library, it doesn't have a gui :P |
10:11.19 | zarious | i know, but libslash is a lib as well, and i'm prob gonna write a gui for it |
10:11.36 | zarious | or a minimap button or something with droplists for addons registred with it |
10:12.12 | Wobin | libgui is nothing like libslash though |
10:12.18 | Wobin | you won't need a gui for it |
10:12.52 | Wobin | it's only functional for the coder, not for the end user |
10:13.02 | Aiiane | (on a side note, at least in its current form you wouldn't be able to write a GUI for libslash) |
10:13.16 | Wobin | everything local? |
10:13.22 | Aiiane | the slash command list is, yes |
10:13.45 | zarious | Wobin, i was thinking along the lines of an advanced in game gui builder, but thats prob more effort than its worth |
10:13.53 | Wobin | yeah |
10:14.26 | Aiiane | actually, what's sort of neat |
10:14.37 | Aiiane | is with LibGUI, creating GUIs is easier |
10:14.52 | zarious | aiiane, i haven't looked at libslash code yet, but could/would you add some return functions to allow access its data? |
10:14.53 | Aiiane | because you can just do /script commands to create elements as you want them, then use :MakeMovable() of them, smack them where you want |
10:15.06 | Aiiane | and then use :GetPosition() to see what offset you should give them |
10:15.09 | Aiiane | zarious: possiby |
10:15.12 | Aiiane | *possibly |
10:15.40 | Aiiane | it'd probably be on a read-only basis though |
10:15.50 | zarious | well yeah |
10:16.00 | zarious | thats the beauty of local commands and return fucntions, data protection |
10:16.14 | zarious | zTimeLib is like that |
10:16.47 | zarious | all the important stuff is hidden behind locals with only return access to its data or you can use the api |
10:36.03 | Chryzo | netcode still sux |
10:36.12 | Chryzo | i spend my time lagging |
10:36.16 | Chryzo | even when i am alone |
10:38.13 | BotanicalPuppet | hi chryzo |
10:42.22 | Aiiane | oki... sleepyaii is very sleepy now, so goodnight! |
10:42.30 | Werelds | nn aii <3 |
10:44.58 | BotanicalPuppet | ok chryzo additional info sent |
10:45.48 | zarious | nighters aii |
10:45.51 | Wobin | zarious: The problem you'd have |
10:45.55 | Wobin | with a guiGui |
10:46.03 | Wobin | is getting the subsequent build code out of the game |
10:46.14 | zarious | yeah |
10:46.16 | Wobin | maybe saving it as a huge string =P |
10:46.27 | zarious | i dunno did you ever see rdx though? |
10:46.34 | zarious | i don't think WAR's lua can do it atm |
10:46.42 | Wobin | no |
10:46.48 | zarious | but rdx did what i was talking about |
10:47.27 | Werelds | seems i scared the RAR whiner off btw Chryzo :( |
10:47.37 | zarious | it had like a build screen, which would take various pieces of code (i think each had an init, run, destroy section of code) and then assemble a build string for each window |
10:47.43 | Werelds | i was looking forward to bashing his face some more for throwing useless arguments |
10:48.16 | zarious | so you would use an editor where you could add features which would assemble the window creation code and save it, then run the appropiate sections during window use |
10:48.43 | zarious | but i don't think you can save blocks of code for later exec in war atm |
10:49.07 | zarious | cuz i was looking for a way to port luaslinger or write something silimar and i couldn't figure out a way to do it |
10:50.14 | Werelds | no, you can't |
10:50.17 | BotanicalPuppet | stupid hack. use /script pushing to chattext |
10:50.19 | Werelds | we don't have loadstring |
10:50.35 | BotanicalPuppet | ^ that |
10:50.47 | Werelds | horrible way of doing it ;p |
10:51.05 | zarious | hmm |
10:51.15 | zarious | i'll look into that even if its hugly bastardized |
10:51.22 | zarious | i want my god damn luaslinger. |
10:51.38 | BotanicalPuppet | umm why can't it be imported |
10:51.49 | zarious | scroll up. |
10:52.00 | zarious | shit you do't een have to scroll....just read like 6 lines ago lolol |
10:52.12 | BotanicalPuppet | relies on undefined fucntions? |
10:52.19 | Werelds | hell zarious, even the nurfed layout editor we had ages won't be doable atm |
10:52.24 | Werelds | well not 100% anyway |
10:52.34 | zarious | i wasn't around for the editor |
10:52.47 | BotanicalPuppet | oh ok, no point, no dynamically loaded data |
10:52.54 | Werelds | well it hasn't been in nurfed for like 2 years now |
10:52.57 | zarious | well i guess i was around for a very very early shitty versions which he disabled |
10:52.58 | zarious | oh |
10:53.04 | zarious | i thought there was a newer one |
10:53.08 | Werelds | nah |
10:53.15 | BotanicalPuppet | rebooting |
10:53.16 | Werelds | he never made it work for 2.0 |
10:53.37 | Werelds | which is fine, cuz the lua layouts were easier to do anyway |
10:53.38 | Werelds | :D |
10:53.45 | zarious | yeah |
10:54.03 | zarious | i need to get on wowinterface and look for that external xml editor whcih let you build interface windows and shit |
10:54.18 | zarious | see how usable it is in regards to war |
10:56.09 | Werelds | i wouldn't bother |
10:56.11 | Vonhinten | man, I just bolted some dude for 907 at 13 in Morkain Temple |
10:56.36 | zarious | with your mage bolt or w/e the first morale sorc's get right? |
10:56.38 | Vonhinten | if Bright Wizards are even more powerful than this sorc, then something's wrong |
10:56.44 | Vonhinten | no, with my doombolt |
10:57.05 | Werelds | bright wizards are a fucking joke |
10:57.15 | Werelds | i have dots critting me for 900ish |
10:57.15 | Vonhinten | mage bolt hits for a little over 600 at this level |
10:57.19 | Vonhinten | yeah |
10:57.26 | Werelds | i mean come on, a DOT ?! |
10:57.45 | zarious | lewl detonate |
10:57.48 | Werelds | and @ zarious: the WAR XML API is very unfinished |
10:57.49 | Vonhinten | I remember when cabalists in daoc were killing people with 1 crit DoT |
10:57.53 | zarious | if you spec dots and use all of them they're sick |
10:58.10 | zarious | yeah it looks pretty shit, i hope to code they do what they did for wow and make it so you don't need xml at all |
10:58.23 | Vonhinten | you don't need xml |
10:58.36 | zarious | you do need xml |
10:58.41 | Werelds | you do for some parts Vonhinten |
10:58.47 | Werelds | aii and i found that out this morning |
10:58.50 | Vonhinten | unless you want specific things that are only supported in xml currently |
10:58.52 | Werelds | scrollwindow = impossible with lua |
10:59.02 | Werelds | same goes for listbox |
10:59.10 | Werelds | you HAVE to use xml for that |
10:59.20 | Vonhinten | yeah |
10:59.27 | Vonhinten | some things require it |
10:59.46 | Vonhinten | but often you can get away with creating something mythic has already made by template |
11:00.00 | Vonhinten | i.e. CreateWindowFromTemplate |
11:00.04 | Werelds | yeah but that's the way it should be |
11:00.05 | Werelds | see |
11:00.18 | Werelds | all XML does, is DEFINE the looks of a ui element |
11:00.23 | *** join/#waruidev BotanicalPuppet (n=Botanica@adsl-69-230-183-166.dsl.irvnca.pacbell.net) |
11:00.27 | Werelds | and that's all XML should EVER do for any language |
11:00.44 | Werelds | it's processed in the code, from which you should then be able to manipulate what you defined |
11:00.48 | Vonhinten | (except they have event handling stuff in there too.. which I hate) |
11:01.09 | Werelds | mythic however have left some of the manipulation out when they exposed their code to lua |
11:01.17 | Werelds | most people use xml wrong |
11:01.28 | Werelds | because they misunderstand its purpose |
11:01.38 | Vonhinten | quite a few attributes aren't accessible from lua |
11:01.40 | Werelds | XML is a markup language, it defines things |
11:01.49 | Werelds | it does not actually give any data, nor process that |
11:02.07 | *** join/#waruidev Fal (n=Liquid5n@adsl-216-246-226-151.erx01.mtlcnds.ext.distributel.net) |
11:02.15 | Werelds | or shouldn't anyway :p |
11:02.29 | BotanicalPuppet | what's wrong with the way .mod's are? |
11:03.07 | *** join/#waruidev Chryzo_ (n=dtc@92.81.73.111) |
11:03.07 | BotanicalPuppet | err and .xml's :) |
11:03.15 | Werelds | .mod's are fine, with the exception that they're not transparent enough |
11:03.19 | Chryzo_ | ... |
11:03.36 | Werelds | we still don't know when exactly the onXXX's are called |
11:03.48 | Werelds | onupdate is UPDATE_PROCESSED most likely |
11:03.49 | zarious | oh ffs i hate hooking |
11:04.18 | BotanicalPuppet | what happened? |
11:04.36 | Werelds | and BotanicalPuppet, we were talking about how some XML elements cannot be manipulated or even accessed in LUA |
11:04.50 | BotanicalPuppet | re hooking, what went wrong |
11:05.51 | zarious | i've added functions into zTimeLib which allow you to create a 'periodic latch', the latch prevents the underlying function form running more than once per N period |
11:05.54 | zarious | this works great |
11:06.11 | BotanicalPuppet | chryzo_ i see you use several .dll files to modularize your code |
11:06.11 | zarious | now i'm trying to make it hook the given function, and then unhook on terminate |
11:06.53 | BotanicalPuppet | could you please place any kind of 'create myp' or 'compress file for insertion to myp', etc, functions in their own dll and i'll hack on it |
11:06.53 | zarious | but my hook code doesn't work right |
11:07.43 | BotanicalPuppet | NO UNHOOK |
11:07.46 | BotanicalPuppet | NO UNHOOK |
11:07.57 | zarious | .... |
11:08.11 | BotanicalPuppet | you're not the only kid with his hand in the cookie jar |
11:08.14 | zarious | it returns to the original function |
11:08.33 | zarious | which is unhooking in my book |
11:08.40 | BotanicalPuppet | i'll paste in some code on proper hooking |
11:08.59 | BotanicalPuppet | you do NOT unhook... code will execute but you break any code down the chain with their hooks |
11:09.08 | zarious | for the love of fucking god |
11:09.09 | zarious | i know |
11:09.16 | BotanicalPuppet | ok |
11:09.22 | zarious | <PROTECTED> |
11:09.26 | zarious | http://www.thewarwiki.com/wiki/API:Correct_Hooking_Procedure |
11:09.44 | zarious | this hooking method is so hacky imo |
11:09.52 | zarious | wtb api hooking : / |
11:10.30 | BotanicalPuppet | wts... :) DevUtils could have something like that |
11:10.36 | BotanicalPuppet | http://waruidev.pastey.net/98070 |
11:10.47 | BotanicalPuppet | FunctionHookDebug is a complexer example than the API: page |
11:12.12 | BotanicalPuppet | basically any top level global is in _G[] |
11:12.25 | BotanicalPuppet | and any member variables of a top level are in _g[][] |
11:12.49 | Vonhinten | it is safe to unhook your function if the current function points to your custom function |
11:12.56 | BotanicalPuppet | so to get to hook something like MyWindow.OnShow... _G["MyWindow"]["OnShow"] |
11:12.57 | zarious | _g = nil |
11:13.03 | BotanicalPuppet | typo |
11:13.21 | zarious | Vonhinten, i was thinking that'd be ok, but now that i think about it, it'd be better to just noop |
11:13.42 | BotanicalPuppet | Vonhinten, yes, if you check that it's fine. good idea actually, i could kill some of FHD's hooks that way. |
11:13.57 | zarious | because if something else hooks after i do, and then i return to original func, they loose their hook |
11:14.21 | BotanicalPuppet | you'd have to check for _G["Func"] == FHD_G["Func"].cur -- nobody else in chain after |
11:14.23 | Vonhinten | if your function is the current, you're at the end of the chain |
11:14.42 | zarious | reread what i said Vonhinten |
11:14.52 | BotanicalPuppet | i'll put some code for doing that in my stop/resume and upload new pastey |
11:15.14 | Vonhinten | zarious, if someone hooks after you do, you're not at the end of the chain |
11:15.21 | zarious | if i hook somefunc, and then you hook it after me, and then i finish w/e i'm doing and overwrite somefunc with a copy of it i made when i made my hook, you loose your hook |
11:15.24 | BotanicalPuppet | zarious i dont understand your argument |
11:15.28 | Vonhinten | if they cache the function without hooking it, they're doing bad shit |
11:15.50 | BotanicalPuppet | there is no addon threading or very limited at best |
11:16.12 | zarious | but i dunno, i'm new to hooking this way and i haven't gotten my proof of concept working yet, so fuck me |
11:16.32 | BotanicalPuppet | np.. lol... read some of the example code it'll make it clear what is safe to do |
11:16.39 | zarious | bleh, ztimelib will be finished if i can get this damn thing done |
11:16.58 | zarious | unless i want to add adaptive scheduling / time dilation |
11:17.09 | zarious | or other weird schedulers |
11:17.16 | BotanicalPuppet | don't, it's just code bloat imo.. make it solid get it out |
11:18.12 | zarious | current version is solid and out and skinny only two functions in it atm you could prob take out but i left them in so that you could use the GetRealTime command without having to convert it from a seconds number since everybody using it will do that |
11:19.17 | zarious | though its missing the periodiclatch functions, and the framescheduler (ability to basically create new onupdate timers) |
11:19.26 | zarious | well not create, but hook into |
11:19.47 | zarious | i'll prob add a zero-memory scheduler which creates a frame then uses its onupdate for that |
11:19.58 | BotanicalPuppet | you're going to get a function called more often than frame refresh? |
11:20.11 | zarious | thats not possible? |
11:20.19 | BotanicalPuppet | i'm asking what you want to do |
11:20.23 | BotanicalPuppet | certainly possible |
11:20.27 | zarious | o_O |
11:20.29 | zarious | how |
11:20.38 | BotanicalPuppet | there's no event for it but func() func() .. ;p |
11:20.58 | zarious | lol quiet you |
11:21.09 | zarious | atm zTime has two main schedulers |
11:21.29 | BotanicalPuppet | imo handle them all withon OnUpdate if you don't... don't register for more than one timer that updates quickly |
11:21.43 | BotanicalPuppet | zTime that is, should be based off the single timer from WAR |
11:21.45 | Repo | 10libstats2: 03pwerelds * r5 / (3 files in 3 directories): (Message trimmed by 1 line) |
11:21.46 | Repo | * Scoped a few things a bit better |
11:21.49 | Repo | * Added %U to System.Time; returns seconds since midnight |
11:21.55 | Repo | * Added function registration in addition to labels |
11:22.01 | Repo | * Documentation is underway, this will most likely become release 1.0 |
11:22.16 | zarious | one is for general purpose timers/scheduling and its throttled, the other is not throttled and comes with giant fucking warnings not to use it unless you are positive you need supersub second percision |
11:22.20 | Werelds | excess flood inc |
11:22.22 | Werelds | bye Repo |
11:22.24 | Werelds | :{ |
11:22.33 | zarious | yeah, its all based off of one onupdate |
11:22.39 | BotanicalPuppet | oh i see |
11:22.49 | BotanicalPuppet | you're letting most timers go into a throttled check for their times |
11:23.29 | BotanicalPuppet | or i dont see |
11:23.54 | zarious | the onupate function basically, keeps an epoch val up to date, runs the framescheduler (anything in its scheudle gets called everyframe unthrottled) and then calls the main scheduler (this call is throttled) |
11:23.57 | BotanicalPuppet | what's being done? how does it differ from doing a decent sort on timer lengths before comparisons |
11:24.40 | zarious | theres no sorting, i might add that later, but im not convinced sorting would be faster |
11:24.53 | zarious | i guess you could do smart ordering during schedule add, but meh |
11:24.55 | BotanicalPuppet | this is one area where i think it would pay to test |
11:25.11 | BotanicalPuppet | people want a lib to be better than rolling their own |
11:25.14 | zarious | well i need to get everything finished and then stress test it |
11:25.33 | zarious | see how it handles 1000 schedules |
11:25.54 | zarious | i prob use 15 for my mod zTweaks |
11:26.43 | zarious | <PROTECTED> |
11:27.22 | BotanicalPuppet | the simplest sort would be what you do... put them in a binary division (or four) based on length of maxtimer |
11:27.23 | zarious | i'm very open to tips/ideas on how to make it cleaning/more efficent |
11:27.37 | zarious | as its a scheduling lib |
11:27.52 | *** join/#waruidev tom0 (n=chatzill@ip51cc6858.adsl-surfen.hetnet.nl) |
11:28.03 | zarious | binary division? |
11:28.09 | BotanicalPuppet | well let me rephrase entirely |
11:28.59 | BotanicalPuppet | anything with max_timer > n can go into a bin where it is checked N-delta (where delta is a very small numbers) seconds and safely and reliably execute every time, with no more than N delay |
11:29.09 | tom0 | Hey Aiiane, about yesterday's direction issue, it seems to work well except for certain moment when it first says you need to go left, and then you go a bit left, and then it says you need to go right again, and when you go right you need to go left again and it keeps looping if you know what I mean. do you have any idea what could cause that maybe? |
11:29.27 | zarious | current what happens when you schedule something, it gets put into the table, the lib calcs the future run time by adding it to the current time, then the dispatcher checks every entry's runtime against the current time and if its >= runs the schedule |
11:29.49 | BotanicalPuppet | so you have your bins set up as N * 2^0, N * 2^1, N * 2^2, N * 2 ^ 3, where N = onupdate delay. |
11:30.10 | zarious | hmmm |
11:30.20 | zarious | i like that idea |
11:30.30 | BotanicalPuppet | those in the N * 2 ^ 3 bin get checked around every 8 N-delta |
11:30.35 | zarious | yeah |
11:30.40 | zarious | that doesn't sound too hard |
11:31.05 | zarious | i got all scared when you said sorting....was picturing a table.sort or something which i would've promptly slapped you for mentioning |
11:31.22 | BotanicalPuppet | just be sure to update their timer not from when it got their queue activated but from when the queue was acted upon (i.e. not when the expected to be called but when they actually are).. you prolly do that of course |
11:31.35 | zarious | yeah |
11:31.58 | zarious | i ran into some problems where repeating timers would slowly get out of whack b/c of throttling |
11:32.31 | zarious | i was scratcing my head for a while trying to figure out what was causing that |
11:33.31 | BotanicalPuppet | N should be much greater than update delay in normal conditions, it should only be near it in the lowfps conditions that every addon should expect some or all of the time |
11:33.43 | BotanicalPuppet | addons cant depend on 80 fps machines |
11:33.46 | zarious | yeah |
11:33.58 | BotanicalPuppet | so ... onupdate delay should be at least 0.05 or coded for such time possibly |
11:34.09 | BotanicalPuppet | so... N should be somewhat larger |
11:34.16 | BotanicalPuppet | (0.05 s = 20 fps) |
11:34.27 | zarious | which i made a simple fps counter to show the difference in what the framescheduler vs normal scheduler does and why you should never use framescheduler unless required |
11:34.35 | BotanicalPuppet | and just err those who are trying to alias your timer as an onupdate event on registry |
11:34.53 | BotanicalPuppet | if they are less then N, that is |
11:35.26 | BotanicalPuppet | or give them an alternative onupdate alias function "timer" |
11:36.27 | BotanicalPuppet | btw... as to sorting... what would be wrong with a simple FIFO list? |
11:36.45 | zarious | thats what it does now |
11:37.20 | BotanicalPuppet | does it insert timers at the end or based on their place in the FIFO list by time left? |
11:37.24 | zarious | my current throttling delay is set to 0.05 |
11:37.38 | zarious | it just inserts them at the end of the table atm, theres no sorting whatsoever |
11:37.46 | BotanicalPuppet | hmm |
11:37.53 | zarious | all timers are checked for exec everytime the scheduler is called |
11:38.06 | zarious | i'll implement the buckets thing today prob |
11:38.12 | zarious | need to get this fucking hooker done |
11:38.22 | zarious | (the functions, no the woman) |
11:38.53 | BotanicalPuppet | someone must have done a scheduler in C or something, maybe even lua... who are you stealing from? |
11:39.11 | zarious | nobody? |
11:39.30 | *** join/#waruidev Repo (n=supybot@69.57.184.216) |
11:39.30 | *** mode/#WARUIDev [+v Repo] by ChanServ |
11:39.36 | BotanicalPuppet | start snooping on heavyduty GPL/ open source schedule libraries for ideas when you can :) |
11:39.36 | zarious | i looked at how rdx and libtimer did it and then wrote the whole thing from scratch |
11:39.52 | *** join/#waruidev Repo (n=supybot@69.57.184.216) |
11:39.52 | *** mode/#WARUIDev [+v Repo] by ChanServ |
11:40.04 | zarious | only thing i've stolen was the periodic latch |
11:40.12 | zarious | ^^^ lol |
11:40.13 | *** join/#waruidev Repo (n=supybot@69.57.184.216) |
11:40.20 | *** mode/#WARUIDev [+v Repo] by ChanServ |
11:40.20 | BotanicalPuppet | ya... fortunately open source say steal me |
11:40.35 | *** join/#waruidev Repo (n=supybot@69.57.184.216) |
11:40.35 | *** mode/#WARUIDev [+v Repo] by ChanServ |
11:41.10 | zarious | ok damnit why is this not working |
11:41.52 | BotanicalPuppet | paset |
11:41.59 | zarious | yeah sec |
11:45.36 | zarious | http://pastey.net/98071 |
11:46.10 | BotanicalPuppet | what do you find not working btw |
11:46.22 | BotanicalPuppet | 1st comment? |
11:46.47 | zarious | the hooker |
11:46.53 | zarious | that first command works |
11:47.13 | BotanicalPuppet | zTime.HookPeriodicLatch(period, func) |
11:47.14 | zarious | you supply a function and a time period and it rturns and function with a wrapper that prevents it from running more than once per x |
11:47.17 | zarious | yeah |
11:47.25 | zarious | i can't get the hooking to work |
11:47.44 | BotanicalPuppet | func = |
11:47.55 | BotanicalPuppet | func is a local to .HookPeriod in scope? |
11:48.32 | zarious | it should be the argument to hookperiodiclatch, but maybe i'v got conflicting names |
11:48.37 | BotanicalPuppet | so the value is thrown away |
11:48.45 | BotanicalPuppet | func = run return term -- func is dead |
11:49.19 | *** join/#waruidev euphonious (n=euphonio@66.237.5.217) |
11:49.33 | zarious | yeah i know the unhooking isn't done right, i'm working on the hooking part first lol |
11:49.36 | zarious | one step at a time |
11:49.37 | BotanicalPuppet | <PROTECTED> |
11:49.54 | zarious | oh |
11:50.03 | euphonious | hello, I had seen people takling about an application that allowed you to view/parse EA's interface in the .myp file but forgot what the application was called, what was it?! |
11:50.07 | BotanicalPuppet | changing func in that function will change a local variable with no effect elsewhere... unless you perhaps change other data pointed to by func |
11:50.10 | zarious | well then how do i overwrite a function when its supplied as an argument |
11:50.17 | BotanicalPuppet | you need its name |
11:50.26 | BotanicalPuppet | you didn't read my code :( |
11:50.37 | BotanicalPuppet | http://waruidev.pastey.net/98070 |
11:50.41 | zarious | it was confusing lol, and i don't understand hooking this way very well |
11:51.41 | BotanicalPuppet | pseudocode: dealing with tables _G (global), MY_CUR_G (I define this one), MY_PREV_G (I define this one), all keyed by function name (string).. |
11:52.01 | zarious | oh im retarded you said that earlier |
11:52.08 | zarious | to find it in the _G table |
11:52.47 | BotanicalPuppet | local function foo() end; n="foo"; MY_CUR_G[n] MY_PREV_G[n] = _G[n]; _G[n] = MY_CUR_G[n] |
11:53.06 | BotanicalPuppet | err MY_CUR_G[n] = foo; MY_PREV_G[n] = _G[n]; _G[n] = MY_CUR_G[n] |
11:53.31 | BotanicalPuppet | pseudocode illustrates how you are always dealing with two variables you handle and a global _G |
11:54.30 | BotanicalPuppet | you should have tables for all the hook functions and the functions previously existing to their hooks |
11:55.14 | BotanicalPuppet | indexed by fname.... and the way to get fname is by getting the first key matching a value f where f is the function reference (i guess an offset) that you are familiar with |
11:55.57 | BotanicalPuppet | or fname = first_key_for( f, _G ) to pull it from the current, live top of the stack function |
11:56.45 | zarious | lol, maybe that asn't such a good idea |
11:56.53 | zarious | don't type DUMP_TABLE(_G) |
11:56.55 | zarious | xD |
11:57.01 | BotanicalPuppet | (which should be the same as first_key_for( cur_f, MY_CUR_G ) or first_key_for( prev_f, MY_PREV_G ) |
11:57.29 | BotanicalPuppet | since they are all concerning the same function, kinda, overlayed on each other, but with the same string associated for function calls |
11:57.36 | BotanicalPuppet | that help? |
11:58.22 | zarious | i think im more confused tbh, i prob only understood about 1/8th of that, so i need to overwrite it via _G[func] = run no? |
11:59.27 | BotanicalPuppet | well if ... func is a global, it is overwritten by the local argument for the default reference... if you named the local argument something other than func you could use func = to hook it |
11:59.51 | BotanicalPuppet | or if you used standard syntactic sugar to get out of local scope |
12:00.01 | BotanicalPuppet | in layman's terms |
12:00.39 | BotanicalPuppet | function func() end can be changed later anywhere it is visible by func = otherfunc or _G["func"] = otherfunc or _G.func = otherfunc |
12:00.56 | BotanicalPuppet | but func isn't visible because you have it overwritten by a local argument |
12:01.25 | BotanicalPuppet | so _G["func"] will fix that without changing the name of the argument |
12:01.38 | BotanicalPuppet | "overwritten" as in "scoped out" |
12:01.49 | BotanicalPuppet | grr i am not a good teacher :( |
12:02.18 | zarious | its ok, you're just a lot better at coding / coding concepts than me, so its harder to explain |
12:02.26 | BotanicalPuppet | yes _G["func"]["member"]["membersbaby"] will always work |
12:03.06 | BotanicalPuppet | it will always access the global table of all functions, which is where everyone is pulling the values for where to call code, based on their keys, which are the names func, member, and membersbaby |
12:04.16 | BotanicalPuppet | so... do something like /script d( _G["GameData"]["Player"]["Career"][line] ) -- see what you get! |
12:05.21 | BotanicalPuppet | everything about data structures in lua is syntactic sugar for making tables, so... |
12:05.44 | zarious | ok so for example |
12:05.56 | BotanicalPuppet | a.b.c == a[b].c == a.b[c] == a["b"].c == _G[a][b][c] |
12:06.43 | zarious | if i defined a function called abc.def() (inside abc's namespace/table) then i could also reference it via _G["abc"]["def"]? |
12:07.27 | BotanicalPuppet | lua> abc = { def = "function" } print _G["abc"]["def"] |
12:07.27 | lua_bot | BotanicalPuppet: luabot:1: '=' expected near '_G' |
12:07.59 | BotanicalPuppet | lua> abc = {} abc.def = "function"; print _G["abc"]["def"] |
12:07.59 | lua_bot | BotanicalPuppet: luabot:1: '=' expected near '_G' |
12:08.09 | BotanicalPuppet | lua> abc = {} abc.def = "function"; print (_G["abc"]["def"]) |
12:08.09 | lua_bot | BotanicalPuppet: function |
12:08.12 | BotanicalPuppet | derr! |
12:08.40 | BotanicalPuppet | lua> abc = { def = "function" } print (_G["abc"]["def"]) |
12:08.40 | lua_bot | BotanicalPuppet: function |
12:08.59 | BotanicalPuppet | long story short ya |
12:09.14 | BotanicalPuppet | there's only one global namespace in lua |
12:09.20 | BotanicalPuppet | there is NO other way to share names among files |
12:09.33 | BotanicalPuppet | short of i/o hacks or some other language |
12:09.49 | *** join/#waruidev Soltanis (i=Soltanis@81.168.16.197) |
12:10.25 | zarious | i might just leave the hooking code out tbh, not sure it really belongs in this lib |
12:10.35 | zarious | but i can't bitch out and not get it working regardless |
12:10.40 | BotanicalPuppet | i have no idea why your timer lib needs to hook anything :) |
12:10.49 | BotanicalPuppet | other than onupdate |
12:10.58 | BotanicalPuppet | which is not a hook anyway |
12:11.04 | zarious | it doesnt |
12:11.20 | BotanicalPuppet | as to how to call something faster, more often than frame refresh.... |
12:11.22 | zarious | just the latch fucntion kinda works well with hooking |
12:11.33 | BotanicalPuppet | find a function that is called often and out of sync with framerefresh update messages |
12:11.42 | BotanicalPuppet | hook it, have it call your onupdate as well as the framerefresh |
12:11.44 | BotanicalPuppet | viola |
12:12.18 | BotanicalPuppet | i thought the point of a library of timers is to call other functions, not have them call you back |
12:13.15 | BotanicalPuppet | i guess i have to read your code :( |
12:13.34 | zarious | nah don't worry about it |
12:13.34 | Werelds | i love writing documentation, so much fun :< |
12:13.48 | zarious | yeah |
12:14.01 | BotanicalPuppet | "a periodic latch prevents the underlying function from runnin more than once every n seconds" |
12:14.07 | BotanicalPuppet | why do you need such functionality? |
12:14.37 | zarious | its nice for various things |
12:14.46 | BotanicalPuppet | ehh |
12:14.50 | zarious | mainly binding functions to an event that you know is gonna get the shit called out of it |
12:14.55 | BotanicalPuppet | oh ok' |
12:15.17 | BotanicalPuppet | but why would you need it in your scheduler lib |
12:15.37 | zarious | cuz its a scheduling related func imo |
12:15.48 | zarious | you're locking something out for N period |
12:15.52 | BotanicalPuppet | what can they request to be scheduled for other than "another n milliseconds elapsed"? |
12:16.12 | zarious | ? |
12:16.21 | BotanicalPuppet | what are you doing :( |
12:16.31 | BotanicalPuppet | post more code or link? |
12:16.35 | zarious | apparently something you don't understand lol |
12:17.29 | zarious | http://war.curseforge.com/projects/ztimelib/ |
12:17.46 | zarious | the latch isn't in that though |
12:17.52 | zarious | only stubs |
12:17.58 | zarious | which are going to be incorrect anyways |
12:18.09 | Wobin | I can't believe noone chose the name 'Newton' for a Witch Hunter on this server |
12:18.16 | Wobin | how much are surnames? |
12:18.20 | zarious | 4g |
12:18.24 | BotanicalPuppet | rank 20 |
12:18.24 | Wobin | hm |
12:18.30 | Wobin | ta |
12:19.02 | *** join/#waruidev hallas (n=christof@77.75.161.139) |
12:19.13 | BotanicalPuppet | is surname modifiable after being set? |
12:20.25 | Wobin | All servers should have at least 1 witch hunter named Newton Pulsifer |
12:20.51 | Vonhinten | omg, Ice Spikes is crazy |
12:20.58 | Vonhinten | that thing will get you killed |
12:21.00 | Wobin | Although I did kill a black orc called Chuk Norris a number of times in Mourkain Temple |
12:21.16 | zarious | ...ffs ok i understand why it wasn't working BotanicalPuppet |
12:21.25 | BotanicalPuppet | ya? |
12:21.37 | zarious | yeah, my test function was zTweaks.Print |
12:22.20 | zarious | and i would make a schedule to have it spam the time every 0.5 seconds, then i made a latch so it would only do it once every 4 seconds |
12:22.34 | zarious | but when my hooker command tried to overwrite the real function with the latch'd one |
12:22.52 | zarious | i used the command _G[func] = (newlatchedfunction) |
12:23.01 | zarious | which doesn't work for zTweaks.xxx |
12:23.38 | BotanicalPuppet | lua> func foo() print("foo!") end func foobar() print("foobar!") end func imevil(f) f = foobar end; drumroll = foo; imevil(foo);drumroll() |
12:23.38 | lua_bot | BotanicalPuppet: luabot:1: '=' expected near 'foo' |
12:23.40 | zarious | i would had to use _G["zTweaks"]["Print"] not _G["zTweaks.Print"] which is effectivly what the command was doing |
12:23.53 | zarious | sooooo |
12:24.20 | BotanicalPuppet | lua> function foo() print("foo!") end function foobar() print("foobar!") end function imevil(f) f = foobar end; drumroll = foo; imevil(foo);drumroll() |
12:24.20 | lua_bot | BotanicalPuppet: foo! |
12:24.22 | zarious | is there a good way to do that? given a function as an argument, overwrite that same function globally? |
12:24.41 | zarious | ps don't kill me if you said it already |
12:24.41 | BotanicalPuppet | lua> function foo() print("foo!") end function foobar() print("foobar!") end function imevil(f) f = foobar end; drumroll = foo; imevil(drumroll);drumroll() |
12:24.41 | lua_bot | BotanicalPuppet: foo! |
12:25.03 | BotanicalPuppet | well first read that |
12:25.10 | BotanicalPuppet | it tells you what went wrong |
12:25.23 | BotanicalPuppet | your function being called by someone else is the equivalent of imevil |
12:25.41 | BotanicalPuppet | they are passing in the value of foo |
12:25.43 | zarious | lol, this is why i don't get it, i ask for a stright answer and get that, no offence, just saying |
12:26.03 | BotanicalPuppet | sorry you have catching up to do with basic programming :( i mean first year |
12:26.04 | zarious | i understand that its only in the scope of that function |
12:26.11 | BotanicalPuppet | pass by value |
12:26.15 | BotanicalPuppet | do not modify arguments |
12:26.15 | hallas | I get a very strange error |
12:26.28 | hallas | Invalid parameters to LogLuaMessage :) |
12:26.35 | BotanicalPuppet | if you just want the fix i'll give you a fix to my code above |
12:27.05 | zarious | i think i'd understand it better from seeing the fix tbh |
12:27.15 | zarious | but i don't think i'll put this code into the lib |
12:27.17 | zarious | so its nota big deal |
12:28.54 | BotanicalPuppet | lua> function lookup(value, t) for k,v in pairs(t) do if (value == v) then return k end end return nil end return nil; print( lookup( lookup, _G ) ) |
12:28.54 | lua_bot | BotanicalPuppet: luabot:1: '<eof>' expected near 'print' |
12:29.09 | BotanicalPuppet | lua> function lookup(value, t) for k,v in pairs(t) do if (value == v) then return k end end return nil end; print( lookup( lookup, _G ) ) |
12:29.09 | lua_bot | BotanicalPuppet: lookup |
12:29.30 | BotanicalPuppet | that's a reverse lookup function, ie what i was calling first_key_for |
12:29.58 | BotanicalPuppet | lua_bot is printing the string |
12:30.16 | BotanicalPuppet | which is the key of the global variable lookup |
12:30.32 | BotanicalPuppet | located at _G["lookup"] = HEXFORFUNCTIONPOINTER |
12:31.43 | zarious | ok see now i understand what you were saying before about the key |
12:31.50 | BotanicalPuppet | lua> function lookup(value, t) for k,v in pairs(t) do if (value == v) then return k end end return nil end; endfunc foo() print("foo!") end func foobar() print("foobar!") end func imevil(f) _G[lookup(f, _G] = foobar end; drumroll = foo; imevil(drumroll); drumroll() |
12:31.50 | lua_bot | BotanicalPuppet: luabot:1: '=' expected near 'foo' |
12:32.08 | BotanicalPuppet | lua> function lookup(value, t) for k,v in pairs(t) do if (value == v) then return k end end return nil end; endfunc foo() print("foo!") end func foobar() print("foobar!") end func imevil(f) _G[lookup(f, _G) = foobar end; drumroll = foo; imevil(drumroll); drumroll() |
12:32.08 | lua_bot | BotanicalPuppet: luabot:1: '=' expected near 'foo' |
12:32.23 | Repo | 10libstats2: 03pwerelds 041.0 * r6 : Tagging as 1.0, documentation is online now. |
12:32.28 | zarious | and im not retarded just b/c i haven't taken first year programming or w/e you were saying, i just have to see what im doing to understand it |
12:33.00 | zarious | but i never took programming college, i did networking |
12:33.06 | BotanicalPuppet | lua> function lookup(value, t) for k,v in pairs(t) do if (value == v) then return k end end return nil end; function foo() print("foo!") end function foobar() print("foobar!") end function imevil(f) _G[lookup(f, _G) = foobar end; drumroll = foo; imevil(drumroll); drumroll() |
12:33.06 | lua_bot | BotanicalPuppet: luabot:1: ']' expected near '=' |
12:33.07 | zarious | so i guess i can't bitch THAT much |
12:33.09 | BotanicalPuppet | grr |
12:33.35 | Werelds | GRRRRRRRRRRR |
12:33.36 | Werelds | ROAR |
12:33.42 | zarious | wait isn't lookup defined in lua anyways? |
12:33.44 | Werelds | nice little kitten BotanicalPuppet |
12:33.45 | BotanicalPuppet | lua> function lookup(value, t) for k,v in pairs(t) do if (value == v) then return k end end return nil end; function foo() print("foo!") end function foobar() print("foobar!") end function imevil(f) _G[lookup(f, _G)] = foobar end; drumroll = foo; imevil(drumroll); drumroll() |
12:33.45 | lua_bot | BotanicalPuppet: foobar! |
12:34.03 | BotanicalPuppet | contrast with your earlier imevil... |
12:34.26 | BotanicalPuppet | lua> function lookup(value, t) for k,v in pairs(t) do if (value == v) then return k end end return nil end; function foo() print("foo!") end function foobar() print("foobar!") end function imevil(f) f = foobar end; drumroll = foo; imevil(drumroll); drumroll() |
12:34.26 | lua_bot | BotanicalPuppet: foo! |
12:34.45 | zarious | code without tabs makes my head hurt |
12:35.13 | BotanicalPuppet | zarious: let me know if you find it... going key->value is predefined but value->key is not, probably in part because value is not guaranteed to be distinct |
12:35.31 | BotanicalPuppet | i will upload pastey |
12:35.44 | zarious | nah i wrote it out and i understand what that function you wrote does |
12:35.57 | zarious | and it makes sense hwo you're doing it, you're doing, like you said, a reverse lookup |
12:36.20 | zarious | and i think you were trying to tell me that all along, i just wasn't following |
12:36.37 | BotanicalPuppet | i don't mean to be haughty or anything at all b4 |
12:36.40 | Vonhinten | which isn't really necessary if you pass a string representation of the hook function |
12:36.52 | BotanicalPuppet | irc is not they way to learn a programming concept that people stumble over for 6 months |
12:36.57 | Vonhinten | rather than the actual function pointer |
12:37.18 | BotanicalPuppet | ie when i call a function, it gets a copy of what i pass to it pushed on to the stack |
12:38.03 | BotanicalPuppet | changing that copy by itself does squat after the called function exits |
12:38.22 | zarious | Vonhinten, i don't know how you would do that, or look it up via a string without using regex to break it apart |
12:38.26 | BotanicalPuppet | the stack pops off the arguments to the function and throws them away |
12:39.19 | Vonhinten | zarious, MyAddon.MyFunction is the same as _G["MyAddon"]["MyFunction"] as someone said earlier |
12:39.46 | Vonhinten | so, you pass in "MyAddon.MyFunction" like you do all over the place in Mythic's API, and the code parses it out |
12:39.56 | BotanicalPuppet | if you're being passed references (instead of strings) for functions that aren't in top global scope, you'd have to search all of _G to find them |
12:40.14 | *** join/#waruidev ckknight (n=ckknight@WoWUIDev/WoWAce/CurseStaff/CurseForge/ckknight) |
12:40.22 | Vonhinten | there's not much reason to pass actual function refs, that I can see |
12:40.24 | BotanicalPuppet | ie submembers of _G are harder to find |
12:40.27 | *** mode/#WARUIDev [+o ckknight] by ChanServ |
12:40.31 | zarious | i didn't thinkg ["MyAddon.MyFunction"] was legal or equal to ["MyAddon"]["MyFunction"] |
12:40.32 | Vonhinten | unless you're passing anonymous functions |
12:40.35 | BotanicalPuppet | no there is not for this kind of purpose |
12:40.39 | Vonhinten | zarious, it's not |
12:40.44 | BotanicalPuppet | ya zarious, not |
12:40.55 | Vonhinten | that's why I said "and the code parses it out" |
12:41.08 | hallas | it isnt the same thing anyway |
12:42.18 | BotanicalPuppet | _G["MyAddon"]["MyFunction"] gets the global _G, finds the value stored at the key "MyAddon", and with the resulting table, finds the value stored at the key "MyFunction"... and that's what it is |
12:42.32 | zarious | right |
12:42.53 | BotanicalPuppet | if you had a pressing reason to pass by reference.... |
12:43.38 | BotanicalPuppet | hookhandler( top, top.second, top.second.third, top.second.third.bottom ) instead of hookhandler ( top.second.third.bottom ) |
12:43.44 | zarious | i was just thinking of how i (with my knowledge of programming in lua) would use the string name of a function to find it in the global table, and that it would be slower than using a reverse lookup |
12:44.24 | BotanicalPuppet | it is |
12:44.46 | Vonhinten | I doubt it |
12:44.46 | BotanicalPuppet | definitely is faster to go key-> value then to find a key with a given value |
12:44.59 | Vonhinten | lua is highly optimized for table use |
12:45.06 | Vonhinten | iterating it yourself is bound to be slower |
12:45.07 | BotanicalPuppet | von, you aren't parsing |
12:45.12 | BotanicalPuppet | we're agreeing |
12:45.19 | BotanicalPuppet | keys are names, string |
12:45.25 | BotanicalPuppet | value is function offset |
12:45.40 | BotanicalPuppet | _G["name"] is faster than lookup(name) |
12:45.45 | Vonhinten | oh, thought you were saying "it is" to "that it would be slower" |
12:46.37 | BotanicalPuppet | unless you have a special reason, your hook handler should take a string |
12:47.08 | zarious | hmm |
12:47.14 | hallas | Cant wait... |
12:47.21 | hallas | 16 more days for Disturbed / Shinedown concert |
12:47.26 | zarious | o_O |
12:47.31 | zarious | i'm seeing ac/dc in jan |
12:47.39 | hallas | AC/DC wont ever come to Denmark |
12:47.41 | zarious | i can't believe they're still alive, but thats cool |
12:47.50 | BotanicalPuppet | HOWEVER,... you gave me a great idea for DevUtils |
12:48.20 | BotanicalPuppet | function_handle_to_string( infantarg, babyarg, childarg, motherarg, grandmotherarg, ... ) |
12:48.42 | BotanicalPuppet | with any number of arguments as long as you have 1.... finds it in the global table |
12:50.06 | BotanicalPuppet | maybe function_handle_to_string( number depth, infantarg, ... ) -- set depth -1 if you don't know |
12:50.48 | *** join/#waruidev Undine (i=shamus@92-238-208-134.cable.ubr09.hawk.blueyonder.co.uk) |
12:50.52 | zarious | this hex thing, is that the key? |
12:51.11 | BotanicalPuppet | yes, hex is the format in which offsets/pointers to functions are printed |
12:51.15 | BotanicalPuppet | usually |
12:51.42 | zarious | can i overwrite the function via its hex id? |
12:51.51 | BotanicalPuppet | lua> function foo() end; print ( type(foo) ); print ( foo ); |
12:51.51 | lua_bot | BotanicalPuppet: function, function: 0x8078b30 |
12:52.02 | zarious | right |
12:52.04 | BotanicalPuppet | if you uhhh... knew the bytecode? |
12:52.13 | BotanicalPuppet | i dunno |
12:52.15 | BotanicalPuppet | sounds crazy lol |
12:52.31 | zarious | just thinkin outloud |
12:53.16 | BotanicalPuppet | i don't think that lua has those random access functions for memory or even real pointers.. esp. not in WAR's version, could be wrong |
12:54.30 | BotanicalPuppet | lua> function foo() return true end; print ( type ( foo ) ); print ( foo() ); print ( foo ); |
12:54.30 | lua_bot | BotanicalPuppet: function, true, function: 0x809bb40 |
12:54.46 | BotanicalPuppet | lua> function foo() return true end; print ( type ( foo ) ); print ( foo() ); print ( foo ); foo[1] == "a" |
12:54.46 | lua_bot | BotanicalPuppet: luabot:1: '=' expected near '==' |
12:55.06 | BotanicalPuppet | lua> function foo() return true end; print ( type ( foo ) ); print ( foo() ); print ( foo ); foo[1] = "a" |
12:55.06 | lua_bot | BotanicalPuppet: function, true, function: 0x809bb40, luabot:1: attempt to index global 'foo' (a function value) |
12:56.01 | Wobin | er |
12:56.01 | BotanicalPuppet | lua> function foo() return true end; print ( type ( foo ) ); print ( foo() ); print ( foo ); if( foo[1] > "Z" ) print ( ">Z" ) else print ( "<Z" ) end |
12:56.01 | lua_bot | BotanicalPuppet: luabot:1: 'then' expected near 'print' |
12:56.09 | Wobin | that hex code is the memory position |
12:56.11 | BotanicalPuppet | lua> function foo() return true end; print ( type ( foo ) ); print ( foo() ); print ( foo ); if( foo[1] > "Z" ) then print ( ">Z" ) else print ( "<Z" ) end |
12:56.11 | lua_bot | BotanicalPuppet: function, true, function: 0x809bb40, luabot:1: attempt to index global 'foo' (a function value) |
12:56.29 | BotanicalPuppet | where's my * |
12:56.36 | Wobin | There are no 'pointers' you can use to set it =P |
12:56.49 | BotanicalPuppet | ok question answered then |
12:58.05 | BotanicalPuppet | lua> function foo() return true end; print ( type ( foo ) ); print ( foo() ); print ( foo ); foo[1] = function() foo() foo(); return 5 end; if( foo[1] > 3 ) then print ( ">Z" ) else print ( "<Z" ) end |
12:58.06 | lua_bot | BotanicalPuppet: function, true, function: 0x80a0b00, luabot:1: attempt to index global 'foo' (a function value) |
12:58.38 | BotanicalPuppet | functions != tables gotcha |
13:00.25 | hallas | OnMouseOverEnd isnt this an event? |
13:04.24 | BotanicalPuppet | big pastey for zarious to copy to a local file and use for hacking his zlib: http://pastey.net/98076 |
13:06.05 | BotanicalPuppet | if i can find lua i'll pasty that too |
13:09.15 | BotanicalPuppet | http://www.perl.com/doc/FMTEYEWTK/pdsc/index.html and anything else perl might be useful, since perl has a heckuva lot more in common with lua than C |
13:10.56 | Repo | 10ztimelib: 03zMod * r20 / (3 files in 1 directory): *Added zTime.CreatePeriodicLatch |
13:10.58 | Repo | *Added frame scheduler |
13:12.07 | BotanicalPuppet | the table equivalent in perl is the hash, ie http://perl.about.com/od/perltutorials/a/datatypehash.htm |
13:12.10 | *** join/#waruidev Flisher (n=flisher@modemcable098.47-80-70.mc.videotron.ca) |
13:12.32 | hallas | anyone knows why WindowRegisterCoreEventHandler wont work with OnMouseOverEnd event? |
13:12.53 | BotanicalPuppet | why are you calling that? |
13:13.14 | hallas | it sets specific events for a window |
13:13.17 | BotanicalPuppet | ...assuming the "Core" means it's for the interfacecore to access |
13:13.19 | hallas | like OnRButtonUp |
13:13.30 | Flisher | Boya, is there any flag for Optional Dependency? |
13:14.12 | zarious | yeah i was wondering about that the other day too |
13:14.39 | BotanicalPuppet | the game loads everything every time :-/ |
13:14.44 | zarious | i wonder if an addon fails to load if dep's aren't there? |
13:14.53 | Flisher | because I need to run after another addon if present, but want to run if this addon isn't there |
13:15.02 | zarious | yeah |
13:15.10 | BotanicalPuppet | give yourself an event and put your Init code there |
13:15.46 | zarious | did you try puting it as a dep and seeing if your base addon doesn't load? |
13:16.05 | zarious | if it does, you can just add an internal check for it in your mods code while lisitng it as a dep |
13:16.17 | BotanicalPuppet | here, better... |
13:16.28 | zarious | BotanicalPuppet, did you see my pm? |
13:16.33 | BotanicalPuppet | zarious na just now |
13:16.59 | Werelds | Flisher: just check for the addon's presence in your code |
13:17.19 | BotanicalPuppet | use two events that can do initialization related to your optional dependency |
13:17.24 | BotanicalPuppet | one location is OnInitialization |
13:17.31 | BotanicalPuppet | the other is an event guaranteed to fire after dependency |
13:17.47 | BotanicalPuppet | then don't use the games dependency flag in .mod |
13:18.14 | Werelds | well by putting it directly in the code, outside any functions you can halt addon load before it evens tries to call OnInit |
13:18.41 | Werelds | or do stuff depending on whether it's loaded |
13:19.08 | BotanicalPuppet | yeah you could put a check for the other addon there too |
13:19.20 | BotanicalPuppet | but basically, put a check on an event after it is GUARANTEED to exist |
13:19.23 | Flisher | I'll need to hook stuf fon init I guess |
13:19.33 | BotanicalPuppet | and also one in the regular initialization for the rest of your stuff |
13:28.07 | Flisher | and did someone found a way to quick logout |
13:34.19 | BotanicalPuppet | quick logout? |
13:34.43 | BotanicalPuppet | flush log to file quickly? |
13:34.49 | Flisher | quick logout |
13:34.58 | BotanicalPuppet | quick logout? |
13:35.07 | Flisher | loggin out a character |
13:35.20 | BotanicalPuppet | sorry |
13:35.31 | BotanicalPuppet | what is the difference between logout and a quick logout/ |
13:36.06 | Flisher | not waiting 20 sec |
13:36.25 | BotanicalPuppet | fairly sure that would mostly be in war.exe and the way it manages memory and does uninit stuff |
13:36.45 | BotanicalPuppet | it does it as fast as it can / your pc can |
13:36.55 | BotanicalPuppet | oh duh im dumb |
13:36.57 | BotanicalPuppet | camping |
13:37.15 | BotanicalPuppet | sorry, haven't thought about that |
13:37.22 | BotanicalPuppet | i spend more time in /reloadui than /camp |
13:38.24 | BotanicalPuppet | yes it's cool the way WoW does camping, no WAR doesn't seem to allow that and it may not be moddable |
13:39.18 | Flisher | but reloadui doesn't handled saved variable with the same data than camp (some part of gamedata and data util aren't available when saved variable is dumped, but are on the logout event :). |
13:39.19 | Flisher | I now dump data instead of referencing soo I'm ok |
13:40.04 | BotanicalPuppet | whacha codin |
13:41.06 | Flisher | @project CharactersViewer |
13:41.07 | Repo | Flisher: No project found that matches 'CharactersViewer' |
13:41.14 | Flisher | @project charview |
13:41.15 | Repo | Flisher: http://war.curseforge.com/projects/charview/. CharactersViewer (for WAR). Game: WAR. Leader: Flisher. Updated: 47 hours ago. Tickets: 1/1 |
13:42.12 | *** join/#waruidev Sores (i=Sores@92.254.245.46) |
13:43.05 | Sores | Hello, where would be a good start for me to learn about the gui elements in the game? Is there any smaller pieces of xml i could read through |
13:43.18 | Sores | the normal interface has huge files, takes time taking all of it in |
13:44.17 | hallas | what you should do sores |
13:44.25 | hallas | is to figure out what addon you want to make, and just try it |
13:44.34 | hallas | when you run into a proble, you research other addons or ask here |
13:44.46 | hallas | problem* |
13:46.39 | Sores | Well i'm just looking for some smaller sources of xml, so i can read through, to get the basics of how to build up windows |
13:46.40 | Sores | buttons |
13:46.43 | Sores | checkboxes, etc |
13:46.56 | Sores | are there any preset templates for buttons, etc, and where are they? |
13:48.20 | hallas | well |
13:48.24 | hallas | as i said |
13:48.30 | hallas | there are plenty of addons for you to look through |
13:49.52 | hallas | anyone remembers what the EA template for a tooltip is called? |
13:50.09 | Sores | okey, well will look on war.curse then, i do have one other question, it hasn't been documented, but there is a lua function GetInventoryItemData(), exactly what does it return? (if you know) |
13:50.25 | hallas | i have no clue ;D |
13:50.27 | Sores | and i have been unable to find it in any of the interface files |
13:50.44 | Sores | since windows search engine doesn't seem to be able to searh `in' files |
13:50.49 | Sores | search* |
13:50.56 | Flisher | is there a builtin function to copy a table (not reference) ? |
13:50.56 | Sores | (windows as in microsoft windows) |
13:51.09 | Flisher | notepad++ can do it. |
13:51.17 | Sores | well that requires me to open each and every file |
13:51.29 | Sores | and there are tons and tons of files in the interface directory |
13:51.39 | Flisher | notepad++ can seach into a directory |
13:51.42 | Sores | it can? |
13:51.56 | Flisher | ctr-f, the 3rd panel |
13:51.57 | Sores | can it recurisvely search through directories, look in files for keywords? |
13:52.05 | Flisher | Fin in files |
13:52.09 | Flisher | yes |
13:52.12 | Sores | sweet |
13:53.01 | Repo | 10charview: 03Flisher * r57 CharactersViewer.lua: -Fixed a stack overflow error |
13:53.38 | Werelds | DataUtilsData.items contains all the items in your bags Sores |
13:53.50 | Werelds | it's just a table so gogo dump and there's your answer |
13:54.14 | Sores | Werelds, okey, does it contain what slot in the bag, and item data such as rarity, item level etc? |
13:54.26 | Werelds | i have no idea as i've never used it |
13:54.31 | Werelds | hence why i say "gogo dump" |
13:54.31 | Sores | okey well i will search into that |
13:54.32 | Werelds | ;) |
13:54.39 | Werelds | just go in game |
13:54.40 | Werelds | and type |
13:54.46 | Werelds | /script d(DataUtilsData.items) |
13:54.52 | Werelds | you'll see what it contains quick enough |
13:54.57 | Sores | aye, going to do it after work, haven't got war on this machine |
13:55.32 | Flisher | Werelds: you know if there is a function to copy table? |
13:57.00 | Werelds | you mean make table B a copy of table A? |
13:57.45 | zarious | i think you can use the rawaccess functions to do it, but i dunno if theres a builtin command for it |
13:57.48 | Wobin | not natively |
13:58.01 | Wobin | just write a deepcopy local function |
13:58.06 | Wobin | that uses pairs() |
13:58.12 | Wobin | and copies the values to a new table |
13:58.31 | Wobin | and if the value of the pair() is a table, recurse into the function |
13:59.09 | Werelds | yeh that's the only way afaik |
13:59.18 | Flisher | ok |
14:00.20 | Flisher | alof of stuff contain value on the logout event, but save empty variable since mythic flush information. renown is an example of thing they broken in 1.02 (was ok in 1.01). I think that bankitem got the same issue |
14:00.57 | hallas | anyone remembers what the EA template for a tooltip is called? |
14:01.50 | Werelds | Flisher: http://www.pastey.net/98082 |
14:02.15 | Flisher | thank's :) |
14:02.29 | Werelds | deepcopy is what you want to use though ;) |
14:07.02 | *** join/#waruidev Undine_ (i=shamus@92-238-208-134.cable.ubr09.hawk.blueyonder.co.uk) |
14:14.34 | Flisher | Aiiane: you tought about adding an overload function in libslash to intercept logout, exit and camp? logging out using those slash command doesn't trigger the usual event. |
14:22.53 | *** join/#waruidev Odlaw (n=ozzy@c-98-245-75-224.hsd1.co.comcast.net) |
14:28.19 | hallas | You can tell by the way I walk, I am a womens man! |
14:29.30 | Chryzo_ | aren't those called womanizers ? |
14:29.43 | Chryzo_ | i had like to read your sentence 10 times |
14:32.59 | hallas | Its Bee Gees |
14:40.01 | sysrage | anybody here use Avast or have any experiences to recommend against it? sick of AVG being utter crap |
14:46.16 | *** join/#waruidev ben___ (n=v@dslb-088-066-028-242.pools.arcor-ip.net) |
14:47.18 | Flisher | go buy kaspersky or some efficient, it's about 0.10$ a day :) |
14:48.42 | Flisher | kaspersky come with 3 license for the price of 1. it's like 130$ for 3 years, 3 pc. |
14:49.00 | *** join/#waruidev Freddy (n=Freddy@cpe-76-183-32-36.tx.res.rr.com) |
14:49.47 | Flisher | anyone know the event that are called when people camp, logout or quit from a slashcommand? |
14:50.32 | Flisher | EXIT_GAME, LOGOUT and QUIT doesn't seem to get called at all. |
14:52.06 | *** join/#waruidev nicoli_s (n=email@12-214-23-167.client.mchsi.com) |
14:54.48 | *** join/#waruidev Freddy1 (n=Freddy@cpe-76-183-32-36.tx.res.rr.com) |
15:06.45 | *** join/#waruidev Nyborek (n=kero@dslb-088-074-004-196.pools.arcor-ip.net) |
15:07.30 | *** join/#waruidev Jondier (n=chatzill@ip210236.lbinternet.se) |
15:11.00 | *** join/#waruidev Slakah1 (n=Slakah@5acd4394.bb.sky.com) |
15:15.22 | *** join/#waruidev Nyborek (n=kero@dslb-088-074-004-196.pools.arcor-ip.net) |
15:15.48 | art3mis | <PROTECTED> |
15:16.55 | Repo | 10charview: 03Flisher * r58 / (3 files in 1 directory): -Improved the code saving the bank content |
15:16.56 | Repo | -Removed LibSlash dependency in order to be able to handle /logout, /camp and /quit |
15:17.01 | Repo | -Added visual output when profile is saved. |
15:19.36 | Undine | Soltanis, tooltips. other than editing other people's addons is there anything i can do to move where they apear? |
15:19.45 | Undine | stupid nic completion |
15:20.38 | Soltanis | Id blame the people in a hurry :-) |
15:21.55 | Repo | 10charview: 03Flisher * r59 BankWindow.lua: -Removed Bank debugging code |
15:52.29 | Flisher | . |
15:56.47 | Repo | 10charview: 03Flisher * r60 / (3 files in 1 directory): -Improved slashcmd handling |
15:56.48 | Repo | -Fixed bank event function call |
15:57.12 | hallas | What do you guys want to see in a Chat modification addon? |
15:57.33 | *** join/#waruidev BotanicalPuppet (n=Botanica@adsl-69-230-200-87.dsl.irvnca.pacbell.net) |
15:59.18 | Undine | i like the feature form wow mod chatter that sends chat text with your name in it to scrolling combat text |
16:02.45 | *** join/#waruidev Slakah (n=Slakah@5acd4394.bb.sky.com) |
16:06.21 | art3mis | hallas: something like cirks chat amanger is all i'd like and need |
16:06.26 | art3mis | manager |
16:06.34 | *** join/#waruidev Hamisch (n=Hamisch@67.217.8.56) |
16:06.39 | art3mis | simple channel creation coloring and sticky setting |
16:06.53 | art3mis | err like to see |
16:06.57 | art3mis | not like and need |
16:07.26 | Flisher | hallas: see WIM from wow :) |
16:08.05 | art3mis | autobar or an auto potion/crafting bar would be handy as well |
16:08.12 | art3mis | crafting "bag" |
16:08.44 | art3mis | those are raelly the only things im missing from my normal layout |
16:09.20 | Flisher | you can configure you bag to get what they want by default |
16:09.27 | hallas | haha |
16:09.31 | hallas | I disabled the EA_ChatWindow |
16:09.36 | hallas | I got a very odd feeling of being handicapped atm |
16:09.57 | art3mis | flisher: i dont want them dumped in a bag |
16:09.59 | Flisher | warning: hijacking this windows will probably break shitload of slashcommand handler since there is no slash event. |
16:10.20 | art3mis | i dont care where they do, im talking about a simple display that shows all my crafting stuff and ONLY my crafting stuff |
16:11.05 | art3mis | and ditto for the potions i want them to just appear in a bar instead a)having my bag open all the time or b) wasting bar slots on each variation of potion name that i'd have to maually do each tim i got one |
16:11.12 | art3mis | they go |
16:12.01 | Repo | 10charview: 03Flisher * r61 CharactersViewer.lua: -Fixed slash command (for good?) |
16:12.03 | Repo | -Tagging as beta bank release. |
16:13.15 | Flisher | noob question but where can I tag on curseforge now? |
16:15.49 | BotanicalPuppet | i am becoming curse's biggest advocate for aiiane's LibSlash for all addons that process slash cmds :o |
16:16.10 | BotanicalPuppet | ...because i plan to use its registry to make SlashClick easier to use and easier to code |
16:16.55 | Flisher | well, main problem is libslash can't overload existing command |
16:17.02 | Flisher | I need to hook /logout, /quit and /camp |
16:17.14 | Flisher | since using those slashcommand doesn't fire their associated event |
16:17.19 | BotanicalPuppet | okay, but you can do that and also use LibSlash for the rest |
16:17.30 | Flisher | hum, sound true. |
16:17.35 | BotanicalPuppet | hooking predefined slash cmds is special stuff |
16:17.51 | BotanicalPuppet | most people are wrapping it cuz "lulz less d0nlodz for deh usr" |
16:18.02 | Flisher | I'll re-add libslash for the /cv stuff then. |
16:18.11 | BotanicalPuppet | you make me happy |
16:18.25 | Flisher | If you register the project properly on curse, I think the client download the project tagged as dep. |
16:18.46 | Flisher | I still can't find the new place to tag my repository on the new war.curseforge.com |
16:19.07 | BotanicalPuppet | on the bright side, users haven't relied on tags in the past so dont think they're missing anything |
16:19.13 | BotanicalPuppet | recent* past |
16:20.05 | hallas | You're kidding me |
16:20.11 | BotanicalPuppet | i am? |
16:20.13 | BotanicalPuppet | maybe |
16:20.13 | hallas | nono |
16:20.15 | hallas | not like that |
16:20.23 | hallas | Just.. looking at how mythic is handling the chat |
16:20.58 | BotanicalPuppet | the non-queue for userinputtext |
16:21.43 | BotanicalPuppet | if you agree with me on LibSlash where LibSlash is fine, see http://war.curseforge.com/projects/spam/tickets/2-re-removed-dependency-on-lib-slash/ and vote |
16:22.16 | BotanicalPuppet | if you disagree, go to hell ! :O |
16:22.20 | Repo | 10charview: 03Flisher 04Version 1.30 Beta * r62 : test tag |
16:23.17 | Repo | 10charview: 03Flisher 04Version 1.30 Beta * r64 : Version 1.30 Beta |
16:24.36 | *** join/#waruidev Freddy (n=Freddy@cpe-76-183-32-36.tx.res.rr.com) |
16:25.00 | hallas | Do you guys where the chat data is stored? I cant find anything in EA_ChatWindow |
16:25.01 | hallas | I mean.. |
16:25.02 | hallas | :P |
16:25.08 | hallas | I found an event for when you receive chat |
16:27.38 | hallas | Uh |
16:27.40 | hallas | Might have found it |
16:28.21 | BotanicalPuppet | the received chat event... not sure if it's generated for those messages that seem to go to the window without a filter ... (?) ... like maybe CSR reply, etc ... |
16:29.25 | BotanicalPuppet | you are using an ingame script to log messages (excepting 1 or 2 hyperactive ones) right? |
16:30.43 | hallas | chat objects are stored in the systemdata table apparently |
16:30.50 | hallas | when the event fires |
16:30.55 | hallas | you must fetch it from there |
16:37.48 | BotanicalPuppet | you could possibly do some postmortem textbox reading magic with a presumed chat destination |
16:38.00 | hallas | i think i got a nice approach |
16:44.16 | BotanicalPuppet | oh another idea for DevUtils... hook sniffing... keep track of global function changes... where they are now going to... for a few likely culprits with options to add more |
16:45.04 | BotanicalPuppet | culprits meaning API provided by WAR often hooked |
16:46.06 | BotanicalPuppet | i will remove all the dependencies from DevUtils and hope it loads up to save the initial value of these globals before the OnInit functions rewrite them... hopefully noone is so evil to rewrite them in a global block |
16:47.24 | BotanicalPuppet | well i will be doing value matching anyway (finding all aliases of monitored API) , soo... i could track those down too |
16:48.44 | BotanicalPuppet | unless you are superivel and do OnKeyEnter = function() end in the global block and then... well you must know what is wrong with that already P |
16:51.38 | hallas | ye |
16:54.00 | Werelds`afk | BotanicalPuppet |
16:54.03 | BotanicalPuppet | i have to learn how to use the .. whatchamacalit |
16:54.13 | BotanicalPuppet | thing that uploads incremental file revisions |
16:54.14 | Werelds | there's no way for you to be sure your addon loads first, trust me |
16:54.22 | BotanicalPuppet | no there isn't |
16:54.33 | Werelds | the game loads addons in a very peculiar manner |
16:54.38 | BotanicalPuppet | but note... |
16:54.40 | Werelds | it doesn't load all the EA stuff first |
16:54.49 | Werelds | but it jumps between EA and user addons |
16:54.51 | BotanicalPuppet | when do OnInit's get called |
16:55.10 | Werelds | after all the global code has been parsed |
16:55.29 | BotanicalPuppet | ya, so... only an asshat would change an API in global scope... no problem |
16:57.27 | *** join/#waruidev PeterKirby (n=Botanica@adsl-69-230-200-87.dsl.irvnca.pacbell.net) |
16:58.21 | BotanicalPuppet | it could be as simple as knowing why what loads first into code does so... and making sure yours is first by that way |
16:58.42 | BotanicalPuppet | alphabetical order is a good first stab in the dark for further experiments |
16:58.48 | Werelds | except |
16:58.54 | Werelds | there is no logic behind it :) |
16:59.00 | BotanicalPuppet | there must |
16:59.02 | BotanicalPuppet | it's programmed |
16:59.12 | Werelds | it's also threaded |
16:59.35 | Werelds | i had nearly the same addons as aii |
16:59.37 | BotanicalPuppet | i'll run experiments and look for patterns |
16:59.48 | Werelds | except my debugwindow loaded all the way at the end of my cycle |
16:59.53 | Werelds | and hers about halfway through |
16:59.59 | BotanicalPuppet | uh wut |
17:00.01 | Werelds | and none of our addons had debugwindow as a dep |
17:00.07 | Werelds | but CODEWISE |
17:00.14 | Werelds | debugwindow is loaded BEFORE everything else |
17:00.15 | Werelds | so yeah |
17:00.18 | Werelds | GL in finding the pattern |
17:00.19 | Werelds | :) |
17:00.26 | BotanicalPuppet | haha thx |
17:00.42 | *** join/#waruidev gefi (n=pear@193.43.249.169) |
17:01.05 | BotanicalPuppet | were your user's the same? |
17:01.16 | Werelds | i think the pattern consists of "if (timetoloadstuff == true) then loadaddonnumber(rand(1, 99)); checkdeps(); repeat; end" |
17:01.33 | BotanicalPuppet | i rarely see programmers use rand() unless they really want it |
17:01.40 | hallas | why would they rant it |
17:01.46 | BotanicalPuppet | for random stuff |
17:01.48 | hallas | well |
17:01.49 | BotanicalPuppet | like dice games |
17:02.05 | Werelds | has anyone looked at the game's cpu usage btw? |
17:02.07 | Werelds | i haven't |
17:02.14 | hallas | there is probably some crappy algorithm checking which addons require what resources etc... |
17:02.18 | Werelds | but looking at the random addon loading, it looks like it threads pretty well |
17:02.33 | Werelds | yeah but hallas, that doesn't make sense either |
17:02.37 | BotanicalPuppet | im not gonna use the debug window |
17:02.40 | Werelds | since half the EA crap requires debugwindow |
17:02.45 | BotanicalPuppet | it's not accurate i dont think |
17:02.53 | BotanicalPuppet | gonna use a set of globals and do dirty stuff to find out |
17:02.55 | BotanicalPuppet | which code comes first |
17:03.06 | Werelds | i can tell you exactly how it's done programmatically btw puppet |
17:03.12 | BotanicalPuppet | yes? |
17:03.25 | Werelds | -- Needs to be loaded first for ERROR() and DEBUG() |
17:03.25 | Werelds | ModuleRestrictedLoad( "Interface/Default/EA_UiDebugTools/EA_UiDebugTools.mod", IsInternalBuild() ) |
17:03.28 | Werelds | starts with that |
17:03.34 | Werelds | then loads all the templates |
17:03.40 | Werelds | -- Load the Pregame Window Definitions |
17:03.40 | Werelds | LoadResources( "Interface/InterfaceCore", "InterfaceCore.xml", IsInternalBuild() ) |
17:03.42 | Werelds | then does that |
17:03.59 | Werelds | and final bit is where it checks if CUSTOMUI is checked |
17:04.06 | Werelds | if yes, then it loads that, otherwise loads EA default |
17:04.11 | Werelds | and AFTER THAT it loads user addons |
17:04.24 | Werelds | thing is tho |
17:04.33 | Werelds | all the load functions are exposed from C |
17:04.38 | Werelds | and we have no clue how they're handled there |
17:04.39 | hallas | well oh well |
17:04.46 | hallas | got a basic chat frame up and running now :) |
17:05.16 | BotanicalPuppet | need moar asm ! imo :P %^) |
17:05.48 | Werelds | oh god please no :p |
17:06.03 | BotanicalPuppet | it might be kinda neat if someone could correspond the ASM with the function names |
17:06.29 | Werelds | requires more work than it's worth really |
17:07.08 | BotanicalPuppet | since their exposed to lua, lua can tell you something like offset |
17:07.21 | BotanicalPuppet | since their are tons of file tools, they can tell you where offset starts |
17:09.09 | Werelds | it's still not worth the effort tho really |
17:09.47 | BotanicalPuppet | subjective, someone might do it |
17:10.10 | Werelds | finding us Interface.xsd or convincing Mythic to fix all the missing and broken bits + give us a PROPER chat/log system would be much more valuable |
17:10.21 | Werelds | ;) |
17:10.38 | BotanicalPuppet | uh dont work at mythic sry |
17:12.07 | BotanicalPuppet | btw EA_UiDebugUtilTools module is not loaded in retail WAR |
17:12.19 | BotanicalPuppet | see pregameutils.lua instead |
17:12.48 | Werelds | i assume you mean ea_uidebugtools |
17:12.53 | Werelds | and erm yes it does get loaded :) |
17:13.21 | BotanicalPuppet | Interface/Default/EA_UiDebugTools/EA_UiDebugTools.mod |
17:13.36 | BotanicalPuppet | hrm what's ModuleRestrictedLoad |
17:14.05 | Werelds | loadfrommyp |
17:14.18 | Werelds | well no sorry, i'm saying that wrong |
17:14.37 | Werelds | ModuleRestrictedLoad(pathToMod, isInternal) |
17:14.57 | Werelds | if isInternal == false then it loads from .myp only |
17:16.25 | BotanicalPuppet | ya found it now :-/ |
17:16.58 | Werelds | that's not the part where it goes wrong tho |
17:17.14 | Werelds | you got interfacecore.lua loaded up? |
17:17.38 | BotanicalPuppet | ya |
17:17.43 | Werelds | InterfaceCore.LoadModData() |
17:17.45 | Werelds | check that one out |
17:17.49 | Werelds | that's the fucked up one |
17:18.07 | Werelds | problem is that with debugtools it forces it to load |
17:18.11 | Werelds | and then that function loads it again |
17:18.15 | Werelds | but like i said above |
17:18.27 | BotanicalPuppet | ModulesLoadFromDirectory |
17:18.28 | Werelds | modulesloadfromdir doesn't have much logic behind it |
17:19.08 | Werelds | it's modulesloadfromdir/file which is the culprit |
17:20.37 | BotanicalPuppet | which are in C |
17:20.58 | Werelds | yah |
17:21.19 | Werelds | but i'm guessing it threads it a lot, which would explain the differences in when stuff is loaded |
17:21.42 | BotanicalPuppet | ... i'm a noob ... you can replace InterfaceCore with the IsCustomUI ?? |
17:21.59 | hallas | damn noob! |
17:22.16 | BotanicalPuppet | i have been doing it the hard way... patching interface.myp :o |
17:27.50 | BotanicalPuppet | can someone in WAR tell me the output of /script d(StringTables.Pregame.LABEL_CUSTOM_UI) real fast |
17:28.13 | BotanicalPuppet | or instead /script d( GetPregameString( StringTables.Pregame.LABEL_CUSTOM_UI ) ) |
17:30.38 | BotanicalPuppet | it's ok i'm logging in i'm gonna see if i can just copypaste the interface resources in another folder for the same functionality under a custom ui |
17:33.46 | Werelds | no BotanicalPuppet |
17:33.55 | Werelds | interface/default/ |
17:33.55 | BotanicalPuppet | no wut |
17:33.58 | Werelds | is what you can replace |
17:34.01 | Werelds | not interfacecore |
17:34.10 | BotanicalPuppet | ah, well still handy |
17:34.13 | Werelds | but that's probably what you meant |
17:34.14 | Werelds | ;) |
17:34.20 | Werelds | interfacecore = main menu + login etc |
17:34.24 | BotanicalPuppet | i'll make an interface.lua interface/default build |
17:34.31 | Werelds | interface/default is everything from loading screen up |
17:34.34 | BotanicalPuppet | probably........ ;o :) |
17:35.09 | BotanicalPuppet | oh wait, it can load them as just plain files |
17:35.11 | BotanicalPuppet | no myp right? |
17:35.16 | BotanicalPuppet | with custom ui |
17:38.11 | Eldan | can i get a hand with a rounding function? |
17:38.35 | Eldan | it doesnt seem to be working when i set the label to it |
17:38.37 | Eldan | but |
17:38.43 | Eldan | the logic works |
17:39.25 | Eldan | function WaaaghTimer.Round(num, dp)) |
17:39.34 | Eldan | <PROTECTED> |
17:39.43 | Eldan | <PROTECTED> |
17:39.46 | Eldan | end |
17:39.56 | hallas | what you trying to do? |
17:40.33 | Eldan | i have a timer being output that works with OnUpdate |
17:40.50 | Eldan | but i want 'timer' to be rounded to the tenths digit on output |
17:41.02 | hallas | you should try |
17:41.04 | hallas | oh |
17:41.05 | hallas | rounded.. |
17:41.15 | hallas | I found that somewhere |
17:41.26 | Eldan | that is the function for rounding |
17:41.28 | hallas | http://lua-users.org/lists/lua-l/2003-03/msg00224.html |
17:41.34 | BotanicalPuppet | weren't we talking about some kind of overhead with producing a wrapper for the WAR API? |
17:41.37 | hallas | eldan |
17:41.38 | hallas | check that out |
17:41.39 | hallas | that works |
17:41.42 | BotanicalPuppet | we were all huge nubs if custom ui works |
17:41.45 | Eldan | same thing |
17:42.18 | BotanicalPuppet | patch the default ui files and make sure you build in some compat or w/e you want... release that... you are good |
17:42.45 | BotanicalPuppet | less work by 100000% too |
17:42.48 | hallas | Tool - Wings for Marie |
17:43.06 | BotanicalPuppet | you clicked Tool ^ |
17:43.52 | BotanicalPuppet | plus it would be easier to maintain this custom ui than 30 little addons that replicate hooked bugfixes |
17:44.15 | hallas | i clicked tool ? |
17:44.20 | BotanicalPuppet | your song |
17:44.34 | BotanicalPuppet | oh it's not a song |
17:44.45 | BotanicalPuppet | i thought it was 'what i'm listening now' spam |
17:44.49 | hallas | Its a song |
17:44.54 | BotanicalPuppet | k |
17:44.56 | hallas | and the greatest band atm |
17:46.27 | hallas | Tool - 10,000 Days |
17:46.39 | Werelds | @ BotanicalPuppet: the problem is that the general user wouldn't know how to get that going properly |
17:46.55 | BotanicalPuppet | i disagree... |
17:47.00 | BotanicalPuppet | general addon user could do it |
17:47.03 | Werelds | so with every patch of the game, someone would have to upload the updated default mythic addons |
17:47.12 | BotanicalPuppet | not really |
17:47.27 | Werelds | yarly |
17:47.30 | BotanicalPuppet | you would have somewhat backwards interface/default until you apply the patch |
17:47.45 | Werelds | how do you mean backwards? |
17:47.48 | BotanicalPuppet | you would have to go back to the new interface/default and apply changes |
17:47.58 | BotanicalPuppet | but you should be able to run the game usually with an old interface/default |
17:48.08 | Werelds | which is a lot of hassle for no reason at all |
17:48.12 | BotanicalPuppet | using diff is your friend |
17:48.19 | BotanicalPuppet | hassle for the maintainers i agree |
17:48.20 | Werelds | no, custom ui is meant for when we've replaced every bit of the ui |
17:48.30 | BotanicalPuppet | anyone else it's apply patch to my custom ui (4MB download) end |
17:48.34 | Werelds | or for when we can finally properly load all the resources |
17:48.51 | Werelds | because atm there's no point in using it |
17:48.59 | Werelds | since texture display is broken |
17:49.03 | Werelds | we can't do custom fonts yet |
17:49.05 | BotanicalPuppet | um, so? |
17:49.12 | BotanicalPuppet | can't you change the interface/default functions? |
17:49.33 | Werelds | yeah of course; but if you use custom ui, where the hell will you get your textures from? ;) |
17:49.51 | Werelds | not all, but some are loaded through XML in interface/default |
17:49.54 | BotanicalPuppet | ehhhh 1 thing at a time |
17:49.55 | Werelds | which we can't do |
17:49.56 | Werelds | \o/ |
17:50.14 | Werelds | first we need to have the API working, then we can start thinking about using custom ui |
17:50.22 | BotanicalPuppet | i think i need to make an InterfaceDefault project... i DEFINITELY need to use the versioning tools for this |
17:50.38 | BotanicalPuppet | custom textures is not the end of the millenium |
17:50.56 | BotanicalPuppet | plus i'll be ready |
17:51.01 | BotanicalPuppet | when they're fixed again |
17:51.19 | BotanicalPuppet | people who want to skin can instantly start deriving from custom ui i build |
17:51.36 | BotanicalPuppet | ...patching it with their skins and uploading that to theirs |
17:51.45 | BotanicalPuppet | while mine acts like a base for bugfixes, etc |
17:52.46 | BotanicalPuppet | i believe you will see a lot of the addon users with custom ui enabled in 2-3 months no more |
17:52.55 | BotanicalPuppet | assuming EA doesn't change how it works |
17:54.04 | Werelds | well tbh |
17:54.09 | Werelds | what i'm looking forward to |
17:54.16 | Werelds | is that when all of it works |
17:54.24 | BotanicalPuppet | that's EA's job |
17:54.38 | Werelds | we can start getting rid of some of the redundancies and we can finally start centralising the UI around a few core libraries |
17:54.39 | BotanicalPuppet | i just do my thing that makes all of it a little tiny bit better |
17:55.34 | BotanicalPuppet | i think custom ui packages with a 'base' that is neutral and various patches applies, with the 'base' being built from each WAR patch, is the way to go |
17:55.49 | hallas | I think |
17:55.53 | hallas | Open up UI Mod Manager |
17:55.58 | hallas | Disable everything EA |
17:56.01 | hallas | and start from scratch ;) |
17:56.05 | BotanicalPuppet | yeah |
17:56.09 | BotanicalPuppet | oh |
17:56.10 | BotanicalPuppet | hehe |
17:56.16 | BotanicalPuppet | you disagree with pushing that button |
17:56.21 | BotanicalPuppet | for custom ui? |
17:56.27 | hallas | why not |
17:56.32 | Werelds | using the current default ui as a base for everything would be a mistake |
17:56.33 | hallas | but some of their texture is nice |
17:56.42 | Werelds | because the current default ui is part of the problem |
17:56.57 | hallas | this will happen anyway |
17:56.57 | hallas | I mean |
17:57.06 | hallas | We actually already almost got every bit of the UI rewritten |
17:57.12 | hallas | It's just a matter of putting it together ;) |
17:57.18 | hallas | removing dependices on EA stuff |
17:57.18 | Werelds | no, not really |
17:57.24 | Werelds | a lot of addons still depend on the default stuff |
17:57.37 | hallas | Ye, thats what i mean |
17:57.44 | hallas | from now, right your addons as bases |
17:57.44 | hallas | w |
17:57.50 | hallas | not houses on the EA foundation |
17:57.50 | BotanicalPuppet | compatability with default stuff is impt to my customui, but others can build from scratch i suppose |
17:58.07 | BotanicalPuppet | because most addons will depend on default stuff being there |
17:58.28 | Werelds | well any addon i write, i plan on not having to depend on any EA/Mythic stuff |
17:58.32 | Werelds | other than the textures |
17:58.38 | Werelds | and some of the base templates |
17:58.44 | Werelds | because those get loaded no matter what |
17:58.44 | hallas | :) |
18:00.53 | hallas | I think everything should, as much as possible, be based on the SystemData table and the GameData |
18:01.10 | hallas | Best way to avoid problems when they patch anything |
18:01.22 | hallas | And you dont have to go through stupid myps file to see the systemdata table |
18:11.55 | BotanicalPuppet | <-- just got the flash of light on what custom textures means |
18:12.05 | BotanicalPuppet | haha :) |
18:12.11 | BotanicalPuppet | it's all pink maagn |
18:12.45 | BotanicalPuppet | ya i gotta do something where it pulls default textures from .myp? but...how? |
18:12.55 | *** join/#waruidev gehutomy (n=pear@193.43.249.169) |
18:13.02 | BotanicalPuppet | or figure out how to patch textures... ??? |
18:13.20 | BotanicalPuppet | oh well i got all of the default interface to try :) |
18:16.10 | BotanicalPuppet | i wonder if default/custom interface files have access to ModulesLoadFromListFile( SystemData.Directories.DefaultInterface.."/EADefaultMods.txt", GetPregameString( StringTables.Pregame.LABEL_EA_DEFAULT ), IsInternalBuild() )type code |
18:17.14 | BotanicalPuppet | the func is defined for sure |
18:18.12 | BotanicalPuppet | the first arg is set to "Interface/Default" |
18:18.57 | BotanicalPuppet | GetPregameString is defined as a func |
18:19.41 | BotanicalPuppet | the second arg is "EA Default" |
18:19.48 | BotanicalPuppet | third arg false |
18:20.28 | BotanicalPuppet | let's test /script ModulesLoadListFromListFile( "Interface/Default", "EA Default", false ); after applying custom ui? |
18:21.08 | BotanicalPuppet | ummm type |
18:21.28 | BotanicalPuppet | <PROTECTED> |
18:21.56 | BotanicalPuppet | umm! |
18:22.04 | BotanicalPuppet | <PROTECTED> |
18:22.44 | BotanicalPuppet | file Interface/Default does not exist |
18:24.18 | Repo | 10influencetext: 03Elder82 * r37 InfluenceText.lua: |
18:24.19 | Repo | * Ticket 2: tooltip hotspot change depending on visual style |
18:25.11 | BotanicalPuppet | my extract from easymyp shows a file called "Interface/Default/eadefaultmods.txt" |
18:25.16 | Repo | 10influencetext: 03Elder82 04v1.2.5 * r38 : Tagging as v1.2.5. |
18:25.31 | BotanicalPuppet | ok so ... if i want to make my custom ui more like my default ui... |
18:25.56 | BotanicalPuppet | call /script ModulesLoadListFromFile( "Interface/Custom", "EA Default", false ); |
18:26.00 | BotanicalPuppet | and drop that file in |
18:26.35 | BotanicalPuppet | file's already there from extraction |
18:26.45 | BotanicalPuppet | so just... /script ModulesLoadListFromFile( "Interface/Custom", "EA Default", false ); |
18:27.28 | BotanicalPuppet | grr /script ModulesFromListFile( "Interface/Custom", "EA Default", false ); -- it's always a ListFile noob! |
18:27.50 | BotanicalPuppet | grr /script LoadModulesFromListFile( "Interface/Custom", "EA Default", false ); -- so load you idiot! |
18:28.28 | BotanicalPuppet | grr /script ModulesLoadFromListFile( "Interface/Custom", "EA Default", false ); -- we are hungarian, we module load from listfile! |
18:29.03 | BotanicalPuppet | file Interface/Custom does not exist ... but... tehy appended something to it in the code... |
18:29.10 | BotanicalPuppet | which is probably the end of the path |
18:29.44 | BotanicalPuppet | so /script ModulesLoadFromListFile( "Interface/Custom/", "EA Default", false ); -- ya i see /EADefaultMods.txt in there |
18:30.18 | BotanicalPuppet | so /script ModulesLoadFromListFile( "Interface/Custom/EADefaultMods.txt", "EA Default", false ); |
18:30.45 | BotanicalPuppet | does not exist either :-/ |
18:31.04 | BotanicalPuppet | oh.. |
18:31.38 | BotanicalPuppet | it wants a myp folder not a file folder string for path, and a myp filelist instead |
18:32.12 | BotanicalPuppet | well that's a project but can be done... can name it movie.myp :) |
18:32.39 | BotanicalPuppet | am i brilliant or wut... news at 11 |
18:34.44 | BotanicalPuppet | hmm... even easier / weirder ... there are no .dds in the .txt list |
18:35.17 | BotanicalPuppet | oh .mods? |
18:35.25 | BotanicalPuppet | of course |
18:37.46 | BotanicalPuppet | EATemplate_DefaultWindowSkin.mod has files listed ... Textures/DefaultSkinTextures.xml etc |
18:38.05 | BotanicalPuppet | they're relative to custom paths and they are not in a .myp |
18:38.35 | BotanicalPuppet | so they aren't loaded... maybe ... maybe ... change all these paths to repath to interface/default dirs? |
18:38.41 | BotanicalPuppet | based on file extension |
18:39.03 | BotanicalPuppet | xml, mod, and lua are good |
18:39.16 | BotanicalPuppet | anything plaintext is fine, but everything else remapped to the default dir |
18:39.27 | BotanicalPuppet | gimme 20 |
18:40.28 | BotanicalPuppet | wait first let me try /script ModulesLoadFromListFile( "Interface/Default/EADefaultMods.txt", "EA Default", false ); just to see what happens |
18:41.41 | BotanicalPuppet | it tried to load all the default .mods but with resulting name conflicts |
18:42.33 | BotanicalPuppet | but we know something now i think ... .mod works out of myp and in myp ... so if i make my .mod out of myp end up working like the ones in myp ... and referring to resources in Interface/Default ... success? |
18:48.11 | BotanicalPuppet | ... i think the main advantage of my custom ui will be a sane api for function hooking , which i'll put into it , letting the rest of it be modded up further by others |
18:48.32 | BotanicalPuppet | every daughter hook will know about every mother hook and vice versa |
18:49.08 | BotanicalPuppet | some onupdate stuff will try to make sure it doesn't break with oldschool hooking addons |
18:57.32 | BotanicalPuppet | would anyone else also hazard a guess that war.exe loads every .myp in the root war folder? |
18:58.21 | BotanicalPuppet | it doesn't burp on deleting movie.myp, e.g. |
18:58.34 | BotanicalPuppet | probably looks for interface specifically tho |
18:58.36 | BotanicalPuppet | at least |
18:58.56 | BotanicalPuppet | but there are two graphics .myps |
18:59.50 | BotanicalPuppet | wonder if 'customart.myp' would be good |
19:00.07 | *** join/#waruidev Undine (i=shamus@92-238-208-134.cable.ubr09.hawk.blueyonder.co.uk) |
19:00.25 | BotanicalPuppet | and 'customaudio.myp', both being extracted and useable by mods |
19:00.40 | BotanicalPuppet | has anyone else been thinking about this like i have? |
19:04.30 | BotanicalPuppet | for a modding community we have been thinking too much in straightjackets... |
19:04.37 | *** join/#waruidev Felyza (n=Felyza@6532199hfc31.tampabay.res.rr.com) |
19:05.09 | Felyza | I wonder why freenode-connect ctcp versions me every time I sign on |
19:05.12 | BotanicalPuppet | no custom textures --> no loading textures from file structure directly (must be .myp'd in root) ... that is all |
19:05.35 | Felyza | My script at least has fun responses |
19:11.20 | Felyza | I think I'm going to poke at the xml stuff again today |
19:11.30 | BotanicalPuppet | good idea |
19:11.36 | BotanicalPuppet | you'll have a customui sandbox soon |
19:11.48 | Felyza | ? |
19:11.56 | BotanicalPuppet | ea coded for one |
19:12.03 | BotanicalPuppet | it's disabled by default |
19:12.05 | BotanicalPuppet | you can muck it up |
19:12.12 | BotanicalPuppet | and if it breaks, go back to your default one |
19:12.17 | BotanicalPuppet | it's what they used for debug |
19:12.18 | Felyza | ooooo |
19:12.24 | Felyza | is it possible to enable? |
19:12.30 | BotanicalPuppet | ya im in it |
19:12.40 | Felyza | how to enable? |
19:12.42 | BotanicalPuppet | i just have to remap all the binary resources to the interface/default paths |
19:12.47 | BotanicalPuppet | i'll readme.txt it |
19:12.52 | Felyza | woot |
19:13.52 | Felyza | and by messing with xml, i was going to poke through, and find all api and core functions related to xml elements, and make a seperate page for each of the major ones (or until I get really bored with it) and do a breakdown on what you can do with them |
19:14.47 | BotanicalPuppet | look up custumuimodwindow (i think that's what it is called) in your extracted interface.myp file if you want to know how to get your sandbox asap |
19:15.27 | BotanicalPuppet | **DANGER: YOU WILL GO BLANK IF NOT PINK** |
19:15.31 | BotanicalPuppet | <PROTECTED> |
19:15.36 | BotanicalPuppet | <PROTECTED> |
19:15.52 | BotanicalPuppet | but first make sure interface/custom has all the same files as your extracted interface/default |
19:15.54 | BotanicalPuppet | and you're good |
19:16.04 | Felyza | so that's what the option in the usersettings.xml is for |
19:16.07 | Felyza | ;) |
19:16.27 | BotanicalPuppet | ya you could just edit the file oto |
19:16.28 | BotanicalPuppet | too* |
19:17.32 | BotanicalPuppet | you get the resources in the two art .myps but not the ones in the interface / default folders ... but that is what i'm fixing before releasing CustomUI 1.0.2-0.1 |
19:17.40 | BotanicalPuppet | i'm on CustomUI 1.0.2-0.0 |
19:17.53 | Felyza | I really wish Aii/Aiiane would put a link to WAR API on the navigation menu at thewarwiki |
19:18.13 | BotanicalPuppet | nav menu belongs to whole wiki not namespace i think |
19:18.17 | Werelds | (21:16:09) (Felyza) so that's what the option in the usersettings.xml is for |
19:18.25 | Werelds | or the tickbox in the customiseui thing |
19:18.30 | Werelds | tick/textbox |
19:18.33 | BotanicalPuppet | well |
19:18.36 | Felyza | I didn't see a tickable option |
19:18.38 | BotanicalPuppet | interface.myp now blanks that |
19:18.43 | BotanicalPuppet | before it did not |
19:18.51 | BotanicalPuppet | the script or editing the file will be reliable until war.exe changes |
19:19.08 | Werelds | there's still not much point atm so :) |
19:19.21 | BotanicalPuppet | will be in less than 4 hours mark my words |
19:19.46 | Werelds | are mythic fixing the texture display then? :< |
19:19.54 | *** join/#waruidev Repo (n=supybot@69.57.184.216) |
19:19.54 | *** mode/#WARUIDev [+v Repo] by ChanServ |
19:19.55 | BotanicalPuppet | texture display is fine |
19:19.57 | BotanicalPuppet | lrn2mod |
19:20.17 | BotanicalPuppet | can't load binaries from files must load binaries from .myp |
19:21.11 | BotanicalPuppet | and all .myp files in the root folder are loaded as resources by war.exe |
19:21.25 | BotanicalPuppet | get packing with easymyp 1.2 gogogo! |
19:21.48 | BotanicalPuppet | first one to put headshot.wav in a .myp gets a brownie |
19:21.53 | Werelds | checksum is checked on the myp files right? so no point in replacing files |
19:22.07 | nicoli_s | well you used to be able to do it |
19:22.24 | nicoli_s | that was how ui modding used to be done, me and chryso had programs to inject files back into the myps |
19:22.25 | BotanicalPuppet | well... yes, when checksum is perfomed, it is performed on all files which the game thinks it should check... and then makes em byte-identical to server |
19:22.33 | nicoli_s | so we would just edit the existing files in the myps |
19:22.42 | Werelds | nicoli_s: easymyp can still do that |
19:22.44 | BotanicalPuppet | ok i'll spill |
19:22.47 | Werelds | at least the code i still have |
19:22.49 | BotanicalPuppet | i will *never* release this |
19:22.56 | BotanicalPuppet | but i have an interface.myp off of 1.0.2 |
19:22.59 | BotanicalPuppet | hides the eula |
19:23.05 | BotanicalPuppet | and hides the server confirmation windows |
19:23.22 | Werelds | screenshot or it didn't happen |
19:23.23 | Werelds | ;] |
19:23.26 | BotanicalPuppet | would be a nightmare to release for so many reasons |
19:23.29 | BotanicalPuppet | i will fraps it |
19:23.33 | BotanicalPuppet | swear to my mother |
19:23.39 | nicoli_s | well as far as we can tell, there is no file checksum in the myp |
19:23.40 | Werelds | just gimme a checksum of your interface.myp |
19:23.44 | Werelds | that'll tell me enough |
19:23.50 | BotanicalPuppet | werelds no |
19:23.51 | Werelds | unless you're one of those filthy US people |
19:23.52 | Werelds | :p |
19:23.53 | nicoli_s | there is a checksum of the metadata for each file |
19:23.56 | BotanicalPuppet | it did not check |
19:24.03 | BotanicalPuppet | the ind. file |
19:24.23 | BotanicalPuppet | after a major update, i patched the interface.myp with my own (well, technically, cut and paste twice) |
19:24.26 | BotanicalPuppet | it worked |
19:24.40 | nicoli_s | was the file uncompressed in the myp? |
19:24.44 | BotanicalPuppet | no |
19:24.45 | BotanicalPuppet | compresse |
19:24.50 | BotanicalPuppet | easymyp 1.2 compresses |
19:24.52 | nicoli_s | did you recompress it? |
19:24.54 | BotanicalPuppet | just buggily |
19:25.00 | Werelds | well just gimme an md5 checksum of your interface.myp then to prove it? that'll show any difference between your .myp and the normal .myp |
19:25.05 | Werelds | if what you're saying is true |
19:25.06 | BotanicalPuppet | since it was text it did fine.. i guess? not sure |
19:25.07 | nicoli_s | not all myps are the same |
19:25.18 | Werelds | it means we can inject "extra" files into the myps to load our own textures |
19:25.20 | nicoli_s | you can delete your myps and they are redownloaded differently |
19:25.21 | BotanicalPuppet | i'll fraps but i wont give you my data files |
19:25.28 | Werelds | which i'd love to do so i can get rid of these horrible fonts |
19:25.41 | BotanicalPuppet | nicoli_s: what i believe is this |
19:25.52 | BotanicalPuppet | if the server says the file is out of date, it make sure the file is byte identical |
19:25.58 | BotanicalPuppet | otherwise , it does nothing |
19:26.00 | BotanicalPuppet | unless you check the boxx |
19:26.07 | BotanicalPuppet | as to Werelds, yes |
19:26.07 | nicoli_s | well i dont think it checks those |
19:26.10 | Werelds | right so basically |
19:26.12 | BotanicalPuppet | you can make as many .myp's as you want |
19:26.15 | Werelds | it doesn't checksum the file |
19:26.17 | Werelds | but the contents of it |
19:26.25 | Werelds | it only checks the hashes |
19:26.26 | nicoli_s | well i disagree |
19:26.29 | BotanicalPuppet | Werelds, it doesn't checksum the file on every load |
19:26.30 | Werelds | but not the .myp itself? |
19:26.32 | nicoli_s | i dont think it checksums the file or its contents |
19:26.47 | nicoli_s | there is a special block of data in the myp for each file entry, we call it the metadata |
19:26.49 | BotanicalPuppet | it DOES when it major updatews |
19:27.00 | BotanicalPuppet | when there IS a major update, it will find my changes and overwrite |
19:27.03 | Werelds | nicoli_s: the hashes of the filenames are checked |
19:27.04 | BotanicalPuppet | i have seen this |
19:27.06 | nicoli_s | for each myp entry, there is a checksum of the metadata |
19:27.34 | nicoli_s | it could be that this metadata also has the actual file checksum, but we dont know |
19:27.41 | nicoli_s | no one has any proof of that yet |
19:27.49 | BotanicalPuppet | look. i updated before the hotfix last night (1.0.2 before hotfix). i had a no-eula patch. the warpatch saw the update from server. it patched interface.myp to be identical to servers. do you understand? |
19:28.11 | Werelds | yehyeh but that has nothing to do with the .myp itself really |
19:28.15 | Werelds | only with its version |
19:28.17 | BotanicalPuppet | i don't know what technology it uses |
19:28.26 | Werelds | meaning that you can fuck up your myp file as much as you want |
19:28.31 | Werelds | until there's a patch ready on the server |
19:28.31 | BotanicalPuppet | but it will make sure the interface file is identical IFF the server says it has updates for it |
19:28.41 | BotanicalPuppet | yes yes yes Werelds YES |
19:28.41 | Werelds | at which point it'll rewrite any bytes that aren't in the "real" file |
19:28.49 | BotanicalPuppet | correct based on my experience |
19:28.55 | nicoli_s | are you sure that file just didnt get updated? |
19:29.02 | BotanicalPuppet | hmm? |
19:29.21 | nicoli_s | i mean like modify a random file, and then get a patch that fixes other things and then see if your changes got overwritten |
19:29.26 | BotanicalPuppet | anywy, it's mostly moot, it's mostly for messing with interfacecore, which is mostly for circumventing the eula, which is mostly for getting the banhammer |
19:29.44 | BotanicalPuppet | nicoli_s: yes, the patch was for other things |
19:29.52 | BotanicalPuppet | my changes just got "fixed" with them |
19:30.03 | nicoli_s | k |
19:30.27 | BotanicalPuppet | with a working custom ui and working .myp resource folders made by users, i think modders will be in a wet dream |
19:31.02 | BotanicalPuppet | and the good part is, the "working" is in the court of modders now, not EA Mythic |
19:31.05 | nicoli_s | well they must have added new protections since beta as in beta, they didnt do anything to detect file modifications |
19:31.25 | nicoli_s | even when patching |
19:31.36 | BotanicalPuppet | oh, so it only updated the files the server said to? |
19:31.49 | BotanicalPuppet | whereas now it updates all files regardless when there's a file to be chagned... |
19:32.20 | *** join/#waruidev Tomed (i=Tomed@pool-71-188-54-195.cmdnnj.fios.verizon.net) |
19:32.21 | nicoli_s | yeah |
19:32.29 | BotanicalPuppet | yeah... |
19:32.43 | BotanicalPuppet | well, i've practically decided... my CustomUI will have only 2 functionalities |
19:32.53 | BotanicalPuppet | 1) fix any red debug outputs to debug window |
19:33.13 | BotanicalPuppet | 2) provide an API for "class inheritance", ie for intelligent hooking for functions or function containers. |
19:33.30 | BotanicalPuppet | the latter is all it really needs |
19:33.34 | BotanicalPuppet | the rest can be mods |
19:34.17 | BotanicalPuppet | i don't want bloat in CustomUI project... would be bad |
19:34.24 | BotanicalPuppet | addons should be addons still |
19:34.34 | BotanicalPuppet | oh and 0) fix binary file ref's |
19:38.22 | BotanicalPuppet | so nice of EA Mythic to provide no docs on modding at all ;p |
19:39.12 | nicoli_s | does anyone? |
19:39.15 | BotanicalPuppet | i suppose it wouldnt matter, community knowledge would outstrip any halfass docs quickly |
19:39.27 | BotanicalPuppet | Microsoft...sometimes...lol |
19:39.49 | nicoli_s | everyone is just lucky people figured out the myp format a loooong time ago, so we could get a modding headstart |
19:39.58 | BotanicalPuppet | that is true 100% |
19:42.21 | BotanicalPuppet | can anyone say what the best program would be for making myps from the ground up? easymyp 1.2 or something else? |
19:42.29 | nicoli_s | there isn't one |
19:42.46 | nicoli_s | we can't generate the metadata that we need |
19:42.52 | Werelds | (21:39:20) (BotanicalPuppet) i suppose it wouldnt matter, community knowledge would outstrip any halfass docs quickly |
19:43.05 | Werelds | for the api to have documentation, it needs to be A) finished, and B) working as intended |
19:43.09 | nicoli_s | we can only replace files, since apparently the metadata coesnt change |
19:43.11 | Werelds | and atm, neither A nor B holds true |
19:43.18 | nicoli_s | doesnt* |
19:43.20 | BotanicalPuppet | nicoli_s what do you mean "needed" |
19:43.34 | BotanicalPuppet | i don't want to make interface.myp gound-up |
19:43.42 | BotanicalPuppet | i want to make boomheadshotwav.myp |
19:43.44 | BotanicalPuppet | one wav in one myp |
19:43.45 | BotanicalPuppet | how? |
19:43.53 | nicoli_s | thats what i m saying you cant |
19:44.01 | BotanicalPuppet | hmm ok but how so? |
19:44.19 | nicoli_s | for one theres no app to do so, and youd have to figure out the algorithim the game uses for the metadata |
19:44.31 | nicoli_s | or, you could just try copying the metadata from some other file |
19:44.39 | nicoli_s | and see if that works |
19:44.59 | BotanicalPuppet | well the metadata has 2 parts i care about exactly |
19:45.05 | BotanicalPuppet | filename and datadelimiters |
19:45.11 | nicoli_s | it doesnt have filename |
19:45.22 | nicoli_s | it has a hashed version, but thats not the metadata |
19:45.26 | nicoli_s | we can generate filenames |
19:45.29 | BotanicalPuppet | oh ok ty...hrm |
19:45.34 | nicoli_s | but the metadata we dont know what it is |
19:45.35 | Werelds | the file hashes we know how to do |
19:45.42 | Werelds | just the metadata |
19:45.43 | nicoli_s | its either 131 or 2 bytes and we have no idea what it is |
19:45.50 | nicoli_s | 131 or 132* |
19:46.00 | Werelds | nicoli_s |
19:46.09 | Werelds | you got a bunch of them at hand by any chance? |
19:46.16 | BotanicalPuppet | how does "interface/default/dood.dds" get that filename? |
19:46.19 | Werelds | as in, metadata hashes with corresponding filenames? |
19:46.25 | Eldan | name hash |
19:46.27 | Werelds | i don't have it at hand atm |
19:46.27 | nicoli_s | nope, but i could write a program to strip some out |
19:46.29 | BotanicalPuppet | i haven't been working this angle |
19:46.34 | Werelds | meh nvm then |
19:46.40 | Werelds | i'll stuff it in easymyp |
19:46.42 | nicoli_s | botanical, what do you mean how does it get the filename? |
19:46.51 | nicoli_s | you mean how does it hash that filename? |
19:46.58 | Werelds | cuz i think the metadata will most likely say something about how to treat a file |
19:47.06 | BotanicalPuppet | when i reference that resource in the lua's, it is referenced by virtual filename |
19:47.07 | Werelds | did you look for any patterns between file types + metadata? |
19:47.14 | nicoli_s | well for one, im pretty sure its encrypted |
19:47.23 | BotanicalPuppet | i have not looked at myp format at all i'm learning |
19:47.36 | nicoli_s | or compressed with something other than zlib(what the rest of the files are compressed with) |
19:47.46 | Werelds | BotanicalPuppet, i'll explain in a pm |
19:47.48 | nicoli_s | me and chryso looked at it pretty extensively and could never figure out wtf it was for |
19:47.50 | BotanicalPuppet | k |
19:48.13 | nicoli_s | i would imagine it probably coincides with the extra variables in the mft.myp files |
19:48.31 | nicoli_s | as the files in there list the hashes and sizes for each entry as well as other variables |
19:48.41 | nicoli_s | which probably are contained either on the server, or in the metadata |
19:48.49 | BotanicalPuppet | hmm, so adding .myps...modifying mft.myp's? |
19:48.59 | nicoli_s | g2g later |
19:49.03 | BotanicalPuppet | err, the 1 mft.myp |
19:49.04 | BotanicalPuppet | ok |
20:00.30 | Felyza | 1 page done, and already bored with it... http://thewarwiki.com/wiki/API:StatusBar |
20:04.41 | Werelds | i got bored of writing the documentation for libstats2 after 5 minutes Felyza, and that's my own friggin project :P |
20:05.45 | Felyza | i'm starting to think there's supposed to be a way to click player names... ChatWindow.OnHotSpotMouseOver |
20:20.04 | Felyza | hmm |
20:20.25 | Felyza | i need to test something, but i THINK i may have figured out a way to add keys to the keybindings page |
20:21.21 | BotanicalPuppet | i heard a similar report from someone modifying chosenshelper |
20:21.27 | BotanicalPuppet | do you want their pastey |
20:22.14 | Felyza | sure |
20:22.57 | Felyza | i found xml references in the exe to the module saved settings, as well as the MOD file... so I THINK i may be on to something |
20:24.55 | BotanicalPuppet | do you think i should report the no-eula hack as a bug? |
20:25.02 | BotanicalPuppet | or will i just get banned :x |
20:25.37 | BotanicalPuppet | na i'll just shaddup |
20:25.50 | BotanicalPuppet | don't want to break everything else too in the .myp's for being filechecked |
20:26.29 | BotanicalPuppet | delete the rogue interfacemyp and put it behind me: |
20:30.56 | BotanicalPuppet | binding mod of CH: http://waruidev.pastey.net/98098 |
20:32.03 | Aiiane | that doesn't actually add any new bindings |
20:32.07 | Aiiane | it just uses existing ones |
20:32.24 | BotanicalPuppet | what does it do to them |
20:32.52 | BotanicalPuppet | the 1-48 bindings you mean right? |
20:32.58 | Felyza | wish me luck, going to try blowing it up |
20:33.10 | Felyza | testing a few different things in the mod files |
20:33.40 | Felyza | autoenabled, and ATTEMPTING to add hotkeys |
20:33.50 | BotanicalPuppet | does it succesfully change bind#48 from being keypress1 to keypress2? |
20:34.39 | BotanicalPuppet | if so... maybe no new bindings but... |
20:34.46 | Felyza | btw, hi Aiiane! |
20:34.49 | BotanicalPuppet | dear god how much better a ChosensHelper could be ... |
20:35.04 | Aiiane | BotanicalPuppet: yes, you can modify bindings on the fly |
20:35.11 | BotanicalPuppet | fanfuckintastic |
20:35.12 | Aiiane | and essentially make chosenhelper a 1-button-spam addon |
20:35.14 | BotanicalPuppet | tyty |
20:35.21 | Felyza | PLEASE don't |
20:35.23 | Aiiane | how do you think Binder works? |
20:35.27 | BotanicalPuppet | hmm? |
20:35.35 | Felyza | I REALLY don't want to see 1 button spammers hit play already |
20:35.40 | BotanicalPuppet | well for one thing both optoins will always be in the mod, but go on |
20:35.49 | Aiiane | Felyza: well, technically it's only 1-buttom spam for auras |
20:35.50 | BotanicalPuppet | Aiiane.. |
20:36.01 | Aiiane | but yeah, the concept sort of makes me sad |
20:36.05 | BotanicalPuppet | at first i thought a Binder thing couldnt be done because i didn't try hard enough when i tried to set bindings the 1st tiem :( |
20:36.12 | Felyza | Aiiane, it'd pave the way for 1 button BW's and the like |
20:36.23 | Felyza | WOOT |
20:36.26 | BotanicalPuppet | good? |
20:36.28 | Felyza | figured out a new .mod toy |
20:36.32 | Felyza | <UiMod name="DebugTest" version="1.0" date="10/12/2008" autoenabled="false"> |
20:36.38 | Felyza | does NOT load it by default |
20:36.45 | BotanicalPuppet | how do you load? :) |
20:36.49 | Aiiane | addon window |
20:36.54 | Felyza | yep |
20:36.57 | BotanicalPuppet | ohhh |
20:36.57 | BotanicalPuppet | ok |
20:37.01 | BotanicalPuppet | cool |
20:37.17 | Felyza | for debugging tools, i'm going to start autoenabled=false in them |
20:37.17 | BotanicalPuppet | still no loading or unloading except for total load and shutdown yes? |
20:37.24 | BotanicalPuppet | ya me too then |
20:37.25 | Aiiane | correct BotanicalPuppet |
20:37.44 | BotanicalPuppet | umm... does it ready autoenabled every time or is it a savedvariable? |
20:37.52 | BotanicalPuppet | i'd assume every time but |
20:38.05 | Felyza | probably sets the default state of the enabled variable saved to the mod settings |
20:38.21 | Felyza | i'll tell you in a sec |
20:38.22 | BotanicalPuppet | u know what i'll do... |
20:38.29 | BotanicalPuppet | i'll just set the flag to false in my dev utils |
20:38.45 | BotanicalPuppet | or the opposite... i mean |
20:38.51 | BotanicalPuppet | make them turnon the weird new toy |
20:38.56 | Felyza | yes, it sets the default state of the enabled variable in ModSettings.xml |
20:39.08 | BotanicalPuppet | good spy |
20:39.29 | BotanicalPuppet | forum post imo :) |
20:41.06 | BotanicalPuppet | ping .myp hackers |
20:41.25 | BotanicalPuppet | the function that loads from file gets a list of .mod's |
20:41.33 | BotanicalPuppet | those .mod's have the filenames of every other file loaded |
20:41.36 | BotanicalPuppet | so there's your filenames |
20:42.17 | Felyza | <Hotkey action="DebugTest.Hotkey" key="NONE"/> doesn't work |
20:42.22 | BotanicalPuppet | at least where the literal strings are stored |
20:42.33 | BotanicalPuppet | are in the mod and xml files |
20:42.48 | BotanicalPuppet | with the mod files being loaded from a mod file list |
20:43.13 | BotanicalPuppet | uhh... how it finds the mod file list inside the myp ? *scratches head* |
20:43.34 | Werelds | BotanicalPuppet |
20:43.39 | Werelds | those are the ones we have already |
20:43.42 | Werelds | :P |
20:43.50 | Werelds | well mostly |
20:43.57 | BotanicalPuppet | heh. so can we make new ones like the ones they made the same way? |
20:44.03 | Werelds | there's a few dev only files we haven't got a full path for yet |
20:45.37 | Aiiane | Felyza: that's because actions aren't functions |
20:45.51 | Aiiane | as far as I can tell |
20:46.33 | Felyza | i'm trying to figure out how the hotkey tag works, sadly, all i have is keywords... nothing that says "it works" |
20:50.00 | Aiiane | Felyza: well, it's not in any of the default UI as far as I can tell |
20:50.28 | Felyza | Ida told me about it, so I'm looking into what she had to say. ;) |
20:59.08 | BotanicalPuppet | has anyone tried doing a clean custom ui that merely saves _G recursively to a log? if not i should |
20:59.40 | BotanicalPuppet | ie pretty print all the _G stuff that is there no matter what |
21:09.02 | BotanicalPuppet | can anyone tell me what <Texture name="EA_SquareFrame" file="Textures/EA_sqframe01_d5.dds" /> does |
21:09.16 | BotanicalPuppet | i understand the filename, but the path bugs me |
21:09.52 | Aiiane | what do you mean? |
21:10.02 | Aiiane | all paths are relative from the module's base directory |
21:10.12 | BotanicalPuppet | thanks!! |
21:10.38 | BotanicalPuppet | invaluable, saved me a headache :) |
21:10.41 | Felyza | at least i found a reference for WindowRegisterCoreEventHandler finally |
21:11.02 | Felyza | not a lot of help, but worth noting |
21:11.51 | BotanicalPuppet | i use 'find in files' in notepad++ very much... too much |
21:12.03 | BotanicalPuppet | i hate how it keeps changing the folder to search |
21:12.50 | Felyza | textpad saves last settings |
21:13.31 | BotanicalPuppet | so we are in \interface\custom\eawin\text\somethin.dds ... we need to be in \interface\default\eawin\text\somethin.dds |
21:13.43 | BotanicalPuppet | relative to eawin |
21:13.58 | BotanicalPuppet | step back 2, in 2, and same text... |
21:14.13 | BotanicalPuppet | ..\..\default\eawin\text\somethin.dds |
21:14.47 | BotanicalPuppet | i don't know regexp enough not to fubar them so i'll do them by hand |
21:15.04 | BotanicalPuppet | (per window) |
21:16.43 | BotanicalPuppet | basically just add ../../Default/EA_<window>/ for most |
21:18.22 | BotanicalPuppet | f3 + ctrl-v its hot :) |
21:19.04 | Felyza | L("string ")=wstring? |
21:19.17 | BotanicalPuppet | no |
21:19.22 | BotanicalPuppet | i don't believe so |
21:19.30 | BotanicalPuppet | L"string" prepocessed wstring |
21:19.50 | BotanicalPuppet | is there an L function? i donno |
21:19.54 | BotanicalPuppet | lua> type ( L ) |
21:19.54 | lua_bot | BotanicalPuppet: nil |
21:19.57 | BotanicalPuppet | na |
21:22.54 | BotanicalPuppet | i've changed ckknight's DevUtils so radically that i think i'll just let them sit at that name and come up with a new project |
21:23.03 | BotanicalPuppet | it's now 5-10x the size and growing |
21:23.09 | ckknight | lol |
21:23.13 | ckknight | just clone it |
21:23.18 | BotanicalPuppet | but noone will see it |
21:23.28 | ckknight | I'll see it. |
21:23.30 | BotanicalPuppet | if it's just a clone |
21:23.33 | ckknight | and probably merge in |
21:23.41 | BotanicalPuppet | subscribe to BotUtils |
21:23.44 | BotanicalPuppet | that is all :P |
21:23.46 | BotanicalPuppet | MIT license |
21:24.41 | BotanicalPuppet | my coolest projects will be CustomUI, BotUI, and BotUtils... first for everyone, second for my primary mod to the same, and third for developers |
21:24.51 | ckknight | alright then |
21:25.16 | BotanicalPuppet | all MIT license cuz open source is how you do it... |
21:27.21 | zarious | whats so cool about mit license? |
21:28.04 | Eldan | keeps it open source if i recall |
21:28.51 | ckknight | no, Eldan |
21:29.06 | ckknight | MIT is one of the least restrictive licenses available |
21:29.37 | Eldan | ah |
21:29.37 | ckknight | the only thing that'd be less restrictive would be something like WTFPL or Public Domain |
21:29.46 | ckknight | MIT basically says "do what you want as long as I get credit for what I did if you redistribute it" |
21:29.49 | zarious | the copyright notice looks like bsd |
21:30.00 | ckknight | yea, 2-clause BSD is equivalent to MIT |
21:30.06 | ckknight | MIT is clearer, imo |
21:34.51 | BotanicalPuppet | hey since you're here, what do you think about syndicating the CustomUI across code.google and curseforge? |
21:35.15 | BotanicalPuppet | it has everything in the Interface/Default folder |
21:35.20 | BotanicalPuppet | but now in Interface/Custom and different |
21:35.42 | BotanicalPuppet | and minus the .dds, which are referenced back to ../../Default/ |
21:35.58 | BotanicalPuppet | i like the look of code.google for just plain browsing code |
21:37.51 | Aiiane | um, what? |
21:37.59 | BotanicalPuppet | post my project to two sites |
21:38.01 | BotanicalPuppet | good/bad? |
21:38.24 | Aiiane | up to you |
21:38.48 | BotanicalPuppet | ok thx... i will then.. just for this 1... everything else pure curseforge |
21:39.06 | BotanicalPuppet | code.google will eventually prolly allow diffs between repositories if it doesn't already |
21:39.14 | BotanicalPuppet | and the interface.myp is just sitting there in its current ver |
21:39.24 | BotanicalPuppet | and past versions for that matter |
21:39.51 | *** join/#waruidev jorgenpt (n=jorgenpt@tjer.no) |
21:42.30 | zarious | hey BotanicalPuppet did you ever find any good examples of scheduling implementation |
21:42.43 | BotanicalPuppet | eh no, but i'll put a simple one in BotUtils |
21:42.55 | BotanicalPuppet | for i am the king of vaporware |
21:43.49 | *** join/#waruidev Flisher (n=flisher@modemcable098.47-80-70.mc.videotron.ca) |
21:43.51 | zarious | anybody know of any good serach terms for one? |
21:44.06 | BotanicalPuppet | fifo queue schedule perl python |
21:44.24 | BotanicalPuppet | lua has a smaller codebase putting stuff on www |
21:44.26 | Flisher | Aiiane: you are here? |
21:45.00 | Aiiane | ? |
21:45.26 | Flisher | I was wondering if there was a way to "overload" an existing slash command with LibSlash |
21:45.52 | Flisher | I would need to intercept /logout, /camp and /quit since they doesn't trigger their related event. (unlike the ingame menu). |
21:46.27 | Flisher | I mean intercepting it but letting it continue to work. if I register logout, the original thing doesn't work anymore. |
21:46.29 | Aiiane | you could hook the same way libslash does |
21:46.33 | BotanicalPuppet | i think he's feature requesting conditional registration toggles? |
21:46.36 | BotanicalPuppet | in LibSlash |
21:46.57 | BotanicalPuppet | have a toggle to force override to other commands defined by system or something |
21:47.04 | Aiiane | no, he's not |
21:47.07 | BotanicalPuppet | ok |
21:47.13 | Flisher | Aiiane: I was about to turn LibSlash "conditional". If it's there, I register CV stuff with it, but register logout and such manually. If not there, I register everything on my own. |
21:47.17 | Aiiane | Flisher: for what you want to do, just make your own hook |
21:47.58 | Flisher | Will keep the /cv stuff with libslash if it's present. Will allow people relying on libslash menu or thing like that compatible :) |
21:48.20 | Aiiane | libslash is basically just for creating new slash commands |
21:48.27 | Aiiane | existing slash commands should just be hooked normally |
21:48.37 | Aiiane | because there's no danger of a collision there |
21:48.53 | *** join/#waruidev mete (n=pear@193.43.249.169) |
21:49.03 | BotanicalPuppet | and i tend to favor a design decision that doesn't allow two addons to use one common / command both called from LibSlash |
21:49.06 | Flisher | hum, you mean hooking the result of /logout instead of hooking the chatwindows... |
21:49.13 | Aiiane | no |
21:49.17 | Aiiane | I mean hooking the chatwindow |
21:49.21 | Flisher | ok |
21:49.45 | Aiiane | there is no "result of /logout" ;) |
21:50.13 | BotanicalPuppet | but, on the other hand, would it be so bad for say... more than one handler to exist for something like /debug ? |
21:50.29 | BotanicalPuppet | all called in a chain.. |
21:51.03 | Aiiane | why would it be bad? |
21:51.09 | Aiiane | that's how hooks are supposed to work |
21:51.24 | BotanicalPuppet | there's no way though LibSlash for foo and foobar to register /debug is there? |
21:51.45 | BotanicalPuppet | oh i'm dum |
21:51.56 | Aiiane | why the hell would you register /debug in libslash |
21:51.56 | BotanicalPuppet | i want foo and foobar to register /addondebug or something |
21:52.05 | BotanicalPuppet | i didn't think about the predefine sorry |
21:52.08 | Aiiane | and no, libslash only allows one registration of a slash command |
21:52.15 | Aiiane | it's designed to prevent collisions |
21:52.18 | BotanicalPuppet | that's fine imo |
21:52.44 | Aiiane | convention-wise, any addon should try to register both a 'short' slashcommand and a 'long' one |
21:52.47 | BotanicalPuppet | but... but... can we get a LibSlashForRegisteredCmd("slashcmd") return registeredfunc ? |
21:52.57 | Aiiane | the long one being something > 6 characters that is 99.9% unique to that addon |
21:53.05 | BotanicalPuppet | that would be nice for a lot of things |
21:53.20 | Aiiane | BotanicalPuppet: don't hook libslash >< |
21:53.26 | BotanicalPuppet | what do you mean? |
21:53.44 | Aiiane | why would you need the registered function for a slash command |
21:53.45 | BotanicalPuppet | if someone registered a command, i want to know what the name of the function is |
21:53.52 | BotanicalPuppet | for example |
21:53.55 | Repo | 10influencetext: 03Elder82 * r39 / (2 files in 1 directory): * Added option to display current chapter |
21:53.57 | Repo | * Added WaaaghBar support |
21:54.07 | BotanicalPuppet | how do i know if my addon registered that command to that function if its already registerd, or someon else? |
21:54.21 | Aiiane | RegisterSlashCmd returns a success code |
21:54.33 | Aiiane | you can also explicitly check IsSlashCmdRegistered() |
21:54.37 | BotanicalPuppet | yes i do that |
21:54.38 | Aiiane | before trying to register it |
21:54.42 | BotanicalPuppet | but i want to know WHO did it |
21:54.46 | Aiiane | why? |
21:54.47 | BotanicalPuppet | if it was me, bob, or marley |
21:54.53 | BotanicalPuppet | there is one #1 reason |
21:55.16 | Aiiane | if you get a success from RegisterSlashCmd, then you registered it |
21:55.18 | Aiiane | otherwise, you didn't |
21:55.23 | Aiiane | you shouldn't care about what other addons did |
21:55.28 | BotanicalPuppet | http://war.curseforge.com/projects/slashclick/ |
21:55.40 | BotanicalPuppet | this tries to extend LibSlash without hurting it |
21:55.48 | BotanicalPuppet | giving it a GUI wrapper letting people do their stuff with clicks |
21:56.00 | BotanicalPuppet | been wanting to talk to you about it |
21:56.02 | Aiiane | you can involve slash commands via the slash() global |
21:56.12 | Aiiane | you don't need to know what function is registered to them |
21:56.22 | Aiiane | *invoke |
21:56.28 | BotanicalPuppet | that's entirely true |
21:57.08 | Repo | 10influencetext: 03Elder82 04v1.2.6 * r40 : Tagging as v1.2.6. |
21:58.32 | BotanicalPuppet | ok i guess it's not a valid reason... if there were never any collisions, we'd want LibSlash as is |
21:58.47 | *** join/#waruidev vazawu (n=pear@193.43.249.169) |
21:58.54 | BotanicalPuppet | however, if we wanted addon authors to resolve collisions with their own code for doing so, we'd definitley want a string for the function being registered |
21:58.57 | Aiiane | what you /should/ be asking me for in order to be able to write slashclick is a LibSlash api function to get a list |
21:59.12 | Aiiane | of registered slash commands |
21:59.12 | BotanicalPuppet | and that would be more relevant to SlashClick |
21:59.21 | Aiiane | er |
21:59.24 | Aiiane | resolve collisions what? |
21:59.35 | BotanicalPuppet | say two addons want to do some command |
21:59.40 | BotanicalPuppet | i dunno call it /c |
21:59.48 | zarious | i already asked for that! hell i'll write it myself, i'd be a simple function |
21:59.49 | Aiiane | first one to register it gets it |
21:59.51 | Aiiane | period |
21:59.53 | BotanicalPuppet | they both want to hear the args to that |
22:00.06 | Aiiane | zarious: I'll add it at some point |
22:00.12 | BotanicalPuppet | the next one can unregister and reregister???? |
22:00.17 | BotanicalPuppet | leaving 1st one in the dark |
22:00.24 | BotanicalPuppet | with no way for the 2nd one to play nice and register at all |
22:00.27 | Aiiane | BotanicalPuppet: it /can/, but it shouldn't |
22:00.36 | BotanicalPuppet | <PROTECTED> |
22:01.10 | Aiiane | if I had a way to only allow the addon that registered a slash to unregister it, I'd implement that |
22:01.22 | Aiiane | as it is... don't unregister slash commands you didn't register |
22:01.28 | Aiiane | or I will come beat you over the head with a mop |
22:01.46 | zarious | what if they have a helmet on? |
22:01.53 | zarious | you're not gonna do much with a mop |
22:01.53 | BotanicalPuppet | i do it's called LibSlashRegisterCmdForced, which I use with LibSlashRegisterCmdSlacked..my own declarations |
22:01.56 | Aiiane | then I will use the mop to remove the helmet first |
22:01.57 | BotanicalPuppet | i will do this |
22:02.11 | BotanicalPuppet | so.. it would be nice if i could make Forced freindlier |
22:02.19 | Aiiane | BotanicalPuppet: if you distribute an addon that unregisters other addons' slash commands |
22:02.21 | Aiiane | I will a) hurt you |
22:02.25 | Aiiane | b) delete it |
22:02.30 | Aiiane | c) delete the rest of your mods from curse |
22:02.32 | Aiiane | so don't do it. |
22:02.49 | BotanicalPuppet | fix your lib ? |
22:02.58 | BotanicalPuppet | i wont until then |
22:03.04 | Aiiane | No, you SHOULD NOT be trying to use a slash command that another addon has claimed |
22:03.11 | BotanicalPuppet | but it has issues if you have to be that way about wanting to do something with it |
22:03.31 | Aiiane | why are you trying to "Steal" slash commands in the first place |
22:03.51 | BotanicalPuppet | hmm.. i'll take it out for now |
22:03.55 | BotanicalPuppet | only Slacked |
22:04.01 | BotanicalPuppet | since there's no good thing to come of it now |
22:04.04 | Aiiane | no, seriously - why are you trying to do that in the first place |
22:04.26 | BotanicalPuppet | i want the user to be guaranteed that /fhd leads to FunctionHookDebug |
22:04.46 | Aiiane | that should be up to the user |
22:04.47 | BotanicalPuppet | other stuff like /rl i could care less if it really is mine |
22:04.48 | Aiiane | not to your addon |
22:05.11 | Aiiane | if there's an addon that's taking the fhd slash, it should be their perogative whether they want to remove it or not |
22:05.22 | BotanicalPuppet | i should slow down |
22:05.34 | BotanicalPuppet | and try for a different request. |
22:05.56 | Aiiane | The point is, no addon has 'special' priority for slash commands |
22:06.02 | BotanicalPuppet | that's fine, i agree |
22:06.05 | Aiiane | your addon is not more important than any other addon |
22:06.09 | BotanicalPuppet | agreed |
22:06.13 | BotanicalPuppet | i have a different idea |
22:06.18 | BotanicalPuppet | that more closely says what i'd like |
22:06.27 | Aiiane | thus, if 2 addons want a slash command, they both have equal rights, and thus the tiebreaker is which registered it first. |
22:06.35 | BotanicalPuppet | doesn't have to break the tie |
22:06.37 | BotanicalPuppet | is what i'd like |
22:06.39 | BotanicalPuppet | hear me out |
22:07.04 | BotanicalPuppet | instead of just having table_registry_of_slash_cmds = { "slash1" = func1, "slash2" = func2, "slash3" = func3 } |
22:07.17 | BotanicalPuppet | have instead of just having table_registry_of_slash_cmds = { "slash1" = {func1, func2}, "slash2" = func2, "slash3" = func3 } |
22:07.20 | Aiiane | no. |
22:07.27 | BotanicalPuppet | that is about it, with some changes that could be done in a few hours |
22:07.32 | BotanicalPuppet | yes :'( |
22:07.42 | Eldan | this is intense O.O |
22:08.05 | Aiiane | That's both a) confusing to the end user when one slash command triggers multiple (possibly undesired) results |
22:08.17 | Aiiane | and b) unncessary. |
22:08.27 | Aiiane | *unnecessary |
22:08.39 | BotanicalPuppet | a) only if the coders make it confusing b) not so, convenient for 1 addon writer and necessary for 2 to use a slashcmd |
22:08.50 | BotanicalPuppet | a) is a total presumption, so is b) |
22:08.55 | Aiiane | the point is, 2 addons *shouldn't* be using the same slash command |
22:08.59 | Aiiane | register a different damn slashcommand ffs |
22:09.19 | BotanicalPuppet | and what if i just wanted to listen on all the slash cmds and do something behind the scenes? |
22:09.21 | Aiiane | and no, it's not presumption, it's common sense |
22:09.37 | BotanicalPuppet | common sense is a close relative and often involved with presumptoin |
22:09.44 | Aiiane | ~lart BotanicalPuppet |
22:09.44 | purl | does a little 'renice 20 -u BotanicalPuppet' |
22:09.45 | BotanicalPuppet | they get together on weekends and do the nasty... |
22:10.05 | BotanicalPuppet | i'm really sorry the way i've suggested this |
22:10.13 | Aiiane | no, but seriously |
22:10.17 | BotanicalPuppet | for such a useful and mostly issue-free feature, i've done a bad thing for it |
22:10.19 | Aiiane | if you want to mess with things like that |
22:10.21 | Aiiane | then hook libslash |
22:10.27 | Aiiane | but I'm not going to support it |
22:10.45 | Aiiane | because it's really a bad idea |
22:10.49 | BotanicalPuppet | do you mind me making LibSlashHooked and making it compat with regular LibSlash? |
22:10.58 | Aiiane | yes |
22:10.59 | Aiiane | I do |
22:11.01 | BotanicalPuppet | youDO? |
22:11.06 | BotanicalPuppet | are you serous |
22:11.37 | BotanicalPuppet | how about calling it LibSlashForkHookedInstallIfYouWantThisFunctionality |
22:11.46 | Aiiane | no, the point is |
22:11.47 | BotanicalPuppet | free fuckin world |
22:11.49 | Aiiane | it's *BAD* functionality |
22:12.04 | BotanicalPuppet | ok, it's your project management |
22:12.42 | BotanicalPuppet | why the threats though? |
22:12.55 | Aiiane | because you don't seem to get the point |
22:13.00 | Repo | 10influencetext: 03Elder82 * r41 / (2 files in 1 directory): * Added option to replace default influence bar tooltip |
22:13.06 | Repo | 10influencetext: 03Elder82 04v1.2.7 * r42 : Tagging as v1.2.7. |
22:13.07 | BotanicalPuppet | look, SecondLib and FirstLib |
22:13.10 | BotanicalPuppet | firstLib came first |
22:13.15 | BotanicalPuppet | secondLib doesn't break |
22:13.17 | BotanicalPuppet | use whichever you like |
22:13.21 | BotanicalPuppet | standalone insall |
22:13.23 | BotanicalPuppet | .theend |
22:13.32 | Aiiane | except that secondlib is by its very definition broken |
22:13.42 | BotanicalPuppet | no it isn't |
22:13.47 | BotanicalPuppet | working as 100% intended |
22:13.54 | Aiiane | the concept is broken |
22:13.55 | Aiiane | not the code |
22:14.10 | BotanicalPuppet | "/blah x y z" is an event, people register for it |
22:14.16 | BotanicalPuppet | it's not code, it's an event |
22:14.41 | Aiiane | no. the default slash commands are events *without collisions* |
22:14.44 | Aiiane | er |
22:14.47 | Aiiane | the libslash ones are |
22:15.00 | Aiiane | the entire point of libslash is to prevent those collisions |
22:15.02 | BotanicalPuppet | yeah but you are treating "/blah" like BlahFunc() when it's not |
22:15.09 | Aiiane | except it is |
22:15.24 | BotanicalPuppet | the point of LibSlashForked is to let people keep track of who is subbing these events |
22:15.28 | BotanicalPuppet | and add themselves to subs if they like |
22:15.47 | Aiiane | once again, that's a bad paradigm to follow |
22:15.53 | BotanicalPuppet | we disagree |
22:15.58 | Aiiane | if you don't give a crap about collisions, hook the window yourself |
22:16.00 | BotanicalPuppet | i have addons to write |
22:16.06 | Aiiane | nothing's stopping any addon from doing that |
22:16.10 | Aiiane | - |
22:16.12 | Aiiane | _- |
22:16.13 | Felyza | YAY |
22:16.42 | Aiiane | let me see about adding that list api zarious |
22:17.11 | Felyza | Aiiane, I'm thinking you should do a quick code revamp of SOMETHING on libslash, break its current functions in some way, and change to a proprietary license. |
22:17.25 | jorgenpt | haha :p |
22:17.36 | Flisher | slash command overload is very very contextual (like my logout, quit or camp thing), I don't think you want a slash command to call 2 different addon. |
22:17.37 | *** join/#waruidev cijady (n=pear@193.43.249.169) |
22:17.47 | Felyza | So should he try to release a LibSlashHooked, it wouldn't work, and any attempt to register a project = violation of license |
22:18.00 | Eldan | would it be possible to track all attempts at registering a slash command [letting them all assign as default], and then have a gui or something that lets the user choose between which function each duplicate command will perform? |
22:18.01 | Aiiane | Felyza: No, it's going to stay as is |
22:18.13 | Felyza | Sigh |
22:18.22 | Felyza | He needs to stick entirely to writing vaporware |
22:18.37 | Aiiane | if he wants to release a modified version of libslash, that's his perogative, and if people want to use it, that's their perogative |
22:18.48 | Aiiane | I'll mind, but it's not my decision to make |
22:19.31 | Flisher | any open source licence require auriginal author to reuse code? |
22:19.40 | Felyza | Well, hopefully people like him don't dissaude you. When it comes down to an aiiane vs another author, i go with yours 9 times out of 10 |
22:20.09 | Felyza | ~aiiane |
22:20.09 | purl | aiiane is probably an Angel of UI Goodness |
22:20.46 | Felyza | sigh |
22:20.50 | Aiiane | zarious: this look like it would serve your purposes? |
22:20.51 | Aiiane | function LibSlash.GetSlashCommandList() |
22:20.51 | Aiiane | <PROTECTED> |
22:20.51 | Aiiane | <PROTECTED> |
22:20.51 | Aiiane | <PROTECTED> |
22:20.51 | Aiiane | <PROTECTED> |
22:20.53 | Aiiane | end |
22:21.51 | Flisher | how can a user type wslashcommand? |
22:22.15 | Aiiane | wslash/slash are transparent to the end user |
22:22.24 | Aiiane | it's just a matter of what the handler function gets passed |
22:22.27 | Aiiane | (string vs wstring) |
22:23.04 | Felyza | i need some relatively easy vaporware to play with |
22:23.21 | Aiiane | Felyza: did you ever get that addon for announce keeps under attack written? |
22:23.37 | Felyza | No, someone else beat me to it, and they did a better job than I can do |
22:23.54 | Flisher | that addons dump 50 line of text... we need a graphical keep thing :) |
22:24.09 | Aiiane | Felyza: hmm, did they? |
22:24.13 | Aiiane | link me the addon |
22:24.20 | Flisher | @project keepwatch |
22:24.20 | Repo | Flisher: No project found that matches 'keepwatch' |
22:24.23 | Flisher | @project keepwatcher |
22:24.24 | Repo | Flisher: http://war.curseforge.com/projects/keepwatcher/. Keep Watcher. Game: WAR. Leader: Tsolval. Updated: 6 days ago |
22:24.29 | Felyza | I've seen screenshots that include it, where they get it, i don't know |
22:24.44 | Flisher | that a text output thing. |
22:24.57 | Felyza | Ah, there's another one somewhere, not on curse then |
22:25.14 | Aiiane | What I'm meaning is a GUI window that will pop up and stay there (until dismissed) when *your* keep is under attack |
22:25.31 | Aiiane | and preferably, display the attack status as well (door under attack, lord under attack) |
22:26.03 | Felyza | Right now, with poking at it, I'm finding its only showing 'keep lord' under attack, even if its only the front doors |
22:26.13 | Flisher | API give access to "guild/alliance keep"? |
22:26.23 | Aiiane | Felyza: that's because you don't own a keep, most likely |
22:26.30 | Aiiane | the messages for claimed keeps are more informative |
22:26.35 | Felyza | Ah |
22:26.37 | Aiiane | I can get you a screenshot, one sec |
22:29.06 | Aiiane | at least, I thought I had one here... blah |
22:31.14 | *** join/#waruidev Sores (i=Sores@92.254.245.46) |
22:31.26 | Aiiane | Hehe Undine :) |
22:32.15 | Felyza | really stupid basic question... lets say I make a 'table' in the beginning of my file MyAddon = {}... how can I include a second file with a table of strings in a different file? Do I just add MyAddon.Table={} at the start of that file and have it 2nd in list of files in .mod? |
22:32.42 | Undine | yeah, it's like "damn, someone has already used /wotsit, I know I'll unregister them and usurp it myself. better yet, I'll make it do my action as well!" or ... you could like use /quaver instead! |
22:32.46 | Repo | 10libslash: 03Aiiane * r35 / (2 files in 1 directory): |
22:32.47 | Repo | Added API function LibSlash.GetSlashCommandList() to return a read-only list of registered slash commands. |
22:33.13 | *** join/#waruidev smcn (i=smcn@c-67-160-186-84.hsd1.wa.comcast.net) |
22:33.13 | Aiiane | Felyza: at the top of both files |
22:33.15 | Aiiane | just do |
22:33.22 | Aiiane | if not MyAddon then MyAddon = {} end |
22:33.33 | Aiiane | thus whichever file loads first will initialize the table |
22:33.36 | Felyza | k |
22:33.37 | Aiiane | and the other file won't overwrite that |
22:33.55 | zarious | aiiane yeah that should be good, just wanted to make a drop down list of all mods who registered commands so you can use a gui for it etc |
22:33.57 | Felyza | I was wondering how to stick large tables in an include |
22:34.02 | Undine | that said, i've seen parser libraries that basically send text to every registered object until one reports a success |
22:34.52 | Aiiane | sure; but here the definition of success is very straightforward |
22:35.00 | Aiiane | either the command belongs to an addon or it doesn't |
22:35.23 | Aiiane | argument failure is completely within the realm of the addon's handler |
22:35.53 | Aiiane | basically, the 1:1 addon:slash mapping is a paradigm that really works best left as-is |
22:36.01 | Undine | soon as I get my new machine and can actually alt-tab and /reload in sensible time I can start poking at people's addons :) |
22:36.02 | zarious | im going to assume that you put return false etc into the addslash commands? |
22:36.40 | Aiiane | zarious: yes, any failure case returns false |
22:36.51 | Undine | i need to sort out the three overlapping tooltips I have |
22:36.58 | Aiiane | (and will also output a message to debug) |
22:37.20 | zarious | yeah, then i think the addon authors are on their own for checking whether or not their register commands fail, and handling that properly |
22:38.08 | Aiiane | like I said, Best Practice for slash commands is to register two - a "short" and a "long", with the long being more than 6 characters and chosen to likely be unique to the addon |
22:38.19 | Aiiane | for instance, Squared registers /sqr and /squared |
22:38.37 | Aiiane | alertfilter actually registers 3: /af, /afilter, and /alertfilter |
22:43.09 | Flisher | cv now register /cv and /charview |
22:43.56 | Undine | I like cv. It highlighted my server's broken name :) |
22:45.50 | Flisher | there is a problem with something? |
22:46.05 | Flisher | i mean: I have to fix something? |
22:46.17 | Undine | no. my server magically changed its name for 2/3 days |
22:46.31 | Undine | I got confused as ClosetGnome lost its settings |
22:46.42 | Undine | then I saw cv was showing my chars twice, once for each server name |
22:46.44 | Flisher | lol |
22:47.08 | Undine | goa eh? whacha gonna do! |
22:47.13 | Flisher | Aiiane: this would be a way to go for non-libslash thing in CV? http://waruidev.pastey.net/98110 |
22:48.10 | Aiiane | that looks about right, Flisher |
22:48.29 | Flisher | Still using LibSlash for everything else :) |
22:51.07 | Repo | 10charview: 03Flisher * r65 / (2 files in 1 directory): |
22:51.08 | Repo | -1.31 - Reintroduced LibSlash handler, fixed all slashcmd issue |
22:51.10 | Repo | -Fixed the version number displayed at the top of the CV windows |
22:51.34 | Flisher | it's me or they removed the web tagger on curseforge? |
22:53.23 | Repo | 10charview: 03Flisher 04Version 1.31 Beta * r66 : Tagging as 1.31 Beta |
22:55.08 | *** join/#waruidev Wobin (n=Wobin@203-206-178-228.perm.iinet.net.au) |
22:56.16 | Aiiane | no Flisher |
22:56.22 | Aiiane | if you got to repository |
22:56.30 | Aiiane | then the upper-right menu will have the tag option in it |
22:56.35 | Flisher | Gotcha :) |
22:59.03 | Sores | Is there someway to copy everything from the debug window, out to a text document or something |
22:59.18 | Sores | for easier reading, trying to read through some data i've gotten from GetInventoryItemData() |
22:59.50 | Sores | or possible have the debug window logged |
23:00.05 | nicoli_s | why not just print it in your chat and read it in the chat log? |
23:01.32 | Sores | that could do |
23:03.04 | Aiiane | TextLogSetIncrementalSaving("UiLog", true, "logs\uilog.log") |
23:03.16 | Aiiane | will dump out the contents to WARDIR |
23:03.28 | Aiiane | *WARDIR\logs\uilog.log every so often |
23:04.48 | Flisher | is "nem" here nemes on curseforge? |
23:05.03 | Sores | Aiiane: sweet, thanks |
23:12.29 | Sores | Aiiane, you wouldn't happen to know what all rarity values stand for on items, for example item rarity = 1 is? 2, etc |
23:12.38 | Aiiane | 1 is grey |
23:12.51 | Aiiane | and each step up from that is the next level of rarity |
23:12.55 | Sores | okey |
23:13.01 | Aiiane | 1 grey, 2 white, 3, green, etc |
23:13.10 | Sores | ok |
23:13.24 | Aiiane | 4 blue, 5 purple, 6 orange |
23:13.25 | Aiiane | iirc |
23:13.34 | Sores | does the same count for crafting mats? |
23:13.41 | Aiiane | I would assume so |
23:13.41 | Sores | or does crafting mats have other rarity values |
23:13.53 | Flisher | nrarity, junksell or a few other addons might help ya. document the wiki if's it not already done. |
23:14.06 | Flisher | they have profession value |
23:14.28 | Sores | Flisher, aye will do, i am trying to go through GetInventoryItem() tables, to see all usefull information |
23:14.37 | Sores | going to write everything down, since it will come in handy |
23:14.54 | Felyza | Sores, check out interface/default/easystem_utils/source/gamedefs.lua if you extracted the interface.myp file |
23:15.11 | Sores | Felyza, aye have it extracted, well downloaded from the wardiff site |
23:15.41 | Felyza | extracting is always sure to have latest, after a patch, have to wait on wardiff to update |
23:16.15 | Eldan | could i get a hand with rounding output? |
23:16.31 | Eldan | ive made a function i think should work, but doesnt seem to |
23:16.33 | Eldan | http://waruidev.pastey.net/98115 |
23:16.36 | Felyza | Sores, check out the private query |
23:17.12 | *** join/#waruidev Huxton (n=kvirc@host-84-9-46-3.dslgb.com) |
23:18.11 | Sores | Felyza, have done, thanks mate. |
23:19.00 | Repo | 10huduf: 03Metaphaze * r2 / (9 files in 1 directory): Initial Import |
23:21.55 | Repo | 10huduf: 03Metaphaze 04alpha release * r3 : Tagging as alpha release. |
23:22.36 | Flisher | is there a function to validate if an addon is loaded, or I can rely on "if (NRarity) then" ? |
23:27.30 | Aiiane | Eldan: better to just use format |
23:29.03 | Aiiane | lua> a=25.666 print(string.format("%0.2f", a)) |
23:29.03 | lua_bot | Aiiane: 25.67 |
23:29.09 | Aiiane | lua> a=25.666 print(string.format("%0.1f", a)) |
23:29.10 | lua_bot | Aiiane: 25.7 |
23:29.48 | Aiiane | there's a wstring version too, you just have to pass it a wstring format string |
23:29.54 | Aiiane | i.e. |
23:30.02 | Aiiane | a=25.666 print(wstring.format(L"%0.1f", a)) |
23:40.22 | Eldan | much better :D |
23:42.30 | Huxton | ok, im completely new to this but im trying to show the guild vault window, there isnt an object listed as the guild vault window on the WAR api page but when I hover over the buttons with the debug window open ingame it calls it GuildVaultWindow |
23:42.53 | Huxton | when I try to do /script GuildVaultWindow.ToggleShowing() it doesnt work |
23:43.14 | Huxton | just wondering if anyone knows how I can get it to pop up please :) |
23:45.31 | Wobin | F95C465A_C970E751192A422F.txt |
23:45.46 | Wobin | 688C4919_C8CF1C53BA1A7082.xml |
23:45.53 | Wobin | are the two unhashed guildvault files |
23:45.58 | Wobin | lua and xml respectively |
23:46.25 | Wobin | Grab EasyMYP and extract your interface.myp |
23:46.41 | Wobin | it won't be in the direct folder layout, but it will be in the txt and xml folders |
23:47.06 | Huxton | thanks, so much :) |
23:47.58 | Flisher | is there a function to validate if an addon is loaded, or I can rely on "if (NRarity) then" ? |
23:48.14 | Wobin | that works just as well |
23:48.28 | Wobin | otherwise you set it as a dependancy |
23:51.31 | Flisher | but nrarity isn't used for CV to work, and if I add a dependancy it won't load if it's not used by the user |
23:51.37 | Repo | 10libgui: 03Aiiane * r1 LibGUI.lua: Added checkbox and sliderbar elements. Also cleaned up automatic eventhandler so that it doesn't need to create default noop handler functions, it'll just ignore any handlers that are nil. Finally, set a __call metatable for LibGUI so new independent objects can be created with LibGUI("objecttype"). |
23:51.44 | Wobin | Flisher: so the if check will be fine |
23:53.19 | Aiiane | you can't rely on it in OnInitialize |
23:53.26 | Aiiane | but if you wait until LOADING_END you can check then |
23:53.39 | *** join/#waruidev Undine (i=shamus@92-238-208-134.cable.ubr09.hawk.blueyonder.co.uk) |
23:54.51 | Wobin | ckknight: why doesn't cf and c.com remember my login status? |
23:55.15 | ckknight | what browser you have? |
23:55.54 | Flisher | aii: thank |
23:57.20 | Aiiane | dinner, back in a bit |
23:59.05 | Wobin | ckknight: mix of either Chromium or FF |
23:59.10 | ckknight | hrm |
23:59.11 | ckknight | odd |