What's new

function onAddItem

Status
Not open for further replies.

Vergil93

Advanced User
Joined
Jun 19, 2010
Messages
263
Reaction score
6
Witam,
Jak wiadomo potrafi? jako tako pisa? skrypty, ale tej funkcji po dzi? dzie? nie potrafi? rozgry??. Znaczy si? wiem jak dzia?a, ale nie potrafi? jej wykorzysta?.
Je?li kto? jest w stanie pom?c w tym skrypcie:
PHP:
function onAddItem(moveitem, tileitem, pos)
local items = {11652,11653,11654}
for i=1, #items do
	if moveitem.itemid == items[i] and tileitem.uid == 1395 then
		doRemoveItem(moveitem.uid, 1)
	end
end
return true
end
Taki szkielet, wi?c nie kierowa? mi si? nim za bardzo.
Chc? zrobi? by skrypt sprawdza? czy na danej pozycji s? dwa z trzech item?w podanych w tabelce i czy trzeci jest tym trzecim z tabelki.
Dla przyk?adu - mamy itemki o id 11652 oraz 11653 na jakiej? tam kratce, k?adziemy item o id 11654 i co? si? tam dzieje (usuwa wszystkie trzy itemy.

#2 down
Ale ja wiem do czego ta funkcja s?u?y, pisz? ?e nie wiem jak si? jej u?ywa.
 

dominikms1

Senior User
Joined
Feb 6, 2010
Messages
696
Reaction score
66
Odp: function onAddItem

tileitem.uid << to jest zmienna, kt?ra jest odczytywana i dopisywana zawsze +1 (no chyba, ?e przypisa?e? sta?e uid)
u?ywaj tileitem.itemid


Polecam taki skrypcik, dodaj go do data/lib
PHP:
function findItemPos(itemid, pos) --By DominikMS
local status = 0
for i=0,255 do
local tmp = {x=pos.x, y=pos.y, z=pos.z, stackpos=i}
local item = getThingFromPos(tmp)

	if item.itemid == itemid then
		status = 1
		newitem = item.uid
	end
end
	if status == 1 then
		return newitem
	end
	return 0
end


A wi?c to chyba tak powinno wygl?da?:
PHP:
function onAddItem(moveItem, tileItem, pos, cid)
    --if tileitem.uid ~= 1395 then return true end
--^^ tutaj mo?esz ustawi? sta?y uid, czyli tylko tam zadzia?a ten skrypt
local items = {11652,11653,11654}
local status = 0
    for i, v in ipairs(items) do
        item = doFindItemInPos(v, pos)
        if item > 0 then
            status = status + 1
        end
    end

    if status == #items then
        for i, v in ipairs(items) do
            item = doFindItemInPos(v, pos)
            doRemoveItem(item)
            --tutaj dalej twoj skrypt
        end
    end
    return true
end
Testowane, dzia?a ;)
 
Last edited:

sawex

Advanced User
Joined
Aug 17, 2008
Messages
421
Reaction score
23
Odp: function onAddItem

W tej funkcji chodzi o to ?e jak sie dany item przestawi to sie co? dzieje..
Ja mia?em taki quest ?e jak sie mape ze sto? chcia?o zapieprzy? to sie alarm w?acza? i stra?nicy przybywali :O
 

Sassin

Forum friend
Joined
Jun 13, 2009
Messages
1,281
Reaction score
107
Odp: function onAddItem

#up
On wie co czego s?u?y, lecz nie potrafi jej wykorzysta? - czytaj ze zrozumieniem.

###
W?a?ciwie to nie lepiej by?oby Ci po prostu sprawdzi? wszystkie parametry tej funkcji - i ju? umiesz j? wykorzystywa?. Wszystko sk?ania si? ku temu czy umiesz korzysta? z ipairs, a jak nie to Rahim napisa? bardzo fajny poradnik i jest na forum. - http://tibia.net.pl/lua-xml/200234-lua-dla-zaawansowanych.html
 

Vergil93

Advanced User
Joined
Jun 19, 2010
Messages
263
Reaction score
6
Odp: function onAddItem

Poszed?em za rad? Sassina i sprawdzi?em po kolei wszystkie sta?e i napisa?em ten skrypt bez jakich? tam funkcji xd
Dzi?ki wszystkim, mo?na zamkn??.
 
Status
Not open for further replies.
Top