• HyperFilter | DoS Protection | DDoS Protection | DoS Mitigation | DDoS Mitigation | AntiDoS | AntiDDoS | Proxy Shielding

Ebenezer Kod Açıklamaları

Katılım
11 Ocak 2012
Mesajlar
12,856
Kod:
#define WIZ_LOGIN				0x01	// Account Login

#define WIZ_NEW_CHAR			0x02	// Create Character DB

#define WIZ_DEL_CHAR			0x03	// Delete Character DB

#define WIZ_SEL_CHAR			0x04	// Select Character

#define WIZ_SEL_NATION			0x05	// Select Nation

#define WIZ_MOVE				0x06	// Move ( 1 Second )

#define WIZ_USER_INOUT			0x07	// User Info Insert, delete

#define WIZ_ATTACK				0x08	// General Attack 

#define WIZ_ROTATE				0x09	// Rotate

#define WIZ_NPC_INOUT			0x0A	// Npc Info Insert, delete

#define WIZ_NPC_MOVE			0x0B	// Npc Move ( 1 Second )

#define WIZ_ALLCHAR_INFO_REQ	0x0C	// Account All Character Info Request

#define WIZ_GAMESTART			0x0D	// Request Other User, Npc Info

#define WIZ_MYINFO				0x0E	// User Detail Data Download

#define WIZ_LOGOUT				0x0F	// Request Logout

#define WIZ_CHAT				0x10	// User Chatting..

#define WIZ_DEAD				0x11	// User Dead

#define WIZ_REGENE				0x12	// User	Regeneration

#define WIZ_TIME				0x13	// Game Timer

#define WIZ_WEATHER				0x14	// Game Weather

#define WIZ_REGIONCHANGE		0x15	// Region UserInfo Receive





Evet arkadaşlar paketler Ebenezer ile Clientin haberleşmesini charınızın yürümesini hp'sinin dolmasını ve aklınıza gelebilcek yüzlerce olayı gerçekleştirmek için kullandığımız kod tanımlarıdır. Siz bunlar sayesinde oyun oynayabiliryorsunuz. Bu paketlerin ek*** veya yanlış olması sizin gelitşrmekte olduğunuz dosyaların client ile uyumsuz biçimde çalışmasına sebep olacaktır. Bu yüzden ilk işiniz bu paketleri doğru bir şekilde düzenleyip tamamlamanız olacaktır



En basitinden :

#define WIZ_WEATHER 0x14 // Game Weather.



WEATHER ingilizcede hava anlamına gelmektedir bu bize hava değişimi ile ilgili olayların paket başının 14 olduğunu göstermektedir. Yani 14036400 gibi bir paket gördüğünüzde hava değişiminin olduğunu anlayabilirsiniz. Sistem bu şekilde işlemektedir.




Item Seal :



Kod:
 case 0x01: // Item Seal

					itemaq = GetShort( pBuf, index );

					itemid = GetDWORD( pBuf, index );

					itemsl = GetByte( pBuf, index );

					pwlen = GetShort( pBuf, index );



					if(pwlen == 0 || pwlen < 0)	{

					SetByte( send_buff, 0x04, send_index );}

					else {

					SetByte( send_buff, 0x01, send_index );

					Send( send_buff, send_index );

					break;}



burada arkadaşlar item seal paketini case yapısı ile ayırmış yani itemi kitleme,itemi kitlemek için paranın yeterli olamamsı,item kitleme şifresinin yanlış olması gibi ihtimallerde mevcut bu yüzden bunları ayırmış biz item kitlemeyi inceliyoruz yani : case 0x01



Şimdi açıklamaya geçelim :



itemid = GetDWORD( pBuf, index ); burda kullanıcıdan itemid'sini alıyor ki gelen pakette bu mevcut zaten.

itemsl = GetByte( pBuf, index ); burada item kitli mi değil mi alıyor sl yani 'seal' durumu seal yada unseal olarak döner

pwlen = GetShort( pBuf, index ); burada da şifreyi alıyor kullanıcıdan kitlemek

if(pwlen == 0 || pwlen < 0) // burada şifre boş mu kontrol diyor.

SetByte( send_buff, 0x04, send_index );} // Eğer boş işse 0x04 paketi ile olumsuz paket gönderiyor




NeronlineWorld Yönetimi..!
 
Geri
Üst