• logo_cipsoft
    Nowe serwery zostały otwarte 19 Lut 2025:
    Noctalia (Open PvP) Ignitera (Open PvP) us_logo Xybra (Open PvP)

[8.x][Inne]Kolejka Kazordoon... Jak na RL!

Status
Zamknięty.
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:
Kod:
kolejka.lua
A do niego wklejcie:
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
Tekst na czerwono - pozycje poszczeg?lnych miejsc, to ju? sami ustawicie.
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"/>
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
Kod:
bilet.lua
I wklejamy do niego:
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
W data/npc tworzymy
Kod:
Lokur.lua
A w nim:
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>
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 :P
Pozdro =]
 
Ostatnio edytowane przez moderatora:
Odp: [8.x]Kolejka Kazordoon... Jak na RL!

Odp: [8.x]Kolejka Kazordoon... Jak na RL!

Mi ta kolejka nie dziala :P.
Jak wlaczam silnik to same bledy wywala.

@down
Co ci to da? -.-
Najwiecej bledow bylo z kolejka.lua
 
Ostatnia edycja:
Odp: [8.x]Kolejka Kazordoon... Jak na RL!

Odp: [8.x]Kolejka Kazordoon... Jak na RL!

To napisz te b??dy -.-
@Topic
?adny skrypt, NPC te?, gratuluje wytrwa?o?ci ;)
Pozdro
Magic
 
Odp: [8.x]Kolejka Kazordoon... Jak na RL!

Odp: [8.x]Kolejka Kazordoon... Jak na RL!

Ok. Skrypt zosta? poprawiony... Sorki za liter?wk? xd zdarza si?.
Testowa?em skrypt - u mnie dzia?a.

@2up
Gdyby? pokaza? b??dy, to bym wiedzia? co jest ?le i co nale?y poprawi?... a tak si? mog?em tylko domy?la?.

@down
haha oj dobra jak chcesz mo?esz mu da? i 0... ^^
nie b?j si?, nie b?dzie banowa? i dawa? itemk?w... pff ;d
Ojj nie rozp?acz si? czasem bo NPC ma kilka pkt many.. A to ci w czym? przeszkadza? ^^
 
Ostatnia edycja:
Odp: [8.x]Kolejka Kazordoon... Jak na RL!

Odp: [8.x]Kolejka Kazordoon... Jak na RL!

A po co temu NPC access 5 :confused: Po jakiego wa?a on ma mie? uprawnienia jak CM :confused::confused:

Edit:
I po co jeszcze informujesz ile ma many :confused:
 
Ostatnia edycja:
Odp: [8.x][Inne]Kolejka Kazordoon... Jak na RL!

?wietny skrypt napracowales sie 10/10 gratuluje
pozdrawiam
Cegu*
 
Odp: [8.x][Inne]Kolejka Kazordoon... Jak na RL!

Skr?cona wersja kolejka.lua:
Kod:
local ticket = 15834
local places = {
    {x=, y=, z=}, --pozycja depo
    {x=, y=, z=}, --pozycja swiatyni
    {x=, y=, z=}, --pozycja glownej bramy (tzn zaraz przed wejsciem do miasta)
    {x=, y=, z=}, --pozycja sklepow
    {x=, y=, z=} --pozycja statku (do Cormayi)
}

function onUse(cid, item, fromPosition, itemEx, toPosition)
    if(getPlayerStorageValue(cid, ticket) >= os.time()) then
        local place = places[item.actionid - 6779]
        doTeleportThing(cid, place, FALSE)
        doSendMagicEffect(fromPosition, CONST_ME_POFF)
        doSendMagicEffect(place, CONST_ME_TELEPORT)
    else
        doCreatureSay(cid, "Purchase a weekly ticket from Lokur in the post office", TALKTYPE_ORANGE_1)
    end
    return TRUE
end
Skr?cona wersja actions.xml:
Kod:
<action fromaid="6780" toaid="6784" script="kolejka.lua"/>
Skr?cona wersja bilet.lua:
Kod:
local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}

function onCreatureAppear(cid)                npcHandler:onCreatureAppear(cid)            end
function onCreatureDisappear(cid)            npcHandler:onCreatureDisappear(cid)            end
function onCreatureSay(cid, type, msg)            npcHandler:onCreatureSay(cid, type, msg)        end
function onThink()                    npcHandler:onThink()                    end

local price = 250
local ticket = 15834

function creatureSayCallback(cid, type, msg)
    if(not npcHandler:isFocused(cid)) then
        return false
    end

    local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid
    if(msgcontains(msg, 'ticket') 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. ' .. price .. ' gold only. Deal?', cid)
        talkState[talkUser] = 1
    elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then
        if(getPlayerStorageValue(cid, ticket) < os.time()) then
            if(doPlayerRemoveMoney(cid, price) == TRUE) then
                setPlayerStorageValue(cid, ticket, (os.time() + 604800))
                selfSay('You have succesfull buy a weekly ticket for the ore wagon service.', cid)
            else
                selfSay('Sorry, you do not have enough money.', cid)
            end
        else
            selfSay('You have buy a weekly ticket!', cid)
        end
        talkState[talkUser] = 0
    elseif(msgcontains(msg, 'no') and isInArray({1}, talkState[talkUser]) == TRUE) then
        talkState[talkUser] = 0
        selfSay('Ok then.', cid)
    end

    return true
end

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
Skr?cona wersja Lokur.xml:
Kod:
<?xml version="1.0" encoding="UTF-8"?>
<npc name="Lokur" script="data/npc/scripts/bilet.lua" walkinterval="2000" floorchange="0">
    <health now="100" max="100"/>
    <look type="160" head="50" body="0" legs="0" feet="88"/>
    <parameters>
        <parameter key="message_greet" value="Hiho |PLAYERNAME|! How may I help you |PLAYERNAME|? I can sell tickets for the ore wagon service."/>
    </parameters>
</npc>
 
Ostatnia edycja:
Odp: [8.x][Inne]Kolejka Kazordoon... Jak na RL!

Pytanie mam.. Co trzeba zrobi? ?eby mo?na by?o podr??owa? kolejk? bez biletu ?? :p:p

Edit :
Magic Hereos :Zedytowa? skrypt ;<
no tak ,ale co trzeba zmieni? ?
 
Ostatnia edycja:
Odp: [8.x][Inne]Kolejka Kazordoon... Jak na RL!

bardzo dobry skrypt naprawde git 10/10 pewnie troche ci to zajelo ale gz dla ciebie pozdr dla all z tibi.net.pl:p
 
Odp: [8.x][Inne]Kolejka Kazordoon... Jak na RL!

@Santa Noob

Usu? linijk?:
Kod:
if getPlayerStorageValue(cid, ticket) > 0 then
I jedno end.

Mam nadziej?, ?e nie popsujesz nic. xd

Pozdro
 
Odp: [8.x][Inne]Kolejka Kazordoon... Jak na RL!

A na TFS dziala bo jak wkleilem normalna i skr?cona wersie to


Edit: a dziala ten skryp pod tfs bo jak wkleilem normalna lub skr?cona wersie to mi wyskakuje


Edit: a dziala ten skryp pod tfs bo jak wkleilem normalna lub skr?cona wersie to mi wyskakuje
 
Odp: [8.x][Inne]Kolejka Kazordoon... Jak na RL!

Help! mam problem z kolejk? :<
[Warning - Event::loadScript] Cannot load script (data/actions/scripts/kolejka.lua)
data/actions/scripts/kolejka.lua:8: '<eof>' expected near 'end'
o co chodzi? prosze pom??cie
I jeszcze mam problem z NPC niby wszystko jest ok ale jak pisze do 'hi' to on nie odpowiada i w silniku wyskakuje cos takiego
Lua Script Error: [Npc interface]
data/npc/scripts/bilet.lua:onCreatureSay
data/npc/scripts/bilet.lua:24: attempt to compare nil with number
stack traceback:
data/npc/scripts/bilet.lua:24: in function <data/npc/scripts/bilet.lua:22>
prosze o pomoc
 
Ostatnia edycja:
Odp: [8.x][Inne]Kolejka Kazordoon... Jak na RL!

#up
Zapewne masz TFS... Wiec trzeba delikatnie przerobi? skrypt poszukaj podobnego pod TFS i spr?buj przerobi? go, podpowiem Ci ?eby? pierw zamieni? to
function onUse(cid, item, frompos, item2, topos)
na to
function onUse(cid, item, fromPosition, itemEx, toPosition)
I tak jak do wszystkiego dojdziesz to b?dziesz umia? 1% podstaw skypterstwa :)

Pozdrawiam
Sassin
 
Odp: [8.x][Inne]Kolejka Kazordoon... Jak na RL!

co? tam poprawilem b??d juz nie wyskakuje ale kolejka nie dziala jak klikam na ni? nic sie nie dzieje wagoniki ma ustawione actionID od 6780 do 6784 i nie dzia?aj? nie wyskakuje ?aden napis ani w silniku ani w grze
@up tak mam silnik TFS tibia 8.5
 
Odp: [8.x][Inne]Kolejka Kazordoon... Jak na RL!

#up
To istnieje mo?liwo?? ?e silnik pod jakim? wzgl?dem nie dok?adnie czyta skrypt, na twoim miejscu poprosi?bym Rahima o przer?bk? tego skryptu ja pomog?em Ci na tyle ile mog?em, napisz do niego na PW a nie do mnie na gg...

Pozdrawiam,
Sassin
 
Odp: [8.x][Inne]Kolejka Kazordoon... Jak na RL!

Od?wierzam
Mo?e kto? przerobi? skrypt na TFS? Reput poleci
 
Odp: [8.x][Inne]Kolejka Kazordoon... Jak na RL!

Rahim chyba co? zwali?e? :D
if getPlayerStorageValue(cid, ticket) > 0 then
Wi?ksze od 0? To raz kupi i do ko?ca ?wiata mo?e je?dzi?, powiniene? sprawdza? jak tam ju? kto? poprawi?, czy value jest wi?ksze od czasu.
 
Odp: [8.x][Inne]Kolejka Kazordoon... Jak na RL!

Elo :D
M?g? by kto? doda? do tego NPC mozliwo?? kupowania parceli i list?w?
 
Status
Zamknięty.
Do góry