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?
valahol self helyett elf van írva....
uiwhisper.py vagy game.py
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)
Ha az utolsósorban nem írja a fájl nevét, vagyis Run - exceptions.NameError blablabla akkor game.py hiba fordul elő....
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)
Hogyan tudom megoldani h SA, GM, TGA, GA-nak is kiìrja?
ha a nevében benne a [SA-GA stb] akkor elméletileg ki írja de sztem python lesz
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.
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...
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?? )
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...
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??
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.
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..
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)
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 :)
game.py -> def OnRecvWhisper(self, mode, name, line):
Oda írtam de nem volt jó, megtennéd h bele raknád nekem létszíves? :D
esetleg így:
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?
Amit írtam se rossz, csak a -1 est részt kell módosítanod...
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.
Fw-ben benne van.
http://metin2hungary.net/index.php/topic,180926.msg951148.html#msg951148
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)