Jump to content
Araştır
  • Diğer seçenekler ...
Sonuçları bul ...
Sonuçları bul ...
Fugal

Hera scroll hk.

Önerilen Mesajlar

Hera scrolla alakalı 2 tane sıkıntım var

1. Hera scroll basılan bir chara tekrar girildiğinde şu şekilde görünüyor
vjglZO.png

2.Hera scrolları kendim silemiyorum 30 dk beklemek gerekiyor. Diğer sc lerde böyle bir sorun yok.
-- mesaja ek olarak --
ver.1299

İletiyi paylaş


Link to post
Sitelerde Paylaş
Admin

1) LOAD_CHAR_INFO prosedürüne ayar çekmen gerekiyor.
KO.exe karakter seçme ekranında switch ile tanımladığı değerlerden karakterin bilgilerini oluşturuyor.
Eğer ki böyle bir karakter bilgisi yoksa oluşturmuyor ve sen karakter seçme ekranında karakteri göremiyorsun.

Hera ve Puri Magician prosedürlerini ben yazmıştım çok oldu onları yapalı ve elimde mevcut değil herhangi bir SOACS kullanan sunucu sahibinden isteyebilirsin.

Mantığını anlatayım;
Eğer ki sunucudan gelen paket içerisinde karakterin "Race" bilgisi KO.exe içerisinde tanımlanmamışsa göremiyorsun.
Peki sunucudan cliente hangi "Race" bilgisi geliyor diyorsan.
LOAD_CHAR_INFO prosedüründe karakter seçme ekranındaki karakter bilgilerini yüklüyor.
Biz burada USERDATA tablosu içerisine ikinci bir "Race2" sütunu tanımlıyoruz ve Hera olmadan önceki "Race" değerini "Race2" değerine aktarıyoruz.
LOAD_CHAR_INFO prosedürü içerisinde eğer ki bu karakter Hera veya Puri Magician ise prosedür ile sunucuya "Race2" bilgisini gönderiyorsun.
Sunucu bu değeri alıp cliente gönderiyor ve karakter seçme ekranında düzgün "Race" bilgisini almış oluyor böylelikle karakteri karakter seçme ekranında görebiliyorsun.

Aşağıdaki kod clientin çalışma sistemidir ve sistemin nasıl çalıştığını görün diye ekliyorum.


switch ( pInfo->eRace )
{
case RACE_EL_BABARIAN:
// ³²ÀÚ ¹Ù¹Ù¸®¾ÈÀº Á÷¾÷ÀÌ Çϳª..
szJointFN = "ChrSelect\\upc_el_ba_wa.n3joint"; // °üÀı ¼¼ÆÃ..
szAniFN = "ChrSelect\\upc_el_ba_wa.n3anim"; // ¿¡´Ï¸ŞÀÌ¼Ç ÆÄÀÏ À̸§.. :-D;
szPlug0FN = "ChrSelect\\wea_el_great_sword.n3cplug";
szPlug1FN = "";
break;
case RACE_EL_WOMEN:
// ¿¤¸ğ ¿©ÀÚ´Â Á÷¾÷ÀÌ ÇöÀç ¼¼°³(Àü»ç, ·Î±×, ¼ºÁ÷ÀÚ).. ¼ºÁ÷ÀÚ´Â ±×·¡ÇÈÀÌ ¾ø´Ù..
switch ( pInfo->eClass )
{
case CLASS_EL_WARRIOR:
case CLASS_EL_BLADE:
case CLASS_EL_PROTECTOR:
szJointFN = "ChrSelect\\upc_el_rf_wa.n3joint";
szAniFN = "ChrSelect\\upc_el_rf_wa.n3anim"; // ¿¡´Ï¸ŞÀÌ¼Ç ÆÄÀÏ À̸§.. :-D;
szPlug0FN = "ChrSelect\\wea_el_long_sword_left.n3cplug"; // ¿Ş¼Õ¿¡ °ËÀ» Âù´Ù..
szPlug1FN = "";
break;
case CLASS_EL_ROGUE:
case CLASS_EL_RANGER:
case CLASS_EL_ASSASIN:
szJointFN = "ChrSelect\\upc_el_rf_rog.n3joint"; // °üÀı ¼¼ÆÃ..
szAniFN = "ChrSelect\\upc_el_rf_wa.n3anim"; // ¿¡´Ï¸ŞÀÌ¼Ç ÆÄÀÏ À̸§.. :-D;
szPlug0FN = "ChrSelect\\wea_el_rf_rog_bow.n3cplug";
szPlug1FN = "ChrSelect\\wea_el_quiver.n3cplug";
break;
case CLASS_EL_WIZARD:
case CLASS_EL_MAGE:
case CLASS_EL_ENCHANTER:
szJointFN = "ChrSelect\\upc_el_rf_wiz.n3joint"; // °üÀı ¼¼ÆÃ..
szAniFN = "ChrSelect\\upc_el_rf_wa.n3anim"; // ¿¡´Ï¸ŞÀÌ¼Ç ÆÄÀÏ À̸§.. :-D;
szPlug0FN = "ChrSelect\\upc_el_rf_wiz.n3cplug";
szPlug1FN = "";
break;
case CLASS_EL_PRIEST:
case CLASS_EL_CLERIC:
case CLASS_EL_DRUID:
szJointFN = "ChrSelect\\upc_el_rf_pri.n3joint"; // °üÀı ¼¼ÆÃ..
szAniFN = "ChrSelect\\upc_el_rf_wa.n3anim"; // ¿¡´Ï¸ŞÀÌ¼Ç ÆÄÀÏ À̸§.. :-D;
szPlug0FN = "ChrSelect\\wea_el_wand.n3cplug";
szPlug1FN = "";
break;
}
break;
case RACE_EL_MAN:
// ¿¤¸ğ ³²ÀÚ´Â ÇöÀç Á÷¾÷ÀÌ ¼¼°³..(·Î±×, ¼ºÁ÷ÀÚ, Àü»ç)
switch ( pInfo->eClass )
{
case CLASS_EL_WARRIOR:
case CLASS_EL_BLADE:
case CLASS_EL_PROTECTOR:
szJointFN = "ChrSelect\\upc_el_rm_wa.n3joint";
szAniFN = "ChrSelect\\upc_el_rm_wa.n3anim";
szPlug0FN = "ChrSelect\\wea_el_long_sword.n3cplug";
break;
case CLASS_EL_ROGUE:
case CLASS_EL_RANGER:
case CLASS_EL_ASSASIN:
szJointFN = "ChrSelect\\upc_el_rm_rog.n3joint";
szAniFN = "ChrSelect\\upc_el_rm_rog.n3anim";
szPlug0FN = "ChrSelect\\upc_el_rm_rog_bow.n3cplug";
szPlug1FN = "ChrSelect\\wea_el_quiver.n3cplug";
break;
case CLASS_EL_WIZARD:
case CLASS_EL_MAGE:
case CLASS_EL_ENCHANTER:
szJointFN = "ChrSelect\\upc_el_rm_ma.n3joint";
szAniFN = "ChrSelect\\upc_el_rm_rog.n3anim";
szPlug0FN = "ChrSelect\\upc_el_rm_wiz.n3cplug";
szPlug1FN = "";
break;
case CLASS_EL_PRIEST:
case CLASS_EL_CLERIC:
case CLASS_EL_DRUID:
szJointFN = "ChrSelect\\upc_el_rm_pri.n3joint";
szAniFN = "ChrSelect\\upc_el_rm_rog.n3anim";
szPlug0FN = "ChrSelect\\wea_el_wand.n3cplug";
szPlug1FN = "";
break;
}
break;
case RACE_KA_ARKTUAREK:
// Ä«·ç½º Á÷¾÷ Çϳª.. ¿Â¸® Àü»ç..
szJointFN = "ChrSelect\\upc_ka_at_wa.n3joint";
szAniFN = "ChrSelect\\upc_ka_at_wa.n3anim";
szPlug0FN = "ChrSelect\\wea_ka_great_axe.n3cplug";
szPlug1FN = "";
break;
case RACE_KA_TUAREK:
switch( pInfo->eClass )
{
case CLASS_KA_ROGUE:
case CLASS_KA_HUNTER:
case CLASS_KA_PENETRATOR:
szJointFN = "ChrSelect\\upc_ka_tu_rog.n3joint";
szAniFN = "ChrSelect\\upc_ka_at_wa.n3anim";
szPlug0FN = "ChrSelect\\wea_ka_bow.n3cplug";
szPlug1FN = "ChrSelect\\wea_ka_quiver.n3cplug";
break;
case CLASS_KA_PRIEST:
case CLASS_KA_SHAMAN:
case CLASS_KA_DARKPRIEST:
szJointFN = "ChrSelect\\upc_ka_tu_pri.n3joint";
szAniFN = "ChrSelect\\upc_ka_at_wa.n3anim";
szPlug0FN = "ChrSelect\\wea_ka_mace.n3cplug";
szPlug1FN = "";
break;
}
break;
case RACE_KA_WRINKLETUAREK:
szJointFN = "ChrSelect\\upc_ka_wt_ma.n3joint";
szAniFN = "ChrSelect\\upc_ka_at_wa.n3anim";
szPlug0FN = "ChrSelect\\wea_ka_staff.n3cplug";
szPlug1FN = "";
break;
case RACE_KA_PURITUAREK:
szJointFN = "ChrSelect\\upc_el_rf_pri.n3joint"; // °üÀı ¼¼ÆÃ..
szAniFN = "ChrSelect\\upc_el_rf_wa.n3anim"; // ¿¡´Ï¸ŞÀÌ¼Ç ÆÄÀÏ À̸§.. :-D;
szPlug0FN = "ChrSelect\\wea_ka_mace.n3cplug";
szPlug1FN = "";
break;
default:
return;
}


2) SOACS Server tarafından engelliyor silmesini sanırım durmadan basıp silmesinler diye böyle bir sistem yapmış. Anlayacağın bastıktan sonra silinmiyor.

İletiyi paylaş


Link to post
Sitelerde Paylaş
Misafir
Bu konu kapalıdır ama konuya cevap yazmaya yetkiniz var görünüyor.

×
×
  • Yeni Oluştur...