• logo_cipsoft
    Nowe serwery zostały otwarte 19 Lut 2025:
    Noctalia (Open PvP) Ignitera (Open PvP) us_logo Xybra (Open PvP)

Creaturescripts Kamienie Metin

Status
Zamknięty.

Oskar

Forum friend
Dołączył
Styczeń 24, 2009
Posty
2256
Liczba reakcji
331
W data/creaturescripts/scripts zr?bcie sobie plik i wklejcie do niego:
PHP:
local config = {
				[90] = {m = {'demon','smok','smoczy lord','w?? morski'}, n = {2, 5}},
				[80] = {m = {'Jaszczur Wartownik','Jaszczur Templariusz','Jaszczur Zaklinacz W??y'}, n = {3, 6}},
				[70] = {m = {'Jaszczur Smoczy Kap?an','Jaszczur Gwardzista','Jaszczur Legionista'}, n = {4, 7}},
				[60] = {m = {'Jaszczur Kr?lewski Gwardzista','Jaszczur Wybraniec','Splugawiony Jaszczur'}, n = {5, 8}},
				[50] = {m = {'Nekromanta','Czarnoksi??nik','Mag Ognia','Templariusz'}, n = {9, 12}},
				[40] = {m = {'?ywio?ak Energii','Masywny ?ywio?ak Energii'}, n = {10, 13}},
				[30] = {m = {'Draken Gwardzista','Obrzydliwy Draken'}, n = {11, 14}},
				[20] = {m = {'Drake?ski Tkacz Zakl??','Drake?ski Mistrz Wojenny'}, n = {12, 15}},
				[10] = {m = {'Smok Cienia','Smoczy Lord','w?? morski'}, n = {13, 16}},
				[1] = {m = {'?ywio?ak Ziemi','Masywny ?ywio?ak Ziemi','Potw?r Bagienny'}, n = {14, 17}}
				}
local function getPercent(number, all)
	return (number / all) * 100
end

local function choose(arg)
    return arg[math.random(#arg)]
end

local names = {'name1','name2','name3'}

function onCombat(cid, target)
if isMonster(target) and isInArray(names, getCreatureName(target):lower()) then
	local t = getPercent(getCreatureHealth(target), getCreatureMaxHealth(target))
	if t > 90 then doCreatureSetStorage(target, 1000, 91) end
	for k, v in pairs(config) do
		if k >= t and getCreatureStorage(target, 1000) > k then
			local pos = getThingPos(target)
			for i = 1, math.random(v.n[1], v.n[2]) do
				local s = {x=pos.x,y=pos.y,z=pos.z}
				s.x = pos.x + math.random(-2,2)
				s.y = pos.y + math.random(-2,2)
				doCreateMonster(choose(v.m), pos, false)
			end
			return doCreatureSetStorage(target, 1000, k)
		end
	end
end
return true
end
Do creaturescripts.xml wklejcie:
PHP:
<event type="combat" name="Kamulec" event="script" value="test.lua"/>
Do login.lua dodajcie
PHP:
registerCreatureEvent(cid, "Kamulec")



PHP:
[90] = {m = {'demon','smok','smoczy lord','w?? morski'}, n = {2, 5}},
Liczba w indeksie to procent HP, tablica 'm' to potwory, kt?re zostan? zsummonowane, tablica n to ilo?? potwor?w, kolejno {od, do}

PHP:
local names = {'name1','name2','name3'}
To nazwy potwor?w, kt?re b?d? brane pod uwag? w skrypcie.
 
Odp: Kamienie Metin

Heh takie sobie jak na ciebie;D
mam pytanie czy ten metin..summonuje potworki czy one sa hmm..Normalne??
 
Odp: Kamienie Metin

doCreateMonster
Wi?c chyba tworzy normalne

#top
Na lua sie nie znam ale czy jest sens tworzy? funkcje z kt?rej korzysta si? tylko raz ??
Jak juz napisa?em na lua si? nie znam, wi?c si? nie wypowiem jako? konstruktywnie
 
Odp: Kamienie Metin

Teraz summonuje potworki, czyli s? pod w?adz? kamienia. Warunkiem jest by w pliku potwora 'zaznaczone' by?o conviceable na "1".

#up
Ka?dy pisze skrypty jak chce. Mo?esz wrzuci? te funkcje do liba i u?ywa? je wsz?dzie gdzie tylko chcesz. Twoja wola.
 
Odp: Kamienie Metin

Zaraz dodam na Nivira, i wtedy ludzie b?d? mieli ubaw, tylko troszk? pododawa? tych potwork?w trzeba.

Pozdro.
 
Odp: Kamienie Metin

e mi to nie dzia?a ;/ potwora zrobi?em dalej wszystko tak jak tutaj jest ale nie summonuje nic ;p
 
Odp: Kamienie Metin

?wietne, ciekawy pomys?. Pewnie grasz w metina (?), ?e na niego wpad?e??
A tak btw. da?o by rade, ?eby si? respi? w r??nych miejscach ka?dego dnia?
Jakby? m?g? to prosz? napisz co? takiego, bo ja sie nie znam na skryptach tak skomplikowanych (przynajmniej dla mnie xD).

@Edit: Dzia?a - tj. przyzywa moby ale jest jeden ma?y problem.
Ot?? przyzywa moby tylko dooko?a siebie (zaraz 1 kratk? ko?o siebie) a je?li jest ich wi?cej ni? 8 (jest 8 kratek dooko?a kamienia, a gdy do tego stoi gracz to jeszcze mniej) a za te kt?rych nie przyzwa? wywala b??dy w konsoli :
errorstoneofbattle.png
 
Ostatnia edycja:
Odp: Kamienie Metin

#up
Nie, nie gram w Metina. Kiedy? znajomy poleci? mi w to pogra?, ale nie zabawi?em d?ugo w tej grze.
Co do tworzenia takich kamieni w losowym miejscu na mapie. Nie chce mi si? tego pisa?. Niestety.

PHP:
local config = {
				[90] = {m = {'demon','smok','smoczy lord','w?? morski'}, n = {2, 5}},
				[80] = {m = {'Jaszczur Wartownik','Jaszczur Templariusz','Jaszczur Zaklinacz W??y'}, n = {3, 6}},
				[70] = {m = {'Jaszczur Smoczy Kap?an','Jaszczur Gwardzista','Jaszczur Legionista'}, n = {4, 7}},
				[60] = {m = {'Jaszczur Kr?lewski Gwardzista','Jaszczur Wybraniec','Splugawiony Jaszczur'}, n = {5, 8}},
				[50] = {m = {'Nekromanta','Czarnoksi??nik','Mag Ognia','Templariusz'}, n = {9, 12}},
				[40] = {m = {'?ywio?ak Energii','Masywny ?ywio?ak Energii'}, n = {10, 13}},
				[30] = {m = {'Draken Gwardzista','Obrzydliwy Draken'}, n = {11, 14}},
				[20] = {m = {'Drake?ski Tkacz Zakl??','Drake?ski Mistrz Wojenny'}, n = {12, 15}},
				[10] = {m = {'Smok Cienia','Smoczy Lord','w?? morski'}, n = {13, 16}},
				[1] = {m = {'?ywio?ak Ziemi','Masywny ?ywio?ak Ziemi','Potw?r Bagienny'}, n = {14, 17}}
				}
local function getPercent(number, all)
	return (number / all) * 100
end

local function choose(arg)
    return arg[math.random(#arg)]
end

local names = {'name1','name2','name3'}

function onCombat(cid, target)
if isMonster(target) and isInArray(names, getCreatureName(target):lower()) then
	local t = getPercent(getCreatureHealth(target), getCreatureMaxHealth(target))
	if t > 90 then doCreatureSetStorage(target, 1000, 91) end
	for k, v in pairs(config) do
		if k >= t and getCreatureStorage(target, 1000) > k then
			local pos = getThingPos(target)
			for i = 1, math.random(v.n[1], v.n[2]) do
				local s = {x=pos.x,y=pos.y,z=pos.z}
				s.x = pos.x + math.random(-2,2)
				s.y = pos.y + math.random(-2,2)
				doCreateMonster(choose(v.m), pos, false)
			end
			return doCreatureSetStorage(target, 1000, k)
		end
	end
end
return true
end
 
Odp: Kamienie Metin

dobra dzia?a ju? ale wywala b??dy w konsoli jak nie da si? z summonowa? ;p tak jak u pana Atyhlon
 
Odp: Kamienie Metin

No dobrze, nowy kod sprawdzi?em niby jest zapisane, ?e ma tworzy? potwory -2,2 ale nadal robi je tak jak poprzednio i ten sam error ;/ Gdyby da?o si? to jeszcze inaczej zapisa? (silnik TFS 0.4 DEV)

@Resp w losowych miejscach - szkoda, ale jak by? mia? czas... xD (nie zmuszam)
 
Ostatnia edycja:
Odp: Kamienie Metin

@up
skrypty pomiedzy tfs 0.3.6 a 0.4 sie niczym nie roznia. jedyna roznica jest w modach
@offtop
btw. facet wam da? za free skrypt za ktory normalnie buli sie 40zl a wy jeszcze zydzicie ze nie dziala omg...
 
Odp: Kamienie Metin

PHP:
config = {
        [1] = {name="Earth Stone", pos={x=1100, y=1012, z=6}},
        [2] = {name="Icy Stone", pos={x=1100, y=1012, z=6}},
        [3] = {name="Fire Stone", pos={x=1100, y=1012, z=6}},
        [4] = {name="Wind Stone", pos={x=1100, y=1012, z=6}},
}

function onThink(interval)
    local monst = config[math.random(1, #config)]
    if not(monst) then return TRUE end
    doCreateMonster(monst.name,monst.pos)
    doBroadcastMessage('[Event Stones]\n '.. monst.name ..' have been spawn. Find and defeat it!', 22)
    return TRUE
end
Here you are, szczerze m?wi?c to pr?bowa?em kiedy? napisa? ten skrypt i nawet poprosi?em o pomoc na otland'zie lecz nikt nie zechcia? naprowadzi? na dobre tory.
Tak my?la?em ?e mo?na by te? zrobi? funkcj? onThink i p??niej sprawdza? hp boss'a
If getCreatureHealth(cid) <= getCreatureMaxHealth(cid)*0.5 then -- if 50% bla bla
doSpawnShit(blabla).

Tak poza tym nie bardzo mi chce dzia?a? 0 b??d?w w konsoli i 0 potwor?w w grze.

Pozdrawiam
Bufo
 
Ostatnia edycja:
Odp: Kamienie Metin

@Bufo - dzi?ki za kodzik przyda si?, a tak btw. Client dzia?a?

@Dubler - to zale?y, bo s? zmienione funkcje xD
A, i sry, ?e jak to uj??e? "?ydze, ?e nie dzia?a" ale serio fajny skrypt a przez ten spawn si? wszystko wali, chocia? w kodzie jest zapisane:
Kod:
local s = {x=pos.x,y=pos.y,z=pos.z}
s.x = pos.x + math.random(-2,2)
s.y = pos.y + math.random(-2,2)
 
Status
Zamknięty.
Do góry