R
Rahim
Guest
Witam. Zauwa?y?em gdzie? tutaj skrypt na kolejk? jak w kazordoonie... niby wszystko ok ale ehhh... ta prawdziwa kolejka mo?e przenosi? gracza nietylko w jedn? pozycj?... To zale?y przecie? tylko od samej kolejki. I tylko gracz, kt?ry kupi? bilet mo?e podr??owa?. Postanowi?em z nud?w i bezsenno?ci napisa? ten?e oto skrypt
Mam nadziej?, ?e si? przyda:
w actions/scripts stw?rzcie plik:
A do niego wklejcie:
Tekst na czerwono - pozycje poszczeg?lnych miejsc, to ju? sami ustawicie.
I do actions.xml:
A teraz b?dzie nam potrzebny NPC co by sprzedawa? ten bilet. A oto i on:
NPC jest tak?e stworzony przeze mnie na podstawie NPC Lokur z rl tibii.
w data/npc/scripts tworzymy
I wklejamy do niego:
W data/npc tworzymy
A w nim:
Wybaczcie, ?e NPC nie ma dziwne kolory (sam nie wiem jakie ma) ale nie chce mi si? sprawdza?...
I to ju? na tyle. Teraz tylko w mapie wystarczy zrobi? wagoniki i nada? im odpowiedni actions id.
SKRYPT?W NIE TESTOWA?EM!!
Je?li co? b?dzie ?le, piszcie a ja poprawi?... Teraz nie mam si? sprawdza?... (Godz. 4:45)
PS. Skrypt jest ustawiony tak, ?e item, kt?ry b?dzie nas przenosi? po naci?ni?ciu, domy?lnie wagonik, nie musi by? w?a?nie wagonikiem. Mo?na np. ustawi? actions id pos?gowi i on te? b?dzie przenosi?! Jednak gdy b?dziemy mieli bilet
Pozdro =]

w actions/scripts stw?rzcie plik:
Kod:
kolejka.lua
Kod:
--by Kanciak! (Winged'Nightmare)
--budzik.wxv.pl Zapraszam!
-- to musicie ustawic sami.
local depo = [COLOR=Red]{x=, y=, z=}[/COLOR] --pozycja depo
local temple = [COLOR=Red]{x=, y=, z=}[/COLOR] --pozycja swiatyni
local brama = [COLOR=Red]{x=, y=, z=}[/COLOR] --pozycja glownej bramy (tzn zaraz przed wejsciem do miasta)
local sklepy = [COLOR=Red]{x=, y=, z=}[/COLOR] --pozycja sklepow
local statek = [COLOR=Red]{x=, y=, z=} [/COLOR] --pozycja statku (do Cormayi)
--Tego juz nie ruszajcie!
local tekst = "Purchase a weekly ticket from Lokur in the post office"
local ticket = 15834 --Tego nie zmieniaj!
function onUse(cid, item, frompos, item2, topos)
if getPlayerStorageValue(cid, ticket) > 0 then
doSendMagicEffect(frompos, 10)
if item.actionid == 6780 then
doTeleportThing(cid, depo)
doSendMagicEffect(depo, 10)
elseif item.actionid == 6781 then
doTeleportThing(cid, temple)
doSendMagicEffect(temple, 10)
elseif item.actionid == 6782 then
doTeleportThing(cid, brama)
doSendMagicEffect(brama, 10)
elseif item.actionid == 6783 then
doTeleportThing(cid, sklepy)
doSendMagicEffect(sklepy, 10)
elseif item.actionid == 6784 then
doTeleportThing(cid, statek)
doSendMagicEffect(statek, 10)
end
else
doPlayerSay(cid,tekst,17)
end
return 1
end
I do actions.xml:
Kod:
<action actionid="6780" script="kolejka.lua"/>
<action actionid="6781" script="kolejka.lua"/>
<action actionid="6782" script="kolejka.lua"/>
<action actionid="6783" script="kolejka.lua"/>
<action actionid="6784" script="kolejka.lua"/>
NPC jest tak?e stworzony przeze mnie na podstawie NPC Lokur z rl tibii.
w data/npc/scripts tworzymy
Kod:
bilet.lua
Kod:
local focus = 0
local talk_start = 0
local target = 0
local cena = 250 --cena biletu (w gp!)
local ticket = 15834 --Tego nie zmieniaj!
function onThingMove(creature, thing, oldpos, oldstackpos)
end
function onCreatureAppear(creature)
end
function onCreatureDisappear(cid, pos)
if focus == cid then
selfSay('Good bye then.')
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') and (focus == 0)) and getDistanceToCreature(cid) < 4 then
selfSay('Hiho ' .. creatureGetName(cid) .. '! How may I help you '.. creatureGetName(cid)..'? I can sell tickets for the ore wagon service.')
focus = cid
talk_start = os.clock()
elseif focus == cid then
talk_start = os.clock()
if msgcontains(msg, 'ticket') or msgcontains(msg, 'tickets') then
selfSay('Do you want to purchase a weekly ticket for the ore wagons? With it you can travel freely and fast through Kazordoon for one week. '.. cena ..' gold only. Deal?')
talk_state = 1
elseif talk_state == 1 then
if msgcontains(msg, 'yes') then
if getPlayerStorageValue(cid, ticket) == -1 then
if doPlayerRemoveMoney(cid, cena) == TRUE then
if setPlayerStorageValue(cid, ticket, os.time() + 604800) == TURE then
selfSay('You have succesfull buy a weekly ticket for the ore wagon service.')
else
selfSay('Sory, i can\'t...')
end
else
selfSay('Sorry, you do not have enough money.')
end
else
selfSay('You have buy a weekly ticket!')
end
end
talk_state = 0
elseif msgcontains(msg, 'bye') and getDistanceToCreature(cid) < 4 then
selfSay('Good bye, ' .. creatureGetName(cid) .. '!')
focus = 0
talk_start = 0
end
end
end
function onCreatureChangeOutfit(creature)
end
function onThink()
doNpcSetCreatureFocus(focus)
if (os.clock() - talk_start) > 30 then
if focus > 0 then
selfSay('Next Please...')
end
focus = 0
end
if focus ~= 0 then
if getDistanceToCreature(focus) > 5 then
selfSay('Good bye then.')
focus = 0
end
end
end
Kod:
Lokur.lua
Kod:
<?xml version="1.0"?>
<npc name="Lokur" script="data/npc/scripts/bilet.lua" access="5" lookdir="2" autowalk="25">
<mana now="800" max="800"/>
<health now="200" max="200"/>
<look type="160" head="50" body="0" legs="0" feet="88"/>
</npc>
I to ju? na tyle. Teraz tylko w mapie wystarczy zrobi? wagoniki i nada? im odpowiedni actions id.
SKRYPT?W NIE TESTOWA?EM!!
Je?li co? b?dzie ?le, piszcie a ja poprawi?... Teraz nie mam si? sprawdza?... (Godz. 4:45)
PS. Skrypt jest ustawiony tak, ?e item, kt?ry b?dzie nas przenosi? po naci?ni?ciu, domy?lnie wagonik, nie musi by? w?a?nie wagonikiem. Mo?na np. ustawi? actions id pos?gowi i on te? b?dzie przenosi?! Jednak gdy b?dziemy mieli bilet

Pozdro =]
Ostatnio edytowane przez moderatora: