Register for your free account! | Forgot your password?

You last visited: Today at 23:26

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

Advertisement



[C++]Waffe/Rüstung more stone slots

Discussion on [C++]Waffe/Rüstung more stone slots within the Metin2 PServer Guides & Strategies forum part of the Metin2 Private Server category.

Reply
 
Old   #1

 
elite*gold: 70
Join Date: Mar 2015
Posts: 87
Received Thanks: 89
Thumbs up [C++]Waffe/Rüstung more stone slots

Hallo liebe Community,
Vorab, es ist nicht komplett meine Arbeit ein kleiner Teil hatte mir noch gefehlt, diesen konnte ich dank @dukaibalu1 vervollständigen.


!Was dafür benötigt wird:!
1. Source Server/Client & nein 34k wird nicht unterstützt bevor die Frage wieder kommt.
2. Etwas Ahnung
3. Das Tutorial befolgen

Ich versuche es euch so einfach wie möglich zu erklären damit es jeder hin bekommt. Support gebe ich dazu natürlich auch, sollten fragen sein.

Noch etwas: Slot0-Slot1-Slot2 sind Standard, also 3 Slots
Ich nehme in diesem Tutorial 6 Slots sprich Slot0-Slot1-Slot2-Slot3-Slot4-Slot5, das kann jeder natürlich individuell abändern.

Kommen wir nun zum eigentlichen Teil.

Fangen wir Serverseitig an:
In der Datei common/item_length.h suchen wir nach:
Code:
ITEM_SOCKET_MAX_NUM         = 3,
ändern das zu:
Code:
ITEM_SOCKET_MAX_NUM         = 6,
Öffnen die Datei: db/ClientManager.cpp und suchen nach:
Code:
"SELECT id, window+0, pos, count, vnum, socket0, socket1, socket2, "
Ersetzen das mit dem:
Code:
"SELECT id, window+0, pos, count, vnum, socket0, socket1, socket2, socket3, socket4, socket5,  "
Dann sind wir mit dieser Datei fertig und kann abgespeichert werden.

Öffnen folgende Datei: db/cache.cpp suchen dort nach folgendem Teil
Code:
if (isSocket)
        {
            iLen += snprintf(szColumns + iLen, sizeof(szColumns) - iLen, ", socket0, socket1, socket2");
            iValueLen += snprintf(szValues + iValueLen, sizeof(szValues) - iValueLen,
                    ", %lu, %lu, %lu", p->alSockets[0], p->alSockets[1], p->alSockets[2]);
            iUpdateLen += snprintf(szUpdate + iUpdateLen, sizeof(szUpdate) - iUpdateLen,
                    ", socket0=%lu, socket1=%lu, socket2=%lu", p->alSockets[0], p->alSockets[1], p->alSockets[2]);
        }
ersetzen das mit diesem Code:
Code:
if (isSocket)
        {
            iLen += snprintf(szColumns + iLen, sizeof(szColumns) - iLen, ", socket0, socket1, socket2, socket3, socket4, socket5");
            iValueLen += snprintf(szValues + iValueLen, sizeof(szValues) - iValueLen,
                    ", %lu, %lu, %lu, %lu, %lu, %lu", p->alSockets[0], p->alSockets[1], p->alSockets[2], p->alSockets[3], p->alSockets[4], p->alSockets[5]);
            iUpdateLen += snprintf(szUpdate + iUpdateLen, sizeof(szUpdate) - iUpdateLen,
                    ", socket0=%lu, socket1=%lu, socket2=%lu, socket3=%lu, socket4=%lu, socket5=%lu", p->alSockets[0], p->alSockets[1], p->alSockets[2], p->alSockets[3], p->alSockets[4], p->alSockets[5]);
        }
Wenn wir das gemacht haben speichern wir das ab

Nun gehen wir öffnen wir db/clientmanagerplayer.cpp und suchen nach:
Code:
str_to_number(item.alSockets[2], row[cur++]);
Darunter fügen wir folgendes hinzu:
Code:
str_to_number(item.alSockets[3], row[cur++]);
str_to_number(item.alSockets[4], row[cur++]);
str_to_number(item.alSockets[5], row[cur++]);
Dann suchen wir in der selben Datei nach:
Code:
"SELECT id,window+0,pos,count,vnum,socket0,socket1,socket2,attrtype0,attrvalue0,attrtype1,attrvalue1,attrtype2,attrvalue2,attrtype3,attrvalue3,attrtype4,attrvalue4,attrtype5,attrvalue5,attrtype6,attrvalue6 "
Und ersetzen das mit dem:
Code:
"SELECT id,window+0,pos,count,vnum,socket0,socket1,socket2,socket3,socket4,socket5,attrtype0,attrvalue0,attrtype1,attrvalue1,attrtype2,attrvalue2,attrtype3,attrvalue3,attrtype4,attrvalue4,attrtype5,attrvalue5,attrtype6,attrvalue6 "
Dann suchen wir nochmals in der selben Datei nach:
Code:
"SELECT id,window+0,pos,count,vnum,socket0,socket1,socket2,attrtype0,attrvalue0,attrtype1,attrvalue1,attrtype2,attrvalue2,attrtype3,attrvalue3,attrtype4,attrvalue4,attrtype5,attrvalue5,attrtype6,attrvalue6 "
Und ersetzen das mit dem:
Code:
"SELECT id,window+0,pos,count,vnum,socket0,socket1,socket2,socket3,socket4,socket5,attrtype0,attrvalue0,attrtype1,attrvalue1,attrtype2,attrvalue2,attrtype3,attrvalue3,attrtype4,attrvalue4,attrtype5,attrvalue5,attrtype6,attrvalue6 "
Dann sind wir auch fertig mit dieser Datei und können sie abspeichern.

Dann öffnen wir die Datei game/constants.cpp und suchen nach:
Wer keinen Lykaner eingebaut hat, lässt die "CLAW" weg!!
Code:
3, // WEAPON_SWORD,
3, // WEAPON_DAGGER,
3, // WEAPON_BOW,
3, // WEAPON_TWO_HANDED,
3, // WEAPON_BELL,
3, // WEAPON_FAN,
3, // WEAPON_CLAW
0, // WEAPON_ARROW,
0, // WEAPON_MOUNT_SPEAR
Und ersetzen das mit dem:
Code:
6, // WEAPON_SWORD,
6, // WEAPON_DAGGER,
6, // WEAPON_BOW,
6, // WEAPON_TWO_HANDED,
6, // WEAPON_BELL,
6, // WEAPON_FAN,
6, // WEAPON_CLAW
0, // WEAPON_ARROW,
0, // WEAPON_MOUNT_SPEAR
Dann suchen wir in der selben Datei nach:
Code:
3, // ARMOR_BODY,
Und ersetzen das mit:
Code:
6, // ARMOR_BODY,
Wenn man nun z.B 6 Slots haben möchte für ein bestimmtes Item muss man dies natürlich in der Datenbank dort item_proto die socket_pct dem entsprechend anpassen.

Nun ist Serverseitig alles fertig.

Nun zum Clientteil:
Vorab, wer mehr als 3 Slots verwendet muss noch die Sockets in der Item_proto Clientseitig einfügen, werde euch dafür die Offizielle Item_proto von DE abgeändert mit 6 Slots in den Anhang packen. Serverseitig geht es Standard gemäß bis zu 6 Slots.

Dort öffnen wir die Datei userinterface/gametype.h und suchen nach:
Code:
ITEM_SOCKET_SLOT_MAX_NUM = 3,
Das ersetzen wir Logischerweise mit
Code:
ITEM_SOCKET_SLOT_MAX_NUM = 6,
Mehr Tutorials zum Source werden folgen, das war nur mein Willkommens Release
Attached Files
File Type: zip Item_proto.zip (242.4 KB, 289 views)
.Aphrodite is offline  
Thanks
14 Users
Old 03/21/2015, 08:39   #2
 
elite*gold: 86
Join Date: Dec 2013
Posts: 904
Received Thanks: 599
Danke für das Release , ich wollte das eig auch Releasen >.<
.Kyroja is offline  
Old 03/21/2015, 08:41   #3

 
elite*gold: 70
Join Date: Mar 2015
Posts: 87
Received Thanks: 89
Quote:
Originally Posted by .Kyroja View Post
Danke für das Release , ich wollte das eig auch Releasen >.<
Na, wenn man schon die Nacht schlaflos verbringt kann man ja etwas nützliches tun
.Aphrodite is offline  
Old 03/21/2015, 11:12   #4

 
elite*gold: 0
Join Date: Nov 2011
Posts: 1,448
Received Thanks: 1,256
Nicht schlecht !

Haste vielleicht nen Ingame-Screenshot vom Endprodukt?
.yorliK is offline  
Old 03/21/2015, 11:25   #5
 
elite*gold: 99
Join Date: Sep 2011
Posts: 5,315
Received Thanks: 3,920
Danke, langsam aber sicher werden endlich mal viele nützliche Sachen in C++ releast^^
DasSchwarzeT is offline  
Thanks
2 Users
Old 03/21/2015, 11:28   #6
 
elite*gold: 75
Join Date: Mar 2012
Posts: 2,653
Received Thanks: 738
Ehm kann es sein das du es von M2DEV hast ? Da wurde es gestern Abend nämlich auch Releast


Trotzdem danke
.Despero™ is offline  
Old 03/21/2015, 12:00   #7
 
elite*gold: 0
Join Date: Jun 2014
Posts: 1,032
Received Thanks: 934
Geile Sache danke
Tuora is offline  
Old 03/30/2015, 13:08   #8

 
elite*gold: 70
Join Date: Mar 2015
Posts: 87
Received Thanks: 89
Quote:
Originally Posted by .Despero™ View Post
Ehm kann es sein das du es von M2DEV hast ? Da wurde es gestern Abend nämlich auch Releast


Trotzdem danke
Habe ja oben extra noch die Quelle erwähnt, um es nicht als "komplett" meins auszugeben.

Liebe Grüße
.Aphrodite is offline  
Old 03/30/2015, 13:28   #9
 
elite*gold: 0
Join Date: May 2013
Posts: 353
Received Thanks: 618
Danke dafür, habs gebraucht. Häts wohl auch selber hinbekommen aber damit wurd mir das abgenommen

Hab hier mal eine dump_proto.exe für euch (dumpt .txt zu client item/mob _proto) die auch 6 sockets drin hat statt 3
Attached Files
File Type: rar dump_proto.rar (37.1 KB, 68 views)
.Sanii is offline  
Thanks
2 Users
Old 03/30/2015, 16:53   #10
 
elite*gold: 0
Join Date: Nov 2010
Posts: 33
Received Thanks: 23
When i use Glass of Insight i have these errors in syser:

Code:
0330 16:42:18821 :: Traceback (most recent call last):

0330 16:42:18821 ::   File "game.py", line 1355, in OnMouseLeftButtonUp

0330 16:42:18821 ::   File "interfaceModule.py", line 341, in MakeHyperlinkTooltip

0330 16:42:18821 ::   File "uiToolTip.py", line 1835, in SetHyperlinkItem

0330 16:42:18821 ::   File "uiToolTip.py", line 940, in AddItemData

0330 16:42:18821 ::   File "uiToolTip.py", line 1635, in __AppendMetinSlotInfo

0330 16:42:18821 :: IndexError
0330 16:42:18821 :: : 
0330 16:42:18821 :: list index out of range
0330 16:42:18821 ::
anarchy92 is offline  
Old 03/30/2015, 17:52   #11

 
elite*gold: 90
Join Date: Apr 2010
Posts: 1,887
Received Thanks: 1,785
Quote:
Originally Posted by anarchy92 View Post
When i use Glass of Insight i have these errors in syser:

Code:
0330 16:42:18821 :: Traceback (most recent call last):

0330 16:42:18821 ::   File "game.py", line 1355, in OnMouseLeftButtonUp

0330 16:42:18821 ::   File "interfaceModule.py", line 341, in MakeHyperlinkTooltip

0330 16:42:18821 ::   File "uiToolTip.py", line 1835, in SetHyperlinkItem

0330 16:42:18821 ::   File "uiToolTip.py", line 940, in AddItemData

0330 16:42:18821 ::   File "uiToolTip.py", line 1635, in __AppendMetinSlotInfo

0330 16:42:18821 :: IndexError
0330 16:42:18821 :: : 
0330 16:42:18821 :: list index out of range
0330 16:42:18821 ::
Yea, the creator of this topic missed some things that you have to edit clientside.

Open the binary source and search for:

Code:
chatGetLinkFromHyperlink
And make it look like this:


Search for

Code:
playerGetItemLink
And make it look like this


Open uitooltip.py and search for

Code:
def SetHyperlinkItem(self, tokens):
It has to look like this



I'm not exactly sure if i miss something, because it's a long time ago.
Avulsed is offline  
Thanks
4 Users
Old 03/30/2015, 18:19   #12
 
elite*gold: 0
Join Date: Nov 2010
Posts: 33
Received Thanks: 23
Thanks, now work
anarchy92 is offline  
Old 03/30/2015, 21:58   #13
 
elite*gold: 0
Join Date: Jan 2013
Posts: 489
Received Thanks: 496
Find sowas eigentlich richtig cool. Kann man auch so umschreiben dass man in sein Schild,Schuhe,Helm usw auch Steine einfügen kann (Für diejenigen die nicht wissen wo es in der Source ist). 6 Steine ist denke ich mal etwas zu Heftig aber Fun-Server könnten es gebrauchen. Schönes Release
Prince43™ is offline  
Old 03/31/2015, 17:01   #14
 
elite*gold: 0
Join Date: May 2010
Posts: 17
Received Thanks: 10
hyperlink hellppp

0331 09:57:12489 :: invalid idx 0
0331 10:02:21454 :: Traceback (most recent call last):

0331 10:02:21454 :: File "game.py", line 1500, in OnMouseLeftButtonUp

0331 10:02:21454 :: File "interfaceModule.py", line 345, in MakeHyperlinkTooltip

0331 10:02:21455 :: File "uiToolTip.py", line 1850, in SetHyperlinkItem

0331 10:02:21455 :: File "uiToolTip.py", line 889, in AddItemData

0331 10:02:21455 :: File "uiToolTip.py", line 1650, in __AppendMetinSlotInfo

0331 10:02:21455 :: IndexError
0331 10:02:21455 :: :
0331 10:02:21455 :: list index out of range
0331 10:02:21455 ::
ahynoa is offline  
Old 03/31/2015, 17:28   #15



 
elite*gold: 61
Join Date: Feb 2011
Posts: 5,803
Received Thanks: 3,342
Quote:
Originally Posted by ahynoa View Post
0331 09:57:12489 :: invalid idx 0
0331 10:02:21454 :: Traceback (most recent call last):

0331 10:02:21454 :: File "game.py", line 1500, in OnMouseLeftButtonUp

0331 10:02:21454 :: File "interfaceModule.py", line 345, in MakeHyperlinkTooltip

0331 10:02:21455 :: File "uiToolTip.py", line 1850, in SetHyperlinkItem

0331 10:02:21455 :: File "uiToolTip.py", line 889, in AddItemData

0331 10:02:21455 :: File "uiToolTip.py", line 1650, in __AppendMetinSlotInfo

0331 10:02:21455 :: IndexError
0331 10:02:21455 :: :
0331 10:02:21455 :: list index out of range
0331 10:02:21455 ::
This was already mentioned .

Greetings
lestryker is offline  
Reply


Similar Threads Similar Threads
Waffe weg bei Rüstung anziehen.
04/06/2012 - Metin2 Private Server - 0 Replies
Hallo, wenn ich bestimmte Rüstungen anziehe verschwindet die Waffe aus der Hand. Zieh ich eine andere an ist sie wieder da. Ist komischerweise bei allen, die ich gerade eingefügt habe so. Haben alle ShapeIndex 100. Texturen & Rüstungen sind 100% sichtbar :(
Destiny Rüstung + Waffe
02/07/2012 - Last Chaos - 1 Replies
Was ist die beste rüstung und waffe in destiny mit lvl 200? welches lvl hat die rüstung ? so das man auf 100 cast kommt und halt hp siegel und eva halt die beste rüstung und waffe, bräuchte nur das level :P danke im vorraus.. MfG DarkBloodv3
[SUCHE]Waffe/Rüstung
09/24/2011 - Metin2 Private Server - 2 Replies
Hallo liebe :) ich suche Waffe http://img805.imageshack.us/img805/6407/ulepszanie broni.png und Rüstung http://img30.imageshack.us/img30/5615/zbrojeall.pn g Danke danke danke danke :**
EP1 TOP Rüstung/Waffe
04/18/2011 - Last Chaos Trading - 2 Replies
Hallo, Suche ein top EQ für einen X beliebigen Charakter. Es muss Cast + 15 sein. Und das Set muss komplett sein. ALLE Angebote per PN alles andere REPORTED! Zahle mit Gold. Euer V!
[Request]:Waffe& Rüstung
10/13/2006 - World of Warcraft - 19 Replies
hi, wäre nett wenn jemand mir Donnerholzschüreisen ( pic siehe geistesbrecher ) zu http://www.buffed.de/images/items/23054.jpg und Geistesbrecher ( http://img296.imageshack.us/my.php?image=dolcheny4 .gif ) zu http://www.buffed.de/?i=22802 dann noch ( viel ich weiß^^ ) 3 Teile vom Schurken PvP set ( Brust, hose, handschuhe pic siehe schultern ) und die lederschultern aus arathibecken ehrfürchtig ( http://img176.imageshack.us/my.php?image=restli4.g if ) zu bloodfang ( halt schultern...



All times are GMT +1. The time now is 23:26.


Powered by vBulletin®
Copyright ©2000 - 2021, 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.

BTC: 33E6kMtxYa7dApCFzrS3Jb7U3NrVvo8nsK
ETH: 0xc6ec801B7563A4376751F33b0573308aDa611E05

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