Sziasztok tegnap betettem ezt
Idézhttp://metin2hungary.net/index.php/topic,180926.0.html
de áén azt szeretném ha csak 1 x küldené elnekik nem folyamatosan minden mondat után hogyan alakitsam át?
Szia!
Nem teszteltem, de mennie kell.
game.py
Keresd:
testAlignment = 0
Alá:
SA_WHISPER = 0
Ezt cseréld le:
def OnRecvWhisper(self, mode, name, line):
if mode == chat.WHISPER_TYPE_GM:
self.interface.RegisterGameMasterName(name)
chat.AppendWhisper(mode, name, line)
self.interface.RecvWhisper(name)
Erre:
def OnRecvWhisper(self, mode, name, line):
if mode == chat.WHISPER_TYPE_GM:
self.interface.RegisterGameMasterName(name)
if player.GetName().find("[SA]") != -1 && SA_WHISPER = 0:
net.SendWhisperPacket(name, "Ne zavarj, mert [SA] vagyok!")
chat.AppendWhisper(mode, name, line)
self.interface.RecvWhisper(name)
SA_WHISPER = 1
else:
chat.AppendWhisper(mode, name, line)
self.interface.RecvWhisper(name)
uiwhisper.py
importok közé:
import game
Keresd:
self.resizeButton = None
Alá:
game.SA_WHISPER = 0
if player.GetName().find("[ST]") != -1 && ST_WHISPER = 0: erre a syntax (game.py, line 887)
python 2.7-et lehet igényel.
2.9 van
if player.GetName().find("[ST]") != -1 and ST_WHISPER = 0:
Így?
ugyan az :/
Bemásolnád a syserr-t? Oké, hogy syntax, de ebből lóf*asz nem derül ki.
Ja, hogy ja.....
if player.GetName().find("[ST]") != -1 and ST_WHISPER != 1:
etworkModule.py(line:208) SetSelectCharacterPhase
system.py(line:130) __pack_import
system.py(line:110) _process_result
introSelect.py(line:30) <module>
system.py(line:130) __pack_import
system.py(line:110) _process_result
interfaceModule.py(line:20) <module>
system.py(line:130) __pack_import
system.py(line:110) _process_result
uiWhisper.py(line:9) <module>
system.py(line:130) __pack_import
networkModule.SetSelectCharacterPhase - <type 'exceptions.SyntaxError'>:invalid syntax (game.py, line 888)
0206 20:53:08892 :: ============================================================================================================
0206 20:53:08892 :: Abort!!!!
Próbáld így:
hogy?:D
Ahogy leírtam.
if player.GetName().find("[ST]") != -1 and ST_WHISPER != 1:
Csak figyelni kéne.
lehet egy nyomorék vagyok . most igy néz ki
Idézdef OnRecvWhisper(self, mode, name, line):
if mode == chat.WHISPER_TYPE_GM:
self.interface.RegisterGameMasterName(name)
if player.GetName().find("[ST]") != -1 and ST_WHISPER != 1:
net.SendWhisperPacket(name, "Ne zavarj, mert [SA] vagyok!")
chat.AppendWhisper(mode, name, line)
self.interface.RecvWhisper(name)
ST_WHISPER = 1
else:
chat.AppendWhisper(mode, name, line)
self.interface.RecvWhisper(name)
le is fut de ha rá irok Stre nem kapok autó választ az st karakterrel meg nem kapok levelet.
syser 0206 21:24:06230 :: File "game.py", line 888, in OnRecvWhisper
0206 21:24:06230 :: UnboundLocalError
0206 21:24:06230 :: :
0206 21:24:06230 :: local variable 'ST_WHISPER' referenced before assignment
Idézetet írta: bakos1992 Dátum 2017-02-06, 20:23:26
2.9 van
[spoiler]
(https://board.ddmt2.net/proxy.php?request=http%3A%2F%2Fstatic1.squarespace.com%2Fstatic%2F507dba43c4aabcfd2216a447%2Ft%2F5244609de4b0d08691bdc2ee%2F1380212895097%2FTroll%252BFace.jpg&hash=c28ee7ad8a8e335d66f4135edd0630d9bd63b8c2)[/spoiler]
Te szerintem a granny verzióját mondod.
Mekkora sodrófa vagyok igazad van Pityu xD
if player.GetName().find("[ST]") != -1 and ST_WHISPER != 1:
és ez a lekérdezés:
if mode == chat.WHISPER_TYPE_GM:
hát hogy is mondjam így nekem fura, mert a python úgy fogja lekérdezni, hogy 2xer, tehát GM vagy [ST]. nem csoda ha kiakad.
Valóban, így nem igazán tuti. :D
Akkor átírjuk jóra. Pillanat.
Szerkesztem majd a HSZ-t.
def OnRecvWhisper(self, mode, name, line):
if mode == chat.WHISPER_TYPE_GM and player.GetName().find("[ST]") != -1:
self.interface.RegisterGameMasterName(name)
chat.AppendWhisper(mode, name, line)
self.interface.RecvWhisper(name)
if ST_WHISPER != 1:
net.SendWhisperPacket(name, "Ne zavarj, mert [SA] vagyok!")
ST_WHISPER = 1
else:
chat.AppendWhisper(mode, name, line)
self.interface.RecvWhisper(name)
Tessék. Elviekben ír neki, akkor megkapja az üzenetet egyszer, hogy ne zavarj.
Ha bezárja az ablakot, majd újra megnyitja, akkor újra lejátszódik a folyamat.
Szerk.: Taboltam normálisan.
le fut de nem kap üzenetet a karakter :/ syser üres
https://www.youtube.com/watch?v=bkA2LG1wnCI
[ST]-vel kezdődik a gm kari neve? Egyébként még így sem tökéletes, ugyanis ha nem [ST]-vel kezdődik, akkor sem kapja meg az üzenetet.
def OnRecvWhisper(self, mode, name, line):
if mode == chat.WHISPER_TYPE_GM:
self.interface.RegisterGameMasterName(name)
chat.AppendWhisper(mode, name, line)
self.interface.RecvWhisper(name)
if ST_WHISPER != 1 and player.GetName().find("[ST]") != -1:
net.SendWhisperPacket(name, "Ne zavarj, mert [SA] vagyok!")
ST_WHISPER = 1
else:
chat.AppendWhisper(mode, name, line)
self.interface.RecvWhisper(name)
Így már jó lesz, csak [ST] karinál fogja írni.
[ST]Admin a neve a karinak kiprobálom
Üzenet összefésülés: 2017-02-07, 18:25:07
megkapom ha rám ir de player kari nem kap válasz üzit h ne zavarjon
Átnéztem a témát, főképp a syssereket. Maga az elgondolás jó lenne, de a kivitelezéssel vannak gondok.
Arra jutottam, ezzel a változóval, hogy minden második 'játékos ír GM-nek' résznél fogja küldeni hogy "Ne zavarj..", hiszen a változót 0-1 között váltani kell valahogy, ha pedig nem váltod, akkor 0-n marad végig és többet nem írja ki.
game.py
importok alá:
ST_WHISPER = 0
A súgás része pedig:
def OnRecvWhisper(self, mode, name, line):
if mode == chat.WHISPER_TYPE_GM:
self.interface.RegisterGameMasterName(name)
if player.GetName().find("[ST]") != -1:
global ST_WHISPER
if ST_WHISPER == 0:
net.SendWhisperPacket(name, "Ne zavarj, mert [ST] vagyok!")
chat.AppendWhisper(mode, name, line)
self.interface.RecvWhisper(name)
ST_WHISPER = 1
else:
chat.AppendWhisper(mode, name, line)
self.interface.RecvWhisper(name)
ST_WHISPER = 0
else:
chat.AppendWhisper(mode, name, line)
self.interface.RecvWhisper(name)
Teszteltem tehát működőképes! ;)
Kiprobáltam pisti de nálam csak küldi ezeket a szarokat
Idézhttp://www.kephost.com/images/2017/02/07/cica.jpg
Ebből a részből:
else:
chat.AppendWhisper(mode, name, line)
self.interface.RecvWhisper(name)
ST_WHISPER = 0
töröld ki ezt a sort:
ST_WHISPER = 0
Említettem, ha ezt kitörlöd akkor kliens indításkor ugye 0 értéket kap, tehát átvált 1-re, mert átíratjuk a klienssel, de kliens bezárás után újra kapni fogja az üzenetet.
Idézetet írta: Pisti95 Dátum 2017-02-07, 20:57:59
Átnéztem a témát, főképp a syssereket. Maga az elgondolás jó lenne, de a kivitelezéssel vannak gondok.
Arra jutottam, ezzel a változóval, hogy minden második 'játékos ír GM-nek' résznél fogja küldeni hogy "Ne zavarj..", hiszen a változót 0-1 között váltani kell valahogy, ha pedig nem váltod, akkor 0-n marad végig és többet nem írja ki.
game.py
importok alá:
ST_WHISPER = 0
A súgás része pedig:
def OnRecvWhisper(self, mode, name, line):
if mode == chat.WHISPER_TYPE_GM:
self.interface.RegisterGameMasterName(name)
if player.GetName().find("[ST]") != -1:
global ST_WHISPER
if ST_WHISPER == 0:
net.SendWhisperPacket(name, "Ne zavarj, mert [ST] vagyok!")
chat.AppendWhisper(mode, name, line)
self.interface.RecvWhisper(name)
ST_WHISPER = 1
else:
chat.AppendWhisper(mode, name, line)
self.interface.RecvWhisper(name)
ST_WHISPER = 0
else:
chat.AppendWhisper(mode, name, line)
self.interface.RecvWhisper(name)
Teszteltem tehát működőképes! ;)
Kíváncsiságból beraktam és nálam működik így ahogy Pisti megcsinálta.Viszont szerintem ebben a formában igazából semmit sem jelent, hogy benne legyen. Meg is indoklom miért. Mivel az első üzenet küldésekor elküldi, hogy az ST elfoglalt de a következő üzenetben már írhatsz egy egész litániát elküldi. Ennek az egésznek akkor lenne szerintem értelme ha úgy lehetne megoldani, hogy amikor az ST felmegy a szerverre akkor nyom egy entert feljön a Chat ablak és ott található 3 gomb, Chet küldés, Súgás küldés, Régi hírek, nos ezek közül szerintem a Chet küldés gombot nem igazán használják az emberkék inkább entert nyomnak vagyis az egésznek az lenne a lényege, hogy a Chet küldés helyet lenne egy másik funkciója a gombnak mondjuk PM tiltás / PM fogadás. Ami csak az ST nél jelenne meg esetleg így csak ő tudná használni vagyis amikor játékba lép akkor letiltja a PM et így a játékos meg kapná az üzenetet hogy [ST]xy jelenleg elfoglalt és az ST nél ne is jelenjen meg a kis villogó boríték, amikor a PM fogadás gombra klikkel onnantól kezdve viszont már lehetne neki küldi az üzeneteket. Szerintem így már lenne értelme ennek az egésznek. Elnézést kérek a hosszú litániáért biztosan nem erre voltatok kíváncsiak. 8)
Nos, átgondoltam egy kicsit a dolgot, és arra jutottam, hogy akkor kapja azt az üzit hogy "Ne zavarj, mert [ST] vagyok.." HA az ST bezárja a PM ablakot. Tehát az elején megjelenik a szöveg a játékosnak, de írhat neki litániát, ha bezárja a GM a sőgás ablakot, akkor ha játékos ír, újra kapni fogja az üzit (egyszer).
constInfo.py-ba beírod
ST_WHISPER = 0
game.py-ba így legyen:
def OnRecvWhisper(self, mode, name, line):
if mode == chat.WHISPER_TYPE_GM:
self.interface.RegisterGameMasterName(name)
if player.GetName().find("[SA]") != -1:
if constInfo.ST_WHISPER == 0:
net.SendWhisperPacket(name, "Ne zavarj, mert [SA] vagyok!")
chat.AppendWhisper(mode, name, line)
self.interface.RecvWhisper(name)
constInfo.ST_WHISPER = 1
else:
chat.AppendWhisper(mode, name, line)
self.interface.RecvWhisper(name)
else:
chat.AppendWhisper(mode, name, line)
self.interface.RecvWhisper(name)
uiwhisper.py
importok alá:
import constInfo
Rákeresel erre:
def Close(self):
Így nézzen ki:
def Close(self):
chat.ClearWhisper(self.targetName)
self.titleNameEdit.KillFocus()
self.chatLine.KillFocus()
self.Hide()
constInfo.ST_WHISPER = 0
if None != self.eventClose:
self.eventClose(self.targetName)
Részemről ennyi! ;)
Köszönöm az időtöket és a segítséget mindenkinek megy a +