noisiv 1
noisiv
Manwe Work 1
Manwe Work
shrpnl 1
shrpnl
YusufŞimşek14 1
YusufŞimşek14
berzahx 2
berzahx
xranzei 1
xranzei
Agora Metin2 1
Agora Metin2
Bvural41 1
Bvural41
Hikaye Ekle
Reklam vermek için turkmmo@gmail.com

Cevaplandı Owsap 6.2.4 SF Kurulum Sorunu

  • Konuyu başlatan Konuyu başlatan yerebasmaz52
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 15
  • Görüntüleme Görüntüleme 430

yerebasmaz52

Level 2
Üye
Katılım
8 Tem 2011
Konular
18
Mesajlar
77
Çözüm
2
Online süresi
6d 10h
Reaksiyon Skoru
10
Altın Konu
0
TM Yaşı
14 Yıl 11 Ay 13 Gün
Başarım Puanı
92
MmoLira
957
DevLira
0
Ticaret - 0%
0   0   0

ROHAN2 WORLD 1-120 TR TİPİ OFFICIAL YOHARA, BALATHOR VE AMON! 80. GÜNÜNDE! +10.000 ONLİNE! HİLE VE BOT %100 ENGELLİ HEMEN TIKLA!

Merak ettiğim için buradaki filesi kurdum.

python m2.py yapıp sunucuyu açıyorum;

1768772568250.png


Serverinfo.py dosyasını da düzenleyip paketledim. Oyuna girdiğim zaman hata veriyor;

1768772616406.png


Ne yapmam gerekiyor yardımcı olursanız sevinirim.
 
Bu ekrana bakınca server tarafında aslında ciddi bir sorun yok. Channel’lar ve core’lar düzgün şekilde ayağa kalkmış, yani game server çalışıyor. Burada problem serverın açılmaması değil, client’in doğru yere bağlanamaması.

Şu an yaşadığın senaryo çok net:
Oyuna giriyorsun, login oluyor, karakter seçimini geçiyor ama harita yüklenirken bağlantı kopuyor. Bu durum neredeyse her zaman serverinfo ile game CONFIG uyumsuzluğundan çıkar.

En sık yapılan hata, serverinfo.py dosyasının doğru düzenlenip doğru yere konulmaması. Birçok client’te birden fazla serverinfo bulunabiliyor. Örneğin root içinde bir tane, locale_tr içinde bir tane daha oluyor. Client hangisini okuyorsa, senin düzenlediğin dosya o değilse yaptığın değişikliklerin hiçbir anlamı kalmıyor. O yüzden önce client’in gerçekten hangi serverinfo’yu okuduğundan emin olmak gerekiyor.

Bir diğer nokta Channel 99 meselesi. Server tarafında Channel 99 açık görünüyor. Eğer serverinfo’da Channel 99 tanımı yoksa ya da portları birebir aynı değilse, client bağlantı kurmaya çalışırken boşa düşer ve seni login ekranına atar. Bu durum özellikle event channel’ı olan files’lerde çok sık yaşanır.

Port konusu da önemli. Game CONFIG’te hangi portlar yazıyorsa, serverinfo’da da birebir aynı olmak zorunda. Bir core’un portu bile farklıysa sonuç yine aynı olur: login olur ama haritaya girmez.

Bir de IP karmaşası var. Putty’de gördüğün 192.168.1.14 iç IP. Eğer client’te dış IP yazıp server iç IP’ye bind olmuşsa veya tam tersi durum varsa, bağlantı yarıda kesilir. Test aşamasında en temiz yöntem, hem server hem client tarafında aynı IP’yi kullanmaktır. LAN’da test ediyorsan 192.168.1.14, dışarıdan bağlanıyorsan her yerde dış IP.

Özetle:

  • Server çalışıyor, crash yok
  • Problem client’in bağlandığı IP/port ile serverın dinlediği IP/port’un uyuşmaması
  • Yanlış serverinfo okunuyor olabilir
  • Channel 99 tanımı eksik ya da portları tutmuyor olabilir
Bu tip sorunlar tamamen ayar kaynaklıdır ve çözümsüz değildir. Serverinfo.py’deki IP–port bilgilerini ve game CONFIG’teki HOSTNAME/PORT satırlarını birebir eşitlediğin anda problem ortadan kalkar.
 
Bu ekrana bakınca server tarafında aslında ciddi bir sorun yok. Channel’lar ve core’lar düzgün şekilde ayağa kalkmış, yani game server çalışıyor. Burada problem serverın açılmaması değil, client’in doğru yere bağlanamaması.

Şu an yaşadığın senaryo çok net:
Oyuna giriyorsun, login oluyor, karakter seçimini geçiyor ama harita yüklenirken bağlantı kopuyor. Bu durum neredeyse her zaman serverinfo ile game CONFIG uyumsuzluğundan çıkar.

En sık yapılan hata, serverinfo.py dosyasının doğru düzenlenip doğru yere konulmaması. Birçok client’te birden fazla serverinfo bulunabiliyor. Örneğin root içinde bir tane, locale_tr içinde bir tane daha oluyor. Client hangisini okuyorsa, senin düzenlediğin dosya o değilse yaptığın değişikliklerin hiçbir anlamı kalmıyor. O yüzden önce client’in gerçekten hangi serverinfo’yu okuduğundan emin olmak gerekiyor.

Bir diğer nokta Channel 99 meselesi. Server tarafında Channel 99 açık görünüyor. Eğer serverinfo’da Channel 99 tanımı yoksa ya da portları birebir aynı değilse, client bağlantı kurmaya çalışırken boşa düşer ve seni login ekranına atar. Bu durum özellikle event channel’ı olan files’lerde çok sık yaşanır.

Port konusu da önemli. Game CONFIG’te hangi portlar yazıyorsa, serverinfo’da da birebir aynı olmak zorunda. Bir core’un portu bile farklıysa sonuç yine aynı olur: login olur ama haritaya girmez.

Bir de IP karmaşası var. Putty’de gördüğün 192.168.1.14 iç IP. Eğer client’te dış IP yazıp server iç IP’ye bind olmuşsa veya tam tersi durum varsa, bağlantı yarıda kesilir. Test aşamasında en temiz yöntem, hem server hem client tarafında aynı IP’yi kullanmaktır. LAN’da test ediyorsan 192.168.1.14, dışarıdan bağlanıyorsan her yerde dış IP.

Özetle:

  • Server çalışıyor, crash yok
  • Problem client’in bağlandığı IP/port ile serverın dinlediği IP/port’un uyuşmaması
  • Yanlış serverinfo okunuyor olabilir
  • Channel 99 tanımı eksik ya da portları tutmuyor olabilir
Bu tip sorunlar tamamen ayar kaynaklıdır ve çözümsüz değildir. Serverinfo.py’deki IP–port bilgilerini ve game CONFIG’teki HOSTNAME/PORT satırlarını birebir eşitlediğin anda problem ortadan kalkar.
Dosyaları çok kez kontrol ettiğim halde sorun fark edemedim.

[CODE title="serverinfo.py"]import os
import app
import localeInfo
import debugInfo

CHINA_PORT = 50000

def BuildServerList(orderList):
retMarkAddrDict = {}
retAuthAddrDict = {}
retRegion0 = {}

ridx = 1
for region, auth, mark, channels in orderList:
cidx = 1
channelDict = {}
for channel in channels:
key = ridx * 10 + cidx
channel["key"] = key
channelDict[cidx] = channel
cidx += 1

region["channel"] = channelDict

retRegion0[ridx] = region
retAuthAddrDict[ridx] = auth
retMarkAddrDict[ridx*10] = mark
ridx += 1

return retRegion0, retAuthAddrDict, retMarkAddrDict

app.ServerName = None

SMALL_SERVER_SELECT_LIST = True # 6 Channels

if app.ENABLE_SERVER_SELECT_RENEWAL:
STATE_NONE = localeInfo.CHANNEL_STATUS_OFFLINE
STATE_DICT = {
0 : localeInfo.CHANNEL_STATUS_OFFLINE,
1 : localeInfo.CHANNEL_STATUS_VACANT,
2 : localeInfo.CHANNEL_STATUS_RECOMMENDED,
3 : localeInfo.CHANNEL_STATUS_BUSY,
4 : localeInfo.CHANNEL_STATUS_FULL,
}

STATE_REVERSE_DICT = {}
STATE_COLOR_DICT = { "..." : 0xffdadada } # 퍼블리셔에서 channel상태에 ...을 유지하도 있어서 문제가 발생.
STATE_COLOR_LIST = [ 0xffffffff, 0xffdadada, 0xff00ff00, 0xffffc000, 0xffff0000 ]

idx = 0
for key, value in STATE_DICT.items():
STATE_REVERSE_DICT[value] = key
STATE_COLOR_DICT[value] = STATE_COLOR_LIST[idx % len(STATE_COLOR_LIST)]
idx += 1

SERVER_STATE_DICT = {
"NONE" : 0,
"NEW" : 1,
"SPECIAL" : 2,
"CLOSE" : 3
}

if not app.ENABLE_SERVER_SELECT_RENEWAL:
if app.ENABLE_CHANNEL_LIST:
STATE_NONE = "Offline"
STATE_DICT = { 0 : "Offline", 1 : "Available", 2 : "Busy", 3 : "Full" }
STATE_COLOR_DICT = { "Offline" : 0xffdadada, "Available" : 0xff00ff00, "Busy" : 0xffffff00, "Full" : 0xffff0000}
else:
STATE_NONE = "..."

STATE_DICT = {
0 : "....",
1 : "NORM",
2 : "BUSY",
3 : "FULL"
}

SERVER01_CHANNEL_DICT = {
1 : {
"key" : 11,
"name" : "CH-1 ",
"ip" : "192.168.1.14",
"tcp_port" : 12101,
"udp_port" : 12101,
"state" : STATE_NONE,
'count' : 0,
},
2 : {
"key" : 12,
"name" : "CH-2 ",
"ip" : "192.168.1.14",
"tcp_port" : 12201,
"udp_port" : 12201,
"state" : STATE_NONE,
'count' : 0,
},
}

SERVER02_CHANNEL_DICT = {
1 : {
"key" : 11,
"name" : "CH-1 ",
"ip" : "192.168.1.14",
"tcp_port" : 12101,
"udp_port" : 12101,
"state" : STATE_NONE,
'count' : 0,
},
2 : {
"key" : 12,
"name" : "CH-2 ",
"ip" : "192.168.1.14",
"tcp_port" : 12201,
"udp_port" : 12201,
"state" : STATE_NONE,
'count' : 0,
},
3 : {
"key" : 13,
"name" : "CH-3 ",
"ip" : "192.168.1.14",
"tcp_port" : 12301,
"udp_port" : 12301,
"state" : STATE_NONE,
'count' : 0,
},
4 : {
"key" : 14,
"name" : "CH-4 ",
"ip" : "192.168.1.14",
"tcp_port" : 12401,
"udp_port" : 12401,
"state" : STATE_NONE,
'count' : 0,
},
}

SERVER03_CHANNEL_DICT = {
1 : {
"key" : 11,
"name" : "CH-1 ",
"ip" : "192.168.1.14",
"tcp_port" : 12101,
"udp_port" : 12101,
"state" : STATE_NONE,
'count' : 0,
},
2 : {
"key" : 12,
"name" : "CH-2 ",
"ip" : "192.168.1.14",
"tcp_port" : 12201,
"udp_port" : 12201,
"state" : STATE_NONE,
'count' : 0,
},
3 : {
"key" : 13,
"name" : "CH-3 ",
"ip" : "192.168.1.14",
"tcp_port" : 12301,
"udp_port" : 12301,
"state" : STATE_NONE,
'count' : 0,
},
4 : {
"key" : 14,
"name" : "CH-4 ",
"ip" : "192.168.1.14",
"tcp_port" : 12401,
"udp_port" : 12401,
"state" : STATE_NONE,
'count' : 0,
},
}

REGION_NAME_DICT = {
0 : "Europe",
}

REGION_AUTH_SERVER_DICT = {
0 : {
1 : {
"ip" : "192.168.1.14",
"port" : 11150,
},
2 : {
"ip" : "192.168.1.14",
"port" : 11150,
},
3 : {
"ip" : "192.168.1.14",
"port" : 11150,
},
}
}

REGION_DICT = {
0 : {
1 : {
"name" : "Test Server",
"channel" : SERVER01_CHANNEL_DICT,
"state" : "NEW|SPECIAL",
"flag" : "ALL",
},
2 : {
"name" : "OmegaWin32",
"channel" : SERVER02_CHANNEL_DICT,
"state" : "SPECIAL",
"flag" : "EU",
},
3 : {
"name" : "OmegaBSD",
"channel" : SERVER03_CHANNEL_DICT,
"state" : "SPECIAL",
"flag" : "SP6",
},
},
}

MARKADDR_DICT = {
10 : {
"ip" : "192.168.1.14",
"tcp_port" : 12101,
"mark" : "10.tga",
"symbol_path" : "10",
},
20 : {
"ip" : "192.168.1.14",
"tcp_port" : 12101,
"mark" : "10.tga",
"symbol_path" : "10",
},
30 : {
"ip" : "192.168.1.14",
"tcp_port" : 12101,
"mark" : "10.tga",
"symbol_path" : "10",
},
}

TESTADDR = {
"ip" : "192.168.1.14",
"tcp_port" : 50000,
"udp_port" : 50000,
}
[/CODE]



[CODE title="game config.txt"]HOSTNAME: ch1_game1
CHANNEL: 1
PORT: 12101
P2P_PORT: 12110
DB_PORT: 11000
DB_ADDR: localhost

MAP_ALLOW: 1 3 4 5 6 21 23 24 25 26 41 43 44 45 46 91 92 93 107 112 201
# 1 metin2_map_a1
# 3 metin2_map_a3
# 4 metin2_map_guild_01
# 5 metin2_map_monkey_dungeon_11
# 6 metin2_guild_village_01
# 21 metin2_map_b1
# 23 metin2_map_b3
# 24 metin2_map_guild_02
# 25 metin2_map_monkey_dungeon_12
# 26 metin2_guild_village_02
# 41 metin2_map_c1
# 43 metin2_map_c3
# 44 metin2_map_guild_03
# 45 metin2_map_monkey_dungeon_13
# 46 metin2_guild_village_03
# 91 metin2_map_e1_01
# 92 metin2_map_e1_02
# 93 metin2_map_e1_03
# 107 metin2_map_monkey_dungeon
# 112 metin2_map_duel
# 201 metin2_map_pvp_arena

TABLE_POSTFIX:
ITEM_ID_RANGE: 100000001 200000000
PASSES_PER_SEC: 25
SAVE_EVENT_SECOND_CYCLE: 180
PING_EVENT_SECOND_CYCLE: 180
PLAYER_SQL: localhost mt2 mt2!@# player
COMMON_SQL: localhost mt2 mt2!@# common
LOG_SQL: localhost mt2 mt2!@# log
LOCALE_SERVICE: uk
TEST_SERVER: 1
VIEW_RANGE: 8000
MAX_LEVEL: 120

POPUP_NOTICE_URL: http://62.171.146.112/docs/
[/CODE]
 
Son düzenleme:

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst