Yardım Shift tuşuna basılınca karakterin hareket hızı kazanması

  • Konuyu açan Konuyu açan Tengrist
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 4
  • Gösterim Gösterim 90
Konu sahibi bu konuda soru soruyor. Sorusu ile ilgili bilgisi olanların yanıtlamasını bekliyor.

Tengrist

Yardımsever Üye
Yardımsever Üye
MT Üye
Mesaj
1.302
Çözümler
41
Beğeni
1.080
Puan
1.309
Ticaret Puanı
0
Shifte basınca karakterin +1000 hareket hızıyla koşmasını daha doğrusu shift basılı tutuluyken +1000 hareket hızı değeri kazanması istiyorum önerisi olan var mı, basılı olmadığında da normal hale dönecek. önerisi olan var mı
 
Server açıyorum gün 1 mi

tuşa basılı olayı kolay halledilir de movement speed'i bir komuta bağlaman lazım önce ve hareket hızı limitine de takılmaması lazım karışık epey
 
raid dungeon yazıyorum, cw 2.0 tarzı, alan 7x7 hızlı koşmaları lazım shiftle direkt cmd den şunu yapmak geldi aklıma konuyu açınca:

C++:
Genişlet Daralt Kopyala
ACMD(do_shifton)
{
    if (!ch)
        return;

    ch->m_pointsInstant.speed = 1100;
    ch->ComputePoints(); 

ACMD(do_shiftoff)
{
    if (!ch)
        return;

    ch->m_pointsInstant.speed = 0;
    ch->ComputePoints(); 
}

tabi bi de zindan index kontrolü ekleyeceğim normal maplerde olmaması için bu şekil mi yapmak mantıklı mı
 
do_set_walk_mode ve do_set_run_mode komutlarından yola çıkarak yeni bir tane daha yapıp run modunda sadece hareket hızını değiştirerek yapabilirsin, direkt hıza müdahale yerine mor pot gibi affect olarak ekleyip kaldırırsan eski haline çevirmeside kolay olur. oyun içinde ise cmd'den komut göndererek game.py OnKeyDown'da aktif edip OnKeyUp'da pasif hale getirebilirsin.
 
do_set_walk_mode ve do_set_run_mode komutlarından yola çıkarak yeni bir tane daha yapıp run modunda sadece hareket hızını değiştirerek yapabilirsin, direkt hıza müdahale yerine mor pot gibi affect olarak ekleyip kaldırırsan eski haline çevirmeside kolay olur. oyun içinde ise cmd'den komut göndererek game.py OnKeyDown'da aktif edip OnKeyUp'da pasif hale getirebilirsin.
Kod:
Genişlet Daralt Kopyala
def OnKeyDown(self, key):
    if key == app.DIK_LSHIFT: 
        net.SendChatPacket("/shifton")

def OnKeyUp(self, key):
    if key == app.DIK_LSHIFT: 
        net.SendChatPacket("/shiftoff")

C++:
Genişlet Daralt Kopyala
ACMD(do_shifton)
{
    if (!ch)
        return;

    if (ch->GetMapIndex() != ZINDAN_MAP_INDEX) // sadece belli maplerde çalışsın
        return;

    ch->AddAffect(AFFECT_SPEED, POINT_MOV_SPEED, 1000, 5, 0, true); // 5 saniyelik ama sürekli yenilenecek
}

ACMD(do_shiftoff)
{
    if (!ch)
        return;

    ch->RemoveAffect(AFFECT_SPEED);
}


bu şekilde olur mu peki ?
 
Geri
Üst