Sziasztok!
Olyan problémám van, hogy egy adott mounton iszonyú lassú a mozgás. Nem tudom, hogy mi okozza, adhatok neki 300 mozgásit is az item proto-ban, akkor sem gyorsul (az ottani mozgási az a karakter sebessége). Lehet valahol módosítani magának a mountnak a sebességét?
Köszönöm előre is a segítséget!
Animáción tudsz gyorsítani, mondjuk ilyet nem próbáltam még.
Mount mappáján belül:
run.msa
Sor:
MotionDuration 0.666666
Köszi megpróbálom! :)
Üzenet összefésülés: 2017-06-20, 20:50:00
Nem jártam szerencsével. Nem lett gyorsabb tőle a mount.
hm?
MotionDuration 3.666666
Alapból 13.33333333 volt megadva. Azt átírtam a 0.666666666-ra de sajnos ugyanolyan a sebessége.
Lehet mob_proto-ba kellene neki adni mozgási sebességet?
Sajnos ez sem vezetett eredményre :(
tudtommal csak a ride.quest-ben adsz neki mozgási sebességet
ha questben adsz bónuszt, akkor az a baj, hogy másikat már nem tudsz adni neki egyszerre :/
érdemesebb gamefájlban:
questlua_pc.cpp:
keress rá: int pc_mount(lua_State* L)
ebben a függvényben a vége fele hozzáírod:
case MOUNTID:
ch->AddAffect(AFFECT_MOUNT, POINT_MOV_SPEED, 50, AFF_NONE, length, 0, true, true);
break;
a MOUNTID helyére az npc id-jét (ne a hívót!)
ezután alapból ez a mount kapni fog (jelen esetben +50 mozgásit, és questben is fogsz tudni még bónuszt adni rá
hát vagy megváltoztatód a pc.mount funkcióját.
példa:
pc.mount(ID,IDŐ,SEBESSÉG)
nem nehéz, lehet programozni :D
vagy igen, fl4t1k felvetése is jó, igazából azzal a legegyszerűbb, mert utána nem kell minden mountnál belenyúlnod a game fileba :)
tessék, megírtam neked rá egy funkciót, csak írd felül (questlua_pc.cpp):
int pc_mount(lua_State* L)
{
if (!lua_isnumber(L, 1))
return 0;
int length = 60;
if (lua_isnumber(L, 2))
length = (int)lua_tonumber(L, 2);
DWORD mount_vnum = (DWORD)lua_tonumber(L, 1);
if (length < 0)
length = 60;
LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr();
ch->RemoveAffect(AFFECT_MOUNT);
ch->RemoveAffect(AFFECT_MOUNT_BONUS);
// ¸»ŔĚ ĽŇČŻµÇľî µű¶ó´Ů´Ď´Â »óŶó¸é ¸»şÎĹÍ ľřľÚ
if (ch->GetHorse())
ch->HorseSummon(false);
int ertek = 0;
if (lua_isnumber(L, 3))
ertek = (int)lua_tonumber(L, 3);
if (ertek <= 0)
ertek = 0;
ch->AddAffect(AFFECT_MOUNT, POINT_MOV_SPEED, ertek, AFF_NONE, length, 0, true, true);
return 0;
}
Kipróbálom, köszi!
Témát zárom.