• 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!

[LUA] Problem z zakresem.

Status
Not open for further replies.

tamburyniarz

New Member
Joined
Apr 29, 2011
Messages
14
Reaction score
0
Witam,
Nie za bardzo wiedziałem jaką dać nazwę tematu, ale do rzeczy. Mam taki skrypt, znalazłem na otlandzie:
Code:
function onStepIn(cid, item, pos, fromPos)
	local t = {
		[7000]={{x=pos.x-1, y=pos.y+1, z=pos.z},{x=pos.x-1, y=pos.y-1, z=pos.z}}, --- lewo
		[7001]={{x=pos.x+1, y=pos.y+1, z=pos.z},{x=pos.x+1, y=pos.y-1, z=pos.z}}, --- prawo
		[7002]={{x=pos.x+1, y=pos.y-1, z=pos.z},{x=pos.x-1, y=pos.y-1, z=pos.z}}, --- gora
		[7003]={{x=pos.x+1, y=pos.y+1, z=pos.z},{x=pos.x-1, y=pos.y+1, z=pos.z}}, --- dol
		[7004]={{x=pos.x+1, y=pos.y+1, z=pos.z},{x=pos.x-1, y=pos.y+1, z=pos.z}},
		[7005]={{x=pos.x+1, y=pos.y+1, z=pos.z},{x=pos.x-1, y=pos.y+1, z=pos.z}},
		[7006]={{x=pos.x+1, y=pos.y+1, z=pos.z},{x=pos.x-1, y=pos.y+1, z=pos.z}}
		}
	local v = t[item.uid]
	if v then
		doSummonCreature('training monk', v[1])
		doSummonCreature('training monk', v[2])
		doSendMagicEffect(v[1],CONST_ME_TELEPORT)
		doSendMagicEffect(v[2],CONST_ME_TELEPORT)
	end
end
 
function onStepOut(cid, item, pos)
	local t = {
		[7000]={{x=pos.x-1, y=pos.y+1, z=pos.z, stackpos = 253},{x=pos.x-1, y=pos.y-1, z=pos.z, stackpos = 253}},
		[7001]={{x=pos.x+1, y=pos.y+1, z=pos.z, stackpos = 253},{x=pos.x+1, y=pos.y-1, z=pos.z, stackpos = 253}},
		[7002]={{x=pos.x+1, y=pos.y-1, z=pos.z, stackpos = 253},{x=pos.x-1, y=pos.y-1, z=pos.z, stackpos = 253}},
		[7003]={{x=pos.x+1, y=pos.y+1, z=pos.z, stackpos = 253},{x=pos.x-1, y=pos.y+1, z=pos.z, stackpos = 253}},
		[7004]={{x=pos.x+1, y=pos.y+1, z=pos.z, stackpos = 253},{x=pos.x-1, y=pos.y+1, z=pos.z, stackpos = 253}},
		[7005]={{x=pos.x+1, y=pos.y+1, z=pos.z, stackpos = 253},{x=pos.x-1, y=pos.y+1, z=pos.z, stackpos = 253}},
		[7006]={{x=pos.x+1, y=pos.y+1, z=pos.z, stackpos = 253},{x=pos.x-1, y=pos.y+1, z=pos.z, stackpos = 253}}
	}
	local v = t[item.uid]
	if v then
		doRemoveCreature(getThingfromPos(v[1]).uid)
		doRemoveCreature(getThingFromPos(v[2]).uid)
		doSendMagicEffect(v[1],CONST_ME_POFF)
		doSendMagicEffect(v[2],CONST_ME_POFF)
		end
end
Chodzi mi o to, żeby dla uid 7004-7006 zrobić coś w stylu:
Code:
[7004-7006]={{x=pos.x+1, y=pos.y+1, z=pos.z},{x=pos.x-1, y=pos.y+1, z=pos.z}}
Ale to oczywiście nie zadziała, nie wiem jak zrobić taki zakres. Liczę na szybką pomoc. :)
Pozdrawiam.
 
Co to za problem dac jedno pod drugim i dac takie same pozycje? Najlatwiejsze rozwiazanie bez kombinowania. Chyba ze masz tego bardzo duzo to zmienia troche zadanie.

Z reszta nie widze sensu robic kilku tych samych zmienych bo nie potrzeba raczej przy tym skrypcie uid tylko aid moge sie mylic.
 
Last edited:
@up,
Potrzeba mi tego dużo, dla przykładu dałem tylko 3, a skrypt potrzebuje uid, a nie aid, więc twoja odpowiedź, nieważne jakby na nią nie spojrzeć, nie jest w żadnym stopniu pomocna.
 
Nie spotkałem się z tzw. "zakresem" przy indeksie - i raczej go nie ma, mogę się mylić - bo nie jestem pewny na 100%. Może wystarczy zmienić budowę tabeli, lub stworzyć pętle, która wszystko prze indeksuje (czy jak, to się tam nazywa). Sposób jest wiele, wystarczą tylko chęci.​
 
Lua:
local indexfrom = 7171
local indexto = 9191
for i = indexfrom, indexto do
    t[i] = {twoja tablica}
end
pisane na kolanie, masz przyklad.
 
Wymietek, dzięki, trochę pokombinowałem i działa. Już teraz wiem jak zastosować to w pętli, jak wcześniej próbowałem to nie wychodziło. Repucik leci. Pozdrawiam.

Edit.
Temat można oczywiście zamknąć.
 
PHP:
function addIndex(fromIndex, toIndex, tableName, value)
	if(type(tableName) ~= "table")then
		print "table "..tableName.." not found."
		return TRUE
	end
	for i=fromIndex, toIndex do
		tableName[i] = value
	end
	return TRUE
end
masz funkcje, kiedyś napisałem bo potrzebowałem
przykład:
PHP:
tablica = {}
addIndex(7004,7006,tablica,{{x=pos.x+1, y=pos.y+1, z=pos.z},{x=pos.x-1, y=pos.y+1, z=pos.z}})
poręczniejsze niż co chwile dawać pętle...
 
No, Azi, fajna funkcja, ale jednak nie skorzystam, bo potrzebuje tylko dwie pętle, więc nie ma po co przepisywać, ale repucik leci, może mi się kiedyś przyda.
 
Status
Not open for further replies.
Back
Top