Öldükten sonra yeniden başla FULL HP doğma

  • Konuyu açan Konuyu açan eagleonlines
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 5
  • Gösterim Gösterim 188

eagleonlines

Üye
Üye
Mesaj
92
Çözümler
2
Beğeni
22
Puan
449
Ticaret Puanı
0
Konuyu araştırdım fakat pek birşey bulamamıştım bende kendi yaptığımı sizinle paylaşmak istedim denenmiştir. Kanıtı da sunulmuştur.

Sistem : Öldükten sonra karakter full HP olarak yeniden başlar

Yapılacak değişiklik

cmd_general.cpp içinde Ara
cmd_general.cpp:
Genişlet Daralt Kopyala
    switch (subcmd)
    {
        case SCMD_RESTART_TOWN:
            sys_log(0, "do_restart: restart town");
            PIXEL_POSITION pos;

            if (SECTREE_MANAGER::instance().GetRecallPositionByEmpire(ch->GetMapIndex(), ch->GetEmpire(), pos))
                ch->WarpSet(pos.x, pos.y);
            else
                ch->WarpSet(EMPIRE_START_X(ch->GetEmpire()), EMPIRE_START_Y(ch->GetEmpire()));
            ch->PointChange(POINT_HP, 50 - ch->GetHP());
            ch->DeathPenalty(1);
            break;

        case SCMD_RESTART_HERE:
            sys_log(0, "do_restart: restart here");
            ch->RestartAtSamePos();
            //ch->Show(ch->GetMapIndex(), ch->GetX(), ch->GetY());
            ch->PointChange(POINT_HP, 50 - ch->GetHP());
            ch->DeathPenalty(0);
            ch->ReviveInvisible(5);
            break;
    }
}

değiştir
cmd_general.cpp:
Genişlet Daralt Kopyala
    switch (subcmd)
    {
        case SCMD_RESTART_TOWN:
            sys_log(0, "do_restart: restart town");
            PIXEL_POSITION pos;

            if (SECTREE_MANAGER::instance().GetRecallPositionByEmpire(ch->GetMapIndex(), ch->GetEmpire(), pos))
                ch->WarpSet(pos.x, pos.y);
            else
                ch->WarpSet(EMPIRE_START_X(ch->GetEmpire()), EMPIRE_START_Y(ch->GetEmpire()));
            ch->PointChange(POINT_HP, ch->GetMaxHP() - ch->GetHP());
            ch->DeathPenalty(1);
            break;

        case SCMD_RESTART_HERE:
            sys_log(0, "do_restart: restart here");
            ch->RestartAtSamePos();
            //ch->Show(ch->GetMapIndex(), ch->GetX(), ch->GetY());
            ch->PointChange(POINT_HP, ch->GetMaxHP() - ch->GetHP());
            ch->DeathPenalty(0);
            ch->ReviveInvisible(5);
            break;
    }
}


Kanıt :
Linkleri görebilmek için giriş yap veya kayıt ol.

Saygılar, sevgiler.
 
konu için teşekkür ederim hocam baya iyi kodlamışsınız ama bir daha olmasın

1737739058634.webp


 
kodlarda değiştirdiğim tek yer
kod:
Genişlet Daralt Kopyala
ch->PointChange(POINT_HP, ch->GetMaxHP() - ch->GetHP());
burası geri kalanları martysama nın git martysama ya söyle o zaman bir daha olmasın diye. Yaptığın yorum saygısızca edebide biz öğretmeyelim. Yanlış bir şey varsa üslubunca söylersin düzeltirilir.
 
Son düzenleme:
kodlarda değiştirdiğim tek yer
kod:
Genişlet Daralt Kopyala
ch->PointChange(POINT_HP, ch->GetMaxHP() - ch->GetHP());
burası geri kalanları martysama nın git martysama ya söyle o zaman bir daha olmasın diye. Yaptığın yorum saygısızca edebide biz öğretmeyelim. Yanlış bir şey varsa üslubunca söylersin düzeltirilir.
çok çok sori hocam öylesine yaptım zaten yorumu boşverin fazla takılmayın
 
GetMaxHP kullanmak sanırım en mantıklısı direkt olarak %lik can belirtmekte olabilir gerçi. Ellerinize sağlık ayrıca paylaşım için teşekkürler. Bunu "Burada hemen başla" tuşu ekleyip koymakta güzel olabilir.
 
GetMaxHP kullanmak sanırım en mantıklısı direkt olarak %lik can belirtmekte olabilir gerçi. Ellerinize sağlık ayrıca paylaşım için teşekkürler. Bunu "Burada hemen başla" tuşu ekleyip koymakta güzel olabilir.
ben yüzdelik yerine fullenmesini istedim tabi %lik olarak da doğabilir sadece burada yeniden başla yapıldığında benim fileste +50 / +50 artıyordu hp . Bunu aslında burada hemen başla butonuna tanımlamakta güzel olur emek sv ler için vip oyunculara özel gibi gibi . Rica ederim yorumunuz için teşekkür ederim ayrıca.
 
Geri
Üst