Postado Janeiro 24, 2017 8 anos 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 Game::showHotkeyUseMessage(Player* player, Item* item) { int32_t subType = -1; if(item->hasSubType() && !item->hasCharges()) subType = item->getSubType(); const ItemType& it = Item::items[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 Game::hasSpaceInContainer(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 LuaScriptInterface::luaGetCreatureName(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 LuaScriptInterface::luaHasSpaceInContainer(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", LuaScriptInterface::luaGetCreatureName); adicione: //hasSpaceInContainer(container) lua_register(m_luaState, "hasSpaceInContainer", LuaScriptInterface::luaHasSpaceInContainer); 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 Créditos Gristoyn (Por todo o conteúdo e pelo código) Eu (Apenas pro Trazer ao Fórum) Cada escolha, uma oportunidade. Cada queda, um aprendizado. Cada atitude, uma consequência .
Postado Janeiro 24, 2017 8 anos Parabéns, seu tópico de conteúdo foi aprovado! Muito obrigado pela sua contribuição, nós do Tibia King agradecemos. Seu conteúdo com certeza ajudará à muitos outros, você recebeu +1 REP. Mostrar conteúdo oculto Congratulations, your content has been approved! Thank you for your contribution, we of Tibia King we are grateful. Your content will help many other users, you received +1 REP.
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.