Reklama
Pokazuje wyniki od 1 do 2 z 2

Temat: [8.4+]findItem - prosta funkcja poszukująca dany przedmiot

  1. #1
    Avatar Grim90
    Data rejestracji
    2007
    Położenie
    Toruń / Brzozówka
    Wiek
    34
    Posty
    586
    Siła reputacji
    17

    Domyślny [8.4+]findItem - prosta funkcja poszukująca dany przedmiot

    Jak wiadomo, do pobrania przedmiotu z pozycji służy getThingFromPos. Jej zastosowanie byłoby w sumie niezastąpione, lecz są sytuacje, gdy stackpos naszego poszukiwanego przedmiotu się zmienia.

    Przykładowo pobieramy dźwignię z pozycji X Y Z, Stackpos. Naciskając przycisk w grze, skrypt sprawdza stan dźwigni. Dajmy na to, że dźwignia leży na ziemi. Skrypt pobiera ze stackpos 1, bo tyle wynosi. Ok, działa, ale teraz postawmy potwora na miejsce dźwigni i uderzmy go. Co się stało? Pojawiło się pole krwi! Jak się okazuje stackpos dźwigni zmienił się z 1 na 2! W tym momencie cały skrypt nam nawala, dopóki krew nie zniknie. A jeśli mamy doTransformItem? Łoo, wówczas może się nieźle namieszać. Takich sytuacji może być więcej, ale można temu łatwo zapobiec.

    W związku z tym stworzyłem taką prostą funkcję, która wyszukuje przedmiot poprzez nazwę, lub ID:
    Kod PHP:
    function findItem(tablica, param, deep)
    	if tablica == nil or param == nil then
    		print("Error, the parameter is not specified!")
    		return false
    	end
    	local search = 3
    	if deep > 0 then
    		search = deep
    	end
    	for i = 0, search do -- glebokosc
    		local thing = getThingFromPos( { x = tablica.x, y = tablica.y, z = tablica.z, stackpos = i} )
    		if isNumber(param) then
    			if thing.itemid == param then
    				return thing
    			end
    		else
    			if getItemName(thing.uid) == param then
    				return thing
    			end
    		end
    	end
    	return 0
    end
    Wystarczy ją użyć tak:
    Kod:
    local switch = findItem( { x = 222, y = 333, z = 444 }, "switch", 253 )
    Piszę skrypty do OTS. Chcesz mieć unikalny quest, lub skrypt na swoim serwerze? Pisz do mnie. Na pewno się dogadamy.
    Piszę skrypty PHP, strony oraz gotowe serwisy, jeśli jesteś zainteresowany, napisz.
    http://radeg.pl

    Masz facebooka? Zapraszamy do grupy: Grim OTS!
    http://www.facebook.com/?ref=logo#!/...07707075989449

  2. #2
    Avatar bolek
    Data rejestracji
    2005
    Położenie
    -
    Wiek
    33
    Posty
    493
    Siła reputacji
    19

    Domyślny

    Po co?

    1. getTileItemById(pos, itemId, <optional> subType)
    2. getTileItemByType(pos, type)
    3. getTopCreature(pos)

    1. Pobierze pierwszy item na danym tile z takim id i ewentualnym typie (np. mana fluid = 7)
    2. Pobierze pierwszy item na danym tile z typem (np. life fluid = 10)
    3. Pobierz pierwszą kreaturę od góry.

    Myśleć, a nie pisać nie wiadomo po co, skoro wszystko jest pod nosem, trzeba tylko się zniżyć i zobaczyć.
    Ostatnio zmieniony przez bolek : 21-08-2010, 15:08

  3. Reklama
Reklama

Informacje o temacie

Użytkownicy przeglądający temat

Aktualnie 1 użytkowników przegląda ten temat. (0 użytkowników i 1 gości)

Podobne tematy

  1. Prosta funkcja w EXEL/CALC za premium na torgu
    Przez CZARU w dziale O wszystkim i o niczym
    Odpowiedzi: 16
    Ostatni post: 14-12-2016, 16:57
  2. program automatycznie robiacy screen hoty i wysylajacy je na dany email
    Przez Pumpkin w dziale Sprzęt i oprogramowanie
    Odpowiedzi: 3
    Ostatni post: 16-10-2011, 12:02
  3. Odpowiedzi: 2
    Ostatni post: 20-12-2010, 13:25
  4. [8.54] Jak sprawdzić czy dany item jest walkable
    Przez hin3r w dziale Strefa developerska
    Odpowiedzi: 0
    Ostatni post: 29-08-2010, 20:22
  5. distance fighting ilość kamieni na dany skill
    Przez Knighcik Motyl w dziale Tibia
    Odpowiedzi: 3
    Ostatni post: 14-05-2010, 23:28

Zakładki

Zakładki

Zasady postowania

  • Nie możesz pisać nowych tematów
  • Nie możesz pisać postów
  • Nie możesz używać załączników
  • Nie możesz edytować swoich postów
  •