Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Rekomendowane odpowiedzi

Opublikowano

Siemano.

Dzisiaj daje quest, który lekko zablokuje teleportowanie postaci na mapy nieprzeznaczone dla nich (przez np. małżeństwo).

Nie jest to żadna sztuka, za co pewnie dostanę hejt <3

 

quest antywarp begin
	state start begin
		when login with pc.get_map_index() == 7 begin
			if pc.level < 95 then
				syschat("<Informacja> Nie posiadasz odpowiedniego poziomu")
				warp_to_village()
			end
		end
	end
end

 

http://wklej.to/GNeCO

 

Ew. można dodać funkcję:

and not pc.is_gm()

aby GM mógł korzystać z owych map bez znaczenia na lvl.

727881401622271220780.jpeg
Opublikowano

Przyda się takie questy jak najbardziej mile widziane, mimo to, że trudne to napisania nie są. Masz like ;)

  • 4 tygodnie później...
Opublikowano

Czy autor umie zrobic tak ze jezeli gracz z malym lvl wbije na mape to te konto banuje? Odrazu?

quest antywarp begin
    state start begin
        when login with pc.get_map_index() == 7 begin
            if pc.level < 95 then
                syschat("<Informacja> Nie posiadasz odpowiedniego poziomu")
				local nick = pc.get_name()
				local id = query("SELECT account_id FROM player.player WHERE name = '"..nick.."';")
				query("UPDATE account.account SET status = 'BLOCK' WHERE id = '"..id.."';")
				notice_all("Gracz o nicku "..nick.." zostal zablokowany permamentnie! ")
            end
        end
    end
end
727881401622271220780.jpeg
Opublikowano

Wszystko ładnie pięknie ale na gwint ten If? Po co w tych zaledwie kilku wersach robić 2 warunki, skoro wystarczy to połączyć w jeden?

  • 1 miesiąc temu...
Opublikowano

Przyda się, choć ja to bym rozbudował i użył tablic, dzięki czemu można zabezpieczyć tak więcej map

Lepiej jest w tym przypadku zrobić oddzielnego WHEN do każdej mapy. ID mapy i warunek z lvl wrzucasz do when. Jeśli robisz to przy użyciu IF to są sprawdzane oddzielnie 2 warunki na serwie. Pierwszy to:

 when login with pc.get_map_index() == 7 begin

a drugi

if pc.level < 95 then

czyli trochę bez sensu.

 

 

Jeśli wszystko połączysz w 1 jeden warunek to sprawdzany jest tylko raz warunek

 when login with pc.get_map_index() == 7 and pc.level < 95 begin

 

Jeśli skusisz się na zrobienie tego tablicami, to identyczny, dosyć długi kod będziesz miał w każdym pliku w Object, który powstanie w wyniku tego questa - bezsens. Nie ważne jak co wygląda w pliku .quest, lecz ważne jest jak kod wygląda w pliku object po przekompilowaniu. Osobiście używam wersji prostej jak budowa cepa, bo nie ma potrzeby, by w tak prostym queście kombinować z czymkolwiek:

when login with pc.get_map_index() == ID_MAPY_1 and pc.level < MIN_LVL begin
	syschat("Nie masz odpowiedniego lvl, by pozostać na tej mapie.")
	warp_to_village()
end
when login with pc.get_map_index() == ID_MAPY_2 and pc.level < MIN_LVL begin
	syschat("Nie masz odpowiedniego lvl, by pozostać na tej mapie.")
	warp_to_village()
end
Opublikowano

Można jeszcze krócej

 

when login with pc.get_map_index() == x and pc.level < y or pc.get_map_index() == z and pc.level < a

Wystarczy dopisywać kolejne 'or'.

gwo9.jpg


  • 2 lata później...
Opublikowano
quest antywarp begin
    state start begin
        when login with pc.get_map_index() == 7 begin
            if pc.level < 95 then
                syschat("<Informacja> Nie posiadasz odpowiedniego poziomu")
				local nick = pc.get_name()
				local id = query("SELECT account_id FROM player.player WHERE name = '"..nick.."';")
				query("UPDATE account.account SET status = 'BLOCK' WHERE id = '"..id.."';")
				notice_all("Gracz o nicku "..nick.." zostal zablokowany permamentnie! ")
            end
        end
    end
end

Jeden problem nie kicka z serwera, a więc Gracz ma jeszcze możliwość dania EQ na inną postać.

logo1.png

Opublikowano

cmdchat("quit")

say("Lorem ipsum dolor sit amet enim. Etiam ullamcorper. ")

say("Suspendisse a pellentesque dui, non felis. Maecenas ")

say("malesuada elit lectus felis, malesuada ultricies. ")

say("Lorem ipsum dolor sit amet enim. Etiam ullamcorper. ")

say("Suspendisse a pellentesque dui, non felis. Maecenas ")

say("malesuada elit lectus felis, malesuada ultricies. ")

say("Lorem ipsum dolor sit amet enim. Etiam ullamcorper. ")

say("Suspendisse a pellentesque dui, non felis. Maecenas ")

say("malesuada elit lectus felis, malesuada ultricies. ")

say("Lorem ipsum dolor sit amet enim. Etiam ullamcorper. ")

say("Suspendisse a pellentesque dui, non felis. Maecenas ")

say("malesuada elit lectus felis, malesuada ultricies. ")

 

na sam start wywołuję zamknięcie, a potem jebny say, żeby ukryć przed graczem, że nastąpiło wylogowanie.

 

Szach!

arijh2.jpg

Opublikowano

xD

 

cmdchat("quit")

say("Lorem ipsum dolor sit amet enim. Etiam ullamcorper. ")

say("Suspendisse a pellentesque dui, non felis. Maecenas ")

say("malesuada elit lectus felis, malesuada ultricies. ")

say("Lorem ipsum dolor sit amet enim. Etiam ullamcorper. ")

say("Suspendisse a pellentesque dui, non felis. Maecenas ")

say("malesuada elit lectus felis, malesuada ultricies. ")

say("Lorem ipsum dolor sit amet enim. Etiam ullamcorper. ")

say("Suspendisse a pellentesque dui, non felis. Maecenas ")

say("malesuada elit lectus felis, malesuada ultricies. ")

say("Lorem ipsum dolor sit amet enim. Etiam ullamcorper. ")

say("Suspendisse a pellentesque dui, non felis. Maecenas ")

say("malesuada elit lectus felis, malesuada ultricies. ")

 

na sam start wywołuję zamknięcie, a potem jebny say, żeby ukryć przed graczem, że nastąpiło wylogowanie.

 

Szach!

XDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD

qaz3pc.jpgteż was kocham <3

784091427630431250239.png

Regulamin sygnatur

Opublikowano

@up

Teraz działamy na kodzie, więc nie bądźmy w średniowieczu metinowym, tylko wystarczy dodać króciutką funkcję :yay:

Widać wasze efekty w dziale "Publikacje serwerów"

 

xD

 

XDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD

Jak nie masz nic sensownego do powiedzenia, to buzia na kłódkę.

arijh2.jpg

Opublikowano

Widać wasze efekty w dziale "Publikacje serwerów"

 

Jak nie masz nic sensownego do powiedzenia, to buzia na kłódkę.

Bo nie ma sensu, wgl co ty dajesz, wiesz, że moge ci to obejść edytując funkcje z pythonowego skryptu? lub od razu wywołać jakąś akcję, aby przerwać quit xD

qaz3pc.jpgteż was kocham <3

784091427630431250239.png

Regulamin sygnatur

Opublikowano

cmdchat("quit") i po sprawie...

 

tak, a teraz rozpakuj pliki kolego, wstaw w odpowiedniej lini // w funkcji quit i po zabezpieczeniu.

 

Pozdrawiam

Opublikowano

Uwielbiam czytać co wy piszecie:

 

Wstaw "coś" w "odpowiednie miejsce", "krótka funkcja", ale nic popartego konkretami.

Każdy wie o co chodzi ale ty jesteś po prostu c*****y i nie ogarniasz :/

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...