ersiu
Active User
- Dołączył
- Kwiecień 7, 2008
- Posty
- 95
- Liczba reakcji
- 7
Skrypt napisany przeze mnie!
UWAGA, UWAGA! BY? TO SKRYPT NA KONKURS OTFANS.PL(dawno temu), LECZ NIESTETY KONKURS ZOSTA? ODWO?ANY! ; <
POSTANOWI?EM SI? PODZIELI? Z WAMI ?W QUESTEM!
skrypt mojego questu sk?ada si? z 19 skrypt?w,
a dok?adnie to 14 skrypt?w actions, 4 skrypty movements,
a tak?e jeden skrypt npc!
narpiew dam skryty, potem wyja?nie w jakiej kolejno?ci maja
wyst?powa?, jakie posiadaj? w?a?ciwo?ci itd.
Narpiew pobawimy sie actions, ktorych jest najwiecej. ; ))
data/actions/scripts:
mlot.lua, w ktorym nic nie zmieniamy, gdzie go postawic opisze w dalszej czesci,
w kt?rej b?d? opisywa? wykonanie questu.
skrzynka.lua, tu tak?e nic nie zmieniamy.
)
local pose = pozycja gdzie nas teleportueje do NPC!
rozsypany_mlotek.lua, nie nalezy nic tutaj zmieniac, ten skrypt
jest potrzebny do wykonania dalszej czesci u npc
skrzynka2.lua, to takze jest quest, ale trzeba go otworzyc kluczem,
nic tu nie zmieniamy.
klucz.lua, jest to skrypt klucza do powy?szego skryptu.
rozdzka.lua, moonlight wand do otwierania podziemi. ; ))
krew.lua, jest to skrypt odpowiedzialny za polozenie zdechlego wampira w
specjalne miejsce, a potem wylanie na niego krwi, dzieki temu otwieraja sie nam drzwi.
local vamp = pozycja gdzie ma lezec wampir
local drzwi = pozycja gdzie sa drzwi, ktore mamy otworzyc.
skrzynka3.lua, ona stoi przy pokoiku z wampirami, z skrzynki mozna brac tyle ile sie chce.
skrzynka4.lua, z tej skrzynki bierzemy lopate, moze wzisc tylko jedna osoba.
lopata.lua, skrypt dzieki ktoremu ugasimy ogien!!
drzewo.lua, z drzewa trzeba zerwac pomaranczki, po to aby w?o?y?
je do sokowir?wki. ; ))
sokowirowka.lua, z pomaranczek robimy specjaln? lemoniade! ; ))
local sok = pozycja gdzie maja lezec pomarancze.
lemoniada.lua, jest to przedostatni skrypt actions, odpowiada on za polozenie
lemoniady w odpowiednim miejscu, a dzieki temu pojawi sie skrzynka z nagroda.
local lemoniada = pozycja gdzie ma lezec lemoniada
local quest = pozycja gdzie pojawi sie skrzynka z nagrod?.
final.lua, skrzynka z kt?rej bierzemy nagrod?!; )
do actions.xml dodajemy:
A wi?c wszystkie actions scripts s? gotowe, teraz idziemy do movements!!!
data/movements/scripts:
podloga.lua, skrypt odpowiadajacy za wciskanie sie podlogi,
a takze o jej ponowne wyciskanie tylko po wejsciu,
aby sie automatycznie nie wyciskala przy zejsciu. ; )
UWAGA, UWAGA! BY? TO SKRYPT NA KONKURS OTFANS.PL(dawno temu), LECZ NIESTETY KONKURS ZOSTA? ODWO?ANY! ; <
POSTANOWI?EM SI? PODZIELI? Z WAMI ?W QUESTEM!
skrypt mojego questu sk?ada si? z 19 skrypt?w,
a dok?adnie to 14 skrypt?w actions, 4 skrypty movements,
a tak?e jeden skrypt npc!
narpiew dam skryty, potem wyja?nie w jakiej kolejno?ci maja
wyst?powa?, jakie posiadaj? w?a?ciwo?ci itd.
Narpiew pobawimy sie actions, ktorych jest najwiecej. ; ))
data/actions/scripts:
mlot.lua, w ktorym nic nie zmieniamy, gdzie go postawic opisze w dalszej czesci,
w kt?rej b?d? opisywa? wykonanie questu.
Kod:
function onUse(cid, item, frompos, item2, topos)
local hp = item.actionid
local dmg = (getPlayerLevel(cid) + math.random(1, 40))
if(item2.itemid==1353)then
doSendAnimatedText(topos, dmg, 181)
if(hp > dmg)then
doSendAnimatedText(topos, dmg, 181)
doSetItemActionId(item.uid, item.actionid - dmg)
doPlayerSendTextMessage(cid, 19, "Zaatakowales kamien swoim mlotem, kamien zostal trafiony za "..dmg.."!")
elseif(hp <= dmg)then
doSetItemActionId(item.uid, 0)
doSendMagicEffect(topos, 2)
doRemoveItem(item2.uid, 1)
kamyczki=doCreateItem(3610, 1, topos)
doSetItemActionId(kamyczki, 8888)
doRemoveItem(item.uid, 1)
doPlayerSendTextMessage(cid, 19, "Zniszczyles kamien, lecz twoj mlot takze ulegl zniszczeniu!")
end
end
end
skrzynka.lua, tu tak?e nic nie zmieniamy.

local pose = pozycja gdzie nas teleportueje do NPC!
Kod:
function onUse(cid, item, frompos, item2, topos)
[b]local pose={x=498, y=470, z=7} -- pozycja gdzie teleportuje gracza.[/b]
if(getPlayerStorageValue(cid, 666)<TRUE)then
doTeleportThing(cid, pose)
doPlayerSendTextMessage(cid, 19, "Porozmawiaj z NPC!")
else
doPlayerSendTextMessage(cid, 19, "Wykonales juz ten quest!")
doTeleportThing(cid, getPlayerMasterPos(cid))
end
end
rozsypany_mlotek.lua, nie nalezy nic tutaj zmieniac, ten skrypt
jest potrzebny do wykonania dalszej czesci u npc
Kod:
function onUse(cid, item, frompos, item2, topos)
if(item2.actionid==8888)then
if(getPlayerStorageValue(cid, 8888)==TRUE)then
prezent=doPlayerAddItem(cid, 1990, 1)
doSetItemSpecialDescription(prezent, "To jest prezent dla Hixaxu, prosze, wrecz mu go!")
setPlayerStorageValue(cid, 8888, 2)
end
end
end
skrzynka2.lua, to takze jest quest, ale trzeba go otworzyc kluczem,
nic tu nie zmieniamy.
Kod:
function onUse(cid, item, frompos, item2, topos)
if(item.actionid==5555)then
if(getGlobalStorageValue(888)<1)then
add=doPlayerAddItem(cid, 2186, 1)
doSetItemActionId(add, 6666)
setGlobalStorageValue(888,1)
doSetItemSpecialDescription(add, "Ta roszczka potrafi otwierac podziemia w specjalnych miejscach!")
doPlayerSendTextMessage(cid, 19, "W skrzynce znalazles rozdzke, dzieki ktorej otworzysz przjscie na dol, w specjalnych miejscach!")
else
doPlayerSendTextMessage(cid, 19, "Otworzyles skrzynke, lecz ona byla pusta.")
end
else
doPlayerSendTextMessage(cid, 19, "Aby otworzyc ta skrzynke potrzebny jest klucz Hixaxu")
end
end
klucz.lua, jest to skrypt klucza do powy?szego skryptu.
Kod:
function onUse(cid, item, frompos, item2, topos)
if(item2.uid==item.actionid)then
doSetItemActionId(item2.uid, 5555)
doPlayerSendTextMessage(cid, 19, "Skrzynia jest otwarta!!!")
end
end
rozdzka.lua, moonlight wand do otwierania podziemi. ; ))
Kod:
function onUse(cid, item, frompos, item2, topos)
local open={x=topos.x, y=topos.y, z=topos.z, stackpos=0}
local xd=getThingfromPos(open)
if(xd.uid==2222 and item.actionid==6666)then
doTransformItem(xd.uid, 4834)
doRemoveItem(item.uid, 1)
doSendMagicEffect(open, 2)
doPlayerSendTextMessage(cid, 19, "Otworzyles zejscie na dol!")
end
end
krew.lua, jest to skrypt odpowiedzialny za polozenie zdechlego wampira w
specjalne miejsce, a potem wylanie na niego krwi, dzieki temu otwieraja sie nam drzwi.
local vamp = pozycja gdzie ma lezec wampir
local drzwi = pozycja gdzie sa drzwi, ktore mamy otworzyc.
function onUse(cid, item, frompos, item2, topos)
local vamp={498, 422, 8} // Pozycja gdzie ma lezec wampir!
local drzwi={x=502, y=420, z=8, stackpos=1}//pozycja gdzie otworza sie drzwi po polaniu krwia
local xd=getThingfromPos(drzwi)
if(topos.x==vamp[1] and topos.y==vamp[2] and topos.z==vamp[3])then
if(item2.itemid==2956 and item.type==2)then
doTransformItem(xd.uid, 5102)
doRemoveItem(item.uid, 1)
doSendMagicEffect(drzwi, 15)
doSendMagicEffect(topos, 15)
doPlayerSendTextMessage(cid, 19, "Drzwi zostaly otworzone")
end
end
end
skrzynka3.lua, ona stoi przy pokoiku z wampirami, z skrzynki mozna brac tyle ile sie chce.
Kod:
function onUse(cid, item, frompos, item2, topos)
doPlayerAddItem(cid, 2006, 2)
doPlayerSendTextMessage(cid, 19, 'Otrzymales szklanke krwi.')
end
skrzynka4.lua, z tej skrzynki bierzemy lopate, moze wzisc tylko jedna osoba.
Kod:
function onUse(cid, item, frompos, item2, topos)
if(item.actionid==0)then
doPlayerAddItem(cid, 2554, 9)
doPlayerSendTextMessage(cid, 19, 'Otrzymales lopate(uzyj jej do ugaszenia ognia).')
doSetItemActionId(item.uid, 555)
else
doPlayerSendTextMessage(cid, 19, 'To jest puste.')
end
end
lopata.lua, skrypt dzieki ktoremu ugasimy ogien!!
Kod:
function onUse(cid, item, frompos, item2, topos)
local xdd={x=topos.x, y=topos.y, z=topos.z, stackpos=0}
local xds={x=topos.x, y=topos.y, z=topos.z, stackpos=1}
local xd=getThingfromPos(xdd)
local xs=getThingfromPos(xds)
if(item.itemid==2554)then
if(xd.itemid==103 and xs.itemid<=0)then
if(item.actionid<=100)then
doPlayerSendTextMessage(cid, 19, 'Napelniles lopate, teraz posyp piachem ogien!')
doSetItemActionId(item.uid, 1000)
else
doPlayerSendCancel(cid, 'lopata jest pelna!')
end
elseif(xs.itemid==1506)then
if(item.actionid==1000)then
doPlayerSendTextMessage(cid, 19, 'Przygasiles ogien!')
doSetItemActionId(item.uid, 0)
doTransformItem(xs.uid, 1507)
else
doPlayerSendCancel(cid, 'Lopata jest pusta')
end
end
end
end
drzewo.lua, z drzewa trzeba zerwac pomaranczki, po to aby w?o?y?
je do sokowir?wki. ; ))
Kod:
function onUse(cid, item, frompos, item2, topos)
if(item2.itemid==4006 and item.actionid==6666)then
doTransformItem(item2.uid, 4008)
doPlayerAddItem(cid, 2675, 5)
end
end
sokowirowka.lua, z pomaranczek robimy specjaln? lemoniade! ; ))
local sok = pozycja gdzie maja lezec pomarancze.
function onUse(cid, item, frompos, item2, topos)
local sok={x=499, y=395, z=8, stackpos=255} // pozycja pomaranczek
local soczek=getThingfromPos(sok)
if(soczek.itemid==2675 and soczek.type==5)then
doRemoveItem(soczek.uid, 5)
local create=doCreateItem(2006, 5, sok)
doSetItemActionId(create, 2000)
local eff={x=sok.x, y=sok.y, z=sok.z}
doSendMagicEffect(2, eff)
doPlayerSendTextMessage(cid, 19, 'Stworzyles lemoniade oddaj ja krolowi pod jego pomnikiem!')
else
doPlayerSendTextMessage(cid, 19, 'Poloz obok dzwigni 5 pomaranczy!')
end
end
lemoniada.lua, jest to przedostatni skrypt actions, odpowiada on za polozenie
lemoniady w odpowiednim miejscu, a dzieki temu pojawi sie skrzynka z nagroda.
local lemoniada = pozycja gdzie ma lezec lemoniada
local quest = pozycja gdzie pojawi sie skrzynka z nagrod?.
function onUse(cid, item, frompos, item2, topos)
ocal lemoniada={x=501, y=392, z=8, stackpos=255} -- pozycja gdzie ma lezec lemoniada
local quest={x=499, y=391, z=8} -- pozycja gdzie pojawi sie skrzynka z questem
local lem=getThingfromPos(lemoniada)
if(lem.itemid==2006 and lem.type==5 and lem.actionid==2000)then
doRemoveItem(lem.uid, 1)
local crt=doCreateItem(1740, 1, quest)
doSetItemActionId(crt, 8000)
doSendMagicEffect(2, quest)
else
doPlayerSendTextMessage(cid, 19, 'Musisz polozyc tuta lemoniade z sokowirowki!')
end
end
final.lua, skrzynka z kt?rej bierzemy nagrod?!; )
function onUse(cid, item, frompos, item2, topos)
local prize = 6579 -- ID nagrody
local count = 1 -- ilosc nagrody
if(getPlayerStorageValue(cid, 666)==-1)then
doPlayerAddItem(cid, prize, count)
doPlayerSendTextMessage(cid, 19, 'You have found '..getItemName(prize)..'.')
setPlayerStorageValue(cid, 666, 1)
else
doPlayerSendTextMessage(cid, 19, 'It is empty.')
end
end
do actions.xml dodajemy:
Kod:
<action actionid="8888" script="rozsypany_kamyk.lua" />
<action itemid="2391" script="mlot.lua" />
<action itemid="2090" script="klucz.lua" />
<action uniqueid="6666" script="skrzynka.lua" />
<action itemid="1750" script="skrzynka2.lua" />
<action itemid="2186" script="rozdzka.lua" />
<action itemid="2006" script="krew.lua" />
<action uniqueid="2000" script="skrzynka3.lua" />
<action uniqueid="2001" script="skrzynka4.lua" />
<action itemid="2554" script="lopata.lua" />
<action itemid="4006" script="drzewo.lua" />
<action uniqueid="2244" script="sokowirowka.lua" />
<action uniqueid="2233" script="lemoniada.lua" />
<action actionid="8000" script="final.lua" />
data/movements/scripts:
podloga.lua, skrypt odpowiadajacy za wciskanie sie podlogi,
a takze o jej ponowne wyciskanie tylko po wejsciu,
aby sie automatycznie nie wyciskala przy zejsciu. ; )
Kod:
function onStepIn(cid, item, pos)
if(item.itemid==425)then
doTransformItem(item.uid, item.itemid+1)
elseif(item.itemid==426)then
doTransformItem(item.uid, item.itemid-1)
end
doSendMagicEffect(getPlayerPosition(cid), 2)
end
Ostatnia edycja: