Jak zablokować używanie run, spelli na danym obszarze.

Potar

SocialWorld
Joined
Mar 1, 2009
Messages
1,664
Reaction score
119
Location
Warsaw, Poland
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:

The_Hide

Banned User
Joined
Dec 11, 2012
Messages
389
Reaction score
10
no pojebało cie i za każdym razem to kompilować?

jak już to zrób to jako nowa funkcja lub coś takiego by odczytywało tablice z pozycjami z pliku xml lub lua i potem prosto i przyjemnie byśmy to sobie edytowali bez ponownych kompilacji

;p
 

zakius

Enter the Ninja!
Joined
Apr 30, 2009
Messages
2,635
Reaction score
61
Location
with Taiga
hardcodowane isInArea by było dobre ( w lua działa za wolno, a wywołanie hardcodowanej wersji by szło już w miarę szybko)
 
OP
P

Potar

SocialWorld
Joined
Mar 1, 2009
Messages
1,664
Reaction score
119
Location
Warsaw, Poland
no pojebało cie i za każdym razem to kompilować?

jak już to zrób to jako nowa funkcja lub coś takiego by odczytywało tablice z pozycjami z pliku xml lub lua i potem prosto i przyjemnie byśmy to sobie edytowali bez ponownych kompilacji

;p
Jak ktoś ma drewnianego kompa i kompiluje na windowsie to narzeka (posiadacze linuxa wiedzą że to nie problem), skrypt odpowiada pod event areny które często trzymamy w kupie więc jedna edycja source nikomu dupy nie urwie.
 
Last edited:

Skonelapper

Member
Joined
Sep 28, 2012
Messages
125
Reaction score
1
a jeśli chciałbym zeby były zablokowane tylko czary nie runy ?
 
Top