[HowTo]8er Bonus/Legendärer Bonus

02/14/2017 00:48 [Dev]Damon#1
Moinsen Leute,


Möchte auch mal wieder was mit euch teilen...
Dieses Tutorial zeigt euch wie ihr einen neuen Bonus hinzufügt.
Dieser Funktioniert wie die 6/7 Bonis von Metin2.
Eigene Items (72051, 72052)
Eigene Table für freie Attributwahl

Habe es noch nicht getestet, sollte aber eigentlich funktionieren!
Werde es eventuell nachher oder morgen Abend testen.
Sollten Probleme oder Bugs auftreten, bescheid sagen!


Wünsche euch sonst viel Spaß damit...



Wichtig!!! Ihr müsst in der item.sql attrtype7 und attrvalue7 hinzufügen
Sollte klar sein wie das geht!


Download:
[Only registered and activated users can see links. Click Here To Register...]
02/14/2017 02:51 DarkPhoenix95#2
Werde es im Laufe des Tages einbauen und testen, wenn alles funktioniert liebe ich dich! xD
02/14/2017 05:44 悪地城#3
Hooooly Moly 8er Boni wird neue Metin2 Revolution.

Da bin ich doch mal gespannt wer es schaft dies gut umzusetzen in PvP so wie in PvM...

Danke für den RLS ;)

Mfg .Ƥercy
02/14/2017 21:42 [Dev]Damon#4
Screen:
02/16/2017 15:01 Computerfreek#5
Quote:
Originally Posted by #Metho View Post
Danke für's Release. Du hast echt einen sehr geordneten Coding Stil. Machst auch preprocessor directives, zu deinem Content. Jedoch darfst du nicht soviel von Metin2 copy&pasten, weil sonst das ganze drunter leidet.

PHP Code:
std::vector<intavail;

for (
int i 0MAX_APPLY_NUM; ++i) {
    const 
TItemAttrTableg_map_itemNenoRare[i];

    if (
r.dwApplyIndex != && r.bMaxLevelBySet[nAttrSet] > && HasNenoRareAttr(i) != true) {
        
avail.push_back(i);
    }
}

const 
TItemAttrTableg_map_itemNenoRare[avail[number(0avail.size() - 1)]]; 
Sowas ist schrecklich, wieso einen std::vector<> dazu nutzen?^^

Und es gäbe noch viele andere Beispiele, aber grundsätzlich hast du die Ahnung von der Materie, nur machst du das nach, was der Metin2 Source dir vorgibt... was ich bisschen Schade finde :)
Ich denke du solltest bei JavaScript bleiben.
02/16/2017 15:31 Computerfreek#6
Quote:
Originally Posted by #Metho View Post
Weil es ja auch so schlau ist einen Vector zu erstellen. Dem hochgezählte Integer-Werte als Elemente zu verpassen, bei dem sich die Schlüssel und die Element-Werte übereinstimmen. Darauffolgend die Grösse des Vektors abzufragen dies -1 zu rechnen, es konvertieren zu lassen um dann mit der resultierenden Zahl wiederum das letzte Element des Vektors zu bekommen, dessen Wert wiederum die eben vorher resultierende Zahl ist?

Aber du hast ja sicherlich mehr Ahnung in C++, also wirst du mir das bestimmt erklären können, was für einen Sinn das ergibt, oder?
Ach, ein std::vector hat also Key und Value? Interessant.
Da wird was konvertiert? Auch interessant.
Er nimmt nur das letzte Element im Vector? Soso.

Ganz ehrlich: Was du da schreibst zeigt recht deutlich, dass dein Verständnis der Sprache doch sehr begrenz ist.
Der Code ist vollkommen in Ordnung und macht so auch Sinn. Es gibt bestimmt noch einen Weg das ein bisschen hübscher zu machen, aber den gibt es immer.

Wie ich schon gesagt hab, bleib bei JavaScript.
02/16/2017 15:56 He3o Crysis#7
@[Only registered and activated users can see links. Click Here To Register...] wollte gestern genau das selbe anmerken, habs mir dann aber verkniffen.

In dem Fall fällt mir auf die schnelle jetzt auch nicht ein, wie man das besser lösen könnte.
Es ist übersichtlich und erfüllt seinen Zweck.
Gute "Arbeit"

@[Only registered and activated users can see links. Click Here To Register...]:
Du prahlst meiner Meinung nach sehr oft mit Halbwissen.
Das spricht nicht besonders für dich und du stellst dich selbst in schlechtes Licht.
Gibt da so einen Spruch...
Wenn man selbst keine Ahnung hat lieber mal....
02/16/2017 16:08 Computerfreek#8
Quote:
Originally Posted by #Metho View Post
In welcher Welt haben Vektoren den bitte keine Keys? Nur weil sie numerisch sind sind es keine Schlüssel sondern... ?


Dei grundlegende Funktionalität, des von mir angesprochenen ist:

PHP Code:
std::vector<intavail;

for (
int i 010; ++i) {
    
avail.push_back(i);
}

std::cout << avail[avail.size() - 1] << std::endl
Welches nichts anderes ist als:

PHP Code:
int j 0;

for (
int i 010; ++i) {
    
j++;
}

std::cout << << std::endl
Dazu braucht man keinen Vektor. Und bekanntlich ist vector.size() - 1, der Schlüssel für das letzte Element des Vektors.

Jetzt kannst du mich gerne belehren, was number( ... ) macht, wenn keine Konvertierung zu einer Zahl/Zahlenformat...
Und schon haben wir's. number(0, N) gibt in dem Fall zufällige Zahl zwischen 0 und N aus. Und frage ich mich, wie du eine Sequenz von Zahlen auf eine einzelne Zahl abbilden willst.
02/16/2017 16:51 He3o Crysis#9
Grüße Alle! :o

Quote:
Originally Posted by #Metho View Post
Ich habe behauptet Vektoren haben Schlüssel. Du hast das Gegenteil behauptet, womit du falsch liegst.

Ich habe behauptet, dass das ganze einfacher geht. Was so stimmt:

PHP Code:
int j 0;

for (
int i 010; ++i) {
    
j++;
}

std::cout << number(0j) << std::endl
Nur wusste ich nicht, dass number( ... ) eine Zufallszahl zwischen xy zurückgibt.

Ich bin vielleicht einer der zu oft Dinge kritisiert, jedoch habe ich nicht Unrecht und wollte hierbei nur einen besseren Lösungsvorschlag unterbreiten.

edit:

Und ja...



Er nimmt nur das letzte Element des Vektors, welches dann als an number(0, *letztes Element des Vektors*) übergeben wird und das wird dann wieder als Schlüssel verwendet, um den genau gleiche Wert wieder zu bekommen, weil Schlüssel und Wert des Elements identisch sind.

Wie Socialized so schön sagte... einfach ma' 's Maul halten.
Hast du dir den Code eigentlich überhaupt durchgelesen bevor du den Typen angefangen hast zu kritisieren?

Was du vorschlägst ist kompletter Bullshit da der Vektor nicht eine Reihe von aufeinanderfolgenden Zahlen enthält.
Ich weiß nicht ob dir die if-Condition nicht aufgefallen ist, aber in dem array könnte auch folgende Zahlenreihe stehen: [0,7,12,27,54,69]
(Ich sehe da jetzt keinen break, oder etwas in die Richtung)

Jetzt erklär mir mal bitte, wie du das mit dem Increment Operator auf eine Zahl umsetzen willst.

Außerdem kann ich bei nem Vektor keinen key_type erkennen.
Ein Vektor nimmt als template parameter nur nen value_type, aber hey, erstmal bashen, wa?

Das heißt Position nicht Key.

Dieses number-Ding von dem du da die ganze Zeit schwafelst ist eig. auch ziemlicher Bullshit, da es ohne den Vektor keinen Sinn macht überhaupt diese random Position zu ermitteln. Du nutzt die zufällige Position ja um auf die Zahl in dem Vektor zuzugreifen und nicht die Zahl direkt.

Code:
int j = 0;

for (int i = 0; i < 10; ++i) {
    j++;
}

std::cout << j << std::endl;

//ernsthaft?
//wie wärs mit

int j = 10;
02/16/2017 23:18 DasSchwarzeT#10
Quote:
Originally Posted by #Metho View Post
@[Only registered and activated users can see links. Click Here To Register...]

PHP Code:
int j 0;

for (
int i 010; ++i) {
    
/// if ( ... ) {
        
+= i;
    
// }
}

std::cout << << std::endl
Was ändert das bitte an meiner Aussage. Ich wusste nicht was die number-Funktion bewirkt.
Index != Key
02/16/2017 23:33 _bufferoverflowin#11
Quote:
Originally Posted by #Metho View Post
@[Only registered and activated users can see links. Click Here To Register...]

PHP Code:
int j 0;

for (
int i 010; ++i) {
    
/// if ( ... ) {
        
+= i;
    
// }
}

std::cout << << std::endl
Was ändert das bitte an meiner Aussage. Ich wusste nicht was die number-Funktion bewirkt.
das ändert dass ein vector keine keys sondern positionen (index) hat
verwechselst glaube ich einen vector mit einer map oder einem hash

Vector
Vectors are sequence containers representing arrays that can change in size.

Map
Maps are associative containers that store elements formed by a combination of a key value and a mapped value, following a specific order.

ein index ist kein key
ein index wird gewöhnlicher weise auf die adresse des ersten elements gerechnet

adresse element 1 (index 0): 0x46B7C4
adresse index 5: 0x46B7C9

beispiel:

du hast folgenden code:

char* str = "hallo";

der pointer zeigt auf einen const string im ram
die variable str beinhaltet die referenz (speicher adresse) zu dem ersten element (buchstabe "h")

wenn du nun index 2 aufrufst (str[2]) würde es so aussehen:

return str+2;

also adresse von "h" + 2 = "l"

ist zwar ein char pointer ist aber das gleiche prinzip
02/22/2017 23:52 DerDiss#12
Vacation hatte diese Legendary Bonis waren nicht schlecht!
02/23/2017 17:09 DasSchwarzeT#13
Quote:
Originally Posted by DerDiss View Post
Vacation hatte diese Legendary Bonis waren nicht schlecht!
Vacation war halt auch einfach grandios.. War btw. bei Vacation aber einfach über 6/7 geregelt, da diese keine andere Verwendung hatten.
03/03/2017 21:01 BassBox007#14
nunja ein HowTo ist es ja nicht du hast kaum Infos da gelassen wie es eingefügt wird.
Wäre Cool wenn du ein RICHTIGES HowTo darüber machen könntest würde sicher sehr vielen helfen :)

MFG BassBox007
03/18/2017 22:43 .KingDarkness#15
Die 2 Items werden als normale Switcher erkannt.
DB und Game compiled und eingefügt ohne fehler
Das hinzufügeitem wird als normaler boni-adder erkannt und der switcher funktioniert garnicht.