
NTKing340
Membro
-
Registro em
-
Última visita
Histórico de Curtidas
-
NTKing340 deu reputação a Garou em Monstros PassivosMonstros Passivos
Sabe, esse é um dos sistemas mais desejados, da família dos sistemas que surgiram com os Pokétibias, depois do TV System.
Aquele sistema que faz com que existam monstros que não atacam você, se você não atacar ou usar magias antes. Não tem nenhum segredo, resolvi fazer o meu em Lua e C++ por puro comodismo.
Então vamos ao passo-a-passo.
No seu arquivo monster.h, procure por isso:
bool isHostile() {return mType->isHostile;} Troque por:
bool isHostile() const { std::string value; if(!getStorage("hostile", value)) return mType->isHostile; return booleanString(value); } No seu monster.cpp, procure por:
Monster::selectTarget Abaixo de:
if(!isTarget(creature)) return false; Adicione:
if(!isHostile()) return false; Crie um arquivo chamado passive_system.lua no diretório creaturescripts/scripts, cole isso:
PASSIVE_BEHAVIOR = {"Deer", "Rabbit"} -- Aqui ficam os monstros que não atacam, mesmo que atacados. function onCombat(cid, target) if isMonster(target) then if not isInArray(PASSIVE_BEHAVIOR, getCreatureName(target)) then doCreatureSetStorage(target, "hostile", 1) end doMonsterSetTarget(target, cid) end return true end No arquivo login.lua:
registerCreatureEvent(cid, "PassiveSystem") No arquivo creaturescripts.xml:
<event type="combat" name="PassiveSystem" event="script" value="passive_system.lua"/> Dê um Rebuild All no seu servidor, ou compile, deletando a pasta obj.
Para usar basta mudar a flag hostile do monstro para 0 no arquivo XML dele.
Boa diversão.
Abraços,
Oneshot
-
NTKing340 deu reputação a shumagora em No Damage Party SystemOlá Camaradagem do TK.
Venho disponibilizar um sistema muito útil para servidores fiéis ao Tibia(CipSoft).
Ele consiste em não atacar membros da party, ótimo para quest, pvp e hunt's.
Não posso afirmar se funcionará em todos os servidores, testado somente em 10.1.
config.lua
noDamageToPartyMembers = true data/creaturescripts/creaturescripts.xml
<event type="combat" name="partyAndGuildProtection" event="script" value="partyAndGuildProtection.lua"/> data/creaturescripts/scripts/partyAndGuildProtection.lua
function onCombat(cid, target) if(isInParty(target)) then if(getConfigValue("noDamageToPartyMembers")) then if(isInParty(cid)) then return false end end end return true end data/creaturescripts/scripts/login.lua registerCreatureEvent(cid, "partyAndGuildProtection") Créditos ao Global 10.1 por conter partyAndGuildProtection.lua, porém contia bugs e não atacava nem player. Créditos a mim por fixar esse problema e disponibilizar. partyAndGuildProtection.lua bugado do servidor.