PM írásnál autóválasz, hiba (K)

Indította Fracko89, 2014-03-31, 01:03:26

2014-03-31, 01:03:26 Utolsó szerkesztés: 2014-05-08, 13:16:20 Szerző: [MOD]Aegist
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ó



É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

2014-03-31, 13:37:44 #2 Utolsó szerkesztés: 2014-03-31, 13:47:40 Szerző: crookers123
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! )

A képet a Képfeltöltés.hu tárolja. 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ő....

2014-03-31, 14:19:29 #4 Utolsó szerkesztés: 2014-03-31, 14:37:38 Szerző: crookers123
nekem is ez volt és ui.py-ban volt az elf de lehet én emlékszek rosszul.
tessék pisti alátámasztom neked

A képet a Képfeltöltés.hu tárolja. 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


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


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?