Fethi Polat 1
Fethi Polat
TuZaKK 1
TuZaKK
xranzei 1
xranzei
Agresifizm 1
Agresifizm
Bvural41 1
Bvural41
noisiv 1
noisiv
Manwe Work 1
Manwe Work
Hikaye Ekle

HP/SP Absorbe fix

  • Konuyu başlatan Konuyu başlatan Koray'
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 22
  • Görüntüleme Görüntüleme 6K
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

Ayyıldız2 | 2008 TR Yapısı • 1-99 Orta Emek Destan • Oto Avsız • 10 Temmuz 21:00 HEMEN TIKLA!

@ShiroMetin2; @blackdragonx61;


Binek Bugu Fix

Arkadşalar bunu ekleyemedim build edemiyorum bi yardımcı olabilecek var mı ? :S


char.h ile char_horse.cpp'ye ekleye bilirmisiniz acaba ?

Dosyalarım :


char_horse.cpp:16: error: no 'bool CHARACTER::IsMount(DWORD)' member function de clared in class 'CHARACTER'char_horse.cpp: In member function 'virtual bool CHARACTER::StartRiding()':
char_horse.cpp:95: error: 'ch' was not declared in this scope
char_horse.cpp:98: error: return-statement with no value, in function returning 'int'
char_horse.cpp: In member function 'virtual bool CHARACTER::StopRiding()':
char_horse.cpp:126: error: 'ch' was not declared in this scope
char_horse.cpp:129: error: return-statement with no value, in function returning 'int'
gmake: *** [OBJDIR/char_horse.o] Error 1
gmake: *** Waiting for unfinished jobs....
In file included from PetSystem.cpp:8:
PetSystem.h:163:31: warning: no newline at end of file
PetSystem.cpp:637:2: warning: no newline at end of file
char.cpp: In member function 'void CHARACTER::PointChange(BYTE, int, bool, bool) ':
char.cpp:3099: warning: comparison between signed and unsigned integer expressio ns
char_battle.cpp: In member function 'bool CHARACTER::Damage(CHARACTER*, int, EDa mageType)':
char_battle.cpp:1696: warning: unused variable 'iCurHP'
char_battle.cpp:1697: warning: unused variable 'iCurSP'
char_item.cpp: In member function 'bool CHARACTER::IsEmptyItemGrid(TItemPos, BYT E, int) const':
char_item.cpp:640: warning: comparison is always false due to limited range of d ata type
char_item.cpp:666: warning: comparison is always false due to limited range of d ata type
char_item.cpp: In member function 'bool CHARACTER::UseItemEx(CItem*, TItemPos)':
char_item.cpp:2396: warning: format '%d' expects type 'int', but argument 6 has type 'long int'
char_item.cpp:2400: warning: format '%d' expects type 'int', but argument 6 has type 'long int'
char_item.cpp:2412: warning: format '%d' expects type 'int', but argument 5 has type 'long int'
char_item.cpp:2416: warning: format '%d' expects type 'int', but argument 5 has type 'long int'
char_item.cpp:2443: warning: format '%d' expects type 'int', but argument 6 has type 'long int'
char_item.cpp:2451: warning: format '%d' expects type 'int', but argument 5 has type 'long int'
char_item.cpp:5105: warning: comparison between signed and unsigned integer expr essions
char_item.cpp: In member function 'bool CHARACTER::UseItem(TItemPos, TItemPos)':
char_item.cpp:5177: warning: unused variable 'wDestCell'
char_item.cpp:5178: warning: unused variable 'bDestInven'
char_item.cpp: In member function 'bool CHARACTER::EquipItem(CItem*, int)':
char_item.cpp:6190: warning: array subscript has type 'char'
char_item.cpp: In member function 'void CHARACTER::BuffOnAttr_AddBuffsFromItem(C Item*)':
char_item.cpp:6254: warning: comparison between signed and unsigned integer expr essions
char_item.cpp: In member function 'void CHARACTER::BuffOnAttr_RemoveBuffsFromIte m(CItem*)':
char_item.cpp:6266: warning: comparison between signed and unsigned integer expr essions
char_item.cpp: In member function 'bool CHARACTER::CanEquipNow(CItem*, const TIt emPos&, const TItemPos&)':
char_item.cpp:7452: warning: unused variable 'itemType'
char_item.cpp:7453: warning: unused variable 'itemSubType'
PetSystem.cpp: In member function 'virtual bool CPetActor::_UpdateFollowAI()':
PetSystem.cpp:246: warning: unused variable 'bDoMoveAlone'
PetSystem.cpp: In member function 'CPetActor* CPetSystem::Summon(DWORD, CItem*, const char*, bool, DWORD)':
PetSystem.cpp:552: warning: unused variable 'petVID'
char_item.cpp: In member function 'bool CHARACTER::IsEmptyItemGrid(TItemPos, BYT E, int) const':
char_item.cpp:679: warning: control reaches end of non-void function
char_state.cpp: In member function 'virtual void CHARACTER::StateMove()':
char_state.cpp:901: warning: unused variable 'rider'
char_item.cpp: In member function 'void CHARACTER::BuffOnAttr_ValueChange(BYTE, BYTE, BYTE)':
char_item.cpp:6301: warning: 'pBuff' may be used uninitialized in this function
root@host:/usr/src/kanatsanasrc/game/src #



 
Son düzenleme:
Teşekkürler Fakat @Pasha37; kardeşim bu güzelce çalışıyorda hp absorbe efsunu işlev görmüyor onu nasıl düzelteceğiz?
 
Moderatör tarafında düzenlendi:
Önceki çalışma mantığı >
Efsun varsa her hasarda %80 oranla aktif olur


Düzenlenmiş şekilde çalışma mantığı >
Efsun varsa her hasar efsun oranı % kaç ise o oranda aktif olur


Emme oranı artırıldı, %12 oran ile tek seferde 500-600 hp/sp emer
Koşullar düzenlendi, -(eksi) hp yada sp ile ölündüğünde kendi kendilerinden absorbe etme hatası vardı giderildi
FLY küçük olduğundan big olarak düzenlendi( )



*char_battle.cpp

Arat:
Kod:
            if (pAttacker->GetPoint(POINT_HIT_HP_RECOVERY) && number(0, 4) > 0) // 80% È®·ü
            {
                int i = MIN(dam, iCurHP) * pAttacker->GetPoint(POINT_HIT_HP_RECOVERY) / 100;


                if (i)
                {
                    CreateFly(FLY_HP_SMALL, pAttacker);
                    pAttacker->PointChange(POINT_HP, i);
                }
            }


            // Ä¥ ¶§¸¶´Ù SPȸº¹
            if (pAttacker->GetPoint(POINT_HIT_SP_RECOVERY) && number(0, 4) > 0) // 80% È®·ü
            {
                int i = MIN(dam, iCurHP) * pAttacker->GetPoint(POINT_HIT_SP_RECOVERY) / 100;


                if (i)
                {
                    CreateFly(FLY_SP_SMALL, pAttacker);
                    pAttacker->PointChange(POINT_SP, i);
                }
            }


Değiştir:
Kod:
            int iAbsoHP_ptr = pAttacker->GetPoint(POINT_HIT_HP_RECOVERY);
            if (iAbsoHP_ptr)
            {
                if (number(1, 100) <= iAbsoHP_ptr) {
                    int iHPAbso = MIN(dam, GetHP()) * pAttacker->GetPoint(POINT_HIT_HP_RECOVERY) / 50;


                    if ((pAttacker->GetHP() > 0) && (pAttacker->GetHP() + iHPAbso < pAttacker->GetMaxHP()) && (GetHP() > 0) && (iHPAbso > 0))
                    {
                        CreateFly(FLY_HP_BIG, pAttacker);
                        pAttacker->PointChange(POINT_HP, iHPAbso);
                    }
                }
            }


            // Ä¥ ¶§¸¶´Ù SPȸº¹
            int iAbsoSP_ptr = pAttacker->GetPoint(POINT_HIT_SP_RECOVERY);
            if (iAbsoSP_ptr)
            {
                if (number(1, 100) <= iAbsoSP_ptr) {
                    int iSPAbso = MIN(dam, GetSP()) * pAttacker->GetPoint(POINT_HIT_SP_RECOVERY) / 50;


                    if ((pAttacker->GetSP() > 0) && (pAttacker->GetSP() + iSPAbso < pAttacker->GetMaxSP()) && (GetSP() > 0) && (iSPAbso > 0))
                    {
                        CreateFly(FLY_SP_BIG, pAttacker);
                        pAttacker->PointChange(POINT_SP, iSPAbso);
                    }
                }
            }


[FONT=arial black @[USER=1890945]Pasha37[/USER]; Onu Yaptım Basitmiş :) fakat bir şey soracam bu hp absorbeyide kullanıcna oyundan atıyor üzerimde 60 hp absorbe var tıkır tıkır çalışıyor ama oyundan atıyor sebebi nedir tahminimce

int iHPAbso = MIN(dam, GetHP()) * pAttacker->GetPoint(POINT_STEAL_HP) / 50;

burda 50 olarak sınır var ? değilmi ustam ondan atıyordur herhalde çünkü syseer da verdi

[/FONT]
SYSERR: Sep 18 17:18:30.661203 :: ChildLoop: AsyncSQL: query failed: Table 'account.safebox' doesn't exist (query: SELECT size FROM safebox WHERE account_id = 100 errno: 1146)
SYSERR: Sep 18 17:18:30.663321 :: GetPoint: POINT_ERROR: 1dasd type 60 val 50 (max: 679491819)
SYSERR: Sep 18 17:18:30.663541 :: GetPoint: POINT_ERROR: 1dasd type 60 val 50 (max: 1648097337)
SYSERR: Sep 18 17:18:32.818334 :: ChildLoop: AsyncSQL: query failed: Table 'account.messenger_list' doesn't exist (query: SELECT account, companion FROM messenger_list WHERE account='1dasd' errno: 1146)
SYSERR: Sep 18 17:18:41.698884 :: GetPoint: POINT_ERROR: 1dasd type 60 val 50 (max: 83886317)
SYSERR: Sep 18 17:18:57.617430 :: GetPoint: POINT_ERROR: 1dasd type 60 val 50 (max: 6)

Bu şekilde biraz aydınlatsan beni mutlu olurum :)
 
Moderatör tarafında düzenlendi:
char.cppde

arat
sys_err("POINT_ERROR: %s type %d val %d (max: %d)", GetName(), val, max_val);

değiştir
sys_err("POINT_ERROR: %s type %d val %d (max: %d)", GetName(), type, val, max_val);


daha sonra yazdığın bölümdeki / 50; yi / 100; olarak deneyip tekrar yazarmısın
 
char.cppde

arat
sys_err("POINT_ERROR: %s type %d val %d (max: %d)", GetName(), val, max_val);

değiştir
sys_err("POINT_ERROR: %s type %d val %d (max: %d)", GetName(), type, val, max_val);


daha sonra yazdığın bölümdeki / 50; yi / 100; olarak deneyip tekrar yazarmısın

teşekkürler denedim dediğin yerleri yaptım ve char battlede yaptım teşekkürler :)
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst