Steve_Yorkshire Posted February 11, 2015 Posted February 11, 2015 (edited) Edited February 12, 2015 by Steve_Yorkshire Quote
buckmaster Posted February 11, 2015 Posted February 11, 2015 Yay! Great resource :). Show-off forum though? :P Quote
LukasPJ Posted February 11, 2015 Posted February 11, 2015 It's fine, I'll move it when I actually get a resource section up ;) Quote
Gibby Posted February 12, 2015 Posted February 12, 2015 @Steve: Thanks for this! Care to add a riibbon to the projectile? I'm still struggling to make mine work... Quote
Steve_Yorkshire Posted February 12, 2015 Author Posted February 12, 2015 Found a crash caused by RefreshWeaponHUD not displaying the ammoAmount if a non-ammo weapon is the first one loaded at startup and then the player switches to an ammo-using weapon. No crash if first weapon loaded is an ammo-user. Makes no sense but hey, we're all used to that. :PFix posted in resource, also suggest fix goes into main repo. function clientCmdRefreshWeaponHUD(%amount, %preview, %ret, %zoomRet, %amountInClips) { if (!%amount) { //AmmoAmount.setVisible(false);//yorks bad! //causes a crash if this weapon is the default and you change to an other weapon AmmoAmount.setText(""); } else { AmmoAmount.setVisible(true); AmmoAmount.setText("Ammo: " @ %amount @ "/" @ %amountInClips); } Quote
Steve_Yorkshire Posted February 12, 2015 Author Posted February 12, 2015 @gibby This is how I handle ribbons.http://forums.torque3d.org/viewtopic.php?f=17&t=35&p=216 Quote
buckmaster Posted February 13, 2015 Posted February 13, 2015 A crash? I think we should try to make the script API as crash-resistant as possible. Any chance you could see what's happening in the engine to allow it to crash? A minimal example script would also be appreciated :). Quote
Steve_Yorkshire Posted February 14, 2015 Author Posted February 14, 2015 @buckmasterSeems to crash looking for a valid character in gfx/gFont.h. Only happens if there is no ammoAmount to show and thus ammoAmount in scripts/client/client.cs is hidden. And it only crashes if the first weapon on startup is non-ammo. Loading an ammo-wpn first and then switching back and forth between ammo and non-ammo weapons is fine.// Update the Ammo Counter with current ammo, if not any then hide the counter. function clientCmdSetAmmoAmountHud(%amount, %amountInClips) { if (!%amount) AmmoAmount.setVisible(false); else { AmmoAmount.setVisible(true); AmmoAmount.setText("Ammo: " @ %amount @ "/" @ %amountInClips); } } gfx/gFont.hinline bool GFont::isValidChar(const UTF16 in_charIndex) const { if(mRemapTable[in_charIndex] != -1)//dies here return true; if(mPlatformFont) return mPlatformFont->isValidChar(in_charIndex); return false; } I'll post the full stack - but if I'm honest I just like make gaemz and don't understand what makes them go. ;) > energyWeapon_DEBUG DLL.dll!GFont::isValidChar(const unsigned short in_charIndex) Line 185 C++ energyWeapon_DEBUG DLL.dll!GFont::getStrNWidthPrecise(const unsigned short * str, unsigned int n) Line 486 C++ energyWeapon_DEBUG DLL.dll!GFont::getStrNWidthPrecise(const char * str, unsigned int n) Line 466 C++ energyWeapon_DEBUG DLL.dll!GFont::getStrWidthPrecise(const char * in_pString) Line 419 C++ energyWeapon_DEBUG DLL.dll!GuiControl::renderJustifiedText(Point2I offset, Point2I extent, const char * text) Line 605 C++ energyWeapon_DEBUG DLL.dll!GuiTextCtrl::onRender(Point2I offset, const RectI & updateRect) Line 235 C++ energyWeapon_DEBUG DLL.dll!GuiControl::renderChildControls(Point2I offset, const RectI & updateRect) Line 574 C++ energyWeapon_DEBUG DLL.dll!GuiBitmapBorderCtrl::onRender(Point2I offset, const RectI & updateRect) Line 135 C++ energyWeapon_DEBUG DLL.dll!GuiControl::renderChildControls(Point2I offset, const RectI & updateRect) Line 574 C++ energyWeapon_DEBUG DLL.dll!GuiTSCtrl::onRender(Point2I offset, const RectI & updateRect) Line 471 C++ energyWeapon_DEBUG DLL.dll!GameTSCtrl::onRender(Point2I offset, const RectI & updateRect) Line 179 C++ energyWeapon_DEBUG DLL.dll!GuiCanvas::renderFrame(bool preRenderOnly, bool bufferSwap) Line 1760 C++ energyWeapon_DEBUG DLL.dll!GuiCanvas::handlePaintEvent(unsigned int did) Line 342 C++ energyWeapon_DEBUG DLL.dll!fastdelegate::FastDelegate1::operator()(unsigned int p1) Line 990 C++ energyWeapon_DEBUG DLL.dll!Signal::trigger(unsigned int a) Line 669 C++ energyWeapon_DEBUG DLL.dll!Journal::Call,unsigned int>(Signal * obj, void (unsigned int) * method, unsigned int a) Line 634 C++ energyWeapon_DEBUG DLL.dll!JournaledSignal::trigger(unsigned int a) Line 81 C++ energyWeapon_DEBUG DLL.dll!GuiCanvas::paint() Line 1522 C++ energyWeapon_DEBUG DLL.dll!fastdelegate::FastDelegate0::operator()() Line 905 C++ energyWeapon_DEBUG DLL.dll!Signal::trigger() Line 651 C++ energyWeapon_DEBUG DLL.dll!Process::processEvents() Line 95 C++ energyWeapon_DEBUG DLL.dll!StandardMainLoop::doMainLoop() Line 610 C++ energyWeapon_DEBUG DLL.dll!torque_enginetick() Line 120 C++ energyWeapon_DEBUG DLL.dll!TorqueMain(int argc, const char * * argv) Line 377 C++ energyWeapon_DEBUG DLL.dll!torque_winmain(HINSTANCE__ * hInstance, HINSTANCE__ * __formal, char * lpszCmdLine, int __formal) Line 452 C++ energyWeapon_DEBUG.exe!WinMain(HINSTANCE__ * hInstance, HINSTANCE__ * hPrevInstance, char * lpszCmdLine, int nCommandShow) Line 95 C++ [External Code] [Frames below may be incorrect and/or missing, no symbols loaded for kernel32.dll] 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.