[RELEASE] Title System + Source/Bin

01/28/2016 16:00 DeadBreakZz#1
[Only registered and activated users can see links. Click Here To Register...]

Hallo. Heute werde ich euch unser Title System Releasen. Dieses ist Easy
anzupassen und ein wirklich mega geiles Feature.
Das ganze haben wir auf Lysium2 eingebaut und verwenden wir auch dort.
Wie sieht es den aus?

[Only registered and activated users can see links. Click Here To Register...]

[Only registered and activated users can see links. Click Here To Register...]



:handsdown:Komm wir nun zum einbauen (Source Game):handsdown:

Char.cpp

Suchen nach:
[Only registered and activated users can see links. Click Here To Register...]


Und schreiben drunter:
[Only registered and activated users can see links. Click Here To Register...]


Char.h

Suchen nach:
[Only registered and activated users can see links. Click Here To Register...]

Und schreiben drunter:
[Only registered and activated users can see links. Click Here To Register...]

Suchen nach:
[Only registered and activated users can see links. Click Here To Register...]

Und schreiben drunter:
[Only registered and activated users can see links. Click Here To Register...]

Suchen nach:
[Only registered and activated users can see links. Click Here To Register...]

Schreiben drunter:
[Only registered and activated users can see links. Click Here To Register...]

[Only registered and activated users can see links. Click Here To Register...]

packet.h

Suchen nach:
[Only registered and activated users can see links. Click Here To Register...]

Schreiben drunter:
[Only registered and activated users can see links. Click Here To Register...]

Suchen nach:
[Only registered and activated users can see links. Click Here To Register...]

Schreiben drunter:
[Only registered and activated users can see links. Click Here To Register...]

questlua_pc.cpp

Suchen nach:
[Only registered and activated users can see links. Click Here To Register...]

Schreiben drunter:
[Only registered and activated users can see links. Click Here To Register...]

Suchen nach:
[Only registered and activated users can see links. Click Here To Register...]

Schreiben drunter:
[Only registered and activated users can see links. Click Here To Register...]

questlua_quest.cpp

Suchen nach:
[Only registered and activated users can see links. Click Here To Register...]

Schreiben drunter:
[Only registered and activated users can see links. Click Here To Register...]

Suchen nach:
[Only registered and activated users can see links. Click Here To Register...]

Schreiben drunter:
[Only registered and activated users can see links. Click Here To Register...]

questpc.cpp

Suchen nach:
[Only registered and activated users can see links. Click Here To Register...]

Schreiben drunter (ersetzen es)
[Only registered and activated users can see links. Click Here To Register...]

Suchen nach:
[Only registered and activated users can see links. Click Here To Register...]

Und schreiben dort drunter:
[Only registered and activated users can see links. Click Here To Register...]

questpc.h

Suchen nach:
[Only registered and activated users can see links. Click Here To Register...]

Und fügen das hinzu:
[Only registered and activated users can see links. Click Here To Register...]

Dann suchen wir nach:
[Only registered and activated users can see links. Click Here To Register...]

Und fügen das hinzu:
[Only registered and activated users can see links. Click Here To Register...]


Nun kommen wir zum Client (Binary)

PythonTextTail.cpp

Sucht nach:
[Only registered and activated users can see links. Click Here To Register...]


Dort drunter schreiben:
[Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...]

Dann hiernach suchen:
[Only registered and activated users can see links. Click Here To Register...]

Und das einfügen:
[Only registered and activated users can see links. Click Here To Register...]

und das hier:
[Only registered and activated users can see links. Click Here To Register...]

Dann sucht ihr hiernach:
[Only registered and activated users can see links. Click Here To Register...]

Und fügt das ein:
[Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...]

Jetzt hiernach suchen:
[Only registered and activated users can see links. Click Here To Register...]

Und das wieder einfügen:
[Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...]

Sucht nach:
[Only registered and activated users can see links. Click Here To Register...]

Fügt das ein:
[Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...]

Sucht hiernach:
[Only registered and activated users can see links. Click Here To Register...]

Jetzt das alles hinzufügen:
[Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...]

Jetzt nach hiernach suchen:
[Only registered and activated users can see links. Click Here To Register...]

Und das drunter schreiben:
[Only registered and activated users can see links. Click Here To Register...]

Das wars. Wenn ich was vergessen habe macht mich doch bitte drauf aufmerksam dann werde ich es hinzufügen.

Quest

PHP Code:
define NUMBER_TITLES table.getn(TITLE_NAMES)
define TABLE_NAME "title_system"
define TITLE_LEVEL "level"

quest title_system begin
    state start begin     
        
function getTitles()
            return 
pc.getqf_table(TABLE_NAME)
        
end
        
        
function isTitleUnlocked(idx)
            return 
pc.getqf_table_idx(TABLE_NAMEidx) != TABLEQF_DEFAULT
        end
        
        
function unlockTitle(idx)
            if 
title_system.isTitleUnlocked(idxthen return end
            
            notice
("Du hast den Titel \'"..TITLE_NAMES[idx][1].."\' freigeschaltet. Herzlichen Glückwunsch!")
            
pc.setqf_table(TABLE_NAMEidx1)
        
end
        
        
function init()
            
pc.initialize_table(TABLE_NAMENUMBER_TITLES)
            
title_system.unlockTitle(TITLE_FRISCHLING)
        
end
        
        
function getCurrentTitle()
            return 
pc.getqf(TITLE_LEVEL)
        
end
        
        
function setCurrentTitle(idx)
            
pc.setqf(TITLE_LEVELidx-1)
            
pc.set_title_level(idx-1)
        
end
    
        when login begin
            local table_len 
pc.getqf_table_length(TABLE_NAME)
            
            -- 
initialize table for existing characters
            
if table_len == 0 then
                title_system
.init()
                
            -- 
check if new titles got added
            
elseif NUMBER_TITLES table_len then
                pc
.extend_table(TABLE_NAMENUMBER_TITLES)
            
end
            
            
-- bugfix for wrong titles
            
if pc.getqf("bug")==0 then
                local temp1 
title_system.isTitleUnlocked(TITLE_DRACHENTOTER)
                
local temp2 title_system.isTitleUnlocked(TITLE_DT)
                if 
temp1 and not temp2 then
                    pc
.setqf_table(TABLE_NAMETITLE_DT1)
                    
pc.setqf_table(TABLE_NAMETITLE_DRACHENTOTER, -1)
                    if 
title_system.getCurrentTitle()==TITLE_DRACHENTOTER-1 then
                        title_system
.setCurrentTitle(TITLE_DT)
                    
end
                end
                
if temp2 and not temp1 then
                    pc
.setqf_table(TABLE_NAMETITLE_DT, -1)
                    
pc.setqf_table(TABLE_NAMETITLE_DRACHENTOTER1)
                    if 
title_system.getCurrentTitle()==TITLE_DT-1 then
                        title_system
.setCurrentTitle(TITLE_DRACHENTOTER)
                    
end
                end
            end
            pc
.setqf("bug"1)
            
            -- 
send current level
            pc
.set_title_level(title_system.getCurrentTitle())

            -- 
generate quest scroll
            
--send_letter("Titel auswählen")
            
            -- 
send quest index to client
            cmdchat
("titleqid "..q.getcurrentquestindex())
            
            -- 
timer that checks if titles got unlocked
            loop_timer
("check_titles"1)
                
        
end
        
        when check_titles
.timer begin
            table
.foreach(TITLE_NAMES, function(i,p)
                if 
p[4] != -and pc.getqf(p[3])>=p[4then
                    title_system
.unlockTitle(i)
                    
pc.delqf(p[3])
                
end
            end
)
            if 
pc.get_real_alignment()<=-20000 then
                title_system
.unlockTitle(TITLE_GEHASST)
            
end
        end
        
        when kill begin
            
if npc.is_pc() and npc.get_level()>=pc.get_level()-10 then
                pc
.setqf(TITLE_NAMES[TITLE_SCHLACHTER][3], pc.getqf(TITLE_NAMES[TITLE_SCHLACHTER][3])+1)
            else
                if 
npc.get_level()>=pc.get_level()-10 then
                    pc
.setqf(TITLE_NAMES[TITLE_ZERSTORER][3], pc.getqf(TITLE_NAMES[TITLE_ZERSTORER][3])+1)
                
end
                
if npc.get_race()==101 then
                    pc
.setqf(TITLE_NAMES[TITLE_TIERQUALER][3], pc.getqf(TITLE_NAMES[TITLE_TIERQUALER][3])+1)
                
end
                
if npc.get_race()==1192 then
                    pc
.setqf(TITLE_NAMES[TITLE_HALBGOTT][3], pc.getqf(TITLE_NAMES[TITLE_HALBGOTT][3])+1)
                
end
            end
        end
        
        when button 
or info begin
            local tTitle 
title_system.getTitles()
            
local tText = {}
            
local nState = {}
            
local tIndex = {}
            
local tBlockedTitles = {TITLE_FARMERTITLE_KONIGTITLE_ERFORSCHER}
            
            -- 
generate text array for selectionmemorize blocked titles
            
for i=1NUMBER_TITLES do
                if 
not table_is_in(tBlockedTitlesithen
                    
if title_system.isTitleUnlocked(ithen
                        table
.insert(tTextTITLE_NAMES[i][1])
                        
table.insert(nState1)
                    else
                        
table.insert(tText"(BLOCKIERT) "..TITLE_NAMES[i][1])
                        
table.insert(nState, -1)
                    
end
                    table
.insert(tIndexi)
                
end
            end
            
            table
.insert(tText"Abbrechen")
            
            
local sel ingame_support.sel(tText"""Titel auswählen")
            if 
sel==table.getn(tTextthen return end
            local idx 
tIndex[sel]
            
            -- 
either change the title if it is unlocked or give out information
            
if nState[sel] != -1 then
                title_system
.setCurrentTitle(idx)
                
syschat("Du hast deinen Titel erfolgreich geändert!")
            else
                
say_title("Titel auswählen: "..TITLE_NAMES[idx][1])
                if 
TITLE_NAMES[idx][3] == "" then
                    say
(TITLE_NAMES[idx][2])
                else
                    if 
idx == TITLE_SCHLACHTER then
                        say
(string.format(TITLE_NAMES[idx][2], pc.getqf(TITLE_NAMES[idx][3])/2TITLE_NAMES[idx][4]/2))
                    else
                        
say(string.format(TITLE_NAMES[idx][2], pc.getqf(TITLE_NAMES[idx][3]), TITLE_NAMES[idx][4]))
                    
end
                end
                wait
()
            
end
            
            
-- generate quest scroll
            send_letter
("Titel auswählen")
        
end
        
        when 33002.chat
."GM: titel cheaten" with pc.is_gm() begin
            pc
.setqf("bug"0)
            
local tTitle title_system.getTitles()
            
local tText = {}
            
            for 
i=1NUMBER_TITLES do
                
tText[i] = TITLE_NAMES[i][1]
            
end
        
            local sel 
ingame_support.sel(tText"""Titel auswählen")
            
            
title_system.setCurrentTitle(sel)
            
syschat("Du hast deinen Titel erfolgreich geändert!")
        
end        
    end
end 
Ich habe euch im Anhang nochmals meine Questlib und die Quest hochgeladen die Sachen könnt ihr euch selber raussuchen. :D

Befolgt einfach das How to.
Ja ihr müsst viel abtippen. Ist wie in der Schule :D

Ich wünsche euch viel Fun mit den System & viel Erfolg beim einbauen!.

Thx geht an .Xero raus weil wir immer die gleiche Ideen haben nur ich sie schneller umsetze höhö.

Thx an Dennis ohne ihn wäre es nie zustande gekommen.
01/28/2016 16:11 DasSchwarzeT#2
Nicht so nett, da die Idee von Inc2 kommt. Trotzdem interessant.
01/28/2016 16:14 DeadBreakZz#3
Quote:
Originally Posted by DasSchwarzeT View Post
Nicht so nett, da die Idee von Inc2 kommt. Trotzdem interessant.
wusste nichtmal das die sowas drinnen haben. Aber dann sag ich auch nen THX an diese Menschen auch wenn die nix damit zutuhen haben xD :D
01/28/2016 16:23 ProfessorEnte#4
Wen juckts schon von wem die Idee kam.
So komplex ist sie nicht, sodass kein anderer auf die selbe Idee kommen könnte.
Das ist Metin2.

Danke.
01/28/2016 16:46 I´m Raylee#5
Quote:
Originally Posted by DasSchwarzeT View Post
Nicht so nett, da die Idee von Inc2 kommt.
Naja das sehe ich nicht so.
Warum?

Es gibt genügend Leute die sich so ein System schon einmal ausgedacht hatten aber leider nie umsetzen konnten, da sie die nötigen Fertigkeiten einfach nicht beherrschten! :(

Klar Inc2 war vermutlich einer der ersten Metin2 P-server mit so einem System (große Klasse!) aber andere große Spiele wie WOW oder ESO haben dieses System genauso :P

Also ich würde nicht sagen das die Idee von Inc2 stammt :)

Zum eigentlichen release...
Danke das du sowas veröffentlichst! <3
Ich finde das total nett von dir! :)

Best regards
Raylee
01/28/2016 18:12 Cyber36#6
Mega geiles Release, die Idee hatte ich schon lange, mir hat es aber an Fertigkeiten gefehlt :/

Danke!!

EDIT: Allerdings hätte ich da noch eine Frage: Kannst du den Code auch als solches hier reinposten und nicht als Bild? ^^ So müsste man nicht jeden Code-Schnipsel noch einmal abtippen.
01/28/2016 19:07 He3o Crysis#7
Danke fürs Releasen, habe ein ähnliches System bereits für Zentoria angefertigt (war fertig, als Inception2 noch Quark im Regal war, nur mal so nebenbei) und freue mich, dass du es der Community zur Verfügung stellst.


Quote:
Originally Posted by DasSchwarzeT View Post
Nicht so nett, da die Idee von Inc2 kommt. Trotzdem interessant.
Trashtalk.

Die Idee stammt nicht von Inception2, sondern wurde von irgendeinem anderen größeren MMORPG "übernommen".
Die Typen von Inc2 sind evtl. auch darauf gekommen, dass ein Titelsystem eine gute Idee wäre, ein solches System existiert jedoch schon weitaus länger als es Inception2 und auch TiReZ, Lefloid, ... (whomever) gibt, außerdem haben sie sich nicht durch nen Patent den alleinigen Anspruch auf ein solches System gesichert. (Wäre sowieso nicht Möglich, aber egal.. darum gehts sowieso nich)

Da schaue ich seit über einem Monat mal wieder hier rein und lese so eine Scheiße.

[Only registered and activated users can see links. Click Here To Register...]
Und jetzt mal ohne Scheiß - Finde den Fehler. Finde ihn. Bitte.. Finde ihn.
01/28/2016 19:23 #dynastie#8
Ist doch egal von wem die Idee stammt. Im Endeffekt nutzt jeder die Files von YMIR und es war auch deren Idee ein solches MMORPG zu entwickeln, da beschwert sich natürlich dann gar keiner.
01/28/2016 20:35 OoKaMi_#9
Was blöd ist, das man die texte nicht kopieren kann.

MFG
01/28/2016 21:45 Noa_#10
Die Idee mit den Schwertern und schlagen hat Metin2 also geklaut, verklagen wir sie.

Nettes Release aber ich würde niemals etwas Releasen was ich auf mein eigenen Server benutze, man könnte evtl bug's aus dem Skript entnehmen.
01/29/2016 00:15 LatexLatte#11
Frage mich, woher die Idee stammt. Die Idee hatte ich einem Kumpel mal geschrieben ( einige Monate her ) und dieser hat sich dann dran gesetzt aber zwischen durch sehr viel Pause gemacht, da es wichtigeres gab. Und nun ist die scheiße Public?

Nicht direkt das Title System, aber dass dort 3 Stufen beim Namen sind.
Also
Gildenbild, Gildenname
IRGENDEIN TEXT (bspw. Prestige 1 etc.)
Level Rang Name

Man kann seine ideen in der M2 Szene echt niemanden Preis geben.. Traurig, traurig
01/29/2016 00:19 .aradossa'#12
Meiner Meinung nach ein unnötiges Feature.
Aber bitte, wer es braucht... :rolleyes:

Grüße,
Aradossa
01/29/2016 00:48 chikitica#13
texts? :(
01/29/2016 01:35 シスイ#14
Quote:
Originally Posted by Socialized View Post
Danke fürs Releasen, habe ein ähnliches System bereits für Zentoria angefertigt (war fertig, als Inception2 noch Quark im Regal war, nur mal so nebenbei) und freue mich, dass du es der Community zur Verfügung stellst.




Trashtalk.

Die Idee stammt nicht von Inception2, sondern wurde von irgendeinem anderen größeren MMORPG "übernommen".
Die Typen von Inc2 sind evtl. auch darauf gekommen, dass ein Titelsystem eine gute Idee wäre, ein solches System existiert jedoch schon weitaus länger als es Inception2 und auch TiReZ, Lefloid, ... (whomever) gibt, außerdem haben sie sich nicht durch nen Patent den alleinigen Anspruch auf ein solches System gesichert. (Wäre sowieso nicht Möglich, aber egal.. darum gehts sowieso nich)

Da schaue ich seit über einem Monat mal wieder hier rein und lese so eine Scheiße.

[Only registered and activated users can see links. Click Here To Register...]
Und jetzt mal ohne Scheiß - Finde den Fehler. Finde ihn. Bitte.. Finde ihn.
Ich habe es gefunden.
Du hast in der Suchmaschine was anderes anstatt 'title' angegeben :o

Quote:
Originally Posted by chikitica View Post
texts? :(
There is no text.
You have to write it.


Danke für diesen wunderbaren System.
Ich werde es mit Sicherheit einbauen.
01/29/2016 05:52 blackout85#15
Sowas gab es 2012 schon mal auf Moon MT2.

Schönes Release, jedoch sind die Bilder schlecht gewählt da evtl Fehler erzeugt werden beim abschreiben.

lg black