Item teleportujący do temple - full konfiguracja
PRzeSteR
Item teleportujący do temple - full konfiguracjaPo prostu przedmiot odsyłający gracza do temple lub określonej pozycji. Do tego (jak poprzednio) pełna konfiguracja.
Changelog:
Kod: 0.1.0
- lTeleportuje do temple tylko jeśli nie mamy battlel
lTeleportuje do temple lub określonej pozycjil
lKończy/nie kończy sięl
lKonfigurowalne efekty magicznel
lKonfigurowalna wiadomość w przypadku próby tp z battlel
0.1.1
- lSkrócony kodl
Myślę, że nie muszę tłumaczyć 'jak to przerobić' bo w configu jest chyba wszystko co się dało.
WERSJA 0.1.0
tpitem.lua
Kod: -- By Tako Dako AKA Avixu
local config = {
-- Teleportacja tylko pod warunkiem, ze nie ma battle
-- 0 = Nie, 1 = Tak
teleportOnlyIfNoBattle = 1,
-- Teleportacja do temple (jesli nie, podaj pozycje nizej)
-- 0 = Nie, 1 = Tak
teleportToTemple = 1,
-- Teleportacja do okreslonej pozycji
teleportPosition = { x=95, y=95, z=7 },
-- Czy ma sie konczyc
-- 0 = Nie, 1 = Tak
removeItem = 0,
-- Efekt magiczny w miejscu uzycia
-- Numerek lub nazwa z constanta
startMagicEffect = 2,
-- Efekt magiczny w miejscu przeteleportowania
-- Numerek lub nazwa z constanta
destinationMagicEffect = 10,
-- Wiadomosc przy probie teleportacji z battle
-- Numerek lub nazwa z constanta albo wlasna
-- wiadomosc (musi byc w cudzyslowiach)
errorMessage = "You may not use teleportation while you have battle!"
}
function onUse(cid, item, fromPosition, itemEx, toPosition)
if config.teleportOnlyIfNoBattle == 1 then -- teleportacja tylko bez battle
if getCreatureCondition(cid, 1024) == FALSE then -- jesli nie ma battle
if config.teleportToTemple == 1 then -- jesli ma teleportowac do temple
doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) -- teleportuj do temple
doSendMagicEffect(getTownTemplePosition(getPlayerTown(cid)), config.destinationMagicEffect) -- daj efekt na miejscu
doSendMagicEffect(toPosition, config.startMagicEffect) -- daj efekt na poczatku
if config.removeItem == 1 then -- jesli ma sie konczyc
doRemoveItem(item.uid, 1) -- usun item
else
return FALSE
end
else -- jesli ma teleportowac w okreslone miejsce
doTeleportThing(cid, config.teleportPosition) -- teleportuj
doSendMagicEffect(getTownTemplePosition(getPlayerTown(cid)), config.destinationMagicEffect) -- daj efekt na miejscu
doSendMagicEffect(toPosition, config.startMagicEffect) -- daj efekt na poczatku
if config.removeItem == 1 then -- jesli ma sie konczyc
doRemoveItem(item.uid, 1) -- usun item
else
return FALSE
end
end
else -- inaczej wyslij komunikat
doPlayerSendCancel(cid, config.errorMessage)
end
else
if config.teleportToTemple == 1 then -- jesli ma teleportowac do temple
doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) -- teleportuj do temple
doSendMagicEffect(getTownTemplePosition(getPlayerTown(cid)), config.destinationMagicEffect) -- daj efekt na miejscu
doSendMagicEffect(toPosition, config.startMagicEffect) -- daj efekt na poczatku
if config.removeItem == 1 then -- jesli ma sie konczyc
doRemoveItem(item.uid, 1) -- usun item
else
return FALSE
end
else -- jesli ma teleportowac w okreslone miejsce
doTeleportThing(cid, config.teleportPosition) -- teleportuj
doSendMagicEffect(getTownTemplePosition(getPlayerTown(cid)), config.destinationMagicEffect) -- daj efekt na miejscu
doSendMagicEffect(toPosition, config.startMagicEffect) -- daj efekt na poczatku
if config.removeItem == 1 then -- jesli ma sie konczyc
doRemoveItem(item.uid, 1) -- usun item
else
return FALSE
end
end
end
end WERSJA 0.1.1 - Nie działa, proszę na razie używać 0.1.0
Kod: -- By Tako Dako AKA Avixu
-- v 0.1.1
local config = {
-- Teleportacja tylko pod warunkiem, ze nie ma battle
-- 0 = Nie, 1 = Tak
teleportOnlyIfNoBattle = 1,
-- Teleportacja do temple (jesli nie, podaj pozycje nizej)
-- 0 = Nie, 1 = Tak
teleportToTemple = 1,
-- Teleportacja do okreslonej pozycji
teleportPosition = { x=95, y=95, z=7 },
-- Czy ma sie konczyc
-- 0 = Nie, 1 = Tak
removeItem = 0,
-- Efekt magiczny w miejscu uzycia
-- Numerek lub nazwa z constanta
startMagicEffect = 2,
-- Efekt magiczny w miejscu przeteleportowania
-- Numerek lub nazwa z constanta
destinationMagicEffect = 10,
-- Wiadomosc przy probie teleportacji z battle
-- Numerek lub nazwa z constanta albo wlasna
-- wiadomosc (musi byc w cudzyslowiach)
errorMessage = "You may not use teleportation while you have battle!"
}
function teleportToTemple(cid, item, fromPosition, itemEx, toPosition)
doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) -- teleportuj do temple
doSendMagicEffect(getTownTemplePosition(getPlayerTown(cid)), config.destinationMagicEffect) -- daj efekt na miejscu
doSendMagicEffect(toPosition, config.startMagicEffect) -- daj efekt na poczatku
end
function teleportToPosition(cid, item, fromPosition, itemEx, toPosition)
doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) -- teleportuj do temple
doSendMagicEffect(getTownTemplePosition(getPlayerTown(cid)), config.destinationMagicEffect) -- daj efekt na miejscu
doSendMagicEffect(toPosition, config.startMagicEffect) -- daj efekt na poczatku
end
function onUse(cid, item, fromPosition, itemEx, toPosition)
if config.teleportOnlyIfNoBattle == 1 then -- jesli ma teleportowac tylko bez battle
if getCreatureCondition(cid, 1024) == FALSE then -- jesli nie ma battle
if config.teleportToTemple == 1 then -- jesli ma teleportowac do temple
return teleportToTemple -- zwroc funkcje teleportToTemple
if config.removeItem == 1 then -- jesli ma sie konczyc
doRemoveItem(item.uid, 1) -- usun item
else
return FALSE
end
else -- jesli ma teleportowac w okreslone miejsce
return teleportToPosition -- zwroc funkcje teleportToPosition
doRemoveItem(item.uid, 1) -- usun item
else
return FALSE
end
end
else -- inaczej wyslij komunikat
doPlayerSendCancel(cid, config.errorMessage)
end
else
if config.teleportToTemple == 1 then -- jesli ma teleportowac do temple
return teleportToTemple -- zwroc funkcje teleportToTemple
if config.removeItem == 1 then -- jesli ma sie konczyc
doRemoveItem(item.uid, 1) -- usun item
else
return FALSE
end
else -- jesli ma teleportowac w okreslone miejsce
return teleportToPosition -- zwroc funkcje teleportToPosition
if config.removeItem == 1 then -- jesli ma sie konczyc
doRemoveItem(item.uid, 1) -- usun item
else
return FALSE
end
end
end
end actions.xml
Kod: <action itemid="ID ITEMKA" script="tpitem.lua" /> Pozdro ^^
Skrypt zajebisty ;D. Więcej takich poradników.. 10/10
Zaraz idę do swojego Otsa dodać..
Mam pytanie..skrypt zadziała na silnik (tibie) 8.1 ?
Nie no Good Job Man dzieki za skrypcik ; d napewno go dodam do swego ots jol reput :P
Skrypt i pomysl bardzo dobry. To objasnienie tez dobre. Tylko 2 Błedy, Misnowicie: Zaduzo najebane za duzo objasnien, 60% skryptu to znaki ktorych nie czyta sever a zpowalniaja go bardzo chodzby ten skrypt o 60% a gdy caly ots ma we wszystkim tego najebane w chuj to co zrobic ? pochlastac sie idzie... przeciez wtedy ots chodzi o 60%-80% wolniej. Ja tam na swoim TFS nie sciagalem silnika tylko sucorce i usunolem all te zbedne napisy i moge powiedziec ze dziala zajebiscie ;](p's w skryptach mam tez usunolem all te przykladowe --skrypt by ktos tam. to zpowalnia bardzo tak wiec muj server ciagnie 100 bez najmniejszych lagow. Porownanie ? Moj server startuje w 1.34.26 (min.sec.set sec) a Zwykly TFS Ktory ma mniejsza mape niz moja i mniej skryptow i prostrze wczytuje sie kolo 3-4 min.:D:D:D:D:D:D:D
#Zwieha PozdrO
@up
Komentarze nie są widziane przez serwer, może być ich 666 linijek i 3 liniki kodu i nic to nie zmieni :) A te objaśnienia to miały być dla mnie i miałem to usunąć ale było późno i już nie miałem czasu ;3
@topic
Za niedługo wersja 0.2 Tales of hidden temple ^^
Mam zamiar dodać:
TP za GP/Soule/Mane/HP/Itemek
TP tylko dla premium
TP tylko dla tych z promocją
TP tylko dla tych co zrobili określony quest
TP tylko dla określonych profesji
TP tylko dla określonego access i wzwyż
:D
@Liptonik
Skrypt zadziała na każdym TFSie, jeśli masz Evo to trzeba pozmieniać conieco, zaraz Ci wrzucę.
Ładny skrypt na pewno się przyda zaraz wypróbuje w ots ;] repucik leci GZ dla ciebie ;]:rolleyes:
Spoko, pjona. Obejrzycie również inne moje skrypty (w podpisie) :D
@edit
2 posty wyżej wymieniłem funkcje które chcę dodać
No i mam pytanie, które są Wam najbardziej potrzebne?
Czy ten skrypt będzie działał na Evo 8.10 ??
Dobry skrypt, ale nie na RPG... i szczerze bardzo podobny jest w silniku roxor'a, tyle że bez konfiguracji (nie zmierzam do tego że go skopiowałeś, ale do tego że tego typu skryptów jest bardzo dużo) ... I co do pytań "Czy będzie działać na evo?" to nie, skrypt zdecydowanie jest pisany na TFS'a.
Pozdrawiam,
Sassin
Skrypt jest bardzo fajny i przydatny. Dobrze ,ze to wymysliles bo wlasnie tego szukalem ;) dzieki 10/10
Skrup bardzo fajny POLECAM!
Witam wszystkich ;) Ja mam taki mały problem z tym skryptem.. Zapewne jest to błaha sprawa, aczkolwiek do końca nie wiem jak ją rozwiązać. Tak więc, gdy używam mojego przedmiotu w grze, pokazuje mi się taki błąd :
Kod: Lua Script Error: [Action Interface]
data/actions/scripts/tpitem.lua:onUse
data/actions/scripts/tpitem.lua:15: attempt to call global 'getTownTemplePosition' (a nil value)
stack traceback:
data/actions/scripts/tpitem.lua:15: in function <data/actions/scripts/tpitem.lua:11> (rzecz jasna, w konsoli)
A mój skrypt wygląda następująco :
Kod: -- By Tako Dako AKA Avixu
local config = {
teleportOnlyIfNoBattle = 1,
teleportToTemple = 1,
teleportPosition = { x=1479, y=2020, z=7 },
removeItem = 0,
startMagicEffect = 1,
destinationMagicEffect = 10,
errorMessage = "You may not use teleportation while you have battle!"
}
function onUse(cid, item, fromPosition, itemEx, toPosition)
if config.teleportOnlyIfNoBattle == 1 then -- teleportacja tylko bez battle
if getCreatureCondition(cid, 1024) == FALSE then -- jesli nie ma battle
if config.teleportToTemple == 1 then -- jesli ma teleportowac do temple
doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) -- teleportuj do temple
doSendMagicEffect(getTownTemplePosition(getPlayerTown(cid)), config.destinationMagicEffect) -- daj efekt na miejscu
doSendMagicEffect(toPosition, config.startMagicEffect) -- daj efekt na poczatku
if config.removeItem == 1 then -- jesli ma sie konczyc
doRemoveItem(item.uid, 1) -- usun item
else
return FALSE
end
else -- jesli ma teleportowac w okreslone miejsce
doTeleportThing(cid, config.teleportPosition) -- teleportuj
doSendMagicEffect(getTownTemplePosition(getPlayerTown(cid)), config.destinationMagicEffect) -- daj efekt na miejscu
doSendMagicEffect(toPosition, config.startMagicEffect) -- daj efekt na poczatku
if config.removeItem == 1 then -- jesli ma sie konczyc
doRemoveItem(item.uid, 1) -- usun item
else
return FALSE
end
end
else -- inaczej wyslij komunikat
doPlayerSendCancel(cid, config.errorMessage)
end
else
if config.teleportToTemple == 1 then -- jesli ma teleportowac do temple
doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) -- teleportuj do temple
doSendMagicEffect(getTownTemplePosition(getPlayerTown(cid)), config.destinationMagicEffect) -- daj efekt na miejscu
doSendMagicEffect(toPosition, config.startMagicEffect) -- daj efekt na poczatku
if config.removeItem == 1 then -- jesli ma sie konczyc
doRemoveItem(item.uid, 1) -- usun item
else
return FALSE
end
else -- jesli ma teleportowac w okreslone miejsce
doTeleportThing(cid, config.teleportPosition) -- teleportuj
doSendMagicEffect(getTownTemplePosition(getPlayerTown(cid)), config.destinationMagicEffect) -- daj efekt na miejscu
doSendMagicEffect(toPosition, config.startMagicEffect) -- daj efekt na poczatku
if config.removeItem == 1 then -- jesli ma sie konczyc
doRemoveItem(item.uid, 1) -- usun item
else
return FALSE
end
end
end
end
Kod: -- Item teleporting to temple by Avixu
-- Dedicated for TFS 0.3.5PL2
local config = {
teleportOnlyIfNoBattle = 1,
teleportToTemple = 1, -- set on 0 if you want to use own position (teleportPosition)
teleportPosition = { x=95, y=95, z=7 },
removeItem = 1,
startMagicEffect = 2,
destinationMagicEffect = 10,
haveBattleMessage = "You may not use teleportation while you have battle!",
minLevel = 100, -- set on 0 to disable
levelTooLowMessage = "Your level is too low."
}
function onUse(cid, item, fromPosition, itemEx, toPosition)
if config.teleportOnlyIfNoBattle == 1 then
if getCreatureCondition(cid, 1024) == TRUE then
doPlayerSendCancel(cid, config.haveBattleMessage)
return FALSE
end
end
if config.minLevel > 0 then
if getPlayerLevel(cid) < config.minLevel then
doPlayerSendCancel(cid, config.levelTooLowMessage)
return FALSE
end
end
if config.teleportToTemple == 1 then
doTeleportThing(cid, getPlayerMasterPos(cid))
else
doTeleportThing(cid, config.teleportPosition)
end
doSendMagicEffect(getCreaturePosition(cid), config.destinationMagicEffect)
doSendMagicEffect(toPosition, config.startMagicEffect)
if config.removeItem == 1 then
doRemoveItem(item.uid, 1)
end
end