|
You last visited: Today at 09:11
Advertisement
[Mini-RLS][C++] Switcher / Adder / Refine Scroll stackable
Discussion on [Mini-RLS][C++] Switcher / Adder / Refine Scroll stackable within the Metin2 PServer Guides & Strategies forum part of the Metin2 Private Server category.
12/07/2016, 11:07
|
#1
|
elite*gold: 2
Join Date: Jun 2015
Posts: 352
Received Thanks: 422
|
[Mini-RLS][C++] Switcher / Adder stackable
Hi Leute,
ich denke mal, dass der Titel beschreibt, was dieses Mini-Release macht!
Ihr geht in die char_item.cpp
Sucht nach:
Code:
case USE_PUT_INTO_BELT_SOCKET:
case USE_PUT_INTO_RING_SOCKET:
case USE_PUT_INTO_ACCESSORY_SOCKET:
case USE_ADD_ACCESSORY_SOCKET:
case USE_CLEAN_SOCKET:
case USE_CHANGE_ATTRIBUTE:
case USE_CHANGE_ATTRIBUTE2 :
case USE_ADD_ATTRIBUTE:
case USE_ADD_ATTRIBUTE2:
{
LPITEM item2;
if (!IsValidItemPosition(DestCell) || !(item2 = GetItem(DestCell)))
return false;
Und fügt darunter:
Code:
if (item->GetVnum() == item2->GetVnum())
{
int d = item->GetCount();
if ((item->GetCount() + item2->GetCount()) > 200)
d = 200 - item2->GetCount();
item2->SetCount(item2->GetCount() + d);
item->SetCount(item->GetCount() - d);
return false;
}
Andere Methode von rollback:
Quote:
Originally Posted by rollback
Code:
int add = MIN(200 - item->GetCount(), item2->GetCount());
item->SetCount(item->GetCount() + add);
item2->SetCount(item2->GetCount() - add);
|
|
|
|
12/07/2016, 11:18
|
#2
|
elite*gold: 964
Join Date: Mar 2008
Posts: 2,634
Received Thanks: 1,637
|
Und wenn man auf einen Stack mit 199 Stück 50 stück draufzieht  ?
Der zweite wird gelöscht und der erste denke ich wird auf das Limit von 200 gesetzt.
Also wäre eine zweite Abfrage bzw eine for schleife nicht schlecht um ggf. einen Zweiten stack zu erstellen oder dem zweiten Stack nur soviel abzuziehen bis das Limit erreicht ist.
Code dafür: (aus dem Kopf geschrieben)
Code:
int difference = pkItemScroll->GetCount();
if ((item.GetCount() + pkItemScroll->GetCount()) > 200)
diffence = 200 - item.getCount()
item->SetCount(item->GetCount() + diffence);
pkItemScroll->SetCount(pkItemScroll->GetCount() - diffence);
return false;
Grüße
|
|
|
12/07/2016, 11:39
|
#3
|
elite*gold: 2
Join Date: Jun 2015
Posts: 352
Received Thanks: 422
|
Quote:
Originally Posted by Benhero
Und wenn man auf einen Stack mit 199 Stück 50 stück draufzieht  ?
Der zweite wird gelöscht und der erste denke ich wird auf das Limit von 200 gesetzt.
Also wäre eine zweite Abfrage bzw eine for schleife nicht schlecht um ggf. einen Zweiten stack zu erstellen oder dem zweiten Stack nur soviel abzuziehen bis das Limit erreicht ist.
Code dafür: (aus dem Kopf geschrieben)
Code:
int difference = pkItemScroll->GetCount();
if ((item.GetCount() + pkItemScroll->GetCount()) > 200)
diffence = 200 - item.getCount()
item->SetCount(item->GetCount() + diffence);
pkItemScroll->SetCount(pkItemScroll->GetCount() - diffence);
return false;
Grüße
|
Stimmt, das habe ich aus dem Auge gelassen!
War auch eigentlich nur testweise
Werde es nachfügen!
|
|
|
12/07/2016, 12:53
|
#4
|
elite*gold: 964
Join Date: Mar 2008
Posts: 2,634
Received Thanks: 1,637
|
Die Abfrage muss heißen > 200 nicht >= 200
Grüße
|
|
|
12/07/2016, 12:59
|
#5
|
elite*gold: 2
Join Date: Jun 2015
Posts: 352
Received Thanks: 422
|
Quote:
Originally Posted by Benhero
Die Abfrage muss heißen > 200 nicht >= 200
Grüße
|
Habe ich beim Testen auch gemerkt  Mathematik ist nicht unbedingt die Stärke
|
|
|
12/07/2016, 17:49
|
#6
|
elite*gold: 83
Join Date: Nov 2013
Posts: 2,891
Received Thanks: 2,764
|
Code:
int add = MIN(200 - item->GetCount(), item2->GetCount());
item->SetCount(item->GetCount() + add);
item2->SetCount(item2->GetCount() - add);
und anstatt 200 die globale Variable für die Stackgröße nutzen, die gibt es ja irgendwie soweit ich weiß.
|
|
|
12/07/2016, 19:45
|
#7
|
elite*gold: 0
Join Date: May 2016
Posts: 8,679
Received Thanks: 1,638
|
Guter Release
Danke
|
|
|
12/07/2016, 23:42
|
#8
|
elite*gold: 47
Join Date: Feb 2012
Posts: 2,282
Received Thanks: 2,579
|
Quote:
Originally Posted by rollback
Code:
int add = MIN(200 - item->GetCount(), item2->GetCount());
item->SetCount(item->GetCount() + add);
item2->SetCount(item2->GetCount() - add);
und anstatt 200 die globale Variable für die Stackgröße nutzen, die gibt es ja irgendwie soweit ich weiß.
|
Gute Lösung, keine Ahnung was ihr da sonst macht, aber so ist es das einfachste...
MfG
|
|
|
12/07/2016, 23:43
|
#9
|
elite*gold: 399
Join Date: Sep 2011
Posts: 5,323
Received Thanks: 3,937
|
Quote:
Originally Posted by Yiv
Gute Lösung, keine Ahnung was ihr da sonst macht, aber so ist es das einfachste...
MfG
|
Ich finde man sollte nochmal betonen, dass Sens äh rollback das viel schöner gemacht hat
|
|
|
12/08/2016, 00:23
|
#10
|
elite*gold: 2
Join Date: Jun 2015
Posts: 352
Received Thanks: 422
|
Quote:
Originally Posted by rollback
Code:
int add = MIN(200 - item->GetCount(), item2->GetCount());
item->SetCount(item->GetCount() + add);
item2->SetCount(item2->GetCount() - add);
und anstatt 200 die globale Variable für die Stackgröße nutzen, die gibt es ja irgendwie soweit ich weiß.
|
Danke für deine kleine Verbesserung, an sich ist es ja egal, beide Varianten funktionieren.
|
|
|
12/08/2016, 01:11
|
#11
|
elite*gold: 47
Join Date: Feb 2012
Posts: 2,282
Received Thanks: 2,579
|
Quote:
Originally Posted by 'iPeri
Danke für deine kleine Verbesserung, an sich ist es ja egal, beide Varianten funktionieren.
|
Richtig, beide Varianten funktionieren, egal ist es trzdm. nicht. Ohne dich angreifen zu wollen: Der Code von Rollback ist qualitativer, das ist der große und entscheidende Unterschied, den es zwischen Programmierern gibt. Normalerweise produziert jeder funktionierenden Code, aber der eine qualitativ hochwertigen Code und beim anderen läuft es halt.
Ich möchte dich damit nicht persönlich angreifen oder sonst etwas, Rollback hat ja auch nur einen Verbesserungsvorschlag gepostet. Durch Verbesserungsvorschläge lernt man und du solltest einfach ein wenig üben und dich informieren, wie man qualitativ entwickelt.
MfG
|
|
|
12/08/2016, 10:52
|
#12
|
elite*gold: 2
Join Date: Jun 2015
Posts: 352
Received Thanks: 422
|
Quote:
Originally Posted by Yiv
Richtig, beide Varianten funktionieren, egal ist es trzdm. nicht. Ohne dich angreifen zu wollen: Der Code von Rollback ist qualitativer, das ist der große und entscheidende Unterschied, den es zwischen Programmierern gibt. Normalerweise produziert jeder funktionierenden Code, aber der eine qualitativ hochwertigen Code und beim anderen läuft es halt.
Ich möchte dich damit nicht persönlich angreifen oder sonst etwas, Rollback hat ja auch nur einen Verbesserungsvorschlag gepostet. Durch Verbesserungsvorschläge lernt man und du solltest einfach ein wenig üben und dich informieren, wie man qualitativ entwickelt.
MfG
|
C++ ist bisher nicht meine Stärke, dort bin ich auch noch in der Lernphase und kannte die Funktion von Rollback nicht...
Ich finde es ja gut Verbesserungsvorschläge zu bekommen, damit ich dies für meinen eigenen Coding-Stil übernehmen kann.
Angegriffen fühle ich mich keinesfall, da ich halt noch Anfänger in dieser Programmiersprache bin und auch gerne immer neue Ideen und Lösungswege für meine Methoden lernen möchte.
Von der Funktionalität ist es klar, dass es beides geht, jedoch weiß ich auch, dass mein Coding-Stil nicht immer der schönste ist.
|
|
|
 |
Similar Threads
|
Unknown refine scroll item
04/17/2015 - Metin2 Private Server - 3 Replies
I have done some search in goggle and found solution for this that Item Magic Stone" I have to change in Database Field name Value0 with value "from 0 to 1".
But even after changing values. I am getting this error if some player is upgrading.
Syserr:
DoRefineWithScroll: REFINE : Unknown refine scroll item. Value0: 1
|
Unknown Refine Scroll [extended error report]
09/10/2014 - Metin2 Private Server - 3 Replies
How can i fix this error?
Syserr:
DoRefineWithScroll: REFINE : Unknown refine scroll item. Value0: 1
Syslog:
|
[FIX]DoRefineWithScroll: REFINE : Unknown refine scroll
07/27/2013 - Metin2 PServer Guides & Strategies - 9 Replies
Hi, falls euch der fehler DoRefineWithScroll: REFINE : Unknown refine scroll item in der syserr auf den sack geht habe ich hier eine Lösung für euch wie ihr es fixt.
1. Player Datenbank öffnen
2. refine_proto tabelle öffnen
3. Oben links auf "file" und dann auf "Query Table.." klicken
4. folgendes einfügen und oben auf "Run" klicken
UPDATE player.refine_proto SET count0='0' WHERE vnum0='0';
UPDATE player.refine_proto SET count1='0' WHERE vnum1='0';
UPDATE player.refine_proto SET...
|
vk tarvos switcher/ adder
01/13/2013 - Metin2 Trading - 0 Replies
macht gebote wv switchen/ adden ihr wollt. ist nicht handelbar, sondern aus lehrlingstruhe. ihr seht das dann per teamviewer, obs klappt^^
|
2089_svn and 6th/7th bonus adder/switcher.
08/26/2011 - Metin2 Private Server - 0 Replies
Hi,
I've a server started with 2010/11 ServerFiles and with 2089_svn gamefile.
But, I've a problem:
I've in the item_proto client and server the 6/7 bonus/add switcher with both right flag and antiflag, but it doesn't work.
The bonus won't be changed/added.
I need to hex-edit something?
|
All times are GMT +1. The time now is 09:13.
|
|