OTS Fans

Witamy Na OTS Fans, Przeczytaj Regulamin lub Zarejestruj się.

  • Nie jesteś zalogowany.
  • Polecamy: Gry

#1 2011-04-17 06:05:38

 Wielki Buch

Założyciel

Skąd: Olecko
Zarejestrowany: 2011-04-14
Posty: 1014
Punktów :   
Czy Lubisz Tibie?: Only 7.6

[Press-Play] Wydobycie miecza ze skaly

Autorem Jest Steel
Oryginalny Temat


Witam serdecznie

Stworzylem dla Was pewien skrypcik

Opis

Skrypt ma za zadanie "Wydobywac miecz ze skaly" po wykonaniu okreslonej misji. Dziala on na zasadzie losowania, w ktorym bierze gracz podczas uzycia skryptu.
Skryptu mozna uzyc raz na restart serwera
Wystawiam Wam zarowno skrypt, jak i NPC. Skrypt zostal wymyslony i stworzony przeze mnie, natomiast dziekuje rowniez Baabuskowi za podawane pomysly na rozwiazanie ewentualnych problemow


Instalacja


Zacznijmy od skryptu na samo wyciaganie miecza ze skaly

Najpierw przygotujmy sobie przestrzen na mapie, gdzie taki skrypt umiescic
U mnie wyglada to tak:
<<SCREEN>>
Nastepnie, wejdz w actions/actions.xml i wklejcie:

Kod:

<action uniqueid="5755" script="miecz_w_skale.lua" />

Po wykonaniu tej czynnosci wejdzcie do katalogu actions/scripts i stworzcie plik o nazwie miecz w skale z rozszerzeniem *LUA po czym wklej do niego ten oto skrypt:

Kod:

--[[
[url]www.press-play.pl[/url]

Skrypt wykonany przez Steel
Pomoc: Baabuseek
]]

function onUse(cid, item, frompos, item2, topos)

quest = getPlayerStorageValue(cid,7544) 
        if quest <= 1 then
            doPlayerSendTextMessage(cid,22,"Ani drgnie...")
            end
            
pos = {x=374, y=438, z=7, stackpos=1} -- WAZNE! POZYCJA MIECZA <zmien na wlasna>
los = math.random(1, 100)
quest = getPlayerStorageValue(cid,7544)
npos =  getThingfromPos(pos)
doRemoveItem(npos.uid,1)            
            
    if quest == 2 then
    if    item.uid == 5755 and
        item.itemid == 1945 and
        los == 1 then
        doCreateItem(2160,1,cid)
        doPlayerSendTextMessage(cid,22,"Wydobyles miecz!")
        doSendMagicEffect(pos,3)
        doTransformItem(item.uid,item.itemid+1)
        doRemoveItem(npos.uid,1)    
    elseif item.itemid == 1945 and los >= 2 then
        doPlayerSendTextMessage(cid,22,"Nie udalo Ci sie wydobyc miecza")
        doTransformItem(item.uid,item.itemid+1)
    end
        

         
        if item.itemid == 1946 then
            doPlayerSendTextMessage(cid,22,"Musisz poczekac, zanim mechanizm znow zacznie dzialac")
        end

    
    end
    return 1
end

NIE ZAPOMNIJ O ZMIANIE WSPOLRZEDNYCH NA SWOJE!
Nastepnie otworz katalog data/npc/ i stworz plik o nazwie mnich w rozszerzeniu *XML


Wklej do niego to:

Kod:

<?xml version="1.0"?>
<npc name="Mnich" script="data/npc/scripts/mnich.lua" access="3">
    <look type="57" head="20" body="30" legs="40" feet="50"/>
</npc>

Nastepnie wejdz w data/npc/script, stworz plik o nazwie mnich o rozszerzeniu *LUA

Wklej do niego to:

Kod:

--[[
[url]www.press-play.pl[/url]

Skrypt wykonany przez Steel
Pomoc: Baabuseek
]]
  focus = 0
  talk_start = 0
  target = 0
  following = false
  attacking = false

  function onThingMove(creature, thing, oldpos, oldstackpos)

  end


  function onCreatureAppear(creature)

  end


  function onCreatureDisappear(cid, pos)
      if focus == cid then
          selfSay('Bywaj.')
          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 ((string.find(msg, '(%a*)witaj(%a*)')) and (focus == 0)) and getDistanceToCreature(cid) < 4 then
        talkstatus = getPlayerStorageValue(cid,7544)
        if talkstatus <= 1 then
            selfSay('Oh, witaj wedrowcze. Co Cie tutaj sprowadza? \n\n 1. Powiedz mi prosze mnichu cos wiecej o tym miejscu \n 2. Interesuje mnie miecz w kamieniu, ktory widzialem po drodze')
            setPlayerStorageValue(cid,7544,-1)
            focus = cid
            talk_start = os.clock()
        elseif talkstatus >= 2 then
            selfSay('Nie mam teraz czasu')
            focus = 0
            talk_start = 0

        end
    end

    if string.find(msg, '(%a*)witaj(%a*)') and (focus ~= cid) and getDistanceToCreature(cid) < 4 then
          selfSay('Porozmawiany za chwile...')
      end

      if msgcontains(msg, '1') and focus == cid then
          talk_start = os.clock()
          talkstatus = getPlayerStorageValue(cid,7544)

          if talkstatus == -1 then
              selfSay('Znajdujemy sie w Glamorgan. Jest to nie wielka wioska posiadajaca bardzo piekna historie. Wiecej mozesz sie dowiedziec z tutjeszych ksiag.')
        elseif talkstatus == 0 then
            selfSay('Dobrze, w takim wypadku zezwole Ci na probe wydobycia miecza... Ale najpierw musisz mi zaplacic jedna krysztalowa monete \n\n 1. Prosze, oto moneta \n 2. Dobrze, wroce pozniej')
            setPlayerStorageValue(cid,7544,1)
        elseif talkstatus == 1 and doPlayerRemoveItem(cid,2160) then
            selfSay('Swietnie, w takim wypadku idz i sproboj swoich sil. Moze bedziesz pierwszym, ktoremu uda sie wyciagnac legendarny miecz...')
            setPlayerStorageValue(cid,7544,2)
          end
      end

      if msgcontains(msg, '2') and focus == cid then
          talk_start = os.clock()
          talkstatus = getPlayerStorageValue(cid,7544)

          if talkstatus == -1 then
              selfSay('Ah, ten miecz... Jeszcze nikt go nie wydobyl z kamienia... Chcesz sprobowac?\n\n 1. Tak \n 2. Nie ')
            setPlayerStorageValue(cid,7544,0)
        elseif talkstatus == 0 then
            selfSay('Dobrze, w takim wypadku wroc kiedy zrozumiesz, ze tracisz swoja zyciowa szanse...')
        elseif talkstatus == 1 then
        selfSay('Czy masz dla mnie krysztalowa monete? \n\n 1. Tak \n 2. Nie ')
        elseif talkstatus == 2 then
        selfSay('Wykonales juz zadanie')
          end
      end
    

      if string.find(msg, '(%a*)bywaj(%a*)') and focus == cid and getDistanceToCreature(cid) < 4 then
          selfSay('Bywaj, ' .. creatureGetName(cid) .. '!')
          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('Odejdz wedrowcze')
          end
              focus = 0
      end
     if focus ~= 0 then
         if getDistanceToCreature(focus) > 5 then
             selfSay('Bywaj')
             focus = 0
         end
     end
  end

Brawo, jezeli zastosowales sie do wskazowek, wszystko powinno dzialac bez zadnych problemow.

Dodaj teraz NPC na mape w miejscu nieopodal skryptu wydobywania miecza ze skaly i wszystko bedzie wygladac jak nalezy.

Zabraniam kopiowania skryptow z usunietym komentarzem na inne fora, ktore widniejai na ich poczatku


Dlaczego Tak Sie Stało że Tibie Poje***o Kto Wyjaśni Mi TO?
Tibia 8.7+ to DNO

Offline

 

Stopka forum

RSS
Powered by PunBB 1.2.23
© Copyright 2002–2008 PunBB
Polityka cookies - Wersja Lo-Fi

[ Generated in 0.009 seconds, 7 queries executed ]


Darmowe Forum | Ciekawe Fora | Darmowe Fora
www.k800icentrum.pun.pl www.ricoe.pun.pl www.narutek.pun.pl www.h2osok.pun.pl www.zrom.pun.pl