Register for your free account! | Forgot your password?

You last visited: Today at 08:56

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[How 2]Shinings über Python einstellen

Discussion on [How 2]Shinings über Python einstellen within the Metin2 PServer Guides & Strategies forum part of the Metin2 Private Server category.

Reply
 
Old   #1
 
zazadi's Avatar
 
elite*gold: 76
Join Date: Mar 2015
Posts: 698
Received Thanks: 245
[How 2]Shinings über Python einstellen

Hallo,
ich möchte euch heute zeigen, wie Ihr Shinings nun absofort über Python einstellen könnt.
Bevor es los geht möchte Ich noch sagen, dass das Release eig. von
"ShuzZzle" auf dem metin2 developer forum ist. Jedoch ist dort ein Fehler drin,
und Ich, der keine Ahnung von C++ hat, wusste nicht genau wie Ich manches einfügen muss.

Nun habe ich es auf jeden fall geschafft und möchte es euch auch zeigen.

Screen:



How 2:

1. Die ShiningSettings.cpp und ShiningSettings.h vom Anhang im Verzeichnis
Userinterface einfügen.

2. Userinterface.cpp öffnen und nach folgendem suchen:
PHP Code:
initServerStateChecker(); 
darunter folgendes einfügen:
PHP Code:
initShining(); 
3. Jetzt die Datei StdAfx.h öffnen und folgendes suchen:
PHP Code:
void initMessenger(); 
darunter einfügen:
PHP Code:
void initShining(); 
4. Nun InstanceBase.cpp öffnen und direkt oben irgendwo folgendes einfügen:

PHP Code:
#include "boost/algorithm/string.hpp"

std::map<intchar*> shiningdata;
std::map<intchar*>::iterator shiningit
5. in der selben Datei folgendes suchen:
PHP Code:
if (12010 <= vnum && vnum <= 12049)
            {
                
__AttachEffect(EFFECT_REFINED+EFFECT_BODYARMOR_SPECIAL);
                
__AttachEffect(EFFECT_REFINED+EFFECT_BODYARMOR_SPECIAL2);
            } 
Darunter das einfügen:
PHP Code:
if(!shiningdata.empty())
            {
                for (
shiningit=shiningdata.begin(); shiningit!=shiningdata.end(); shiningit++)
                    if (
shiningit->first == vnum)
                    {
                        
std::string substr(shiningit->second);
                        
std::vector<stringchars;
                        
boost::split(charssubstrboost::is_any_of("#"));
                        for(
std::vector<string>::size_type i 0!= chars.size(); i++)
                        {
                            
__AttachEffectToArmours(chars[i]);
                        }
                    }
            } 
6. InstanceBase.h öffnen und nach folgendem suchen:
PHP Code:
protected:
        
DWORD    __AttachEffect(UINT eEftType);
        
DWORD    __AttachEffectToArmours(string effectfilename);
        
void    __DetachEffect(DWORD dwEID); 
Das ersetzt ihr mit:
PHP Code:
protected:
        
DWORD    __AttachEffect(UINT eEftType);
        
DWORD    __AttachEffectToArmours(string effectfilename);
        
DWORD    __AttachEffect(char filename[128]);
        
void    __DetachEffect(DWORD dwEID); 
7. InstanceBaseEffect.cpp öffnen und folgendes suchen:
PHP Code:
DWORD CInstanceBase::__EffectContainer_AttachEffect(DWORD dwEftKey
Unter diesen Block folgendes einfügen:
PHP Code:
DWORD CInstanceBase::__AttachEffectToArmours(string effectfilename)
{
    const 
char effectpath effectfilename.c_str();
    
CEffectManager::Instance().RegisterEffect(effectpathfalsefalse);
    return 
m_GraphicThingInstance.AttachEffectByName(0"Bip01"effectpath);

So jetzt öffnet ihr Visual Studio, drückt per Rechtklick auf das Projekt Userinterface ->Hinzufügen->Vorhandenes Element...
und wählt die Dateien ShiningSettings.cpp und ShiningSettings.h aus.
Nun könnt ihr die Binary compilen.
8. Als nächstes öffnet ihr in der root.eix/epk die game.py,
fügt oben bei den imports folgendes hinzu:
PHP Code:
import effecttable 
9. Nun sucht ihr in der selben Datei nach:
PHP Code:
def __init__ 
und fügt hier drunter irgendwo folgendes hinzu:
PHP Code:
effecttable.LoadEffectTable() 
10. Als letztes fügt ihr die effecttable.py in das root Verzeichnis und der Rest sollte selbst erklärend sein.

Hinweis:
Im Archiv ist nochmal ein How 2 mit dem Binary Part
wegen den Tabs.

Virustotal:


Lg Core
Attached Files
File Type: rar Shining.rar (2.7 KB, 378 views)
zazadi is offline  
Thanks
12 Users
Old 09/23/2016, 19:38   #2
 
elite*gold: 0
Join Date: Sep 2014
Posts: 44
Received Thanks: 5
copyright then prevo2 xD
Bekir Akdemir is offline  
Thanks
1 User
Old 09/24/2016, 13:02   #3


 
elite*gold: 1810
Join Date: Jan 2012
Posts: 2,208
Received Thanks: 1,630
Gute Sache!

Um euch die Knechtarbeit abzunehmen, habe ich mal was kleines geschrieben.
Somit müsst ihr die Einträge in der effecttable.py nicht selbst erstellen.
Falls ihr nichts damit anfangen könnt bzw. Hilfe dabei benötigt, schreibt mich an.

PS: Aze Shinings beste

Code:
; -- .au3 script --

#include <file.au3>


$gDir = "d:/ymir work/pc/common/effect/armor/aze_shining/"
$gFile = "shining.txt"
$sValue = 34100
$gCounts = 20

If FileExists($gFile) Then FileDelete($gFile)
_FileCreate($gFile)
$fOpen = FileOpen($gFile)

For $i = 1 To $gCounts

	For $i2 = 0 To 7

		$fWrite = "	" & ($sValue + $i2) & " : " & '["' & $gDir & _Shinings($i2) & '"],'
		FileWriteLine($gFile, $fWrite)

	Next

	$sValue += ($i2 + 2)

Next


Func _Shinings($num)
	Local $var[8]
	$var[0] = "aze_shining_black"
	$var[1] = "aze_shining_blue"
	$var[2] = "aze_shining_green"
	$var[3] = "aze_shining_orange"
	$var[4] = "aze_shining_red"
	$var[5] = "aze_shining_violett"
	$var[6] = "aze_shining_white"
	$var[7] = "aze_shining_yellow"

	Return $var[$num] & ".mse"
EndFunc
MaxChri is offline  
Thanks
4 Users
Old 09/24/2016, 14:35   #4

 
Aze /..'s Avatar
 
elite*gold: 220
Join Date: Oct 2011
Posts: 7,370
Received Thanks: 7,613
Quote:
Originally Posted by MaxChri View Post
Gute Sache!

Um euch die Knechtarbeit abzunehmen, habe ich mal was kleines geschrieben.
Somit müsst ihr die Einträge in der effecttable.py nicht selbst erstellen.
Falls ihr nichts damit anfangen könnt bzw. Hilfe dabei benötigt, schreibt mich an.

PS: Aze Shinings beste

Code:
; -- .au3 script --

#include <file.au3>


$gDir = "d:/ymir work/pc/common/effect/armor/aze_shining/"
$gFile = "shining.txt"
$sValue = 34100
$gCounts = 20

If FileExists($gFile) Then FileDelete($gFile)
_FileCreate($gFile)
$fOpen = FileOpen($gFile)

For $i = 1 To $gCounts

	For $i2 = 0 To 7

		$fWrite = "	" & ($sValue + $i2) & " : " & '["' & $gDir & _Shinings($i2) & '"],'
		FileWriteLine($gFile, $fWrite)

	Next

	$sValue += ($i2 + 2)

Next


Func _Shinings($num)
	Local $var[8]
	$var[0] = "aze_shining_black"
	$var[1] = "aze_shining_blue"
	$var[2] = "aze_shining_green"
	$var[3] = "aze_shining_orange"
	$var[4] = "aze_shining_red"
	$var[5] = "aze_shining_violett"
	$var[6] = "aze_shining_white"
	$var[7] = "aze_shining_yellow"

	Return $var[$num] & ".mse"
EndFunc
Meine Shinings xD
Habs getestet, funktioniert super mit deinem Script.
Aze /.. is offline  
Thanks
2 Users
Old 09/25/2016, 09:42   #5
 
elite*gold: 0
The Black Market: 105/0/0
Join Date: May 2016
Posts: 8,679
Received Thanks: 1,638
Bestimmt für manche sehr nützlich. Danke für den RLS
悪地城 is offline  
Thanks
1 User
Old 09/29/2016, 13:13   #6
 
420Ŧยςђร's Avatar
 
elite*gold: 0
Join Date: Jul 2016
Posts: 65
Received Thanks: 11
Viel zu umständlich, wer sich in C++ ein wenig auskennt weiß das es auch eine viel einfachere Methode dafür gibt.
Ich sage nur Clientsrc -> InstanceBase.h & InstanceBase.cpp
420Ŧยςђร is offline  
Old 09/29/2016, 13:55   #7
 
zazadi's Avatar
 
elite*gold: 76
Join Date: Mar 2015
Posts: 698
Received Thanks: 245
Quote:
Originally Posted by 420Ŧยςђร View Post
Viel zu umständlich, wer sich in C++ ein wenig auskennt weiß das es auch eine viel einfachere Methode dafür gibt.
Ich sage nur Clientsrc -> InstanceBase.h & InstanceBase.cpp
Das How2 ist auch für die Gedacht, die keine Ahnung von C++ haben.

Quote:
Originally Posted by Core ツ View Post
Jedoch ist dort ein Fehler drin,
und Ich, der keine Ahnung von C++ hat, wusste nicht genau wie Ich manches einfügen .
zazadi is offline  
Old 09/29/2016, 14:13   #8

 
Aze /..'s Avatar
 
elite*gold: 220
Join Date: Oct 2011
Posts: 7,370
Received Thanks: 7,613
Quote:
Originally Posted by 420Ŧยςђร View Post
Viel zu umständlich, wer sich in C++ ein wenig auskennt weiß das es auch eine viel einfachere Methode dafür gibt.
Ich sage nur Clientsrc -> InstanceBase.h & InstanceBase.cpp
Dann nenn uns mal deine Lösung.
Aze /.. is offline  
Thanks
1 User
Old 09/29/2016, 21:10   #9
 
420Ŧยςђร's Avatar
 
elite*gold: 0
Join Date: Jul 2016
Posts: 65
Received Thanks: 11
In der InstanceBase.h wird das Shining benannt, wie es im Source halt heißt.
Wie man auf dem Screen hier sieht:

Kommen wir zur InstanceBase.cpp, hier auf dem Screen sieht man die VNUM's der jeweiligen Item's die das Shining haben sollen oder den sogenannten "refined effect".

Beispiel:
// Bsp: 105er Rüstungen BEGIN
if (vnum == 123456 ||
vnum == 78901 ||
vnum == 23456 ||
vnum == 78901)
{
__AttachEffect(EFFECT_REFINED + EFFECT_105_RÜSTUNG_SHINING); // 105er Rüstungen "EFFECT_120_RÜSTUNG_SHINING" steht wie gesagt in der InstanceBase.h dann.
}
Es tut mir leid, ich habe dann noch vergessen dazu das man noch etwas in der playersettingsmodule.py definieren muss aber wenn ich schon einmal dabei bin, dann machen wir es auch vollständig.
Kommen wir zur Playersettingsmodule.py in den Root.ei* / ep*

Hier auf dem Screenshot sehen wir wie der "refined effect" z.B. von den Rüstungen auf +7/8/9 definiert ist.
chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+16, "Bip01", "D:/ymir work/pc/common/effect/armor/armor_7.mse")
Ist z.B. das Glitzern von +7.
Dann geht man einfach nach ganz unten wo es aufhört, bei mir jetzt bei:
chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+21, "Bip01", "D:/ymir work/pc/common/effect/armor/armor-5-1.mse")
Das ist der Effekt z.B. von den neuen Rüstungen (120er) mit den Blitzen.
Jetzt schreibt dadrunter es dann so wie man es auch in der Instancebase.h / cpp gemacht hat mit natürlichen dem angegebenen Pfad.
Beispiel:
chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+22, "Bip01", "D:/ymir work/pc/common/effect/armor/PfadvonShiningEPVP.mse")
Die +22 steht in der InstanceBase.h das ist die Nummerierung vom Shining, wer immer noch nicht weiß was gemeint ist hier ein Screen dazu:

Wie gesagt, das ist die Nummerierung des Shinings diese kann man auch einsehen, wenn man mit dem Mauszeiger über den Text geht von dem Shinings jetzt (EFFECT_120_RÜSTUNG_SHINING).
Jetzt müsst Ihr nurnoch die Exe compilen, die Root.ei*/epk packen, und fertig seit ihr.
Gruß,
420Ŧยςђร
420Ŧยςђร is offline  
Old 09/29/2016, 22:26   #10
 
zazadi's Avatar
 
elite*gold: 76
Join Date: Mar 2015
Posts: 698
Received Thanks: 245
Quote:
Originally Posted by 420Ŧยςђร View Post
In der InstanceBase.h wird das Shining benannt, wie es im Source halt heißt.
Wie man auf dem Screen hier sieht:

Kommen wir zur InstanceBase.cpp, hier auf dem Screen sieht man die VNUM's der jeweiligen Item's die das Shining haben sollen oder den sogenannten "refined effect".

Beispiel:
// Bsp: 105er Rüstungen BEGIN
if (vnum == 123456 ||
vnum == 78901 ||
vnum == 23456 ||
vnum == 78901)
{
__AttachEffect(EFFECT_REFINED + EFFECT_105_RÜSTUNG_SHINING); // 105er Rüstungen "EFFECT_120_RÜSTUNG_SHINING" steht wie gesagt in der InstanceBase.h dann.
}
Es tut mir leid, ich habe dann noch vergessen dazu das man noch etwas in der playersettingsmodule.py definieren muss aber wenn ich schon einmal dabei bin, dann machen wir es auch vollständig.
Kommen wir zur Playersettingsmodule.py in den Root.ei* / ep*

Hier auf dem Screenshot sehen wir wie der "refined effect" z.B. von den Rüstungen auf +7/8/9 definiert ist.
chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+16, "Bip01", "D:/ymir work/pc/common/effect/armor/armor_7.mse")
Ist z.B. das Glitzern von +7.
Dann geht man einfach nach ganz unten wo es aufhört, bei mir jetzt bei:
chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+21, "Bip01", "D:/ymir work/pc/common/effect/armor/armor-5-1.mse")
Das ist der Effekt z.B. von den neuen Rüstungen (120er) mit den Blitzen.
Jetzt schreibt dadrunter es dann so wie man es auch in der Instancebase.h / cpp gemacht hat mit natürlichen dem angegebenen Pfad.
Beispiel:
chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+22, "Bip01", "D:/ymir work/pc/common/effect/armor/PfadvonShiningEPVP.mse")
Die +22 steht in der InstanceBase.h das ist die Nummerierung vom Shining, wer immer noch nicht weiß was gemeint ist hier ein Screen dazu:

Wie gesagt, das ist die Nummerierung des Shinings diese kann man auch einsehen, wenn man mit dem Mauszeiger über den Text geht von dem Shinings jetzt (EFFECT_120_RÜSTUNG_SHINING).
Jetzt müsst Ihr nurnoch die Exe compilen, die Root.ei*/epk packen, und fertig seit ihr.
Gruß,
420Ŧยςђร
Durch die Methode von mir oben kann man allen Rüstungen Shinings verpassen, ohne Sie vorher im Source nochmal eingefügt zu haben, sprich man gibt in der effecttable.py die VNUM der Rüstung an und den Pfad zum Effect.
Bei der Methode die du zeigst, müsste man jedes mal wenn man einer neuen Rüstung ein Shining geben will im Source die Rüstung einfügen und die exe compilen.
zazadi is offline  
Thanks
1 User
Old 10/01/2016, 12:41   #11

 
Aze /..'s Avatar
 
elite*gold: 220
Join Date: Oct 2011
Posts: 7,370
Received Thanks: 7,613
Quote:
Originally Posted by 420Ŧยςђร View Post
Joar die Methode gibts auch im Dev Forum, finde ich aber unnütz und umständlich, wenn ich jedes Mal den Source compilen muss, nur damit ne Rüstung ein Shining haben kann. Da sollte es lieber via shinings.py gelöst werden, anstatt so. Ehrlich gesagt finde ich deine Methode mehr als nur umständlich. Da macht man sich zusätzlich mehr Arbeit, als man eigentlich braucht.
Aze /.. is offline  
Thanks
1 User
Old 10/16/2016, 19:35   #12
 
xRed™'s Avatar
 
elite*gold: 0
Join Date: Sep 2016
Posts: 13
Received Thanks: 13
Sieht sehr gut aus. Dankeschön
xRed™ is offline  
Old 10/23/2016, 19:17   #13
 
Prince43™'s Avatar
 
elite*gold: 0
Join Date: Jan 2013
Posts: 489
Received Thanks: 495
Das System an sich ist sehr toll und Shuzzle auch ein sehr guter Python Coder. Ich habe noch die Version mit Weapon_refine zusätzlich. Danke dass du es mit uns teilst ^^

greetz
Prince43™ is offline  
Thanks
1 User
Old 10/26/2016, 21:45   #14
 
Premiumlike's Avatar
 
elite*gold: 7
Join Date: Jul 2013
Posts: 440
Received Thanks: 166
Währe schön wenn wir auch die Version mit Waffen Shining bekommen würden
Premiumlike is offline  
Thanks
1 User
Old 10/27/2016, 12:26   #15
 
DeZy.'s Avatar
 
elite*gold: 0
Join Date: Oct 2016
Posts: 24
Received Thanks: 9
Sehr nice

Liebe Grüße,
DeZy.
DeZy. is offline  
Thanks
1 User
Reply


Similar Threads Similar Threads
Bot über teamviewer einstellen
08/20/2013 - Seafight - 0 Replies
hallo kann mir vllt jemand ein bot über teamviewer einstellen würde ich mich sehr freuen
Über Computer Sound für Xbox einstellen
12/19/2012 - Consoles - 0 Replies
Hiho, Ich habe mir bei Amazone für mein Computer Bildschirm ein "AmazonBasics HDMI/DVI Adapterkabel" gekauft. Nun habe ich das Problem - dass die Xbox kein Ton wiedergibt. Gibt es eine Möglichkeit über den Computer eine Soundquelle zu öffnen? Damit meine ich, dass wenn ich die Xbox anschalte - der Sound über mein Computer/Headset von der Xbox läuft.
Metin2 rates über Codes einstellen
08/03/2010 - Metin2 Private Server - 5 Replies
Hey ich suche die Codes für Rates ; Exp;Yang;gegenstände;Yangbomben; Bitte einfach hier reinschreiben ,ich habe nichts gefunden ^^
NPCs über ein Programm einstellen
07/20/2010 - Metin2 Private Server - 5 Replies
Hey Leute, Suche ein Programm mit dem ich NPCs einstellen kann das nicht so kompliziert ist ich mein ich könnte es schon auch mit Navicat aber dauert mir etwas zu lang sorry das ich extra für sowas ein Thread öffne :S Also wenn jemand so ein Programm kennt Pls Postet unten den Link :) MFG Dargstar
[How To]Exp Rate über Datenbank einstellen
06/14/2010 - Metin2 PServer Guides & Strategies - 9 Replies
Also ihr geht erst in der Db Auf Player->Mob_proto Öffnen! Jetzt braucht ihr die Mobids Wildhund 101 Hungriger Wildhund 171 Wolf 102 Hungriger Wolf 172 Alpha-Wolf 103 Hungriger Alpha-Wolf 173



All times are GMT +1. The time now is 08:58.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.