Metin2 Hungarian Forum

Metin2 => Segítség => Szerver készítés => Privát szerverek => Archívum => A témát indította: Fracko89 Dátum 2014-03-31, 01:03:26

Cím: PM írásnál autóválasz, hiba (K)
Írta: Fracko89 Dátum 2014-03-31, 01:03:26
Sziasztok.

Gondoltam próbát teszek azzal a kis szöszenettel, amit itt fórumon találtam. Ez nem mást, mint az, hogy mikor a játékos ráír egy [SA]-ra, akkor visszaírja neki a rendszer automatikusan, hogy az alapvető kérdéseket kérdezd meg egy GM-től.

Működik is, minden jó, viszont mikor kilépek a játékból, akkor az alábbi hibaüzenet ugrik fel, ami a képen látható

(https://board.ddmt2.net/proxy.php?request=http%3A%2F%2Fkepfeltoltes.hu%2F140331%2Fszoveg_www.kepfeltoltes.hu_.png&hash=6fdd590c598877d2b9b289f68d3b9da111addc27)

És itt lenne a kód, amit használok (game.py -ben)

def OnRecvWhisper(self, mode, name, line):
if mode == chat.WHISPER_TYPE_GM:
self.interface.RegisterGameMasterName(name)
if player.GetName().find("[SA]") != -1:
net.SendWhisperPacket(name, "Itt a saját szövegem van!")
chat.AppendWhisper(mode, name, line)
self.interface.RecvWhisper(name)
else:
chat.AppendWhisper(mode, name, line)
self.interface.RecvWhisper(name)


Valaki esetleg tudja, hogy ezt a LOG üzenetet miért írja ki?
Cím: Re:PM írásnál autóválasz, hiba
Írta: Pisti95 Dátum 2014-03-31, 07:25:37
valahol self helyett elf van írva....

uiwhisper.py vagy game.py
Cím: Re:PM írásnál autóválasz, hiba
Írta: crookers123 Dátum 2014-03-31, 13:37:44
ui.py-ban az egyik self helyett elf van írva gondolom invoice kliens
ott keress rá itt 1 kis segítség h keress rá a lényeg a szóval megegyező rublika :)
(csak ilyen esetekre ajánlom! )
(https://board.ddmt2.net/proxy.php?request=http%3A%2F%2Fkepfeltoltes.hu%2Fthumb%2F140331%2F1180607752N_vtelen_www.kepfeltoltes.hu_.jpg&hash=88ac409b55a8dcd5a14f771e72088cbb0fb3accd) (http://kepfeltoltes.hu/view/140331/1180607752N_vtelen_www.kepfeltoltes.hu_.jpg)
A képet a Képfeltöltés.hu tárolja. http://www.kepfeltoltes.hu (http://www.kepfeltoltes.hu)
Cím: Re:PM írásnál autóválasz, hiba
Írta: Pisti95 Dátum 2014-03-31, 14:05:06
Ha az utolsósorban nem írja a fájl nevét, vagyis Run - exceptions.NameError blablabla akkor game.py hiba fordul elő....
Cím: Re:PM írásnál autóválasz, hiba
Írta: crookers123 Dátum 2014-03-31, 14:19:29
nekem is ez volt és ui.py-ban volt az elf de lehet én emlékszek rosszul.
tessék pisti alátámasztom neked
(https://board.ddmt2.net/proxy.php?request=http%3A%2F%2Fkepfeltoltes.hu%2Fthumb%2F140331%2F161504360N_vtelen1_www.kepfeltoltes.hu_.jpg&hash=9ff49fd890d26e7f1c2771b2fc0c96657ccf9fcf) (http://kepfeltoltes.hu/view/140331/161504360N_vtelen1_www.kepfeltoltes.hu_.jpg)
A képet a Képfeltöltés.hu tárolja. http://www.kepfeltoltes.hu (http://www.kepfeltoltes.hu)
Cím: Re:PM írásnál autóválasz, hiba
Írta: mywawe Dátum 2014-03-31, 15:04:10
Hogyan tudom megoldani h SA, GM, TGA, GA-nak is kiìrja?
Cím: Re:PM írásnál autóválasz, hiba
Írta: crookers123 Dátum 2014-03-31, 15:07:51
ha a nevében benne a [SA-GA stb] akkor elméletileg ki írja de sztem python lesz
Cím: Re:PM írásnál autóválasz, hiba
Írta: Ken Dátum 2014-03-31, 15:14:24
if player.GetName().find("[SA]") != -1:

Ha ezt

if player.GetName().find("[") != -1:

-re írod, akkor elv mindenkinek akinek van a nevében [ jel, annak jó lesz.
Cím: Re:PM írásnál autóválasz, hiba
Írta: Pisti95 Dátum 2014-03-31, 15:16:58

def OnRecvWhisper(self, mode, name, line):
if mode == chat.WHISPER_TYPE_GM:
self.interface.RegisterGameMasterName(name)
if player.GetName().find("[SA]") != -1:
net.SendWhisperPacket(name, "Itt a saját szövegem van!")
chat.AppendWhisper(mode, name, line)
self.interface.RecvWhisper(name)
else:
chat.AppendWhisper(mode, name, line)
self.interface.RecvWhisper(name)


Ezt a részt így oldod meg:


def OnRecvWhisper(self, mode, name, line):
if mode == chat.WHISPER_TYPE_GM:
self.interface.RegisterGameMasterName(name)
if player.GetName().find("[SA]") != -1:
net.SendWhisperPacket(name, "Itt SA szöveg van!")
chat.AppendWhisper(mode, name, line)
self.interface.RecvWhisper(name)
if player.GetName().find("[GA]") != -1:
net.SendWhisperPacket(name, "Itt GA szöveg van!")
chat.AppendWhisper(mode, name, line)
self.interface.RecvWhisper(name)
if player.GetName().find("[GM]") != -1:
net.SendWhisperPacket(name, "Itt GM szöveg van!")
chat.AppendWhisper(mode, name, line)
self.interface.RecvWhisper(name)
if player.GetName().find("[TGM]") != -1:
net.SendWhisperPacket(name, "Itt TGM szöveg van!")
chat.AppendWhisper(mode, name, line)
self.interface.RecvWhisper(name)
else:
chat.AppendWhisper(mode, name, line)
self.interface.RecvWhisper(name)


Így mindenkire mást írna...
Cím: Re:PM írásnál autóválasz, hiba
Írta: Fracko89 Dátum 2014-03-31, 17:03:08
Köszönöm a válaszokat, már majdnem jó :)

Az alábbi kódot felhasználva, amit Pisti írt, ott ez a hiba jött elő

def OnRecvWhisper(self, mode, name, line):
if mode == chat.WHISPER_TYPE_GM:
self.interface.RegisterGameMasterName(name)
if player.GetName().find("[SA]") != -1:
net.SendWhisperPacket(name, "Itt SA szöveg van!")
chat.AppendWhisper(mode, name, line)
self.interface.RecvWhisper(name)
if player.GetName().find("[GA]") != -1:
net.SendWhisperPacket(name, "Itt GA szöveg van!")
chat.AppendWhisper(mode, name, line)
self.interface.RecvWhisper(name)
if player.GetName().find("[GM]") != -1:
net.SendWhisperPacket(name, "Itt GM szöveg van!")
chat.AppendWhisper(mode, name, line)
self.interface.RecvWhisper(name)
if player.GetName().find("[TGM]") != -1:
net.SendWhisperPacket(name, "Itt TGM szöveg van!")
chat.AppendWhisper(mode, name, line)
self.interface.RecvWhisper(name)
else:
chat.AppendWhisper(mode, name, line)
self.interface.RecvWhisper(name)


KÉP (http://kepfeltoltes.hu/140331/problema_www.kepfeltoltes.hu_.png)
(https://board.ddmt2.net/proxy.php?request=http%3A%2F%2Fkepfeltoltes.hu%2F140331%2Fproblema_www.kepfeltoltes.hu_.png&hash=4391b7ba81599fb5198266a80b881db9479b4f3a)

Tehát az a gond, hogy egyszer ráírok mondjuk egy [SA]-ra és akkor neki áll floodolni a szöveg, amit megadtam game-py-ben pisti kódjával..

Második problémám / kérdésem lenne, hogy ezt a fajta betűstílust hogyan tudom megváltoztatni??
(Itt most arra gondolok, mikor GM ír neked sárgán (játékosnak) és hogy az ne ilyen nehezen olvasható legyen, mint ez.. hm?? )
Cím: Re:PM írásnál autóválasz, hiba
Írta: Ken Dátum 2014-03-31, 17:31:34
Idézetet írta: Amadeus Dátum 2014-03-31, 15:14:24
if player.GetName().find("[SA]") != -1:

Ha ezt

if player.GetName().find("[") != -1:

-re írod, akkor elv mindenkinek akinek van a nevében [ jel, annak jó lesz.

Szerintem ez működne...
Cím: Re:PM írásnál autóválasz, hiba
Írta: Fracko89 Dátum 2014-03-31, 19:53:10
Igen működne, viszont Én csak az [SA]-kat illetve [SGA] és [GA]-kat szeretném kiemelni.. Na de mindegy is..

Még egy kérdésem lenne, amit már egyszer feltettem.. Az itt üzenetben kiírt szövegnek a betűtípusát hol tudom szerkeszteni??
Cím: Re:PM írásnál autóválasz, hiba
Írta: [VIP]Disco Dátum 2014-03-31, 20:10:49
Teljesen felesleges telerakni if-ekkel amikor sokkal gyorsabban működő és szebb megoldás is van rá:

rangok = [
"[SA]", "[SGA]", "[GA]", "[SGM]", "[GM]", "[TGM]", "[MOD]"]
for rang in rangok:
    if player.GetName().find(rang) != -1:
        net.SendWhisperPacket(name, "Én egy" + rang + " vagyok")
chat.AppendWhisper(mode, name, line)
self.interface.RecvWhisper(name)
else:
chat.AppendWhisper(mode, name, line)
self.interface.RecvWhisper(name)


Kipróbálni most nem tudom, de szerintem menne.
Cím: Re:PM írásnál autóválasz, hiba
Írta: Fracko89 Dátum 2014-03-31, 22:07:28
Köszönöm Disco, de ezzel az a gond, hogy nekem nem egy azonosító kell. Tehát ezzel még ha jó megoldás is, nem kezdek sok mindent. Mivel nekem olyan kéne, ami mondjuk rangokként váltja a szöveg kiírást.

Tehát mondjuk [SA]nál azt írja ki, hogy Én  szerveradmin vagyok, ha szimpla kérdésed van, akkor írj egy gm-nek. [SGA]-nál például én vagyok a szerver második vezetője stb..

Ilyenre gondoltam..
Cím: Re:PM írásnál autóválasz, hiba
Írta: [VIP]Disco Dátum 2014-04-01, 05:31:42
rangok = [
["[SA]", "Én egy SA vagyok"], 
["[GA]", "Én pedig egy GA"], 
["[SGM]", "Én már csak egy SGM"],
["[GM]", "Én meg már csak egy GM.."],
["[TGM]", "Én már akkor inkább nem mondok semmit..."],
]

for rang in rangok:
if player.GetName().find(rang[0]) != -1:
net.SendWhisperPacket(name, rang[1])
chat.AppendWhisper(mode, name, line)
self.interface.RecvWhisper(name)
else:
chat.AppendWhisper(mode, name, line)
self.interface.RecvWhisper(name)
Cím: Re:PM írásnál autóválasz, hiba
Írta: mywawe Dátum 2014-04-02, 21:33:30
Berakom amit Disco írt és nem jó valakinek van rá ötlete?

(Legalul van betéve)

Ha rossz helyre raktam be valaki mellékelné hova rakjam be hogy megfelelő legyen?

Mikor pont be töltődne a karakter tehát lefagy a bejelentkező ablaknál. Valaki bele rakná nekem normálisan is visszaküldené azt megköszönném :)
Cím: Re:PM írásnál autóválasz, hiba
Írta: [VIP]Disco Dátum 2014-04-02, 21:39:04
game.py -> def OnRecvWhisper(self, mode, name, line):
Cím: Re:PM írásnál autóválasz, hiba
Írta: mywawe Dátum 2014-04-03, 17:43:54
Oda írtam de nem volt jó, megtennéd h bele raknád nekem létszíves? :D
Cím: Re:PM írásnál autóválasz, hiba
Írta: Crusad3r Dátum 2014-04-03, 19:14:54
esetleg így:
Cím: Re:PM írásnál autóválasz, hiba
Írta: mywawe Dátum 2014-04-06, 16:40:24
Amit Disco írt nem működőképes, valamint a fenti pedig mindig mikor egy Player ír a GM-re mindig elküldi neki :D

Valamint fehér nem sárga.

Valaki tudna olyat adni ami csak a Chat megnyitásakor, valamint sárga?
Cím: Re:PM írásnál autóválasz, hiba
Írta: Pisti95 Dátum 2014-04-07, 09:33:15
Amit írtam se rossz, csak a -1 est részt kell módosítanod...
Cím: Re:PM írásnál autóválasz, hiba
Írta: mywawe Dátum 2014-04-08, 09:03:19
Tied jó, azt használtam de hiba:

-Mikor ráír egy Player a GM-re következő üzenetet kapja.
Sanyi: Szia
Sanyi: Ő GM   (Automata üzenet)


Tehát az kellene ha valaki megnyitja az ablakot, egyszer és csak is egyszer mikor megnyitja SÁRGÁVAL kiírja neki h:

XY csapat tagja, hivatalos
Sanyi: Szia


Ezt hogy lehetne megoldani? Lehetőleg sárgával.
Cím: Re:PM írásnál autóválasz, hiba
Írta: NeXu$ Dátum 2014-04-13, 17:52:24
Fw-ben benne van.
Cím: Re:PM írásnál autóválasz, hiba
Írta: Ken Dátum 2014-04-13, 17:56:59
http://metin2hungary.net/index.php/topic,180926.msg951148.html#msg951148
Cím: Re:PM írásnál autóválasz, hiba
Írta: DrG Dátum 2014-04-15, 11:21:36
Nekem hibátlanul belement a kliensemben, sőt csak a game.py fájlban kellett raknom, ezzel a kóddal az összes embernél elküldi, akinek "[" jel van a nevében.(Általában csak teamtagoknak van.)
Kód(Game.py -> Legutolsó definíció elé rakd be.):

def OnRecvWhisper(self, mode, name, line):
    if mode == chat.WHISPER_TYPE_GM:
    self.interface.RegisterGameMasterName(name)
    if player.GetName().find("[") != -1:
    net.SendWhisperPacket(name, "Ne zavarj, mert dolgozok!")
    chat.AppendWhisper(mode, name, line)
    self.interface.RecvWhisper(name)
else:
    chat.AppendWhisper(mode, name, line)
    self.interface.RecvWhisper(name)
EhPortal 1.39 © 2025, WebDev