What's new

Talkactions Serek Event

Status
Not open for further replies.

NaStyk

User
Joined
Sep 24, 2012
Messages
25
Reaction score
0
Witam. Dzisiaj przedstawiam Wam Serek Event.

Opis: Po wpisaniu /serek go losuje si? jedzenie. Je?eli przed graczem wypadnie ser to teleportuje go do okre?lonej pozycji.

Code:
local ustawienia = {
	items = {2672, 2362, 2671, 2666, 2696}, -- Lista jedzenia
	}
	
function onSay(cid, words, param)
	if(param == '') then
		return true
	end
	
	if(param == 'go') then
		return addEvent(spawnItem, 1)
	end	
end
 
function spawnItem(created)	
	local smiec = ustawienia.items[math.random(1, #ustawienia.items)]
	local smiec2 = ustawienia.items[math.random(1, #ustawienia.items)]
	local smiec3 = ustawienia.items[math.random(1, #ustawienia.items)]
	local smiec4 = ustawienia.items[math.random(1, #ustawienia.items)]
	local smiec6 = ustawienia.items[math.random(1, #ustawienia.items)]
	local smiec7 = ustawienia.items[math.random(1, #ustawienia.items)]
	local smiec8 = ustawienia.items[math.random(1, #ustawienia.items)]
	
	doCreateItem(smiec, 1, {x=996, y=997, z=5}) -- Gdzie ma si? losowa? jedzenie (pozycja)
	doCreateItem(smiec2, 1, {x=997, y=997, z=5}) -- Gdzie ma si? losowa? jedzenie (pozycja)
	doCreateItem(smiec3, 1, {x=998, y=997, z=5}) -- Gdzie ma si? losowa? jedzenie (pozycja)
	doCreateItem(smiec4, 1, {x=999, y=997, z=5}) -- Gdzie ma si? losowa? jedzenie (pozycja)
	doCreateItem(smiec6, 1, {x=1001, y=997, z=5}) -- Gdzie ma si? losowa? jedzenie (pozycja)
	doCreateItem(smiec7, 1, {x=1002, y=997, z=5}) -- Gdzie ma si? losowa? jedzenie (pozycja)
	
	addEvent(won, 250)
	addEvent(remove, 500)
	
end

function won()	
    local pos = {x=1002,y=1001,z=7} -- Pozycja temple

	if(getTileItemById({x=996, y=997, z=5}, 2696).itemid == 2696) then -- Na jakiej pozycji ma byc serek, aby wywalilo gracza z pozycji nizej
		if isPlayer(getTopCreature({x= 996, y = 995, z = 5}).uid) then -- Na jakiej pozycji ma byc gracz, aby go wywalilo
			return doTeleportThing(getTopCreature({x= 996, y = 995, z = 5}).uid, pos) -- Na jakiej pozycji ma byc gracz, aby go wywalilo
		end
	end
	
	if(getTileItemById({x=997, y=997, z=5}, 2696).itemid == 2696) then -- Na jakiej pozycji ma byc serek, aby wywalilo gracza z pozycji nizej
		if isPlayer(getTopCreature({x= 997, y = 995, z = 5}).uid) then -- Na jakiej pozycji ma byc gracz, aby go wywalilo
			doTeleportThing(getTopCreature({x= 997, y = 995, z = 5}).uid, pos) -- Na jakiej pozycji ma byc gracz, aby go wywalilo
		end
	end
	
	if(getTileItemById({x=998, y=997, z=5}, 2696).itemid == 2696) then -- Na jakiej pozycji ma byc serek, aby wywalilo gracza z pozycji nizej
		if isPlayer(getTopCreature({x= 998, y = 995, z = 5}).uid) then -- Na jakiej pozycji ma byc gracz, aby go wywalilo
			doTeleportThing(getTopCreature({x= 998, y = 995, z = 5}).uid, pos) -- Na jakiej pozycji ma byc gracz, aby go wywalilo
		end
	end
	
	if(getTileItemById({x=999, y=997, z=5}, 2696).itemid == 2696) then -- Na jakiej pozycji ma byc serek, aby wywalilo gracza z pozycji nizej
		if isPlayer(getTopCreature({x= 999, y = 995, z = 5}).uid) then -- Na jakiej pozycji ma byc gracz, aby go wywalilo
			doTeleportThing(getTopCreature({x= 999, y = 995, z = 5}).uid, pos) -- Na jakiej pozycji ma byc gracz, aby go wywalilo
		end
	end
	
	if(getTileItemById({x=1000, y=997, z=5}, 2696).itemid == 2696) then -- Na jakiej pozycji ma byc serek, aby wywalilo gracza z pozycji nizej
		if isPlayer(getTopCreature({x= 1000, y = 995, z = 5}).uid) then -- Na jakiej pozycji ma byc gracz, aby go wywalilo
			doTeleportThing(getTopCreature({x= 1000, y = 995, z = 5}).uid, pos) -- Na jakiej pozycji ma byc gracz, aby go wywalilo
		end
	end
	
	if(getTileItemById({x=1001, y=997, z=5}, 2696).itemid == 2696) then -- Na jakiej pozycji ma byc serek, aby wywalilo gracza z pozycji nizej
		if isPlayer(getTopCreature({x= 1001, y = 995, z = 5}).uid) then -- Na jakiej pozycji ma byc gracz, aby go wywalilo
			doTeleportThing(getTopCreature({x= 1001, y = 995, z = 5}).uid, pos) -- Na jakiej pozycji ma byc gracz, aby go wywalilo
		end
	end
	
	if(getTileItemById({x=1002, y=997, z=5}, 2696).itemid == 2696) then -- Na jakiej pozycji ma byc serek, aby wywalilo gracza z pozycji nizej
		if isPlayer(getTopCreature({x= 1002, y = 995, z = 5}).uid) then -- Na jakiej pozycji ma byc gracz, aby go wywalilo
			doTeleportThing(getTopCreature({x= 1002, y = 995, z = 5}).uid, pos) -- Na jakiej pozycji ma byc gracz, aby go wywalilo
		end
	end
end

function remove()
	doCleanTile({x=996, y=997, z=5}, false) -- Pozycja jedz
	doCleanTile({x=997, y=997, z=5}, false) -- Pozycja jedzenia (usuwa po 500ms)
	doCleanTile({x=998, y=997, z=5}, false) -- Pozycja jedzenia (usuwa po 500ms)
	doCleanTile({x=999, y=997, z=5}, false) -- Pozycja jedzenia (usuwa po 500ms)
	doCleanTile({x=1000, y=997, z=5}, false) -- Pozycja jedzenia (usuwa po 500ms)
	doCleanTile({x=1001, y=997, z=5}, false) -- Pozycja jedzenia (usuwa po 500ms)
	doCleanTile({x=1002, y=997, z=5}, false) -- Pozycja jedzenia (usuwa po 500ms)
end

Wiem, ?e kod jest w uj nie optymalny, ale dopiero si? ucz?, a moje plany si? zmieni?y i pewnie usun??bym ten kod :)
Wi?c daje go Wam za darmo :D
 

Placek

Blue Waffle
Joined
Sep 30, 2008
Messages
6,793
Reaction score
672
Age
9
Odp: Serek Event

Bez sensu, wszystko skopiowane x razy, zero optymalizacji, zero petli, zero tablic... Co to ma byc za smietnik? Przeciez takich skryptow sie nie uzywa...
 

NaStyk

User
Joined
Sep 24, 2012
Messages
25
Reaction score
0
Odp: Serek Event

Zrobi?bym p?tle for tylko, ?e nie wiedzia?em jak zrobi? np. do pozycji x +1
 

Patrykoseqrox

Advanced User
Joined
Jul 12, 2009
Messages
359
Reaction score
18
Odp: Serek Event

Ca?kiem dobre to :)
Tylko troch? ma?o optymalizacji..
Ocena 4/6
 

Raa

Senior User
Joined
Aug 9, 2009
Messages
715
Reaction score
50
Age
29
Odp: Serek Event

#up
Code:
for i = 1, 5 do
   pos.x=pos.x+1
end

---------- Tre?? dodana o 20:53 ----------

Code:
local ustawienia = {
	items = {2672, 2362, 2671, 2666, 2696}, -- Lista jedzenia
	}
	
function onSay(cid, words, param)
	if(param == '') then
		return true
	end
	
	if(param == 'go') then
		return addEvent(spawnItem, 1)
	end	
end

function spawnItem(created)	
	local pos = {x=996, y=997, z=5}
	for i = 1, 8 do
		doCreateItem(ustawienia.items[math.random(1, #ustawienia.items), 1, pos]
		pos.x=pos.x+1
	end
	
	addEvent(won, 250)
	addEvent(remove, 500)
	
end

function won()	
    local pos = {x=1002,y=1001,z=7} -- Pozycja temple
	local spos = {x=996, y=997, z=5};
	local gpos = {x= 996, y = 995, z = 5}
	for i = 1, 8 do
		if(getTileItemById(spos, 2696).itemid == 2696 then
			if isPlayer(getTopCreature(gpos).uid) then
				doTeleportThing(getTopCreature({x= 996, y = 995, z = 5}).uid, pos)
			end
		end
		spos.x=spos.x+1
		gpos.x=gpos.x+1
	end
end

function remove()
	local pos = {x=996, y=997, z=5}
	for i = 1, 8 do
		doCleanTile(pos, false)
		pos.x=pos.x+1
	end
end
Tu masz przy u?yciu p?tli for.
Oczywi?cie skrypt mo?na by by?o napisa? w o wiele ?adniejszy spos?b, ale nie chcia?o mi si? my?le?. Szczeg?lnie, ?e nie wiem co on nawet roib.

ps.
Do wszystkich co pisz? o optymalizacji.
Niezale?nie czy by?y by tam p?tle, tablice, funkcje czy klasy zu?ycie pami?ci by?o by praktycznie takie samo. [Jak nie takie samo]
 
Status
Not open for further replies.
Top