Blokowanie run, czarów na danym obszarze.
Witam, dziś zaprezentuję łatwy sposób na zablokowanie możliwości korzystania z run oraz czarów na danym obszarze.
F.A.Q:
Do czego nam się to przyda?
- Na przykład żeby zablokować czary na Event Arenie.
Dlaczego nie w LUA?
- Dlatego że jest to dużo szybszy sposób, nie musimy edytować każdego kodu.
Jak zablokować tylko np. używanie 1 czaru lub runy?
- Do 1 czaru lub runy polecam zablokować poprzez LUA, tutaj przedstawiam przykład, wystarczy edytować pozycje isInRange.
Lua:
function onCastSpell(cid, var)
if isInRange(getCreaturePosition(cid), {x = odx, y = ody, z = odz}, {x = dox, y = doy, z = doz}) then
doCreatureSay(cid, "Nie mozesz uzyc tutaj czaru / runy, bo uzywasz skrypta potara.", TALKTYPE_ORANGE_1) return false
end
return doCombat(cid, combat, var)
end
Wróćmy do sedna, oto kod na zablokowanie czarów:
Szukamy w naszym spells.cpp :
Code:
bool Spell::checkSpell(Player* player) const
Następnie dodajemy pod nim :
Code:
const Position& pos = player->getPosition();
if (pos.x >= POZYCJAODX && pos.x <= POZYCJADOX && pos.y >= POZYCJAODY && pos.y <= POZYCJADOY && pos.z == POZYCJAZ)
{
player->sendCancelMessage(RET_NOTPOSSIBLE);
g_game.addMagicEffect(pos, MAGIC_EFFECT_POFF);
return false;
}
Kompilujemy i gotowe
Last edited: