• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!
  • 2026 staff recruitment is open! Check it out and consider applying!

[LUA] Protekcja gracza

Joined
Jun 29, 2010
Messages
151
Reaction score
7
Cześć.
Mam taki skrypcik:
LUA:
local names = {"Kuba", "MiszczOTS"}

function onStatsChange(cid, attacker, type, combat, value)
	if isPlayer(cid) and isInArray(names, getCreatureName(cid)) and isMonster(attacker) or isPlayer(attacker) then
		if isInArray({STATSCHANGE_HEALTHLOSS, STATSCHANGE_MANALOSS}, type) then
			return false
		end
	end
	
	return true
end

I chciałbym jeszcze tutaj dodać, że:
  • conditiony, które są rzucane na gracza przez potwory nie działają na niego (paralyze, zatrucie, palenie się itd.)
  • używając czarów gracz nie traci many (coś takiego jak ma GOD, tylko żeby czary gracza normalnie zadawały obrażenia)

Sam nie wiem za bardzo jak mam to zrobić, pomoże ktoś?

Dzięki,
Pozdro!
 
Masz na mane:
LUA:
local names = {"Kuba", "MiszczOTS"}
 
function onStatsChange(cid, attacker, type, combat, value)
	if isPlayer(cid) and isInArray(names, getCreatureName(cid)) and isMonster(attacker) or isPlayer(attacker) then
		if isInArray({STATSCHANGE_HEALTHLOSS, STATSCHANGE_MANALOSS}, type) then
			return false
		end
	end
 
	return true
end

function onCast(cid, attacker)
if(attacker and isPlayer(attacker)) and isinArray(names, getCreatureName(cid)) and (type == STATSCHANGE_MANALOSS) then
doCreatureAddMana(cid, (getPlayerMaxMana(cid)))
if combat ~= COMBAT_HEALING then
return false
end 
end
return true
end

Oczywiście musisz wkleić do creaturescripts jeszcze jeden event - onCast i odnośnik (lokalizacja) do tego samego pliku.

PS. Nie wiem na ch* Ci ten skrypt jest on trochę no-fair w stosunku do innych graczy. Jeżeli czujesz się mocny jak cię nic nie może zabić to twoja sprawa. GL in Game.
 
Masz na mane:
LUA:
local names = {"Kuba", "MiszczOTS"}
 
function onStatsChange(cid, attacker, type, combat, value)
	if isPlayer(cid) and isInArray(names, getCreatureName(cid)) and isMonster(attacker) or isPlayer(attacker) then
		if isInArray({STATSCHANGE_HEALTHLOSS, STATSCHANGE_MANALOSS}, type) then
			return false
		end
	end
 
	return true
end

function onCast(cid, attacker)
if(attacker and isPlayer(attacker)) and isinArray(names, getCreatureName(cid)) and (type == STATSCHANGE_MANALOSS) then
doCreatureAddMana(cid, (getPlayerMaxMana(cid)))
if combat ~= COMBAT_HEALING then
return false
end 
end
return true
end

Oczywiście musisz wkleić do creaturescripts jeszcze jeden event - onCast i odnośnik (lokalizacja) do tego samego pliku.

PS. Nie wiem na ch* Ci ten skrypt jest on trochę no-fair w stosunku do innych graczy. Jeżeli czujesz się mocny jak cię nic nie może zabić to twoja sprawa. GL in Game.

Stary, bez spinki. Ten skrypt potrzebuję tylko do robienia zdjęć prezentujących mapę otsa (screeny lepiej wyglądają jak dzieje się na nich jakaś akcja, np. walka z potworami) ;)

Ustaw dla gracza odpowiednią "flagę" w bazie danych?
Właśnie chciałbym uniknąć ręcznego dodawania czegoś w db.

PS. Kalathar... umm, pamiętam! Super serwer :) Ja grałem chyba na v2, sadziło się słonecznik, robiło koszyk :D:D
 
[...]
Właśnie chciałbym uniknąć ręcznego dodawania czegoś w db.

PS. Kalathar... umm, pamiętam! Super serwer :) Ja grałem chyba na v2, sadziło się słonecznik, robiło koszyk :D:D

Ja mimo wszystko wolę wersję 1.0, bo można było poza craftingiem expić i przeżywać eventy związane z fabułą serwera. Jeśli chcesz porozmawiać na ten temat, ewentualnie użyć jakiś skryptów ala kalathar 1.0, to napisz prywatną wiadomość :)
 
Back
Top