seyonx66
-
Posts
28 -
Joined
-
Last visited
-
Feedback
0%
Content Type
Forums
Store
Third Party - Providers Directory
Feature Plan
Release Notes
Docs
Events
Posts posted by seyonx66
-
-
1 minute ago, TMP4 said:
Didn't you say your problem was czech diacritic?
Or did it worked before?
Diacritics u fixed right now, but now i gotta this error
Maybe the error was always, but now i need to teleport, and i got this error
-
15 minutes ago, TMP4 said:Quote
uiInventory.py(line:566) RefreshBonus
ui.py(line:2704) GetChildInventoryWindow.RefreshBonus.BindObject - exceptions.KeyError:Sword_def_Value
0721 19:04:47445 :: ============================================================================================================
0721 19:04:47445 :: Abort!!!!Here is syserr. Still not working.
-
-
-
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 hours ago, TMP4 said:
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 -
Just now, TMP4 said:
Bro your server is running
client talking another i can't to log in, and i have a good IP in the serverinfo.py
5 minutes ago, TMP4 said:Bro your server is running
Are you sure you can't connect?
yeah, i am really sure, i can't connect.
-
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 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
Quoteroot@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)
-
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.
QuoteStartet 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.
Quoteroot@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
-
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.
QuoteSYSERR: Jul 18 13:39:03 :: pid_init:
Start of pid: 4873SYSERR: 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.
-
Just now, I3ooI3oo said:
Is your mysql-server running?
Are your files fixed public_ip?
yeah, mysql-server is running, and its all fixed into my PUBLIC_IP
-
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 pshere is the ps command
QuoteStartet 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
-
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 runningHere is syserr of db:
QuoteSYSERR: Jul 18 13:11:17 :: pid_init:
Start of pid: 32825SYSERR: Jul 18 13:11:17 :: Start: TABLE_POSTFIX not configured use default
Syserr of core1:
QuoteSYSERR: Jul 18 13:11:23 :: pid_init:
Start of pid: 32840SYSERR: Jul 18 13:11:23 :: socket_bind: bind: Address already in use
Syserr of core 2, 3:
QuoteSYSERR: Jul 18 13:11:24 :: pid_init:
Start of pid: 32847SYSERR: 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.
-
-
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:
Quote0716 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) GetChildInventoryWindow.RefreshBonus.BindObject - exceptions.KeyError:Schwert_vert_Value
0716 00:19:55621 :: ============================================================================================================
0716 00:19:55621 :: Abort!!!!
uiinventory.py:
Quoteimport 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:
Quoteimport 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.
-
Ty. I tried to change the texture path, but when i always change it, i can't see my character and the armor. I got the textures in ymir Work/pc/warrior/armature, and in this folder is .gr2 too. But i cant see the armor and my character.
-
10 hours ago, .plechito' 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.
-
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?
up
-
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?
-
-
Hello there, do u have someone from u client+serverfiles by sanii? Im trying to find it long time, but nobody have it.
- 1
-
-
Hi, i found the armors which i want, here is link: https://www.elitepvpers.com/forum/metin2-pserver-guides-strategies/1852706-armor-release-armor-all-characters.html
Does anyone from u have this downloaded? The download link is dead. Thanks.
inventory
in Community Support - Questions & Answers
Posted
i found it in a uiinventory.py, below it writed it, and still same error.