Jump to content

seyonx66

Inactive Member
  • Posts

    28
  • Joined

  • Last visited

  • Feedback

    0%

Posts posted by seyonx66

  1. 15 minutes ago, TMP4 said:

    This is the hidden content, please
     Tell me if it works.

    Quote

    uiInventory.py(line:566) RefreshBonus
    ui.py(line:2704) GetChild

    InventoryWindow.RefreshBonus.BindObject - exceptions.KeyError:Sword_def_Value

    0721 19:04:47445 :: ============================================================================================================
    0721 19:04:47445 :: Abort!!!!

    Here is syserr. Still not working.

  2. 1 hour ago, TMP4 said:

    So not in command line but powershell.

     

    EDIT: now my console give me a new error.

    Quote


    Reiche_Ch1 is not running
    ./auto.sh: ./Reiche_Ch1: not found
    Kern1_Ch1 is not running
    ./auto.sh: ./Kern1_Ch1: not found
    Kern2_Ch1 is not running
    ./auto.sh: ./Kern2_Ch1: not found
    Kern3_Ch1 is not running
    ./auto.sh: ./Kern3_Ch1: not found
     

     

  3. 3 hours ago, TMP4 said:

    Screenshot-1.png

    I tried to google your serverfile and i found that your ch1 port is 13001. Well at the moment it is not open. You may have other port or may your channel is not running at the momement but you can try this Test-NetConnection ip -port port command in powershell to check your real port while your server is running.  (I tested it with 13031 too because i saw that too, also 13000)

    If the correct port is off while your server is running that means your BSD have some firewall, you have to ask your hosting about it. Or other app using it as  I3ooI3oo said but i'm pretty sure 13001 is not really used by any BSD app.

    About the Test-NetConnection it's writing: 'Test-NetConnection' is not recognized as an internal or external command,
    operable program or batch file

  4. 11 minutes ago, TMP4 said:

    "/usr/home/game/Datenbank/db.core: No such file or directory."

    So no db.core generated.

    You're really unlucky because you have zero errors while your server can not start. I have to pass it sorry😞

    I hope someone will comment some useful thing to help resolve it.

     

    One more thing, did you tried the "ps" command after you started the server right?

    ofcourse not 😄

    Quote


     PID TT  STAT    TIME COMMAND
    1367 v0  Is+  0:00.00 /usr/libexec/getty Pc ttyv0
    1368 v1  Is+  0:00.00 /usr/libexec/getty Pc ttyv1
    1369 v2  Is+  0:00.00 /usr/libexec/getty Pc ttyv2
    1370 v3  Is+  0:00.00 /usr/libexec/getty Pc ttyv3
    1371 v4  Is+  0:00.00 /usr/libexec/getty Pc ttyv4
    1372 v5  Is+  0:00.00 /usr/libexec/getty Pc ttyv5
    1373 v6  Is+  0:00.00 /usr/libexec/getty Pc ttyv6
    1374 v7  Is+  0:00.00 /usr/libexec/getty Pc ttyv7
    3294  0  Ss   0:00.04 -csh (csh)
    3299  0  S    0:00.03 ./db
    3301  0  S    0:00.00 /bin/sh ./auto.sh
    3307  0  S    0:00.18 ./Reiche_Ch1 & (game)
    3308  0  S    0:00.00 /bin/sh ./auto.sh
    3314  0  R    0:00.07 ./Kern1_Ch1 & (game)
    3315  0  S    0:00.00 /bin/sh ./auto.sh
    3321  0  S    0:00.15 ./Kern2_Ch1 & (game)
    3322  0  S    0:00.00 /bin/sh ./auto.sh
    3328  0  R    0:00.10 ./Kern3_Ch1 & (game)
    3329  0  S    0:00.00 /bin/sh ./auto.sh
    3335  0  S    0:00.14 ./Neutraler_Server & (game)
    3336  0  S    0:00.00 /bin/sh ./auto.sh
    3342  0  S    0:00.06 ./auth & (game)
    3343  0  R+   0:00.00 ps
     

    here it is

  5. 5 minutes ago, TMP4 said:

    Your file have no debugging symbols meaning it is stripped. Stripped files can't be debugged. Compile a new and make sure to not strip it. Maybe you have automatic strip in your Makefile...

    Also you're doing it wrong. You should do it that way:

    gdb
    
    cd /usr/home/game/channel1/core1
    
    file game
    
    core game.core
    
    bt full

    But we need your db's first not your game core, so cd there, file db, core db.core, bt full.

    There a little chance it would give useful information but since the syserr and outputs are not helping, it's worth to give a try.

     

    Also be sure check what  I3ooI3oo said.

     

    Im doing this for the first time, sorry 😄 the db is here

    Quote

    root@DarkLight:~ # gdb
    GNU gdb 6.1.1 [FreeBSD]
    Copyright 2004 Free Software Foundation, Inc.
    GDB is free software, covered by the GNU General Public License, and you are
    welcome to change it and/or distribute copies of it under certain conditions.
    Type "show copying" to see the conditions.
    There is absolutely no warranty for GDB.  Type "show warranty" for details.
    This GDB was configured as "amd64-marcel-freebsd".
    (gdb) cd /usr/home/Datenbank
    /usr/home/Datenbank: No such file or directory.
    (gdb) cd /usr/home/game/Datenbank
    Working directory /usr/home/game/Datenbank.
    (gdb) file db
    Reading symbols from db...done.
    (gdb) core db.core
    /usr/home/game/Datenbank/db.core: No such file or directory.
    (gdb) bt all
    No stack.
    (gdb)
     

     

  6. 2 minutes ago, I3ooI3oo said:

    Check what services are using your ports. Maybe some of your ports you're using ale already in use. Then game file can't use that port.

    Quote

     Startet die Datenbank ..
    Real Server
    Log OffAsyncSQL: connected to localhost (reconnect 1)
    Success PLAYER
    AsyncSQL: connected to localhost (reconnect 1)
    AsyncSQL: connected to localhost (reconnect 1)
    AsyncSQL: connected to localhost (reconnect 1)
    Success ACCOUNT
    AsyncSQL: connected to localhost (reconnect 1)
    AsyncSQL: connected to localhost (reconnect 1)
    AsyncSQL: connected to localhost (reconnect 1)
    Success COMMON
    AsyncSQL: connected to localhost (reconnect 1)
    AsyncSQL: connected to localhost (reconnect 1)
    AsyncSQL: connected to localhost (reconnect 1)
    Success HOTBACKUP
    AsyncSQL: connected to localhost (reconnect 1)
    AsyncSQL: connected to localhost (reconnect 1)
    Reiche_Ch1 is not running
    PUBLIC_IP: 185.91.118.181 interface em0
    HOSTNAME: channel1
    AsyncSQL: connected to localhost (reconnect 1)
    CommonSQL connected
    Setting Locale "germany" (Path: locale/germany)
    Setting DB to locale latin1
    AsyncSQL: connected to localhost (reconnect 1)
    PlayerSQL connected
    LogSQL connected
    AsyncSQL: connected to localhost (reconnect 1)
    AsyncSQL: connected to localhost (reconnect 1)
    SKILL_POWER_BY_LEVEL 0 5 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 50 52 54 56 58 60 63 66 69 72 82 85 88 91 94 98 102 106 110 115 125 125 125 125 125
    SKILL_POWER_BY_JOB 0 0 5 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 50 52 54 56 58 60 63 66 69 72 82 85 88 91 94 98 102 106 110 115 125 125 125 125 125
    SKILL_POWER_BY_JOB 1 0 5 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 50 52 54 56 58 60 63 66 69 72 82 85 88 91 94 98 102 106 110 115 125 125 125 125 125
    SKILL_POWER_BY_JOB 2 0 5 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 50 52 54 56 58 60 63 66 69 72 82 85 88 91 94 98 102 106 110 115 125 125 125 125 125
    SKILL_POWER_BY_JOB 3 0 5 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 50 52 54 56 58 60 63 66 69 72 82 85 88 91 94 98 102 106 110 115 125 125 125 125 125
    SKILL_POWER_BY_JOB 4 0 5 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 50 52 54 56 58 60 63 66 69 72 82 85 88 91 94 98 102 106 110 115 125 125 125 125 125
    SKILL_POWER_BY_JOB 5 0 5 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 50 52 54 56 58 60 63 66 69 72 82 85 88 91 94 98 102 106 110 115 125 125 125 125 125
    SKILL_POWER_BY_JOB 6 0 5 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 50 52 54 56 58 60 63 66 69 72 82 85 88 91 94 98 102 106 110 115 125 125 125 125 125
    SKILL_POWER_BY_JOB 7 0 5 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 50 52 54 56 58 60 63 66 69 72 82 85 88 91 94 98 102 106 110 115 125 125 125 125 125
    MAP ALLOW 41
    MAP ALLOW 43
    MAP ALLOW 44
    MAP ALLOW 1
    MAP ALLOW 3
    MAP ALLOW 4
    MAP ALLOW 21
    MAP ALLOW 23
    MAP ALLOW 24
    PLAYER_MAX_LEVEL: 105
    AsyncSQL: connected to localhost (reconnect 1)
    LocaleService locale/germany/locale_string.txt
    connect: Connection refused
    Kern1_Ch1 is not running
    PUBLIC_IP: 185.91.118.181 interface em0
    HOSTNAME: channel1
    AsyncSQL: connected to localhost (reconnect 1)
    CommonSQL connected
    Setting Locale "germany" (Path: locale/germany)
    Setting DB to locale latin1
    AsyncSQL: connected to localhost (reconnect 1)
    PlayerSQL connected
    LogSQL connected
    AsyncSQL: connected to localhost (reconnect 1)
    AsyncSQL: connected to localhost (reconnect 1)
    SKILL_POWER_BY_LEVEL 0 5 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 50 52 54 56 58 60 63 66 69 72 82 85 88 91 94 98 102 106 110 115 125 125 125 125 125
    AsyncSQL: connected to localhost (reconnect 1)
    SKILL_POWER_BY_JOB 0 0 5 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 50 52 54 56 58 60 63 66 69 72 82 85 88 91 94 98 102 106 110 115 125 125 125 125 125
    SKILL_POWER_BY_JOB 1 0 5 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 50 52 54 56 58 60 63 66 69 72 82 85 88 91 94 98 102 106 110 115 125 125 125 125 125
    SKILL_POWER_BY_JOB 2 0 5 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 50 52 54 56 58 60 63 66 69 72 82 85 88 91 94 98 102 106 110 115 125 125 125 125 125
    SKILL_POWER_BY_JOB 3 0 5 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 50 52 54 56 58 60 63 66 69 72 82 85 88 91 94 98 102 106 110 115 125 125 125 125 125
    SKILL_POWER_BY_JOB 4 0 5 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 50 52 54 56 58 60 63 66 69 72 82 85 88 91 94 98 102 106 110 115 125 125 125 125 125
    SKILL_POWER_BY_JOB 5 0 5 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 50 52 54 56 58 60 63 66 69 72 82 85 88 91 94 98 102 106 110 115 125 125 125 125 125
    SKILL_POWER_BY_JOB 6 0 5 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 50 52 54 56 58 60 63 66 69 72 82 85 88 91 94 98 102 106 110 115 125 125 125 125 125
    SKILL_POWER_BY_JOB 7 0 5 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 50 52 54 56 58 60 63 66 69 72 82 85 88 91 94 98 102 106 110 115 125 125 125 125 125
    MAP ALLOW 5
    MAP ALLOW 25
    MAP ALLOW 45
    MAP ALLOW 107
    MAP ALLOW 108
    MAP ALLOW 109
    MAP ALLOW 61
    MAP ALLOW 62
    MAP ALLOW 63
    MAP ALLOW 64
    MAP ALLOW 65
    MAP ALLOW 66
    MAP ALLOW 351
    PLAYER_MAX_LEVEL: 105
    LocaleService locale/germany/locale_string.txt
    connect: Connection refused
    Kern2_Ch1 is not running
    PUBLIC_IP: 185.91.118.181 interface em0
    HOSTNAME: channel1
    AsyncSQL: connected to localhost (reconnect 1)
    CommonSQL connected
    Setting Locale "germany" (Path: locale/germany)
    Setting DB to locale latin1
    AsyncSQL: connected to localhost (reconnect 1)
    PlayerSQL connected
    LogSQL connected
    AsyncSQL: connected to localhost (reconnect 1)
    AsyncSQL: connected to localhost (reconnect 1)
    SKILL_POWER_BY_LEVEL 0 5 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 50 52 54 56 58 60 63 66 69 72 82 85 88 91 94 98 102 106 110 115 125 125 125 125 125
    AsyncSQL: connected to localhost (reconnect 1)
    SKILL_POWER_BY_JOB 0 0 5 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 50 52 54 56 58 60 63 66 69 72 82 85 88 91 94 98 102 106 110 115 125 125 125 125 125
    SKILL_POWER_BY_JOB 1 0 5 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 50 52 54 56 58 60 63 66 69 72 82 85 88 91 94 98 102 106 110 115 125 125 125 125 125
    SKILL_POWER_BY_JOB 2 0 5 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 50 52 54 56 58 60 63 66 69 72 82 85 88 91 94 98 102 106 110 115 125 125 125 125 125
    SKILL_POWER_BY_JOB 3 0 5 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 50 52 54 56 58 60 63 66 69 72 82 85 88 91 94 98 102 106 110 115 125 125 125 125 125
    SKILL_POWER_BY_JOB 4 0 5 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 50 52 54 56 58 60 63 66 69 72 82 85 88 91 94 98 102 106 110 115 125 125 125 125 125
    SKILL_POWER_BY_JOB 5 0 5 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 50 52 54 56 58 60 63 66 69 72 82 85 88 91 94 98 102 106 110 115 125 125 125 125 125
    SKILL_POWER_BY_JOB 6 0 5 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 50 52 54 56 58 60 63 66 69 72 82 85 88 91 94 98 102 106 110 115 125 125 125 125 125
    SKILL_POWER_BY_JOB 7 0 5 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 50 52 54 56 58 60 63 66 69 72 82 85 88 91 94 98 102 106 110 115 125 125 125 125 125
    MAP ALLOW 67
    MAP ALLOW 68
    MAP ALLOW 69
    MAP ALLOW 70
    MAP ALLOW 71
    MAP ALLOW 104
    MAP ALLOW 217
    MAP ALLOW 216
    PLAYER_MAX_LEVEL: 105
    LocaleService locale/germany/locale_string.txt
    connect: Connection refused
    Kern3_Ch1 is not running
    PUBLIC_IP: 185.91.118.181 interface em0
    HOSTNAME: channel1
    AsyncSQL: connected to localhost (reconnect 1)
    CommonSQL connected
    Setting Locale "germany" (Path: locale/germany)
    Setting DB to locale latin1
    AsyncSQL: connected to localhost (reconnect 1)
    PlayerSQL connected
    LogSQL connected
    AsyncSQL: connected to localhost (reconnect 1)
    AsyncSQL: connected to localhost (reconnect 1)
    SKILL_POWER_BY_LEVEL 0 5 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 50 52 54 56 58 60 63 66 69 72 82 85 88 91 94 98 102 106 110 115 125 125 125 125 125
    AsyncSQL: connected to localhost (reconnect 1)
    SKILL_POWER_BY_JOB 0 0 5 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 50 52 54 56 58 60 63 66 69 72 82 85 88 91 94 98 102 106 110 115 125 125 125 125 125
    SKILL_POWER_BY_JOB 1 0 5 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 50 52 54 56 58 60 63 66 69 72 82 85 88 91 94 98 102 106 110 115 125 125 125 125 125
    SKILL_POWER_BY_JOB 2 0 5 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 50 52 54 56 58 60 63 66 69 72 82 85 88 91 94 98 102 106 110 115 125 125 125 125 125
    SKILL_POWER_BY_JOB 3 0 5 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 50 52 54 56 58 60 63 66 69 72 82 85 88 91 94 98 102 106 110 115 125 125 125 125 125
    SKILL_POWER_BY_JOB 4 0 5 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 50 52 54 56 58 60 63 66 69 72 82 85 88 91 94 98 102 106 110 115 125 125 125 125 125
    SKILL_POWER_BY_JOB 5 0 5 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 50 52 54 56 58 60 63 66 69 72 82 85 88 91 94 98 102 106 110 115 125 125 125 125 125
    SKILL_POWER_BY_JOB 6 0 5 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 50 52 54 56 58 60 63 66 69 72 82 85 88 91 94 98 102 106 110 115 125 125 125 125 125
    SKILL_POWER_BY_JOB 7 0 5 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 50 52 54 56 58 60 63 66 69 72 82 85 88 91 94 98 102 106 110 115 125 125 125 125 125
    MAP ALLOW 72
    MAP ALLOW 73
    MAP ALLOW 301
    MAP ALLOW 302
    MAP ALLOW 303
    MAP ALLOW 304
    PLAYER_MAX_LEVEL: 105
    LocaleService locale/germany/locale_string.txt
    connect: Connection refused
    Neutraler_Server is not running
    PUBLIC_IP: 185.91.118.181 interface em0
    HOSTNAME: game99
    AsyncSQL: connected to localhost (reconnect 1)
    CommonSQL connected
    Setting Locale "germany" (Path: locale/germany)
    Setting DB to locale latin1
    AsyncSQL: connected to localhost (reconnect 1)
    PlayerSQL connected
    LogSQL connected
    AsyncSQL: connected to localhost (reconnect 1)
    AsyncSQL: connected to localhost (reconnect 1)
    SKILL_POWER_BY_LEVEL 0 5 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 50 52 54 56 58 60 63 66 69 72 82 85 88 91 94 98 102 106 110 115 125 125 125 125 125
    AsyncSQL: connected to localhost (reconnect 1)
    SKILL_POWER_BY_JOB 0 0 5 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 50 52 54 56 58 60 63 66 69 72 82 85 88 91 94 98 102 106 110 115 125 125 125 125 125
    SKILL_POWER_BY_JOB 1 0 5 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 50 52 54 56 58 60 63 66 69 72 82 85 88 91 94 98 102 106 110 115 125 125 125 125 125
    SKILL_POWER_BY_JOB 2 0 5 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 50 52 54 56 58 60 63 66 69 72 82 85 88 91 94 98 102 106 110 115 125 125 125 125 125
    SKILL_POWER_BY_JOB 3 0 5 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 50 52 54 56 58 60 63 66 69 72 82 85 88 91 94 98 102 106 110 115 125 125 125 125 125
    SKILL_POWER_BY_JOB 4 0 5 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 50 52 54 56 58 60 63 66 69 72 82 85 88 91 94 98 102 106 110 115 125 125 125 125 125
    SKILL_POWER_BY_JOB 5 0 5 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 50 52 54 56 58 60 63 66 69 72 82 85 88 91 94 98 102 106 110 115 125 125 125 125 125
    SKILL_POWER_BY_JOB 6 0 5 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 50 52 54 56 58 60 63 66 69 72 82 85 88 91 94 98 102 106 110 115 125 125 125 125 125
    SKILL_POWER_BY_JOB 7 0 5 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 50 52 54 56 58 60 63 66 69 72 82 85 88 91 94 98 102 106 110 115 125 125 125 125 125
    -----------------------------------------------
    TEST_SERVER
    -----------------------------------------------
    MAP ALLOW 81
    MAP ALLOW 103
    MAP ALLOW 105
    MAP ALLOW 110
    MAP ALLOW 111
    MAP ALLOW 112
    MAP ALLOW 113
    MAP ALLOW 181
    MAP ALLOW 182
    MAP ALLOW 183
    MAP ALLOW 114
    MAP ALLOW 118
    MAP ALLOW 119
    MAP ALLOW 150
    PLAYER_MAX_LEVEL: 105
    LocaleService locale/germany/locale_string.txt
    connect: Connection refused
    auth is not running
    PUBLIC_IP: 185.91.118.181 interface em0
    HOSTNAME: auth
    AsyncSQL: connected to localhost (reconnect 1)
    CommonSQL connected
    Setting Locale "germany" (Path: locale/germany)
    Setting DB to locale latin1
    AsyncSQL: connected to localhost (reconnect 1)
    PlayerSQL connected
    LogSQL connected
    AsyncSQL: connected to localhost (reconnect 1)
    AsyncSQL: connected to localhost (reconnect 1)
    SKILL_POWER_BY_LEVEL 0 5 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 50 52 54 56 58 60 63 66 69 72 82 85 88 91 94 98 102 106 110 115 125 125 125 125 125
    AsyncSQL: connected to localhost (reconnect 1)
    SKILL_POWER_BY_JOB 0 0 5 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 50 52 54 56 58 60 63 66 69 72 82 85 88 91 94 98 102 106 110 115 125 125 125 125 125
    SKILL_POWER_BY_JOB 1 0 5 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 50 52 54 56 58 60 63 66 69 72 82 85 88 91 94 98 102 106 110 115 125 125 125 125 125
    SKILL_POWER_BY_JOB 2 0 5 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 50 52 54 56 58 60 63 66 69 72 82 85 88 91 94 98 102 106 110 115 125 125 125 125 125
    SKILL_POWER_BY_JOB 3 0 5 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 50 52 54 56 58 60 63 66 69 72 82 85 88 91 94 98 102 106 110 115 125 125 125 125 125
    SKILL_POWER_BY_JOB 4 0 5 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 50 52 54 56 58 60 63 66 69 72 82 85 88 91 94 98 102 106 110 115 125 125 125 125 125
    SKILL_POWER_BY_JOB 5 0 5 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 50 52 54 56 58 60 63 66 69 72 82 85 88 91 94 98 102 106 110 115 125 125 125 125 125
    SKILL_POWER_BY_JOB 6 0 5 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 50 52 54 56 58 60 63 66 69 72 82 85 88 91 94 98 102 106 110 115 125 125 125 125 125
    SKILL_POWER_BY_JOB 7 0 5 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 50 52 54 56 58 60 63 66 69 72 82 85 88 91 94 98 102 106 110 115 125 125 125 125 125
    AUTH_SERVER: I am the master
    connect: Connection refused
    MasterAuth 6 Der Loginserver wurde gestartet.
     

    Here u got output after changing ports.

    8 minutes ago, TMP4 said:

    Well that's not really help. None of your cores are running while the output showing zero errors.

    Re-check db's syserr please.

    Also does .core file generating? Show us a gdb result, first we need db.

    Quote

    root@DarkLight:/usr/home/game # gdb
    GNU gdb 6.1.1 [FreeBSD]
    Copyright 2004 Free Software Foundation, Inc.
    GDB is free software, covered by the GNU General Public License, and you are
    welcome to change it and/or distribute copies of it under certain conditions.
    Type "show copying" to see the conditions.
    There is absolutely no warranty for GDB.  Type "show warranty" for details.
    This GDB was configured as "amd64-marcel-freebsd".
    (gdb) cd /usr/home/game/share
    Working directory /usr/home/game/share.
    (gdb) file game
    Reading symbols from game...(no debugging symbols found)...done.
    (gdb) bt full
    No stack.
    (gdb)
     

    There is the gdb

  7. 1 minute ago, TMP4 said:

    Well that's not really help. None of your cores are running while the output showing zero errors.

    Re-check db's syserr please.

    Also does .core file generating? Show us a gdb result.

     

    Quote

    SYSERR: Jul 18 13:39:03 :: pid_init: 
    Start of pid: 4873

    SYSERR: Jul 18 13:39:03 :: Start: TABLE_POSTFIX not configured use default
    SYSERR: Jul 18 13:39:07 :: hupsig: SIGHUP, SIGINT, SIGTERM signal has been received. shutting down.
     

     

  8. 8 minutes ago, TMP4 said:

    All of that syserr will not help to solve that problem.
     

    pid_init: ... Start of pid  <-- is normal, just information
    
    Start: TABLE_POSTFIX not configured use default <-- It is just information that you don't have postifx, 99,99% of the people don't have it's ok
    
    socket_bind: bind: Address already in use <-- the core is already running, you probably tried start.sh again
    
    socket_connect: HOST localhost:26842, could not connect.  <-- meaning the server (auth or db) not started, that's why the core give you conn. refused

    After you start your server, what cores are running? I guess your db is not running. You can check it via "ps" command in FreeBSD.

    Also please provide a copy of the output after you start the server, that can help too.

    Quote


    root@DarkLight:/usr/home/game # ps
     PID TT  STAT    TIME COMMAND
    3007 v0  Is+  0:00.00 /usr/libexec/getty Pc ttyv0
    3008 v1  Is+  0:00.00 /usr/libexec/getty Pc ttyv1
    3009 v2  Is+  0:00.00 /usr/libexec/getty Pc ttyv2
    3010 v3  Is+  0:00.00 /usr/libexec/getty Pc ttyv3
    3011 v4  Is+  0:00.00 /usr/libexec/getty Pc ttyv4
    3012 v5  Is+  0:00.00 /usr/libexec/getty Pc ttyv5
    3013 v6  Is+  0:00.00 /usr/libexec/getty Pc ttyv6
    3014 v7  Is+  0:00.00 /usr/libexec/getty Pc ttyv7
    3493  1  Ss   0:00.05 -csh (csh)
    4869  1  R+   0:00.00 ps

    here is the ps command

    Quote

    Startet die Datenbank ..
    Real Server
    Log OffAsyncSQL: connected to localhost (reconnect 1)
    Success PLAYER
    AsyncSQL: connected to localhost (reconnect 1)
    AsyncSQL: connected to localhost (reconnect 1)
    Success ACCOUNT
    AsyncSQL: connected to localhost (reconnect 1)
    AsyncSQL: connected to localhost (reconnect 1)
    AsyncSQL: connected to localhost (reconnect 1)
    AsyncSQL: connected to localhost (reconnect 1)
    Success COMMON
    AsyncSQL: connected to localhost (reconnect 1)
    Success HOTBACKUP
    AsyncSQL: connected to localhost (reconnect 1)
    AsyncSQL: connected to localhost (reconnect 1)
    AsyncSQL: connected to localhost (reconnect 1)
    AsyncSQL: connected to localhost (reconnect 1)
    Reiche_Ch1 is not running
    PUBLIC_IP: 185.91.118.181 interface em0
    HOSTNAME: channel1
    AsyncSQL: connected to localhost (reconnect 1)
    CommonSQL connected
    Setting Locale "germany" (Path: locale/germany)
    Setting DB to locale latin1
    AsyncSQL: connected to localhost (reconnect 1)
    AsyncSQL: connected to localhost (reconnect 1)
    AsyncSQL: connected to localhost (reconnect 1)
    PlayerSQL connected
    LogSQL connected
    AsyncSQL: connected to localhost (reconnect 1)
    SKILL_POWER_BY_LEVEL 0 5 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 50 52 54 56 58 60 63 66 69 72 82 85 88 91 94 98 102 106 110 115 125 125 125 125 125
    SKILL_POWER_BY_JOB 0 0 5 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 50 52 54 56 58 60 63 66 69 72 82 85 88 91 94 98 102 106 110 115 125 125 125 125 125
    SKILL_POWER_BY_JOB 1 0 5 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 50 52 54 56 58 60 63 66 69 72 82 85 88 91 94 98 102 106 110 115 125 125 125 125 125
    SKILL_POWER_BY_JOB 2 0 5 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 50 52 54 56 58 60 63 66 69 72 82 85 88 91 94 98 102 106 110 115 125 125 125 125 125
    SKILL_POWER_BY_JOB 3 0 5 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 50 52 54 56 58 60 63 66 69 72 82 85 88 91 94 98 102 106 110 115 125 125 125 125 125
    SKILL_POWER_BY_JOB 4 0 5 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 50 52 54 56 58 60 63 66 69 72 82 85 88 91 94 98 102 106 110 115 125 125 125 125 125
    SKILL_POWER_BY_JOB 5 0 5 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 50 52 54 56 58 60 63 66 69 72 82 85 88 91 94 98 102 106 110 115 125 125 125 125 125
    SKILL_POWER_BY_JOB 6 0 5 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 50 52 54 56 58 60 63 66 69 72 82 85 88 91 94 98 102 106 110 115 125 125 125 125 125
    SKILL_POWER_BY_JOB 7 0 5 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 50 52 54 56 58 60 63 66 69 72 82 85 88 91 94 98 102 106 110 115 125 125 125 125 125
    MAP ALLOW 41
    MAP ALLOW 43
    MAP ALLOW 44
    MAP ALLOW 1
    MAP ALLOW 3
    MAP ALLOW 4
    MAP ALLOW 21
    MAP ALLOW 23
    MAP ALLOW 24
    PLAYER_MAX_LEVEL: 105
    LocaleService locale/germany/locale_string.txt
    connect: Connection refused
     

    there is the output

  9. Hi, guys. I'm using Fliege Files v1 Reworked, but i got a problem. If i want to start server, it's writing: Connect: connection refused. And this, if core starting: 
    Reiche_Ch1 is not running

     

    Here is syserr of db: 

    Quote

    SYSERR: Jul 18 13:11:17 :: pid_init: 
    Start of pid: 32825

    SYSERR: Jul 18 13:11:17 :: Start: TABLE_POSTFIX not configured use default
     

    Syserr of core1:

    Quote

    SYSERR: Jul 18 13:11:23 :: pid_init: 
    Start of pid: 32840

    SYSERR: Jul 18 13:11:23 :: socket_bind: bind: Address already in use
     

    Syserr of core 2, 3: 

    Quote

    SYSERR: Jul 18 13:11:24 :: pid_init: 
    Start of pid: 32847

    SYSERR: Jul 18 13:11:24 :: socket_connect: HOST localhost:26842, could not connect.
     

    Thanks for everyone, who can help me with this, cause i fixed all errors, but i didnt know, where is the problem.

  10. Hi, i got this https://www.elitepvpers.com/forum/metin2-pserver-guides-strategies/1846814-python-release-inventory-bonus-dialog.html. I added the ##BonusPageDialog into uiinventory.py and inventorywindow.py. But if i want to go to server, server drop after loading.

    EDIT: if i teleport to another city, it automatically drop. Down is syserr again. How to fix this, now i didnt know.

     

    Syserr:

    Quote

    0716 00:18:09139 :: GRANNY: r:/granny/rt/granny_file_info.cpp(145): File has run-time type tag of 0x80000015, which doesn't match this version of Granny (0x80000010).  Automatic conversion will be attempted.
    0716 00:18:15365 :: GRANNY: r:/granny/rt/granny_file_info.cpp(145): File has run-time type tag of 0x8000000f, which doesn't match this version of Granny (0x80000010).  Automatic conversion will be attempted.
    0716 00:19:55620 :: 
    uiInventory.py(line:570) RefreshBonus
    ui.py(line:2704) GetChild

    InventoryWindow.RefreshBonus.BindObject - exceptions.KeyError:Schwert_vert_Value

    0716 00:19:55621 :: ============================================================================================================
    0716 00:19:55621 :: Abort!!!!


     

    uiinventory.py:

    Quote

    import ui

    import player

    import mouseModule

    import net

    import app

    import snd

    import item

    import player

    import chat

    import grp

    import uiScriptLocale

    import uiRefine

    import uiAttachMetin

    import uiPickMoney

    import uiCommon

    import uiPrivateShopBuilder # ���λ��� ������ ItemMove ����

    import localeInfo

    import constInfo

    import ime

    import wndMgr

     

    ITEM_MALL_BUTTON_ENABLE = TRUE



     

    ITEM_FLAG_APPLICABLE = 1 << 14

     

    class CostumeWindow(ui.ScriptWindow):

     

        def __init__(self, wndInventory):

            import exception

            

            if not app.ENABLE_COSTUME_SYSTEM:           

                exception.Abort("What do you do?")

                return

     

            if not wndInventory:

                exception.Abort("wndInventory parameter must be set to InventoryWindow")

                return                      

                     

            ui.ScriptWindow.__init__(self)

     

            self.isLoaded = 0

            self.wndInventory = wndInventory;

     

            self.__LoadWindow()

     

        def __del__(self):

            ui.ScriptWindow.__del__(self)

     

        def Show(self):

            self.__LoadWindow()

            self.RefreshCostumeSlot()

     

            ui.ScriptWindow.Show(self)

     

        def Close(self):

            self.Hide()

     

        def __LoadWindow(self):

            if self.isLoaded == 1:

                return

     

            self.isLoaded = 1

     

            try:

                pyScrLoader = ui.PythonScriptLoader()

                pyScrLoader.LoadScriptFile(self, "UIScript/CostumeWindow.py")

            except:

                import exception

                exception.Abort("CostumeWindow.LoadWindow.LoadObject")

     

            try:

                wndEquip = self.GetChild("CostumeSlot")

                self.GetChild("TitleBar").SetCloseEvent(ui.__mem_func__(self.Close))

                

            except:

                import exception

                exception.Abort("CostumeWindow.LoadWindow.BindObject")

     

            ## Equipment

            wndEquip.SetOverInItemEvent(ui.__mem_func__(self.wndInventory.OverInItem))

            wndEquip.SetOverOutItemEvent(ui.__mem_func__(self.wndInventory.OverOutItem))

            wndEquip.SetUnselectItemSlotEvent(ui.__mem_func__(self.wndInventory.UseItemSlot))

            wndEquip.SetUseSlotEvent(ui.__mem_func__(self.wndInventory.UseItemSlot))                        

            wndEquip.SetSelectEmptySlotEvent(ui.__mem_func__(self.wndInventory.SelectEmptySlot))

            wndEquip.SetSelectItemSlotEvent(ui.__mem_func__(self.wndInventory.SelectItemSlot))

     

            self.wndEquip = wndEquip

     

        def RefreshCostumeSlot(self):

            getItemVNum=player.GetItemIndex

            

            for i in xrange(item.COSTUME_SLOT_COUNT):

                slotNumber = item.COSTUME_SLOT_START + i

                self.wndEquip.SetItemSlot(slotNumber, getItemVNum(slotNumber), 0)

     

            self.wndEquip.RefreshSlot()

            

    class BeltInventoryWindow(ui.ScriptWindow):

     

        def __init__(self, wndInventory):

            import exception

            

            if not app.ENABLE_NEW_EQUIPMENT_SYSTEM:         

                exception.Abort("What do you do?")

                return

     

            if not wndInventory:

                exception.Abort("wndInventory parameter must be set to InventoryWindow")

                return                      

                     

            ui.ScriptWindow.__init__(self)

     

            self.isLoaded = 0

            self.wndInventory = wndInventory;

            

            self.wndBeltInventoryLayer = None

            self.wndBeltInventorySlot = None

            self.expandBtn = None

            self.minBtn = None

     

            self.__LoadWindow()

     

        def __del__(self):

            ui.ScriptWindow.__del__(self)

     

        def Show(self, openBeltSlot = FALSE):

            self.__LoadWindow()

            self.RefreshSlot()

     

            ui.ScriptWindow.Show(self)

            

            if openBeltSlot:

                self.OpenInventory()

            else:

                self.CloseInventory()

     

        def Close(self):

            self.Hide()

     

        def IsOpeningInventory(self):

            return self.wndBeltInventoryLayer.IsShow()

            

        def OpenInventory(self):

            self.wndBeltInventoryLayer.Show()

            self.expandBtn.Hide()

     

            if localeInfo.IsARABIC() == 0:

                self.AdjustPositionAndSize()

                    

        def CloseInventory(self):

            self.wndBeltInventoryLayer.Hide()

            self.expandBtn.Show()

            

            if localeInfo.IsARABIC() == 0:

                self.AdjustPositionAndSize()

     

        ## ���� �κ��丮 ��ġ�� �������� BASE ��ġ�� ���, ����.. ���� �ϵ��ڵ��ϱ� ���� ������ ����� ����..

        def GetBasePosition(self):

            x, y = self.wndInventory.GetGlobalPosition()

            return x - 148, y + 241

            

        def AdjustPositionAndSize(self):

            bx, by = self.GetBasePosition()

            

            if self.IsOpeningInventory():           

                self.SetPosition(bx, by)

                self.SetSize(self.ORIGINAL_WIDTH, self.GetHeight())

                

            else:

                self.SetPosition(bx + 138, by);

                self.SetSize(10, self.GetHeight())

     

        def __LoadWindow(self):

            if self.isLoaded == 1:

                return

     

            self.isLoaded = 1

     

            try:

                pyScrLoader = ui.PythonScriptLoader()

                pyScrLoader.LoadScriptFile(self, "UIScript/BeltInventoryWindow.py")

            except:

                import exception

                exception.Abort("CostumeWindow.LoadWindow.LoadObject")

     

            try:

                self.ORIGINAL_WIDTH = self.GetWidth()

                wndBeltInventorySlot = self.GetChild("BeltInventorySlot")

                self.wndBeltInventoryLayer = self.GetChild("BeltInventoryLayer")

                self.expandBtn = self.GetChild("ExpandBtn")

                self.minBtn = self.GetChild("MinimizeBtn")

                

                self.expandBtn.SetEvent(ui.__mem_func__(self.OpenInventory))

                self.minBtn.SetEvent(ui.__mem_func__(self.CloseInventory))

                

                if localeInfo.IsARABIC() :

                    self.expandBtn.SetPosition(self.expandBtn.GetWidth() - 2, 15)

                    self.wndBeltInventoryLayer.SetPosition(self.wndBeltInventoryLayer.GetWidth() - 5, 0)

                    self.minBtn.SetPosition(self.minBtn.GetWidth() + 3, 15)         

        

                for i in xrange(item.BELT_INVENTORY_SLOT_COUNT):

                    slotNumber = item.BELT_INVENTORY_SLOT_START + i                         

                    wndBeltInventorySlot.SetCoverButton(slotNumber, "d:/ymir work/ui/game/quest/slot_button_01.sub",\

                                                    "d:/ymir work/ui/game/quest/slot_button_01.sub",\

                                                    "d:/ymir work/ui/game/quest/slot_button_01.sub",\

                                                    "d:/ymir work/ui/game/belt_inventory/slot_disabled.tga", FALSE, FALSE)                                  

                

            except:

                import exception

                exception.Abort("CostumeWindow.LoadWindow.BindObject")

     

            ## Equipment

            wndBeltInventorySlot.SetOverInItemEvent(ui.__mem_func__(self.wndInventory.OverInItem))

            wndBeltInventorySlot.SetOverOutItemEvent(ui.__mem_func__(self.wndInventory.OverOutItem))

            wndBeltInventorySlot.SetUnselectItemSlotEvent(ui.__mem_func__(self.wndInventory.UseItemSlot))

            wndBeltInventorySlot.SetUseSlotEvent(ui.__mem_func__(self.wndInventory.UseItemSlot))                        

            wndBeltInventorySlot.SetSelectEmptySlotEvent(ui.__mem_func__(self.wndInventory.SelectEmptySlot))

            wndBeltInventorySlot.SetSelectItemSlotEvent(ui.__mem_func__(self.wndInventory.SelectItemSlot))

     

            self.wndBeltInventorySlot = wndBeltInventorySlot

     

        def RefreshSlot(self):

            getItemVNum=player.GetItemIndex

            

            for i in xrange(item.BELT_INVENTORY_SLOT_COUNT):

                slotNumber = item.BELT_INVENTORY_SLOT_START + i

                self.wndBeltInventorySlot.SetItemSlot(slotNumber, getItemVNum(slotNumber), player.GetItemCount(slotNumber))

                self.wndBeltInventorySlot.SetAlwaysRenderCoverButton(slotNumber, TRUE)

                

                avail = "0"

                

                if player.IsAvailableBeltInventoryCell(slotNumber):

                    self.wndBeltInventorySlot.EnableCoverButton(slotNumber)             

                else:

                    self.wndBeltInventorySlot.DisableCoverButton(slotNumber)                

     

            self.wndBeltInventorySlot.RefreshSlot()

     

            

    class InventoryWindow(ui.ScriptWindow):

     

        USE_TYPE_TUPLE = ("USE_CLEAN_SOCKET", "USE_CHANGE_ATTRIBUTE", "USE_ADD_ATTRIBUTE", "USE_ADD_ATTRIBUTE2", "USE_ADD_ACCESSORY_SOCKET", "USE_PUT_INTO_ACCESSORY_SOCKET", "USE_PUT_INTO_BELT_SOCKET", "USE_PUT_INTO_RING_SOCKET")

     

        questionDialog = None

        tooltipItem = None

        wndCostume = None

        wndBelt = None

        dlgPickMoney = None

        

        sellingSlotNumber = -1

        isLoaded = 0

        isOpenedCostumeWindowWhenClosingInventory = 0       # �κ��丮 ���� �� �ڽ����� �����־����� ����-_-; ���̹� ����

        isOpenedBeltWindowWhenClosingInventory = 0      # �κ��丮 ���� �� ��Ʈ �κ��丮�� �����־����� ����-_-; ���̹� ����

     

        def __init__(self):

            ui.ScriptWindow.__init__(self)

     

            self.isOpenedBeltWindowWhenClosingInventory = 0     # �κ��丮 ���� �� ��Ʈ �κ��丮�� �����־����� ����-_-; ���̹� ����

     

            self.__LoadWindow()

     

        def __del__(self):

            ui.ScriptWindow.__del__(self)

     

        def Show(self):

            self.__LoadWindow()

     

            ui.ScriptWindow.Show(self)

     

            # �κ��丮�� ���� �� �ڽ����� �����־��ٸ� �κ��丮�� �� �� �ڽ����� ���� ������ ��.

            if self.isOpenedCostumeWindowWhenClosingInventory and self.wndCostume:

                self.wndCostume.Show() 

     

            # �κ��丮�� ���� �� ��Ʈ �κ��丮�� �����־��ٸ� ���� ������ ��.

            if self.wndBelt:

                self.wndBelt.Show(self.isOpenedBeltWindowWhenClosingInventory)

     

        def BindInterfaceClass(self, interface):

            self.interface = interface

            

        def __LoadWindow(self):

            if self.isLoaded == 1:

                return

     

            self.isLoaded = 1

     

            try:

                pyScrLoader = ui.PythonScriptLoader()

     

                if ITEM_MALL_BUTTON_ENABLE:

                    pyScrLoader.LoadScriptFile(self, uiScriptLocale.LOCALE_UISCRIPT_PATH + "InventoryWindow.py")

                else:

                    pyScrLoader.LoadScriptFile(self, "UIScript/InventoryWindow.py")

            except:

                import exception

                exception.Abort("InventoryWindow.LoadWindow.LoadObject")

     

            try:

                wndItem = self.GetChild("ItemSlot")

                wndEquip = self.GetChild("EquipmentSlot")

                self.GetChild("TitleBar").SetCloseEvent(ui.__mem_func__(self.Close))

                self.wndMoney = self.GetChild("Money")

                self.wndMoneySlot = self.GetChild("Money_Slot")

                self.mallButton = self.GetChild2("MallButton")

    ##BonusPageDialog

                self.GetChild("Schwert_vert_Value").SetText(str(player.GetStatus(69)))

                self.GetChild("Zweih�nder_vert_Value").SetText(str(player.GetStatus(70)))

                self.GetChild("Dolche_vert_Value").SetText(str(player.GetStatus(71)))

                self.GetChild("Bogen_vert_Value").SetText(str(player.GetStatus(74)))

                self.GetChild("Glocke_vert_Value").SetText(str(player.GetStatus(72)))

                self.GetChild("F�cher_vert_Value").SetText(str(player.GetStatus(73)))

                self.GetChild("Magie_vert_Value").SetText(str(player.GetStatus(77)))

                self.GetChild("Gift_vert_Value").SetText(str(player.GetStatus(81)))

                self.GetChild("Krieger_vert_Value").SetText(str(player.GetStatus(59)))

                self.GetChild("Ninja_vert_Value").SetText(str(player.GetStatus(60)))

                self.GetChild("Sura_vert_Value").SetText(str(player.GetStatus(61)))

                self.GetChild("Schamane_vert_Value").SetText(str(player.GetStatus(62)))

                self.GetChild("Krit_Value").SetText(str(player.GetStatus(40)))

                self.GetChild("DurchBohrenden_Value").SetText(str(player.GetStatus(41)))

                self.GetChild("DSS_Value").SetText(str(player.GetStatus(122)))

                self.GetChild("FKS_Value").SetText(str(player.GetStatus(121)))

                self.GetChild("Halbmenschen_Value").SetText(str(player.GetStatus(43)))

                self.GetChild("Untote_Value").SetText(str(player.GetStatus(47)))

                self.GetChild("Teufel_Value").SetText(str(player.GetStatus(48)))

                self.GetChild("Krieger_str_Value").SetText(str(player.GetStatus(54)))

                self.GetChild("Ninja_str_Value").SetText(str(player.GetStatus(55)))

                self.GetChild("Sura_str_Value").SetText(str(player.GetStatus(56)))

                self.GetChild("Schamane_str_Value").SetText(str(player.GetStatus(57)))

    ##BonusPageDialog

                self.DSSButton = self.GetChild2("DSSButton")

                self.costumeButton = self.GetChild2("CostumeButton")

                

                self.inventoryTab = []

                self.inventoryTab.append(self.GetChild("Inventory_Tab_01"))

                self.inventoryTab.append(self.GetChild("Inventory_Tab_02"))

                self.inventoryTab.append(self.GetChild("Inventory_Tab_03"))

                self.inventoryTab.append(self.GetChild("Inventory_Tab_04"))

                

                self.equipmentTab = []

                self.equipmentTab.append(self.GetChild("Equipment_Tab_01"))

                self.equipmentTab.append(self.GetChild("Equipment_Tab_02"))

     

                if self.costumeButton and not app.ENABLE_COSTUME_SYSTEM:

                    self.costumeButton.Hide()

                    self.costumeButton.Destroy()

                    self.costumeButton = 0

     

                # Belt Inventory Window

                self.wndBelt = None

                

                if app.ENABLE_NEW_EQUIPMENT_SYSTEM:

                    self.wndBelt = BeltInventoryWindow(self)

                

            except:

                import exception

                exception.Abort("InventoryWindow.LoadWindow.BindObject")

     

            ## Item

            wndItem.SetSelectEmptySlotEvent(ui.__mem_func__(self.SelectEmptySlot))

            wndItem.SetSelectItemSlotEvent(ui.__mem_func__(self.SelectItemSlot))

            wndItem.SetUnselectItemSlotEvent(ui.__mem_func__(self.UseItemSlot))

            wndItem.SetUseSlotEvent(ui.__mem_func__(self.UseItemSlot))

            wndItem.SetOverInItemEvent(ui.__mem_func__(self.OverInItem))

            wndItem.SetOverOutItemEvent(ui.__mem_func__(self.OverOutItem))

     

            ## Equipment

            wndEquip.SetSelectEmptySlotEvent(ui.__mem_func__(self.SelectEmptySlot))

            wndEquip.SetSelectItemSlotEvent(ui.__mem_func__(self.SelectItemSlot))

            wndEquip.SetUnselectItemSlotEvent(ui.__mem_func__(self.UseItemSlot))

            wndEquip.SetUseSlotEvent(ui.__mem_func__(self.UseItemSlot))

            wndEquip.SetOverInItemEvent(ui.__mem_func__(self.OverInItem))

            wndEquip.SetOverOutItemEvent(ui.__mem_func__(self.OverOutItem))

     

            ## PickMoneyDialog

            dlgPickMoney = uiPickMoney.PickMoneyDialog()

            dlgPickMoney.LoadDialog()

            dlgPickMoney.Hide()

     

            ## RefineDialog

            self.refineDialog = uiRefine.RefineDialog()

            self.refineDialog.Hide()

     

            ## AttachMetinDialog

            self.attachMetinDialog = uiAttachMetin.AttachMetinDialog()

            self.attachMetinDialog.Hide()

     

            ## MoneySlot

            self.wndMoneySlot.SetEvent(ui.__mem_func__(self.OpenPickMoneyDialog))

     

            self.inventoryTab[0].SetEvent(lambda arg=0: self.SetInventoryPage(arg))

            self.inventoryTab[1].SetEvent(lambda arg=1: self.SetInventoryPage(arg))

            self.inventoryTab[2].SetEvent(lambda arg=2: self.SetInventoryPage(arg))

            self.inventoryTab[3].SetEvent(lambda arg=3: self.SetInventoryPage(arg))

            self.inventoryTab[0].Down()

            self.inventoryPageIndex = 0

     

            self.equipmentTab[0].SetEvent(lambda arg=0: self.SetEquipmentPage(arg))

            self.equipmentTab[1].SetEvent(lambda arg=1: self.SetEquipmentPage(arg))

            self.equipmentTab[0].Down()

            self.equipmentTab[0].Hide()

            self.equipmentTab[1].Hide()

     

            self.wndItem = wndItem

            self.wndEquip = wndEquip

            self.dlgPickMoney = dlgPickMoney

     

            # MallButton

            if self.mallButton:

                self.mallButton.SetEvent(ui.__mem_func__(self.ClickMallButton))

     

            if self.DSSButton:

                #self.DSSButton.Hide()

                self.DSSButton.SetEvent(ui.__mem_func__(self.ClickDSSButton)) 

            

            # Costume Button

            if self.costumeButton:

                self.costumeButton.SetEvent(ui.__mem_func__(self.ClickCostumeButton))

     

            self.wndCostume = None

            

            #####

     

            ## Refresh

            self.SetInventoryPage(0)

            self.SetEquipmentPage(0)

            self.RefreshItemSlot()

            self.RefreshStatus()

     

        def Destroy(self):

            self.ClearDictionary()

     

            self.dlgPickMoney.Destroy()

            self.dlgPickMoney = 0

     

            self.refineDialog.Destroy()

            self.refineDialog = 0

     

            self.attachMetinDialog.Destroy()

            self.attachMetinDialog = 0

     

            self.tooltipItem = None

            self.wndItem = 0

            self.wndEquip = 0

            self.dlgPickMoney = 0

            self.wndMoney = 0

            self.wndMoneySlot = 0

            self.questionDialog = None

            self.mallButton = None

            self.DSSButton = None

            self.interface = None

     

            if self.wndCostume:

                self.wndCostume.Destroy()

                self.wndCostume = 0

                

            if self.wndBelt:

                self.wndBelt.Destroy()

                self.wndBelt = None

                

            self.inventoryTab = []

            self.equipmentTab = []

     

        def Hide(self):

            if constInfo.GET_ITEM_QUESTION_DIALOG_STATUS():

                self.OnCloseQuestionDialog()

                return

            if None != self.tooltipItem:

                self.tooltipItem.HideToolTip()

     

            if self.wndCostume:

                self.isOpenedCostumeWindowWhenClosingInventory = self.wndCostume.IsShow()           # �κ��丮 â�� ���� �� �ڽ����� ���� �־��°�?

                self.wndCostume.Close()

     

            if self.wndBelt:

                self.isOpenedBeltWindowWhenClosingInventory = self.wndBelt.IsOpeningInventory()     # �κ��丮 â�� ���� �� ��Ʈ �κ��丮�� ���� �־��°�?

                print "Is Opening Belt Inven?? ", self.isOpenedBeltWindowWhenClosingInventory

                self.wndBelt.Close()

      

            if self.dlgPickMoney:

                self.dlgPickMoney.Close()

            

            wndMgr.Hide(self.hWnd)

            

        

        def Close(self):

            self.Hide()

     

    #   def SetInventoryPage(self, page):

    #       self.inventoryTab[self.inventoryPageIndex].SetUp()

    #       self.inventoryPageIndex = page

    #       self.RefreshBagSlotWindow()

     

        def SetInventoryPage(self, page):

            self.inventoryTab[self.inventoryPageIndex].SetUp()

            self.inventoryPageIndex = page

            self.inventoryTab[self.inventoryPageIndex].Down()

            self.RefreshBagSlotWindow()

        

        def SetEquipmentPage(self, page):

            self.equipmentPageIndex = page

            self.equipmentTab[1-page].SetUp()

            self.RefreshEquipSlotWindow()

     

        def ClickMallButton(self):

            print "click_mall_button"

            net.SendChatPacket("/click_mall")

     

        # DSSButton

        def ClickDSSButton(self):

            print "click_dss_button"

            self.interface.ToggleDragonSoulWindow()

     

        def ClickCostumeButton(self):

            print "Click Costume Button"

            if self.wndCostume:

                if self.wndCostume.IsShow(): 

                    self.wndCostume.Hide()

                else:

                    self.wndCostume.Show()

            else:

                self.wndCostume = CostumeWindow(self)

                self.wndCostume.Show()

     

        def OpenPickMoneyDialog(self):

     

            if mouseModule.mouseController.isAttached():

     

                attachedSlotPos = mouseModule.mouseController.GetAttachedSlotNumber()

                if player.SLOT_TYPE_SAFEBOX == mouseModule.mouseController.GetAttachedType():

     

                    if player.ITEM_MONEY == mouseModule.mouseController.GetAttachedItemIndex():

                        net.SendSafeboxWithdrawMoneyPacket(mouseModule.mouseController.GetAttachedItemCount())

                        snd.PlaySound("sound/ui/money.wav")

     

                mouseModule.mouseController.DeattachObject()

     

            else:

                curMoney = player.GetElk()

     

                if curMoney <= 0:

                    return

     

                self.dlgPickMoney.SetTitleName(localeInfo.PICK_MONEY_TITLE)

                self.dlgPickMoney.SetAcceptEvent(ui.__mem_func__(self.OnPickMoney))

                self.dlgPickMoney.Open(curMoney)

                self.dlgPickMoney.SetMax(7) # �κ��丮 990000 ���� ���� ����

     

        def OnPickMoney(self, money):

            mouseModule.mouseController.AttachMoney(self, player.SLOT_TYPE_INVENTORY, money)

     

        def OnPickItem(self, count):

            itemSlotIndex = self.dlgPickMoney.itemGlobalSlotIndex

            selectedItemVNum = player.GetItemIndex(itemSlotIndex)

            mouseModule.mouseController.AttachObject(self, player.SLOT_TYPE_INVENTORY, itemSlotIndex, selectedItemVNum, count)

     

        def __InventoryLocalSlotPosToGlobalSlotPos(self, local):

            if player.IsEquipmentSlot(local) or player.IsCostumeSlot(local) or (app.ENABLE_NEW_EQUIPMENT_SYSTEM and player.IsBeltInventorySlot(local)):

                return local

     

            return self.inventoryPageIndex*player.INVENTORY_PAGE_SIZE + local

     

    ##BonusPageDialog

        def __LoadRefreshBonus(self):

            self.RefreshBonus()

     

        def RefreshBonus(self):

            try:

                self.GetChild("Schwert_vert_Value").SetText(str(player.GetStatus(69)))

                self.GetChild("Zweih�nder_vert_Value").SetText(str(player.GetStatus(70)))

                self.GetChild("Dolche_vert_Value").SetText(str(player.GetStatus(71)))

                self.GetChild("Bogen_vert_Value").SetText(str(player.GetStatus(74)))

                self.GetChild("Glocke_vert_Value").SetText(str(player.GetStatus(72)))

                self.GetChild("F�cher_vert_Value").SetText(str(player.GetStatus(73)))

                self.GetChild("Magie_vert_Value").SetText(str(player.GetStatus(77)))

                self.GetChild("Gift_vert_Value").SetText(str(player.GetStatus(81)))

                self.GetChild("Krieger_vert_Value").SetText(str(player.GetStatus(59)))

                self.GetChild("Ninja_vert_Value").SetText(str(player.GetStatus(60)))

                self.GetChild("Sura_vert_Value").SetText(str(player.GetStatus(61)))

                self.GetChild("Schamane_vert_Value").SetText(str(player.GetStatus(62)))

                self.GetChild("Krit_Value").SetText(str(player.GetStatus(40)))

                self.GetChild("DurchBohrenden_Value").SetText(str(player.GetStatus(41)))

                self.GetChild("DSS_Value").SetText(str(player.GetStatus(122)))

                self.GetChild("FKS_Value").SetText(str(player.GetStatus(121)))

                self.GetChild("Halbmenschen_Value").SetText(str(player.GetStatus(43)))

                self.GetChild("Untote_Value").SetText(str(player.GetStatus(47)))

                self.GetChild("Teufel_Value").SetText(str(player.GetStatus(48)))

                self.GetChild("Krieger_str_Value").SetText(str(player.GetStatus(54)))

                self.GetChild("Ninja_str_Value").SetText(str(player.GetStatus(55)))

                self.GetChild("Sura_str_Value").SetText(str(player.GetStatus(56)))

                self.GetChild("Schamane_str_Value").SetText(str(player.GetStatus(57)))

            except:

                import exception

                exception.Abort("InventoryWindow.RefreshBonus.BindObject")

    ##BonusPageDialog

     

        def RefreshBagSlotWindow(self):

            getItemVNum=player.GetItemIndex

            getItemCount=player.GetItemCount

            setItemVNum=self.wndItem.SetItemSlot

            

            for i in xrange(player.INVENTORY_PAGE_SIZE):

                slotNumber = self.__InventoryLocalSlotPosToGlobalSlotPos(i)

                

                itemCount = getItemCount(slotNumber)

                # itemCount == 0�̸� ������ ����.

                if 0 == itemCount:

                    self.wndItem.ClearSlot(i)

                    continue

                elif 1 == itemCount:

                    itemCount = 0

                    

                itemVnum = getItemVNum(slotNumber)

                setItemVNum(i, itemVnum, itemCount)

                

                ## �ڵ����� (HP: #72723 ~ #72726, SP: #72727 ~ #72730) Ư��ó�� - �������ε��� ���Կ� Ȱ��ȭ/��Ȱ��ȭ ǥ�ø� ���� �۾��� - [hyo]

                if constInfo.IS_AUTO_POTION(itemVnum):

                    # metinSocket - [0] : Ȱ��ȭ ����, [1] : ����� ��, [2] : �ִ� �뷮

                    metinSocket = [player.GetItemMetinSocket(slotNumber, j) for j in xrange(player.METIN_SOCKET_MAX_NUM)]   

                    

                    if slotNumber >= player.INVENTORY_PAGE_SIZE:

                        slotNumber -= player.INVENTORY_PAGE_SIZE

                        

                    isActivated = 0 != metinSocket[0]

                    

                    if isActivated:

                        self.wndItem.ActivateSlot(slotNumber)

                        potionType = 0;

                        if constInfo.IS_AUTO_POTION_HP(itemVnum):

                            potionType = player.AUTO_POTION_TYPE_HP

                        elif constInfo.IS_AUTO_POTION_SP(itemVnum):

                            potionType = player.AUTO_POTION_TYPE_SP                     

                        

                        usedAmount = int(metinSocket[1])

                        totalAmount = int(metinSocket[2])                   

                        player.SetAutoPotionInfo(potionType, isActivated, (totalAmount - usedAmount), totalAmount, self.__InventoryLocalSlotPosToGlobalSlotPos(i))

                        

                    else:

                        self.wndItem.DeactivateSlot(slotNumber)         

                        

            self.wndItem.RefreshSlot()

     

            if self.wndBelt:

                self.wndBelt.RefreshSlot()

     

        def RefreshEquipSlotWindow(self):

            getItemVNum=player.GetItemIndex

            getItemCount=player.GetItemCount

            setItemVNum=self.wndEquip.SetItemSlot

            for i in xrange(player.EQUIPMENT_PAGE_COUNT):

                slotNumber = player.EQUIPMENT_SLOT_START + i

                itemCount = getItemCount(slotNumber)

                if itemCount <= 1:

                    itemCount = 0

                setItemVNum(slotNumber, getItemVNum(slotNumber), itemCount)

     

            if app.ENABLE_NEW_EQUIPMENT_SYSTEM:

                for i in xrange(player.NEW_EQUIPMENT_SLOT_COUNT):

                    slotNumber = player.NEW_EQUIPMENT_SLOT_START + i

                    itemCount = getItemCount(slotNumber)

                    if itemCount <= 1:

                        itemCount = 0

                    setItemVNum(slotNumber, getItemVNum(slotNumber), itemCount)

                    print "ENABLE_NEW_EQUIPMENT_SYSTEM", slotNumber, itemCount, getItemVNum(slotNumber)

                    


     

            self.wndEquip.RefreshSlot()

            

            if self.wndCostume:

                self.wndCostume.RefreshCostumeSlot()

     

        def RefreshItemSlot(self):

            self.RefreshBagSlotWindow()

            self.RefreshEquipSlotWindow()

     

        def RefreshStatus(self):

            money = player.GetElk()

            self.wndMoney.SetText(localeInfo.NumberToMoneyString(money))

     

        def SetItemToolTip(self, tooltipItem):

            self.tooltipItem = tooltipItem

     

        def SellItem(self):

            if self.sellingSlotitemIndex == player.GetItemIndex(self.sellingSlotNumber):

                if self.sellingSlotitemCount == player.GetItemCount(self.sellingSlotNumber):

                    ## ��ȥ���� �ȸ��� �ϴ� ��� �߰��ϸ鼭 ���� type �߰�

                    net.SendShopSellPacketNew(self.sellingSlotNumber, self.questionDialog.count, player.INVENTORY)

                    snd.PlaySound("sound/ui/money.wav")

            self.OnCloseQuestionDialog()

     

        def OnDetachMetinFromItem(self):

            if None == self.questionDialog:

                return

                

            #net.SendItemUseToItemPacket(self.questionDialog.sourcePos, self.questionDialog.targetPos)      

            self.__SendUseItemToItemPacket(self.questionDialog.sourcePos, self.questionDialog.targetPos)

            self.OnCloseQuestionDialog()

     

        def OnCloseQuestionDialog(self):

            if not self.questionDialog:

                return

            

            self.questionDialog.Close()

            self.questionDialog = None

            constInfo.SET_ITEM_QUESTION_DIALOG_STATUS(0)

     

        ## Slot Event

        def SelectEmptySlot(self, selectedSlotPos):

            if constInfo.GET_ITEM_QUESTION_DIALOG_STATUS() == 1:

                return

     

            selectedSlotPos = self.__InventoryLocalSlotPosToGlobalSlotPos(selectedSlotPos)

     

            if mouseModule.mouseController.isAttached():

     

                attachedSlotType = mouseModule.mouseController.GetAttachedType()

                attachedSlotPos = mouseModule.mouseController.GetAttachedSlotNumber()

                attachedItemCount = mouseModule.mouseController.GetAttachedItemCount()

                attachedItemIndex = mouseModule.mouseController.GetAttachedItemIndex()

     

                if player.SLOT_TYPE_INVENTORY == attachedSlotType:

                    itemCount = player.GetItemCount(attachedSlotPos)

                    attachedCount = mouseModule.mouseController.GetAttachedItemCount()

                    self.__SendMoveItemPacket(attachedSlotPos, selectedSlotPos, attachedCount)

     

                    if item.IsRefineScroll(attachedItemIndex):

                        self.wndItem.SetUseMode(FALSE)

     

                elif player.SLOT_TYPE_PRIVATE_SHOP == attachedSlotType:

                    mouseModule.mouseController.RunCallBack("INVENTORY")

     

                elif player.SLOT_TYPE_SHOP == attachedSlotType:

                    net.SendShopBuyPacket(attachedSlotPos)

     

                elif player.SLOT_TYPE_SAFEBOX == attachedSlotType:

     

                    if player.ITEM_MONEY == attachedItemIndex:

                        net.SendSafeboxWithdrawMoneyPacket(mouseModule.mouseController.GetAttachedItemCount())

                        snd.PlaySound("sound/ui/money.wav")

     

                    else:

                        net.SendSafeboxCheckoutPacket(attachedSlotPos, selectedSlotPos)

     

                elif player.SLOT_TYPE_MALL == attachedSlotType:

                    net.SendMallCheckoutPacket(attachedSlotPos, selectedSlotPos)

     

                mouseModule.mouseController.DeattachObject()

     

        def SelectItemSlot(self, itemSlotIndex):

            if constInfo.GET_ITEM_QUESTION_DIALOG_STATUS() == 1:

                return

     

            itemSlotIndex = self.__InventoryLocalSlotPosToGlobalSlotPos(itemSlotIndex)

     

            if mouseModule.mouseController.isAttached():

                attachedSlotType = mouseModule.mouseController.GetAttachedType()

                attachedSlotPos = mouseModule.mouseController.GetAttachedSlotNumber()

                attachedItemVID = mouseModule.mouseController.GetAttachedItemIndex()

     

                if player.SLOT_TYPE_INVENTORY == attachedSlotType:

                    self.__DropSrcItemToDestItemInInventory(attachedItemVID, attachedSlotPos, itemSlotIndex)

     

                mouseModule.mouseController.DeattachObject()

     

            else:

     

                curCursorNum = app.GetCursor()

                if app.SELL == curCursorNum:

                    self.__SellItem(itemSlotIndex)

                    

                elif app.BUY == curCursorNum:

                    chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.SHOP_BUY_INFO)

     

                elif app.IsPressed(app.DIK_LALT):

                    link = player.GetItemLink(itemSlotIndex)

                    ime.PasteString(link)

     

                elif app.IsPressed(app.DIK_LSHIFT):

                    itemCount = player.GetItemCount(itemSlotIndex)

                    

                    if itemCount > 1:

                        self.dlgPickMoney.SetTitleName(localeInfo.PICK_ITEM_TITLE)

                        self.dlgPickMoney.SetAcceptEvent(ui.__mem_func__(self.OnPickItem))

                        self.dlgPickMoney.Open(itemCount)

                        self.dlgPickMoney.itemGlobalSlotIndex = itemSlotIndex

                    #else:

                        #selectedItemVNum = player.GetItemIndex(itemSlotIndex)

                        #mouseModule.mouseController.AttachObject(self, player.SLOT_TYPE_INVENTORY, itemSlotIndex, selectedItemVNum)

     

                elif app.IsPressed(app.DIK_LCONTROL):

                    itemIndex = player.GetItemIndex(itemSlotIndex)

     

                    if TRUE == item.CanAddToQuickSlotItem(itemIndex):

                        player.RequestAddToEmptyLocalQuickSlot(player.SLOT_TYPE_INVENTORY, itemSlotIndex)

                    else:

                        chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.QUICKSLOT_REGISTER_DISABLE_ITEM)

     

                else:

                    selectedItemVNum = player.GetItemIndex(itemSlotIndex)

                    itemCount = player.GetItemCount(itemSlotIndex)

                    mouseModule.mouseController.AttachObject(self, player.SLOT_TYPE_INVENTORY, itemSlotIndex, selectedItemVNum, itemCount)

                    

                    if self.__IsUsableItemToItem(selectedItemVNum, itemSlotIndex):              

                        self.wndItem.SetUseMode(TRUE)

                    else:                   

                        self.wndItem.SetUseMode(FALSE)

     

                    snd.PlaySound("sound/ui/pick.wav")

     

        def __DropSrcItemToDestItemInInventory(self, srcItemVID, srcItemSlotPos, dstItemSlotPos):

            if srcItemSlotPos == dstItemSlotPos:

                return

                    

            elif item.IsRefineScroll(srcItemVID):

                self.RefineItem(srcItemSlotPos, dstItemSlotPos)

                self.wndItem.SetUseMode(FALSE)

     

            elif item.IsMetin(srcItemVID):

                self.AttachMetinToItem(srcItemSlotPos, dstItemSlotPos)

     

            elif item.IsDetachScroll(srcItemVID):

                self.DetachMetinFromItem(srcItemSlotPos, dstItemSlotPos)

     

            elif item.IsKey(srcItemVID):

                self.__SendUseItemToItemPacket(srcItemSlotPos, dstItemSlotPos)          

     

            elif (player.GetItemFlags(srcItemSlotPos) & ITEM_FLAG_APPLICABLE) == ITEM_FLAG_APPLICABLE:

                self.__SendUseItemToItemPacket(srcItemSlotPos, dstItemSlotPos)

     

            elif item.GetUseType(srcItemVID) in self.USE_TYPE_TUPLE:

                self.__SendUseItemToItemPacket(srcItemSlotPos, dstItemSlotPos)          

     

            else:

                #snd.PlaySound("sound/ui/drop.wav")

     

                ## �̵���Ų ���� ���� ������ ��� �������� ����ؼ� ���� ��Ų�� - [levites]

                if player.IsEquipmentSlot(dstItemSlotPos):

     

                    ## ��� �ִ� �������� ����϶���

                    if item.IsEquipmentVID(srcItemVID):

                        self.__UseItem(srcItemSlotPos)

     

                else:

                    self.__SendMoveItemPacket(srcItemSlotPos, dstItemSlotPos, 0)

                    #net.SendItemMovePacket(srcItemSlotPos, dstItemSlotPos, 0)

     

        def __SellItem(self, itemSlotPos):

            if not player.IsEquipmentSlot(itemSlotPos):

                self.sellingSlotNumber = itemSlotPos

                itemIndex = player.GetItemIndex(itemSlotPos)

                itemCount = player.GetItemCount(itemSlotPos)

                

                

                self.sellingSlotitemIndex = itemIndex

                self.sellingSlotitemCount = itemCount

     

                item.SelectItem(itemIndex)

                ## ��Ƽ �÷��� �˻� ������ �߰�

                ## 20140220

                if item.IsAntiFlag(item.ANTIFLAG_SELL):

                    popup = uiCommon.PopupDialog()

                    popup.SetText(localeInfo.SHOP_CANNOT_SELL_ITEM)

                    popup.SetAcceptEvent(self.__OnClosePopupDialog)

                    popup.Open()

                    self.popup = popup

                    return

     

                itemPrice = item.GetISellItemPrice()

     

                if item.Is1GoldItem():

                    itemPrice = itemCount / itemPrice / 5

                else:

                    itemPrice = itemPrice * itemCount / 5

     

                item.GetItemName(itemIndex)

                itemName = item.GetItemName()

     

                self.questionDialog = uiCommon.QuestionDialog()

                self.questionDialog.SetText(localeInfo.DO_YOU_SELL_ITEM(itemName, itemCount, itemPrice))

                self.questionDialog.SetAcceptEvent(ui.__mem_func__(self.SellItem))

                self.questionDialog.SetCancelEvent(ui.__mem_func__(self.OnCloseQuestionDialog))

                self.questionDialog.Open()

                self.questionDialog.count = itemCount

            

                constInfo.SET_ITEM_QUESTION_DIALOG_STATUS(1)

     

        def __OnClosePopupDialog(self):

            self.pop = None

     

        def RefineItem(self, scrollSlotPos, targetSlotPos):

     

            scrollIndex = player.GetItemIndex(scrollSlotPos)

            targetIndex = player.GetItemIndex(targetSlotPos)

     

            if player.REFINE_OK != player.CanRefine(scrollIndex, targetSlotPos):

                return

     

            ###########################################################

            self.__SendUseItemToItemPacket(scrollSlotPos, targetSlotPos)

            #net.SendItemUseToItemPacket(scrollSlotPos, targetSlotPos)

            return

            ###########################################################

     

            ###########################################################

            #net.SendRequestRefineInfoPacket(targetSlotPos)

            #return

            ###########################################################

     

            result = player.CanRefine(scrollIndex, targetSlotPos)

     

            if player.REFINE_ALREADY_MAX_SOCKET_COUNT == result:

                #snd.PlaySound("sound/ui/jaeryun_fail.wav")

                chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.REFINE_FAILURE_NO_MORE_SOCKET)

     

            elif player.REFINE_NEED_MORE_GOOD_SCROLL == result:

                #snd.PlaySound("sound/ui/jaeryun_fail.wav")

                chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.REFINE_FAILURE_NEED_BETTER_SCROLL)

     

            elif player.REFINE_CANT_MAKE_SOCKET_ITEM == result:

                #snd.PlaySound("sound/ui/jaeryun_fail.wav")

                chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.REFINE_FAILURE_SOCKET_DISABLE_ITEM)

     

            elif player.REFINE_NOT_NEXT_GRADE_ITEM == result:

                #snd.PlaySound("sound/ui/jaeryun_fail.wav")

                chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.REFINE_FAILURE_UPGRADE_DISABLE_ITEM)

     

            elif player.REFINE_CANT_REFINE_METIN_TO_EQUIPMENT == result:

                chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.REFINE_FAILURE_EQUIP_ITEM)

     

            if player.REFINE_OK != result:

                return

     

            self.refineDialog.Open(scrollSlotPos, targetSlotPos)

     

        def DetachMetinFromItem(self, scrollSlotPos, targetSlotPos):

            scrollIndex = player.GetItemIndex(scrollSlotPos)

            targetIndex = player.GetItemIndex(targetSlotPos)

     

            if not player.CanDetach(scrollIndex, targetSlotPos):

                chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.REFINE_FAILURE_METIN_INSEPARABLE_ITEM)

                return

     

            self.questionDialog = uiCommon.QuestionDialog()

            self.questionDialog.SetText(localeInfo.REFINE_DO_YOU_SEPARATE_METIN)

            self.questionDialog.SetAcceptEvent(ui.__mem_func__(self.OnDetachMetinFromItem))

            self.questionDialog.SetCancelEvent(ui.__mem_func__(self.OnCloseQuestionDialog))

            self.questionDialog.Open()

            self.questionDialog.sourcePos = scrollSlotPos

            self.questionDialog.targetPos = targetSlotPos

     

        def AttachMetinToItem(self, metinSlotPos, targetSlotPos):

            metinIndex = player.GetItemIndex(metinSlotPos)

            targetIndex = player.GetItemIndex(targetSlotPos)

     

            item.SelectItem(metinIndex)

            itemName = item.GetItemName()

     

            result = player.CanAttachMetin(metinIndex, targetSlotPos)

     

            if player.ATTACH_METIN_NOT_MATCHABLE_ITEM == result:

                chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.REFINE_FAILURE_CAN_NOT_ATTACH(itemName))

     

            if player.ATTACH_METIN_NO_MATCHABLE_SOCKET == result:

                chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.REFINE_FAILURE_NO_SOCKET(itemName))

     

            elif player.ATTACH_METIN_NOT_EXIST_GOLD_SOCKET == result:

                chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.REFINE_FAILURE_NO_GOLD_SOCKET(itemName))

     

            elif player.ATTACH_METIN_CANT_ATTACH_TO_EQUIPMENT == result:

                chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.REFINE_FAILURE_EQUIP_ITEM)

     

            if player.ATTACH_METIN_OK != result:

                return

     

            self.attachMetinDialog.Open(metinSlotPos, targetSlotPos)


     

            

        def OverOutItem(self):

            self.wndItem.SetUsableItem(FALSE)

            if None != self.tooltipItem:

                self.tooltipItem.HideToolTip()

     

        def OverInItem(self, overSlotPos):

            overSlotPos = self.__InventoryLocalSlotPosToGlobalSlotPos(overSlotPos)

            self.wndItem.SetUsableItem(FALSE)

     

            if mouseModule.mouseController.isAttached():

                attachedItemType = mouseModule.mouseController.GetAttachedType()

                if player.SLOT_TYPE_INVENTORY == attachedItemType:

     

                    attachedSlotPos = mouseModule.mouseController.GetAttachedSlotNumber()

                    attachedItemVNum = mouseModule.mouseController.GetAttachedItemIndex()

                    

                    if self.__CanUseSrcItemToDstItem(attachedItemVNum, attachedSlotPos, overSlotPos):

                        self.wndItem.SetUsableItem(TRUE)

                        self.ShowToolTip(overSlotPos)

                        return

                    

            self.ShowToolTip(overSlotPos)


     

        def __IsUsableItemToItem(self, srcItemVNum, srcSlotPos):

            "�ٸ� �����ۿ� ����� �� �ִ� �������ΰ�?"

     

            if item.IsRefineScroll(srcItemVNum):

                return TRUE

            elif item.IsMetin(srcItemVNum):

                return TRUE

            elif item.IsDetachScroll(srcItemVNum):

                return TRUE

            elif item.IsKey(srcItemVNum):

                return TRUE

            elif (player.GetItemFlags(srcSlotPos) & ITEM_FLAG_APPLICABLE) == ITEM_FLAG_APPLICABLE:

                return TRUE

            else:

                if item.GetUseType(srcItemVNum) in self.USE_TYPE_TUPLE:

                    return TRUE

                

            return FALSE

     

        def __CanUseSrcItemToDstItem(self, srcItemVNum, srcSlotPos, dstSlotPos):

            "��� �����ۿ� ����� �� �ִ°�?"

     

            if srcSlotPos == dstSlotPos:

                return FALSE

     

            if item.IsRefineScroll(srcItemVNum):

                if player.REFINE_OK == player.CanRefine(srcItemVNum, dstSlotPos):

                    return TRUE

            elif item.IsMetin(srcItemVNum):

                if player.ATTACH_METIN_OK == player.CanAttachMetin(srcItemVNum, dstSlotPos):

                    return TRUE

            elif item.IsDetachScroll(srcItemVNum):

                if player.DETACH_METIN_OK == player.CanDetach(srcItemVNum, dstSlotPos):

                    return TRUE

            elif item.IsKey(srcItemVNum):

                if player.CanUnlock(srcItemVNum, dstSlotPos):

                    return TRUE

     

            elif (player.GetItemFlags(srcSlotPos) & ITEM_FLAG_APPLICABLE) == ITEM_FLAG_APPLICABLE:

                return TRUE

     

            else:

                useType=item.GetUseType(srcItemVNum)

     

                if "USE_CLEAN_SOCKET" == useType:

                    if self.__CanCleanBrokenMetinStone(dstSlotPos):

                        return TRUE

                elif "USE_CHANGE_ATTRIBUTE" == useType:

                    if self.__CanChangeItemAttrList(dstSlotPos):

                        return TRUE

                elif "USE_ADD_ATTRIBUTE" == useType:

                    if self.__CanAddItemAttr(dstSlotPos):

                        return TRUE

                elif "USE_ADD_ATTRIBUTE2" == useType:

                    if self.__CanAddItemAttr(dstSlotPos):

                        return TRUE

                elif "USE_ADD_ACCESSORY_SOCKET" == useType:

                    if self.__CanAddAccessorySocket(dstSlotPos):

                        return TRUE

                elif "USE_PUT_INTO_ACCESSORY_SOCKET" == useType:                                

                    if self.__CanPutAccessorySocket(dstSlotPos, srcItemVNum):

                        return TRUE;

                elif "USE_PUT_INTO_BELT_SOCKET" == useType:                             

                    dstItemVNum = player.GetItemIndex(dstSlotPos)

                    print "USE_PUT_INTO_BELT_SOCKET", srcItemVNum, dstItemVNum

     

                    item.SelectItem(dstItemVNum)

            

                    if item.ITEM_TYPE_BELT == item.GetItemType():

                        return TRUE

     

            return FALSE

     

        def __CanCleanBrokenMetinStone(self, dstSlotPos):

            dstItemVNum = player.GetItemIndex(dstSlotPos)

            if dstItemVNum == 0:

                return FALSE

     

            item.SelectItem(dstItemVNum)

            

            if item.ITEM_TYPE_WEAPON != item.GetItemType():

                return FALSE

     

            for i in xrange(player.METIN_SOCKET_MAX_NUM):

                if player.GetItemMetinSocket(dstSlotPos, i) == constInfo.ERROR_METIN_STONE:

                    return TRUE

     

            return FALSE

     

        def __CanChangeItemAttrList(self, dstSlotPos):

            dstItemVNum = player.GetItemIndex(dstSlotPos)

            if dstItemVNum == 0:

                return FALSE

     

            item.SelectItem(dstItemVNum)

            

            if not item.GetItemType() in (item.ITEM_TYPE_WEAPON, item.ITEM_TYPE_ARMOR):  

                return FALSE

     

            for i in xrange(player.METIN_SOCKET_MAX_NUM):

                if player.GetItemAttribute(dstSlotPos, i) != 0:

                    return TRUE

     

            return FALSE

     

        def __CanPutAccessorySocket(self, dstSlotPos, mtrlVnum):

            dstItemVNum = player.GetItemIndex(dstSlotPos)

            if dstItemVNum == 0:

                return FALSE

     

            item.SelectItem(dstItemVNum)

     

            if item.GetItemType() != item.ITEM_TYPE_ARMOR:

                return FALSE

     

            if not item.GetItemSubType() in (item.ARMOR_WRIST, item.ARMOR_NECK, item.ARMOR_EAR):

                return FALSE

     

            curCount = player.GetItemMetinSocket(dstSlotPos, 0)

            maxCount = player.GetItemMetinSocket(dstSlotPos, 1)

     

            if mtrlVnum != constInfo.GET_ACCESSORY_MATERIAL_VNUM(dstItemVNum, item.GetItemSubType()):

                return FALSE

            

            if curCount>=maxCount:

                return FALSE

     

            return TRUE

     

        def __CanAddAccessorySocket(self, dstSlotPos):

            dstItemVNum = player.GetItemIndex(dstSlotPos)

            if dstItemVNum == 0:

                return FALSE

     

            item.SelectItem(dstItemVNum)

     

            if item.GetItemType() != item.ITEM_TYPE_ARMOR:

                return FALSE

     

            if not item.GetItemSubType() in (item.ARMOR_WRIST, item.ARMOR_NECK, item.ARMOR_EAR):

                return FALSE

     

            curCount = player.GetItemMetinSocket(dstSlotPos, 0)

            maxCount = player.GetItemMetinSocket(dstSlotPos, 1)

            

            ACCESSORY_SOCKET_MAX_SIZE = 3

            if maxCount >= ACCESSORY_SOCKET_MAX_SIZE:

                return FALSE

     

            return TRUE

     

        def __CanAddItemAttr(self, dstSlotPos):

            dstItemVNum = player.GetItemIndex(dstSlotPos)

            if dstItemVNum == 0:

                return FALSE

     

            item.SelectItem(dstItemVNum)

            

            if not item.GetItemType() in (item.ITEM_TYPE_WEAPON, item.ITEM_TYPE_ARMOR):  

                return FALSE

                

            attrCount = 0

            for i in xrange(player.METIN_SOCKET_MAX_NUM):

                if player.GetItemAttribute(dstSlotPos, i) != 0:

                    attrCount += 1

     

            if attrCount<4:

                return TRUE

                                    

            return FALSE

     

        def ShowToolTip(self, slotIndex):

            if None != self.tooltipItem:

                self.tooltipItem.SetInventoryItem(slotIndex)

     

        def OnTop(self):

            if None != self.tooltipItem:

                self.tooltipItem.SetTop()

     

        def OnPressEscapeKey(self):

            self.Close()

            return TRUE

     

        def UseItemSlot(self, slotIndex):

            curCursorNum = app.GetCursor()

            if app.SELL == curCursorNum:

                return

     

            if constInfo.GET_ITEM_QUESTION_DIALOG_STATUS():

                return

     

            slotIndex = self.__InventoryLocalSlotPosToGlobalSlotPos(slotIndex)

     

            if app.ENABLE_DRAGON_SOUL_SYSTEM:

                if self.wndDragonSoulRefine.IsShow():

                    self.wndDragonSoulRefine.AutoSetItem((player.INVENTORY, slotIndex), 1)

                    return

     

            self.__UseItem(slotIndex)

            mouseModule.mouseController.DeattachObject()

            self.OverOutItem()

     

        def __UseItem(self, slotIndex):

            ItemVNum = player.GetItemIndex(slotIndex)

            item.SelectItem(ItemVNum)

            if item.IsFlag(item.ITEM_FLAG_CONFIRM_WHEN_USE):

                self.questionDialog = uiCommon.QuestionDialog()

                self.questionDialog.SetText(localeInfo.INVENTORY_REALLY_USE_ITEM)

                self.questionDialog.SetAcceptEvent(ui.__mem_func__(self.__UseItemQuestionDialog_OnAccept))

                self.questionDialog.SetCancelEvent(ui.__mem_func__(self.__UseItemQuestionDialog_OnCancel))

                self.questionDialog.Open()

                self.questionDialog.slotIndex = slotIndex

            

                constInfo.SET_ITEM_QUESTION_DIALOG_STATUS(1)

     

            else:

                self.__SendUseItemPacket(slotIndex)

                #net.SendItemUsePacket(slotIndex)   

     

        def __UseItemQuestionDialog_OnCancel(self):

            self.OnCloseQuestionDialog()

     

        def __UseItemQuestionDialog_OnAccept(self):

            self.__SendUseItemPacket(self.questionDialog.slotIndex)

            self.OnCloseQuestionDialog()        

     

        def __SendUseItemToItemPacket(self, srcSlotPos, dstSlotPos):

            # ���λ��� ���� �ִ� ���� ������ ��� ����

            if uiPrivateShopBuilder.IsBuildingPrivateShop():

                chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.USE_ITEM_FAILURE_PRIVATE_SHOP)

                return

     

            net.SendItemUseToItemPacket(srcSlotPos, dstSlotPos)

     

        def __SendUseItemPacket(self, slotPos):

            # ���λ��� ���� �ִ� ���� ������ ��� ����

            if uiPrivateShopBuilder.IsBuildingPrivateShop():

                chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.USE_ITEM_FAILURE_PRIVATE_SHOP)

                return

     

            net.SendItemUsePacket(slotPos)

        

        def __SendMoveItemPacket(self, srcSlotPos, dstSlotPos, srcItemCount):

            # ���λ��� ���� �ִ� ���� ������ ��� ����

            if uiPrivateShopBuilder.IsBuildingPrivateShop():

                chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.MOVE_ITEM_FAILURE_PRIVATE_SHOP)

                return

     

            net.SendItemMovePacket(srcSlotPos, dstSlotPos, srcItemCount)

        

        def SetDragonSoulRefineWindow(self, wndDragonSoulRefine):

            if app.ENABLE_DRAGON_SOUL_SYSTEM:

                self.wndDragonSoulRefine = wndDragonSoulRefine

                

        def OnMoveWindow(self, x, y):

    #       print "Inventory Global Pos : ", self.GetGlobalPosition()

            if self.wndBelt:

    #           print "Belt Global Pos : ", self.wndBelt.GetGlobalPosition()

                self.wndBelt.AdjustPositionAndSize()

     

    ##BonusPageDialog

        def OnUpdate(self):

            if self.isLoaded == 1:

                self.__LoadRefreshBonus()

    ##BonusPageDialog

     

                            

     

    inventorywindow.py:

    Quote

    import uiScriptLocale

    import item

     

    EQUIPMENT_START_INDEX = 180

     

    window = {

        "name" : "InventoryWindow",

     

        ## 600 - (width + ????? ?? ??? 24 px)

        "x" : SCREEN_WIDTH - 176,

        "y" : SCREEN_HEIGHT - 55 - 565,

     

        "style" : ("movable", "float",),

     

        "width" : 176,

        "height" : 585,

     

        "children" :

        (

            ## Inventory, Equipment Slots

            {

                "name" : "board",

                "type" : "board",

                "style" : ("attach",),

     

                "x" : 0,

                "y" : 0,

     

                "width" : 176,

                "height" : 585,

     

                "children" :

                (

                    ## Title

                    {

                        "name" : "TitleBar",

                        "type" : "titlebar",

                        "style" : ("attach",),

     

                        "x" : 8,

                        "y" : 7,

     

                        "width" : 161,

                        "color" : "yellow",

     

                        "children" :

                        (

                            { "name":"TitleName", "type":"text", "x":77, "y":3, "text":uiScriptLocale.INVENTORY_TITLE, "text_horizontal_align":"center" },

                        ),

                    },

     

                    ## Equipment Slot

                    {

                        "name" : "Equipment_Base",

                        "type" : "image",

     

                        "x" : 10,

                        "y" : 33,

     

                        "image" : "d:/ymir work/ui/equipment_bg_without_ring.tga",

     

                        "children" :

                        (

     

                            {

                                "name" : "EquipmentSlot",

                                "type" : "slot",

     

                                "x" : 3,

                                "y" : 3,

     

                                "width" : 150,

                                "height" : 182,

     

                                "slot" : (

                                            {"index":EQUIPMENT_START_INDEX+0, "x":39, "y":37, "width":32, "height":64},

                                            {"index":EQUIPMENT_START_INDEX+1, "x":39, "y":2, "width":32, "height":32},

                                            {"index":EQUIPMENT_START_INDEX+2, "x":39, "y":145, "width":32, "height":32},

                                            {"index":EQUIPMENT_START_INDEX+3, "x":75, "y":67, "width":32, "height":32},

                                            {"index":EQUIPMENT_START_INDEX+4, "x":3, "y":3, "width":32, "height":96},

                                            {"index":EQUIPMENT_START_INDEX+5, "x":114, "y":67, "width":32, "height":32},

                                            {"index":EQUIPMENT_START_INDEX+6, "x":114, "y":35, "width":32, "height":32},

                                            {"index":EQUIPMENT_START_INDEX+7, "x":2, "y":145, "width":32, "height":32},

                                            {"index":EQUIPMENT_START_INDEX+8, "x":75, "y":145, "width":32, "height":32},

                                            {"index":EQUIPMENT_START_INDEX+9, "x":114, "y":2, "width":32, "height":32},

                                            {"index":EQUIPMENT_START_INDEX+10, "x":75, "y":35, "width":32, "height":32},

                                            ## ? ??1

                                            ##{"index":item.EQUIPMENT_RING1, "x":2, "y":106, "width":32, "height":32},

                                            ## ? ??2

                                            ##{"index":item.EQUIPMENT_RING2, "x":75, "y":106, "width":32, "height":32},

                                            ## ? ??

                                            {"index":item.EQUIPMENT_BELT, "x":39, "y":106, "width":32, "height":32},

                                        ),

                            },

                            ## Dragon Soul Button

                            {

                                "name" : "DSSButton",

                                "type" : "button",

     

                                "x" : 114,

                                "y" : 107,

     

                                "tooltip_text" : uiScriptLocale.TASKBAR_DRAGON_SOUL,

     

                                "default_image" : "d:/ymir work/ui/dragonsoul/dss_inventory_button_01.tga",

                                "over_image" : "d:/ymir work/ui/dragonsoul/dss_inventory_button_02.tga",

                                "down_image" : "d:/ymir work/ui/dragonsoul/dss_inventory_button_03.tga",

                            },

                            ## MallButton

                            {

                                "name" : "MallButton",

                                "type" : "button",

     

                                "x" : 118,

                                "y" : 148,

     

                                "tooltip_text" : uiScriptLocale.MALL_TITLE,

     

                                "default_image" : "d:/ymir work/ui/game/TaskBar/Mall_Button_01.tga",

                                "over_image" : "d:/ymir work/ui/game/TaskBar/Mall_Button_02.tga",

                                "down_image" : "d:/ymir work/ui/game/TaskBar/Mall_Button_03.tga",

                            },

                            ## CostumeButton

                            {

                                "name" : "CostumeButton",

                                "type" : "button",

     

                                "x" : 78,

                                "y" : 5,

     

                                "tooltip_text" : uiScriptLocale.COSTUME_TITLE,

     

                                "default_image" : "d:/ymir work/ui/game/taskbar/costume_Button_01.tga",

                                "over_image" : "d:/ymir work/ui/game/taskbar/costume_Button_02.tga",

                                "down_image" : "d:/ymir work/ui/game/taskbar/costume_Button_03.tga",

                            },                     

                            {

                                "name" : "Equipment_Tab_01",

                                "type" : "radio_button",

     

                                "x" : 86,

                                "y" : 161,

     

                                "default_image" : "d:/ymir work/ui/game/windows/tab_button_small_01.sub",

                                "over_image" : "d:/ymir work/ui/game/windows/tab_button_small_02.sub",

                                "down_image" : "d:/ymir work/ui/game/windows/tab_button_small_03.sub",

     

                                "children" :

                                (

                                    {

                                        "name" : "Equipment_Tab_01_Print",

                                        "type" : "text",

     

                                        "x" : 0,

                                        "y" : 0,

     

                                        "all_align" : "center",

     

                                        "text" : "I",

                                    },

                                ),

                            },

                            {

                                "name" : "Equipment_Tab_02",

                                "type" : "radio_button",

     

                                "x" : 86 + 32,

                                "y" : 161,

     

                                "default_image" : "d:/ymir work/ui/game/windows/tab_button_small_01.sub",

                                "over_image" : "d:/ymir work/ui/game/windows/tab_button_small_02.sub",

                                "down_image" : "d:/ymir work/ui/game/windows/tab_button_small_03.sub",

     

                                "children" :

                                (

                                    {

                                        "name" : "Equipment_Tab_02_Print",

                                        "type" : "text",

     

                                        "x" : 0,

                                        "y" : 0,

     

                                        "all_align" : "center",

     

                                        "text" : "II",

                                    },

                                ),

                            },

     

                        ),

                    },

                    ##BonusPageDialog

                    {

                        "name" : "Bonus_Page",

                        "type" : "window",

                        "x" : 166,

                        "y" : 34,

                        "width" : 124,

                        "height" : 565-24,

                        "children" :

                        (

                            {

                                "name" : "BonusBase1",

                                "type" : "horizontalbar",

                                "x" : 4,

                                "y" : 0,

                                "width" : 120,

                                "children" :

                                (

                                    {

                                        "name" : "bonus_text_1",

                                        "type" : "text",

                                        "x" : 0,

                                        "y" : 0,

                                        "all_align" : "center",

                                        "text" : "Defensive", 

                                    },

                                ),

                            },

                            {

                                "name" : "Schwert_verteidigung",

                                "type" : "text",

                                "x" : 5,

                                "y" : 1*18,

                                "text" : "Schwert:"

                            },

                            {

                                "name" : "Schwert_vert",

                                "type" : "window",

                                "x" : 72,

                                "y" : 1*18,

                                "width" : 53,

                                "height" : 19,

                                "children" :

                                (

                                    {

                                        "name" : "Schwert_vert_Slot",

                                        "type" : "image",

                                        "x" : 0,

                                        "y" : 0,

                                        "image" : MIDDLE_VALUE_FILE

                                    },

                                    {

                                        "name" : "Schwert_vert_Value",

                                        "type" : "text",

                                        "x" : 26,

                                        "y" : 3,

                                        "text" : "999",

                                        "r" : 1.0,

                                        "g" : 1.0,

                                        "b" : 1.0,

                                        "a" : 1.0,

                                        "text_horizontal_align":"center"

                                    },

                                ),

                            },

                            {

                                "name" : "Zweih�nder_verteidigung",

                                "type" : "text",

                                "x" : 5,

                                "y" : 2*18,

                                "text" : "Zweih�nder:"

                            },

                            {

                                "name" : "Zweih�nder_vert",

                                "type" : "window",

                                "x" : 72,

                                "y" : 2*18,

                                "width" : 53,

                                "height" : 19,

                                "children" :

                                (

                                    {

                                        "name" : "Zweih�nder_vert_Slot",

                                        "type" : "image",

                                        "x" : 0,

                                        "y" : 0,

                                        "image" : MIDDLE_VALUE_FILE

                                    },

                                    {

                                        "name" : "Zweih�nder_vert_Value",

                                        "type" : "text",

                                        "x" : 26,

                                        "y" : 3,

                                        "text" : "999",

                                        "r" : 1.0,

                                        "g" : 1.0,

                                        "b" : 1.0,

                                        "a" : 1.0,

                                        "text_horizontal_align":"center"

                                    },

                                ),

                            },

                            {

                                "name" : "Dolche_verteidigung",

                                "type" : "text",

                                "x" : 5,

                                "y" : 3*18,

                                "text" : "Dolche:"

                            },

                            {

                                "name" : "Dolche_vert",

                                "type" : "window",

                                "x" : 72,

                                "y" : 3*18,

                                "width" : 53,

                                "height" : 19,

                                "children" :

                                (

                                    {

                                        "name" : "Dolche_vert_Slot",

                                        "type" : "image",

                                        "x" : 0,

                                        "y" : 0,

                                        "image" : MIDDLE_VALUE_FILE

                                    },

                                    {

                                        "name" : "Dolche_vert_Value",

                                        "type" : "text",

                                        "x" : 26,

                                        "y" : 3,

                                        "text" : "999",

                                        "r" : 1.0,

                                        "g" : 1.0,

                                        "b" : 1.0,

                                        "a" : 1.0,

                                        "text_horizontal_align":"center"

                                    },

                                ),

                            },

                            {

                                "name" : "Bogen_verteidigung",

                                "type" : "text",

                                "x" : 5,

                                "y" : 4*18,

                                "text" : "Bogen:"

                            },

                            {

                                "name" : "Bogen_vert",

                                "type" : "window",

                                "x" : 72,

                                "y" : 4*18,

                                "width" : 53,

                                "height" : 19,

                                "children" :

                                (

                                    {

                                        "name" : "Bogen_vert_Slot",

                                        "type" : "image",

                                        "x" : 0,

                                        "y" : 0,

                                        "image" : MIDDLE_VALUE_FILE

                                    },

                                    {

                                        "name" : "Bogen_vert_Value",

                                        "type" : "text",

                                        "x" : 26,

                                        "y" : 3,

                                        "text" : "999",

                                        "r" : 1.0,

                                        "g" : 1.0,

                                        "b" : 1.0,

                                        "a" : 1.0,

                                        "text_horizontal_align":"center"

                                    },

                                ),

                            },

                            {

                                "name" : "Glocke_verteidigung",

                                "type" : "text",

                                "x" : 5,

                                "y" : 5*18,

                                "text" : "Glocke:"

                            },

                            {

                                "name" : "Glocke_vert",

                                "type" : "window",

                                "x" : 72,

                                "y" : 5*18,

                                "width" : 53,

                                "height" : 19,

                                "children" :

                                (

                                    {

                                        "name" : "Glocke_vert_Slot",

                                        "type" : "image",

                                        "x" : 0,

                                        "y" : 0,

                                        "image" : MIDDLE_VALUE_FILE

                                    },

                                    {

                                        "name" : "Glocke_vert_Value",

                                        "type" : "text",

                                        "x" : 26,

                                        "y" : 3,

                                        "text" : "999",

                                        "r" : 1.0,

                                        "g" : 1.0,

                                        "b" : 1.0,

                                        "a" : 1.0,

                                        "text_horizontal_align":"center"

                                    },

                                ),

                            },

                            {

                                "name" : "F�cher_verteidigung",

                                "type" : "text",

                                "x" : 5,

                                "y" : 6*18,

                                "text" : "F�cher:"

                            },

                            {

                                "name" : "F�cher_vert",

                                "type" : "window",

                                "x" : 72,

                                "y" : 6*18,

                                "width" : 53,

                                "height" : 19,

                                "children" :

                                (

                                    {

                                        "name" : "F�cher_vert_Slot",

                                        "type" : "image",

                                        "x" : 0,

                                        "y" : 0,

                                        "image" : MIDDLE_VALUE_FILE

                                    },

                                    {

                                        "name" : "F�cher_vert_Value",

                                        "type" : "text",

                                        "x" : 26,

                                        "y" : 3,

                                        "text" : "999",

                                        "r" : 1.0,

                                        "g" : 1.0,

                                        "b" : 1.0,

                                        "a" : 1.0,

                                        "text_horizontal_align":"center"

                                    },

                                ),

                            },

                            {

                                "name" : "Magie_verteidigung",

                                "type" : "text",

                                "x" : 5,

                                "y" : 7*18,

                                "text" : "Magie:"

                            },

                            {

                                "name" : "Magie_vert",

                                "type" : "window",

                                "x" : 72,

                                "y" : 7*18,

                                "width" : 53,

                                "height" : 19,

                                "children" :

                                (

                                    {

                                        "name" : "Magie_vert_Slot",

                                        "type" : "image",

                                        "x" : 0,

                                        "y" : 0,

                                        "image" : MIDDLE_VALUE_FILE

                                    },

                                    {

                                        "name" : "Magie_vert_Value",

                                        "type" : "text",

                                        "x" : 26,

                                        "y" : 3,

                                        "text" : "999",

                                        "r" : 1.0,

                                        "g" : 1.0,

                                        "b" : 1.0,

                                        "a" : 1.0,

                                        "text_horizontal_align":"center"

                                    },

                                ),

                            },

                            {

                                "name" : "Gift_verteidigung",

                                "type" : "text",

                                "x" : 5,

                                "y" : 8*18,

                                "text" : "Pioson:"

                            },

                            {

                                "name" : "Gift_vert",

                                "type" : "window",

                                "x" : 72,

                                "y" : 8*18,

                                "width" : 53,

                                "height" : 19,

                                "children" :

                                (

                                    {

                                        "name" : "Gift_vert_Slot",

                                        "type" : "image",

                                        "x" : 0,

                                        "y" : 0,

                                        "image" : MIDDLE_VALUE_FILE

                                    },

                                    {

                                        "name" : "Gift_vert_Value",

                                        "type" : "text",

                                        "x" : 26,

                                        "y" : 3,

                                        "text" : "999",

                                        "r" : 1.0,

                                        "g" : 1.0,

                                        "b" : 1.0,

                                        "a" : 1.0,

                                        "text_horizontal_align":"center"

                                    },

                                ),

                            },

                            {

                                "name" : "Krieger_verteidigung",

                                "type" : "text",

                                "x" : 5,

                                "y" : 9*18,

                                "text" : "Krieger:"

                            },

                            {

                                "name" : "Krieger_vert",

                                "type" : "window",

                                "x" : 72,

                                "y" : 9*18,

                                "width" : 53,

                                "height" : 19,

                                "children" :

                                (

                                    {

                                        "name" : "Krieger_vert_Slot",

                                        "type" : "image",

                                        "x" : 0,

                                        "y" : 0,

                                        "image" : MIDDLE_VALUE_FILE

                                    },

                                    {

                                        "name" : "Krieger_vert_Value",

                                        "type" : "text",

                                        "x" : 26,

                                        "y" : 3,

                                        "text" : "999",

                                        "r" : 1.0,

                                        "g" : 1.0,

                                        "b" : 1.0,

                                        "a" : 1.0,

                                        "text_horizontal_align":"center"

                                    },

                                ),

                            },

                            {

                                "name" : "Ninja_verteidigung",

                                "type" : "text",

                                "x" : 5,

                                "y" : 10*18,

                                "text" : "Ninja:"

                            },

                            {

                                "name" : "Ninja_vert",

                                "type" : "window",

                                "x" : 72,

                                "y" : 10*18,

                                "width" : 53,

                                "height" : 19,

                                "children" :

                                (

                                    {

                                        "name" : "Ninja_vert_Slot",

                                        "type" : "image",

                                        "x" : 0,

                                        "y" : 0,

                                        "image" : MIDDLE_VALUE_FILE

                                    },

                                    {

                                        "name" : "Ninja_vert_Value",

                                        "type" : "text",

                                        "x" : 26,

                                        "y" : 3,

                                        "text" : "999",

                                        "r" : 1.0,

                                        "g" : 1.0,

                                        "b" : 1.0,

                                        "a" : 1.0,

                                        "text_horizontal_align":"center"

                                    },

                                ),

                            },

                            {

                                "name" : "Sura_verteidigung",

                                "type" : "text",

                                "x" : 5,

                                "y" : 11*18,

                                "text" : "Sura:"

                            },

                            {

                                "name" : "Sura_vert",

                                "type" : "window",

                                "x" : 72,

                                "y" : 11*18,

                                "width" : 53,

                                "height" : 19,

                                "children" :

                                (

                                    {

                                        "name" : "Sura_vert_Slot",

                                        "type" : "image",

                                        "x" : 0,

                                        "y" : 0,

                                        "image" : MIDDLE_VALUE_FILE

                                    },

                                    {

                                        "name" : "Sura_vert_Value",

                                        "type" : "text",

                                        "x" : 26,

                                        "y" : 3,

                                        "text" : "999",

                                        "r" : 1.0,

                                        "g" : 1.0,

                                        "b" : 1.0,

                                        "a" : 1.0,

                                        "text_horizontal_align":"center"

                                    },

                                ),

                            },

                            {

                                "name" : "Schamane_verteidigung",

                                "type" : "text",

                                "x" : 5,

                                "y" : 12*18,

                                "text" : "Schamane:"

                            },

                            {

                                "name" : "Schamane_vert",

                                "type" : "window",

                                "x" : 72,

                                "y" : 12*18,

                                "width" : 53,

                                "height" : 19,

                                "children" :

                                (

                                    {

                                        "name" : "Schamane_vert_Slot",

                                        "type" : "image",

                                        "x" : 0,

                                        "y" : 0,

                                        "image" : MIDDLE_VALUE_FILE

                                    },

                                    {

                                        "name" : "Schamane_vert_Value",

                                        "type" : "text",

                                        "x" : 26,

                                        "y" : 3,

                                        "text" : "999",

                                        "r" : 1.0,

                                        "g" : 1.0,

                                        "b" : 1.0,

                                        "a" : 1.0,

                                        "text_horizontal_align":"center"

                                    },

                                ),

                            },

                            {

                                "name" : "BonusBase2",

                                "type" : "horizontalbar",

                                "x" : 4,

                                "y" : 235,

                                "width" : 120,

                                "children" :

                                (

                                    {

                                        "name" : "bonus_text_1",

                                        "type" : "text",

                                        "x" : 0,

                                        "y" : 0,

                                        "all_align" : "center",

                                        "text" : "Attacker",

                                    },

                                ),

                            },

                            {

                                "name" : "Critical_treffer",

                                "type" : "text",

                                "x" : 5,

                                "y" : 235+(1*18),

                                "text" : "Kritical:"

                            },

                            {

                                "name" : "Krit",

                                "type" : "window",

                                "x" : 72,

                                "y" : 235+(1*18),

                                "width" : 53,

                                "height" : 19,

                                "children" :

                                (

                                    {

                                        "name" : "Krit_Slot",

                                        "type" : "image",

                                        "x" : 0,

                                        "y" : 0,

                                        "image" : MIDDLE_VALUE_FILE

                                    },

                                    {

                                        "name" : "Krit_Value",

                                        "type" : "text",

                                        "x" : 26,

                                        "y" : 3,

                                        "text" : "999",

                                        "r" : 1.0,

                                        "g" : 1.0,

                                        "b" : 1.0,

                                        "a" : 1.0,

                                        "text_horizontal_align":"center"

                                    },

                                ),

                            },

                            {

                                "name" : "DurchBohrenden_treffer",

                                "type" : "text",

                                "x" : 5,

                                "y" : 235+(2*18),

                                "text" : "DB:"

                            },

                            {

                                "name" : "DurchBohrenden",

                                "type" : "window",

                                "x" : 72,

                                "y" : 235+(2*18),

                                "width" : 53,

                                "height" : 19,

                                "children" :

                                (

                                    {

                                        "name" : "DurchBohrenden_Slot",

                                        "type" : "image",

                                        "x" : 0,

                                        "y" : 0,

                                        "image" : MIDDLE_VALUE_FILE

                                    },

                                    {

                                        "name" : "DurchBohrenden_Value",

                                        "type" : "text",

                                        "x" : 26,

                                        "y" : 3,

                                        "text" : "999",

                                        "r" : 1.0,

                                        "g" : 1.0,

                                        "b" : 1.0,

                                        "a" : 1.0,

                                        "text_horizontal_align":"center"

                                    },

                                ),

                            },

                            {

                                "name" : "DSS_",

                                "type" : "text",

                                "x" : 5,

                                "y" : 235+(3*18),

                                "text" : "DSS:"

                            },

                            {

                                "name" : "DSS",

                                "type" : "window",

                                "x" : 72,

                                "y" : 235+(3*18),

                                "width" : 53,

                                "height" : 19,

                                "children" :

                                (

                                    {

                                        "name" : "DSS_Slot",

                                        "type" : "image",

                                        "x" : 0,

                                        "y" : 0,

                                        "image" : MIDDLE_VALUE_FILE

                                    },

                                    {

                                        "name" : "DSS_Value",

                                        "type" : "text",

                                        "x" : 26,

                                        "y" : 3,

                                        "text" : "999",

                                        "r" : 1.0,

                                        "g" : 1.0,

                                        "b" : 1.0,

                                        "a" : 1.0,

                                        "text_horizontal_align":"center"

                                    },

                                ),

                            },

                            {

                                "name" : "FKS_",

                                "type" : "text",

                                "x" : 5,

                                "y" : 235+(4*18),

                                "text" : "FKS:"

                            },

                            {

                                "name" : "FKS",

                                "type" : "window",

                                "x" : 72,

                                "y" : 235+(4*18),

                                "width" : 53,

                                "height" : 19,

                                "children" :

                                (

                                    {

                                        "name" : "FKS_Slot",

                                        "type" : "image",

                                        "x" : 0,

                                        "y" : 0,

                                        "image" : MIDDLE_VALUE_FILE

                                    },

                                    {

                                        "name" : "FKS_Value",

                                        "type" : "text",

                                        "x" : 26,

                                        "y" : 3,

                                        "text" : "999",

                                        "r" : 1.0,

                                        "g" : 1.0,

                                        "b" : 1.0,

                                        "a" : 1.0,

                                        "text_horizontal_align":"center"

                                    },

                                ),

                            },

                            {

                                "name" : "Halbmenschen_gegen",

                                "type" : "text",

                                "x" : 5,

                                "y" : 235+(5*18),

                                "text" : "Halbmenschen:"

                            },

                            {

                                "name" : "Halbmenschen",

                                "type" : "window",

                                "x" : 72,

                                "y" : 235+(5*18),

                                "width" : 53,

                                "height" : 19,

                                "children" :

                                (

                                    {

                                        "name" : "Halbmenschen_Slot",

                                        "type" : "image",

                                        "x" : 0,

                                        "y" : 0,

                                        "image" : MIDDLE_VALUE_FILE

                                    },

                                    {

                                        "name" : "Halbmenschen_Value",

                                        "type" : "text",

                                        "x" : 26,

                                        "y" : 3,

                                        "text" : "999",

                                        "r" : 1.0,

                                        "g" : 1.0,

                                        "b" : 1.0,

                                        "a" : 1.0,

                                        "text_horizontal_align":"center"

                                    },

                                ),

                            },

                            {

                                "name" : "Untote_gegen",

                                "type" : "text",

                                "x" : 5,

                                "y" : 235+(6*18),

                                "text" : "Untote:"

                            },

                            {

                                "name" : "Untote",

                                "type" : "window",

                                "x" : 72,

                                "y" : 235+(6*18),

                                "width" : 53,

                                "height" : 19,

                                "children" :

                                (

                                    {

                                        "name" : "Untote_Slot",

                                        "type" : "image",

                                        "x" : 0,

                                        "y" : 0,

                                        "image" : MIDDLE_VALUE_FILE

                                    },

                                    {

                                        "name" : "Untote_Value",

                                        "type" : "text",

                                        "x" : 26,

                                        "y" : 3,

                                        "text" : "999",

                                        "r" : 1.0,

                                        "g" : 1.0,

                                        "b" : 1.0,

                                        "a" : 1.0,

                                        "text_horizontal_align":"center"

                                    },

                                ),

                            },

                            {

                                "name" : "Teufel_gegen",

                                "type" : "text",

                                "x" : 5,

                                "y" : 235+(7*18),

                                "text" : "Devil:"

                            },

                            {

                                "name" : "Teufel",

                                "type" : "window",

                                "x" : 72,

                                "y" : 235+(7*18),

                                "width" : 53,

                                "height" : 19,

                                "children" :

                                (

                                    {

                                        "name" : "Teufel_Slot",

                                        "type" : "image",

                                        "x" : 0,

                                        "y" : 0,

                                        "image" : MIDDLE_VALUE_FILE

                                    },

                                    {

                                        "name" : "Teufel_Value",

                                        "type" : "text",

                                        "x" : 26,

                                        "y" : 3,

                                        "text" : "999",

                                        "r" : 1.0,

                                        "g" : 1.0,

                                        "b" : 1.0,

                                        "a" : 1.0,

                                        "text_horizontal_align":"center"

                                    },

                                ),

                            },

                            {

                                "name" : "Krieger_gegen",

                                "type" : "text",

                                "x" : 5,

                                "y" : 235+(8*18),

                                "text" : "Krieger:"

                            },

                            {

                                "name" : "Krieger_str",

                                "type" : "window",

                                "x" : 72,

                                "y" : 235+(8*18),

                                "width" : 53,

                                "height" : 19,

                                "children" :

                                (

                                    {

                                        "name" : "Krieger_str_Slot",

                                        "type" : "image",

                                        "x" : 0,

                                        "y" : 0,

                                        "image" : MIDDLE_VALUE_FILE

                                    },

                                    {

                                        "name" : "Krieger_str_Value",

                                        "type" : "text",

                                        "x" : 26,

                                        "y" : 3,

                                        "text" : "999",

                                        "r" : 1.0,

                                        "g" : 1.0,

                                        "b" : 1.0,

                                        "a" : 1.0,

                                        "text_horizontal_align":"center"

                                    },

                                ),

                            },

                            {

                                "name" : "Ninja_gegen",

                                "type" : "text",

                                "x" : 5,

                                "y" : 235+(9*18),

                                "text" : "Ninja:"

                            },

                            {

                                "name" : "Ninja_str",

                                "type" : "window",

                                "x" : 72,

                                "y" : 235+(9*18),

                                "width" : 53,

                                "height" : 19,

                                "children" :

                                (

                                    {

                                        "name" : "Ninja_str_Slot",

                                        "type" : "image",

                                        "x" : 0,

                                        "y" : 0,

                                        "image" : MIDDLE_VALUE_FILE

                                    },

                                    {

                                        "name" : "Ninja_str_Value",

                                        "type" : "text",

                                        "x" : 26,

                                        "y" : 3,

                                        "text" : "999",

                                        "r" : 1.0,

                                        "g" : 1.0,

                                        "b" : 1.0,

                                        "a" : 1.0,

                                        "text_horizontal_align":"center"

                                    },

                                ),

                            },

                            {

                                "name" : "Sura_gegen",

                                "type" : "text",

                                "x" : 5,

                                "y" : 235+(10*18),

                                "text" : "Sura:"

                            },

                            {

                                "name" : "Ninja_str",

                                "type" : "window",

                                "x" : 72,

                                "y" : 235+(10*18),

                                "width" : 53,

                                "height" : 19,

                                "children" :

                                (

                                    {

                                        "name" : "Sura_str_Slot",

                                        "type" : "image",

                                        "x" : 0,

                                        "y" : 0,

                                        "image" : MIDDLE_VALUE_FILE

                                    },

                                    {

                                        "name" : "Sura_str_Value",

                                        "type" : "text",

                                        "x" : 26,

                                        "y" : 3,

                                        "text" : "999",

                                        "r" : 1.0,

                                        "g" : 1.0,

                                        "b" : 1.0,

                                        "a" : 1.0,

                                        "text_horizontal_align":"center"

                                    },

                                ),

                            },

                            {

                                "name" : "Schamane_gegen",

                                "type" : "text",

                                "x" : 5,

                                "y" : 235+(11*18),

                                "text" : "Schamane:"

                            },

                            {

                                "name" : "Schamane_str",

                                "type" : "window",

                                "x" : 72,

                                "y" : 235+(11*18),

                                "width" : 53,

                                "height" : 19,

                                "children" :

                                (

                                    {

                                        "name" : "Schamane_str_Slot",

                                        "type" : "image",

                                        "x" : 0,

                                        "y" : 0,

                                        "image" : MIDDLE_VALUE_FILE

                                    },

                                    {

                                        "name" : "Schamane_str_Value",

                                        "type" : "text",

                                        "x" : 26,

                                        "y" : 3,

                                        "text" : "999",

                                        "r" : 1.0,

                                        "g" : 1.0,

                                        "b" : 1.0,

                                        "a" : 1.0,

                                        "text_horizontal_align":"center"

                                    },

                                ),

                            },

                            {

                                "name" : "CopyRight",

                                "type" : "horizontalbar",

                                "x" : 4,

                                "y" : 470,

                                "width" : 120,

                                "children" :

                                (

                                    {

                                        "name" : "(C)",

                                        "type" : "text",

                                        "x" : 0,

                                        "y" : 0,

                                        "all_align" : "center",

                                        "text" : "� P3NG3R",

                                        "r" : 1.0,

                                        "g" : 0.0,

                                        "b" : 0.0,

                                        "a" : 1.0,

                                    },

                                ),

                            },

                        ),

                    },

     

                    ##InventoryTabs

                    {

                        "name" : "Inventory_Tab_01",

                        "type" : "radio_button",

     

                        "x" : 10,

                        "y" : 33 + 189,

     

                        "default_image" : "d:/ymir work/ui/game/windows/tab_button_large_01.sub",

                        "over_image" : "d:/ymir work/ui/game/windows/tab_button_large_02.sub",

                        "down_image" : "d:/ymir work/ui/game/windows/tab_button_large_03.sub",

                        "tooltip_text" : uiScriptLocale.INVENTORY_PAGE_BUTTON_TOOLTIP_1,

     

                        "children" :

                        (

                            {

                                "name" : "Inventory_Tab_01_Print",

                                "type" : "text",

     

                                "x" : 0,

                                "y" : 0,

     

                                "all_align" : "center",

     

                                "text" : "I",

                            },

                        ),

                    },

                    {

                        "name" : "Inventory_Tab_02",

                        "type" : "radio_button",

     

                        "x" : 10 + 78,

                        "y" : 33 + 189,

     

                        "default_image" : "d:/ymir work/ui/game/windows/tab_button_large_01.sub",

                        "over_image" : "d:/ymir work/ui/game/windows/tab_button_large_02.sub",

                        "down_image" : "d:/ymir work/ui/game/windows/tab_button_large_03.sub",

                        "tooltip_text" : uiScriptLocale.INVENTORY_PAGE_BUTTON_TOOLTIP_2,

     

                        "children" :

                        (

                            {

                                "name" : "Inventory_Tab_02_Print",

                                "type" : "text",

     

                                "x" : 0,

                                "y" : 0,

     

                                "all_align" : "center",

     

                                "text" : "II",

                            },

                        ),

                    },

                    {

                        "name" : "Inventory_Tab_03",

                        "type" : "radio_button",

     

                        "x" : 10,

                        "y" : 33 + 210,

     

                        "default_image" : "d:/ymir work/ui/game/windows/tab_button_large_01.sub",

                        "over_image" : "d:/ymir work/ui/game/windows/tab_button_large_02.sub",

                        "down_image" : "d:/ymir work/ui/game/windows/tab_button_large_03.sub",

                        "tooltip_text" : uiScriptLocale.INVENTORY_PAGE_BUTTON_TOOLTIP_3,

     

                        "children" :

                        (

                            {

                                "name" : "Inventory_Tab_03_Print",

                                "type" : "text",

     

                                "x" : 0,

                                "y" : 0,

     

                                "all_align" : "center",

     

                                "text" : "III",

                            },

                        ),

                    },

                    {

                        "name" : "Inventory_Tab_04",

                        "type" : "radio_button",

     

                        "x" : 10 + 78,

                        "y" : 33 + 210,

     

                        "default_image" : "d:/ymir work/ui/game/windows/tab_button_large_01.sub",

                        "over_image" : "d:/ymir work/ui/game/windows/tab_button_large_02.sub",

                        "down_image" : "d:/ymir work/ui/game/windows/tab_button_large_03.sub",

                        "tooltip_text" : uiScriptLocale.INVENTORY_PAGE_BUTTON_TOOLTIP_4,

     

                        "children" :

                        (

                            {

                                "name" : "Inventory_Tab_04_Print",

                                "type" : "text",

     

                                "x" : 0,

                                "y" : 0,

     

                                "all_align" : "center",

     

                                "text" : "IV",

                            },

                        ),

                    },             

     

                    ## Item Slot

                    {

                        "name" : "ItemSlot",

                        "type" : "grid_table",

     

                        "x" : 8,

                        "y" : 264,

     

                        "start_index" : 0,

                        "x_count" : 5,

                        "y_count" : 9,

                        "x_step" : 32,

                        "y_step" : 32,

     

                        "image" : "d:/ymir work/ui/public/Slot_Base.sub"

                    },

     

                    ## Print

                    {

                        "name":"Money_Slot",

                        "type":"button",

     

                        "x":8,

                        "y":28,

     

                        "horizontal_align":"center",

                        "vertical_align":"bottom",

     

                        "default_image" : "d:/ymir work/ui/public/parameter_slot_05.sub",

                        "over_image" : "d:/ymir work/ui/public/parameter_slot_05.sub",

                        "down_image" : "d:/ymir work/ui/public/parameter_slot_05.sub",

     

                        "children" :

                        (

                            {

                                "name":"Money_Icon",

                                "type":"image",

     

                                "x":-18,

                                "y":2,

     

                                "image":"d:/ymir work/ui/game/windows/money_icon.sub",

                            },

     

                            {

                                "name" : "Money",

                                "type" : "text",

     

                                "x" : 3,

                                "y" : 3,

     

                                "horizontal_align" : "right",

                                "text_horizontal_align" : "right",

     

                                "text" : "123456789",

                            },

                        ),

                    },

     

                ),

            },

        ),

    }

    Thanks for every advice, which i got from you.

    oh, so nothing, i got it.

  11. 10 hours ago, .plechito&#x27; said:

    The model texture is not stored in original folder, so the client can't read it. Check the texture path in granny viewer and put them into right folder

    Hello, thanks for an answer. I tried to change the path of textures, but it doesnt working. The base path is D:/book/armature. And i really dont know, how can i create the d:/Book.

  12. 19 hours ago, seyonx66 said:

    Hello, i got a problem. I insert a new armors into the game, im using fliege files v1 with client. I have the icon + model in the game, database i copied from armor of lvl 70. But the armors have the icon, but it looks like BS. Anyone help?

     

     

     

    EDIT: It looks like this right now. Where can be a problem?spacer.png

     

     

    up

  13. Hello, i got a problem. I insert a new armors into the game, im using fliege files v1 with client. I have the icon + model in the game, database i copied from armor of lvl 70. But the armors have the icon, but it looks like BS. Anyone help?

     

     

     

    EDIT: It looks like this right now. Where can be a problem?spacer.png

     

     

  14. 2 hours ago, danhakhavro said:

    Hi,

     

    How should we understand what armor is there?

     

    79b96e95f53f10145b56b55ad74753ae.png

    oh sorry, i will send u a screen of armor. This is just sura, but armors looks like this:spacer.png

×
×
  • Create New...

Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.