Strogman 88 Postado Janeiro 23, 2017 Share Postado Janeiro 23, 2017 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 Link para o comentário Compartilhar em outros sites More sharing options...
Deadpool 862 Postado Janeiro 23, 2017 Share Postado Janeiro 23, 2017 Muito bom. Eu tenho uma função assim, mas foi feita em lua. rep+ Link para o comentário Compartilhar em outros sites More sharing options...
rorix 15 Postado Janeiro 23, 2017 Share Postado Janeiro 23, 2017 qual principal objetivo da funcao? Link para o comentário Compartilhar em outros sites More sharing options...
Luga03 331 Postado Janeiro 25, 2017 Share Postado Janeiro 25, 2017 Ao invès de utiliza isso: if(g_game.hasSpaceInContainer(container)) lua_pushboolean(L, true); else lua_pushboolean(L, false); Acho que daria para fazer assim: lua_pushboolean(L, g_game.hasSpaceInContainer(container)); Só para economizar linha... Mas é besteira, o funcionamento é o mesmo Link para o comentário Compartilhar em outros sites More sharing options...
Strogman 88 Postado Janeiro 25, 2017 Autor Share Postado Janeiro 25, 2017 1 minuto atrás, Drazyn disse: Ao invès de utiliza isso: if(g_game.hasSpaceInContainer(container)) lua_pushboolean(L, true); else lua_pushboolean(L, false); Acho que daria para fazer assim: lua_pushboolean(L, g_game.hasSpaceInContainer(container)); Só para economizar linha... Mas é besteira, o funcionamento é o mesmo verdade, na correria fazendo vários coisas ao mesmo tempo acabei usando else mesmo. costume e correria da nisso, ali no game da pra economizar também mas besteira linha num afeta nada. kkkk Link para o comentário Compartilhar em outros sites More sharing options...
Josegvb 87 Postado Janeiro 29, 2017 Share Postado Janeiro 29, 2017 Em 1/23/2017 at 18:19, rorix disse: qual principal objetivo da funcao? x2 Link para o comentário Compartilhar em outros sites More sharing options...
Deadpool 862 Postado Janeiro 29, 2017 Share Postado Janeiro 29, 2017 Em 23/01/2017 at 20:19, rorix disse: qual principal objetivo da funcao? Eu ein... "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." Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados