PE

Tipo De Área Proctetion Igual Ao Do Global

Por pemi, 31 de mar. de 2012 em Scripts

11
1.5k
pemiP
31 de março de 2012 às 15:31

Olá,

 

Gostaria de saber se alguem tem e possa me passar ou me ajude a fazer com que em ÁREAS PROCTETION de para "atravessar" o corpo do outro player,menos quando a pessoa entra no SQM do Depot.

 

Obrigado

jhon992J
31 de março de 2012 às 18:19

Tem essa por talkaction:

Só criar um arquivo.lua na pasta scripts da pasta talkactions e colar esse código.

 

function onSay(cid, words, param, channel)

local pos = getCreaturePosition(cid)

if(getTileInfo(pos).protection) then

local target = 0
param = param:trim()
if(param == '') then
   pos = getPosByDir(pos, getCreatureLookDirection(cid))
   target = getTopCreature(pos).uid
else
   target = getPlayerByNameWildcard(param)
   if(target ~= 0) then
       pos = getCreaturePosition(target)
           if(getDistanceBetween(getCreaturePosition(cid), pos) > 1) then
               return true
           end
   end
end    

local tmp = getCreaturePosition(cid)
if(doTeleportThing(cid, pos, true) and not isPlayerGhost(cid)) then
   doSendMagicEffect(tmp, CONST_ME_POFF)
   doSendMagicEffect(pos, CONST_ME_TELEPORT)
end
end    
return false
end

 

Depois poem essa tag no talkactions.xml:

<talkaction words="/pass;!pass" event="script" value="nomedoteuscript.lua"/>

 

Troque o nome do script para o que você botou, e para usar em jogo basta /pass ou !pass.

 

Créditos @slawkens.

BeekiB
31 de março de 2012 às 18:36

@John

 

creio que ele quis dizer aquele sistema em que um Player pode passar por dentro do outro quando algum esta parado ou trapando algo...

 

@Topic

 

#Reportado, local errado.

pemiP
31 de março de 2012 às 18:46

Sim,Beeki quase isso

 

Em Área Proctetion(Depot's,Hunt's etc...)der para atravessar o corpo do player(Vários player em um mesmo SQM),mas quando entra no SQM do Depot,entra so 1.Mesmo sendo level 200,300,qualquer level

 

Igual no ot feartibia.com(Nao sei de podia falar o nome)

HisashiitYamagutiH
31 de março de 2012 às 19:33

Tópico movido para a área correta.

pemiP
31 de março de 2012 às 19:47

Sim,Beeki quase isso

 

Em Área Proctetion(Depot's,Hunt's etc...)der para atravessar o corpo do player(Vários player em um mesmo SQM),mas quando entra no SQM do Depot,entra so 1.Mesmo sendo level 200,300,qualquer level

 

Igual no ot feartibia.com(Nao sei de podia falar o nome)

BeekiB
31 de março de 2012 às 19:49

Pra ter isso em seu você tem que fazer uma modificação na source do distro, porem eu não tenho o código que é necessário para esse configuração aqui, vou procurar quando axar eu te passo, até

pemiP
31 de março de 2012 às 23:16

Ok,obrigado,quem tiver aé por favor ajuda aê

 

Beeki me adiciona MSN:gabriel.outor@hotmail.com

pemiP
03 de abril de 2012 às 19:59

Por favor me ajudem,

@UP

VodkartV
03 de abril de 2012 às 21:17

tem que editar as source!

 

Player.ccp

bool Player::canWalkthrough(const Creature* creature) const
{
if(!creature)
return true;

if(creature == this)
return false;

const Player* player = creature->getPlayer();
if(!player)
return false;

if(g_game.getWorldType() == WORLD_TYPE_NO_PVP && player->getTile()->ground
&& player->getTile()->ground->getID() != ITEM_GLOWING_SWITCH)
return true;

uint32_t protectionLevel = g_config.getNumber(ConfigManager::PROTECTION_LEVEL);
   if(player->getLevel() < protectionLevel && player->getTile()->ground
&& player->getTile()->ground->getID() != ITEM_GLOWING_SWITCH)
return true;

return player->isGhost() && getGhostAccess() < player->getGhostAccess();
}

 

ou esse código:

 

bool Player::canWalkthrough(const Creature* creature) const
{
if(!creature)
return true;

if(creature == this)
return false;

const Player* player = creature->getPlayer();
if(!player)
return false;

if(g_game.getWorldType() == WORLD_TYPE_NO_PVP && player->getTile()->ground
&& player->getTile()->ground->getID() != ITEM_GLOWING_SWITCH)
return true;

return player->isGhost() && getGhostAccess() < player->getGhostAccess();
}

 

abraços

pemiP
04 de abril de 2012 às 15:10

Desculpe a ignorancia mas onde fica isso player.cpp?E em qual parte eu altero

 

 

Obrigado