ďťż

Item teleportujący do temple - full konfiguracja

PRzeSteR

Item teleportujący do temple - full konfiguracja
  Po 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
Skrypt 100% mój, wymyślony pod prysznicem :D, zezwalam na edycję i udostępnianie gdziekolwiek pod warunkiem podania autora.

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
Copyright (c) 2009 PRzeSteR | Powered by Wordpress. Fresh News Theme by WooThemes - Premium Wordpress Themes.