Item Search
     
BG-Wiki Search
Closed Thread
Page 5 of 307 FirstFirst ... 3 4 5 6 7 15 55 ... LastLast
Results 81 to 100 of 6124
  1. #81
    Relic Weapons
    Join Date
    Sep 2007
    Posts
    377
    BG Level
    4
    FFXIV Character
    Caprese Dionir
    FFXIV Server
    Hyperion
    FFXI Server
    Sylph

    Quote Originally Posted by Ihm View Post
    The best way is to use windbg to make a crash dump then post it on our issues tracker, I can't link you to windbg though yet sorry xD Such a noob D:
    Regarding Timers crash:

    I ran WinDBG (in 32 bit mode I assume because POL is a 32 bit app) and attached it to POL after it launched from the Windower v4 launcher, and this is what it got. I tried to telling the process to go a few times when it froze, but it just kept saying (first chance exception, second chance exception) and showing the registers.

    I disabled several plugins because they apparently execute commands on spam, like find when tracking is enabled, or PetTP.

    Code:
    Microsoft (R) Windows Debugger Version 6.2.9200.20512 X86
    Copyright (c) Microsoft Corporation. All rights reserved.
    
    *** wait with pending attach
    Symbol search path is: *** Invalid ***
    ****************************************************************************
    * Symbol loading may be unreliable without a symbol search path.           *
    * Use .symfix to have the debugger choose a symbol path.                   *
    * After setting your symbol path, use .reload to refresh symbol locations. *
    ****************************************************************************
    Executable search path is: 
    ModLoad: 00400000 005a0000   c:\program files (x86)\steam\steamapps\common\ffxi\SquareEnix\PlayOnlineViewer\pol.exe
    ModLoad: 76fc0000 77117000   C:\WINDOWS\SYSTEM32\ntdll.dll
    ModLoad: 76470000 765a0000   C:\WINDOWS\SYSTEM32\KERNEL32.DLL
    ModLoad: 76310000 763b6000   C:\WINDOWS\SYSTEM32\KERNELBASE.dll
    ModLoad: 73850000 738f7000   C:\WINDOWS\system32\apphelp.dll
    ModLoad: 71c20000 71e90000   C:\WINDOWS\AppPatch\AcLayers.DLL
    ModLoad: 76b00000 76bb1000   C:\WINDOWS\SYSTEM32\msvcrt.dll
    ModLoad: 75ca0000 75db6000   C:\WINDOWS\SYSTEM32\USER32.dll
    ModLoad: 760b0000 761ad000   C:\WINDOWS\SYSTEM32\GDI32.dll
    ModLoad: 746a0000 75766000   C:\WINDOWS\SYSTEM32\SHELL32.dll
    ModLoad: 762d0000 76310000   C:\WINDOWS\SYSTEM32\SHLWAPI.dll
    ModLoad: 763c0000 7644b000   C:\WINDOWS\SYSTEM32\OLEAUT32.dll
    ModLoad: 71e90000 71ea3000   C:\WINDOWS\SYSTEM32\MPR.dll
    ModLoad: 76cc0000 76e6f000   C:\WINDOWS\SYSTEM32\SETUPAPI.dll
    ModLoad: 71f20000 71f23000   C:\WINDOWS\SYSTEM32\sfc.dll
    ModLoad: 74500000 74560000   C:\WINDOWS\SYSTEM32\WINSPOOL.DRV
    ModLoad: 75dc0000 75e6c000   C:\WINDOWS\SYSTEM32\RPCRT4.dll
    ModLoad: 769c0000 76af6000   C:\WINDOWS\SYSTEM32\combase.dll
    ModLoad: 75a30000 75a76000   C:\WINDOWS\SYSTEM32\CFGMGR32.dll
    ModLoad: 75bc0000 75bde000   C:\WINDOWS\SYSTEM32\DEVOBJ.dll
    ModLoad: 74630000 7464c000   C:\WINDOWS\SYSTEM32\SspiCli.dll
    ModLoad: 71f10000 71f1e000   C:\WINDOWS\SYSTEM32\sfc_os.DLL
    ModLoad: 74620000 74629000   C:\WINDOWS\SYSTEM32\CRYPTBASE.dll
    ModLoad: 75950000 75984000   C:\WINDOWS\SYSTEM32\sechost.dll
    ModLoad: 745c0000 74611000   C:\WINDOWS\SYSTEM32\bcryptPrimitives.dll
    ModLoad: 71f30000 72174000   C:\WINDOWS\AppPatch\AcGenral.DLL
    ModLoad: 739f0000 73a78000   C:\WINDOWS\SYSTEM32\UxTheme.dll
    ModLoad: 73030000 73051000   C:\WINDOWS\SYSTEM32\WINMM.dll
    ModLoad: 71ed0000 71ee2000   C:\WINDOWS\SYSTEM32\samcli.dll
    ModLoad: 75aa0000 75bb9000   C:\WINDOWS\SYSTEM32\ole32.dll
    ModLoad: 71eb0000 71ec4000   C:\WINDOWS\SYSTEM32\MSACM32.dll
    ModLoad: 74560000 74568000   C:\WINDOWS\SYSTEM32\VERSION.dll
    ModLoad: 73aa0000 73abb000   C:\WINDOWS\SYSTEM32\USERENV.dll
    ModLoad: 739d0000 739e9000   C:\WINDOWS\SYSTEM32\dwmapi.dll
    ModLoad: 761b0000 762d0000   C:\WINDOWS\SYSTEM32\urlmon.dll
    ModLoad: 75be0000 75c8e000   C:\WINDOWS\SYSTEM32\ADVAPI32.dll
    ModLoad: 72ff0000 7301a000   C:\WINDOWS\SYSTEM32\WINMMBASE.dll
    ModLoad: 73a80000 73a91000   C:\WINDOWS\SYSTEM32\profapi.dll
    ModLoad: 75e70000 76011000   C:\WINDOWS\SYSTEM32\iertutil.dll
    ModLoad: 765a0000 76759000   C:\WINDOWS\SYSTEM32\WININET.dll
    ModLoad: 73d60000 73dd5000   C:\WINDOWS\SYSTEM32\SHCORE.DLL
    ModLoad: 76760000 76780000   C:\WINDOWS\system32\IMM32.DLL
    ModLoad: 76bc0000 76c9d000   C:\WINDOWS\SYSTEM32\MSCTF.dll
    ModLoad: 10000000 10010000   c:\program files (x86)\steam\steamapps\common\ffxi\SquareEnix\PlayOnlineViewer\PolHook.dll
    ModLoad: 6d6b0000 6d789000   C:\WINDOWS\SYSTEM32\DDRAW.dll
    ModLoad: 6e960000 6e967000   C:\WINDOWS\SYSTEM32\DCIMAN32.dll
    ModLoad: 02270000 024eb000   C:\Windower4\Hook.dll
    ModLoad: 74650000 746a0000   C:\WINDOWS\SYSTEM32\WS2_32.dll
    ModLoad: 76450000 76458000   C:\WINDOWS\SYSTEM32\NSI.dll
    ModLoad: 6d9b0000 6d9e0000   C:\WINDOWS\SYSTEM32\dinput8.dll
    ModLoad: 6c560000 6c661000   C:\WINDOWS\SYSTEM32\d3d8.dll
    ModLoad: 6d9a0000 6d9a7000   C:\WINDOWS\SYSTEM32\d3d8thk.dll
    ModLoad: 75990000 75a04000   C:\WINDOWS\SYSTEM32\clbcatq.dll
    ModLoad: 73990000 739cf000   C:\Windows\SYSTEM32\POWRPROF.dll
    ModLoad: 73c10000 73c2a000   C:\WINDOWS\SYSTEM32\CRYPTSP.dll
    ModLoad: 73bd0000 73c0e000   C:\WINDOWS\system32\rsaenh.dll
    ModLoad: 6c550000 6c55a000   C:\WINDOWS\system32\winbrand.dll
    ModLoad: 6c430000 6c4b4000   C:\WINDOWS\SYSTEM32\dsound.dll
    ModLoad: 02ea0000 032f1000   c:\program files (x86)\steam\steamapps\common\ffxi\SquareEnix\PlayOnlineViewer\viewer\com\polcore.dll
    ModLoad: 6eac0000 6eaca000   C:\WINDOWS\SYSTEM32\HID.DLL
    ModLoad: 03400000 03f7e000   c:\program files (x86)\steam\steamapps\common\ffxi\SquareEnix\PlayOnlineViewer\viewer\com\app.dll
    ModLoad: 73df0000 73e10000   C:\WINDOWS\SYSTEM32\IPHLPAPI.DLL
    ModLoad: 73de0000 73de8000   C:\WINDOWS\SYSTEM32\WINNSI.DLL
    ModLoad: 75900000 75943000   C:\WINDOWS\SYSTEM32\WINTRUST.dll
    ModLoad: 75770000 758f8000   C:\WINDOWS\SYSTEM32\CRYPT32.dll
    ModLoad: 75a80000 75a92000   C:\WINDOWS\SYSTEM32\MSASN1.dll
    ModLoad: 6c670000 6d4dc000   C:\WINDOWS\SYSTEM32\nvd3dum.dll
    ModLoad: 767e0000 767e6000   C:\WINDOWS\SYSTEM32\PSAPI.DLL
    ModLoad: 6e9e0000 6eab6000   C:\WINDOWS\SYSTEM32\D3DIM700.DLL
    ModLoad: 6ed00000 6ed4d000   C:\WINDOWS\System32\MMDevApi.dll
    ModLoad: 6eca0000 6ecf4000   C:\WINDOWS\SYSTEM32\AUDIOSES.DLL
    ModLoad: 73ba0000 73bb2000   C:\WINDOWS\SYSTEM32\dhcpcsvc.DLL
    ModLoad: 6e9d0000 6e9d8000   C:\WINDOWS\SYSTEM32\avrt.dll
    ModLoad: 73bc0000 73bd0000   C:\WINDOWS\SYSTEM32\dhcpcsvc6.DLL
    ModLoad: 6a450000 6a460000   C:\WINDOWS\system32\napinsp.dll
    ModLoad: 6a430000 6a444000   C:\WINDOWS\system32\pnrpnsp.dll
    ModLoad: 73780000 73790000   C:\WINDOWS\system32\NLAapi.dll
    ModLoad: 733d0000 7341a000   C:\WINDOWS\System32\mswsock.dll
    ModLoad: 737d0000 73845000   C:\WINDOWS\SYSTEM32\DNSAPI.dll
    ModLoad: 6a420000 6a429000   C:\WINDOWS\System32\winrnr.dll
    ModLoad: 6e920000 6e95f000   C:\WINDOWS\System32\fwpuclnt.dll
    ModLoad: 737c0000 737c7000   C:\Windows\System32\rasadhlp.dll
    ModLoad: 6a460000 6a500000   C:\WINDOWS\SYSTEM32\sxs.dll
    (17d8.df8): Break instruction exception - code 80000003 (first chance)
    *** ERROR: Symbol file could not be found.  Defaulted to export symbols for C:\WINDOWS\SYSTEM32\ntdll.dll - 
    *** ERROR: Symbol file could not be found.  Defaulted to export symbols for C:\WINDOWS\SYSTEM32\KERNEL32.DLL - 
    eax=7fe82000 ebx=00000000 ecx=00000000 edx=7705dc83 esi=00000000 edi=00000000
    eip=76fee08c esp=0e8eff58 ebp=0e8eff84 iopl=0         nv up ei pl zr na pe nc
    cs=0023  ss=002b  ds=002b  es=002b  fs=0053  gs=002b             efl=00000246
    ntdll!DbgBreakPoint:
    76fee08c cc              int     3
    0:019> g
    ModLoad: 02e00000 02e2b000   c:\program files (x86)\steam\steamapps\common\ffxi\SquareEnix\FINAL FANTASY XI\FFXi.dll
    ModLoad: 03400000 03efd000   c:\program files (x86)\steam\steamapps\common\ffxi\SquareEnix\FINAL FANTASY XI\FFXiMain.dll
    ModLoad: 6e9d0000 6e9d6000   C:\WINDOWS\SysWOW64\dpnhpast.dll
    ModLoad: 02e30000 02e46000   c:\program files (x86)\steam\steamapps\common\ffxi\SquareEnix\FINAL FANTASY XI\ImeUiDll.dll
    ModLoad: 03f40000 03f52000   c:\program files (x86)\steam\steamapps\common\ffxi\SquareEnix\FINAL FANTASY XI\ImeUiDll2.dll
    ModLoad: 6c670000 6d4dc000   C:\WINDOWS\SysWOW64\nvd3dum.dll
    ModLoad: 767e0000 767e6000   C:\WINDOWS\SysWOW64\PSAPI.DLL
    ModLoad: 053d0000 054be000   C:\Program Files (x86)\NVIDIA Corporation\3D Vision\nvSCPAPI.dll
    ModLoad: 72ae0000 72b3c000   C:\WINDOWS\SysWOW64\dxgi.dll
    ModLoad: 6c670000 6d4dc000   C:\WINDOWS\SysWOW64\nvd3dum.dll
    ModLoad: 6e690000 6e911000   C:\WINDOWS\SysWOW64\nvapi.dll
    ModLoad: 6e9d0000 6e9d8000   C:\WINDOWS\SysWOW64\avrt.dll
    client start
    client shutdown
    trying connecting
    connection succeed
    Recv Client %d
    Recv Client %d
    Recv Client %d
    ModLoad: 21cf0000 21d5e000   C:\Windower4\plugins\luacore.DLL
    ModLoad: 73e20000 73ea2000   C:\WINDOWS\SysWOW64\WINHTTP.dll
    ModLoad: 6a640000 6a6ce000   C:\WINDOWS\WinSxS\x86_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.6871_none_50944e7cbcb706e5\MSVCP90.dll
    ModLoad: 74360000 74403000   C:\WINDOWS\WinSxS\x86_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.6871_none_50944e7cbcb706e5\MSVCR90.dll
    ModLoad: 66be0000 66c48000   C:\WINDOWS\SysWOW64\webio.dll
    LuaCore: Resources Loading
    C:\Windower4\ModLoad: 09bb0000 09bd3000   C:\Windower4\plugins\blinkmenot.DLL
    Loading settings from file: C:\Windower4\plugins\settings\LuaCore.xml
    Resources: Language detected as 2 - english - Windower: 1
    
    C:\Windower4\Loading settings from file: C:\Windower4\plugins\settings\BlinkMeNot.xml
    File successfully loaded
    ModLoad: 227b0000 228d5000   C:\Windower4\plugins\chatmon.DLL
    LuaCore: Resources Loaded
    
    ModLoad: 0ddd0000 0dded000   C:\Windower4\plugins\distance.DLL
    Distance created.
    Found windower
    Distance initialized.
    ModLoad: 0ffe0000 0fff5000   C:\Windower4\plugins\drawdistance.DLL
    ModLoad: 100f0000 10108000   C:\Windower4\plugins\lightluggage.DLL
    ModLoad: 21d60000 21d91000   C:\Windower4\plugins\ssorganizer.DLL
    SSOrganizer: Resources Loading
    ModLoad: 224f0000 22507000   C:\Windower4\plugins\tparty.DLL
    Resources: Language detected as 2 - english - Windower: 1
    
    SSOrganizer: Resources Loaded
    
    TParty initialized.
    Recv Client %d
    Client Link Dead 2
     END OF TCP CLIENT THREAD
    client start
     END OF TCP CLIENT THREAD
    C:\Windower4\Loading settings from file: C:\Windower4\plugins\settings\BlinkMeNot.xml
    File successfully loaded
    ModLoad: 02530000 02571000   C:\Windower4\plugins\timers.DLL
    Initializing Timers...
    
    C:\Windower4\Loading settings from file: C:\Windower4\plugins\settings\Timers.xml
    File successfully loaded
    Parsing abilities, using File: C:\Windower4\\plugins\resources\abils.xml
    File successfully loaded
    
    Parsing Spells, using File: C:\Windower4\\plugins\resources\spells.xml
    File successfully loaded
    
    Created render thread.
    Login event received.
    Building settings.
    Creating cache of [10] timers.
    
    Creating new timer: 7fb9b188-a131-4d77-8ddc-08a3e02b3af6.
    Background created.
    Left bar created.
    Repeating bar created.
    Right bar created.
    Icon created.
    Time created.
    Label created.
    SetTextureFromResource
    Created Texture
    Background texture set.
    SetTextureFromResource
    Created Texture
    Left texture set.
    SetTextureFromResource
    Created Texture
    Repeat texture set.
    SetTextureFromResource
    Created Texture
    Right texture set.
    SetTextureFromResource
    Created Texture
    Icon texture set.
    Timer created.
    
    Creating new timer: 33bb04fa-bbe7-4841-ab00-5d2e03f2c4b3.
    Background created.
    Left bar created.
    Repeating bar created.
    Right bar created.
    Icon created.
    Time created.
    Label created.
    SetTextureFromResource
    Created Texture
    Background texture set.
    SetTextureFromResource
    Created Texture
    Left texture set.
    SetTextureFromResource
    Created Texture
    Repeat texture set.
    SetTextureFromResource
    Created Texture
    Right texture set.
    SetTextureFromResource
    Created Texture
    Icon texture set.
    Timer created.
    
    Creating new timer: fa7d85fa-93e2-45bf-acdd-8746a8978fe6.
    Background created.
    Left bar created.
    Repeating bar created.
    Right bar created.
    Icon created.
    Time created.
    Label created.
    SetTextureFromResource
    Created Texture
    Background texture set.
    SetTextureFromResource
    Created Texture
    Left texture set.
    SetTextureFromResource
    Created Texture
    Repeat texture set.
    SetTextureFromResource
    Created Texture
    Right texture set.
    SetTextureFromResource
    Created Texture
    Icon texture set.
    Timer created.
    
    Creating new timer: 5f35d52d-2d8d-4f15-ac51-0a8c888cdc89.
    Background created.
    Left bar created.
    Repeating bar created.
    Right bar created.
    Icon created.
    Time created.
    Label created.
    SetTextureFromResource
    Created Texture
    Background texture set.
    SetTextureFromResource
    Created Texture
    Left texture set.
    SetTextureFromResource
    Created Texture
    Repeat texture set.
    SetTextureFromResource
    Created Texture
    Right texture set.
    SetTextureFromResource
    Created Texture
    Icon texture set.
    Timer created.
    
    Creating new timer: 31364d2e-b80d-493d-be9a-5021abffb167.
    Background created.
    Left bar created.
    Repeating bar created.
    Right bar created.
    Icon created.
    Time created.
    Label created.
    SetTextureFromResource
    Created Texture
    Background texture set.
    SetTextureFromResource
    Created Texture
    Left texture set.
    SetTextureFromResource
    Created Texture
    Repeat texture set.
    SetTextureFromResource
    Created Texture
    Right texture set.
    SetTextureFromResource
    Created Texture
    Icon texture set.
    Timer created.
    
    Creating new timer: bf002346-4281-417a-afd9-97d668d93270.
    Background created.
    Left bar created.
    Repeating bar created.
    Right bar created.
    Icon created.
    Time created.
    Label created.
    SetTextureFromResource
    Created Texture
    Background texture set.
    SetTextureFromResource
    Created Texture
    Left texture set.
    SetTextureFromResource
    Created Texture
    Repeat texture set.
    SetTextureFromResource
    Created Texture
    Right texture set.
    SetTextureFromResource
    Created Texture
    Icon texture set.
    Timer created.
    
    Creating new timer: c4aa7129-4645-4b64-9d65-8ab25a55c177.
    Background created.
    Left bar created.
    Repeating bar created.
    Right bar created.
    Icon created.
    Time created.
    Label created.
    SetTextureFromResource
    Created Texture
    Background texture set.
    SetTextureFromResource
    Created Texture
    Left texture set.
    SetTextureFromResource
    Created Texture
    Repeat texture set.
    SetTextureFromResource
    Created Texture
    Right texture set.
    SetTextureFromResource
    Created Texture
    Icon texture set.
    Timer created.
    
    Creating new timer: d5af36d2-0d7c-480f-aa64-d019599da054.
    Background created.
    Left bar created.
    Repeating bar created.
    Right bar created.
    Icon created.
    Time created.
    Label created.
    SetTextureFromResource
    Created Texture
    Background texture set.
    SetTextureFromResource
    Created Texture
    Left texture set.
    SetTextureFromResource
    Created Texture
    Repeat texture set.
    SetTextureFromResource
    Created Texture
    Right texture set.
    SetTextureFromResource
    Created Texture
    Icon texture set.
    Timer created.
    
    Creating new timer: bad16400-9936-4614-95ea-3c9bc37fe13c.
    Background created.
    Left bar created.
    Repeating bar created.
    Right bar created.
    Icon created.
    Time created.
    Label created.
    SetTextureFromResource
    Created Texture
    Background texture set.
    SetTextureFromResource
    Created Texture
    Left texture set.
    SetTextureFromResource
    Created Texture
    Repeat texture set.
    SetTextureFromResource
    Created Texture
    Right texture set.
    SetTextureFromResource
    Created Texture
    Icon texture set.
    Timer created.
    
    Creating new timer: 453940dd-8a72-4441-a7da-2815deb877f5.
    Background created.
    Left bar created.
    Repeating bar created.
    Right bar created.
    Icon created.
    Time created.
    Label created.
    SetTextureFromResource
    Created Texture
    Background texture set.
    SetTextureFromResource
    Created Texture
    Left texture set.
    SetTextureFromResource
    Created Texture
    Repeat texture set.
    SetTextureFromResource
    Created Texture
    Right texture set.
    SetTextureFromResource
    Created Texture
    Icon texture set.
    Timer created.
    
    Initialization completed.
    
    PACKET 40 6104 1363117308669918 49980 KBRVAB/AggAAAdg7AAAAAAAAALAgAEDAaABAAABGAAAAAAAAAAAAAAAANew recast found, Ability (223) No Foot Rise 179
    -New timer instance requested. Cache size: 9
    -Timer popped from cache.
    
    New recast timer building.
    Timer pushed at end.
    Initializing timer bar.
    Timer positioned.
    Using low to high settings.
    Icon not found C:\Windower4\plugins\icons\abilities\00223.png.
    SetTextureFromResource
    Created Texture
    Bars visible.
    Labels relocated.
    Timer time set to: 2:59
    Timer name set to: No Foot Rise
    Timer built.
    
    PACKET 41 6104 1363117311215187 49980 KQ5bAMCCAADAggAAgAEAAAAAAAAqBCoEzgAAAAAAPACKET 40 6104 1363117311215187 49980 KBRbAB/AggAAAZgzAAAAAAAAALAgAEBAWwDQA4A4AAAAAAAAAAAAAAAANew recast found, Ability (222) Flourishes II 29
    -New timer instance requested. Cache size: 8
    -Timer popped from cache.
    
    New recast timer building.
    New time 1775 > old time 299, timer pushing
    Initializing timer bar.
    Timer positioned.
    Using low to high settings.
    Icon not found C:\Windower4\plugins\icons\abilities\00222.png.
    SetTextureFromResource
    Created Texture
    Bars visible.
    Labels relocated.
    Timer time set to: 0:29
    Timer name set to: Flourishes II
    Timer built.
    
    Repositioning timer [No Foot Rise]
    PACKET 40 6104 1363117314079566 49980 KBRiAB/AggAAAXgvAAAAAAAAALAgAEDAAgAgF+AnAAAAAAAAAAAAAAAANew recast found, Ability (216) Sambas 59
    -New timer instance requested. Cache size: 7
    -Timer popped from cache.
    
    New recast timer building.
    New time 271 < old time 599, skipping
    New time 1741 > old time 599, timer pushing
    Initializing timer bar.
    Timer positioned.
    Using low to high settings.
    Icon not found C:\Windower4\plugins\icons\abilities\00216.png.
    SetTextureFromResource
    Created Texture
    Bars visible.
    Labels relocated.
    Timer time set to: 0:59
    Timer name set to: Sambas
    Timer built.
    
    Repositioning timer [No Foot Rise]
    PACKET 40 6104 1363117318133051 49980 KBRsAB/AggAAAbgvAAAAAAAAALAgAEBAAwBAAcAMAAAAAAAAAAAAAAAANew recast found, Ability (217) Waltzes 5
    -New timer instance requested. Cache size: 6
    -Timer popped from cache.
    
    New recast timer building.
    New time 230 > old time 59, timer pushing
    Initializing timer bar.
    Timer positioned.
    Using low to high settings.
    Icon not found C:\Windower4\plugins\icons\abilities\00217.png.
    SetTextureFromResource
    Created Texture
    Bars visible.
    Labels relocated.
    Timer time set to: 0:05
    Timer name set to: Waltzes
    Timer built.
    
    Repositioning timer [Flourishes II]
    Repositioning timer [Sambas]
    Repositioning timer [No Foot Rise]
    (17d8.1704): Access violation - code c0000005 (first chance)
    First chance exceptions are reported before any exception handling.
    This exception may be expected and handled.
    *** ERROR: Symbol file could not be found.  Defaulted to export symbols for C:\WINDOWS\WinSxS\x86_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.6871_none_50944e7cbcb706e5\MSVCR90.dll - 
    eax=00000001 ebx=0255a00e ecx=7ffffffe edx=00000073 esi=00000000 edi=00000001
    eip=743b1bb0 esp=2336e67c ebp=2336e900 iopl=0         nv up ei pl nz na po nc
    cs=0023  ss=002b  ds=002b  es=002b  fs=0053  gs=002b             efl=00010202
    MSVCR90!vcwprintf_s+0x2acb:
    743b1bb0 803800          cmp     byte ptr [eax],0           ds:002b:00000001=??
    0:052> g
    (17d8.1704): Access violation - code c0000005 (!!! second chance !!!)
    eax=00000001 ebx=0255a00e ecx=7ffffffe edx=00000073 esi=00000000 edi=00000001
    eip=743b1bb0 esp=2336e67c ebp=2336e900 iopl=0         nv up ei pl nz na po nc
    cs=0023  ss=002b  ds=002b  es=002b  fs=0053  gs=002b             efl=00010202
    MSVCR90!vcwprintf_s+0x2acb:
    743b1bb0 803800          cmp     byte ptr [eax],0           ds:002b:00000001=??
    0:052> g
    (17d8.1704): Access violation - code c0000005 (first chance)
    First chance exceptions are reported before any exception handling.
    This exception may be expected and handled.
    eax=00000001 ebx=0255a00e ecx=7ffffffe edx=00000073 esi=00000000 edi=00000001
    eip=743b1bb0 esp=2336e67c ebp=2336e900 iopl=0         nv up ei pl nz na po nc
    cs=0023  ss=002b  ds=002b  es=002b  fs=0053  gs=002b             efl=00010202
    MSVCR90!vcwprintf_s+0x2acb:
    743b1bb0 803800          cmp     byte ptr [eax],0           ds:002b:00000001=??

  2. #82
    Melee Summoner
    Join Date
    Mar 2010
    Posts
    35
    BG Level
    1
    FFXIV Character
    Ihm Kasukabe
    FFXIV Server
    Ragnarok
    FFXI Server
    Siren

    I've pushed an update out for timers, hopefully it will fix this latest crash. Ty for all the crash logs, helped a lot~ Lemme know how it goes~

  3. #83
    Old Merits
    Join Date
    Apr 2012
    Posts
    1,109
    BG Level
    6

    Apologies if its been covered already but I'm having an issue with statustimer

    It loads just fine but I can't get it to perform any commands, specifically setpos and setfont.

    I'm also unable to perform any binds in my init.txt file

    Edit: Seem to have fixed the binding issue by restarting but still having issue with statustimer

    Where is the information on native recording?

  4. #84
    Melee Summoner
    Join Date
    Mar 2010
    Posts
    35
    BG Level
    1
    FFXIV Character
    Ihm Kasukabe
    FFXIV Server
    Ragnarok
    FFXI Server
    Siren

    Quote Originally Posted by Fake View Post
    Apologies if its been covered already but I'm having an issue with statustimer

    It loads just fine but I can't get it to perform any commands, specifically setpos and setfont.

    I'm also unable to perform any binds in my init.txt file

    Edit: Seem to have fixed the binding issue by restarting but still having issue with statustimer

    Where is the information on native recording?
    If you pop open your launcher statustimer will update, we just pushed out the fix to that issue.

    Not sure about the recording commands off the top of my head sorry.

  5. #85
    D. Ring
    Join Date
    Feb 2007
    Posts
    4,737
    BG Level
    7
    FFXI Server
    Quetzalcoatl

    V4 wont let me use yarnball. Is there an acceptable substitute available? I figured it would be timers but I see nothing in the settings xml that if altered makes remaining buff duration show. I dont exactly need it on brd usually but when busy in something it's nice to have.

  6. #86
    Cerberus
    Join Date
    Jun 2007
    Posts
    411
    BG Level
    4
    FFXIV Character
    Ninita Nita
    FFXIV Server
    Excalibur
    FFXI Server
    Shiva
    WoW Realm
    Gnomeregan

    sec and i'll make you a really fast lua you can mod out to fit what you want to watch to tide you over until timers gets yarnball function

  7. #87
    Cerberus
    Join Date
    Jun 2007
    Posts
    411
    BG Level
    4
    FFXIV Character
    Ninita Nita
    FFXIV Server
    Excalibur
    FFXI Server
    Shiva
    WoW Realm
    Gnomeregan

    Sorry took longer than i thought. Keep in mind this is nowhere near as good as yarnball, but hopefully it'll help. You can mod the buffs list by adding to it. Simply follow the buff=timer syntax just as it is in the file. Needs it's own folder "addons/gimpyb". When buffs are reapplied the timer isn't reset, i apologize this is a very poor substitute, but it's the best i can do atm. Also, sorry for the double post but wanted to bump it so people would look if they were waiting.

    Quick Edit: This uses timer's custom timers, in case you want to move them simply change the custom timers in the timers settings xml.
    forgot to add this is only for buffs on you.

    gimpyb.lua
    Code:
    function event_load()
    	player = get_player()
    	watchbuffs = {	
    					Haste=180,
    					Refresh=150,
    					Protect=1800
    				} -- only adding a few so you can get the idea
    end
    
    function event_gain_status(id,name)
    		if watchbuffs[name] ~= nil then
    			send_command("timers c "..name.." "..watchbuffs[name])
    		end
    end
    
    function event_lose_status(id,name)
    	send_command("timers d "..name)
    end

  8. #88

    Quote Originally Posted by Khajit View Post
    V4 wont let me use yarnball. Is there an acceptable substitute available? I figured it would be timers but I see nothing in the settings xml that if altered makes remaining buff duration show. I dont exactly need it on brd usually but when busy in something it's nice to have.
    Slacker should work just fine...

  9. #89
    D. Ring
    Join Date
    Feb 2007
    Posts
    4,737
    BG Level
    7
    FFXI Server
    Quetzalcoatl

    Auto pianissimo on spellcast doesn't appear to be working for my brd as well in v4.

    <if type="BardSong">
    <if SpellTargetType="PLAYER">
    <castdelay delay="2" />
    <command when="precast">input /raw /ja "Pianissimo" &lt;me&gt;</command>
    </if>
    </if>

    is the code used for it on my xml.

  10. #90
    Cerberus
    Join Date
    Jun 2007
    Posts
    411
    BG Level
    4
    FFXIV Character
    Ninita Nita
    FFXIV Server
    Excalibur
    FFXI Server
    Shiva
    WoW Realm
    Gnomeregan

    SpellTargetType seems to not be working with spellcast in 4.0 atm

  11. #91
    Cerberus
    Join Date
    Jun 2007
    Posts
    411
    BG Level
    4
    FFXIV Character
    Ninita Nita
    FFXIV Server
    Excalibur
    FFXI Server
    Shiva
    WoW Realm
    Gnomeregan

    ok, i realized all too late that my gimpyb addon didn't actually track buffs you cast on others so.. I stayed up and banged out a quick (rough as all hell so it probably won't work right) fix. I tested with my sch, the basic stuff works. You cast buff on someone -> timer shows up. You overcast buff on same person -> timer resets. Now tomorrow i plan to try to check against like.. accession being up which shouldn't be hard. but, in the mean time here it is. It will require the 2 files in my post above, i don't feel like reposting them in this one though so yea. Please remember, crude as hell and probably will not work nearly as well as yarnball did.

    edit: Just remembered. This requires filters to be off on the buffs. I apologize for that but it works by reading chat log
    I realize there's some issues btw. I know it doesn't pick up when people lose buffs (say, by dispel) i'll add that in tomorrow. As well as some other stuff that would be nice. Feel free to leave suggestions. Also, this wouldnt have been so easy if aureus and arcon hadn't helped me on some stuff so thanks guys.

    gimpyb.lua
    Code:
    --[[
    Copyright (c) 2013, Ricky Gall All rights reserved.
    
    Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
    
        Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
        Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
        Neither the name of the organization nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
    
    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    ]]
    require 'tablehelper'
    function event_load()
    	player = get_player()
    	watchbuffs = {	
    					Haste=180,
    					Refresh=150,
    					Protect=1800
    				} -- only adding a few so you can get the idea
    	createdTimers = T{}
    end
    
    function event_addon_command(arg1,arg2,arg3)
    	if arg1 == 'newtimer' then
    		createTimer(arg2,arg3)
    	end
    end
    
    function event_gain_status(id,name)
    	createTimer(name)
    end
    
    function event_lose_status(id,name)
    	deleteTimer(name)
    end
    
    function createTimer(name,target)
    	write('createTimer function called')
    	if watchbuffs[name] ~= nil then
    		write('watchbuffs table wasnt blank')
    		if target == nil then
    			target = 'self'
    		elseif target:lower() == player['name']:lower() then
    			target = 'self'
    		else
    			target = target
    		end
    		write(#createdTimers)
    		for u = 1, #createdTimers do
    			write(createdTimers[u])
    			if createdTimers[u] == name..' ('..target..')' then
    				write('Create Command: '..name..' ('..target..')')
    				send_command('timers d "'..name..' ('..target..')"')
    				table.remove(createdTimers,u)
    				send_command('wait .1;lua c gimpyb newtimer '..name..' '..target)
    				return
    			end
    		end
    		write('Create Command: '..name..' ('..target..')')
    		send_command('timers c "'..name..' ('..target..')" '..watchbuffs[name].." down "..name)
    		createdTimers[#createdTimers+1] = name..' ('..target..')'
    	end
    end
    
    function deleteTimer(name)
    	for u = 1, #createdTimers do
    		write(createdTimers[u])
    		if createdTimers[u] == name..' (self)' then
    			write('Delete Command: '..name..' (self)')
    			send_command('timers d "'..name..' (self)"')
    			table.remove(createdTimers,u)
    		end
    	end
    end
    
    function event_incoming_text(old,new,color)
    	a,b,caster,caster_spell,target,target_effect = string.find(old,'(%w+) casts ([%w%s]+)..(%w+) gains the effect of (%w+).')
    	if a ~= nil then
    		write('caster: '..caster..' Spell: '..caster_spell..' Target: '..target..' Effect: '..target_effect)
    		if caster:lower() == player['name']:lower() then
    			createTimer(target_effect,target)
    		end
    	end
    	return new, color  -- must be here or crashes will ensue
    end

  12. #92
    Melee Summoner
    Join Date
    Mar 2010
    Posts
    35
    BG Level
    1
    FFXIV Character
    Ihm Kasukabe
    FFXIV Server
    Ragnarok
    FFXI Server
    Siren

    Quote Originally Posted by Khajit View Post
    V4 wont let me use yarnball. Is there an acceptable substitute available? I figured it would be timers but I see nothing in the settings xml that if altered makes remaining buff duration show. I dont exactly need it on brd usually but when busy in something it's nice to have.
    v3.4 plugins aren't compatible with v4, so currently there is no yarnball plugin in v4. Timers will integrate yarnball function soon, but having a recast function timers out seemed better than none at all~

  13. #93
    Insert witty title here
    Join Date
    Jun 2007
    Posts
    1,193
    BG Level
    6
    FFXI Server
    Phoenix

    Is there a way to specify what order plugins get loaded in for v4? Itemizer will throw an error about improperly formatted command if it is loaded before spellcast and you use a /ma ClassTrigger .whatever spell. I can show the error, but the way that I've gotten around it is to reload itemizer when I log in. I could just have autoexec reload it on login, but I'd rather just be able to load plugins in whatever order is needed instead, like it would do in 3.x windower, via the init.txt. Correct me if I'm wrong, but it appears to load them based on the settings.xml, but even changing the order they are listed in that file, it seems to load them alphabetically.

  14. #94
    Sea Torques
    Join Date
    Sep 2012
    Posts
    743
    BG Level
    5
    FFXI Server
    Leviathan

    Personally I rather hope SC and/or Itemizer get fixed instead (whichever the culprit is). This bug has been around ever since Itemizer was released, I totally forgot about it until you just mentioned it.

  15. #95
    Relic Shield
    Join Date
    Oct 2006
    Posts
    1,600
    BG Level
    6
    FFXI Server
    Odin

    Quote Originally Posted by Arcon View Post
    Personally I rather hope SC and/or Itemizer get fixed instead (whichever the culprit is). This bug has been around ever since Itemizer was released, I totally forgot about it until you just mentioned it.
    Can't you just disable debug messages in the config file? I swear I fixed this already.

  16. #96
    Old Merits
    Join Date
    Apr 2012
    Posts
    1,109
    BG Level
    6

    Quote Originally Posted by Mafai View Post
    Can't you just disable debug messages in the config file? I swear I fixed this already.
    You could fix it just by turning chatoutput to false in itemizer config file.

  17. #97
    Insert witty title here
    Join Date
    Jun 2007
    Posts
    1,193
    BG Level
    6
    FFXI Server
    Phoenix

    I don't want to not see messages from Itemizer, I use it for several things and like to know that it's doing what it's supposed to be doing. I just want it to ignore /ma ClassTrigger spells and not send an error when I'm doing nothing with Itemizer at all. It works "properly" if loaded after spellcast is loaded, but Windower4 loads plugins in alphabetic order, and I can't find a way to change that. So if there is a way to change the order plugins get loaded, it'll "fix" the issue.

  18. #98
    Hydra
    Join Date
    Mar 2011
    Posts
    139
    BG Level
    3
    FFXI Server
    Caitsith

    You could try just fixing your macros or spellcast commands or whatever you're using to put quotes around the spell name. That's what it's complaining about -- the command is improperly formatted

  19. #99
    Relic Shield
    Join Date
    Oct 2006
    Posts
    1,600
    BG Level
    6
    FFXI Server
    Odin

    Quote Originally Posted by Fake View Post
    You could fix it just by turning chatoutput to false in itemizer config file.
    At one time that output was not checking to see if the output was enabled/disabled in the config file. I fixed that in a recent (within last 6 months) version.

  20. #100
    Cerberus
    Join Date
    Jun 2007
    Posts
    411
    BG Level
    4
    FFXIV Character
    Ninita Nita
    FFXIV Server
    Excalibur
    FFXI Server
    Shiva
    WoW Realm
    Gnomeregan

    bTimers (gimpyb renamed) updated

    Working on this today i got perpetuance working. I believe composure too but i didn't wanna change to rdm to find out (sorry). i'll include it and the dependencies for it in this post. First picture to show what it looks like (my part is the one in the center not the upper right hand corner.) Gonna be a lot in this post so i'll keep this short.

    Quck Edit: This uses ihm's timers plugin by utilizing custom timers. So if you wish to move them you need to edit plugins/settings/timers.xml. The following is the part you will need to change:
    <customX>360</customX>
    <customY>350</customY>



    addons/bTimers/bTimers.lua
    Code:
    --[[
    Copyright (c) 2013, Ricky Gall All rights reserved.
    
    Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
    
        Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
        Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
        Neither the name of the organization nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
    
    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    ]]
    require 'tablehelper'
    require 'logger'
    function event_load()
    	player = get_player()
    	buffs = T(get_player()['buffs'])
    	watchbuffs = {	
    					Haste=180,
    					Refresh=150,
    					Protect=1800,
    					Shell=1800,
    					Regen=60,
    					Phalanx=180
    				} -- only adding a few so you can get the idea
    	createdTimers = T{}
    	buffExtension = T{
    					Perpetuance=2.5,
    					LightArts=1.8,
    					Rasa=2.28,
    					Composure=3
    				}
    	extendables = T { 'Regen','Refresh','Blink','Stoneskin','Aquaveil','Haste','Temper','Phalanx' }
    	extend = T{}
    	t = 0
    end
    
    function event_unload()
    	for u = 1, #createdTimers do
    		send_command('timers d "'..createdTimers[u]..'"')
    	end
    end
    
    function event_addon_command(arg1,arg2,arg3)
    	if arg1 == 'newtimer' then
    		createTimer(arg2,arg3)
    	end
    end
    
    function event_gain_status(id,name)
    	if id == 469 then
    		extend['Perpetuance'] = os.clock()
    	end
    	if id == 366 then
    		extend['Accession'] = os.clock()
    	end
    	createTimer(name)
    end
    
    function event_lose_status(id,name)
    	deleteTimer(1,name)
    end
    
    function createTimer(name,target)
    	if watchbuffs[name] ~= nil then
    		if target == nil then
    			target = 'Self'
    		elseif target:lower() == player['name']:lower() then
    			target = 'Self'
    		else
    			target = target
    		end
    		for u = 1, #createdTimers do
    			if createdTimers[u] == name..' ('..target..')' then
    				send_command('timers d "'..name..' ('..target..')"')
    				createdTimers:remove(u)
    				send_command('wait .1;lua c bTimers newtimer '..name..' '..target)
    				return
    			end
    		end
    		if extendables:contains(name) then
    			buffs = T(get_player()['buffs'])
    			timer = tonumber(watchbuffs[name]) - 5
    			if extend ~= nil then
    				e = os.clock()-60
    				if extend['Perpetuance'] ~= nil then
    					if e < extend['Perpetuance'] then
    						if target == 'self' then
    							t = t + 1
    							if math.even(t) then
    								extend['Perpetuance'] = nil
    								t = 0
    							end
    						else
    							extend['Perpetuance'] = nil
    						end
    							
    						if name == 'Regen' then
    							timer = tonumber(watchbuffs[name]) * buffExtension['LightArts'] * buffExtension['Perpetuance'] - 5
    						else
    							timer = tonumber(watchbuffs[name]) * buffExtension['Perpetuance'] - 5
    						end
    					end
    				end
    			elseif buffs:contains(377) then
    				if name == 'Regen' then
    					if player['main_job_id'] == 20 then
    						timer = tonumber(watchbuffs[name]) * buffExtension['Rasa'] - 5
    					end
    				end
    			elseif buffs:contains(358) then
    				if name == 'Regen' then
    					if player['main_job_id'] == 20 then
    						timer = tonumber(watchbuffs[name]) * buffExtension['LightArts'] - 5
    					end
    				end
    			elseif buffs:contains(419) then
    				timer = tonumber(watchbuffs[name]) * buffExtension['Composure'] - 5
    			end
    		else
    			timer = tonumber(watchbuffs[name]) - 5
    		end
    			
    		send_command('timers c "'..name..' ('..target..')" '..timer..' down '..name)
    		createdTimers[#createdTimers+1] = name..' ('..target..')'
    	end
    end
    
    function deleteTimer(mode,effect,target)
    	if mode == 1 then -- This mode is for when a buff drops off you (the gain buff triggers faster then the chat message
    		for u = 1, #createdTimers do
    			if createdTimers[u] == effect..' (Self)' then
    				send_command('timers d "'..effect..' (Self)"')
    				createdTimers:remove(u)
    			end
    		end
    	elseif mode == 2 then
    		for u = 1, #createdTimers do
    			if createdTimers[u] == effect..' ('..target..')' then
    				send_command('timers d "'..effect..' ('..target..')"')
    				createdTimers:remove(u)
    			end
    		end
    	else
    		return
    	end
    		
    end
    
    function event_incoming_text(old,new,color)
    	if T{64,56,191}:contains(color) then
    		a,b,caster,caster_spell,target,target_effect = string.find(old,'(%w+) casts ([%w%s]+)..(%w+) gains the effect of (%w+).')
    		c,d,tWear,eWear = string.find(old,'(%w+)\'s (%w+) effect wears off.')
    		e,f,tar2,eff2 = string.find(old,'(%w+) gains the effect of (%w+).')
    		if a ~= nil then
    			if caster:lower() == player['name']:lower() then
    				createTimer(target_effect,target)
    			elseif target:lower() == player['name']:lower() then
    				createTimer(target_effect,target)
    			end
    		elseif c ~= nil then
    			deleteTimer(2,eWear,tWear)
    		elseif e ~= nil then
    			if tar2:lower() == player['name']:lower() then
    				createTimer(eff2,tar2)
    			end
    		end
    	end
    	return new, color  -- must be here or crashes will ensue
    end

    addons/libs/tablehelper.lua --Arcon wrote this
    Code:
    --[[
    Lua supports two different kinds of tables, numerically indexed tables, and string-indexed tables. String-indexed tables will return 0 as their length with the # operator, regardless of their actual element count. They can be iterated over with the pairs(t) function. Numerically indexed tables can be iterated over with ipairs(t) function. Since they use different functions for iteration, a check if #t == 0 will often be found, and serves to distinguish between the different kinds of tables.
    ]]
    
    require 'mathhelper'
    
    _table_meta = {__index=table}
    
    -- Constructor for T-tables.
    -- t = T{...} for explicit declaration.
    -- t = T(regular_table) to cast to a T-table.
    function T(t)
    	-- Sets the metatable of T to _table_meta, which specifies the table namespace for all T-tables.
    	-- This makes every function that tables have also available for T-tables.
    	return setmetatable(t, _table_meta)
    end
    
    -- Returns true if searchval is in t.
    function table.contains(t, searchval)
    	for key, val in pairs(t) do
    		if val == searchval then
    			return true
    		end
    	end
    	
    	return false
    end
    
    -- Appends to the end of an array table.
    function table.append(t, val)
    	t[#t+1] = val
    	return t
    end
    
    -- Returns if the key searchkey is in t.
    function table.containskey(t, searchkey)
    	return t[searchkey] ~= nil
    end
    
    -- Returns a partial table sliced from t, equivalent to t[x:y] in certain languages.
    -- Negative indices will be used to access the table from the other end.
    function table.slice(t, from, to)
    	from = from or 1
    	if from < 0 then
    		-- Modulo the negative index, to get it back into range.
    		from = from%#t+1
    	end
    	to = to or #t
    	if to < 0 then
    		-- Modulo the negative index, to get it back into range.
    		to = (to-1)%#t+1
    	end
    	
    	-- Copy relevant elements into a blank T-table.
    	local res = T{}
    	for i = from, to do
    		res[#res+1] = t[i]
    	end
    	
    	return res
    end
    
    -- Applies function fn to all elements of the table and returns the resulting table.
    function table.map(t, fn)
    	local res = T{}
    	for key, val in pairs(t) do
    		-- Evaluate fn with the element and store it.
    		res[key] = fn(val)
    	end
    	
    	return res
    end
    
    -- Returns a table with all elements from t that satisfy the condition fn.
    function table.filter(t, fn)
    	local res = T{}
    	for key, val in pairs(t) do
    		-- Only copy if fn(val) evaluates to true
    		if fn(val) then
    			res[key] = val
    		end
    	end
    	
    	return res
    end
    
    -- Returns a table with all elements from t whose keys satisfy the condition fn.
    function table.filterkey(t, fn)
    	local res = T{}
    	for key, val in pairs(t) do
    		-- Only copy if fn(key) evaluates to true
    		if fn(key) then
    			res[key] = val
    		end
    	end
    	
    	return res
    end
    
    -- Returns the result of applying the function fn to the first two elements of t, then again on the result and the next element from t, until all elements are accumulated.
    -- init is an optional initial value to be used. If provided, init and t[1] will be compared first, otherwise t[1] and t[2].
    function table.reduce(t, fn, init)
    	t = T(t)
    	
    	-- Return the initial argument if table is empty
    	if t:isempty() then
    		return init
    	end
    	
    	-- Set the accumulator variable to the init value (which can be nil as well)
    	acc = init
    	for key, val in pairs(t) do
    		-- If the accumulator is nil, which can only happen on the first iteration and if no initial value was provided, set acc to the first value val.
    		if acc == nil then
    			acc = val
    		-- If not, which will hold true for all subsequent values, apply the funtion to the accumulated value and the next table value and store the result.
    		else
    			acc = fn(acc, val)
    		end
    	end
    	
    	return acc
    end
    
    -- Return true if any element of t satisfies the condition fn.
    function table.any(t, fn)
    	for key, val in pairs(t) do
    		if(fn(val) == true) then
    			return true
    		end
    	end
    	return false
    end
    
    -- Return true if all elements of t satisfy the condition fn.
    function table.all(t, fn)
    	for key, val in pairs(t) do
    		if(fn(val) ~= true) then
    			return false
    		end
    	end
    	return true
    end
    
    -- Concatenates all elements with a whitespace in between.
    function table.sconcat(t)
    	return table.concat(t, ' ')
    end
    
    -- Sum up all elements of a table.
    function table.sum(t)
    	return table.reduce(t, math.sum, 0)
    end
    
    -- Multiply all elements of a table.
    function table.mult(t)
    	return table.reduce(t, math.mult, 1)
    end
    
    -- Check if table is empty.
    function table.isempty(t)
    	return next(t) == nil
    end

    addons/libs/logger.lua --Arcon wrote this

    Code:
    --[[
    This library provides a set of functions to aid in debugging.
    ]]
    
    require 'tablehelper'
    
    -- Prints the arguments provided to the FFXI chatlog, in the same color used for Campaign/Bastion alerts and Kupower messages. Can be changed below.
    -- Converts any kind of object type to a string, so it's type-safe.
    -- Concatenates all provided arguments with whitespaces.
    function log(...)
    	local args = T{...}
    	local strtable = T(args:map(tostring))
    	add_to_chat(160, strtable:sconcat())
    end
    
    -- Prints a table in explicit Lua syntax: {...}
    function table.print(t)
    	-- Convert all values to strings, to make sure everything is ready for string concatenation.
    	t = T(t):map(tostring)
    	tstr = ''
    	
    	-- Iterate over table.
    	for key, val in pairs(t) do
    		-- Append to the string.
    		tstr = tstr..key..'='..val
    		
    		-- Add commata, unless it's the last value.
    		if next(t, key) ~= nil then
    			tstr = tstr..', '
    		end
    	end
    	
    	-- Output the result, enclosed in braces.
    	log('{'..tstr..'}')
    end
    
    -- Prints a table vertically in explicit Lua syntax, with every element in its own line:
    --- {
    ---     ...
    --- }
    function table.vprint(t)
    	-- Convert all values to strings, to make sure everything is ready for string concatenation.
    	t = T(t):map(tostring)
    	
    	log('{')
    	for key, val in pairs(t) do
    		-- Output one line with indent.
    		log('    '..key..'='..val)
    	end
    	log('}')
    end

    addons/libs/mathhelper.lua -- Arcon made this one too

    Code:
    --[[
    A few math helper functions.
    ]]
    
    -- Rounds to prec decimal digits. Accepts negative numbers for precision.
    function math.round(num, prec)
    	local mult = 10^(prec or 0)
    	return math.floor(num * mult + 0.5) / mult
    end
    
    -- Returns the sign of num, -1 for a negative number, +1 for a positive number and 0 for 0.
    function math.sgn(num)
    	return num/math.abs(num)
    end
    
    -- Returns true, if num is even, false otherwise.
    function math.even(num)
    	return num%2 == 0
    end
    
    -- Returns true, if num is odd, false otherwise.
    function math.odd(num)
    	return num%2 == 1
    end
    
    -- Adds two numbers.
    function math.sum(val1, val2)
    	return val1+val2
    end
    
    -- Multiplies two numbers.
    function math.mult(val1, val2)
    	return val1*val2
    end

Closed Thread
Page 5 of 307 FirstFirst ... 3 4 5 6 7 15 55 ... LastLast

Similar Threads

  1. Service and Support
    By Ribeye in forum FFXI: Everything
    Replies: 8
    Last Post: 2009-10-17, 18:23
  2. Windows vista and FFXI problem
    By Takeno in forum FFXI: Everything
    Replies: 1
    Last Post: 2007-07-26, 13:36
  3. Windows Vista and Windower
    By divisortheory in forum FFXI: Everything
    Replies: 35
    Last Post: 2006-06-23, 04:19