[MINI-Release] Python trükkök súgásban és chatben

Indította Pisti95, 2014-12-29, 20:35:25

2014-12-29, 20:35:25 Utolsó szerkesztés: 2015-04-16, 14:46:13 Szerző: Pisti95
Sziasztok! :)

Többen megkerestek már privát üzenetben, hogy PM-be hogyan lehetne szint-, időkijelzést tenni.
Most erre szeretnék egy tutorial-t írni, hátha a fórumozó banda megszereti a python nyelvet.  ;D

Mellékesen megjegyzem, hogy a kliens 34k-nál locale.py-t használ és 40k-nál localeInfo.py-t. Ezért ahol láttok olyat, hogy locale. és 40k-s kliensetek van, akkor írjátok át localeInfo. -ra.

Tehát:

locale.valami
localeInfo.valami







Súgásban idő kijelzése

1, root.eix/epk-t kibontod.

2, uiwhisper.py-t megnyitod!

3, Rákeresel erre:

def SendWhisper(self):


Közvetlenül aláírod ezt:

import time
localtime = localtime = time.strftime("[%H:%M:%S]")


Így nézzen ki:

def SendWhisper(self):
import time
localtime = localtime = time.strftime("[%H:%M:%S]")
text = self.chatLine.GetText()
textLength = len(text)


4, Ezután ezt a sort:

text = self.chatLine.GetText()


Módosítod erre:

text = (localtime + self.chatLine.GetText())


Így néz ki az egész funkció:
Idéz
   def SendWhisper(self):
      import time
      localtime = localtime = time.strftime("[%H:%M:%S]")
      text = (localtime + self.chatLine.GetText())
      textLength = len(text)

      if textLength > 0:
         if net.IsInsultIn(text):
            chat.AppendChat(chat.CHAT_TYPE_INFO, locale.CHAT_INSULT_STRING)
            return

         net.SendWhisperPacket(self.targetName, text)
         self.chatLine.SetText("")

         chat.AppendWhisper(chat.WHISPER_TYPE_CHAT, self.targetName, player.GetName() + " : " + text)






Súgásban szint és idő kijelzése egyszerre

1, root.eix/epk-t kibontod

2, uiwhisper.py-t megnyitod!

3, Rákeresel erre:

def SendWhisper(self):


A legegyszerűbb ha az egész funkció részt átírjuk erre:

def SendWhisper(self):
import time
localtime = localtime = time.strftime("[%H:%M:%S]")
text = self.chatLine.GetText()
textLength = len(text)

if textLength > 0:
if net.IsInsultIn(text):
chat.AppendChat(chat.CHAT_TYPE_INFO, locale.CHAT_INSULT_STRING)
return

##net.SendWhisperPacket(self.targetName, text)
net.SendWhisperPacket(self.targetName, "(Lv. " + str(player.GetStatus(player.LEVEL) )+ localtime + ") :" + text)
self.chatLine.SetText("")

##chat.AppendWhisper(chat.WHISPER_TYPE_CHAT, self.targetName, player.GetName() + " : " + text)
chat.AppendWhisper(chat.WHISPER_TYPE_CHAT, self.targetName, player.GetName() + " (Lv. " + str(player.GetStatus(player.LEVEL)) + localtime + ") : " + text)


Megjegyzés: Egy funkció azt jelenti, hogy a def valami(self): tart a másik def valami2(self):-ig, és nem vesszük bele a másik def részt.







Hívásban idő kijelzése

1, root.eix/epk-t bontsuk ki

2, uichat.py-t megnyitjuk!

3, Elejére a sok import alá beírod ezt:

import time


Ezután rákeresel erre:

def __SendShoutChatPacket(self, text):


Ezt átírod:

self.__SendChatPacket(text[1:], chat.CHAT_TYPE_SHOUT)


Erre:

##self.__SendChatPacket(text[1:], chat.CHAT_TYPE_SHOUT)
localtime = time.strftime("%H:%M:%S")
self.__SendChatPacket(localtime + " : " + text[1:], chat.CHAT_TYPE_SHOUT)


Így nézzen ki a funkció:
Idéz
   def __SendShoutChatPacket(self, text):

      if 1 == len(text):
         self.RunCloseEvent()
         return

      if app.GetTime() < self.lastShoutTime + 15:
         chat.AppendChat(chat.CHAT_TYPE_INFO, locale.CHAT_SHOUT_LIMIT)
         self.__ResetChat()
         return

      ##self.__SendChatPacket(text[1:], chat.CHAT_TYPE_SHOUT)
      localtime = time.strftime("%H:%M:%S")
      self.__SendChatPacket(localtime + " : " + text[1:], chat.CHAT_TYPE_SHOUT)
      self.__ResetChat()

      self.lastShoutTime = app.GetTime()

Megjegyzés: Ez csak a Shout, vagyis a Hívásra adja ki. (a felkiáltójellel írtat: ! )






Hívásban verzió szám ellenőrző

root.eix/epk --> uichat.py

Rákeresel erre:

def __SendShoutChatPacket(self, text):


Ezt átírod:

self.__SendChatPacket(text[1:], chat.CHAT_TYPE_SHOUT)


Erre:
self.__SendChatPacket("[v1.0] " + text[1:], chat.CHAT_TYPE_SHOUT)







Hívásban idő és verziószám ellenőrző egyszerre

1, root.eix/epk

2, uichat.py

Rákeresel erre:

def __SendShoutChatPacket(self, text):


Ezt átírod:

self.__SendChatPacket(text[1:], chat.CHAT_TYPE_SHOUT)


Erre:
localtime = time.strftime("%H:%M:%S")
self.__SendChatPacket(localtime + " [v1.0] : " + text[1:], chat.CHAT_TYPE_SHOUT)


Tehát így néz ki:
Idéz
   def __SendShoutChatPacket(self, text):

      if 1 == len(text):
         self.RunCloseEvent()
         return

      if app.GetTime() < self.lastShoutTime + 15:
         chat.AppendChat(chat.CHAT_TYPE_INFO, locale.CHAT_SHOUT_LIMIT)
         self.__ResetChat()
         return

      ##self.__SendChatPacket(text[1:], chat.CHAT_TYPE_SHOUT)
      localtime = time.strftime("%H:%M:%S")
      self.__SendChatPacket(localtime + " [v1.0] : " + text[1:], chat.CHAT_TYPE_SHOUT)
      self.__ResetChat()

      self.lastShoutTime = app.GetTime()









Hívásban CH kiíratása

1, root.eix/epk

2, uichat.py

Rákeresel erre:

def __SendShoutChatPacket(self, text):



Ezt átírod:

self.__SendChatPacket(text[1:], chat.CHAT_TYPE_SHOUT)


Erre:

a = net.GetServerInfo()
channel = a[-3:]
self.__SendChatPacket("[" + channel + "]: " + text[1:], chat.CHAT_TYPE_SHOUT)









Hívásban CH kiíratása (bizonyos mappokon)



Ha bizonyos map vagy map-okon vagy, és hívásban írsz, akkor kiírja a CH-ját a játékosnak.

Csak annyi kell tenned, hogy az egész def __SendShoutChatPacket(self, text): részt lecseréled erre:

def __SendShoutChatPacket(self, text):
   
if 1 == len(text):
self.RunCloseEvent()
return
           
if app.GetTime() < self.lastShoutTime + 15:
chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.CHAT_SHOUT_LIMIT)
self.__ResetChat()
return
           
a = net.GetServerInfo()
channel = a[-3:]
if not self.Some_Map():
self.__SendChatPacket("[" + channel + "]: " + text[1:], chat.CHAT_TYPE_SHOUT)
else:
self.__SendChatPacket(text[1:], chat.CHAT_TYPE_SHOUT)
           
self.__ResetChat()
self.lastShoutTime = app.GetTime()
       
def Some_Map(self):
import background
channel_map = [
"season1/metin2_map_oxevent",
]
if str(background.GetCurrentMapName()) in channel_map:
return TRUE
return FALSE


Ezután már csak ki kell egészítened azokkal a mappokkal, ahol akarod, hogy ha onnan ír, kiírja azt a  CH-t hívásban, ahol van a játékos.


Köszönöm a figyelmet! Sok sikert, és jó fejlesztést mindenkinek!

Üdvözlettel, Pisti95