Kolumb 5 Report post Posted November 23, 2017 Доброго времени суток, форумчане! Собственно, подскажите, в чём разница между Refreshcha и SyncChar? Quote Share this post Link to post Share on other sites
MrSharp 47 Report post Posted November 23, 2017 inline int lua_RefreshCha(lua_State* L) { BOOL bValid = lua_gettop( L ) == 1 && lua_islightuserdata( L, 1 ); if( !bValid ) { E_LUAPARAM; return 0; } CCharacter* pChar = (CCharacter*)lua_touserdata( L, 1 ); if( !pChar ) { E_LUANULL; return 0; } pChar->SynSkillStateToEyeshot(); // 通知主角道具栏更新 pChar->SynKitbagNew(enumSYN_KITBAG_EQUIP); // 重新计算属性 g_CParser.DoString("AttrRecheck", enumSCRIPT_RETURN_NONE, 0, enumSCRIPT_PARAM_LIGHTUSERDATA, 1, pChar, DOSTRING_PARAM_END); if (pChar->GetPlayer()) { pChar->GetPlayer()->RefreshBoatAttr(); pChar->SyncBoatAttr(enumATTRSYN_ITEM_MEDICINE); } pChar->SynAttrToSelf(enumATTRSYN_ITEM_MEDICINE); return 1; } inline int lua_SyncChar( lua_State* L ) { BOOL bValid = lua_gettop( L ) == 2 && lua_islightuserdata( L, 1 ) && lua_isnumber( L, 2 ); if( !bValid ) { E_LUAPARAM; return 0; } CCharacter* pChar = (CCharacter*)lua_touserdata( L, 1 ); if( !pChar ) { E_LUANULL; return 0; } BYTE byType = (BYTE)lua_tonumber( L, 2 ); pChar->SynAttr( byType ); lua_pushnumber( L, LUA_TRUE ); return 1; } Вырезка из исходников. Понимаю, что это не тот ответ, который ожидался, но хоть что-то. 2 Quote Share this post Link to post Share on other sites
Kolumb 5 Report post Posted November 24, 2017 18 часов назад, MrSharp сказал: inline int lua_RefreshCha(lua_State* L) { BOOL bValid = lua_gettop( L ) == 1 && lua_islightuserdata( L, 1 ); if( !bValid ) { E_LUAPARAM; return 0; } CCharacter* pChar = (CCharacter*)lua_touserdata( L, 1 ); if( !pChar ) { E_LUANULL; return 0; } pChar->SynSkillStateToEyeshot(); // 通知主角道具栏更新 pChar->SynKitbagNew(enumSYN_KITBAG_EQUIP); // 重新计算属性 g_CParser.DoString("AttrRecheck", enumSCRIPT_RETURN_NONE, 0, enumSCRIPT_PARAM_LIGHTUSERDATA, 1, pChar, DOSTRING_PARAM_END); if (pChar->GetPlayer()) { pChar->GetPlayer()->RefreshBoatAttr(); pChar->SyncBoatAttr(enumATTRSYN_ITEM_MEDICINE); } pChar->SynAttrToSelf(enumATTRSYN_ITEM_MEDICINE); return 1; } inline int lua_SyncChar( lua_State* L ) { BOOL bValid = lua_gettop( L ) == 2 && lua_islightuserdata( L, 1 ) && lua_isnumber( L, 2 ); if( !bValid ) { E_LUAPARAM; return 0; } CCharacter* pChar = (CCharacter*)lua_touserdata( L, 1 ); if( !pChar ) { E_LUANULL; return 0; } BYTE byType = (BYTE)lua_tonumber( L, 2 ); pChar->SynAttr( byType ); lua_pushnumber( L, LUA_TRUE ); return 1; } Вырезка из исходников. Понимаю, что это не тот ответ, который ожидался, но хоть что-то. Спасибо, буду разбираться. Quote Share this post Link to post Share on other sites