Postado Maio 8, 2016 9 anos Galera, estou com um problema no meu servidor que o player consegue passar por cima do outro no DP e pegar o item (se tiver em cima do depot). # Já tentei colocar vários tiles desses que afundam, mas não deu certo. Gostaria de um script pra colocar no tile que só pudesse passar 1 por vez, ou seja, seguir a lei de Newton "Dois corpos não ocupam mesmo lugar no espaço" kkk Ou caso haja uma solução mais viável me informem por favor..
Postado Maio 8, 2016 9 anos A respeito do jogador passar por cima do outro no DP é simples de resolver, basta você por um piso diferenciado. E no items.xml colocar uma TAG que faça que nenhum player possa passar por cima do outro em X piso. ╔══════════════════════════ҳ̸Ҳ̸ҳஜ۩۞۩ஜҳ̸Ҳ̸ҳ══════════════════════════╗ Te Ajudei? Rep + e ficamos Quits Precisando de ajuda? Discord: Yan Liima #3702 Programador Júnior de LUA, PHP e JavaScript Juntos somos lendas, separados somos Mitos! ╚══════════════════════════ҳ̸Ҳ̸ҳஜ۩۞۩ஜҳ̸Ҳ̸ҳ═════════════════════════════╝
Postado Maio 8, 2016 9 anos ADICIONA NO TILE <attribute key="walkStack" value="0" /> ... CASO CONTINUA TERÁ QUE ALTERA ISSO NA SOURCES items.cpp procure: moveable = true; Troque por: moveable = walkStack = true; ainda em items.cpp procure: else if(tmpStrValue == "transformto") { if(readXMLInteger(itemAttributesNode, "value", intValue)) it.transformToFree = intValue; } Logo embaixo coloque: else if(tmpStrValue == "walkstack") { if(readXMLInteger(itemAttributesNode, "value", intValue)) it.walkStack = (intValue != 0); } items.h procure: lookThrough, troque por: lookThrough, walkStack, Na função canWalkThrough no player.cpp troque por: bool Player::canWalkthrough(const Creature* creature) const { if(creature == this || hasCustomFlag(PlayerCustomFlag_CanWalkthrough) || creature->isWalkable() || (creature->getMaster() && creature->getMaster() != this && canWalkthrough(creature->getMaster()))) return true; const Player* player = creature->getPlayer(); if(!player) return false; if((((g_game.getWorldType() == WORLD_TYPE_NO_PVP && player->getVocation()->isAttackable()) || player->getTile()->hasFlag(TILESTATE_PROTECTIONZONE) || (player->getVocation()->isAttackable() && player->getLevel() < (uint32_t)g_config.getNumber(ConfigManager::PROTECTION_LEVEL))) && player->getTile()->ground && Item::items[player->getTile()->ground->getID()].walkStack) && (!player->hasCustomFlag(PlayerCustomFlag_GamemasterPrivileges) || player->getAccess() <= getAccess())) return true; return (player->isGhost() && getGhostAccess() < player->getGhostAccess()) || (isGhost() && getGhostAccess() > player->getGhostAccess()); }
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.