Samapico Posted December 31, 2009 Author Report Posted December 31, 2009 hmmm, and how does it get the SDL_net and SDL_image libraries? and zlib I had to do this: Tried both relative and absolute paths for the aedGui thing... Still not quite sure what I'm doing, going by trial and error Quote
»jabjabjab Posted December 31, 2009 Report Posted December 31, 2009 can someone tell me in english what is happening right now? Quote
Bak Posted December 31, 2009 Report Posted December 31, 2009 samp is trying to compile the front end but having some trouble. Samp, the files it needs to find are those named like "libaedGuiBak.a", which for me is located in "C:\code\discretion\ss-discretion\client\trunk\disc_client\deps\aedGUI-0.1.8a-bak\Release" so for the directory I put "C:\code\discretion\ss-discretion\client\trunk\disc_client\deps\aedGUI-0.1.8a-bak\Release", and for the library I put "aedGuiBak" and the "lib" and ".a" are inferred. Make sure the .a files exist in the proper directory, and the .a file is named correctly. your configuration is release, make sure you're building the release version and not the debug version (which has its own settings). What are the first few errors that you receive? Quote
Samapico Posted January 1, 2010 Author Report Posted January 1, 2010 The library missing is the only error I receive; In my [...]\deps\aedGUI-0.1.8a-bak\Release, I only have the file libaedGUI-0.1.8a-bak.dll and empty folders... ? Could there be something missing in the SVN? Quote
Bak Posted January 2, 2010 Report Posted January 2, 2010 yes as mentioned before, the svn did not include binaries since people were complaining. I added it now just for you Quote
Samapico Posted January 2, 2010 Author Report Posted January 2, 2010 I did try to build that aedGuiBak project, but had hundreds of errors, so... It builds now, yayAny way to quickly have every build module placed in the bin folder, instead of having to move them one by one from release folder to there? Or do I need to change each project setting one by one :/Edit: for /D %%x in (*) do copy "%%x\Release\%%x.so" "..\..\bin\Modules\%%x\%%x.so" Also, you can remove the binaries from source control now if you want thanks And can I get some SVN access naow? Quote
Samapico Posted January 2, 2010 Author Report Posted January 2, 2010 jfasdjkl;fjaekljf... can't get the cskinviewer project to create Discretion.exe anywhere... what the fuck? ... oh... and it seems the other projects for the modules are also supposed to put the build in the bin folder, but they are not, they just put it in Release... this eclipse is being weird and somewhat annoying :@ Quote
Bak Posted January 2, 2010 Report Posted January 2, 2010 Yeah I have my output paths setup to build right into the Modules// folder attach the source for your final module (and the settingshandler / animations) and I'll integrate it into the main source tree, then we'll get you svn write access Quote
Samapico Posted January 2, 2010 Author Report Posted January 2, 2010 Why the hell isn't my eclipse building .so's at the correct place then? And WHY isn't it building Discretion.exe AT ALL???!?!?! GADJFAKDHGAJKDHFGA I set my workspace in src\Modules , so I could import all your projects, so they all had the same settings... GRRRRRRRRRRRRRR Quote
Bak Posted January 2, 2010 Report Posted January 2, 2010 I think my workspace directory is client/src, although the build paths should be relative to the project output directory. The trick to figuring out where the output is going is to look at the console output gcc statement. the -o flag determines the output location. What is the output statement when you build cskinviewer? For example, when I build animations I see: g++ -DHACK_EXTERNALS -I../.. -O3 -Wall -c -fmessage-length=0 -oAnimations.o ..\Animations.cpp...g++ -s -shared -o..\..\..\..\bin\Modules\Animations\Animations.so Animations.oThe first line is building the .o binary, the next is linking the .o binary into the .so shared library The directory is relative to is the project output directory, "disc_client\src\Modules\Animations\Release". So ..\..\..\.. takes me up 4 directories to disc_client, then bin takes me into the binary directory, then Modules/Animations/Animations.so is the final location and name. Quote
Samapico Posted January 2, 2010 Author Report Posted January 2, 2010 g++ -I../../../Modules/ -IC:\MinGW\include\zlib-1.2.3 -IC:\MinGW\include\SDL -I../../../../deps/aedGUI-0.1.8a-bak/include -O3 -Wall -c -fmessage-length=0 -oSettings.o ..\Settings.cppg++ -LC:\MinGW\lib\SDL_image-1.2.10 -LC:\MinGW\lib\SDL_net-1.2.7 -LC:\MinGW\lib\zlib-1.2.3 -LC:\MinGW\lib -LD:\Sam\Prog Projects\Discretion\client\trunk\disc_client\deps\aedGUI-0.1.8a-bak\Release -L../../../../deps/aedGUI-0.1.8a-bak/Release -L../../../../deps/freetype-2.3.5/objs -o..\..\..\Modules util.o updates.o stringconstants.o profilegui.o optionsgui.o menu.o main.o gui.o graphics.o ZoneList.o SubspaceEncryption.o Settings.o ProcessManagement.o Pinging.o Packets.o LittleEndian.o DirectoryConnection.o -lmingw32 -lzdll -lSDLmain -lSDL -lSDL_net -lSDL_image -laedGuiBakBuild complete for project cskinviewerTime consumed: 5625 ms. Hmmm, notice how it doesn't output any .exe?! I also did a search through the whole thing, and there was indeed no discretion.exe file. I even tried with an absolute path for artifact name, still nothing :/Also, obviously, the project compiles with 0 errors Animations project:g++ -DHACK_EXTERNALS -I../.. -O3 -Wall -c -fmessage-length=0 -oAnimations.o ..\Animations.cpp[...]g++ -s -shared -oAnimations.so Animations.oBuild complete for project AnimationsTime consumed: 2578 ms. Even though the options at Properties -> C/C++ Build -> Settings -> Build Artifact are:Artifact Type: Shared LibraryArtifact name: ../../../../bin/Modules/Animations/AnimationsArtifact extension: so Quote
Bak Posted January 2, 2010 Report Posted January 2, 2010 It looks like it's trying to output a file named "Modules" -o..\..\..\Modules What are your build artifact settings (here's mine)? http://img.photobucket.com/albums/v622/bak2007/cskin_out_settings.png **** Build of configuration Release for project cskinviewer **** **** Internal Builder is used for build ****g++ -L../../../../deps/freetype-2.3.5/objs -L../../../../deps/aedGUI-0.1.8a-bak/Release -o..\..\..\..\bin\Discretion.exe util.o updates.o stringconstants.o profilegui.o optionsgui.o menu.o main.o gui.o graphics.o ZoneList.o SubspaceEncryption.o Settings.o ProcessManagement.o Pinging.o Packets.o LittleEndian.o DirectoryConnection.o -lmingw32 -lzdll -lSDLmain -lSDL -lSDL_net -lSDL_image -laedGuiBakBuild complete for project cskinviewerTime consumed: 978 ms. That's really strange with the animations project. Is there any chance you're viewing the Release settings and building the Debug version, or vice versa? Quote
Samapico Posted January 2, 2010 Author Report Posted January 2, 2010 There's only a release configuration... It looks like it's trying to output a file named "Modules"hmm... and modules is an existing folder there... Ok, I went back in the options, and re-set everything, to (hopefully) wake eclipse up and make it update some internal settings or whatever... g++ -LC:\MinGW\lib\SDL_image-1.2.10 -LC:\MinGW\lib\SDL_net-1.2.7 -LC:\MinGW\lib\zlib-1.2.3 -LC:\MinGW\lib -LD:\Sam\Prog Projects\Discretion\client\trunk\disc_client\deps\aedGUI-0.1.8a-bak\Release -L../../../../deps/aedGUI-0.1.8a-bak/Release -L../../../../deps/freetype-2.3.5/objs -oDiscretion.exe util.o updates.o stringconstants.o profilegui.o optionsgui.o menu.o main.o gui.o graphics.o ZoneList.o SubspaceEncryption.o Settings.o ProcessManagement.o Pinging.o Packets.o LittleEndian.o DirectoryConnection.o -lmingw32 -lzdll -lSDLmain -lSDL -lSDL_net -lSDL_image -laedGuiBakBuild complete for project cskinviewerTime consumed: 515 ms. That's one step further... but like all the other projects, it still puts the built item in the release folder... Atleast I got the built exe now... I could make my .bat file run post-build and it would copy the modules where I want them.. Quote
Samapico Posted January 2, 2010 Author Report Posted January 2, 2010 Weeee, I can finally test my stuff properly... Is there anything particular to do with the settingshandler after updatesetting? cause... I do this for each image: lvzImage->imageKey = getKeyForImage(lvzImage); //Register a UniqueImage sh->updateSetting("Images", (lvzImage->imageKey + "Path").c_str(), lvzImage->imageName.c_str()); snprintf(buf, 64, "(%i,%i)", lvzImage->framesX, lvzImage->framesY); sh->updateSetting("Images", (lvzImage->imageKey + "Frames").c_str(), buf); Then I do this for each object: sh->updateSetting("Animations", (i->objectKey + " Unique Image").c_str(), lvzImage->imageKey.c_str()); snprintf(buf, 16, "%i", lvzImage->animationTime); sh->updateSetting("Animations", (i->objectKey + " Animation Milliseconds").c_str(), buf); Then I show the animation: animation = anim->playTimedLoopingAnimation(objectKey.c_str(), objectLoc.x, objectLoc.y, false, objectLayer, displayTime); But I get this when I run it:Image definition 'Tour1-2 torche' added (15,2,1200)lvz_castleobj2_obj31 ONERROR: Setting must be exist and be positive, Animations::lvz_castleobj2_obj31 Unique Image=?0? in function getAnimationSettings, on line 207 in file..\Animations.cppERROR: Error getting image handle for , Is it defined in Images::Path? in function getGeneralImageHandle, on line 60 in file ..\UniqueImage.cppERROR: Setting must be exist and be positive, Animations::lvz_castleobj2_obj31 Animation Milliseconds=?-2147483648? in function getAnimationSettings,on line 207 in file ..\Animations.cppI get this for each and every object to be shown... However, the settings appear to be existing, because after loading the lvz's, I use writeSettings to output [images] and [Animations]: ; This file was automatically generated by using SettingsHandler::writeSettingsFile ;;; Automatically Generated[images]audit shipframes = (1, 1)audit shippath = audit_shipaudit weaponframes = (1, 1)audit weaponpath = audit_weaponlvz_castleobj2_img0frames = (15,2)lvz_castleobj2_img0path = Tour1-2 torchelvz_castleobj2_img10frames = (1,1)lvz_castleobj2_img10path = Tour2-2lvz_castleobj2_img11frames = (1,1)lvz_castleobj2_img11path = Tour2-FU1lvz_castleobj2_img12frames = (1,1)lvz_castleobj2_img12path = Tour2-FU2lvz_castleobj2_img13frames = (1,1)lvz_castleobj2_img13path = Tour2-FU3lvz_castleobj2_img14frames = (1,1)lvz_castleobj2_img14path = MainFOOlvz_castleobj2_img15frames = (1,1)lvz_castleobj2_img15path = MainFOlvz_castleobj2_img16frames = (1,1)lvz_castleobj2_img16path = MainFUlvz_castleobj2_img17frames = (1,1)lvz_castleobj2_img17path = MurOuestlvz_castleobj2_img18frames = (1,1)lvz_castleobj2_img18path = MurOuest-FUlvz_castleobj2_img19frames = (1,1)lvz_castleobj2_img19path = floor1lvz_castleobj2_img1frames = (15,2)lvz_castleobj2_img1path = Tour1-2 torchelvz_castleobj2_img2frames = (15,2)lvz_castleobj2_img2path = Tour1-2 torchelvz_castleobj2_img3frames = (15,2)lvz_castleobj2_img3path = Tour1-2 torchelvz_castleobj2_img4frames = (1,1)lvz_castleobj2_img4path = Tour1-1lvz_castleobj2_img5frames = (1,1)lvz_castleobj2_img5path = Tour1-2lvz_castleobj2_img6frames = (1,1)lvz_castleobj2_img6path = Tour1-FU1lvz_castleobj2_img7frames = (1,1)lvz_castleobj2_img7path = Tour1-FU2lvz_castleobj2_img8frames = (1,1)lvz_castleobj2_img8path = Tour1-FU3lvz_castleobj2_img9frames = (1,1)lvz_castleobj2_img9path = Tour2-1lvz_disc_test_img0frames = (10,6)lvz_disc_test_img0path = systemlvz_disc_test_img1frames = (10,4)lvz_disc_test_img1path = boomplayerlistspecframes = (1, 1)playerlistspecialframes = (1, 1)playerlistspecialpath = ol_playerlist_specialplayerlistspecpath = ol_playerlist_spec ; This file was automatically generated by using SettingsHandler::writeSettingsFile ;;; Automatically Generated[Animations]lvz_castleobj2_obj0 animation milliseconds = 1000lvz_castleobj2_obj0 unique image = lvz_castleobj2_img14lvz_castleobj2_obj1 animation milliseconds = 1000lvz_castleobj2_obj1 unique image = lvz_castleobj2_img19lvz_castleobj2_obj10 animation milliseconds = 1000lvz_castleobj2_obj10 unique image = lvz_castleobj2_img19lvz_castleobj2_obj11 animation milliseconds = 1000lvz_castleobj2_obj11 unique image = lvz_castleobj2_img19lvz_castleobj2_obj12 animation milliseconds = 1000lvz_castleobj2_obj12 unique image = lvz_castleobj2_img19lvz_castleobj2_obj13 animation milliseconds = 1000lvz_castleobj2_obj13 unique image = lvz_castleobj2_img19lvz_castleobj2_obj14 animation milliseconds = 1000lvz_castleobj2_obj14 unique image = lvz_castleobj2_img19lvz_castleobj2_obj15 animation milliseconds = 1000lvz_castleobj2_obj15 unique image = lvz_castleobj2_img19lvz_castleobj2_obj16 animation milliseconds = 1000lvz_castleobj2_obj16 unique image = lvz_castleobj2_img4lvz_castleobj2_obj17 animation milliseconds = 1000lvz_castleobj2_obj17 unique image = lvz_castleobj2_img5lvz_castleobj2_obj18 animation milliseconds = 1000lvz_castleobj2_obj18 unique image = lvz_castleobj2_img9lvz_castleobj2_obj19 animation milliseconds = 1000lvz_castleobj2_obj19 unique image = lvz_castleobj2_img10lvz_castleobj2_obj2 animation milliseconds = 1000lvz_castleobj2_obj2 unique image = lvz_castleobj2_img19lvz_castleobj2_obj20 animation milliseconds = 1000lvz_castleobj2_obj20 unique image = lvz_castleobj2_img15lvz_castleobj2_obj21 animation milliseconds = 1000lvz_castleobj2_obj21 unique image = lvz_castleobj2_img17lvz_castleobj2_obj22 animation milliseconds = 1000lvz_castleobj2_obj22 unique image = lvz_castleobj2_img17lvz_castleobj2_obj23 animation milliseconds = 1000lvz_castleobj2_obj23 unique image = lvz_castleobj2_img17lvz_castleobj2_obj24 animation milliseconds = 1000lvz_castleobj2_obj24 unique image = lvz_castleobj2_img17lvz_castleobj2_obj25 animation milliseconds = 1000lvz_castleobj2_obj25 unique image = lvz_castleobj2_img17lvz_castleobj2_obj26 animation milliseconds = 1000lvz_castleobj2_obj26 unique image = lvz_castleobj2_img17lvz_castleobj2_obj27 animation milliseconds = 1200lvz_castleobj2_obj27 unique image = lvz_castleobj2_img0lvz_castleobj2_obj28 animation milliseconds = 1300lvz_castleobj2_obj28 unique image = lvz_castleobj2_img1lvz_castleobj2_obj29 animation milliseconds = 1400lvz_castleobj2_obj29 unique image = lvz_castleobj2_img2lvz_castleobj2_obj3 animation milliseconds = 1000lvz_castleobj2_obj3 unique image = lvz_castleobj2_img19lvz_castleobj2_obj30 animation milliseconds = 1500lvz_castleobj2_obj30 unique image = lvz_castleobj2_img3lvz_castleobj2_obj31 animation milliseconds = 1200lvz_castleobj2_obj31 unique image = lvz_castleobj2_img0lvz_castleobj2_obj32 animation milliseconds = 1300lvz_castleobj2_obj32 unique image = lvz_castleobj2_img1lvz_castleobj2_obj33 animation milliseconds = 1400lvz_castleobj2_obj33 unique image = lvz_castleobj2_img2lvz_castleobj2_obj34 animation milliseconds = 1500lvz_castleobj2_obj34 unique image = lvz_castleobj2_img3lvz_castleobj2_obj35 animation milliseconds = 1000lvz_castleobj2_obj35 unique image = lvz_castleobj2_img6lvz_castleobj2_obj36 animation milliseconds = 1000lvz_castleobj2_obj36 unique image = lvz_castleobj2_img7lvz_castleobj2_obj37 animation milliseconds = 1000lvz_castleobj2_obj37 unique image = lvz_castleobj2_img8lvz_castleobj2_obj38 animation milliseconds = 1000lvz_castleobj2_obj38 unique image = lvz_castleobj2_img11lvz_castleobj2_obj39 animation milliseconds = 1000lvz_castleobj2_obj39 unique image = lvz_castleobj2_img12lvz_castleobj2_obj4 animation milliseconds = 1000lvz_castleobj2_obj4 unique image = lvz_castleobj2_img19lvz_castleobj2_obj40 animation milliseconds = 1000lvz_castleobj2_obj40 unique image = lvz_castleobj2_img13lvz_castleobj2_obj41 animation milliseconds = 1000lvz_castleobj2_obj41 unique image = lvz_castleobj2_img16lvz_castleobj2_obj42 animation milliseconds = 1000lvz_castleobj2_obj42 unique image = lvz_castleobj2_img18lvz_castleobj2_obj43 animation milliseconds = 1000lvz_castleobj2_obj43 unique image = lvz_castleobj2_img18lvz_castleobj2_obj44 animation milliseconds = 1000lvz_castleobj2_obj44 unique image = lvz_castleobj2_img18lvz_castleobj2_obj45 animation milliseconds = 1000lvz_castleobj2_obj45 unique image = lvz_castleobj2_img18lvz_castleobj2_obj46 animation milliseconds = 1000lvz_castleobj2_obj46 unique image = lvz_castleobj2_img18lvz_castleobj2_obj47 animation milliseconds = 1000lvz_castleobj2_obj47 unique image = lvz_castleobj2_img18lvz_castleobj2_obj5 animation milliseconds = 1000lvz_castleobj2_obj5 unique image = lvz_castleobj2_img19lvz_castleobj2_obj6 animation milliseconds = 1000lvz_castleobj2_obj6 unique image = lvz_castleobj2_img19lvz_castleobj2_obj7 animation milliseconds = 1000lvz_castleobj2_obj7 unique image = lvz_castleobj2_img19lvz_castleobj2_obj8 animation milliseconds = 1000lvz_castleobj2_obj8 unique image = lvz_castleobj2_img19lvz_castleobj2_obj9 animation milliseconds = 1000lvz_castleobj2_obj9 unique image = lvz_castleobj2_img19lvz_disc_test_obj0 animation milliseconds = 5000lvz_disc_test_obj0 unique image = lvz_disc_test_img0lvz_disc_test_obj1 animation milliseconds = 5000lvz_disc_test_obj1 unique image = lvz_disc_test_img0lvz_disc_test_obj10 animation milliseconds = 5000lvz_disc_test_obj10 unique image = lvz_disc_test_img0lvz_disc_test_obj2 animation milliseconds = 5000lvz_disc_test_obj2 unique image = lvz_disc_test_img0lvz_disc_test_obj3 animation milliseconds = 5000lvz_disc_test_obj3 unique image = lvz_disc_test_img0lvz_disc_test_obj4 animation milliseconds = 5000lvz_disc_test_obj4 unique image = lvz_disc_test_img0lvz_disc_test_obj5 animation milliseconds = 4000lvz_disc_test_obj5 unique image = lvz_disc_test_img1lvz_disc_test_obj6 animation milliseconds = 4000lvz_disc_test_obj6 unique image = lvz_disc_test_img1lvz_disc_test_obj7 animation milliseconds = 4000lvz_disc_test_obj7 unique image = lvz_disc_test_img1lvz_disc_test_obj8 animation milliseconds = 4000lvz_disc_test_obj8 unique image = lvz_disc_test_img1lvz_disc_test_obj9 animation milliseconds = 5000lvz_disc_test_obj9 unique image = lvz_disc_test_img0 The settings appear fine to me... Yet it says the unique image key doesn't exist, or something like that? Quote
Bak Posted January 2, 2010 Report Posted January 2, 2010 I see what's happening. There are two types of settings. Regular, internal, settings, and server-sent settings. Animations loads from the server-sent settings, as it should. updateSetting updates the internal settings. So you have two options, either (1) add an updateServerSetting function to SettingsHandler (which is identical except it works on serverSettingMap instead of settingMap), or, (2) write the settings to a file and use SettingsHandler->reloadServerSettings(const char* filename, bool logErrors); Sorry for the confusion; I can't remember everything about the entire client myself Quote
Samapico Posted January 2, 2010 Author Report Posted January 2, 2010 WOOOOOOOOOO mapobjects are shown Quote
Bak Posted January 2, 2010 Report Posted January 2, 2010 Great!! Wasn't too hard, was it? Maybe if you get bored afterwards we could fill in the gaps in the setup guides to help others get started. Quote
Samapico Posted January 2, 2010 Author Report Posted January 2, 2010 step 1: Open a lvz file and scan all the data in it (easy) - Everything is now loaded in non-packed data structures, so expanding the lvz format will be easy step 2: Save the files somewhere (easy) - LVZ files are currently unpacked in the zone's folder step 3: Open the lvz files after they were downloaded, while loading the level (medium) - I'm guessing I'll need to grab some server settings (i.e. misc:levelfiles) to know what has to be loaded step 4: Create UniqueImages and Animations for the mapobjects (hard) - Was easier than expected step 5.1: Make Animations support screenobjects (easy I guess) - Might be a bit harder than expectedstep 5.2: Make timed animations work (medium)step 5.3: Make toggled animations work (i.e. *objon) (hard) - An animation can be both timed and servercontrolled, which means 2 things can stop the animation. I think I know how to go with this, but I'll see if there are problems when I get therestep 5.4: Support the edit object packet (i.e. to move images around, but it could change a mapobject completely, even change its image... but that would require a lot of changes, so I'll probably limit the support of this packet to moving an object around, since that's the only thing it is used for anyway) step 6: Make it override default graphics with the files in the lvz's (no idea) - If I understand right, this should be done without me having to change anything Oh, and I got to test the different Display Modes (showAlways, serverControlled, etc.)I used CB_NEWMAPLOADED for EnterArena, EnterZone and ShowAlways. A simple bool value is set to true after the first time, so EnterZone is only done once (assuming modules get reloaded on each zone, but not on each arena... otherwise it will require some 'entered zone' callback)Death is pretty easy, but for Kill... do I need to listen to the s2c death packets, and compare the killerpid to our own pid? An easier way would be nice A 'got a kill' callback could be useful for various things I suppose Quote
Samapico Posted January 5, 2010 Author Report Posted January 5, 2010 I committed some bug fixes (mainly don't decompress a section if it's not compressed), and added a test LVZ The timed animations seem to work fine (didn't change anything, just hadn't tested yet)But I keep getting these 'Animation can't be freed' errors, and some of my thrust smoke won't disappear We'll need a way to simulate "object toggled" packets... The one thing that might cause bugs is a timed animation that can be turned off before it expires.The test lvz has screenobjects for every screen reference defined in continuum, so as they get defined in discretion, testing them will be easy. That is, after screenobjects get implemented Quote
Bak Posted January 5, 2010 Report Posted January 5, 2010 I committed an initial version of the screenobject support in the Animations interface. I've yet to test any of it, but I'll do it a little later on. Quote
Bak Posted January 6, 2010 Report Posted January 6, 2010 I've finished testing the screen animations code in the new animations interface, and have committed the code. Everything seems to work okay. You can also now free timed animations now using the freeAnimation function. You'll want to listen for the CB_TIMED_ANIMATION_EXPIRED callback for each timed animation. If that callback occurs, the Animation* is no longer valid and the animation is not displayed. I also found and fixed the exhaust bug. In playTimedMapAnimation, createNewMapAnimation was called with the timed parameter set to false, which caused the bug. To fake a packet when in single player, use net->sendPacketToClient(PacketInstance* packet, const char* templateName). For testing, I usually use an internal command as shown below since it's simple (and can be invoked using ?commands). Here's the code I used to test screen animations: mm->regCallback(I_ANIMATIONS, CB_INTERNALCOMMAND, CB_INTERNALCOMMAND_VERSION, debugCommand); ... void debugCommand(void* param) { InternalCommandParam* icp = (InternalCommandParam*)param; if (icp->isCommand("debug", 0)) { static Animation* a = 0; if (a) animations.freeAnimation(a); a = animations.playLoopingScreenAnimation("warp", 'c', rand() % 100, 0, rand() % 100, 0, L_AfterBackground); animations.playTimedScreenAnimation("warp", 'c', rand() % 100, 'c', rand() % 100, 0, L_AfterBackground, 1000); } } Quote
Samapico Posted January 6, 2010 Author Report Posted January 6, 2010 Damnit, stupid thing won't work at all, this whole thing is rubbish Just kidding... everything works PERFECTLY http://img696.imageshack.us/img696/8425/lvzdiscretion.png The only thing is that the black parts aren't considered transparent... but I guess there's an easy fix for this? committed changes... ?objon # and ?objoff commands work in Single Player... oh wait, I didn't try the packet yet... but whatever... the ?objon and ?objoff simply call objOn(id) and objOff(id) functions, instead of sending a fake packet, which would then call them. So I tried: -show-always animations-time-limited animations expiring-time-limited animations killed before expiring with objoff-servercontrolled animations that never expire (displayTime = 0), turned on and off through objon and objoff-Death, Kill, EnterArena and EnterZone animations triggered through objon (even if they are not ServerControlled, they can have an objectID and must be activated by it) Quote
Samapico Posted January 6, 2010 Author Report Posted January 6, 2010 net->sendPacketToClient didn't seem to support raw data chunks... it sent the packet through 'packetTemplateToRaw', which didn't do anything with raw fields... I think I fixed it.............. wait for it........... wait for it... YAY, fixed ?objon, ?objoff and ?objset work by sending packets Don't know about you,but I always get an error when esc-Q'ing out: in_game.exe[...] 0x64d59aec [...] cannot be read [...] Quote
Bak Posted January 6, 2010 Report Posted January 6, 2010 cool, congrats! I'm not sure what you mean by black isn't transparent... it looks transparent to me on your screenshot. Also, where do you get that last error (in the terminal?) Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.