Register for your free account! | Forgot your password?

You last visited: Today at 01:38

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

Advertisement



[Release] Client-Interface {"illumina"}

Discussion on [Release] Client-Interface {"illumina"} within the Metin2 PServer Designs, Websites & Scripts forum part of the Metin2 Private Server category.

Reply
 
Old 03/18/2016, 07:55   #151
 
elite*gold: 2
Join Date: Jun 2013
Posts: 1,063
Received Thanks: 1,725
Einfach ein uebermenschliches Design, Danke!
ProfessorEnte is offline  
Old 03/18/2016, 10:31   #152


 
Mr. 'Avenue™'s Avatar
 
elite*gold: 222
The Black Market: 101/0/0
Join Date: Oct 2012
Posts: 2,361
Received Thanks: 3,388
Hab vorhin im Source noch was gefunden, um die Questscrolls im CharacterWindow bei der QuestPage zu ändern:

UserInterface/PythonQuest.cpp
Code:
PyObject * questGetQuestData(PyObject * poSelf, PyObject * poArgs)
{
	int iIndex;
	if (!PyTuple_GetInteger(poArgs, 0, &iIndex))
		return Py_BadArgument();

	CPythonQuest::SQuestInstance * pQuestInstance;
	if (!CPythonQuest::Instance().GetQuestInstancePtr(iIndex, &pQuestInstance))
		return Py_BuildException("Failed to find quest by index %d", iIndex);

	CGraphicImage * pImage = NULL;
	if (!pQuestInstance->strIconFileName.empty())
	{
		std::string strIconFileName;
		strIconFileName = "d:/ymir work/ui/game/quest/questicon/";
		strIconFileName += pQuestInstance->strIconFileName.c_str();
		pImage = (CGraphicImage *)CResourceManager::Instance().GetResourcePointer(strIconFileName.c_str());
	}
	else
	{
		{
			// Illumina Questicon
			std::string strIconFileName = "illumina/images/icons/special/quest_open.tga";
			pImage = (CGraphicImage *)CResourceManager::Instance().GetResourcePointer(strIconFileName.c_str());
		}
	}

	return Py_BuildValue("sisi",	pQuestInstance->strTitle.c_str(),
									pImage,
									pQuestInstance->strCounterName.c_str(),
									pQuestInstance->iCounterValue);
}
Mr. 'Avenue™ is offline  
Old 03/18/2016, 16:57   #153
 
xCPx's Avatar
 
elite*gold: 20
Join Date: Jun 2011
Posts: 2,897
Received Thanks: 3,336
Quote:
Originally Posted by Mr. 'Avenue™ View Post
Hab vorhin im Source noch was gefunden, um die Questscrolls im CharacterWindow bei der QuestPage zu ändern:

UserInterface/PythonQuest.cpp
Code:
PyObject * questGetQuestData(PyObject * poSelf, PyObject * poArgs)
{
	int iIndex;
	if (!PyTuple_GetInteger(poArgs, 0, &iIndex))
		return Py_BadArgument();

	CPythonQuest::SQuestInstance * pQuestInstance;
	if (!CPythonQuest::Instance().GetQuestInstancePtr(iIndex, &pQuestInstance))
		return Py_BuildException("Failed to find quest by index %d", iIndex);

	CGraphicImage * pImage = NULL;
	if (!pQuestInstance->strIconFileName.empty())
	{
		std::string strIconFileName;
		strIconFileName = "d:/ymir work/ui/game/quest/questicon/";
		strIconFileName += pQuestInstance->strIconFileName.c_str();
		pImage = (CGraphicImage *)CResourceManager::Instance().GetResourcePointer(strIconFileName.c_str());
	}
	else
	{
		{
			// Illumina Questicon
			std::string strIconFileName = "illumina/images/icons/special/quest_open.tga";
			pImage = (CGraphicImage *)CResourceManager::Instance().GetResourcePointer(strIconFileName.c_str());
		}
	}

	return Py_BuildValue("sisi",	pQuestInstance->strTitle.c_str(),
									pImage,
									pQuestInstance->strCounterName.c_str(),
									pQuestInstance->iCounterValue);
}
Bist du dir sicher, dass der Part überhaupt mal irgendwo genutzt wird?

ich hab keine Datei gefunden wo der Befehl überhaupt verwendet wird
xCPx is offline  
Old 03/18/2016, 17:24   #154
 
King Sora's Avatar
 
elite*gold: 6394
Join Date: Nov 2008
Posts: 1,225
Received Thanks: 4,766
Quote:
Originally Posted by Lord Metho View Post
@, leider gibts keine solche leichte Rotate etc. Möglichkeit, er müsste gebenenfalls ein Image mit (.rotate, .paste, .crop) Zuschneiden / Drehen / Zuschneiden / Zurückdrehen bearbeiten.

Verstehe aber ohnehin zuwenig C# um deine Methode genau nachvollziehen zu können
Ich weiß zu 100% dass es eine rotate Möglichkeit in Metin2 gibt.

Quote:
Originally Posted by xCPx View Post
In C# / C++ ist das kein Problem, das weis ich selbst zu gut.
Jedoch ist es in der bestehenden Metin2 Funktionalität bisher leider nicht bzw kaum ohne grössere Performance Verluste möglich (Es sei denn der Code soll auch n C++ Part fürn Source beinhalten, dann ist das wiederum recht einfach)


Glaub mir freiwillig mach ichs auch nicht mit Bildern ^^
Der Code lässt sich von der Logik her auch problemlos in Python umsetzen. Als Poccix sich noch am Code versucht hat, war es ja auch möglich.

Vielleicht kennst du nur die rotate Methode nicht, wie schon erwähnt wird diese standardmäßig sowieso irgendwo verwendet und ist auch ohne source Änderungen zugänglich.

#Edit:
Die Methode sollte "SetRotation(value)" heißen, und zmindest (evt. auch weitere Objekte) "ExpandedImage" Objekte sollten diese Methode haben. Leider weiß ich nicht mehr was diese Methode für einen Wert erwartet, also ob es ein Radian, Degree oder Prozentwert ist etc. müsstenst du ausprobieren.

Lg.
King Sora is offline  
Thanks
1 User
Old 03/18/2016, 17:39   #155


 
Mr. 'Avenue™'s Avatar
 
elite*gold: 222
The Black Market: 101/0/0
Join Date: Oct 2012
Posts: 2,361
Received Thanks: 3,388
Quote:
Originally Posted by King Sora View Post
Ich weiß zu 100% dass es eine rotate Möglichkeit in Metin2 gibt.



Der Code lässt sich von der Logik her auch problemlos in Python umsetzen. Als Poccix sich noch am Code versucht hat, war es ja auch möglich.

Vielleicht kennst du nur die rotate Methode nicht, wie schon erwähnt wird diese standardmäßig sowieso irgendwo verwendet und ist auch ohne source Änderungen zugänglich.

#Edit:
Die Methode sollte "SetRotation(value)" heißen, und zmindest (evt. auch weitere Objekte) "ExpandedImage" Objekte sollten diese Methode haben. Leider weiß ich nicht mehr was diese Methode für einen Wert erwartet, also ob es ein Radian, Degree oder Prozentwert ist etc. müsstenst du ausprobieren.

Lg.
Erwartet soweit ich weiß float als Wert.

Code:
PyObject * wndImageSetRotation(PyObject * poSelf, PyObject * poArgs)
{
	UI::CWindow * pWindow;
	if (!PyTuple_GetWindow(poArgs, 0, &pWindow))
		return Py_BuildException();
	float fRotation;
	if (!PyTuple_GetFloat(poArgs, 1, &fRotation))
		return Py_BuildException();

	((UI::CExpandedImageBox*)pWindow)->SetRotation(fRotation);

	return Py_BuildNone();
}




Quote:
Originally Posted by xCPx View Post
Bist du dir sicher, dass der Part überhaupt mal irgendwo genutzt wird?

ich hab keine Datei gefunden wo der Befehl überhaupt verwendet wird
Ja. uiCharacter.py
Code:
def RefreshQuest(self):
	[...]
	for i in questRange[:questCount]:
		(questName, questIcon, questCounterName, questCounterValue) = quest.GetQuestData(self.questShowingStartIndex+i)
Mr. 'Avenue™ is offline  
Old 03/18/2016, 17:47   #156
 
elite*gold: 0
Join Date: Apr 2015
Posts: 428
Received Thanks: 361
@,

ich habe es unverständlich formuliert, was du sagst ist mir ebenfalls bewusst, jedoch reicht es nicht das Bild zu rotieren. (Ich gehe dabei immer von einem kompletten Bild aus und keinen 6 Einzelteilen.) Ich konnte deine Überlegung mit 6/5 Einzelteilen nicht nachvollziehen, da mir dazu die nötigen C# Kenntnisse fehlen. Meine Überlegung war es, dass man das Bild so ausschneiden müsste, dass das ganze einem Kuchen ähnelt (radial). Man nehme also den Prozentsatz des aktuellen Lebens/maximalen Lebens und schneidet ein Kuchenstück vom Bild ab. Nun könnte man auch sagen, es reicht, wenn man das Bild rotiert, somit würde sich der obere Teil der Anzeige immer mit Drehen. Dies ist aber ganz allein deine Entscheidung, wie du dir das vorgestellt hast, ich hoffe ich konnte die Sachlage etwas erklären.

Anscheinend hat xCPx, im Gegensatz zu mir, deine C# Überlegungsweise nachvollziehen können und ist immernoch der festen Meinung es ginge nicht perfomance effizient, da fehlen mir leider die Kenntnisse von C#.

Würde sich Poccix mit der Lösung präsentieren, wäre dies sicherlich von Vorteil, hoffen wir darauf er den Ausschnitt aus seinem Py noch findet :P
#Metho is offline  
Old 03/18/2016, 18:03   #157
 
xCPx's Avatar
 
elite*gold: 20
Join Date: Jun 2011
Posts: 2,897
Received Thanks: 3,336
Nicht machbar habe ich so nie gesagt, sondern lediglich sehr Performancelastig.

Habe dafür sogar ne Klasse, nur wie gesagt sehr performancelastig....
Schaut aber nicht schlecht aus.


Code:
class LoadingCircle(Window):
	def __init__(self, clockwise = True):
		Window.__init__(self)
		self.FullImage = None
		self.EmptyImage = ExpandedImageBox()
		self.EmptyImage.AddFlag("not_pick")
		self.EmptyImage.SetParent(self)
		self.StartRotation = 0
		self.MaxAngle = 360
		self.clockwise = clockwise
		self.Show()
	def __del__(self):
		self.Hide()
		Window.__del__(self)
	def AddFullImage(self, img,width):
		self.FullImage	= []
		for i in xrange(0,360):
			part = ExpandedImageBox()
			part.AddFlag("not_pick")
			part.LoadImage(img)
			part.SetSize(width, 1)
			part.SetParent(self)
			part.SetPosition(0, width/2)
			part.Show()
			part.SetRotation(self.StartRotation + i)
			self.FullImage.append(part)	
			pass
	def AddEmptyImage(self, img, width, height):		
		self.EmptyImage.LoadImage(img)
		self.EmptyImage.SetSize(width, height)		
		self.EmptyImage.Show()
	def SetStartRotation(self, rotation):
		self.StartRotation = rotation
	def SetMaxAngle(self, angle):
		self.MaxAngle = angle
	def SetValue(self, actual, _max):
		perc =  minmax(0.0,float(actual) / float(_max), 1.0) * 100.0
		intPerc = FloatRountToInt(0.0, perc * float(self.MaxAngle)/100.0, float(self.MaxAngle)	)
		for i in xrange(0, 360):
			i2 = i
			if(self.clockwise == False):
				i2 = self.MaxAngle-1-i
			if(i <= intPerc):
				self.FullImage[i2].Show()
			else:
				self.FullImage[i2].Hide()

hab meine basic functions vergessen...
Code:
def minmax(_min,act,_max):
	return max(_min, min(act, _max))
def FloatRountToInt(_min, r, _max):
	r2 = int(r)
	if( int(r*2.0) >= (r2*2)+1):
		r2 = r2+1
	_min = int(_min)
	_max = int(_max)
	return int(minmax(_min, r2, _max))
xCPx is offline  
Old 03/18/2016, 18:44   #158
 
King Sora's Avatar
 
elite*gold: 6394
Join Date: Nov 2008
Posts: 1,225
Received Thanks: 4,766
Quote:
Originally Posted by Lord Metho View Post
@,

ich habe es unverständlich formuliert, was du sagst ist mir ebenfalls bewusst, jedoch reicht es nicht das Bild zu rotieren. (Ich gehe dabei immer von einem kompletten Bild aus und keinen 6 Einzelteilen.) Ich konnte deine Überlegung mit 6/5 Einzelteilen nicht nachvollziehen, da mir dazu die nötigen C# Kenntnisse fehlen. Meine Überlegung war es, dass man das Bild so ausschneiden müsste, dass das ganze einem Kuchen ähnelt (radial). Man nehme also den Prozentsatz des aktuellen Lebens/maximalen Lebens und schneidet ein Kuchenstück vom Bild ab. Nun könnte man auch sagen, es reicht, wenn man das Bild rotiert, somit würde sich der obere Teil der Anzeige immer mit Drehen. Dies ist aber ganz allein deine Entscheidung, wie du dir das vorgestellt hast, ich hoffe ich konnte die Sachlage etwas erklären.

Anscheinend hat xCPx, im Gegensatz zu mir, deine C# Überlegungsweise nachvollziehen können und ist immernoch der festen Meinung es ginge nicht perfomance effizient, da fehlen mir leider die Kenntnisse von C#.

Würde sich Poccix mit der Lösung präsentieren, wäre dies sicherlich von Vorteil, hoffen wir darauf er den Ausschnitt aus seinem Py noch findet :P
Naja, man sollte sich zumindest die slices ansehen, damit meine Überlegung nachvollziehen kann.
Da muss man nicht unbedingt C# dazu können, weil man das Programm ja auch ausführen kann.


Quote:
Originally Posted by xCPx View Post
Nicht machbar habe ich so nie gesagt, sondern lediglich sehr Performancelastig.

Habe dafür sogar ne Klasse, nur wie gesagt sehr performancelastig....
Schaut aber nicht schlecht aus.
Hast du denn auch eine Begründung warum es sehr performance lastig sein soll? - Meiner Meinung nach ist das ein relativ effizienter Weg das mit wenig Code und wenig Bildern hin zu bekommen. DirectX ist nicht gerade schlecht, was die Verwaltung und Manipulation von Texturen (Bildern) angeht.

Lg.
King Sora is offline  
Old 03/18/2016, 18:52   #159
 
xCPx's Avatar
 
elite*gold: 20
Join Date: Jun 2011
Posts: 2,897
Received Thanks: 3,336
Quote:
Originally Posted by King Sora View Post
Naja, man sollte sich zumindest die slices ansehen, damit meine Überlegung nachvollziehen kann.
Da muss man nicht unbedingt C# dazu können, weil man das Programm ja auch ausführen kann.




Hast du denn auch eine Begründung warum es sehr performance lastig sein soll? - Meiner Meinung nach ist das ein relativ effizienter Weg das mit wenig Code und wenig Bildern hin zu bekommen. DirectX ist nicht gerade schlecht, was die Verwaltung und Manipulation von Texturen (Bildern) angeht.

Lg.
Es gibt nen Unterschied zwischen Direct X und Direct X via py.
Wenn was unter C++ über direct x ohne Probleme läuft ( < 1s) heist es noch lange nicht dass das im Clienten so ist, dort genehmigt sich dieselbe Aktion teils > 10s

Aber ja, solange man nicht 1000 davon verwendet sollte es keine Probleme geben, so wie ich es oben gemacht hab.
Nur denk ich immer ein wenig an die performance ^^
xCPx is offline  
Old 03/18/2016, 19:06   #160
 
King Sora's Avatar
 
elite*gold: 6394
Join Date: Nov 2008
Posts: 1,225
Received Thanks: 4,766
Quote:
Originally Posted by xCPx View Post
Es gibt nen Unterschied zwischen Direct X und Direct X via py.
Wenn was unter C++ über direct x ohne Probleme läuft ( < 1s) heist es noch lange nicht dass das im Clienten so ist, dort genehmigt sich dieselbe Aktion teils > 10s

Aber ja, solange man nicht 1000 davon verwendet sollte es keine Probleme geben, so wie ich es oben gemacht hab.
Nur denk ich immer ein wenig an die performance ^^
Nach dieser Logik müsste ja das Gleiche für alle anderen Funktionen gelten, egal ob Rotationen oder das Zeichnen anderer Bilder. xD

Ist ja auch egal, wenn es dir möglich ist, bitte versuchs so zu machen wie es ursprünglich geplant war. Das Schohnt auf jeden Fall die Größe des Clients / des Designs.

Lg.
King Sora is offline  
Old 03/18/2016, 19:30   #161
 
xCPx's Avatar
 
elite*gold: 20
Join Date: Jun 2011
Posts: 2,897
Received Thanks: 3,336
Quote:
Originally Posted by King Sora View Post
Nach dieser Logik müsste ja das Gleiche für alle anderen Funktionen gelten, egal ob Rotationen oder das Zeichnen anderer Bilder. xD

Ist ja auch egal, wenn es dir möglich ist, bitte versuchs so zu machen wie es ursprünglich geplant war. Das Schohnt auf jeden Fall die Größe des Clients / des Designs.

Lg.
Aktuell hab ich ne Version, wofür ich leider deine Gauges zerschneiden musste :/

ich nehm die Gauges auf 1px höhe und bastel mir daraus den ganzen kreis. schaut nichtmal schlecht aus
Und spart zudem 60kb



Verwendete Bilder für die Hp/Mp Anzeige im Anhang, kannst sie ja anpassen wenn du willst.

Code Dazu:


Functions:
Code:
def minmax(_min,act,_max):
	return max(_min, min(act, _max))
def FloatRountToInt(_min, r, _max):
	r2 = int(r)
	if( int(r*2.0) >= (r2*2)+1):
		r2 = r2+1
	_min = int(_min)
	_max = int(_max)
	return int(minmax(_min, r2, _max))
LoadingCircle:
Code:
class LoadingCircle(Window):
	def __init__(self, clockwise = True):
		Window.__init__(self)
		self.FullImage = None
		self.EmptyImage = ExpandedImageBox()
		self.EmptyImage.AddFlag("not_pick")
		self.EmptyImage.SetParent(self)
		self.StartRotation = 0
		self.MaxAngle = 360
		self.clockwise = clockwise
		self.curPct = 0
		self.Show()
	def __del__(self):
		self.Hide()
		Window.__del__(self)
	def AddFullImage(self, img,width):
		self.FullImage	= []
		for i in xrange(0,360):
			part = ExpandedImageBox()
			part.AddFlag("not_pick")
			part.LoadImage(img)
			part.SetSize(width, 1)
			part.SetParent(self)
			part.SetPosition(0, width/2)
			part.Show()
			part.SetRotation(self.StartRotation + i)
			self.FullImage.append(part)	
			pass
	def AddEmptyImage(self, img, width, height):		
		self.EmptyImage.LoadImage(img)
		self.EmptyImage.SetSize(width, height)		
		self.EmptyImage.Show()
	def SetStartRotation(self, rotation):
		self.StartRotation = rotation
	def SetMaxAngle(self, angle):
		self.MaxAngle = angle
	def SetValue(self, actual, _max):
		perc =  minmax(0.0,float(actual) / float(_max), 1.0) * 100.0
		intPerc = FloatRountToInt(0.0, perc * float(self.MaxAngle)/100.0, float(self.MaxAngle)	)
		if(intPerc == self.curPct):
			return
		self.curPct = intPerc
		for i in xrange(0, 360):
			i2 = i
			if(self.clockwise == False):
				i2 = self.MaxAngle-1-i
			if(i <= intPerc):
				self.FullImage[i2].Show()
			else:
				self.FullImage[i2].Hide()
HpMPBar:
Code:
	class HpMPBar(Window):
		def __init__(self, parent):
			Window.__init__(self)
			self.SetParent(parent)
			self.SetPosition(137, 42)
			mp = LoadingCircle(False)
			mp.SetParent(self)
			mp.SetStartRotation(0)
			mp.SetMaxAngle(90)
			mp.AddEmptyImage("illumina/controls/special/taskbar/gauge_mp/gauge_mp_empty.tga",104, 104)
			mp.AddFullImage("illumina/controls/special/taskbar/gauge_mp/gauge_mp_fill_0.tga", 104)
			self.mp = mp
			hp = LoadingCircle()
			hp.SetParent(self)
			hp.SetStartRotation(91)
			hp.SetMaxAngle(270)
			hp.AddEmptyImage("illumina/controls/special/taskbar/gauge_hp/gauge_hp_empty.tga",104, 104)
			hp.AddFullImage("illumina/controls/special/taskbar/gauge_hp/gauge_hp_fill_00.tga", 104)
			self.hp = hp

			self.Show()
		def OnUpdate(self):
			import player
			curHP = player.GetStatus(player.HP)
			maxHP = player.GetStatus(player.MAX_HP)
			curSP = player.GetStatus(player.SP)
			maxSP = player.GetStatus(player.MAX_SP)
			self.hp.SetValue(curHP, maxHP)
			self.mp.SetValue(curSP	, maxSP	)
		def __del__(self):
			self.Hide()
			Window.__del__(self)
Attached Files
File Type: rar Illumina.rar (5.0 KB, 152 views)
xCPx is offline  
Thanks
1 User
Old 03/18/2016, 19:40   #162
 
King Sora's Avatar
 
elite*gold: 6394
Join Date: Nov 2008
Posts: 1,225
Received Thanks: 4,766
Quote:
Originally Posted by xCPx View Post
Aktuell hab ich ne Version, wofür ich leider deine Gauges zerschneiden musste :/

ich nehm die Gauges auf 1px höhe und bastel mir daraus den ganzen kreis. schaut nichtmal schlecht aus
Und spart zudem 60kb



Verwendete Bilder für die Hp/Mp Anzeige im Anhang, kannst sie ja anpassen wenn du willst
Das ist zwar keine schlechte Idee, sieht aber meiner Meinung nach nicht gut aus. Es ist bleibt zwar deine Entscheidung wie du es machst, aber ich bin da aus dem Grund dass es so einfach viel schlechter aussieht, dagegen.

Da man auch nur so einen kleinen Spielraum hat, hat man auch kaum Möglichkeiten da etwas zu verbessern.
King Sora is offline  
Old 03/18/2016, 20:57   #163


 
Mr. 'Avenue™'s Avatar
 
elite*gold: 222
The Black Market: 101/0/0
Join Date: Oct 2012
Posts: 2,361
Received Thanks: 3,388
paar Controls für die ui.py
Sind größtenteils aus Yivs Controls zusammengebastelt.







Mr. 'Avenue™ is offline  
Thanks
4 Users
Old 03/19/2016, 00:18   #164
 
Yiv's Avatar
 
elite*gold: 47
Join Date: Feb 2012
Posts: 2,282
Received Thanks: 2,579
@:
Ich hoffe, Poccix hat nichts dagegen, habe gerade den alten DEV-Client gefunden, dort hat er folgendes gemacht, was einwandfrei funktionierte:

Kann man zwar besser machen, aber das war bisher sowieso noch kein optimierter Code, also sollte man ihm Unschönheiten nicht übel nehmen

MfG
Yiv is offline  
Thanks
2 Users
Old 03/19/2016, 13:03   #165
 
UltraShock's Avatar
 
elite*gold: 50
Join Date: Nov 2014
Posts: 400
Received Thanks: 516
Hi Sora,
viel zusagen gibt es hier nicht, einfach Staunen und Danke sagen
die Krittiker können auch selber hier Staunen, so nochmal Danke dir
sehr und auch die anderen die dir dabei helfen dieses Interface zu
Realisieren.

Ich weiß man kann von dir nicht genug bekommen und man das nehmen soll
was du uns Zurverfügung stellst, aber dennoch habe ich eine Bitte vlt auch
jemand anders der gleich denkt und zwar, die Buttons 1x Leer speichern ohne
icons oder sonstiges drauf oder halt eine kleine PSD davon das man selber
ohne dich zu fragen nach wunsch buttons erstellt.
UltraShock is offline  
Reply


Similar Threads Similar Threads
[Release] Client Design {"A Day in Paradise"} ~ by Sora
10/22/2016 - Metin2 PServer Designs, Websites & Scripts - 199 Replies
Heyho, ich überlege schon lange ob ich dieses Design pub. machen soll oder nicht. Ich weiß nun das dieses Design schon etwas weiter verbreitet ist als ich es eigentlich wollte, geschickt habe ich es nur an 2 Personen (RealFreak und Downii), leider haben es nun viel mehr Leute. Das Design war uhrsprünglich für Downiis Server "DoofMt2" gedacht, nachdem er jedoch sein Projekt beendet hat und mir seit dem kein einziges Wort mehr zurückschreibt, werde ich das Design nun Pub. machen! Screen:...
[Release] Client Design {"Crystal clear sunrise"} ~ by Sora
11/19/2015 - Metin2 PServer Guides & Strategies - 115 Replies
Hey Leute, ich habe mir extra für euch die Mühe gemacht und ein hübsches blaues Design für den Clienten gemacht. Wie schon von mir Angekündigt mache ich es Heute pub :). Da im letzten Client Design Release (http://www.elitepvpers.com/forum/metin2-pserver-g uides-strategies/1072186-release-client-design-sor a.html) viele ein Blaues Design haben wollten ist es nun auch blau geworden.
[Release] Client Design {"Dark rebirth"} ~ by Bloshy & Sora
12/23/2013 - Metin2 PServer Guides & Strategies - 69 Replies
Hey Leute, da mich Bloshy vor einiger Zeit gebeten hat ein Design für seinen Server zu machen, das zur Homepage passt, tat ich das dann auch. Jedoch benutzt das Design nun ein anderer Server, ich möchte das nicht, und da niemand auf meine Fragen eine Antwort gab mache ich es nun einfach public. Screen: http://img4.fotos-hochladen.net/uploads/drakonias mall054ahto2fq.png *klick* Originalgröße *klick*



All times are GMT +2. The time now is 01:38.


Powered by vBulletin®
Copyright ©2000 - 2024, 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 ©2024 elitepvpers All Rights Reserved.