What's new

-Skrypt TP pojawia si? o godzinie XXX (TFS 0.4)

Status
Not open for further replies.

Qermo

Advanced User
Joined
Aug 22, 2009
Messages
227
Reaction score
34
Witam, poszukuje scryptu kt?ry b?dzie wywo?ywa? TP raz na dzie? o godzinie XXX. W miejscu XXX.
Bardzo mi na owym zale?y.
By?bym bardzo wdzi?czny je?eli kto? m?g?by pom?c.
 

Maniucza

Advanced User
Joined
Jan 18, 2009
Messages
374
Reaction score
57
Odp: TP pojawia si? o godzinie XXX (TFS 0.4)

Witaj,

globalevents/script

PHP:
function onTime()
local c =
{
	p = { x=1000,x=1000,z=7, stackpos = 255},
	t = = { x=1000,x=1000,z=7},
	m = "Teleport do pojawil sie w temple",
	e = 31,
	i = 1387
}
	if tile.itemid ~= 0 and not isCreature(tile.uid) then
		doCreateTeleport(c.i, c.p, c.t)
		doBroadcastMessage(c.m, MESSAGE_EVENT_ADVANCE)
		doSendMagicEffect(c.p, c.e)
	end
	return true
end

globalevents.xml

PHP:
<globalevent name="tp" time="14:59:59" value="XXX.lua"/>

@Down

Jest wszystko na swoim miejscu, c.e jest zadeklarowana wi?c nie wiem, gdzie widzisz problem, a z opisami to chyba, ka?dy sobie poradzi nieprawda??

Okej tego pos nie zauwa?y?em, a co do zmiennych to te? na to nie patrzy?em robi?em na szybko. Niby nie wielki skrypt a idzie sie zamotac czasem. Dzieki za poprawke. ; )
 
Last edited:

Placek

Blue Waffle
Joined
Sep 30, 2008
Messages
6,793
Reaction score
672
Age
9
Odp: TP pojawia si? o godzinie XXX (TFS 0.4)

@up
Prosze cie nie uzywaj pojedynczych liter jako zmiennych i opisuj w komentarzach skrypty bo to na prawde jest potrzebne i wygodne :p
Poza tym, nie wiem po co piszesz local przy zmiennej globalnej. Jak chcesz zeby byla lokalna to nie wystarczy local, musisz ja dac w funkcji zeby w danym momencie zmienna byla ustalana jako lokalna.

Poza tym, ta linijka bedzie powodowac bledy:
" doSendMagicEffect(pos, c.e) "
Bo nigdzie nie ma ustalonej wartosci do wykorzystanych w niej zmiennych...
 

Qermo

Advanced User
Joined
Aug 22, 2009
Messages
227
Reaction score
34
Odp: TP pojawia si? o godzinie XXX (TFS 0.4)

Niestety ten scrypt nie dzia?a. ;/ Poprawi?em czas pojawienia si? tp i nic. w konsoli r?wnie? nie ma ?adnych b??d?w. ;/
 

Infelicity

Why bother...
Joined
Dec 30, 2011
Messages
1,091
Reaction score
59
Odp: TP pojawia si? o godzinie XXX (TFS 0.4)

Ale wez pod uwage to ze mozesz miec ustawiona inna godzine w silniku/na kompie, albo ze musisz pokombinowac. Samo nic nie przyjdzie
 

Qermo

Advanced User
Joined
Aug 22, 2009
Messages
227
Reaction score
34
Odp: TP pojawia si? o godzinie XXX (TFS 0.4)

To te? zosta?o sprawdzone i nadal nic...
Bledu w konsoli ,?adnego nie ma.
Dlatego ci??ko jest mi tu "co?" po kombinowa?. ;/
 

Placek

Blue Waffle
Joined
Sep 30, 2008
Messages
6,793
Reaction score
672
Age
9
Odp: TP pojawia si? o godzinie XXX (TFS 0.4)

@Maniucza
e nie bylo wczesniej, to ze edytowales post, nie znaczy zebylo tam kiedy na niego odpisywalem. Poza tym id teleportu tez nie bylo podane bo bylo 2222, teraz nagle jest zmieniony i wmowisz mi, ze juz bylo i skrypt byl dobry? ;p

@top
Sprawdzales ten skrypt jeszcze raz? Bo zostal edytowany i teraz wyglada lepiej. Bo wtedy nie dosc, ze byly zle id, zmienne bez wartosci, zmienne globalne jako lokalne i zle wykorzystane argumenty funkcji silnikowych... ehhh po prostu wez ten skrypt skopiuj jeszcze raz i sprawdz czy dziala.
 

Qermo

Advanced User
Joined
Aug 22, 2009
Messages
227
Reaction score
34
Odp: TP pojawia si? o godzinie XXX (TFS 0.4)

Nadal TP si? nie pojawia.. Ehhh ;/
 

De$t

Active User
Joined
Nov 20, 2008
Messages
148
Reaction score
27
Odp: TP pojawia si? o godzinie XXX (TFS 0.4)

Zmie? function onTime() na function onTime(time) i sprawd? czy zadzia?a.
 

Qermo

Advanced User
Joined
Aug 22, 2009
Messages
227
Reaction score
34
Odp: TP pojawia si? o godzinie XXX (TFS 0.4)

up@
dalej nic z tego. ;>
 

De$t

Active User
Joined
Nov 20, 2008
Messages
148
Reaction score
27
Odp: TP pojawia si? o godzinie XXX (TFS 0.4)

Do jakiej zmiennej to si? odnosi tile.itemid ? :)
 

Maniucza

Advanced User
Joined
Jan 18, 2009
Messages
374
Reaction score
57
Odp: TP pojawia si? o godzinie XXX (TFS 0.4)

Wow, zamiast sie ciskac pom??cie kolesiowi ja nie mam czasu na pisanie i sprawdzanie wszystkiego mo?e co? przeoczy?em, wi?c znawcy poprawiajcie. ; )

PHP:
function onTime(time) 
local c = 
{ 
    p = { x=1000,x=1000,z=7, stackpos = 255}, 
    t = = { x=1000,x=1000,z=7}, 
    m = "Teleport do pojawil sie w temple", 
    e = 31, 
    i = 1387 
} 
local tile = getTileThingByPos(c.p)
    if tile.itemid ~= 0 and not isCreature(tile.uid) then 
        doCreateTeleport(c.i, c.p, c.t) 
        doBroadcastMessage(c.m, MESSAGE_EVENT_ADVANCE) 
        doSendMagicEffect(c.p, c.e) 
    end 
    return true 
end
 

Qermo

Advanced User
Joined
Aug 22, 2009
Messages
227
Reaction score
34
Odp: TP pojawia si? o godzinie XXX (TFS 0.4)

Maniucza@ rep za ch?ci aczkolwiek dalej tp si? nie pojawia.. Ehh szkoda...
Okey , widz? ,?e tamat wyczerpany. Trzeba szuka? pomocy gdzie indziej.
 
Z

Zbizu

Guest
Odp: TP pojawia si? o godzinie XXX (TFS 0.4)

g*wno prawda
zr?b tak ?eby pojawia? si? tylko sam item 1387 bez atrybut?w i ustaw globalstorage dla pod?ogi pod nim, potem jak chcesz ?eby portal si? usuwa? usuwasz sam item i zerujesz globalstorage

w jakim? libie(data\lib) daj sobie z odpowiedni? pos:
portaldestination = { x=1000,x=1000,z=7},

portal = tuwpiszstorageportalu

I to daj sobie do movementu kratki pod tp
Code:
function onStepIn(cid, item, position, fromPosition)
            if getGlobalStorageValue(portal) == 1 and getTileItemById(getThingPos(cid), 1387) == true then
                doTeleportThing(cid,portaldestination)
                doSendMagicEffect(getThingPos(cid), 47)
                doSendMagicEffect(getThingPos(cid), 10)
            else
            setGlobalStorageValue(portal, 0)
            end
            return true
    end

i ten timer:
Code:
function onTime(time) 
local c = 
{ 
    m = "Teleport do pojawil sie w temple", 
    i = 1387
    p = = { x=1000,x=1000,z=7},   -- pozycja stworzenia portalu
} 
        doCreateItem(c.i, 1, c.p) 
        doBroadcastMessage(c.m, MESSAGE_EVENT_ADVANCE) 
        setGlobalStorageValue(portal, 1)
    return true 
end

mam inny dzia?aj?cy skrypt w swoim datapacku bazuj?cy na tej technice i obs?uguj?cy znikanie teleportu po czasie oraz restarty serwera(tp mo?e sta? kilka dni a i tak o ustalonym op??nieniu zniknie) ale nie chce mi si? go przerabia? na twoje potrzeby, jak ci b?dzie potrzebny addEvent mog? ci wys?a? troch? skomplikowany przyk?ad na pw
 
Last edited:

De$t

Active User
Joined
Nov 20, 2008
Messages
148
Reaction score
27
Odp: TP pojawia si? o godzinie XXX (TFS 0.4)

Nic nie jest wyczerpane. ;)

globalevents.xml

Code:
<globalevent name="tp" time="19:21" event="script" value="XXXX.lua"/>

XXXX.lua

Code:
local t =  
{   
    toPos = {x=1000,y=1000,z=7},
    createPos = {x=1003,y=1001,z=7},  
    message = "Teleport do pojawil sie w temple",  
    effect = 31,  
    idTp = 1387  
} 

function onTime(time)   
        doCreateTeleport(t.idTp, t.toPos, t.createPos)  
        doBroadcastMessage(t.message, MESSAGE_EVENT_ADVANCE)  
        doSendMagicEffect(t.createPos, t.effect)  
    return true  
end
 

Qermo

Advanced User
Joined
Aug 22, 2009
Messages
227
Reaction score
34
Odp: TP pojawia si? o godzinie XXX (TFS 0.4)

kamild113@
"Miszcz" o to w?a?nie chodzi?o Mucias gracias !
Oczywi?cie rep+

Mam jeszcze jedn? pro?b? aczkolwiek ju? nie tak wa?n? chcia?bym tylko ,?eby tp po 5 minutach znika?o.

Zbizu@
Rep +
 
Z

Zbizu

Guest
Odp: TP pojawia si? o godzinie XXX (TFS 0.4)

okej, skoro u?ywasz skrypta kamila bazuje w?a?nie na nim:
Code:
local t =  
{   
    toPos = {x=1000,y=1000,z=7},
    createPos = {x=1003,y=1001,z=7},  
    message = "Teleport do pojawil sie w temple",  
    effect = 31,  
    idTp = 1387  
} 
            function tileChecker(pos)
                local myTable = {}
                if (type(pos) == 'table') then
                    for i = 1, 5 do
                    pos.stackpos = i
                    local thisID = getThingFromPos(pos).itemid
                        if thisID > 1 then
                        table.insert(myTable, thisID)
                        end
                    end
                end
                return #myTable > 0 and myTable or nil
            end

            function findItem(pos, t)
                if (type(pos) == 'table' and type(t) == 'table') then
                    for _i, i in ipairs(tileChecker(pos)) do
                        if isInArray(t, i) then
                            pos.stackpos = _i
                            ret = getThingFromPos(pos).uid
                            break
                        end
                    end
                end
                return ret
            end
            
local function closeportal()
    doRemoveItem(findItem(t.createPos, {t.idTp}))
end
function onTime(time)   
        doCreateTeleport(t.idTp, t.toPos, t.createPos)  
        doBroadcastMessage(t.message, MESSAGE_EVENT_ADVANCE)  
        doSendMagicEffect(t.createPos, t.effect)  
        addEvent(closeportal, 5 * 60 * 1000)
    return true  
end

tilechecker i finditem s? by teleport zosta? znaleziony niezale?nie od pozycji w stacku
funkcje zaczerpni?te z wej?cia na poi z real datapack?w, nie znam autora
 

Qermo

Advanced User
Joined
Aug 22, 2009
Messages
227
Reaction score
34
Odp: TP pojawia si? o godzinie XXX (TFS 0.4)

Okey, wszystko dzia?a jak w zegarku. Temat do zamkni?cia.
Wielkie dzi?ki panowie. ;)
 
Status
Not open for further replies.
Top