Reklama
Pokazuje wyniki od 1 do 5 z 5

Temat: [8.2] NPC "rozdający" questy

  1. #1
    makus18

    Domyślny [8.2] NPC "rozdający" questy

    Chciałbym, aby był sobie npc, który będzie nam "dawał" questy, i po powrocie z danym itemkiem do niego (NPC) dostajemy nagrodę.

    Np.: NPC mówi nam, że mamy przynieść 10 meat, po przyniesieniu dostajemy nagrodę, np. carlin sword'a.

    Więc, mam nadzieję, że pomożecie ;D

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

    Domyślny

    Cytuj makus18 napisał Pokaż post
    Cytat został ukryty, ponieważ ignorujesz tego użytkownika. Pokaż cytat.
    Chciałbym, aby był sobie npc, który będzie nam "dawał" questy, i po powrocie z danym itemkiem do niego (NPC) dostajemy nagrodę.

    Np.: NPC mówi nam, że mamy przynieść 10 meat, po przyniesieniu dostajemy nagrodę, np. carlin sword'a.

    Więc, mam nadzieję, że pomożecie ;D
    Do sprawdzania, czy gracz nie wykonuje questa drugi raz użyj storage value (google it), funkcja, która sprawdza, czy gracz ma item, to getPlayerItemCount(cid, id_itemu), a funkcja, która daje item, to doPlayerAddItem(cid, id_itemu). Po prostu zrób coś w stylu:

    Kod PHP:
    if getPlayerStorageValue(cid, id_storage) == -1 then
    	if getPlayerItemCount(cid, id_meat) >= mininalna_ilosc then
    		doPlayerAddItem(cid, id_nagrody)
    		doPlayerRemoveItem(cid, id_meat, minimalna_ilosc)
    		setPlayerStorageValue(cid, id_storage, 1)
    	else
    		selfSay("Masz zbyt malo kawalkow miesa!", cid)
    	end
    else
    	selfSay("Juz wykonales te misje, przyjacielu!", cid)
    end
    No, a ogół NPCa to już sam sobie napisz, albo zerżnij skądś :-)
    Ostatnio zmieniony przez Grim90 : 09-06-2010, 15:53
    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

  3. #3
    makus18

    Domyślny

    Dobra, a jak zrobić, aby jeden NPC, kazal nam iść do drugiego? tylko, że jak już ktoś wykona tę misję, już się nie wyświetlała?

  4. Reklama
  5. #4
    Avatar Grim90
    Data rejestracji
    2007
    Położenie
    Toruń / Brzozówka
    Wiek
    35
    Posty
    586
    Siła reputacji
    18

    Domyślny

    Cytuj makus18 napisał Pokaż post
    Cytat został ukryty, ponieważ ignorujesz tego użytkownika. Pokaż cytat.
    Dobra, a jak zrobić, aby jeden NPC, kazal nam iść do drugiego? tylko, że jak już ktoś wykona tę misję, już się nie wyświetlała?
    Za pomocą storage value. Z wykonaniem questa on się zmienia. Jeśli wynosi tyle, to niech NPC robi jedno, a jak wynosi tyle, to niech robi co inne.
    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

  6. #5
    makus18

    Domyślny

    No wiec zrobiłem coś takiego:

    Kod :
    local focus = 0
    local talk_start = 0
    local target = 0
    local following = false
    local attacking = false
    function onThingMove(creature, thing, oldpos, oldstackpos)
    end
    function onCreatureAppear(creature)
    end
    function onCreatureDisappear(cid, pos)
      	if focus == cid then
              selfSay('shitsurei shimasu')
              focus = 0
              talk_start = 0
      	end
    end
    function onCreatureTurn(creature)
    end
    function msgcontains(txt, str)
      	return (string.find(txt, str) and not string.find(txt, '(%w+)' .. str) and not string.find(txt, str .. '(%w+)'))
    end
    function onCreatureSay(cid, type, msg)
      	msg = string.lower(msg)
      	if (msgcontains(msg, 'hi')
    		or msgcontains(msg, 'hiho')
    		or msgcontains(msg, 'cze')
    		or msgcontains(msg, 'siema')
    		or msgcontains(msg, 'czesc')
    		or msgcontains(msg, 'elo')
    		or msgcontains(msg, 'dziendobry')
    		or msgcontains(msg, 'yo')
    		or msgcontains(msg, 'hello') and (focus == 0)) and getDistanceToCreature(cid) < 4 then
      		selfSay('Witaj, ' .. getCreatureName(cid) .. '! Chcesz moze komus pomoc, a przy okazji zarbic co nie co? Jezeli tak to dobrze trafiles - pisz zadanie1, zadanie2 itd. aby otrzymac zadanie.')
      		focus = cid
      		talk_start = os.clock()
      	elseif msgcontains(msg, 'hi')
    		or msgcontains(msg, 'hiho')
    		or msgcontains(msg, 'cze')
    		or msgcontains(msg, 'siema')
    		or msgcontains(msg, 'czesc')
    		or msgcontains(msg, 'elo')
    		or msgcontains(msg, 'dziendobry')
    		or msgcontains(msg, 'yo')
    		or msgcontains(msg, 'hello') and (focus ~= cid) and getDistanceToCreature(cid) < 4 then
      		selfSay('Chwilke')
    	elseif focus == cid then
    		talk_start = os.clock()
    	elseif msgcontains(msg, 'misija1') or msgcontains(msg, 'misja 1') or msgcontains(msg, 'zadanie1') or msgcontains(msg, 'zadanie 1') or msgcontains(msg, 'quest1') or msgcontains(msg, 'quest 1') then
    			if getPlayerStorageValue(cid,1095) == 3 then
    				selfSay('Nie oszukuj, te misje mozna wykonac tylko raz!')
    			else
    				if getPlayerStorageValue(cid,1095) == 2 then
                     			if doPlayerRemoveItem(cid,2217,1) == 0 then
    		  				selfSay('Czy aby na pewno pomogles kaziowi?')
    					else 
    						selfSay('Wiec tego chcial Kaziu. Bardzo ubolewa strate zony, ale takie jest juz zycie shinobi, czasem jedna osoba musi sie poswiecic dla dobra ogolu. No nic, oto twoja nagroda')
    						doPlayerAddItem(cid,7845,1)
    						setPlayerStorageValue(cid,1095,3)
    					end
     				else
    					if getPlayerStorageValue(cid,1095) <= 1 then
    						selfSay('Idz do Kazia, slyszalem, ze potrzebuje pomocy!')
    						setPlayerStorageValue(cid,1095,2)
            		end
    				end
    					end
    	elseif msgcontains(msg, 'bye')
    		or msgcontains(msg, 'nara')
    		or msgcontains(msg, 'narx')
    		or msgcontains(msg, 'czesc')
    		or msgcontains(msg, 'elo')
    		or msgcontains(msg, 'goodbye')
    		or msgcontains(msg, 'bb') and getDistanceToCreature(cid) < 4 then
    			selfSay('shitsurei shimasu, ' .. getCreatureName(cid) .. ' san')
    			focus = 0
    			talk_start = 0
    	     end
           end
    function onCreatureChangeOutfit(creature)
    end
    function onThink()
     if (os.clock() - talk_start) > 30 then
      		if focus > 0 then
      			selfSay('shitsurei shimasu!')
      		end
      			focus = 0
      	end
     	if focus ~= 0 then
     		if getDistanceToCreature(focus) > 5 then
     			selfSay('Zegnaj.')
     			focus = 0
     		end
     	end
    end
    Tylko dlaczego, gdy napisze do niego "misja1" lub cos w takiego, nie chce mi odpowiedziec: "Idz do Kazia, slyszalem, ze potrzebuje pomocy!"?
    Mógł by ktoś go przerobić, aby było tak jak chce ?
    Ostatnio zmieniony przez makus18 : 10-06-2010, 15:57

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. Questy "obowiązkowe"
    Przez Safios w dziale Tibia
    Odpowiedzi: 15
    Ostatni post: 19-08-2011, 22:38
  2. Questy, questy i jeszcze wiecej questów.
    Przez moth w dziale Tibia
    Odpowiedzi: 6
    Ostatni post: 10-01-2011, 17:20
  3. Odpowiedzi: 12
    Ostatni post: 02-01-2009, 11:05

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
  •