IRC log for #waruidev on 20081012

00:00.15BotanicalPuppetthere is a Window* event register func
00:00.31VonhintenWindowRegiseterCoreEvent( windowName, "OnLButtonUp", "callback" )
00:01.23hallasah
00:01.27hallasthats what i was looking for
00:01.43tom0Ah 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.10Aiianebecause you also have a compass direction for your current direction of movement
00:02.17Aiianebased off deltaX and deltaY
00:02.18Aiianeno?
00:02.32hallasthe object is north on the compass?
00:02.33Aiianeand the difference in compass directions tells you which way you need to turn
00:02.47Aiianeif your direction is 270deg
00:02.54Aiianeand the object's direction is 180deg
00:03.21Aiianethen you need to turn 180-270 = -90deg = 90degs CCW
00:05.11tom0Ok, 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.48Aiianeby the sign
00:06.42Aiianescale the difference down to where it's in the +180 to -180 range
00:06.55Aiianeand if it's negative, you need to turn CCW, if it's positive, you need to turn CW
00:06.56hallasWindowRegisterCoreEvent is a nil value
00:07.06Aiianehallas: tack a Handler on the end
00:07.10hallasAh
00:07.11hallasofc
00:10.15tom0i 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.05Aiianeyou didn't scale to to be in the 180 to -180 range
00:11.24Aiianeif it's < -180, add 360
00:11.29Aiianeif it's > 180, subtract 360
00:11.39tom0oh, hold on ;)
00:12.26Aiianealternatively, just take it % 360
00:12.38Aiianeand then if it's > 180 you need to turn left, if it's < 180 you need to turn right
00:13.29tom0">if it's < -180, add 360" was the - sign a typo there?
00:13.36Aiianeno
00:13.43Aiiane-273 is less than -180
00:13.52tom0oh
00:13.55tom0ill try it right now
00:16.55tom0oh 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.14phx|rizzenevening folks
00:43.01AiianeSo, would you consider it delicious if LibGUI were fully embeddable?
00:43.51Aiianeand let you do things like myButton = LibGUI:NewElement("button")
00:43.57Aiianeand instantly have a button? :)
00:44.06Aiianewith no XML? :)
00:44.20Vonhintenyou can already pretty easily do that with CreateWindowFromTemplate
00:45.12Aiianesure, but without having to worry about the individual templates
00:46.04WobWorkI would find it tasty and filling
00:46.21WobWorkEsp if you could sanely handle lists
00:46.54WobWorkalthough 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.47Eldanhmm, 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.19WobWorkwe have no way of checking if an event is registered, do we?
01:14.32Repo10rolodex: 03wobin * r37 / (3 files in 1 directory): Added guild check for non guilded people
01:14.33RepoAdded guild check to not list the names if one is not in a guild
01:19.54Eldancan someone clarify what the : does in function declarations versus the .?
01:20.19Eldan[ex] function EA_System_EventEntry:IsOutOfStartingBox()
01:20.36WobWorkEldan: It's syntactic sugar
01:20.46WobWorkessentially, it's passing the object as the first argument
01:20.46Eldanso treat it the same?
01:20.48WobWorkno
01:20.50Eldanokay
01:21.07Eldanany common uses of it?
01:21.21Eldanor does it vary
01:21.21WobWorkEA_System_EventEntry:IsOutOfStartingBox() == EA_System_EventEntry.IsOutOfStartingBox(EA_System_EventEntry)
01:21.35WobWorkI suggest you have a read of PiL
01:21.47WobWorkit'll give a good outline of Lua and it's bits and pieces
01:21.49WobWork~pil
01:21.50purlProgramming 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.22Eldanive looked over that, and kind of saw thats what it did
01:22.24Eldanbut
01:22.49Eldani didnt see the usage in the functions i was looking at so i thought i may have been missing something
01:23.22WobWorkIt's fairly prevalent
01:23.30WobWorkjust maybe not in WAR
01:24.20Eldanokay, i think i get it
01:24.45Eldanis the arguement then accessed through 'self'?
01:24.50WobWorkyes
01:24.52Eldanargument*
01:24.59Eldanokay
01:27.02Eldanim having difficulties figuring out how things are printed to the combat log
01:27.13Eldanits confusing
01:28.06zariouslua> tick = 5; Tick = 3; print(tick)
01:28.06lua_botzarious: 5
01:28.06zariouslua> tick = 5; Tick = 3; print(Tick)
01:28.07lua_botzarious: 3
01:28.45AiianeEldan: well, it might help if you start with the realization that it's not done from Lua
01:29.07Eldanit might
01:29.39Eldani just noticed
01:30.27WobWorkhm
01:30.34Eldanevery time i used an ability/attacked it called EA_System_EventText.AddCombatEventText(w, x, y, z)
01:30.43Eldanwhat is that doing then?
01:30.49Aiianethe floating combat text
01:30.53Eldanah
01:30.54Aiianethat appears above your character's head
01:30.58Aiianeand/or targets' heads
01:31.00WobWorkLooking to the Guild roster window for details on how to use a more complex list
01:31.07WobWorkbut I don't know if that's a good idea =)
01:31.09Eldanthat works
01:31.24Eldanbecause it still runs every time a skill is used
01:31.41Aiianenot necessarily
01:31.48Eldanseems to
01:31.48zariousoh my god, drug women are nuts
01:31.53Aiianeit doesn't run with a DoT is initially applied
01:31.54zariousdrunk*
01:31.58Aiianeand it runs every time a DoT ticks
01:31.58Eldanyeah
01:32.01Eldanthats true
01:32.15Aiianeit also runs any time you get healed or take damage
01:32.20Aiianeas well as any time you do healing or damage
01:32.53Eldanthose are what i need to sift between
01:33.04Eldani need dot ticks, and my healing
01:33.16Eldanand dealing/taking damage
01:33.23Eldanbut not other people healing
01:33.26zariousjust got back from the wedding/reception of a friend of mine.....
01:33.42Aiianeyou don't need your own healing
01:33.54Aiianejust use the spellcast end event for heals and your own damage, no?
01:34.11Eldanhots*
01:34.15Eldanrather
01:34.22Aiianeall you really care about from combat events is you taking damage
01:34.33Aiianeand maybe your hots ticking on others, dunno if that affects it or not
01:34.40Eldanyeah
01:34.52Eldanwell
01:34.58Eldani feel like its bugged at the moment
01:35.03Aiianeisn't it just based on combat flag though?
01:35.19Eldanhmmm
01:35.21Aiianeif you spend 10sec not combat flagged, I thought
01:35.26Eldanmay be
01:35.33Eldani think
01:35.35Aiianein which case you wouldn't even need all this stuff
01:35.43Eldanthe waagh you get for healing is bugged anyways
01:35.49Eldanand doesnt go away
01:36.04Aiianejust watch the PLAYER_COMBAT_FLAG_UPDATED (I think that's it)
01:36.06Aiianeevent
01:36.10AiianeEldan: no
01:36.18Aiianeit goes away /if you were in combat when you got it/
01:36.18Eldanno?
01:36.21*** join/#waruidev Nyborek (n=kero@dslb-088-074-004-196.pools.arcor-ip.net)
01:36.22Aiianeif you're out of combat and heal someone
01:36.27Eldanah
01:36.30Aiianethen it won't go away
01:36.50Eldanquestion
01:36.57Eldanhow'd you figure all this stuff out?
01:36.59EldanO.O
01:37.05Aiianeobservation :P
01:37.36AiianeAiiane is an archmage :)
01:38.19Eldanhaha
01:38.24Eldanlevel?
01:38.32Aiiane29
01:38.49Eldannice
01:39.47Nyborekhey, some1 know when zypher wil be back?
01:40.01Aiianewhenever he decides to come back ;)
01:40.05Aiiane(I don't know for sure)
01:40.06Nyborek;)
01:40.13zariousNyborek, what you need?
01:40.32Nyborekthe unit frame ;)
01:45.07phx|rizzendoubt he'll give that away
01:45.31Aiianebtw, if you want to be able to check the client version from lua
01:45.39Aiianemajor, minor, revision, build = (SystemData.ClientVersion):match(L"Version ([0-9]+)%.([0-9]+)%.([0-9]+) Build ([0-9]+)")
01:46.02EldanPLAYER_COMBAT_FLAG_UPDATED just occur whenever you go in or out of combat?
01:46.06Aiianethey're all as wstrings though ;) you'd have to tonumber them first if you want to do mathematical comparisons
01:46.10AiianeEldan: I believe so yes
01:46.14Eldanokay
01:46.26VonhintenAre anchors broken in some way when you change UI scale?
01:46.36Eldanno parameters in it soooo
01:46.46Eldanyeah
01:47.24Tomedwhat's the point of ui scale if you can scale individual elements through the layout editor
01:47.27AiianeVonhinten: um, do they fix themselves after /reloadui
01:47.28Aiiane?
01:47.35AiianeTomed: to easily adjust the interface as a whole?
01:48.12TomedI suppose
01:48.16VonhintenAii, yeah
01:48.41Tomedi actually have mine scaled down from when i first started messing with the default UI
01:48.46AiianeVonhinten: you might have to call WindowForceProcessAnchors() on a window after changing the scale then
01:48.51Tomedmaybe thats' why my clean unit frames anchors are all messed up
01:49.07Aiianedinner, bbl
01:49.23VonhintenAii, hmm, what's wierd though, is the way I'm doing my guidelines is reanchoring over and over
01:49.46VonhintenSo anchor's are refreshed after the fact, but still wrong
02:04.33hallasI say rewrite all the UI!
02:06.47*** join/#waruidev Hamisch (n=Hamisch@67.217.8.56)
02:07.29HamischHi all
02:08.44HamischCan someone answer a hopefully simple question for me?  I'm having problems writing to the chat window
02:14.03hallas~asktoask
02:14.04purlThis 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.30HamischEA_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.42Eldanuse
02:28.40BotanicalPuppetdoes 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.02EldanTextLogAddEntry ("Chat", SystemData.ChatLogFilters.SAY, L"text")
02:29.45Eldani dont think so because it has the check all files button
02:29.55BotanicalPuppetcan you toggle that button?
02:29.55Eldanor function
02:29.59Eldanhmm
02:30.06Eldanlemme see
02:30.32BotanicalPuppetmy 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.37BotanicalPuppetyou can sneak in your own interface.myp
02:31.12Eldanwell, i cant find it now
02:31.16Eldanhmm
02:31.29BotanicalPuppetit is shown on the bottom of my warpatch, just greyed
02:31.51BotanicalPuppetwhen logging in
02:33.01Eldanit may check the exact size
02:33.29BotanicalPuppeti got away with a different size
02:33.33Eldani dont think it couldnt check the whole file
02:33.46BotanicalPuppetbut... when there were known updates on server, it will check every resource in the .myp
02:33.57BotanicalPuppetperhaps with a checksum
02:34.09BotanicalPuppetor perhaps... perhaps just a perfile size ya
02:34.35BotanicalPuppetthis could theoretically be used to load in new sounds??
02:34.48BotanicalPuppetprovide patches to sound.myp?
02:35.22BotanicalPuppetyou can also change coreinterface if you're evil
02:36.05Eldanbut of course you arent evil :P
02:36.06BotanicalPuppet...someone should patch/replace all the beta sounds that aren't called by anything anymore, there are a few of them
02:36.19BotanicalPuppetput in "HEADSHOT" or your preference
02:36.40BotanicalPuppetwhat's the sound format again?
02:36.52Eldandunno, never dealt with any but interface
02:37.32BotanicalPuppetyeah... it's the only thing of direct concern to users...
02:37.49Eldanmhmm
02:38.27Eldanand 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.04Eldanmanipulate*
02:39.16WobWorkInteresting
02:39.20WobWorkI didn't think I'd get a wirelless connection here
02:39.30Eldanyou near a starbucks?
02:39.36Eldan:P
02:39.42Wobinno
02:39.50Wobinin a cafe down the mall from a Gloria Jeans though
02:39.54Wobinso maybe
02:40.05BotanicalPuppetand not even directly... only through the interface folder
02:49.46Fal`is there a list of WAAAGHBAR plugins somewherE?
02:50.27BotanicalPuppetif not there should be one growing on the main project page imo
02:51.03BotanicalPuppetgoogle... inurl:curse waaaghbar
02:53.18BotanicalPuppet`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.04BotanicalPuppetthere 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.09hallasFal`: Only v2.x plugin I know of is http://war.curse.com/downloads/war-addons/details/time-to-rank.aspx
03:04.21Fal`thanks
03:04.25Fal`I have that already
03:04.46hallasWe need tags to work on Curse...
03:04.47hallasnow
03:06.34Repo10nstancehighlighter: 03Nemes 041.4-release * r17 : Further stability and safety enhancements
03:07.07*** join/#waruidev End (n=end@tetris.cornhooves.org)
03:07.09EndNO U
03:07.56*** part/#waruidev End (n=end@tetris.cornhooves.org)
03:10.59AiianeBotanicalPuppet: that's generally called Cloning, and curseforge supports it
03:11.21Hamischlua> not not 0
03:11.21lua_botHamisch: true
03:11.39BotanicalPuppetya i know
03:11.54hallaslua> 0
03:11.54lua_bothallas: 0
03:12.04hallaslua> not 0
03:12.05lua_bothallas: false
03:12.09hallasOdd
03:12.24hallasOr well, not odd :P
03:12.31hallasjust a funny test
03:12.34BotanicalPuppetbtw the files in audio.myp are .wav if anyone is curious
03:12.40hallaslua> 1 or 0
03:12.41lua_bothallas: 1
03:12.44hallaslua> 0 or 1
03:12.45BotanicalPuppetand the graphics are a microsoft directx format dds
03:12.45lua_bothallas: 0
03:14.20BotanicalPuppetit 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.47hallasAnyone has written any waaaghbar plugins here?
03:15.02BotanicalPuppetwhat does waaaghbar do for my addon?
03:15.09BotanicalPuppeti might release plugin capability.... for some...
03:15.10hallasnothing :)
03:15.19hallasatm anyway
03:15.29hallasor well, if you need text display always visual
03:15.30BotanicalPuppetnot even a place to show a window?
03:15.30hallasits usefull
03:15.33hallasoh
03:15.43hallasthought you were asking me.. like.. beyond that
03:15.47BotanicalPuppetall my tools have been text-based, no new window creation
03:16.03hallassame as fubar
03:16.26BotanicalPuppetis it at a good point for releasing on it or is it going through a lot of change in its api, etc?
03:16.39hallasI would say wait
03:16.45BotanicalPuppetok :)
03:16.54hallasI am just trying to compile a list of plugins sofar
03:17.00hallasA few have been popping up on Curse
03:17.20BotanicalPuppetis there a way to check for the existence and version of waaaghbar?
03:17.30BotanicalPuppetof course if (Waaaghbar) but version?
03:17.51hallasYou think I should make it register with a LibStub type of addon?
03:17.58BotanicalPuppeti don't know
03:18.07hallasI will make a revision check
03:18.10BotanicalPuppetshort of that, just be very consistent with a MajorVersoin and FullVersion variable
03:18.33hallaswhats the different between major and full?
03:18.39BotanicalPuppet(which is what i've started to do in larger projects, ie chosenshelper)
03:18.42BotanicalPuppet1.0
03:18.45hallasis majors?
03:18.47BotanicalPuppet1.0.12alpha
03:18.49hallasalright
03:19.04BotanicalPuppetchecking for major should resolve most compat issues
03:19.06BotanicalPuppetrarely change it
03:19.09hallasapi breaks wouldnt happen in a full then
03:19.18hallasand only rarely in majors
03:19.19BotanicalPuppetin theory
03:20.01BotanicalPuppetyeah 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.07BotanicalPuppetso other developers can snoop on me
03:20.36hallasits a good standard
03:20.55BotanicalPuppetheh..won't ever be a standard
03:21.00BotanicalPuppetexcept within each addon
03:21.13BotanicalPuppet....there is probably a better way
03:21.16BotanicalPuppetuimodwindow has version info
03:21.19BotanicalPuppetread from .mod
03:21.39hallasalright
03:21.54BotanicalPuppetand imo .mod version == MajorVersion
03:22.04hallasI use Major.Minor
03:22.05hallas2.1
03:22.09hallas2.3
03:22.09hallasetc
03:22.11hallasin my mod
03:22.15BotanicalPuppetbecause changing .mod version will break all the saved variables
03:22.19BotanicalPuppetie reset them
03:22.45BotanicalPuppetso if you aren't doing anything different with savedvariables, keep .mod constant maybe
03:26.46BotanicalPuppetsdepiets@gmail.com = aiiane?
03:26.57BotanicalPuppeterr liane
03:27.01Aiianemaybe?
03:27.03BotanicalPuppetcan lliane be reached?
03:27.07Aiianeyou could try
03:27.14AiianeI haven't seen them around in a while
03:27.19BotanicalPuppeti'll ask about lua-->wiki processor
03:27.32BotanicalPuppeti wrote a custom wiki processor before, it was a bear of a project, would save time and be cool
03:28.50BotanicalPuppetheh.... DEBUG is a war-defined variable, i should stop usin git
03:29.10BotanicalPuppetgot a note that it was breaking respawn windows, etc
03:32.15hallashttp://waruidev.pastey.net/98064 whats wrong here? Get an error at the 2. line
03:34.48hallaslooks pretty fine to me :O
03:36.38hallasperhaps string cant be key
03:37.22BotanicalPuppetnot the syntax for assigning keys i think
03:37.42BotanicalPuppetimo do it in steps with local tbl = {} and table.radio =
03:37.53BotanicalPuppetthe more complex may work for the lua gods but i keep it simple
03:38.02hallasit works for me
03:38.31hallas:P
03:38.37BotanicalPuppethah trickster
03:39.01hallaskey couldnt be key like that
03:39.11hallastbl = { radio = ... } i got now
03:40.47hallaslua> case
03:40.48lua_bothallas: nil
03:40.59hallasi take it lua doesnt have cases right?
03:41.12BotanicalPuppetif elseif elseif elseif slashwrist end
03:41.16hallashehehe
03:48.11*** join/#waruidev Wobin (n=Wobin@124-171-24-200.dyn.iinet.net.au)
03:57.39Aiianeout for the evening, bbl
04:00.13HamischI'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.23Eldanid look at
04:09.29EldanSpamMeNot
04:09.32Eldanhttp://war.curse.com/downloads/war-addons/details/spam-me-not/download/235898.aspx
04:10.18HamischI'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.53BotanicalPuppetyou mean ... it has its own print? or it hooks the print and suppress some...
04:14.18Eldanthats what i was trying to figure out
04:14.33Eldanits own print essentialy consists of
04:14.45EldanTextLogAddEntry("SpamMeNotLog", SpamMeNotWindow.filterID_Print, s)
04:14.46BotanicalPuppeteither way would it not kinda have to hook existing print in order to at least suppress some
04:14.54BotanicalPuppetthat's just for spam
04:14.55EldanEA_ChatWindow.Print(L"[SpamMeNot]: " .. s)
04:15.27BotanicalPuppetgoes in a spamlog you can see in their window
04:16.30HamischIt seems to be usign filters to block messages from printing
04:17.11BotanicalPuppetyes
04:17.18BotanicalPuppethey they made exp easier in t3/4
04:35.00Vonhintenomg... 72 emails on my DE bot
04:35.17Vonhintenthat's gonna take 20 hours to open
04:35.26Pirauder[RAR]SystemData.ActiveWindow.name what does that give back? The current window the event is being fired in or something?
04:35.46Pirauder[RAR]If anyone knows
04:43.13*** join/#waruidev Phosphoros (n=chatzill@12-207-155-219.client.mchsi.com)
04:50.05hallasyes
04:50.07hallasPirauder[RAR]
04:50.25hallasit matches the name you see in the debug window when you move around your mouse
04:52.05Pirauder[RAR]Mmk...
04:52.47Pirauder[RAR]So if I click a button, it's that button I guess.
04:54.30VonhintenGoddamn this email system is a piece of shit
04:56.41Phosphorosamen
04:59.00PhosphorosI tried using this.. http://war.curse.com/downloads/war-addons/details/qmt.aspx
04:59.07PhosphorosBut the server just boots me
05:29.27Eldanlua> ((4==4)and(true or not(true)))
05:29.28lua_botEldan: true
05:29.46Eldanlua> ((4==4)and(false or not(true)))
05:29.46lua_botEldan: false
05:29.56Eldanlua> ((4==4)and(false or not(false)))
05:29.56lua_botEldan: true
05:30.37Eldanlua> ((2==4)and(false or not(false)))
05:30.38lua_botEldan: false
05:32.51Eldanlua> math.floor(9.88864568 * 10 + 0.5) / 10
05:32.51lua_botEldan: 9.9
05:33.09Eldan:D
05:34.52Tomedanyone 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.44TC-Laptopping Aiiane
05:50.25zariousshe said she was going to sleep a bit ago
05:51.53TC-Laptop~fail Aiiane
05:51.54purlAiiane, you Fail!
05:52.04TC-Laptopthanks zarious
05:54.33VonhintenTomed, absolutely not
05:54.33DaegalusTomed: nope
06:02.58art3mis<MrDev> If you had purchased $1,000 of AIG stock one year ago, you would have $42 left.
06:02.58art3mis<MrDev> With Lehman, you would have $6.60 left.
06:02.58art3mis<MrDev> With Fannie or Freddie, you would have less than $5 left.
06:02.58art3mis<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.58art3mis<MrDev> Based on the above, the best current investment advice is to drink heavily and recycle.
06:03.10TC-Laptopart3mis: old news is old
06:03.21art3misboobies have nipples
06:03.28Pirauder[RAR]wtf?
06:03.28art3misi didnt know this
06:03.30Pirauder[RAR]really?
06:03.31TC-Laptophmm....old news is good
06:03.47art3missimple investing guide
06:03.56art3misat 8:30 buy 1000 shares of SKF
06:04.04art3misat 9:35 sell them
06:04.07Pirauder[RAR]I go for the "Don't invest in shit... because shit happens"
06:04.22art3misyou will have made on average in this market with the s&p500 starting off low about 6-12k
06:04.39TC-Laptopart3mis: stop failing
06:05.00art3misat noon short SKF for 1000 points and well them by at most 2:45
06:05.05art3misim not ;)
06:05.18art3misthis is what ive done with my fake money each day for the last 3 weeks
06:05.23art3misand it works ;)
06:06.18art3misis 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.31art3misit's wierd
06:07.07art3misyesterday my fake money account closed +24k doing exactly the above ;)
06:07.27TC-Laptopfake money is fake
06:07.40art3misits live quotes just fake executor ;)
06:07.53art3misso i cant actually make any monies on it
06:08.01art3misbut the buy and sell prices are real and live
06:08.28art3misand to be honest if i had 500k in my trading account i'd prolly p[lay this way normally
06:08.49art3misi'd prolly be more attentive to the get out pricing though and thus make more
06:09.04art3missometimes network issues and phones get in the way of my trading ;)
06:09.15art3misits pretty fun
06:10.10art3misof course it also depends on whether skf is positive or engative at 8:30 in correlation to the s&p500
06:10.20art3misbut if you're trading you already understand that
06:12.31TC-Laptopi understand everything
06:12.52art3mishows blizzcon btw?
06:12.59TC-Laptopover
06:13.03art3misim guessing crappy if yer on irc
06:13.08art3misheh
06:13.13TC-Laptopno, i got home already
06:13.16art3misgibb0r me yer polarbear code!
06:13.24TC-Laptopi dont even play wow atm
06:13.25art3misi thought it was the whole weekend
06:13.30art3misme neither
06:13.32TC-Laptopfri-sat
06:13.35art3misoh
06:13.37art3misweak
06:13.45TC-Laptopeh
06:15.28TC-Laptopi missed the last meeting :(
06:19.55Pirauder[RAR]I cancelled my wwo accoutn after a week of not playing it while playing war
06:19.56Pirauder[RAR]war > wow
06:29.54hallasfucking cocksuckers on my gaming forum
06:30.00hallassaying that "lol ool war sucks as much as AoC"
06:30.12hallasand they prolly didnt try WAR either
06:30.22art3misthey're only saying that because they fail ;)
06:30.36hallasWAR beats WoW in every aspect im interested in
06:30.50art3mis"dude you cant even buy level 60's yet or a decent price for gold"
06:31.05hallasbalance, content, graphics, char development, skills and the whole guild leveling thing
06:31.14hallasBlizzard has had WoW since 2004
06:31.18hallaswith 9 mill customers
06:31.36hallasso much money
06:31.37art3misjust remember eq was before wow and uo before eq
06:31.39hallasSO LITTLE CONTENT
06:31.46hallasCan you belive that?
06:31.47art3misthey will slowly move over and wow will be a memory
06:31.59hallasdude
06:32.02hallas9 min customers
06:32.08hallas20 dollars a month?
06:32.10art3misthe old school kids will say "remember when we used to play wow and tbc came out"
06:32.13hallas4 years?
06:32.17hallasand only two expansions
06:32.18hallashahaha
06:32.21hallasits lame
06:32.26art3misyup
06:32.36art3misthier model is good
06:32.41art3misthier length of dev time isnt
06:32.57hallasindewd
06:33.02art3misnor is the filler content to sedate people and provide more fun than a meaningless grind
06:33.06PenguinOfDoomIs there a way to hide the warband windows?
06:33.17art3misright click em ion the layout editor
06:33.21art3misand choose hide?
06:33.42PenguinOfDoomNo such option
06:33.52art3mislies!
06:34.01art3misyou can also drop thier opactity to 0
06:34.16PenguinOfDoomthat's not terribly useful
06:35.10hallasnight
06:54.54Aiianezarious: I didn't say I was going to sleep o.o
06:54.58Aiianejust that I was going out
06:55.01Pirauder[RAR]Those global functions, are those in any of those publically accessible lua files? SelectItemRollChoice specifically
06:55.08zariousorly?
06:55.28zarious<Aiiane> out for the evening, bbl
06:55.38Pirauder[RAR]evening != night
06:55.39Pirauder[RAR]:P
06:55.52zariousi thought you meant out like, out like a light = sleeping
06:56.06AiianePirauder[RAR]: most of them are C functions
06:57.01Pirauder[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.42Repo10nrarity: 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.00zariousaiiane 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.55zariousugh i need more water....too much beer
07:05.01zariousdehydrated
07:06.07zariousi 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.32zariouslua> if not x or type(x) == "string" then print("something") end
07:14.33lua_botzarious: something
07:14.53zariouslua> if not x and type(x) == "string" then print("something") end
07:14.53lua_botzarious: No output
07:15.19zariouslua> print(type(x))
07:15.19lua_botzarious: nil
07:15.42zariousdoes WAR error out on type calls to nil?
07:15.58zariouss/does/doesn't/
07:18.47Repo10nstancehighlighter: 03Nemes * r18 NStanceHighlighter.lua: Don't attempt to re-register for stance updates on reload
07:20.29Aiianeno, zarious
07:20.36Aiianebecause the type of nil is "nil"
07:20.47Aiianelua> print(type(nil)..2)
07:20.47lua_botAiiane: nil2
07:20.57zariousno shit? i could've sworn i ran into that error
07:21.00Aiianelua> print(type(nil):sub(1,1))
07:21.01lua_botAiiane: n
07:21.11Aiianelua> print(type(type(nil)))
07:21.11lua_botAiiane: string
07:21.17zariouswell i guess i can take out some extra error checking
07:22.21AiianeI'm going crazy with metatables in libgui >.> heh
07:24.24Repo10ztimelib: 03zMod * r19 zTimeLib.lua:
07:24.25Repo*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.04Aiianeone of the reasons for the fun with metatables
07:25.36Aiianeis 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.43Aiiane(if you don't want to, that is)
07:26.14zariousyeah
07:26.36zariousRDX used metatables up the wazoo and it was one of the parts i didn't understand
07:27.00zariousthat and a shitload of metamethods
07:27.59art3mishas anyone made a potion bar thingy?
07:28.10art3misthat automagically adds potions you loot?
07:28.23zariousare there item libs yet?
07:28.24art3misor something like engineers bag for the profs
07:28.30art3misnot sure
07:28.45zariousart3mis, you can have items automatically go into certain bags with the default ui
07:29.03art3misooo?
07:29.15art3misoh no i meant a seperate thingy
07:29.29art3missorta like ark inventory
07:29.46art3miswhere it would just divide up stuff for ya
07:32.43zariousdefaultui does a decent job of that already, it doesn't do the bar like you were talking though
07:33.39art3misyeah the bar part was what i was hoping for
07:33.48art3missomething like autobar would be great ;)
07:44.35VonhintenIs there a damn hedge wizard or talisman crafting merchant somewhere in the inevitable city?
07:54.28WobinIt's weird, I've seen the apothecary in both cities, but never the hedge wizard
07:56.20zariousVonhinten, i've never found the vendor in altdorf
07:56.33zariousi usually goto high pass for that stuff
07:56.51zariouscuz 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.05Vonhintenfucking Mythic
08:04.20Vonhintenjust when I think I'm pissed off enough at this game, they find a way to make it worse
08:04.36Aiianeyou are a very emotional person :)
08:04.57Vonhintenwell, I'm not tearing up
08:05.16VonhintenBut, I've got 7 years of Mythic annoyance built up
08:06.07VonhintenNot 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.18Vonhintenhas=have, quite=quit
08:08.00Vonhintenseriously, 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.16Aiianehrm.
09:14.29Aiianethere doesn't appear to be any way to set the childscrollwindow of a scrollwindow from lua :|
09:21.02VonhintenWhat skill level do you have to be to DE items from tier 2?
09:21.09VonhintenI have 62 salvaging and can't do it
09:25.49zariousVonhinten, like 11-20 level items?
09:26.00Vonhinten21+
09:26.05Vonhintensorry, tier 3
09:26.37VonhintenI can DE 19, but not 21
09:26.40zarious21+ is around 90-120 (for up to around 30 greens)
09:26.48Vonhintenoh god
09:27.14zariousthose values are only for greens as you definatly need higher skill the rarer things get
09:27.45zariousand its only from my limited experience with it (i'm at 121 TM, 129 MS)
09:28.45VonhintenHow did you get up to 90 salvage?
09:28.45Aiianerenown items are good for leveling
09:28.45VonhintenI rarely get points at this point (62)
09:28.45zarioushonestly you buy ah items if the deals really good
09:29.02zariousbut you really just need to ante up some bank and buy renow items
09:29.11zariousits the fastest easist way
09:29.21zariousyou can also select the level of items as you go
09:29.27zariousso you can find your sweet spot
09:29.40Wereldsi got to 50 from the tier 1 renown things
09:29.46Wereldsworks like a charm :p
09:30.04Wereldswas like 7.6s per skill level, not too bad
09:30.21zariousits like 8.5 but yeah
09:30.26zariousthat works to 60 or 65
09:30.33zariousthen just buy tier 2 renow items lol.
09:33.12zariousbleh i don't like my periodic latch implementation
09:33.25Vonhintentier 2 renown is in a keep right?
09:33.28zariousveni's wow version was like 5000x cooler
09:33.39zariousyes, or in your home city if you're in a guild that doesn't suck
09:34.23VonhintenI guess I'll have to get my renown up.. only level 12
09:34.52zariouswhat level are you?
09:35.08Vonhinten12
09:38.05zariousthen whats your renown rank?
09:43.57Vonhinten7 :)
09:44.20Vonhintenit'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.24Chryzo_netcode de merde!
09:57.27zarious?quien es netcode?
09:58.03PenguinOfDoomwow, inevitable city looks trippy
09:58.19PenguinOfDoomI guess Mythic got some stock textures/ideas for Altdorf, but went full-on artists-on-drugs for IE
09:58.23PenguinOfDoomerr IC
10:00.57*** join/#waruidev Chryzo (n=dtc@92.81.73.111)
10:01.45Chryzoconnexion de merde!
10:01.45Chryzojeu de merde!
10:01.48Chryzoi can't believe it
10:02.00Chryzoi get like all the possible bugs one after the other
10:02.07Chryzonow the patcher won't even launch properly
10:03.06Chryzonow i have to reboot a second time
10:03.08Chryzojeez
10:04.28WobinPenguinOfDoom: The chained eyeballs are cool
10:05.47Repo10libgui: 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.14AiianeIt's not done yet
10:06.19Aiianewhich is why it's not tagged
10:06.56zariousyeah i was gonna ask
10:07.44Aiianeif you want to peek at it, http://hg.curseforge.net/war/libgui/mainline/
10:09.40zariouswtf is the gui for libgui gonna be called? GUIGUI?
10:09.46zariousGooey?
10:10.47Aiianelibgui is a library, it doesn't have a gui :P
10:11.19zariousi know, but libslash is a lib as well, and i'm prob gonna write a gui for it
10:11.36zariousor a minimap button or something with droplists for addons registred with it
10:12.12Wobinlibgui is nothing like libslash though
10:12.18Wobinyou won't need a gui for it
10:12.52Wobinit's only functional for the coder, not for the end user
10:13.02Aiiane(on a side note, at least in its current form you wouldn't be able to write a GUI for libslash)
10:13.16Wobineverything local?
10:13.22Aiianethe slash command list is, yes
10:13.45zariousWobin, i was thinking along the lines of an advanced in game gui builder, but thats prob more effort than its worth
10:13.53Wobinyeah
10:14.26Aiianeactually, what's sort of neat
10:14.37Aiianeis with LibGUI, creating GUIs is easier
10:14.52zariousaiiane, i haven't looked at libslash code yet, but could/would you add some return functions to allow access its data?
10:14.53Aiianebecause 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.06Aiianeand then use :GetPosition() to see what offset you should give them
10:15.09Aiianezarious: possiby
10:15.12Aiiane*possibly
10:15.40Aiianeit'd probably be on a read-only basis though
10:15.50zariouswell yeah
10:16.00zariousthats the beauty of local commands and return fucntions, data protection
10:16.14zariouszTimeLib is like that
10:16.47zariousall the important stuff is hidden behind locals with only return access to its data or you can use the api
10:36.03Chryzonetcode still sux
10:36.12Chryzoi spend my time lagging
10:36.16Chryzoeven when i am alone
10:38.13BotanicalPuppethi chryzo
10:42.22Aiianeoki... sleepyaii is very sleepy now, so goodnight!
10:42.30Wereldsnn aii <3
10:44.58BotanicalPuppetok chryzo additional info sent
10:45.48zariousnighters aii
10:45.51Wobinzarious: The problem you'd have
10:45.55Wobinwith a guiGui
10:46.03Wobinis getting the subsequent build code out of the game
10:46.14zariousyeah
10:46.16Wobinmaybe saving it as a huge string =P
10:46.27zariousi dunno did you ever see rdx though?
10:46.34zariousi don't think WAR's lua can do it atm
10:46.42Wobinno
10:46.48zariousbut rdx did what i was talking about
10:47.27Wereldsseems i scared the RAR whiner off btw Chryzo :(
10:47.37zariousit 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.43Wereldsi was looking forward to bashing his face some more for throwing useless arguments
10:48.16zariousso 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.43zariousbut i don't think you can save blocks of code for later exec in war atm
10:49.07zariouscuz 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.14Wereldsno, you can't
10:50.17BotanicalPuppetstupid hack. use /script pushing to chattext
10:50.19Wereldswe don't have loadstring
10:50.35BotanicalPuppet^ that
10:50.47Wereldshorrible way of doing it ;p
10:51.05zarioushmm
10:51.15zariousi'll look into that even if its hugly bastardized
10:51.22zariousi want my god damn luaslinger.
10:51.38BotanicalPuppetumm why can't it be imported
10:51.49zariousscroll up.
10:52.00zariousshit you do't een have to scroll....just read like 6 lines ago lolol
10:52.12BotanicalPuppetrelies on undefined fucntions?
10:52.19Wereldshell zarious, even the nurfed layout editor we had ages won't be doable atm
10:52.24Wereldswell not 100% anyway
10:52.34zariousi wasn't around for the editor
10:52.47BotanicalPuppetoh ok, no point, no dynamically loaded data
10:52.54Wereldswell it hasn't been in nurfed for like 2 years now
10:52.57zariouswell i guess i was around for a very very early shitty versions which he disabled
10:52.58zariousoh
10:53.04zariousi thought there was a newer one
10:53.08Wereldsnah
10:53.15BotanicalPuppetrebooting
10:53.16Wereldshe never made it work for 2.0
10:53.37Wereldswhich is fine, cuz the lua layouts were easier to do anyway
10:53.38Werelds:D
10:53.45zariousyeah
10:54.03zariousi need to get on wowinterface and look for that external xml editor whcih let you build interface windows and shit
10:54.18zarioussee how usable it is in regards to war
10:56.09Wereldsi wouldn't bother
10:56.11Vonhintenman, I just bolted some dude for 907 at 13 in Morkain Temple
10:56.36zariouswith your mage bolt or w/e the first morale sorc's get right?
10:56.38Vonhintenif Bright Wizards are even more powerful than this sorc, then something's wrong
10:56.44Vonhintenno, with my doombolt
10:57.05Wereldsbright wizards are a fucking joke
10:57.15Wereldsi have dots critting me for 900ish
10:57.15Vonhintenmage bolt hits for a little over 600 at this level
10:57.19Vonhintenyeah
10:57.26Wereldsi mean come on, a DOT ?!
10:57.45zariouslewl detonate
10:57.48Wereldsand @ zarious: the WAR XML API is very unfinished
10:57.49VonhintenI remember when cabalists in daoc were killing people with 1 crit DoT
10:57.53zariousif you spec dots and use all of them they're sick
10:58.10zariousyeah 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.23Vonhintenyou don't need xml
10:58.36zariousyou do need xml
10:58.41Wereldsyou do for some parts Vonhinten
10:58.47Wereldsaii and i found that out this morning
10:58.50Vonhintenunless you want specific things that are only supported in xml currently
10:58.52Wereldsscrollwindow = impossible with lua
10:59.02Wereldssame goes for listbox
10:59.10Wereldsyou HAVE to use xml for that
10:59.20Vonhintenyeah
10:59.27Vonhintensome things require it
10:59.46Vonhintenbut often you can get away with creating something mythic has already made by template
11:00.00Vonhinteni.e. CreateWindowFromTemplate
11:00.04Wereldsyeah but that's the way it should be
11:00.05Wereldssee
11:00.18Wereldsall 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.27Wereldsand that's all XML should EVER do for any language
11:00.44Wereldsit's processed in the code, from which you should then be able to manipulate what you defined
11:00.48Vonhinten(except they have event handling stuff in there too.. which I hate)
11:01.09Wereldsmythic however have left some of the manipulation out when they exposed their code to lua
11:01.17Wereldsmost people use xml wrong
11:01.28Wereldsbecause they misunderstand its purpose
11:01.38Vonhintenquite a few attributes aren't accessible from lua
11:01.40WereldsXML is a markup language, it defines things
11:01.49Wereldsit 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.15Wereldsor shouldn't anyway :p
11:02.29BotanicalPuppetwhat's wrong with the way .mod's are?
11:03.07*** join/#waruidev Chryzo_ (n=dtc@92.81.73.111)
11:03.07BotanicalPuppeterr and .xml's :)
11:03.15Werelds.mod's are fine, with the exception that they're not transparent enough
11:03.19Chryzo_...
11:03.36Wereldswe still don't know when exactly the onXXX's are called
11:03.48Wereldsonupdate is UPDATE_PROCESSED most likely
11:03.49zariousoh ffs i hate hooking
11:04.18BotanicalPuppetwhat happened?
11:04.36Wereldsand BotanicalPuppet, we were talking about how some XML elements cannot be manipulated or even accessed in LUA
11:04.50BotanicalPuppetre hooking, what went wrong
11:05.51zariousi'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.54zariousthis works great
11:06.11BotanicalPuppetchryzo_ i see  you use several .dll files to modularize your code
11:06.11zariousnow i'm trying to make it hook the given function, and then unhook on terminate
11:06.53BotanicalPuppetcould 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.53zariousbut my hook code doesn't work right
11:07.43BotanicalPuppetNO UNHOOK
11:07.46BotanicalPuppetNO UNHOOK
11:07.57zarious....
11:08.11BotanicalPuppetyou're not the only kid with his hand in the cookie jar
11:08.14zariousit returns to the original function
11:08.33zariouswhich is unhooking in my book
11:08.40BotanicalPuppeti'll paste in some code on proper hooking
11:08.59BotanicalPuppetyou do NOT unhook... code will execute but you break any code down the chain with their hooks
11:09.08zariousfor the love of fucking god
11:09.09zariousi know
11:09.16BotanicalPuppetok
11:09.22zarious<PROTECTED>
11:09.26zarioushttp://www.thewarwiki.com/wiki/API:Correct_Hooking_Procedure
11:09.44zariousthis hooking method is so hacky imo
11:09.52zariouswtb api hooking : /
11:10.30BotanicalPuppetwts... :) DevUtils could have something like that
11:10.36BotanicalPuppethttp://waruidev.pastey.net/98070
11:10.47BotanicalPuppetFunctionHookDebug is a complexer example than the API: page
11:12.12BotanicalPuppetbasically any top level global is in _G[]
11:12.25BotanicalPuppetand any member variables of a top level are in _g[][]
11:12.49Vonhintenit is safe to unhook your function if the current function points to your custom function
11:12.56BotanicalPuppetso to get to hook something like MyWindow.OnShow... _G["MyWindow"]["OnShow"]
11:12.57zarious_g = nil
11:13.03BotanicalPuppettypo
11:13.21zariousVonhinten, i was thinking that'd be ok, but now that i think about it, it'd be better to just noop
11:13.42BotanicalPuppetVonhinten, yes, if you check that it's fine. good idea actually, i could kill some of FHD's hooks that way.
11:13.57zariousbecause if something else hooks after i do, and then i return to original func, they loose their hook
11:14.21BotanicalPuppetyou'd have to check for _G["Func"] == FHD_G["Func"].cur -- nobody else in chain after
11:14.23Vonhintenif your function is the current, you're at the end of the chain
11:14.42zariousreread what i said Vonhinten
11:14.52BotanicalPuppeti'll put some code for doing that in my stop/resume and upload new pastey
11:15.14Vonhintenzarious, if someone hooks after you do, you're not at the end of the chain
11:15.21zariousif 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.24BotanicalPuppetzarious i dont understand your argument
11:15.28Vonhintenif they cache the function without hooking it, they're doing bad shit
11:15.50BotanicalPuppetthere is no addon threading or very limited at best
11:16.12zariousbut 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.32BotanicalPuppetnp.. lol... read some of the example code it'll make it clear what is safe to do
11:16.39zariousbleh, ztimelib will be finished if i can get this damn thing done
11:16.58zariousunless i want to add adaptive scheduling / time dilation
11:17.09zariousor other weird schedulers
11:17.16BotanicalPuppetdon't, it's just code bloat imo.. make it solid get it out
11:18.12zariouscurrent 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.17zariousthough its missing the periodiclatch functions, and the framescheduler (ability to basically create new onupdate timers)
11:19.26zariouswell not create, but hook into
11:19.47zariousi'll prob add a zero-memory scheduler which creates a frame then uses its onupdate for that
11:19.58BotanicalPuppetyou're going to get a function called more often than frame refresh?
11:20.11zariousthats not possible?
11:20.19BotanicalPuppeti'm asking what you want to do
11:20.23BotanicalPuppetcertainly possible
11:20.27zariouso_O
11:20.29zarioushow
11:20.38BotanicalPuppetthere's no event for it but func() func() .. ;p
11:20.58zariouslol quiet you
11:21.09zariousatm zTime has two main schedulers
11:21.29BotanicalPuppetimo handle them all withon OnUpdate if you don't... don't register for more than one timer that updates quickly
11:21.43BotanicalPuppetzTime that is, should be based off the single timer from WAR
11:21.45Repo10libstats2: 03pwerelds * r5 / (3 files in 3 directories):  (Message trimmed by 1 line)
11:21.46Repo* Scoped a few things a bit better
11:21.49Repo* Added %U to System.Time; returns seconds since midnight
11:21.55Repo* Added function registration in addition to labels
11:22.01Repo* Documentation is underway, this will most likely become release 1.0
11:22.16zariousone 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.20Wereldsexcess flood inc
11:22.22Wereldsbye Repo
11:22.24Werelds:{
11:22.33zariousyeah, its all based off of one onupdate
11:22.39BotanicalPuppetoh i see
11:22.49BotanicalPuppetyou're letting most timers go into a throttled check for their times
11:23.29BotanicalPuppetor i dont see
11:23.54zariousthe 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.57BotanicalPuppetwhat's being done? how does it differ from doing a decent sort on timer lengths before comparisons
11:24.40zarioustheres no sorting, i might add that later, but im not convinced sorting would be faster
11:24.53zariousi guess you could do smart ordering during schedule add, but meh
11:24.55BotanicalPuppetthis is one area where i think it would pay to test
11:25.11BotanicalPuppetpeople want a lib to be better than rolling their own
11:25.14zariouswell i need to get everything finished and then stress test it
11:25.33zarioussee how it handles 1000 schedules
11:25.54zariousi prob use 15 for my mod zTweaks
11:26.43zarious<PROTECTED>
11:27.22BotanicalPuppetthe simplest sort would be what you do... put them in a binary division (or four) based on length of maxtimer
11:27.23zariousi'm very open to tips/ideas on how to make it cleaning/more efficent
11:27.37zariousas its a scheduling lib
11:27.52*** join/#waruidev tom0 (n=chatzill@ip51cc6858.adsl-surfen.hetnet.nl)
11:28.03zariousbinary division?
11:28.09BotanicalPuppetwell let me rephrase entirely
11:28.59BotanicalPuppetanything 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.09tom0Hey 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.27zariouscurrent 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.49BotanicalPuppetso 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.10zarioushmmm
11:30.20zariousi like that idea
11:30.30BotanicalPuppetthose in the N * 2 ^ 3 bin get checked around every 8 N-delta
11:30.35zariousyeah
11:30.40zariousthat doesn't sound too hard
11:31.05zariousi 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.22BotanicalPuppetjust 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.35zariousyeah
11:31.58zariousi ran into some problems where repeating timers would slowly get out of whack b/c of throttling
11:32.31zariousi was scratcing my head for a while trying to figure out what was causing that
11:33.31BotanicalPuppetN 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.43BotanicalPuppetaddons cant depend on 80 fps machines
11:33.46zariousyeah
11:33.58BotanicalPuppetso ... onupdate delay should be at least 0.05 or coded for such time possibly
11:34.09BotanicalPuppetso... N should be somewhat larger
11:34.16BotanicalPuppet(0.05 s = 20 fps)
11:34.27zariouswhich 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.35BotanicalPuppetand just err those who are trying to alias your timer as an onupdate event on registry
11:34.53BotanicalPuppetif they are less then N, that is
11:35.26BotanicalPuppetor give them an alternative onupdate alias function "timer"
11:36.27BotanicalPuppetbtw... as to sorting... what would be wrong with a simple FIFO list?
11:36.45zariousthats what it does now
11:37.20BotanicalPuppetdoes it insert timers at the end or based on their place in the FIFO list by time left?
11:37.24zariousmy current throttling delay is set to 0.05
11:37.38zariousit just inserts them at the end of the table atm, theres no sorting whatsoever
11:37.46BotanicalPuppethmm
11:37.53zariousall timers are checked for exec everytime the scheduler is called
11:38.06zariousi'll implement the buckets thing today prob
11:38.12zariousneed to get this fucking hooker done
11:38.22zarious(the functions, no the woman)
11:38.53BotanicalPuppetsomeone must have done a scheduler in C or something, maybe even lua... who are you stealing from?
11:39.11zariousnobody?
11:39.30*** join/#waruidev Repo (n=supybot@69.57.184.216)
11:39.30*** mode/#WARUIDev [+v Repo] by ChanServ
11:39.36BotanicalPuppetstart snooping on heavyduty GPL/ open source schedule libraries for ideas when you can :)
11:39.36zariousi 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.04zariousonly thing i've stolen was the periodic latch
11:40.12zarious^^^ lol
11:40.13*** join/#waruidev Repo (n=supybot@69.57.184.216)
11:40.20*** mode/#WARUIDev [+v Repo] by ChanServ
11:40.20BotanicalPuppetya... 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.10zariousok damnit why is this not working
11:41.52BotanicalPuppetpaset
11:41.59zariousyeah sec
11:45.36zarioushttp://pastey.net/98071
11:46.10BotanicalPuppetwhat do you find not working btw
11:46.22BotanicalPuppet1st comment?
11:46.47zariousthe hooker
11:46.53zariousthat first command works
11:47.13BotanicalPuppetzTime.HookPeriodicLatch(period, func)  
11:47.14zariousyou 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.17zariousyeah
11:47.25zariousi can't get the hooking to work
11:47.44BotanicalPuppetfunc =
11:47.55BotanicalPuppetfunc is a local to .HookPeriod in scope?
11:48.32zariousit should be the argument to hookperiodiclatch, but maybe i'v got conflicting names
11:48.37BotanicalPuppetso the value is thrown away
11:48.45BotanicalPuppetfunc = run return term -- func is dead
11:49.19*** join/#waruidev euphonious (n=euphonio@66.237.5.217)
11:49.33zariousyeah i know the unhooking isn't done right, i'm working on the hooking part first lol
11:49.36zariousone step at a time
11:49.37BotanicalPuppet<PROTECTED>
11:49.54zariousoh
11:50.03euphonioushello, 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.07BotanicalPuppetchanging 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.10zariouswell then how do i overwrite a function when its supplied as an argument
11:50.17BotanicalPuppetyou need its name
11:50.26BotanicalPuppetyou didn't read my code :(
11:50.37BotanicalPuppethttp://waruidev.pastey.net/98070
11:50.41zariousit was confusing lol, and i don't understand hooking this way very well
11:51.41BotanicalPuppetpseudocode: 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.01zariousoh im retarded you said that earlier
11:52.08zariousto find it in the _G table
11:52.47BotanicalPuppetlocal function foo() end; n="foo"; MY_CUR_G[n] MY_PREV_G[n] = _G[n]; _G[n] = MY_CUR_G[n]
11:53.06BotanicalPuppeterr  MY_CUR_G[n] = foo; MY_PREV_G[n] = _G[n]; _G[n] = MY_CUR_G[n]
11:53.31BotanicalPuppetpseudocode illustrates how you are always dealing with two variables you handle and a global _G
11:54.30BotanicalPuppetyou should have tables for all the hook functions and the functions previously existing to their hooks
11:55.14BotanicalPuppetindexed 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.57BotanicalPuppetor fname = first_key_for( f, _G ) to pull it from the current, live top of the stack function
11:56.45zariouslol, maybe that asn't such a good idea
11:56.53zariousdon't type DUMP_TABLE(_G)
11:56.55zariousxD
11:57.01BotanicalPuppet(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.29BotanicalPuppetsince they are all concerning the same function, kinda, overlayed on each other, but with the same string associated for function calls
11:57.36BotanicalPuppetthat help?
11:58.22zariousi 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.27BotanicalPuppetwell 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.51BotanicalPuppetor if you used standard syntactic sugar to get out of local scope
12:00.01BotanicalPuppetin layman's terms
12:00.39BotanicalPuppetfunction func() end can be changed later anywhere it is visible by func = otherfunc or _G["func"] = otherfunc or _G.func = otherfunc
12:00.56BotanicalPuppetbut func isn't visible because you have it overwritten by a local argument
12:01.25BotanicalPuppetso _G["func"] will fix that without changing the name of the argument
12:01.38BotanicalPuppet"overwritten" as in "scoped out"
12:01.49BotanicalPuppetgrr i am not a good teacher :(
12:02.18zariousits ok, you're just a lot better at coding / coding concepts than me, so its harder to explain
12:02.26BotanicalPuppetyes _G["func"]["member"]["membersbaby"] will always work
12:03.06BotanicalPuppetit 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.16BotanicalPuppetso... do something like /script d( _G["GameData"]["Player"]["Career"][line] ) -- see what you get!
12:05.21BotanicalPuppeteverything about data structures in lua is syntactic sugar for making tables, so...
12:05.44zariousok so for example
12:05.56BotanicalPuppeta.b.c == a[b].c == a.b[c] == a["b"].c == _G[a][b][c]
12:06.43zariousif i defined a function called abc.def() (inside abc's namespace/table) then i could also reference it via _G["abc"]["def"]?
12:07.27BotanicalPuppetlua> abc = { def = "function" } print _G["abc"]["def"]
12:07.27lua_botBotanicalPuppet: luabot:1: '=' expected near '_G'
12:07.59BotanicalPuppetlua> abc = {} abc.def = "function"; print _G["abc"]["def"]
12:07.59lua_botBotanicalPuppet: luabot:1: '=' expected near '_G'
12:08.09BotanicalPuppetlua> abc = {} abc.def = "function"; print (_G["abc"]["def"])
12:08.09lua_botBotanicalPuppet: function
12:08.12BotanicalPuppetderr!
12:08.40BotanicalPuppetlua> abc = { def = "function" } print (_G["abc"]["def"])
12:08.40lua_botBotanicalPuppet: function
12:08.59BotanicalPuppetlong story short ya
12:09.14BotanicalPuppetthere's only one global namespace in lua
12:09.20BotanicalPuppetthere is NO other way to share names among files
12:09.33BotanicalPuppetshort of i/o hacks or some other language
12:09.49*** join/#waruidev Soltanis (i=Soltanis@81.168.16.197)
12:10.25zariousi might just leave the hooking code out tbh, not sure it really belongs in this lib
12:10.35zariousbut i can't bitch out and not get it working regardless
12:10.40BotanicalPuppeti have no idea why your timer lib needs to hook anything :)
12:10.49BotanicalPuppetother than onupdate
12:10.58BotanicalPuppetwhich is not a hook anyway
12:11.04zariousit doesnt
12:11.20BotanicalPuppetas to how to call something faster, more often than frame refresh....
12:11.22zariousjust the latch fucntion kinda works well with hooking
12:11.33BotanicalPuppetfind a function that is called often and out of sync with framerefresh update messages
12:11.42BotanicalPuppethook it, have it call your onupdate as well as the framerefresh
12:11.44BotanicalPuppetviola
12:12.18BotanicalPuppeti thought the point of a library of timers is to call other functions, not have them call you back
12:13.15BotanicalPuppeti guess i have to read your code :(
12:13.34zariousnah don't worry about it
12:13.34Wereldsi love writing documentation, so much fun :<
12:13.48zariousyeah
12:14.01BotanicalPuppet"a periodic latch prevents the underlying  function from runnin more than once every n seconds"
12:14.07BotanicalPuppetwhy do you need such functionality?
12:14.37zariousits nice for various things
12:14.46BotanicalPuppetehh
12:14.50zariousmainly binding functions to an event that you know is gonna get the shit called out of it
12:14.55BotanicalPuppetoh ok'
12:15.17BotanicalPuppetbut why would you need it in your scheduler lib
12:15.37zariouscuz its a scheduling related func imo
12:15.48zariousyou're locking something out for N period
12:15.52BotanicalPuppetwhat can they request to be scheduled for other than "another n milliseconds elapsed"?
12:16.12zarious?
12:16.21BotanicalPuppetwhat are you doing :(
12:16.31BotanicalPuppetpost more code or link?
12:16.35zariousapparently something you don't understand lol
12:17.29zarioushttp://war.curseforge.com/projects/ztimelib/
12:17.46zariousthe latch isn't in that though
12:17.52zariousonly stubs
12:17.58zariouswhich are going to be incorrect anyways
12:18.09WobinI can't believe noone chose the name 'Newton' for a Witch Hunter on this server
12:18.16Wobinhow much are surnames?
12:18.20zarious4g
12:18.24BotanicalPuppetrank 20
12:18.24Wobinhm
12:18.30Wobinta
12:19.02*** join/#waruidev hallas (n=christof@77.75.161.139)
12:19.13BotanicalPuppetis surname modifiable after being set?
12:20.25WobinAll servers should have at least 1 witch hunter named  Newton Pulsifer
12:20.51Vonhintenomg, Ice Spikes is crazy
12:20.58Vonhintenthat thing will get you killed
12:21.00WobinAlthough I did kill a black orc called Chuk Norris a number of times in Mourkain Temple
12:21.16zarious...ffs ok i understand why it wasn't working BotanicalPuppet
12:21.25BotanicalPuppetya?
12:21.37zariousyeah, my test function was zTweaks.Print
12:22.20zariousand 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.34zariousbut when my hooker command tried to overwrite the real function with the latch'd one
12:22.52zariousi used the command _G[func] = (newlatchedfunction)
12:23.01zariouswhich doesn't work for zTweaks.xxx
12:23.38BotanicalPuppetlua> func foo() print("foo!") end func foobar() print("foobar!") end func imevil(f) f = foobar end; drumroll = foo; imevil(foo);drumroll()
12:23.38lua_botBotanicalPuppet: luabot:1: '=' expected near 'foo'
12:23.40zariousi would had to use _G["zTweaks"]["Print"] not _G["zTweaks.Print"] which is effectivly what the command was doing
12:23.53zarioussooooo
12:24.20BotanicalPuppetlua> function foo() print("foo!") end function foobar() print("foobar!") end function imevil(f) f = foobar end; drumroll = foo; imevil(foo);drumroll()
12:24.20lua_botBotanicalPuppet: foo!
12:24.22zariousis there a good way to do that? given a function as an argument, overwrite that same function globally?
12:24.41zariousps don't kill me if you said it already
12:24.41BotanicalPuppetlua> function foo() print("foo!") end function foobar() print("foobar!") end function imevil(f) f = foobar end; drumroll = foo; imevil(drumroll);drumroll()
12:24.41lua_botBotanicalPuppet: foo!
12:25.03BotanicalPuppetwell first read that
12:25.10BotanicalPuppetit tells you what went wrong
12:25.23BotanicalPuppetyour function being called by someone else is the equivalent of imevil
12:25.41BotanicalPuppetthey are passing in the value of foo
12:25.43zariouslol, this is why i don't get it, i ask for a stright answer and get that, no offence, just saying
12:26.03BotanicalPuppetsorry you have catching up to do with basic programming :( i mean first year
12:26.04zariousi understand that its only in the scope of that function
12:26.11BotanicalPuppetpass by value
12:26.15BotanicalPuppetdo not modify arguments
12:26.15hallasI get a very strange error
12:26.28hallasInvalid parameters to LogLuaMessage :)
12:26.35BotanicalPuppetif you just want the fix i'll give you a fix to my code above
12:27.05zariousi think i'd understand it better from seeing the fix tbh
12:27.15zariousbut i don't think i'll put this code into the lib
12:27.17zariousso its nota  big deal
12:28.54BotanicalPuppetlua> 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.54lua_botBotanicalPuppet: luabot:1: '<eof>' expected near 'print'
12:29.09BotanicalPuppetlua> 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.09lua_botBotanicalPuppet: lookup
12:29.30BotanicalPuppetthat's a reverse lookup function, ie what i was calling first_key_for
12:29.58BotanicalPuppetlua_bot is printing the string
12:30.16BotanicalPuppetwhich is the key of the global variable lookup
12:30.32BotanicalPuppetlocated at _G["lookup"] = HEXFORFUNCTIONPOINTER
12:31.43zariousok see now i understand what you were saying before about the key
12:31.50BotanicalPuppetlua> 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.50lua_botBotanicalPuppet: luabot:1: '=' expected near 'foo'
12:32.08BotanicalPuppetlua> 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.08lua_botBotanicalPuppet: luabot:1: '=' expected near 'foo'
12:32.23Repo10libstats2: 03pwerelds 041.0 * r6 : Tagging as 1.0, documentation is online now.
12:32.28zariousand 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.00zariousbut i never took programming college, i did networking
12:33.06BotanicalPuppetlua> 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.06lua_botBotanicalPuppet: luabot:1: ']' expected near '='
12:33.07zariousso i guess i can't bitch THAT much
12:33.09BotanicalPuppetgrr
12:33.35WereldsGRRRRRRRRRRR
12:33.36WereldsROAR
12:33.42zariouswait isn't lookup defined in lua anyways?
12:33.44Wereldsnice little kitten BotanicalPuppet
12:33.45BotanicalPuppetlua> 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.45lua_botBotanicalPuppet: foobar!
12:34.03BotanicalPuppetcontrast with your earlier imevil...
12:34.26BotanicalPuppetlua> 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.26lua_botBotanicalPuppet: foo!
12:34.45zariouscode without tabs makes my head hurt
12:35.13BotanicalPuppetzarious: 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.31BotanicalPuppeti will upload pastey
12:35.44zariousnah i wrote it out and i understand what that function you wrote does
12:35.57zariousand it makes sense hwo you're doing it, you're doing, like you said, a reverse lookup
12:36.20zariousand i think you were trying to tell me that all along, i just wasn't following
12:36.37BotanicalPuppeti don't mean to be haughty or anything at all b4
12:36.40Vonhintenwhich isn't really necessary if you pass a string representation of the hook function
12:36.52BotanicalPuppetirc is not they way to learn a programming concept that people stumble over for 6 months
12:36.57Vonhintenrather than the actual function pointer
12:37.18BotanicalPuppetie when i call a function, it gets a copy of what i pass to it pushed on to the stack
12:38.03BotanicalPuppetchanging that copy by itself does squat after the called function exits
12:38.22zariousVonhinten, 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.26BotanicalPuppetthe stack pops off the arguments to the function and throws them away
12:39.19Vonhintenzarious, MyAddon.MyFunction is the same as _G["MyAddon"]["MyFunction"] as someone said earlier
12:39.46Vonhintenso, you pass in "MyAddon.MyFunction" like you do all over the place in Mythic's API, and the code parses it out
12:39.56BotanicalPuppetif 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.22Vonhintenthere's not much reason to pass actual function refs, that I can see
12:40.24BotanicalPuppetie submembers of _G are harder to find
12:40.27*** mode/#WARUIDev [+o ckknight] by ChanServ
12:40.31zariousi didn't thinkg ["MyAddon.MyFunction"] was legal or equal to ["MyAddon"]["MyFunction"]
12:40.32Vonhintenunless you're passing anonymous functions
12:40.35BotanicalPuppetno there is not for this kind of purpose
12:40.39Vonhintenzarious, it's not
12:40.44BotanicalPuppetya zarious, not
12:40.55Vonhintenthat's why I said "and the code parses it out"
12:41.08hallasit isnt the same thing anyway
12:42.18BotanicalPuppet_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.32zariousright
12:42.53BotanicalPuppetif you had a pressing reason to pass by reference....
12:43.38BotanicalPuppethookhandler( top, top.second, top.second.third, top.second.third.bottom ) instead of hookhandler ( top.second.third.bottom )
12:43.44zariousi 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.24BotanicalPuppetit is
12:44.46VonhintenI doubt it
12:44.46BotanicalPuppetdefinitely is faster to go key-> value then to find a key with a given value
12:44.59Vonhintenlua is highly optimized for table use
12:45.06Vonhinteniterating it yourself is bound to be slower
12:45.07BotanicalPuppetvon, you aren't parsing
12:45.12BotanicalPuppetwe're agreeing
12:45.19BotanicalPuppetkeys are names, string
12:45.25BotanicalPuppetvalue is function offset
12:45.40BotanicalPuppet_G["name"] is faster than lookup(name)
12:45.45Vonhintenoh, thought you were saying "it is" to "that it would be slower"
12:46.37BotanicalPuppetunless you have a special reason, your hook handler should take a string
12:47.08zarioushmm
12:47.14hallasCant wait...
12:47.21hallas16 more days for Disturbed / Shinedown concert
12:47.26zariouso_O
12:47.31zariousi'm seeing ac/dc in jan
12:47.39hallasAC/DC wont ever come to Denmark
12:47.41zariousi can't believe they're still alive, but thats cool
12:47.50BotanicalPuppetHOWEVER,... you gave me a great idea for DevUtils
12:48.20BotanicalPuppetfunction_handle_to_string( infantarg, babyarg, childarg, motherarg, grandmotherarg, ... )
12:48.42BotanicalPuppetwith any number of arguments as long as you have 1.... finds it in the global table
12:50.06BotanicalPuppetmaybe 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.52zariousthis hex thing, is that the key?
12:51.11BotanicalPuppetyes, hex is the format in which offsets/pointers to functions are printed
12:51.15BotanicalPuppetusually
12:51.42zariouscan i overwrite the function via its hex id?
12:51.51BotanicalPuppetlua> function foo() end; print ( type(foo) ); print ( foo );
12:51.51lua_botBotanicalPuppet: function, function: 0x8078b30
12:52.02zariousright
12:52.04BotanicalPuppetif you uhhh... knew the bytecode?
12:52.13BotanicalPuppeti dunno
12:52.15BotanicalPuppetsounds crazy lol
12:52.31zariousjust thinkin outloud
12:53.16BotanicalPuppeti 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.30BotanicalPuppetlua> function foo() return true end; print ( type ( foo ) ); print ( foo() ); print ( foo );
12:54.30lua_botBotanicalPuppet: function, true, function: 0x809bb40
12:54.46BotanicalPuppetlua> function foo() return true end; print ( type ( foo ) ); print ( foo() ); print ( foo ); foo[1] == "a"
12:54.46lua_botBotanicalPuppet: luabot:1: '=' expected near '=='
12:55.06BotanicalPuppetlua> function foo() return true end; print ( type ( foo ) ); print ( foo() ); print ( foo ); foo[1] = "a"
12:55.06lua_botBotanicalPuppet: function, true, function: 0x809bb40, luabot:1: attempt to index global 'foo' (a function value)
12:56.01Wobiner
12:56.01BotanicalPuppetlua> function foo() return true end; print ( type ( foo ) ); print ( foo() ); print ( foo ); if( foo[1] > "Z" ) print ( ">Z" ) else print ( "<Z" ) end
12:56.01lua_botBotanicalPuppet: luabot:1: 'then' expected near 'print'
12:56.09Wobinthat hex code is the memory position
12:56.11BotanicalPuppetlua> 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.11lua_botBotanicalPuppet: function, true, function: 0x809bb40, luabot:1: attempt to index global 'foo' (a function value)
12:56.29BotanicalPuppetwhere's my *
12:56.36WobinThere are no 'pointers' you can use to set it =P
12:56.49BotanicalPuppetok question answered then
12:58.05BotanicalPuppetlua> 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.06lua_botBotanicalPuppet: function, true, function: 0x80a0b00, luabot:1: attempt to index global 'foo' (a function value)
12:58.38BotanicalPuppetfunctions != tables gotcha
13:00.25hallasOnMouseOverEnd isnt this an event?
13:04.24BotanicalPuppetbig pastey for zarious to copy to a local file and use for hacking his zlib: http://pastey.net/98076
13:06.05BotanicalPuppetif i can find lua i'll pasty that too
13:09.15BotanicalPuppethttp://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.56Repo10ztimelib: 03zMod * r20 / (3 files in 1 directory): *Added zTime.CreatePeriodicLatch
13:10.58Repo*Added frame scheduler
13:12.07BotanicalPuppetthe 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.32hallasanyone knows why WindowRegisterCoreEventHandler wont work with OnMouseOverEnd event?
13:12.53BotanicalPuppetwhy are you calling that?
13:13.14hallasit sets specific events for a window
13:13.17BotanicalPuppet...assuming the "Core" means it's for the interfacecore to access
13:13.19hallaslike OnRButtonUp
13:13.30FlisherBoya, is there any flag for Optional Dependency?
13:14.12zariousyeah i was wondering about that the other day too
13:14.39BotanicalPuppetthe game loads everything every time :-/
13:14.44zariousi wonder if an addon fails to load if dep's aren't there?
13:14.53Flisherbecause I need to run after another addon if present, but want to run if this addon isn't there
13:15.02zariousyeah
13:15.10BotanicalPuppetgive yourself an event and put your Init code there
13:15.46zariousdid you try puting it as a dep and seeing if your base addon doesn't load?
13:16.05zariousif it does, you can just add an internal check for it in your mods code while lisitng it as a dep
13:16.17BotanicalPuppethere, better...
13:16.28zariousBotanicalPuppet, did you see my pm?
13:16.33BotanicalPuppetzarious na just now
13:16.59WereldsFlisher: just check for the addon's presence in your code
13:17.19BotanicalPuppetuse two events that can do initialization related to your optional dependency
13:17.24BotanicalPuppetone location is OnInitialization
13:17.31BotanicalPuppetthe other is an event guaranteed to fire after dependency
13:17.47BotanicalPuppetthen don't use the games dependency flag in .mod
13:18.14Wereldswell by putting it directly in the code, outside any functions you can halt addon load before it evens tries to call OnInit
13:18.41Wereldsor do stuff depending on whether it's loaded
13:19.08BotanicalPuppetyeah you could put a check for the other addon there too
13:19.20BotanicalPuppetbut basically, put a check on an event after it is GUARANTEED to exist
13:19.23FlisherI'll need to hook stuf fon init I guess
13:19.33BotanicalPuppetand also one in the regular initialization for the rest of your stuff
13:28.07Flisherand did someone found a way to quick logout
13:34.19BotanicalPuppetquick logout?
13:34.43BotanicalPuppetflush log to file quickly?
13:34.49Flisherquick logout
13:34.58BotanicalPuppetquick logout?
13:35.07Flisherloggin out a character
13:35.20BotanicalPuppetsorry
13:35.31BotanicalPuppetwhat is the difference between logout and a quick logout/
13:36.06Flishernot waiting 20 sec
13:36.25BotanicalPuppetfairly sure that would mostly be in war.exe and the way it manages memory and does uninit stuff
13:36.45BotanicalPuppetit does it as fast as it can / your pc can
13:36.55BotanicalPuppetoh duh im dumb
13:36.57BotanicalPuppetcamping
13:37.15BotanicalPuppetsorry, haven't thought about that
13:37.22BotanicalPuppeti spend more time in /reloadui than /camp
13:38.24BotanicalPuppetyes it's cool the way WoW does camping, no WAR doesn't seem to allow that and it may not be moddable
13:39.18Flisherbut 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.19FlisherI now dump data instead of referencing soo I'm ok
13:40.04BotanicalPuppetwhacha codin
13:41.06Flisher@project CharactersViewer
13:41.07RepoFlisher: No project found that matches 'CharactersViewer'
13:41.14Flisher@project charview
13:41.15RepoFlisher: 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.05SoresHello, 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.18Soresthe normal interface has huge files, takes time taking all of it in
13:44.17hallaswhat you should do sores
13:44.25hallasis to figure out what addon you want to make, and just try it
13:44.34hallaswhen you run into a proble, you research other addons or ask here
13:44.46hallasproblem*
13:46.39SoresWell 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.40Soresbuttons
13:46.43Sorescheckboxes, etc
13:46.56Soresare there any preset templates for buttons, etc, and where are they?
13:48.20hallaswell
13:48.24hallasas i said
13:48.30hallasthere are plenty of addons for you to look through
13:49.52hallasanyone remembers what the EA template for a tooltip is called?
13:50.09Soresokey, 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.25hallasi have no clue ;D
13:50.27Soresand i have been unable to find it in any of the interface files
13:50.44Soressince windows search engine doesn't seem to be able to searh `in' files
13:50.49Soressearch*
13:50.56Flisheris there a builtin function to copy a table (not reference) ?
13:50.56Sores(windows as in microsoft windows)
13:51.09Flishernotepad++ can do it.
13:51.17Soreswell that requires me to open each and every file
13:51.29Soresand there are tons and tons of files in the interface directory
13:51.39Flishernotepad++ can seach into a directory
13:51.42Soresit can?
13:51.56Flisherctr-f, the 3rd panel
13:51.57Sorescan it recurisvely search through directories, look in files for keywords?
13:52.05FlisherFin in files
13:52.09Flisheryes
13:52.12Soressweet
13:53.01Repo10charview: 03Flisher * r57 CharactersViewer.lua: -Fixed a stack overflow error
13:53.38WereldsDataUtilsData.items contains all the items in your bags Sores
13:53.50Wereldsit's just a table so gogo dump and there's your answer
13:54.14SoresWerelds, okey, does it contain what slot in the bag, and item data such as rarity, item level etc?
13:54.26Wereldsi have no idea as i've never used it
13:54.31Wereldshence why i say "gogo dump"
13:54.31Soresokey well i will search into that
13:54.32Werelds;)
13:54.39Wereldsjust go in game
13:54.40Wereldsand type
13:54.46Werelds/script d(DataUtilsData.items)
13:54.52Wereldsyou'll see what it contains quick enough
13:54.57Soresaye, going to do it after work, haven't got war on this machine
13:55.32FlisherWerelds: you know if there is a function to copy table?
13:57.00Wereldsyou mean make table B a copy of table A?
13:57.45zariousi think you can use the rawaccess functions to do it, but i dunno if theres a builtin command for it
13:57.48Wobinnot natively
13:58.01Wobinjust write a deepcopy local function
13:58.06Wobinthat uses pairs()
13:58.12Wobinand copies the values to a new table
13:58.31Wobinand if the value of the pair() is a table, recurse into the function
13:59.09Wereldsyeh that's the only way afaik
13:59.18Flisherok
14:00.20Flisheralof 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.57hallasanyone remembers what the EA template for a tooltip is called?
14:01.50WereldsFlisher: http://www.pastey.net/98082
14:02.15Flisherthank's :)
14:02.29Wereldsdeepcopy 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.34FlisherAiiane: 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.19hallasYou can tell by the way I walk, I am a womens man!
14:29.30Chryzo_aren't those called womanizers ?
14:29.43Chryzo_i had like to read your sentence 10 times
14:32.59hallasIts Bee Gees
14:40.01sysrageanybody 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.18Flishergo buy kaspersky or some efficient, it's about 0.10$ a day :)
14:48.42Flisherkaspersky 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.47Flisheranyone know the event that are called when people camp, logout or quit from a slashcommand?
14:50.32FlisherEXIT_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.48art3mis<PROTECTED>
15:16.55Repo10charview: 03Flisher * r58 / (3 files in 1 directory): -Improved the code saving the bank content
15:16.56Repo-Removed LibSlash dependency in order to be able to handle /logout, /camp and /quit
15:17.01Repo-Added visual output when profile is saved.
15:19.36UndineSoltanis, tooltips. other than editing other people's addons is there anything i can do to move where they apear?
15:19.45Undinestupid nic completion
15:20.38SoltanisId blame the people in a hurry :-)
15:21.55Repo10charview: 03Flisher * r59 BankWindow.lua: -Removed Bank debugging code
15:52.29Flisher.
15:56.47Repo10charview: 03Flisher * r60 / (3 files in 1 directory): -Improved slashcmd handling
15:56.48Repo-Fixed bank event function call
15:57.12hallasWhat 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.18Undinei 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.21art3mishallas: something like cirks chat amanger is all i'd like and need
16:06.26art3mismanager
16:06.34*** join/#waruidev Hamisch (n=Hamisch@67.217.8.56)
16:06.39art3missimple channel creation coloring and sticky setting
16:06.53art3miserr like to see
16:06.57art3misnot like and need
16:07.26Flisherhallas: see WIM from wow :)
16:08.05art3misautobar or an auto potion/crafting bar would be handy as well
16:08.12art3miscrafting "bag"
16:08.44art3misthose are raelly the only things im missing from my normal layout
16:09.20Flisheryou can configure you bag to get what they want by default
16:09.27hallashaha
16:09.31hallasI disabled the EA_ChatWindow
16:09.36hallasI got a very odd feeling of being handicapped atm
16:09.57art3misflisher: i dont want them dumped in a bag
16:09.59Flisherwarning: hijacking this windows will probably break shitload of slashcommand handler since there is no slash event.
16:10.20art3misi dont care where they do, im talking about a simple display that shows all my crafting stuff and ONLY my crafting stuff
16:11.05art3misand 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.12art3misthey go
16:12.01Repo10charview: 03Flisher * r61 CharactersViewer.lua: -Fixed slash command (for good?)
16:12.03Repo-Tagging as beta bank release.
16:13.15Flishernoob question but where can I tag on curseforge now?
16:15.49BotanicalPuppeti am becoming curse's biggest advocate for aiiane's LibSlash for all addons that process slash cmds :o
16:16.10BotanicalPuppet...because i plan to use its registry to make SlashClick easier to use and easier to code
16:16.55Flisherwell, main problem is libslash can't overload existing command
16:17.02FlisherI need to hook /logout, /quit and /camp
16:17.14Flishersince using those slashcommand doesn't fire their associated event
16:17.19BotanicalPuppetokay, but you can do that and also use LibSlash for the rest
16:17.30Flisherhum, sound true.
16:17.35BotanicalPuppethooking predefined slash cmds is special stuff
16:17.51BotanicalPuppetmost people are wrapping it cuz "lulz less d0nlodz for deh usr"
16:18.02FlisherI'll re-add libslash for the /cv stuff then.
16:18.11BotanicalPuppetyou make me happy
16:18.25FlisherIf you register the project properly on curse, I think the client download the project tagged as dep.
16:18.46FlisherI still can't find the new place to tag my repository on the new war.curseforge.com
16:19.07BotanicalPuppeton the bright side, users haven't relied on tags in the past so dont think they're missing anything
16:19.13BotanicalPuppetrecent* past
16:20.05hallasYou're kidding me
16:20.11BotanicalPuppeti am?
16:20.13BotanicalPuppetmaybe
16:20.13hallasnono
16:20.15hallasnot like that
16:20.23hallasJust.. looking at how mythic is handling the chat
16:20.58BotanicalPuppetthe non-queue for userinputtext
16:21.43BotanicalPuppetif 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.16BotanicalPuppetif you disagree, go to hell ! :O
16:22.20Repo10charview: 03Flisher 04Version 1.30 Beta * r62 : test tag
16:23.17Repo10charview: 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.00hallasDo you guys where the chat data is stored? I cant find anything in EA_ChatWindow
16:25.01hallasI mean..
16:25.02hallas:P
16:25.08hallasI found an event for when you receive chat
16:27.38hallasUh
16:27.40hallasMight have found it
16:28.21BotanicalPuppetthe 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.25BotanicalPuppetyou are using an ingame script to log messages (excepting 1 or 2 hyperactive ones) right?
16:30.43hallaschat objects are stored in the systemdata table apparently
16:30.50hallaswhen the event fires
16:30.55hallasyou must fetch it from there
16:37.48BotanicalPuppetyou could possibly do some postmortem textbox reading magic with a presumed chat destination
16:38.00hallasi think i got a nice approach
16:44.16BotanicalPuppetoh 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.04BotanicalPuppetculprits meaning API provided by WAR often hooked
16:46.06BotanicalPuppeti 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.24BotanicalPuppetwell i will be doing value matching anyway (finding all aliases of monitored API) , soo... i could track those down too
16:48.44BotanicalPuppetunless 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.38hallasye
16:54.00Werelds`afkBotanicalPuppet
16:54.03BotanicalPuppeti have to learn how to use the .. whatchamacalit
16:54.13BotanicalPuppetthing that uploads incremental file revisions
16:54.14Wereldsthere's no way for you to be sure your addon loads first, trust me
16:54.22BotanicalPuppetno there isn't
16:54.33Wereldsthe game loads addons in a very peculiar manner
16:54.38BotanicalPuppetbut note...
16:54.40Wereldsit doesn't load all the EA stuff first
16:54.49Wereldsbut it jumps between EA and user addons
16:54.51BotanicalPuppetwhen do OnInit's get called
16:55.10Wereldsafter all the global code has been parsed
16:55.29BotanicalPuppetya, 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.21BotanicalPuppetit 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.42BotanicalPuppetalphabetical order is a good first stab in the dark for further experiments
16:58.48Wereldsexcept
16:58.54Wereldsthere is no logic behind it :)
16:59.00BotanicalPuppetthere must
16:59.02BotanicalPuppetit's programmed
16:59.12Wereldsit's also threaded
16:59.35Wereldsi had nearly the same addons as aii
16:59.37BotanicalPuppeti'll run experiments and look for patterns
16:59.48Wereldsexcept my debugwindow loaded all the way at the end of my cycle
16:59.53Wereldsand hers about halfway through
16:59.59BotanicalPuppetuh wut
17:00.01Wereldsand none of our addons had debugwindow as a dep
17:00.07Wereldsbut CODEWISE
17:00.14Wereldsdebugwindow is loaded BEFORE everything else
17:00.15Wereldsso yeah
17:00.18WereldsGL in finding the pattern
17:00.19Werelds:)
17:00.26BotanicalPuppethaha thx
17:00.42*** join/#waruidev gefi (n=pear@193.43.249.169)
17:01.05BotanicalPuppetwere your user's the same?
17:01.16Wereldsi think the pattern consists of "if (timetoloadstuff == true) then loadaddonnumber(rand(1, 99)); checkdeps(); repeat; end"
17:01.33BotanicalPuppeti rarely see programmers use rand() unless they really want it
17:01.40hallaswhy would they rant it
17:01.46BotanicalPuppetfor random stuff
17:01.48hallaswell
17:01.49BotanicalPuppetlike dice games
17:02.05Wereldshas anyone looked at the game's cpu usage btw?
17:02.07Wereldsi haven't
17:02.14hallasthere is probably some crappy algorithm checking which addons require what resources etc...
17:02.18Wereldsbut looking at the random addon loading, it looks like it threads pretty well
17:02.33Wereldsyeah but hallas, that doesn't make sense either
17:02.37BotanicalPuppetim not gonna use the debug window
17:02.40Wereldssince half the EA crap requires debugwindow
17:02.45BotanicalPuppetit's not accurate i dont think
17:02.53BotanicalPuppetgonna use a set of globals and do dirty stuff to find out
17:02.55BotanicalPuppetwhich code comes first
17:03.06Wereldsi can tell you exactly how it's done programmatically btw puppet
17:03.12BotanicalPuppetyes?
17:03.25Werelds-- Needs to be loaded first for ERROR() and DEBUG()
17:03.25WereldsModuleRestrictedLoad( "Interface/Default/EA_UiDebugTools/EA_UiDebugTools.mod", IsInternalBuild() )
17:03.28Wereldsstarts with that
17:03.34Wereldsthen loads all the templates
17:03.40Werelds-- Load the Pregame Window Definitions
17:03.40WereldsLoadResources( "Interface/InterfaceCore", "InterfaceCore.xml", IsInternalBuild() )
17:03.42Wereldsthen does that
17:03.59Wereldsand final bit is where it checks if CUSTOMUI is checked
17:04.06Wereldsif yes, then it loads that, otherwise loads EA default
17:04.11Wereldsand AFTER THAT it loads user addons
17:04.24Wereldsthing is tho
17:04.33Wereldsall the load functions are exposed from C
17:04.38Wereldsand we have no clue how they're handled there
17:04.39hallaswell oh well
17:04.46hallasgot a basic chat frame up and running now :)
17:05.16BotanicalPuppetneed moar asm ! imo :P %^)
17:05.48Wereldsoh god please no :p
17:06.03BotanicalPuppetit might be kinda neat if someone could correspond the ASM with the function names
17:06.29Wereldsrequires more work than it's worth really
17:07.08BotanicalPuppetsince their exposed to lua, lua can tell you something like offset
17:07.21BotanicalPuppetsince their are tons of file tools, they can tell you where offset starts
17:09.09Wereldsit's still not worth the effort tho really
17:09.47BotanicalPuppetsubjective, someone might do it
17:10.10Wereldsfinding 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.21Werelds;)
17:10.38BotanicalPuppetuh dont work at mythic sry
17:12.07BotanicalPuppetbtw EA_UiDebugUtilTools module is not loaded in retail WAR
17:12.19BotanicalPuppetsee pregameutils.lua instead
17:12.48Wereldsi assume you mean ea_uidebugtools
17:12.53Wereldsand erm yes it does get loaded :)
17:13.21BotanicalPuppetInterface/Default/EA_UiDebugTools/EA_UiDebugTools.mod
17:13.36BotanicalPuppethrm what's ModuleRestrictedLoad
17:14.05Wereldsloadfrommyp
17:14.18Wereldswell no sorry, i'm saying that wrong
17:14.37WereldsModuleRestrictedLoad(pathToMod, isInternal)
17:14.57Wereldsif isInternal == false then it loads from .myp only
17:16.25BotanicalPuppetya found it now :-/
17:16.58Wereldsthat's not the part where it goes wrong tho
17:17.14Wereldsyou got interfacecore.lua loaded up?
17:17.38BotanicalPuppetya
17:17.43WereldsInterfaceCore.LoadModData()
17:17.45Wereldscheck that one out
17:17.49Wereldsthat's the fucked up one
17:18.07Wereldsproblem is that with debugtools it forces it to load
17:18.11Wereldsand then that function loads it again
17:18.15Wereldsbut like i said above
17:18.27BotanicalPuppetModulesLoadFromDirectory
17:18.28Wereldsmodulesloadfromdir doesn't have much logic behind it
17:19.08Wereldsit's modulesloadfromdir/file which is the culprit
17:20.37BotanicalPuppetwhich are in C
17:20.58Wereldsyah
17:21.19Wereldsbut i'm guessing it threads it a lot, which would explain the differences in when stuff is loaded
17:21.42BotanicalPuppet... i'm a noob ... you can replace InterfaceCore with the IsCustomUI ??
17:21.59hallasdamn noob!
17:22.16BotanicalPuppeti have been doing it the hard way... patching interface.myp :o
17:27.50BotanicalPuppetcan someone in WAR tell me the output of /script d(StringTables.Pregame.LABEL_CUSTOM_UI) real fast
17:28.13BotanicalPuppetor instead /script d( GetPregameString( StringTables.Pregame.LABEL_CUSTOM_UI ) )
17:30.38BotanicalPuppetit'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.46Wereldsno BotanicalPuppet
17:33.55Wereldsinterface/default/
17:33.55BotanicalPuppetno wut
17:33.58Wereldsis what you can replace
17:34.01Wereldsnot interfacecore
17:34.10BotanicalPuppetah, well still handy
17:34.13Wereldsbut that's probably what you meant
17:34.14Werelds;)
17:34.20Wereldsinterfacecore = main menu + login etc
17:34.24BotanicalPuppeti'll make an interface.lua interface/default build
17:34.31Wereldsinterface/default is everything from loading screen up
17:34.34BotanicalPuppetprobably........ ;o :)
17:35.09BotanicalPuppetoh wait, it can load them as just plain files
17:35.11BotanicalPuppetno  myp right?
17:35.16BotanicalPuppetwith custom ui
17:38.11Eldancan i get a hand with a rounding function?
17:38.35Eldanit doesnt seem to be working when i set the label to it
17:38.37Eldanbut
17:38.43Eldanthe logic works
17:39.25Eldanfunction WaaaghTimer.Round(num, dp))
17:39.34Eldan<PROTECTED>
17:39.43Eldan<PROTECTED>
17:39.46Eldanend
17:39.56hallaswhat you trying to do?
17:40.33Eldani have a timer being output that works with OnUpdate
17:40.50Eldanbut i want 'timer' to be rounded to the tenths digit on output
17:41.02hallasyou should try
17:41.04hallasoh
17:41.05hallasrounded..
17:41.15hallasI found that somewhere
17:41.26Eldanthat is the function for rounding
17:41.28hallashttp://lua-users.org/lists/lua-l/2003-03/msg00224.html
17:41.34BotanicalPuppetweren't we talking about some kind of overhead with producing a wrapper for the WAR API?
17:41.37hallaseldan
17:41.38hallascheck that out
17:41.39hallasthat works
17:41.42BotanicalPuppetwe were all huge nubs if custom ui works
17:41.45Eldansame thing
17:42.18BotanicalPuppetpatch the default ui files and make sure you build in some compat or w/e you want... release that... you are good
17:42.45BotanicalPuppetless work by 100000% too
17:42.48hallasTool - Wings for Marie
17:43.06BotanicalPuppetyou clicked Tool ^
17:43.52BotanicalPuppetplus it would be easier to maintain this custom ui than 30 little addons that replicate hooked bugfixes
17:44.15hallasi clicked tool ?
17:44.20BotanicalPuppetyour song
17:44.34BotanicalPuppetoh it's not a song
17:44.45BotanicalPuppeti thought it was 'what i'm listening now' spam
17:44.49hallasIts a song
17:44.54BotanicalPuppetk
17:44.56hallasand the greatest band atm
17:46.27hallasTool - 10,000 Days
17:46.39Werelds@ BotanicalPuppet: the problem is that the general user wouldn't know how to get that going properly
17:46.55BotanicalPuppeti disagree...
17:47.00BotanicalPuppetgeneral addon user could do it
17:47.03Wereldsso with every patch of the game, someone would have to upload the updated default mythic addons
17:47.12BotanicalPuppetnot really
17:47.27Wereldsyarly
17:47.30BotanicalPuppetyou would have somewhat backwards interface/default until you apply the patch
17:47.45Wereldshow do you mean backwards?
17:47.48BotanicalPuppetyou would have to go back to the new interface/default and apply changes
17:47.58BotanicalPuppetbut you should be able to run the game usually with an old interface/default
17:48.08Wereldswhich is a lot of hassle for no reason at all
17:48.12BotanicalPuppetusing diff is your friend
17:48.19BotanicalPuppethassle for the maintainers i agree
17:48.20Wereldsno, custom ui is meant for when we've replaced every bit of the ui
17:48.30BotanicalPuppetanyone else it's apply patch to my custom ui (4MB download) end
17:48.34Wereldsor for when we can finally properly load all the resources
17:48.51Wereldsbecause atm there's no point in using it
17:48.59Wereldssince texture display is broken
17:49.03Wereldswe can't do custom fonts yet
17:49.05BotanicalPuppetum, so?
17:49.12BotanicalPuppetcan't you change the interface/default functions?
17:49.33Wereldsyeah of course; but if you use custom ui, where the hell will you get your textures from? ;)
17:49.51Wereldsnot all, but some are loaded through XML in interface/default
17:49.54BotanicalPuppetehhhh 1 thing at a time
17:49.55Wereldswhich we can't do
17:49.56Werelds\o/
17:50.14Wereldsfirst we need to have the API working, then we can start thinking about using custom ui
17:50.22BotanicalPuppeti think i need to make an InterfaceDefault project... i DEFINITELY need to use the versioning tools for this
17:50.38BotanicalPuppetcustom textures is not the end of the millenium
17:50.56BotanicalPuppetplus i'll be ready
17:51.01BotanicalPuppetwhen they're fixed again
17:51.19BotanicalPuppetpeople who want to skin can instantly start deriving from custom ui i build
17:51.36BotanicalPuppet...patching it with their skins and uploading that to theirs
17:51.45BotanicalPuppetwhile mine acts like a base for bugfixes, etc
17:52.46BotanicalPuppeti believe you will see a lot of the addon users with custom ui enabled in 2-3 months no more
17:52.55BotanicalPuppetassuming EA doesn't change how it works
17:54.04Wereldswell tbh
17:54.09Wereldswhat i'm looking forward to
17:54.16Wereldsis that when all of it works
17:54.24BotanicalPuppetthat's EA's job
17:54.38Wereldswe can start getting rid of some of the redundancies and we can finally start centralising the UI around a few core libraries
17:54.39BotanicalPuppeti just do my thing that makes all of it a little tiny bit better
17:55.34BotanicalPuppeti 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.49hallasI think
17:55.53hallasOpen up UI Mod Manager
17:55.58hallasDisable everything EA
17:56.01hallasand start from scratch ;)
17:56.05BotanicalPuppetyeah
17:56.09BotanicalPuppetoh
17:56.10BotanicalPuppethehe
17:56.16BotanicalPuppetyou disagree with pushing that button
17:56.21BotanicalPuppetfor custom ui?
17:56.27hallaswhy not
17:56.32Wereldsusing the current default ui as a base for everything would be a mistake
17:56.33hallasbut some of their texture is nice
17:56.42Wereldsbecause the current default ui is part of the problem
17:56.57hallasthis will happen anyway
17:56.57hallasI mean
17:57.06hallasWe actually already almost got every bit of the UI rewritten
17:57.12hallasIt's just a matter of putting it together ;)
17:57.18hallasremoving dependices on EA stuff
17:57.18Wereldsno, not really
17:57.24Wereldsa lot of addons still depend on the default stuff
17:57.37hallasYe, thats what i mean
17:57.44hallasfrom now, right your addons as bases
17:57.44hallasw
17:57.50hallasnot houses on the EA foundation
17:57.50BotanicalPuppetcompatability with default stuff is impt to my customui, but others can build from scratch i suppose
17:58.07BotanicalPuppetbecause most addons will depend on default stuff being there
17:58.28Wereldswell any addon i write, i plan on not having to depend on any EA/Mythic stuff
17:58.32Wereldsother than the textures
17:58.38Wereldsand some of the base templates
17:58.44Wereldsbecause those get loaded no matter what
17:58.44hallas:)
18:00.53hallasI think everything should, as much as possible, be based on the SystemData table and the GameData
18:01.10hallasBest way to avoid problems when they patch anything
18:01.22hallasAnd you dont have to go through stupid myps file to see the systemdata table
18:11.55BotanicalPuppet<-- just got the flash of light on what custom textures means
18:12.05BotanicalPuppethaha :)
18:12.11BotanicalPuppetit's all pink maagn
18:12.45BotanicalPuppetya 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.02BotanicalPuppetor figure out how to patch textures... ???
18:13.20BotanicalPuppetoh well i got all of the default interface to try :)
18:16.10BotanicalPuppeti 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.14BotanicalPuppetthe func is defined for sure
18:18.12BotanicalPuppetthe first arg is set to "Interface/Default"
18:18.57BotanicalPuppetGetPregameString is defined as a func
18:19.41BotanicalPuppetthe second arg is "EA Default"
18:19.48BotanicalPuppetthird arg false
18:20.28BotanicalPuppetlet's test /script ModulesLoadListFromListFile( "Interface/Default", "EA Default", false ); after applying custom ui?
18:21.08BotanicalPuppetummm type
18:21.28BotanicalPuppet<PROTECTED>
18:21.56BotanicalPuppetumm!
18:22.04BotanicalPuppet<PROTECTED>
18:22.44BotanicalPuppetfile Interface/Default does not exist
18:24.18Repo10influencetext: 03Elder82 * r37 InfluenceText.lua:
18:24.19Repo* Ticket 2: tooltip hotspot change depending on visual style
18:25.11BotanicalPuppetmy extract from easymyp shows a file called "Interface/Default/eadefaultmods.txt"
18:25.16Repo10influencetext: 03Elder82 04v1.2.5 * r38 : Tagging as v1.2.5.
18:25.31BotanicalPuppetok so ... if i want to make my custom ui more like my default ui...
18:25.56BotanicalPuppetcall /script ModulesLoadListFromFile( "Interface/Custom", "EA Default", false );
18:26.00BotanicalPuppetand drop that file in
18:26.35BotanicalPuppetfile's already there from extraction
18:26.45BotanicalPuppetso just... /script ModulesLoadListFromFile( "Interface/Custom", "EA Default", false );
18:27.28BotanicalPuppetgrr /script ModulesFromListFile( "Interface/Custom", "EA Default", false ); -- it's always a ListFile noob!
18:27.50BotanicalPuppetgrr /script LoadModulesFromListFile( "Interface/Custom", "EA Default", false ); -- so load you idiot!
18:28.28BotanicalPuppetgrr /script ModulesLoadFromListFile( "Interface/Custom", "EA Default", false ); -- we are hungarian, we module load from listfile!
18:29.03BotanicalPuppetfile Interface/Custom does not exist ... but... tehy appended something to it in the code...
18:29.10BotanicalPuppetwhich is probably the end of the path
18:29.44BotanicalPuppetso /script ModulesLoadFromListFile( "Interface/Custom/", "EA Default", false ); -- ya i see /EADefaultMods.txt in there
18:30.18BotanicalPuppetso /script  ModulesLoadFromListFile( "Interface/Custom/EADefaultMods.txt", "EA Default", false );
18:30.45BotanicalPuppetdoes not exist either :-/
18:31.04BotanicalPuppetoh..
18:31.38BotanicalPuppetit wants a myp folder not a file folder string for path, and a myp filelist instead
18:32.12BotanicalPuppetwell that's a project but can be done... can name it movie.myp :)
18:32.39BotanicalPuppetam i brilliant or wut... news at 11
18:34.44BotanicalPuppethmm... even easier / weirder ... there are no .dds in the .txt list
18:35.17BotanicalPuppetoh .mods?
18:35.25BotanicalPuppetof course
18:37.46BotanicalPuppetEATemplate_DefaultWindowSkin.mod has files listed ... Textures/DefaultSkinTextures.xml etc
18:38.05BotanicalPuppetthey're relative to custom paths and they are not in a .myp
18:38.35BotanicalPuppetso they aren't loaded... maybe ... maybe ... change all these paths to repath to interface/default dirs?
18:38.41BotanicalPuppetbased on file extension
18:39.03BotanicalPuppetxml, mod, and lua are good
18:39.16BotanicalPuppetanything plaintext is fine, but everything else remapped to the default dir
18:39.27BotanicalPuppetgimme 20
18:40.28BotanicalPuppetwait first let me try /script  ModulesLoadFromListFile( "Interface/Default/EADefaultMods.txt", "EA Default", false ); just to see what happens
18:41.41BotanicalPuppetit tried to load all the default .mods but with resulting name conflicts
18:42.33BotanicalPuppetbut 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.11BotanicalPuppet... 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.32BotanicalPuppetevery daughter hook will know about every mother hook and vice versa
18:49.08BotanicalPuppetsome onupdate stuff will try to make sure it doesn't break with oldschool hooking addons
18:57.32BotanicalPuppetwould anyone else also hazard a guess that war.exe loads every .myp in the root war folder?
18:58.21BotanicalPuppetit doesn't burp on deleting movie.myp, e.g.
18:58.34BotanicalPuppetprobably looks for interface specifically tho
18:58.36BotanicalPuppetat least
18:58.56BotanicalPuppetbut there are two graphics .myps
18:59.50BotanicalPuppetwonder 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.25BotanicalPuppetand 'customaudio.myp', both being extracted and useable by mods
19:00.40BotanicalPuppethas anyone else been thinking about this like i have?
19:04.30BotanicalPuppetfor 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.09FelyzaI wonder why freenode-connect ctcp versions me every time I sign on
19:05.12BotanicalPuppetno custom textures --> no loading textures from file structure directly (must be .myp'd in root) ... that is all
19:05.35FelyzaMy script at least has fun responses
19:11.20FelyzaI think I'm going to poke at the xml stuff again today
19:11.30BotanicalPuppetgood idea
19:11.36BotanicalPuppetyou'll have a customui sandbox soon
19:11.48Felyza?
19:11.56BotanicalPuppetea coded for one
19:12.03BotanicalPuppetit's disabled by default
19:12.05BotanicalPuppetyou can  muck it up
19:12.12BotanicalPuppetand if it breaks, go back to your default one
19:12.17BotanicalPuppetit's what they used for debug
19:12.18Felyzaooooo
19:12.24Felyzais it possible to enable?
19:12.30BotanicalPuppetya im in it
19:12.40Felyzahow to enable?
19:12.42BotanicalPuppeti just have to remap all the binary resources to the interface/default paths
19:12.47BotanicalPuppeti'll readme.txt it
19:12.52Felyzawoot
19:13.52Felyzaand 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.47BotanicalPuppetlook 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.27BotanicalPuppet**DANGER: YOU WILL GO BLANK IF NOT PINK**
19:15.31BotanicalPuppet<PROTECTED>
19:15.36BotanicalPuppet<PROTECTED>
19:15.52BotanicalPuppetbut first make sure interface/custom has all the same files as your extracted interface/default
19:15.54BotanicalPuppetand you're good
19:16.04Felyzaso that's what the option in the usersettings.xml is for
19:16.07Felyza;)
19:16.27BotanicalPuppetya you could just edit the file oto
19:16.28BotanicalPuppettoo*
19:17.32BotanicalPuppetyou 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.40BotanicalPuppeti'm on CustomUI 1.0.2-0.0
19:17.53FelyzaI really wish Aii/Aiiane would put a link to WAR API on the navigation menu at thewarwiki
19:18.13BotanicalPuppetnav menu belongs to whole wiki not namespace i think
19:18.17Werelds(21:16:09) (Felyza) so that's what the option in the usersettings.xml is for
19:18.25Wereldsor the tickbox in the customiseui thing
19:18.30Wereldstick/textbox
19:18.33BotanicalPuppetwell
19:18.36FelyzaI didn't see a tickable option
19:18.38BotanicalPuppetinterface.myp now blanks that
19:18.43BotanicalPuppetbefore it did not
19:18.51BotanicalPuppetthe script or editing the file will be reliable until war.exe changes
19:19.08Wereldsthere's still not much point atm so :)
19:19.21BotanicalPuppetwill be in less than 4 hours mark my words
19:19.46Wereldsare 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.55BotanicalPuppettexture display is fine
19:19.57BotanicalPuppetlrn2mod
19:20.17BotanicalPuppetcan't load binaries from files must load binaries from .myp
19:21.11BotanicalPuppetand all .myp files in the root folder are loaded as resources by war.exe
19:21.25BotanicalPuppetget packing with easymyp 1.2 gogogo!
19:21.48BotanicalPuppetfirst one to put headshot.wav in a .myp gets a brownie
19:21.53Wereldschecksum is checked on the myp files right? so no point in replacing files
19:22.07nicoli_swell you used to be able to do it
19:22.24nicoli_sthat was how ui modding used to be done, me and chryso had programs to inject files back into the myps
19:22.25BotanicalPuppetwell... 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.33nicoli_sso we would just edit the existing files in the myps
19:22.42Wereldsnicoli_s: easymyp can still do that
19:22.44BotanicalPuppetok i'll spill
19:22.47Wereldsat least the code i still have
19:22.49BotanicalPuppeti will *never* release this
19:22.56BotanicalPuppetbut i have an interface.myp off of 1.0.2
19:22.59BotanicalPuppethides the eula
19:23.05BotanicalPuppetand hides the server confirmation windows
19:23.22Wereldsscreenshot or it didn't happen
19:23.23Werelds;]
19:23.26BotanicalPuppetwould be a nightmare to release for so many reasons
19:23.29BotanicalPuppeti will fraps it
19:23.33BotanicalPuppetswear to my mother
19:23.39nicoli_swell as far as we can tell, there is no file checksum in the myp
19:23.40Wereldsjust gimme a checksum of your interface.myp
19:23.44Wereldsthat'll tell me enough
19:23.50BotanicalPuppetwerelds no
19:23.51Wereldsunless you're one of those filthy US people
19:23.52Werelds:p
19:23.53nicoli_sthere is a checksum of the metadata for each file
19:23.56BotanicalPuppetit did not check
19:24.03BotanicalPuppetthe ind. file
19:24.23BotanicalPuppetafter a major update, i patched the interface.myp with my own (well, technically, cut and paste twice)
19:24.26BotanicalPuppetit worked
19:24.40nicoli_swas the file uncompressed in the myp?
19:24.44BotanicalPuppetno
19:24.45BotanicalPuppetcompresse
19:24.50BotanicalPuppeteasymyp 1.2 compresses
19:24.52nicoli_sdid you recompress it?
19:24.54BotanicalPuppetjust buggily
19:25.00Wereldswell 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.05Wereldsif what you're saying is true
19:25.06BotanicalPuppetsince it was text it did fine.. i guess? not sure
19:25.07nicoli_snot all myps are the same
19:25.18Wereldsit means we can inject "extra" files into the myps to load our own textures
19:25.20nicoli_syou can delete your myps and they are redownloaded differently
19:25.21BotanicalPuppeti'll fraps but i wont give you my data files
19:25.28Wereldswhich i'd love to do so i can get rid of these horrible fonts
19:25.41BotanicalPuppetnicoli_s: what i believe is this
19:25.52BotanicalPuppetif the server says the file is out of date, it make sure the file is byte identical
19:25.58BotanicalPuppetotherwise , it does nothing
19:26.00BotanicalPuppetunless you check the boxx
19:26.07BotanicalPuppetas to Werelds, yes
19:26.07nicoli_swell i dont think it checks those
19:26.10Wereldsright so basically
19:26.12BotanicalPuppetyou can make as many .myp's as  you want
19:26.15Wereldsit doesn't checksum the file
19:26.17Wereldsbut the contents of it
19:26.25Wereldsit only checks the hashes
19:26.26nicoli_swell i disagree
19:26.29BotanicalPuppetWerelds, it doesn't checksum the file on every load
19:26.30Wereldsbut not the .myp itself?
19:26.32nicoli_si dont think it checksums the file or its contents
19:26.47nicoli_sthere is a special block of data in the myp for each file entry, we call it the metadata
19:26.49BotanicalPuppetit DOES when it major updatews
19:27.00BotanicalPuppetwhen there IS a major update, it will find my changes and overwrite
19:27.03Wereldsnicoli_s: the hashes of the filenames are checked
19:27.04BotanicalPuppeti have seen this
19:27.06nicoli_sfor each myp entry, there is a checksum of the metadata
19:27.34nicoli_sit could be that this metadata also has the actual file checksum, but we dont know
19:27.41nicoli_sno one has any proof of that yet
19:27.49BotanicalPuppetlook. 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.11Wereldsyehyeh but that has nothing to do with the .myp itself really
19:28.15Wereldsonly with its version
19:28.17BotanicalPuppeti don't know what technology it uses
19:28.26Wereldsmeaning that you can fuck up your myp file as much as you want
19:28.31Wereldsuntil there's a patch ready on the server
19:28.31BotanicalPuppetbut it will make sure the interface file is identical IFF the server says it has updates for it
19:28.41BotanicalPuppetyes yes yes Werelds YES
19:28.41Wereldsat which point it'll rewrite any bytes that aren't in the "real" file
19:28.49BotanicalPuppetcorrect based on my experience
19:28.55nicoli_sare you sure that file just didnt get updated?
19:29.02BotanicalPuppethmm?
19:29.21nicoli_si 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.26BotanicalPuppetanywy, 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.44BotanicalPuppetnicoli_s: yes, the patch was for other things
19:29.52BotanicalPuppetmy changes just got "fixed" with them
19:30.03nicoli_sk
19:30.27BotanicalPuppetwith a working custom ui and working .myp resource folders made by users, i think modders will be in a wet dream
19:31.02BotanicalPuppetand the good part is, the "working" is in the court of modders now, not EA Mythic
19:31.05nicoli_swell they must have added new protections since beta as in beta, they didnt do anything to detect file modifications
19:31.25nicoli_seven when patching
19:31.36BotanicalPuppetoh, so it only updated the files the server said to?
19:31.49BotanicalPuppetwhereas 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.21nicoli_syeah
19:32.29BotanicalPuppetyeah...
19:32.43BotanicalPuppetwell, i've practically decided... my CustomUI will have only 2 functionalities
19:32.53BotanicalPuppet1) fix any red debug outputs to debug window
19:33.13BotanicalPuppet2) provide an API for "class inheritance", ie for intelligent hooking for functions or function containers.
19:33.30BotanicalPuppetthe latter is all it really needs
19:33.34BotanicalPuppetthe rest can be mods
19:34.17BotanicalPuppeti don't want bloat in CustomUI project... would be bad
19:34.24BotanicalPuppetaddons should be addons still
19:34.34BotanicalPuppetoh and 0) fix binary file ref's
19:38.22BotanicalPuppetso nice of EA Mythic to provide no docs on modding at all ;p
19:39.12nicoli_sdoes anyone?
19:39.15BotanicalPuppeti suppose it wouldnt matter, community knowledge would outstrip any halfass docs quickly
19:39.27BotanicalPuppetMicrosoft...sometimes...lol
19:39.49nicoli_severyone is just lucky people figured out the myp format a loooong time ago, so we could get a modding headstart
19:39.58BotanicalPuppetthat is true 100%
19:42.21BotanicalPuppetcan anyone say what the best program would be for making myps from the ground up? easymyp 1.2 or something else?
19:42.29nicoli_sthere isn't one
19:42.46nicoli_swe can't generate the metadata that we need
19:42.52Werelds(21:39:20) (BotanicalPuppet) i suppose it wouldnt matter, community knowledge would outstrip any halfass docs quickly
19:43.05Wereldsfor the api to have documentation, it needs to be A) finished, and B) working as intended
19:43.09nicoli_swe can only replace files, since apparently the metadata coesnt change
19:43.11Wereldsand atm, neither A nor B holds true
19:43.18nicoli_sdoesnt*
19:43.20BotanicalPuppetnicoli_s what do you mean "needed"
19:43.34BotanicalPuppeti don't want to make interface.myp gound-up
19:43.42BotanicalPuppeti want to make boomheadshotwav.myp
19:43.44BotanicalPuppetone wav in one myp
19:43.45BotanicalPuppethow?
19:43.53nicoli_sthats what i m saying you cant
19:44.01BotanicalPuppethmm ok but how so?
19:44.19nicoli_sfor one theres no app to do so, and youd have to figure out the algorithim the game uses for the metadata
19:44.31nicoli_sor, you could just try copying the metadata from some other file
19:44.39nicoli_sand see if that works
19:44.59BotanicalPuppetwell the metadata has 2 parts i care about exactly
19:45.05BotanicalPuppetfilename and datadelimiters
19:45.11nicoli_sit doesnt have filename
19:45.22nicoli_sit has a hashed version, but thats not the metadata
19:45.26nicoli_swe can generate filenames
19:45.29BotanicalPuppetoh ok ty...hrm
19:45.34nicoli_sbut the metadata we dont know what it is
19:45.35Wereldsthe file hashes we know how to do
19:45.42Wereldsjust the metadata
19:45.43nicoli_sits either 131 or 2 bytes and we have no idea what it is
19:45.50nicoli_s131 or 132*
19:46.00Wereldsnicoli_s
19:46.09Wereldsyou got a bunch of them at hand by any chance?
19:46.16BotanicalPuppethow does "interface/default/dood.dds" get that filename?
19:46.19Wereldsas in, metadata hashes with corresponding filenames?
19:46.25Eldanname hash
19:46.27Wereldsi don't have it at hand atm
19:46.27nicoli_snope, but i could write a program to strip some out
19:46.29BotanicalPuppeti haven't been working this angle
19:46.34Wereldsmeh nvm then
19:46.40Wereldsi'll stuff it in easymyp
19:46.42nicoli_sbotanical, what do you mean how does it get the filename?
19:46.51nicoli_syou mean how does it hash that filename?
19:46.58Wereldscuz i think the metadata will most likely say something about how to treat a file
19:47.06BotanicalPuppetwhen i reference that resource in the lua's, it is referenced by virtual filename
19:47.07Wereldsdid you look for any patterns between file types + metadata?
19:47.14nicoli_swell for one, im pretty sure its encrypted
19:47.23BotanicalPuppeti have not looked at myp format at all i'm learning
19:47.36nicoli_sor compressed with something other than zlib(what the rest of the files are compressed with)
19:47.46WereldsBotanicalPuppet, i'll explain in a pm
19:47.48nicoli_sme and chryso looked at it pretty extensively and could never figure out wtf it was for
19:47.50BotanicalPuppetk
19:48.13nicoli_si would imagine it probably coincides with the extra variables in the mft.myp files
19:48.31nicoli_sas the files in there list the hashes and sizes for each entry as well as other variables
19:48.41nicoli_swhich probably are contained either on the server, or in the metadata
19:48.49BotanicalPuppethmm, so adding .myps...modifying mft.myp's?
19:48.59nicoli_sg2g later
19:49.03BotanicalPuppeterr, the 1 mft.myp
19:49.04BotanicalPuppetok
20:00.30Felyza1 page done, and already bored with it... http://thewarwiki.com/wiki/API:StatusBar
20:04.41Wereldsi got bored of writing the documentation for libstats2 after 5 minutes Felyza, and that's my own friggin project :P
20:05.45Felyzai'm starting to think there's supposed to be a way to click player names... ChatWindow.OnHotSpotMouseOver
20:20.04Felyzahmm
20:20.25Felyzai need to test something, but i THINK i may have figured out a way to add keys to the keybindings page
20:21.21BotanicalPuppeti heard a similar report from someone modifying chosenshelper
20:21.27BotanicalPuppetdo you want their pastey
20:22.14Felyzasure
20:22.57Felyzai 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.55BotanicalPuppetdo you think i should report the no-eula hack as a bug?
20:25.02BotanicalPuppetor will i just get banned :x
20:25.37BotanicalPuppetna i'll just shaddup
20:25.50BotanicalPuppetdon't want to break everything else too in the .myp's for being filechecked
20:26.29BotanicalPuppetdelete the rogue interfacemyp and put it behind me:
20:30.56BotanicalPuppetbinding mod of CH: http://waruidev.pastey.net/98098
20:32.03Aiianethat doesn't actually add any new bindings
20:32.07Aiianeit just uses existing ones
20:32.24BotanicalPuppetwhat does it do to them
20:32.52BotanicalPuppetthe 1-48 bindings you mean right?
20:32.58Felyzawish me luck, going to try blowing it up
20:33.10Felyzatesting a few different things in the mod files
20:33.40Felyzaautoenabled, and ATTEMPTING to add hotkeys
20:33.50BotanicalPuppetdoes it succesfully change bind#48 from being keypress1 to keypress2?
20:34.39BotanicalPuppetif so... maybe no new bindings but...
20:34.46Felyzabtw, hi Aiiane!
20:34.49BotanicalPuppetdear god how much better a ChosensHelper could be ...
20:35.04AiianeBotanicalPuppet: yes, you can modify bindings on the fly
20:35.11BotanicalPuppetfanfuckintastic
20:35.12Aiianeand essentially make chosenhelper a 1-button-spam addon
20:35.14BotanicalPuppettyty
20:35.21FelyzaPLEASE don't
20:35.23Aiianehow do you think Binder works?
20:35.27BotanicalPuppethmm?
20:35.35FelyzaI REALLY don't want to see 1 button spammers hit play already
20:35.40BotanicalPuppetwell for one thing both optoins will always be in the mod, but go on
20:35.49AiianeFelyza: well, technically it's only 1-buttom spam for auras
20:35.50BotanicalPuppetAiiane..
20:36.01Aiianebut yeah, the concept sort of makes me sad
20:36.05BotanicalPuppetat 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.12FelyzaAiiane, it'd pave the way for 1 button BW's and the like
20:36.23FelyzaWOOT
20:36.26BotanicalPuppetgood?
20:36.28Felyzafigured out a new .mod toy
20:36.32Felyza<UiMod name="DebugTest" version="1.0" date="10/12/2008" autoenabled="false">
20:36.38Felyzadoes NOT load it by default
20:36.45BotanicalPuppethow do you load? :)
20:36.49Aiianeaddon window
20:36.54Felyzayep
20:36.57BotanicalPuppetohhh
20:36.57BotanicalPuppetok
20:37.01BotanicalPuppetcool
20:37.17Felyzafor debugging tools, i'm going to start autoenabled=false in them
20:37.17BotanicalPuppetstill no loading or unloading except for total load and shutdown yes?
20:37.24BotanicalPuppetya me too then
20:37.25Aiianecorrect BotanicalPuppet
20:37.44BotanicalPuppetumm... does it ready autoenabled every time or is it a savedvariable?
20:37.52BotanicalPuppeti'd assume every time but
20:38.05Felyzaprobably sets the default state of the enabled variable saved to the mod settings
20:38.21Felyzai'll tell you in a sec
20:38.22BotanicalPuppetu know what i'll do...
20:38.29BotanicalPuppeti'll just set the flag to false in my dev utils
20:38.45BotanicalPuppetor the opposite... i mean
20:38.51BotanicalPuppetmake them turnon the weird new toy
20:38.56Felyzayes, it sets the default state of the enabled variable in ModSettings.xml
20:39.08BotanicalPuppetgood spy
20:39.29BotanicalPuppetforum post imo :)
20:41.06BotanicalPuppetping .myp hackers
20:41.25BotanicalPuppetthe function that loads from file gets a list of .mod's
20:41.33BotanicalPuppetthose .mod's have the filenames of every other file loaded
20:41.36BotanicalPuppetso there's your filenames
20:42.17Felyza<Hotkey action="DebugTest.Hotkey" key="NONE"/> doesn't work
20:42.22BotanicalPuppetat least where the literal strings are stored
20:42.33BotanicalPuppetare in the mod and xml files
20:42.48BotanicalPuppetwith the mod files being loaded from a mod file list
20:43.13BotanicalPuppetuhh... how it finds the mod file list inside the myp ? *scratches head*
20:43.34WereldsBotanicalPuppet
20:43.39Wereldsthose are the ones we have already
20:43.42Werelds:P
20:43.50Wereldswell mostly
20:43.57BotanicalPuppetheh. so can we make new ones like the ones they made the same way?
20:44.03Wereldsthere's a few dev only files we haven't got a full path for yet
20:45.37AiianeFelyza: that's because actions aren't functions
20:45.51Aiianeas far as I can tell
20:46.33Felyzai'm trying to figure out how the hotkey tag works, sadly, all i have is keywords... nothing that says "it works"
20:50.00AiianeFelyza: well, it's not in any of the default UI as far as I can tell
20:50.28FelyzaIda told me about it, so I'm looking into what she had to say. ;)
20:59.08BotanicalPuppethas anyone tried doing a clean custom ui that merely saves _G recursively to a log? if not i should
20:59.40BotanicalPuppetie pretty print all the _G stuff that is there no matter what
21:09.02BotanicalPuppetcan anyone tell me what  <Texture name="EA_SquareFrame"                  file="Textures/EA_sqframe01_d5.dds" /> does
21:09.16BotanicalPuppeti understand the filename, but the path bugs me
21:09.52Aiianewhat do you mean?
21:10.02Aiianeall paths are relative from the module's base directory
21:10.12BotanicalPuppetthanks!!
21:10.38BotanicalPuppetinvaluable, saved me a headache :)
21:10.41Felyzaat least i found a reference for WindowRegisterCoreEventHandler finally
21:11.02Felyzanot a lot of help, but worth noting
21:11.51BotanicalPuppeti use 'find in files' in notepad++ very much... too much
21:12.03BotanicalPuppeti hate how it keeps changing the folder to search
21:12.50Felyzatextpad saves last settings
21:13.31BotanicalPuppetso we are in \interface\custom\eawin\text\somethin.dds ... we need to be in \interface\default\eawin\text\somethin.dds
21:13.43BotanicalPuppetrelative to eawin
21:13.58BotanicalPuppetstep back 2, in 2, and same text...
21:14.13BotanicalPuppet..\..\default\eawin\text\somethin.dds
21:14.47BotanicalPuppeti don't know regexp enough not to fubar them so i'll do them by hand
21:15.04BotanicalPuppet(per window)
21:16.43BotanicalPuppetbasically just add ../../Default/EA_<window>/ for most
21:18.22BotanicalPuppetf3 + ctrl-v its hot :)
21:19.04FelyzaL("string ")=wstring?
21:19.17BotanicalPuppetno
21:19.22BotanicalPuppeti don't believe so
21:19.30BotanicalPuppetL"string" prepocessed wstring
21:19.50BotanicalPuppetis there an L function? i donno
21:19.54BotanicalPuppetlua> type ( L )
21:19.54lua_botBotanicalPuppet: nil
21:19.57BotanicalPuppetna
21:22.54BotanicalPuppeti'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.03BotanicalPuppetit's now 5-10x the size and growing
21:23.09ckknightlol
21:23.13ckknightjust clone it
21:23.18BotanicalPuppetbut noone will see it
21:23.28ckknightI'll see it.
21:23.30BotanicalPuppetif it's just a clone
21:23.33ckknightand probably merge in
21:23.41BotanicalPuppetsubscribe to BotUtils
21:23.44BotanicalPuppetthat is all :P
21:23.46BotanicalPuppetMIT license
21:24.41BotanicalPuppetmy 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.51ckknightalright then
21:25.16BotanicalPuppetall MIT license cuz open source is how you do it...
21:27.21zariouswhats so cool about mit license?
21:28.04Eldankeeps it open source if i recall
21:28.51ckknightno, Eldan
21:29.06ckknightMIT is one of the least restrictive licenses available
21:29.37Eldanah
21:29.37ckknightthe only thing that'd be less restrictive would be something like WTFPL or Public Domain
21:29.46ckknightMIT basically says "do what you want as long as I get credit for what I did if you redistribute it"
21:29.49zariousthe copyright notice looks like bsd
21:30.00ckknightyea, 2-clause BSD is equivalent to MIT
21:30.06ckknightMIT is clearer, imo
21:34.51BotanicalPuppethey since you're here, what do you think about syndicating the CustomUI across code.google and curseforge?
21:35.15BotanicalPuppetit has everything in the Interface/Default folder
21:35.20BotanicalPuppetbut now in Interface/Custom and different
21:35.42BotanicalPuppetand minus the .dds, which are referenced back to ../../Default/
21:35.58BotanicalPuppeti like the look of code.google for just plain browsing code
21:37.51Aiianeum, what?
21:37.59BotanicalPuppetpost my project to two sites
21:38.01BotanicalPuppetgood/bad?
21:38.24Aiianeup to you
21:38.48BotanicalPuppetok thx... i will then.. just for this 1... everything else pure curseforge
21:39.06BotanicalPuppetcode.google will eventually prolly allow diffs between repositories if it doesn't already
21:39.14BotanicalPuppetand the interface.myp is just sitting there in its current ver
21:39.24BotanicalPuppetand past versions for that matter
21:39.51*** join/#waruidev jorgenpt (n=jorgenpt@tjer.no)
21:42.30zarioushey BotanicalPuppet did you ever find any good examples of scheduling implementation
21:42.43BotanicalPuppeteh no, but i'll put a simple one in BotUtils
21:42.55BotanicalPuppetfor i am the king of vaporware
21:43.49*** join/#waruidev Flisher (n=flisher@modemcable098.47-80-70.mc.videotron.ca)
21:43.51zariousanybody know of any good serach terms for one?
21:44.06BotanicalPuppetfifo queue schedule perl python
21:44.24BotanicalPuppetlua has a smaller codebase putting stuff on www
21:44.26FlisherAiiane: you are here?
21:45.00Aiiane?
21:45.26FlisherI was wondering if there was a way to "overload" an existing slash command with LibSlash
21:45.52FlisherI would need to intercept /logout, /camp and /quit since they doesn't trigger their related event. (unlike the ingame menu).
21:46.27FlisherI mean intercepting it but letting it continue to work.  if I register logout, the original thing doesn't work anymore.
21:46.29Aiianeyou could hook the same way libslash does
21:46.33BotanicalPuppeti think he's feature requesting conditional registration toggles?
21:46.36BotanicalPuppetin LibSlash
21:46.57BotanicalPuppethave a toggle to force override to other commands defined by system or something
21:47.04Aiianeno, he's not
21:47.07BotanicalPuppetok
21:47.13FlisherAiiane: 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.17AiianeFlisher: for what you want to do, just make your own hook
21:47.58FlisherWill keep the /cv stuff with libslash if it's present.  Will allow people relying on libslash menu or thing like that compatible :)
21:48.20Aiianelibslash is basically just for creating new slash commands
21:48.27Aiianeexisting slash commands should just be hooked normally
21:48.37Aiianebecause there's no danger of a collision there
21:48.53*** join/#waruidev mete (n=pear@193.43.249.169)
21:49.03BotanicalPuppetand i tend to favor a design decision that doesn't allow two addons to use one common / command both called from LibSlash
21:49.06Flisherhum, you mean hooking the result of /logout instead of hooking the chatwindows...
21:49.13Aiianeno
21:49.17AiianeI mean hooking the chatwindow
21:49.21Flisherok
21:49.45Aiianethere is no "result of /logout" ;)
21:50.13BotanicalPuppetbut, on the other hand, would it be so bad for say... more than one handler to exist for something like /debug ?
21:50.29BotanicalPuppetall called in a chain..
21:51.03Aiianewhy would it be bad?
21:51.09Aiianethat's how hooks are supposed to work
21:51.24BotanicalPuppetthere's no way though LibSlash for foo and foobar to register /debug is there?
21:51.45BotanicalPuppetoh i'm dum
21:51.56Aiianewhy the hell would you register /debug in libslash
21:51.56BotanicalPuppeti want foo and foobar to register /addondebug or something
21:52.05BotanicalPuppeti didn't think about the predefine sorry
21:52.08Aiianeand no, libslash only allows one registration of a slash command
21:52.15Aiianeit's designed to prevent collisions
21:52.18BotanicalPuppetthat's fine imo
21:52.44Aiianeconvention-wise, any addon should try to register both a 'short' slashcommand and a 'long' one
21:52.47BotanicalPuppetbut... but... can we get a LibSlashForRegisteredCmd("slashcmd") return registeredfunc ?
21:52.57Aiianethe long one being something > 6 characters that is 99.9% unique to that addon
21:53.05BotanicalPuppetthat would be nice for a lot of things
21:53.20AiianeBotanicalPuppet: don't hook libslash ><
21:53.26BotanicalPuppetwhat do you mean?
21:53.44Aiianewhy would you need the registered function for a slash command
21:53.45BotanicalPuppetif someone registered a command, i want to know what the name of the function is
21:53.52BotanicalPuppetfor example
21:53.55Repo10influencetext: 03Elder82 * r39 / (2 files in 1 directory): * Added option to display current chapter
21:53.57Repo* Added WaaaghBar support
21:54.07BotanicalPuppethow do i know if my addon registered that command to that function if its already registerd, or someon else?
21:54.21AiianeRegisterSlashCmd returns a success code
21:54.33Aiianeyou can also explicitly check IsSlashCmdRegistered()
21:54.37BotanicalPuppetyes i do that
21:54.38Aiianebefore trying to register it
21:54.42BotanicalPuppetbut i want to know WHO did it
21:54.46Aiianewhy?
21:54.47BotanicalPuppetif it was me, bob, or marley
21:54.53BotanicalPuppetthere is one #1 reason
21:55.16Aiianeif you get a success from RegisterSlashCmd, then you registered it
21:55.18Aiianeotherwise, you didn't
21:55.23Aiianeyou shouldn't care about what other addons did
21:55.28BotanicalPuppethttp://war.curseforge.com/projects/slashclick/
21:55.40BotanicalPuppetthis tries to extend LibSlash without hurting it
21:55.48BotanicalPuppetgiving it a GUI wrapper letting people do their stuff with clicks
21:56.00BotanicalPuppetbeen wanting to talk to you about it
21:56.02Aiianeyou can involve slash commands via the slash() global
21:56.12Aiianeyou don't need to know what function is registered to them
21:56.22Aiiane*invoke
21:56.28BotanicalPuppetthat's entirely true
21:57.08Repo10influencetext: 03Elder82 04v1.2.6 * r40 : Tagging as v1.2.6.
21:58.32BotanicalPuppetok 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.54BotanicalPuppethowever, 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.57Aiianewhat 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.12Aiianeof registered slash commands
21:59.12BotanicalPuppetand that would be more relevant to SlashClick
21:59.21Aiianeer
21:59.24Aiianeresolve collisions what?
21:59.35BotanicalPuppetsay two addons want to do some command
21:59.40BotanicalPuppeti dunno call it /c
21:59.48zariousi already asked for that! hell i'll write it myself, i'd be a simple function
21:59.49Aiianefirst one to register it gets it
21:59.51Aiianeperiod
21:59.53BotanicalPuppetthey both want to hear the args to that
22:00.06Aiianezarious: I'll add it at some point
22:00.12BotanicalPuppetthe next one can unregister and reregister????
22:00.17BotanicalPuppetleaving 1st one in the dark
22:00.24BotanicalPuppetwith no way for the 2nd one to play nice and register at all
22:00.27AiianeBotanicalPuppet: it /can/, but it shouldn't
22:00.36BotanicalPuppet<PROTECTED>
22:01.10Aiianeif I had a way to only allow the addon that registered a slash to unregister it, I'd implement that
22:01.22Aiianeas it is... don't unregister slash commands you didn't register
22:01.28Aiianeor I will come beat you over the head with a mop
22:01.46zariouswhat if they have a helmet on?
22:01.53zariousyou're not gonna do much with a mop
22:01.53BotanicalPuppeti do it's called LibSlashRegisterCmdForced, which I use with LibSlashRegisterCmdSlacked..my own declarations
22:01.56Aiianethen I will use the mop to remove the helmet first
22:01.57BotanicalPuppeti will do this
22:02.11BotanicalPuppetso.. it would be nice if i could make Forced freindlier
22:02.19AiianeBotanicalPuppet: if you distribute an addon that unregisters other addons' slash commands
22:02.21AiianeI will a) hurt you
22:02.25Aiianeb) delete it
22:02.30Aiianec) delete the rest of your mods from curse
22:02.32Aiianeso don't do it.
22:02.49BotanicalPuppetfix your lib ?
22:02.58BotanicalPuppeti wont until then
22:03.04AiianeNo, you SHOULD NOT be trying to use a slash command that another addon has claimed
22:03.11BotanicalPuppetbut it has issues if you have to be that way about wanting to do something with it
22:03.31Aiianewhy are you trying to "Steal" slash commands in the first place
22:03.51BotanicalPuppethmm.. i'll take it out for now
22:03.55BotanicalPuppetonly Slacked
22:04.01BotanicalPuppetsince there's no good thing to come of it now
22:04.04Aiianeno, seriously - why are you trying to do that in the first place
22:04.26BotanicalPuppeti want the user to be guaranteed that /fhd leads to FunctionHookDebug
22:04.46Aiianethat should be up to the user
22:04.47BotanicalPuppetother stuff like /rl i could care less if it really is mine
22:04.48Aiianenot to your addon
22:05.11Aiianeif 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.22BotanicalPuppeti should slow down
22:05.34BotanicalPuppetand try for a different request.
22:05.56AiianeThe point is, no addon has 'special' priority for slash commands
22:06.02BotanicalPuppetthat's fine, i agree
22:06.05Aiianeyour addon is not more important than any other addon
22:06.09BotanicalPuppetagreed
22:06.13BotanicalPuppeti have a different idea
22:06.18BotanicalPuppetthat more closely says what i'd like
22:06.27Aiianethus, if 2 addons want a slash command, they both have equal rights, and thus the tiebreaker is which registered it first.
22:06.35BotanicalPuppetdoesn't have to break the tie
22:06.37BotanicalPuppetis what i'd like
22:06.39BotanicalPuppethear me out
22:07.04BotanicalPuppetinstead of just having table_registry_of_slash_cmds = { "slash1" = func1, "slash2" = func2, "slash3" = func3 }
22:07.17BotanicalPuppethave instead of just having table_registry_of_slash_cmds = { "slash1" = {func1, func2}, "slash2" = func2, "slash3" = func3 }
22:07.20Aiianeno.
22:07.27BotanicalPuppetthat is about it, with some changes that could be done in a few hours
22:07.32BotanicalPuppetyes :'(
22:07.42Eldanthis is intense O.O
22:08.05AiianeThat's both a) confusing to the end user when one slash command triggers multiple (possibly undesired) results
22:08.17Aiianeand b) unncessary.
22:08.27Aiiane*unnecessary
22:08.39BotanicalPuppeta) 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.50BotanicalPuppeta) is a total presumption, so is b)
22:08.55Aiianethe point is, 2 addons *shouldn't* be using the same slash command
22:08.59Aiianeregister a different damn slashcommand ffs
22:09.19BotanicalPuppetand what if i just wanted to listen on all the slash cmds and do something behind the scenes?
22:09.21Aiianeand no, it's not presumption, it's common sense
22:09.37BotanicalPuppetcommon sense is a close relative and often involved with presumptoin
22:09.44Aiiane~lart BotanicalPuppet
22:09.44purldoes a little 'renice 20 -u BotanicalPuppet'
22:09.45BotanicalPuppetthey get together on weekends and do the nasty...
22:10.05BotanicalPuppeti'm really sorry the way i've suggested this
22:10.13Aiianeno, but seriously
22:10.17BotanicalPuppetfor such a useful and mostly issue-free feature, i've done a bad thing for it
22:10.19Aiianeif you want to mess with things like that
22:10.21Aiianethen hook libslash
22:10.27Aiianebut I'm not going to support it
22:10.45Aiianebecause it's really a bad idea
22:10.49BotanicalPuppetdo you mind me making LibSlashHooked and making it compat with regular LibSlash?
22:10.58Aiianeyes
22:10.59AiianeI do
22:11.01BotanicalPuppetyouDO?
22:11.06BotanicalPuppetare you serous
22:11.37BotanicalPuppethow about calling it LibSlashForkHookedInstallIfYouWantThisFunctionality
22:11.46Aiianeno, the point is
22:11.47BotanicalPuppetfree fuckin world
22:11.49Aiianeit's *BAD* functionality
22:12.04BotanicalPuppetok, it's your project management
22:12.42BotanicalPuppetwhy the threats though?
22:12.55Aiianebecause you don't seem to get the point
22:13.00Repo10influencetext: 03Elder82 * r41 / (2 files in 1 directory): * Added option to replace default influence bar tooltip
22:13.06Repo10influencetext: 03Elder82 04v1.2.7 * r42 : Tagging as v1.2.7.
22:13.07BotanicalPuppetlook, SecondLib and FirstLib
22:13.10BotanicalPuppetfirstLib came first
22:13.15BotanicalPuppetsecondLib doesn't break
22:13.17BotanicalPuppetuse whichever you like
22:13.21BotanicalPuppetstandalone insall
22:13.23BotanicalPuppet.theend
22:13.32Aiianeexcept that secondlib is by its very definition broken
22:13.42BotanicalPuppetno it isn't
22:13.47BotanicalPuppetworking as 100% intended
22:13.54Aiianethe concept is broken
22:13.55Aiianenot the code
22:14.10BotanicalPuppet"/blah x y z" is an event, people register for it
22:14.16BotanicalPuppetit's not code, it's an event
22:14.41Aiianeno. the default slash commands are events *without collisions*
22:14.44Aiianeer
22:14.47Aiianethe libslash ones are
22:15.00Aiianethe entire point of libslash is to prevent those collisions
22:15.02BotanicalPuppetyeah but you are treating "/blah" like BlahFunc() when it's not
22:15.09Aiianeexcept it is
22:15.24BotanicalPuppetthe point of LibSlashForked is to let people keep track of who is subbing these events
22:15.28BotanicalPuppetand add themselves to subs if they like
22:15.47Aiianeonce again, that's a bad paradigm to follow
22:15.53BotanicalPuppetwe disagree
22:15.58Aiianeif you don't give a crap about collisions, hook the window yourself
22:16.00BotanicalPuppeti have addons to write
22:16.06Aiianenothing's stopping any addon from doing that
22:16.10Aiiane-
22:16.12Aiiane_-
22:16.13FelyzaYAY
22:16.42Aiianelet me see about adding that list api zarious
22:17.11FelyzaAiiane, 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.25jorgenpthaha :p
22:17.36Flisherslash 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.47FelyzaSo should he try to release a LibSlashHooked, it wouldn't work, and any attempt to register a project = violation of license
22:18.00Eldanwould 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.01AiianeFelyza: No, it's going to stay as is
22:18.13FelyzaSigh
22:18.22FelyzaHe needs to stick entirely to writing vaporware
22:18.37Aiianeif 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.48AiianeI'll mind, but it's not my decision to make
22:19.31Flisherany open source licence require auriginal author to reuse code?
22:19.40FelyzaWell, 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.09Felyza~aiiane
22:20.09purlaiiane is probably an Angel of UI Goodness
22:20.46Felyzasigh
22:20.50Aiianezarious: this look like it would serve your purposes?
22:20.51Aiianefunction LibSlash.GetSlashCommandList()
22:20.51Aiiane<PROTECTED>
22:20.51Aiiane<PROTECTED>
22:20.51Aiiane<PROTECTED>
22:20.51Aiiane<PROTECTED>
22:20.53Aiianeend
22:21.51Flisherhow can a user type wslashcommand?
22:22.15Aiianewslash/slash are transparent to the end user
22:22.24Aiianeit's just a matter of what the handler function gets passed
22:22.27Aiiane(string vs wstring)
22:23.04Felyzai need some relatively easy vaporware to play with
22:23.21AiianeFelyza: did you ever get that addon for announce keeps under attack written?
22:23.37FelyzaNo, someone else beat me to it, and they did a better job than I can do
22:23.54Flisherthat addons dump 50 line of text... we need a graphical keep thing :)
22:24.09AiianeFelyza: hmm, did they?
22:24.13Aiianelink me the addon
22:24.20Flisher@project keepwatch
22:24.20RepoFlisher: No project found that matches 'keepwatch'
22:24.23Flisher@project keepwatcher
22:24.24RepoFlisher: http://war.curseforge.com/projects/keepwatcher/. Keep Watcher. Game: WAR. Leader: Tsolval. Updated: 6 days ago
22:24.29FelyzaI've seen screenshots that include it, where they get it, i don't know
22:24.44Flisherthat a text output thing.
22:24.57FelyzaAh, there's another one somewhere, not on curse then
22:25.14AiianeWhat I'm meaning is a GUI window that will pop up and stay there (until dismissed) when *your* keep is under attack
22:25.31Aiianeand preferably, display the attack status as well (door under attack, lord under attack)
22:26.03FelyzaRight now, with poking at it, I'm finding its only showing 'keep lord' under attack, even if its only the front doors
22:26.13FlisherAPI give access to "guild/alliance keep"?
22:26.23AiianeFelyza: that's because you don't own a keep, most likely
22:26.30Aiianethe messages for claimed keeps are more informative
22:26.35FelyzaAh
22:26.37AiianeI can get you a screenshot, one sec
22:29.06Aiianeat least, I thought I had one here... blah
22:31.14*** join/#waruidev Sores (i=Sores@92.254.245.46)
22:31.26AiianeHehe Undine :)
22:32.15Felyzareally 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.42Undineyeah, 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.46Repo10libslash: 03Aiiane * r35 / (2 files in 1 directory):
22:32.47RepoAdded 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.13AiianeFelyza: at the top of both files
22:33.15Aiianejust do
22:33.22Aiianeif not MyAddon then MyAddon = {} end
22:33.33Aiianethus whichever file loads first will initialize the table
22:33.36Felyzak
22:33.37Aiianeand the other file won't overwrite that
22:33.55zariousaiiane 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.57FelyzaI was wondering how to stick large tables in an include
22:34.02Undinethat said, i've seen parser libraries that basically send text to every registered object until one reports a success
22:34.52Aiianesure; but here the definition of success is very straightforward
22:35.00Aiianeeither the command belongs to an addon or it doesn't
22:35.23Aiianeargument failure is completely within the realm of the addon's handler
22:35.53Aiianebasically, the 1:1 addon:slash mapping is a paradigm that really works best left as-is
22:36.01Undinesoon 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.02zariousim going to assume that you put return false etc into the addslash commands?
22:36.40Aiianezarious: yes, any failure case returns false
22:36.51Undinei need to sort out the three overlapping tooltips I have
22:36.58Aiiane(and will also output a message to debug)
22:37.20zariousyeah, 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.08Aiianelike 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.19Aiianefor instance, Squared registers /sqr and /squared
22:38.37Aiianealertfilter actually registers 3: /af, /afilter, and /alertfilter
22:43.09Flishercv now register /cv and /charview
22:43.56UndineI like cv. It highlighted my server's broken name :)
22:45.50Flisherthere is a problem with something?
22:46.05Flisheri mean: I have to fix something?
22:46.17Undineno. my server magically changed its name for 2/3 days
22:46.31UndineI got confused as ClosetGnome lost its settings
22:46.42Undinethen I saw cv was showing my chars twice, once for each server name
22:46.44Flisherlol
22:47.08Undinegoa eh? whacha gonna do!
22:47.13FlisherAiiane: this would be a way to go for non-libslash thing in CV? http://waruidev.pastey.net/98110
22:48.10Aiianethat looks about right, Flisher
22:48.29FlisherStill using LibSlash for everything else :)
22:51.07Repo10charview: 03Flisher * r65 / (2 files in 1 directory):
22:51.08Repo-1.31 - Reintroduced LibSlash handler, fixed all slashcmd issue
22:51.10Repo-Fixed the version number displayed at the top of the CV windows
22:51.34Flisherit's me or they removed the web tagger on curseforge?
22:53.23Repo10charview: 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.16Aiianeno Flisher
22:56.22Aiianeif you got to repository
22:56.30Aiianethen the upper-right menu will have the tag option in it
22:56.35FlisherGotcha :)
22:59.03SoresIs there someway to copy everything from the debug window, out to a text document or something
22:59.18Soresfor easier reading, trying to read through some data i've gotten from GetInventoryItemData()
22:59.50Soresor possible have the debug window logged
23:00.05nicoli_swhy not just print it in your chat and read it in the chat log?
23:01.32Soresthat could do
23:03.04AiianeTextLogSetIncrementalSaving("UiLog", true, "logs\uilog.log")
23:03.16Aiianewill dump out the contents to WARDIR
23:03.28Aiiane*WARDIR\logs\uilog.log every so often
23:04.48Flisheris "nem" here nemes on curseforge?
23:05.03SoresAiiane: sweet, thanks
23:12.29SoresAiiane, you wouldn't happen to know what all rarity values stand for on items, for example item rarity = 1 is? 2, etc
23:12.38Aiiane1 is grey
23:12.51Aiianeand each step up from that is the next level of rarity
23:12.55Soresokey
23:13.01Aiiane1 grey, 2 white, 3, green, etc
23:13.10Soresok
23:13.24Aiiane4 blue, 5 purple, 6 orange
23:13.25Aiianeiirc
23:13.34Soresdoes the same count for crafting mats?
23:13.41AiianeI would assume so
23:13.41Soresor does crafting mats have other rarity values
23:13.53Flishernrarity, junksell or a few other addons might help ya.  document the wiki if's it not already done.
23:14.06Flisherthey have profession value
23:14.28SoresFlisher, aye will do, i am trying to go through GetInventoryItem() tables, to see all usefull information
23:14.37Soresgoing to write everything down, since it will come in handy
23:14.54FelyzaSores, check out interface/default/easystem_utils/source/gamedefs.lua if you extracted the interface.myp file
23:15.11SoresFelyza, aye have it extracted, well downloaded from the wardiff site
23:15.41Felyzaextracting is always sure to have latest, after a patch, have to wait on wardiff to update
23:16.15Eldancould i get a hand with rounding output?
23:16.31Eldanive made a function i think should work, but doesnt seem to
23:16.33Eldanhttp://waruidev.pastey.net/98115
23:16.36FelyzaSores, check out the private query
23:17.12*** join/#waruidev Huxton (n=kvirc@host-84-9-46-3.dslgb.com)
23:18.11SoresFelyza, have done, thanks mate.
23:19.00Repo10huduf: 03Metaphaze * r2 / (9 files in 1 directory): Initial Import
23:21.55Repo10huduf: 03Metaphaze 04alpha release * r3 : Tagging as alpha release.
23:22.36Flisheris there a function to validate if an addon is loaded, or I can rely on "if (NRarity) then" ?
23:27.30AiianeEldan: better to just use format
23:29.03Aiianelua> a=25.666 print(string.format("%0.2f", a))
23:29.03lua_botAiiane: 25.67
23:29.09Aiianelua> a=25.666 print(string.format("%0.1f", a))
23:29.10lua_botAiiane: 25.7
23:29.48Aiianethere's a wstring version too, you just have to pass it a wstring format string
23:29.54Aiianei.e.
23:30.02Aiianea=25.666 print(wstring.format(L"%0.1f", a))
23:40.22Eldanmuch better :D
23:42.30Huxtonok, 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.53Huxtonwhen I try to do /script GuildVaultWindow.ToggleShowing() it doesnt work
23:43.14Huxtonjust wondering if anyone knows how I can get it to pop up please :)
23:45.31WobinF95C465A_C970E751192A422F.txt
23:45.46Wobin688C4919_C8CF1C53BA1A7082.xml
23:45.53Wobinare the two unhashed guildvault files
23:45.58Wobinlua and xml respectively
23:46.25WobinGrab EasyMYP and extract your interface.myp
23:46.41Wobinit won't be in the direct folder layout, but it will be in the txt and xml folders
23:47.06Huxtonthanks, so much :)
23:47.58Flisheris there a function to validate if an addon is loaded, or I can rely on "if (NRarity) then" ?
23:48.14Wobinthat works just as well
23:48.28Wobinotherwise you set it as a dependancy
23:51.31Flisherbut 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.37Repo10libgui: 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.44WobinFlisher: so the if check will be fine
23:53.19Aiianeyou can't rely on it in OnInitialize
23:53.26Aiianebut 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.51Wobinckknight: why doesn't cf and c.com remember my login status?
23:55.15ckknightwhat browser you have?
23:55.54Flisheraii: thank
23:57.20Aiianedinner, back in a bit
23:59.05Wobinckknight: mix of either Chromium or FF
23:59.10ckknighthrm
23:59.11ckknightodd

Generated by irclog2html.pl Modified by Tim Riker to work with infobot.