Reklama
Pokazuje wyniki od 1 do 5 z 5

Temat: [8.54] Zakaz wejścia do PZ

  1. #1
    hin3r

    Domyślny [8.54] Zakaz wejścia do PZ

    Hiho. Czy ktoś ma może pomysł na skrypt, który nie pozwalałby graczowi wchodzić do PZ w sytuacji gdy mamy poniżej 8 lvl? Myślałem nad getTilePzInfo(), jednak nie wiem jak zdefiniować to w movements.xml. Póki co skrypt wygląda tak:

    Kod:
    function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor)
    if(not isPlayer(cid)) then
     return true
    end
    if(getPlayerLevel(cid) < 8 and getTilePzInfo(toPosition)) then
     doTeleportThing(cid, lastPosition)
    end
    
    return true
    end

  2. #2
    Avatar GM Esio
    Data rejestracji
    2007
    Położenie
    Mysłowice
    Wiek
    32
    Posty
    333
    Siła reputacji
    18

    Domyślny

    Kod:
    function onStepIn(cid, item, pos)
    
    local wymaganylvl = 8
    local npos = {x=pos.x, y=pos.y-1, z=pos.z}
    
    if getPlayerLevel(cid) >= wymaganylvl then
    else
    doTeleportThing(cid, npos)
    doPlayerSay(cid,'nie mozesz wejsc do pz',TALKTYPE_ORANGE_1)
    end
    end
    Ustawiasz na podłodze action id 5020

    <movevent type="StepIn" actionid="5020" event="script" value="pz.lua"/>
    http://ots.tibiaserver.pl/tibiaserver.gif

  3. Reklama
  4. #3
    hin3r

    Domyślny

    W ten sposób, myśle bym sobie poradził ale na mapie mam jednak troche tych pz i staram się tego uniknąć.

    I lepiej byłoby chyba tak, bo ten Twój kod jest jakiś "nieteges":
    Kod:
    function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor)
    if(not isPlayer(cid)) then
     return true
    end
    if(getPlayerLevel(cid) < 8 and item.actionid == 5020) then
     doTeleportThing(cid, lastPosition)
    end
    
    return true
    end
    Ostatnio zmieniony przez hin3r : 07-09-2010, 21:51

  5. #4

    Notoryczny Miotacz Postów Visher jest teraz offline
    Avatar Visher
    Data rejestracji
    2009
    Położenie
    Stalowa Wola.
    Posty
    1,253
    Siła reputacji
    16

    Domyślny

    isPlayer(cid) jest tutaj całkowicie zbędne, monster i tak nie wejdzie do pz, jest to sprawdzane w silniku.
    Kod:
    <movevent type="StepIn" itemid="424" event="script" value="enterblock.lua"/>
    itemid="424" - ustawiasz tutaj id kratek na który ma się odbywać sprawdzanie
    Kod:
    function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor)
    
    	if(getPlayerLevel(cid) < 8 and getTilePzInfo(toPosition)) then
    		doTeleportThing(cid, fromPosition, true)
    	end
    	
    	return true
    end
    Oraz dodatkowa informacja - jeżeli w doTeleportThing ustawisz ostatni parametr równy false, to teoretcznie nikt oprócz gracza nie powinien zobaczyć wykonanego ruchu, gdyż od razu jest teleportowany w poprzednie miejsce. Ustawiona tu wartość true da efekt wejścia na kratkę, ale milisekundę po nim gracz zostanie wypchnięty z powrotem.
    Ostatnio zmieniony przez Visher : 07-09-2010, 22:53

  6. #5
    hin3r

    Domyślny

    Na taką odpowiedź oczekiwałem. Już nie raz mi pomogłeś, z resztą nie tylko mi. Więcej takich użytkowników jak Ty. Pozdrawiam. :)

Reklama

Informacje o temacie

Użytkownicy przeglądający temat

Aktualnie 1 użytkowników przegląda ten temat. (0 użytkowników i 1 gości)

Podobne tematy

  1. Dziwne wejścia na konto
    Przez Delusjanth w dziale Tibia
    Odpowiedzi: 6
    Ostatni post: 24-03-2013, 16:51
  2. wejścia usb -.-"
    Przez Visioon w dziale Sprzęt i oprogramowanie
    Odpowiedzi: 0
    Ostatni post: 16-01-2013, 18:03
  3. Karta dźwiękowa a wejscia 3,5mm w obudowie.
    Przez Exploodeex w dziale Sprzęt i oprogramowanie
    Odpowiedzi: 15
    Ostatni post: 16-01-2012, 19:21

Zakładki

Zakładki

Zasady postowania

  • Nie możesz pisać nowych tematów
  • Nie możesz pisać postów
  • Nie możesz używać załączników
  • Nie możesz edytować swoich postów
  •