//include'lerin olduğu bölüme ekle; #ifdef ENABLE_DICE_SYSTEM #include "party.h" #endif //arat; ALUA(pc_give_or_drop_item) //fonksiyondan sonra ekle; #ifdef ENABLE_DICE_SYSTEM ALUA(pc_give_or_drop_item_with_dice) { if (!lua_isstring(L, 1) && !lua_isnumber(L, 1)) { sys_err("QUEST Make item call error : wrong argument"); lua_pushnumber(L, 0); return 1; } DWORD dwVnum; if (lua_isnumber(L, 1)) { dwVnum = (int)lua_tonumber(L, 1); } else if (!ITEM_MANAGER::instance().GetVnum(lua_tostring(L, 1), dwVnum)) { sys_err("QUEST Make item call error : wrong item name : %s", lua_tostring(L, 1)); lua_pushnumber(L, 0); return 1; } int icount = 1; if (lua_isnumber(L, 2) && lua_tonumber(L, 2) > 0) { icount = (int)rint(lua_tonumber(L, 2)); if (icount <= 0) { sys_err("QUEST Make item call error : wrong item count : %g", lua_tonumber(L, 2)); lua_pushnumber(L, 0); return 1; } } LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr(); LPITEM item = ITEM_MANAGER::instance().CreateItem(dwVnum, icount); if (ch->GetParty()) { FPartyDropDiceRoll f(item, ch); f.Process(NULL); f.GetItemOwner()->AutoGiveItem(item); } else ch->AutoGiveItem(item); sys_log(0, "QUEST [REWARD] item %s to %s", lua_tostring(L, 1), ch->GetName()); LogManager::instance().QuestRewardLog(CQuestManager::instance().GetCurrentPC()->GetCurrentQuestName().c_str(), ch->GetPlayerID(), ch->GetLevel(), dwVnum, icount); lua_pushnumber(L, (item) ? item->GetID() : 0); return 1; } #endif //tekrar arat; { "give_item2", pc_give_or_drop_item }, //altına ekle; #ifdef ENABLE_DICE_SYSTEM { "give_item2_with_dice", pc_give_or_drop_item_with_dice }, #endif