- Mesaj
- 4.630
- Çözümler
- 456
- Beğeni
- 5.713
- Puan
- 5.349
- Ticaret Puanı
- 0
Merhabalar, hastalık sebebiyle bir süredir pek aktif değildim. Hala değilim aslında, pek bir şey yaptığım söylenemez. Kodlara göz gezdiriyorum genellikle.
Bugün fark ettiğim, aslında mantığa uygun fakat eksik ve yanıltıcı bulduğum bir ymir yamasını iyileştirmeyi paylaşmak istedim.
Konumuz şu;
constInfo.py içinde şöyle bir tanım var;
Bunu ilk gördüğümde de amacını merak etmiştim ama üstüne düşmemiştim, anlamak bugüne kısmetmiş.
Bu değerin amacı şu, karakter çift el silah taktığında hem silahın üzerine gelindiğinde, hem de C ekranında yazan saldırı değerini gerçeği yansıtmayacak şekilde -10 olarak düşürüyor. Mesela Yarı İnsan Kılıç +9'un varsayılan saldırı hızı(proto değeri) 25 iken, üzerine gelindiğinde 15 yazıyor ve C ekranında da saldırı hızı kısmı toplam gerçek değerden -10 olarak görünüyor; yani örneğin saldırı hızı 100 yazması gerekiyorsa 90 görünüyor. Bunu yapmalarındaki amaç ise büyük ihtimalle çift el kılıç ile normal kılıçların saldırı animasyonlarının arasındaki hız farkıdır. Biliyorsunuz, normal kılıçlar doğal olarak daha seri ve hızlı sallanıyor ama çift el onun yanında animasyon/hız olarak hantal kalıyor. Bu nedenle böyle bir şey yapmışlar.
Bunu komple kaldırmak yerine sade ve anlaşılır olması açısından c++ tarafına sabitledim ve gereksiz kodları sildim . Çünkü kaldırılması durumunda daha saçma senaryolar ortaya çıkacaktır.
Kısaca anlatıma geçeyim;
game.py bulun ve silin:
constInfo.py aşağıdaki bulun ve silin:
PythonApplicationModule.cpp en üstlerde bulun:
Buradaki 0'ı 10 yapın.
Aynı dosyada bulun:
Bu kısımlara herhangi bir yere ekleyin(yine de bulunsun):
Yine aynı dosyada şu ikisini bulun ve silin:
uiCharacter.py içinden bulun:
Değiştirin:
Aynı dosyada def RefreshStatus(self): fonksiyonunun üzerine ekleyin:
Sonuç:
Bu haliyle en azından çift el silah takıldığında saldırı değeri başına ~ işareti koyularak oyuncuya (değişkenlik gösterebilir...) mesajı verilmesi amaçlanır.
Orjinal halinde durum biraz daha mantığa aykırı oluyor. Mesela dolunay kılıcında da saldırı hızı +15 yazıyor, yarı insan kılıcında da +15 yazıyor. Ama çiftel hantal kaldığından "ulan bu nasıl +15?" (gibi gibi..) algıların önüne geçilebilir.
Bugün fark ettiğim, aslında mantığa uygun fakat eksik ve yanıltıcı bulduğum bir ymir yamasını iyileştirmeyi paylaşmak istedim.
Konumuz şu;
constInfo.py içinde şöyle bir tanım var;
Python:
TWO_HANDED_WEAPON_ATT_SPEED_DECREASE_VALUE = 10
Bu değerin amacı şu, karakter çift el silah taktığında hem silahın üzerine gelindiğinde, hem de C ekranında yazan saldırı değerini gerçeği yansıtmayacak şekilde -10 olarak düşürüyor. Mesela Yarı İnsan Kılıç +9'un varsayılan saldırı hızı(proto değeri) 25 iken, üzerine gelindiğinde 15 yazıyor ve C ekranında da saldırı hızı kısmı toplam gerçek değerden -10 olarak görünüyor; yani örneğin saldırı hızı 100 yazması gerekiyorsa 90 görünüyor. Bunu yapmalarındaki amaç ise büyük ihtimalle çift el kılıç ile normal kılıçların saldırı animasyonlarının arasındaki hız farkıdır. Biliyorsunuz, normal kılıçlar doğal olarak daha seri ve hızlı sallanıyor ama çift el onun yanında animasyon/hız olarak hantal kalıyor. Bu nedenle böyle bir şey yapmışlar.
Bunu komple kaldırmak yerine sade ve anlaşılır olması açısından c++ tarafına sabitledim ve gereksiz kodları sildim . Çünkü kaldırılması durumunda daha saçma senaryolar ortaya çıkacaktır.
Kısaca anlatıma geçeyim;
game.py bulun ve silin:
Python:
# TWO_HANDED_WEAPON_ATTACK_SPEED_UP
constInfo.SET_TWO_HANDED_WEAPON_ATT_SPEED_DECREASE_VALUE()
# END_OF_TWO_HANDED_WEAPON_ATTACK_SPEED_UP
constInfo.py aşağıdaki bulun ve silin:
Python:
def SET_TWO_HANDED_WEAPON_ATT_SPEED_DECREASE_VALUE():
global TWO_HANDED_WEAPON_ATT_SPEED_DECREASE_VALUE
app.SetTwoHandedWeaponAttSpeedDecreaseValue(TWO_HANDED_WEAPON_ATT_SPEED_DECREASE_VALUE)
Python:
TWO_HANDED_WEAPON_ATT_SPEED_DECREASE_VALUE # 2 tane olabilir
PythonApplicationModule.cpp en üstlerde bulun:
C++:
extern int TWOHANDED_WEWAPON_ATT_SPEED_DECREASE_VALUE = 0;
Aynı dosyada bulun:
C++:
[...]
PyModule_AddIntConstant(poModule, "INFO_ITEM", CPythonApplication::INFO_ITEM);
PyModule_AddIntConstant(poModule, "INFO_ACTOR", CPythonApplication::INFO_ACTOR);
PyModule_AddIntConstant(poModule, "INFO_EFFECT", CPythonApplication::INFO_EFFECT);
PyModule_AddIntConstant(poModule, "INFO_TEXTTAIL", CPythonApplication::INFO_TEXTTAIL);
[...]
C++:
PyModule_AddIntConstant(poModule, "TWOHANDED_WEWAPON_ATT_SPEED_DECREASE_VALUE", TWOHANDED_WEWAPON_ATT_SPEED_DECREASE_VALUE);
Yine aynı dosyada şu ikisini bulun ve silin:
C++:
PyObject* SetTwoHandedWeaponAttSpeedDecreaseValue(PyObject* poSelf, PyObject* poArgs)
{
int iValue;
if (!PyTuple_GetInteger(poArgs, 0, &iValue))
return Py_BuildException();
TWOHANDED_WEWAPON_ATT_SPEED_DECREASE_VALUE = iValue;
return Py_BuildNone();
}
C++:
{ "SetTwoHandedWeaponAttSpeedDecreaseValue", SetTwoHandedWeaponAttSpeedDecreaseValue, METH_VARARGS },
uiCharacter.py içinden bulun:
Python:
self.GetChild("ASPD_Value").SetText(str(player.GetStatus(player.ATT_SPEED)))
Python:
attSpeed = player.GetStatus(player.ATT_SPEED)
self.GetChild("ASPD_Value").SetText(self.__GetAttackSpeed(attSpeed))
Aynı dosyada def RefreshStatus(self): fonksiyonunun üzerine ekleyin:
Python:
def __GetAttackSpeed(self, speed):
import item
weaponIndex = player.GetItemIndex(item.EQUIPMENT_WEAPON)
if weaponIndex != 0:
item.SelectItem(weaponIndex)
if item.GetItemType() == item.ITEM_TYPE_WEAPON and item.GetItemSubType() == item.WEAPON_TWO_HANDED:
return "~%d" % speed
return "%d" % speed
Sonuç:
Bu haliyle en azından çift el silah takıldığında saldırı değeri başına ~ işareti koyularak oyuncuya (değişkenlik gösterebilir...) mesajı verilmesi amaçlanır.
Orjinal halinde durum biraz daha mantığa aykırı oluyor. Mesela dolunay kılıcında da saldırı hızı +15 yazıyor, yarı insan kılıcında da +15 yazıyor. Ama çiftel hantal kaldığından "ulan bu nasıl +15?" (gibi gibi..) algıların önüne geçilebilir.