|
You last visited: Today at 04:23
Advertisement
[HowTo] Block Spammer [Clientmod]
Discussion on [HowTo] Block Spammer [Clientmod] within the Metin2 Guides & Templates forum part of the Metin2 category.
08/24/2010, 16:15
|
#1
|
elite*gold: 27
Join Date: Apr 2009
Posts: 1,913
Received Thanks: 2,596
|
[HowTo] Block Spammer [Clientmod]
Hallo,
wie versprochen melde ich mich wieder mit was neuem.
Diesmal ist es schon um einiges aufwändiger als bei meinen letzten Tutorials.
Es gibt ja viele die es satt haben immer von lästigen Spambots angeschrieben zu werden. Hiermit verschaffe ich euch wiedermal Abhilfe.
Zunächst einmal was ist das hier ? Was bringt das ?
Es geht um einen PN Blocker der standardmäßig beim Einloggen alle PNs abblockt. Der alte Flüsterblock Button wurde nicht entfernt und man kann diesen weiterhin im Spiel nutzen.
Doch mein Blocker blockt PNs richtig und zu jeder Zeit.
Weder beim Einloggen noch beim hier neustarten, niemand wird euch anschreiben können solange man nicht den Block entfernt.
Bitte beachten: Mein Blocker missachtet den Standardblocker das heißt der Standardblocker funktioniert nur wenn mein Blocker aus ist.
Nachdem der Block entfernt ist geht auch wieder der Standard Flüster Block.
Um euch mal zu zeigen was ich meine habe ich dieses Video vorbereitet
nun zum eigentlichen dem HowTo Do It By Yourself. Es wird vorrausgesetzt das man die root und uiscript Dateien packen und entpacken kann. Dazu bitte nach einem Tutorial hier im Forum suchen. Stichwort: "Dateien richtig packen"
Schritt Nr.1
1.1)Zuerst brauchen wir diese Datei-->
gameoptiondialog.py
wir suchen in dieser Datei nach diesem Abschnitt:
Code:
{
"name" : "block_whisper_button",
"type" : "toggle_button",
"x" : LINE_DATA_X+MIDDLE_BUTTON_WIDTH*0,
"y" : 140,
"text" : uiScriptLocale.OPTION_BLOCK_WHISPER,
"default_image" : ROOT_PATH + "middle_button_01.sub",
"over_image" : ROOT_PATH + "middle_button_02.sub",
"down_image" : ROOT_PATH + "middle_button_03.sub",
},
1.2)und fügen direkt darunter das hier ein:
Code:
{
"name" : "power_block_whisper_button",
"type" : "toggle_button",
"x" : 25,
"y" : 140,
"text" : "Blocker",
"default_image" : ROOT_PATH + "middle_button_01.sub",
"over_image" : ROOT_PATH + "middle_button_02.sub",
"down_image" : ROOT_PATH + "middle_button_03.sub",
},
1.3)das ganze sollte dann so aussehen:
Code:
{
"name" : "block_whisper_button",
"type" : "toggle_button",
"x" : LINE_DATA_X+MIDDLE_BUTTON_WIDTH*0,
"y" : 140,
"text" : uiScriptLocale.OPTION_BLOCK_WHISPER,
"default_image" : ROOT_PATH + "middle_button_01.sub",
"over_image" : ROOT_PATH + "middle_button_02.sub",
"down_image" : ROOT_PATH + "middle_button_03.sub",
},
{
"name" : "power_block_whisper_button",
"type" : "toggle_button",
"x" : 25,
"y" : 140,
"text" : "Blocker",
"default_image" : ROOT_PATH + "middle_button_01.sub",
"over_image" : ROOT_PATH + "middle_button_02.sub",
"down_image" : ROOT_PATH + "middle_button_03.sub",
},
Nachdem wir nun den zusätzlichen Button erstellt haben sind wir mit der Bearbeitung an dieser Datei fertig und speichern diese ab.
Schritt Nr.2
2.1)Als zweites benötigen wir diese Datei -->
game.py
2.2)wir suchen in dieser Datei nach der Zeile wo das hier steht:
testAlignment = 0
2.3)und direkt darunter schreiben wir dann das dies hier:
SendBlock = 0
2.4)jetzt suchen wir diese Funktion:
Code:
def OnRecvWhisper(self, name, line):
chat.AppendWhisper(chat.WHISPER_TYPE_CHAT, name, line)
self.interface.RecvWhisper(name)
2.5)und bearbeiten sie damit es so aussieht:
Code:
def OnRecvWhisper(self, name, line):
if 1==SendBlock:
snd.PlaySound("messagesound.wav") or snd.PlaySound("messagesound.mp3")
chat.AppendWhisper(chat.WHISPER_TYPE_CHAT, name, line)
self.interface.RecvWhisper(name)
elif 0==SendBlock:
net.SendChatPacket("/setblockmode " + str(blockMode ^ player.BLOCK_WHISPER))
2.6)wenn wir 2.5 geschafft haben suchen wir nach dieser Funtkion:
Code:
def OnUpdate(self):
app.UpdateGame()
if self.mapNameShower.IsShow():
self.mapNameShower.Update()
if self.isShowDebugInfo:
self.UpdateDebugInfo()
if self.enableXMasBoom:
self.__XMasBoom_Update()
self.interface.BUILD_OnUpdate()
2.7)und das hier fügen wir in diese Funktion mit ein
Code:
if SendBlock == 1:
self.OnRecvWhisper(name, line)
2.8)so sollte das ausehen:
Code:
def OnUpdate(self):
app.UpdateGame()
if self.mapNameShower.IsShow():
self.mapNameShower.Update()
if self.isShowDebugInfo:
self.UpdateDebugInfo()
if self.enableXMasBoom:
self.__XMasBoom_Update()
self.interface.BUILD_OnUpdate()
if SendBlock == 1:
self.OnRecvWhisper(name, line)
wenn das geschafft ist sind wir mit der Bearbeitung game.py fertig und können nun zur letzten Aufgabe
Schritt Nr.3
3.1)Als drittes und letztes brauchen wir diese Datei -->
uigameoption.py
3.2)zunächst schreiben wir unter die ganzen Imports einen weiteren Import und zwar diesen:
import game
3.3)Jetzt suchen wir diese Funktion und fügen das fettgedruckte ein
Code:
def __Load_BindObject(self):
try:
GetObject = self.GetChild
self.titleBar = GetObject("titlebar")
self.nameColorModeButtonList.append(GetObject("name_color_normal"))
self.nameColorModeButtonList.append(GetObject("name_color_empire"))
self.viewTargetBoardButtonList.append(GetObject("target_board_no_view"))
self.viewTargetBoardButtonList.append(GetObject("target_board_view"))
self.pvpModeButtonDict[player.PK_MODE_PEACE] = GetObject("pvp_peace")
self.pvpModeButtonDict[player.PK_MODE_REVENGE] = GetObject("pvp_revenge")
self.pvpModeButtonDict[player.PK_MODE_GUILD] = GetObject("pvp_guild")
self.pvpModeButtonDict[player.PK_MODE_FREE] = GetObject("pvp_free")
self.blockButtonList.append(GetObject("block_exchange_button"))
self.blockButtonList.append(GetObject("block_party_button"))
self.blockButtonList.append(GetObject("block_guild_button"))
self.blockButtonList.append(GetObject("block_whisper_button"))
self.blockButtonList.append(GetObject("block_friend_button"))
self.blockButtonList.append(GetObject("block_party_request_button"))
[B]self.blockButtonList.append(GetObject("power_block_whisper_button"))[/B]
self.viewChatButtonList.append(GetObject("view_chat_on_button"))
self.viewChatButtonList.append(GetObject("view_chat_off_button"))
self.alwaysShowNameButtonList.append(GetObject("always_show_name_on_button"))
self.alwaysShowNameButtonList.append(GetObject("always_show_name_off_button"))
self.showDamageButtonList.append(GetObject("show_damage_on_button"))
self.showDamageButtonList.append(GetObject("show_damage_off_button"))
global MOBILE
if MOBILE:
self.inputMobileButton = GetObject("input_mobile_button")
self.deleteMobileButton = GetObject("delete_mobile_button")
except:
import exception
exception.Abort("OptionDialog.__Load_BindObject")
3.4)danach suchen wir eine weitere Funktion und fügen die zwei fettgedruckten Zeilen ein.
Code:
def __Load(self):
global MOBILE
if MOBILE:
self.__Load_LoadScript("uiscript/gameoptiondialog_formobile.py")
else:
self.__Load_LoadScript("uiscript/gameoptiondialog.py")
self.__Load_BindObject()
self.SetCenterPosition()
self.titleBar.SetCloseEvent(ui.__mem_func__(self.Close))
self.nameColorModeButtonList[0].SAFE_SetEvent(self.__OnClickNameColorModeNormalButton)
self.nameColorModeButtonList[1].SAFE_SetEvent(self.__OnClickNameColorModeEmpireButton)
self.viewTargetBoardButtonList[0].SAFE_SetEvent(self.__OnClickTargetBoardViewButton)
self.viewTargetBoardButtonList[1].SAFE_SetEvent(self.__OnClickTargetBoardNoViewButton)
self.pvpModeButtonDict[player.PK_MODE_PEACE].SAFE_SetEvent(self.__OnClickPvPModePeaceButton)
self.pvpModeButtonDict[player.PK_MODE_REVENGE].SAFE_SetEvent(self.__OnClickPvPModeRevengeButton)
self.pvpModeButtonDict[player.PK_MODE_GUILD].SAFE_SetEvent(self.__OnClickPvPModeGuildButton)
self.pvpModeButtonDict[player.PK_MODE_FREE].SAFE_SetEvent(self.__OnClickPvPModeFreeButton)
self.blockButtonList[0].SetToggleUpEvent(self.__OnClickBlockExchangeButton)
self.blockButtonList[1].SetToggleUpEvent(self.__OnClickBlockPartyButton)
self.blockButtonList[2].SetToggleUpEvent(self.__OnClickBlockGuildButton)
self.blockButtonList[3].SetToggleUpEvent(self.__OnClickBlockWhisperButton)
self.blockButtonList[4].SetToggleUpEvent(self.__OnClickBlockFriendButton)
self.blockButtonList[5].SetToggleUpEvent(self.__OnClickBlockPartyRequest)
[B]self.blockButtonList[6].SetToggleUpEvent(self.__OnClickBlockPowerWhisperButton)[/B]
self.blockButtonList[0].SetToggleDownEvent(self.__OnClickBlockExchangeButton)
self.blockButtonList[1].SetToggleDownEvent(self.__OnClickBlockPartyButton)
self.blockButtonList[2].SetToggleDownEvent(self.__OnClickBlockGuildButton)
self.blockButtonList[3].SetToggleDownEvent(self.__OnClickBlockWhisperButton)
self.blockButtonList[4].SetToggleDownEvent(self.__OnClickBlockFriendButton)
self.blockButtonList[5].SetToggleDownEvent(self.__OnClickBlockPartyRequest)
[B]self.blockButtonList[6].SetToggleDownEvent(self.__OnClickBlockPowerWhisperButton)[/B]
self.viewChatButtonList[0].SAFE_SetEvent(self.__OnClickViewChatOnButton)
self.viewChatButtonList[1].SAFE_SetEvent(self.__OnClickViewChatOffButton)
self.alwaysShowNameButtonList[0].SAFE_SetEvent(self.__OnClickAlwaysShowNameOnButton)
self.alwaysShowNameButtonList[1].SAFE_SetEvent(self.__OnClickAlwaysShowNameOffButton)
self.showDamageButtonList[0].SAFE_SetEvent(self.__OnClickShowDamageOnButton)
self.showDamageButtonList[1].SAFE_SetEvent(self.__OnClickShowDamageOffButton)
self.__ClickRadioButton(self.nameColorModeButtonList, constInfo.GET_CHRNAME_COLOR_INDEX())
self.__ClickRadioButton(self.viewTargetBoardButtonList, constInfo.GET_VIEW_OTHER_EMPIRE_PLAYER_TARGET_BOARD())
self.__SetPeacePKMode()
#global MOBILE
if MOBILE:
self.inputMobileButton.SetEvent(ui.__mem_func__(self.__OnChangeMobilePhoneNumber))
self.deleteMobileButton.SetEvent(ui.__mem_func__(self.__OnDeleteMobilePhoneNumber))
3.5)Jetzt suchen wir nach dieser Funktion und bauen uns eine neue dahinter:
Code:
def __OnClickBlockPartyRequest(self):
self.RefreshBlock()
global blockMode
net.SendChatPacket("/setblockmode " + str(blockMode ^ player.BLOCK_PARTY_REQUEST))
3.6)diese neue Funktion direkt dahinter einsetzen:
Code:
def __OnClickBlockPowerWhisperButton(self):
if game.SendBlock == 0:
chat.AppendChat(chat.CHAT_TYPE_NOTICE, "< Changed Message Blocker = OFF >")
game.SendBlock = 1
elif game.SendBlock == 1:
chat.AppendChat(chat.CHAT_TYPE_NOTICE, "< Message Blocker = ON >")
game.SendBlock = 0
Infos:
Man kann jede .mp3 Datei oder .wav Datei in den Metin2 Ordner schieben und diese wird dann abgespielt sobald man eine Nachricht bekommt.
Die Sounddatei muss in --> messagesound unbenannt werden
Nun wünsche ich euch viel Spaß beim ausprobieren
Und es wäre nice wenn jemand eine Rückmeldung gibt ob es auf DE genauso gut funktioniert. Dann könnte ich es ja mal der GF vorschlagen....*gg*
Bitte keine PNs bezüglich "das es nicht funktioniert", Danke!
Wenn man alles richtig macht wird es funktionieren
Edit:
Da ich diese Woche nicht mehr viel Zeit habe werde ich euch nächste Woche eine Erweiterung basteln. Lasst euch überraschen
|
|
|
08/24/2010, 16:24
|
#2
|
elite*gold: 0
Join Date: Sep 2009
Posts: 484
Received Thanks: 43
|
#1 ^^
naja so nervig sind die nun auch wieder net!
|
|
|
08/24/2010, 16:26
|
#3
|
elite*gold: 626
Join Date: Aug 2009
Posts: 7,149
Received Thanks: 2,943
|
Satomayo Doppelpost lösch das mal
|
|
|
08/24/2010, 16:27
|
#4
|
elite*gold: 72
Join Date: Mar 2010
Posts: 511
Received Thanks: 81
|
Gutes Tut
Werd ich glein mal ausprobieren danke
Doppelpost
#reported
#thx given
|
|
|
08/24/2010, 17:29
|
#5
|
elite*gold: 0
Join Date: Feb 2008
Posts: 2,754
Received Thanks: 1,748
|
Und was bringts nun im Gegensatz zum normalen Flüsterblock?
Wenn dich so jmd. normales anschreibt kommt er sich verarscht vor weil du nichts zurückschreibst..
€dit: Mein Post ist auf offizielle Server bezogen da das eben auch die Section dafür ist, und man dort den block sowiso permanent drin hat sobald er aktiviert ist (also gefixxt)
|
|
|
08/24/2010, 17:44
|
#6
|
elite*gold: 2
Join Date: Jul 2009
Posts: 3,373
Received Thanks: 2,235
|
Das ist sehr nice ist sowas wie flüstern auf blocken
|
|
|
08/24/2010, 18:44
|
#7
|
elite*gold: 27
Join Date: Apr 2009
Posts: 1,913
Received Thanks: 2,596
|
Quote:
Originally Posted by Computerfreek
Und was bringts nun im Gegensatz zum normalen Flüsterblock?
Wenn dich so jmd. normales anschreibt kommt er sich verarscht vor weil du nichts zurückschreibst..
€dit: Mein Post ist auf offizielle Server bezogen da das eben auch die Section dafür ist, und man dort den block sowiso permanent drin hat sobald er aktiviert ist (also gefixxt)
|
Soweit ich weiß schaffen es trotzdem ein paar Spamer bei der normalen Block Funktion. Die Nachricht das der andere PNs geblockt hat werde ich im Laufe nächster Woche in Anriff nehmen. Außerdem kommen noch andere Erweiterungen
Noch was zum Offi.
Ich glaub es ist solange nur ausgeschalten bis man den Client schließt.
Bei jedem Client neustarten ist der Block wieder draußen.
Wenn ich mich irre sagts mir habe lang kein Offi mehr gespielt.
|
|
|
08/24/2010, 18:51
|
#8
|
elite*gold: 15
Join Date: Mar 2010
Posts: 4,270
Received Thanks: 2,499
|
Kanste die Fertigen Dateien uploaden weil ich war noch NIE ein root.e** Freund...
Aber Nice  ^^
|
|
|
08/24/2010, 21:01
|
#9
|
elite*gold: 27
Join Date: Apr 2009
Posts: 1,913
Received Thanks: 2,596
|
Quote:
Originally Posted by dennis96s1
Kanste die Fertigen Dateien uploaden weil ich war noch NIE ein root.e** Freund...
Aber Nice  ^^
|
ne das geht nicht dann würde das Spiel bei euch garnicht mehr gehen.
Habe zuviel verändert^^
|
|
|
08/24/2010, 23:47
|
#10
|
elite*gold: 15
Join Date: Mar 2010
Posts: 4,270
Received Thanks: 2,499
|
Wen ich eine "Aktuelle" hochlade kanst du das dan machen ?
|
|
|
08/25/2010, 02:05
|
#11
|
elite*gold: 0
Join Date: May 2010
Posts: 534
Received Thanks: 342
|
nice^^
|
|
|
08/25/2010, 02:12
|
#12
|
elite*gold: LOCKED
Join Date: Aug 2010
Posts: 534
Received Thanks: 377
|
toll 
geht das auch aufm p server?
|
|
|
08/25/2010, 10:45
|
#13
|
elite*gold: 27
Join Date: Apr 2009
Posts: 1,913
Received Thanks: 2,596
|
Quote:
Originally Posted by MegaZz
toll 
geht das auch aufm p server?
|
das sollte auf jedem Server gehen da die Briefe mit einem Paket abgeblockt werden.
Außer jemand hat eigene Pakete was ich weniger glaube.
bin nun für paar Tage weg.
Wenn es Fragen gibt bis dahin abwarten dann werde ich sie beantworten.
|
|
|
 |
Similar Threads
|
[Clientmod]Metin2 De Moblock and more
09/23/2010 - Metin2 Hacks, Bots, Cheats, Exploits & Macros - 29 Replies
Hi,
Ich habe ein bisschen den De Clienten für euch umgemoddet.
Ich habe am meisten die Konsole gemoddet.
Die Konsole aktiviert ihr mit F6
Neue Commands für die Konsole:
Andere Funktionen:
Moblock
Andere Ideen bitte hier posten ich werde versuchen sie umzusetzen.
|
[Fun]Yangdropper für P-Server [ClientMod]
09/14/2010 - Metin2 Hacks, Bots, Cheats, Exploits & Macros - 14 Replies
Hi com
Ich wollte euch mal meinen Yangdropper für Pserver zeigen.
Ob er auch auf DE geht bin ich mir nicht sicher.
http://www.youtube.com/watch?v=CtDu769t-t4
HowTo
1.Datein downloaden
2.Datein in ein Metin2 Ordner tun
|
Metin2 Clientmod von bollen !!HOT!!
09/10/2010 - Metin2 Hacks, Bots, Cheats, Exploits & Macros - 43 Replies
endlich hab ich mein selbst gemodeten Clienten fertig,
da er noch ein paar Fehler hat wäre es nett wen ihr mir diese berichtet.
Jetzt zum Client:
Woher?
>>DA<<
Wie Installieren?
erst den Gesammten Metin2 Ordner kopieren, dann
einfach die .rar datei entpacken und den gesammten inhalt in den Metin2 ordner unter Pack einfügen und so die alten Dateien überschreiben.
Was bietet mir der Client?
|
HowTo Block Ground Textures???
06/09/2009 - Silkroad Online - 8 Replies
Hi all, I really need help from experts!
I want to plvl myself with Multiclient, but my PC is too crap -.-
Now I want to know how I can block the ground textures?
Look here:http://www.elitepvpers.com/forum/sro-exploits- hacks-bots-guides/224444-penicillin-rc9h11n2o4s.ht ml
Can I modify the .pk2? Or what else?
HELP!!! :confused:
gulli
|
All times are GMT +2. The time now is 04:23.
|
|