hasSpaceInContainer é uma função que retorna true ou false, ela checa se tem algum espaço livre na mochila, se você tiver carregando uma mochila dentro de uma mochila ela checa a primeira mochila e se não tiver espaço ela checa a outra mochila.
em game.cpp em baixo de:
void GameshowHotkeyUseMessage(Player* player, Item* item){ int32_t subType = -1; if(item->hasSubType() && !item->hasCharges()) subType = item->getSubType(); const ItemType& it = Itemitems[item->getID()]; uint32_t count = player->__getItemTypeCount(item->getID(), subType, false); char buffer[40 + it.name.size()]; if(count == 1) sprintf(buffer, "Using the last %s...", it.name.c_str()); else sprintf(buffer, "Using one of %d %s...", count, it.pluralName.c_str());}
adicione:
bool GamehasSpaceInContainer(Container* container){ if(container->size() < container->capacity()) return true; for(int slot = 0; slot <= (container->size()-1); slot++) { Item* item = container->getItem(slot); if(item->getContainer()) { if(hasSpaceInContainer(item->getContainer())) return true; } } return false;}
em game.h em baixo de:
bool playerReceivePing(uint32_t playerId);
adicione:
bool hasSpaceInContainer(Container* container);
em luascript.cpp em baixo de:
int32_t LuaScriptInterfaceluaGetCreatureName(lua_State* L){ //getCreatureName(cid) ScriptEnviroment* env = getEnv(); if(Creature* creature = env->getCreatureByUID(popNumber(L))) lua_pushstring(L, creature->getName().c_str()); else { errorEx(getError(LUA_ERROR_CREATURE_NOT_FOUND)); lua_pushboolean(L, false); } return 1;}
adicione:
int32_t LuaScriptInterfaceluaHasSpaceInContainer(lua_State* L){ //hasSpaceInContainer(container) ScriptEnviroment* env = getEnv(); Container* container = env->getContainerByUID(popNumber(L)); if(!container) { errorEx(getError(LUA_ERROR_CREATURE_NOT_FOUND)); lua_pushboolean(L, false); return 1; } if(g_game.hasSpaceInContainer(container)) lua_pushboolean(L, true); else lua_pushboolean(L, false); return 1;}
em baixo de:
//getCreatureName(cid)lua_register(m_luaState, "getCreatureName", LuaScriptInterfaceluaGetCreatureName);
adicione:
//hasSpaceInContainer(container)lua_register(m_luaState, "hasSpaceInContainer", LuaScriptInterfaceluaHasSpaceInContainer);
em luascript.h em baixo de:
static int32_t luaGetCreatureName(lua_State* L);
adicione:
static int32_t luaHasSpaceInContainer(lua_State* L);
exemplo:
if hasSpaceInContainer(container) then funcao()else sendCancel(cid, "desculpe, voce nao tem espaço na mochila")end