Source Teile SonsofErenia

05/02/2014 14:56 Guiso90#1
#Entfernt weil hier eh jeder nur C&P macht *:
05/02/2014 15:21 Doktor.#2
Für die Leute die es etwas sauberer haben wollen. ^^
PS: Kenne mich mit dem Source nicht aus.

Code:
void wtf::changeClass ( int classId )
{
        Char->user_class = classId;
	Map::MapIOPool->RemoveFromMap(Char);
	Char->MapPoint.map = 1;
	Char->MapPoint.x = 80;
	Char->MapPoint.y = 120;
	Map::MapIOPool->AddToMap(Char);
}

if(packet[0] == "$schwertkämpfer")
		changeClass ( 1 );
else if(packet[0] == "$bogenschütze")
		changeClass ( 2 );
else if(packet[0] == "$magier")
		changeClass ( 3 );
05/02/2014 16:08 Guiso90#3
naja das hier ist eig. das "Herzstück" des source
weiß nicht ob deins so auch funktioniert~
05/02/2014 16:42 Mr.Deledt#4
Quote:
naja das hier ist eig. das "Herzstück" des source
Spoiler
weiß nicht ob deins so auch funktioniert~
Was du kannst sachen aus der Datenbank laden lassen alter komm mal skype und zeig es mir ....
05/02/2014 17:04 Guiso90#5
Deledt nö D: ok doch <_< add du mich:
*klick*
ps: ja ich weiß das es spaß es und ja es ist mein richtiges skype xD
edit: deledt dieser teil war schon im source ich habe einfach nur was hinzugefügt weil mir in der schule lw war :P
05/02/2014 18:26 Mr.Deledt#6
Code:
if (Packet[0] == "$Changed" && toInt(Packet[1]) >= 0 && toInt(Packet[1]) <= 3){
		Char->user_class = toInt(Packet[1]); 
		Map::MapIOPool->RemoveFromMap(Char); 
		Map::MapIOPool->AddToMap(Char); 
	}
05/02/2014 18:49 Guiso90#7
Er brauch die koordinaten wohin mit den spieler.
also waere
Code:
if (packet[0] == "$Class_change" && packet.size() == 2)
	{
		this->Char->user_class = toInt(packet[1]); 
		Map::MapIOPool->RemoveFromMap(Char); 
		Char->MapPoint.map = this-Char->MapPoint.map;
		Char->MapPoint.x = this-Char->MapPoint.x;
		Char->MapPoint.y = this-Char->MapPoint.y;
		Map::MapIOPool->AddToMap(Char); 
	}
Richtig und besser ^^
05/02/2014 19:50 Doktor.#8
Soll das eig. irgendein Sinn ergeben das du manchmal "this" benutzt und dann mal wieder nicht?

Bzw. würde dein Code nicht mal laufen.
05/02/2014 19:53 Guiso90#9
jap~ TChar = Anderer Char
this->Char/Char dein Char~
natürlich kann man auch nur Char schreiben aber mit this->Char ist es etwas sicherer o:

TChar beispiel: pet/Partner von ein anderen Spieler
Code:
ss << "in 2 " << TChar->Partner.vnum << " " << TChar->Partner.id << " 11 7 2 100 100 0 0 3 " << TChar->id << " 1 0 -1 Partner 1 1 0 0 0 0 0 0 0 0";
			Char->Send(ss.str());
			ss.str("");
05/02/2014 20:05 Doktor.#10
Keine Ahnung warum du jetzt mit TChar kommst. ^^

Ich rede von dem hier:
Code:
this->Char->user_class = toInt(packet[1]); 
Char->MapPoint.map = this-Char->MapPoint.map;
Einmal benutzt du this und einmal nicht, was soll dort der Sinn sein?

Sicherer?
Heißt einer der Parameter der Funktion "Char" ( oder außerhalb der Klasse ) und in der Klasse auch, dann könnte es Sinn ergeben, ansonsten naja. ^^

#Edit
Lol, hab deinen Text jetzt erst verstanden... Du solltest mal deine ganzen Zeichen fummelreien weglassen, bringt mich immer durcheinander beim Lesen deiner Texte.
05/02/2014 20:20 Guiso90#11
Naja bei den was du kopiert hast hab ich nur ein ">" vergessen~
Richtig:
this->Char->user_class = toInt(packet[1]);
Char->MapPoint.map = this->Char->MapPoint.map;

und so wie es ist läuft dieser Source teil bei Sons of Erenia~

bei
this->Char->user_class = toInt(packet[1]);
ändert er den char seine klasse auf das packet und wird in der db und im spiel gespeichert das heißt er kann map wechsel machen und er bleibt z.b. mager ö_ö

hier wird einfach abgefragt wohin er teleportiert wird
Char->MapPoint.map = this->Char->MapPoint.map;
"this->Char->MapPoint.map;" = momentane position des Chars~

Natürlich könnte man nun in den teil noch reinhauen falls wer schon ein job hat das sieht dann ca. so aus
edit: hier her kommt "Char"

Edit: Class Change Update~
05/03/2014 00:24 Elektrochemie#12
Wow, direkter DB Zugriff... Top Source man :D
05/03/2014 00:34 IceTrailer#13
Quote:
Originally Posted by Elektrochemie View Post
Wow, direkter DB Zugriff... Top Source man :D

Wie hast du drauf zugegriffen? :)
05/03/2014 00:42 Elektrochemie#14
Hatte mich eventuell falsch Ausgedrückt, es geht nicht darum wie man Zugreift, sondern "wann".
Noch nie gewundert warum / wie es Rollbacks gibt?
05/03/2014 11:25 Guiso90#15
Quote:
Originally Posted by Elektrochemie View Post
Noch nie gewundert warum / wie es Rollbacks gibt?
Rollbacks werden gemacht wenn es Fehler in der Datenbank gibt und diese Rollbacks werden mit älteren Datenbank Einträgen gemacht :P
Bei den Source ist es aber so das er sonst nie Speichert nicht mal beim ausloggen somit muss er den Kack irgendwann auch speichern und da ich den Teil noch nicht Veröffentlicht habe muss man er muss man den Teil selbst schreiben oder Warten bis ich es halt veröffentliche (: