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

Szukajka googli nie pomaga (http://google.pl/sea...zastępstwa), szukajka mpc również (wpiszcie sobie "Pierścień" i same pierścienie tp wam wyskoczą) a więc sam napisałem questa na Pierścień Zastępstwa.

 

v1:

 

quest change_guild_master begin
state start begin
 when 71099.use begin
  say_title("Pierścień Zastępstwa:")
  say("Pierścień Zastępstwa pozwala mianować członka")
  say("gildii na Lidera. Wystarczy, że będąc aktualnym")
  say("Liderem podasz imię osoby, której chcesz przekazać ")
  say("władzę nad gildią (zmiana jest nieodwracalna):")
  local name = input()
  if name == "" then
return
  elseif name == pc.get_name() then
say_title("Pierścień Zastępstwa:")
say("Nie możesz samemu sobie przydzielić zastępstwa.")
return
  end
  say_title("Pierścień Zastępstwa:")
  local change = guild.change_master(name)
  if change == 0 then
say("Nieznany błąd nr 1")
  elseif change == 1 then
say("Zmiana Lidera gildii jest możliwa tylko")
say("wtedy, gdy nim jesteś.")
  elseif change == 2 then
say("Nie ma takiego członka w twojej gildii.")
  elseif change == 3 then
say("Zastępstwo zostało przydzielone graczowi")
say(name..". Przeloguj się w celu zmiany lidera.")
  elseif change == 4 then
say("Nieznany błąd nr 2")
  end
 end
end
end

 

Wklej.to:

http://wklej.to/2KRFC

 

 


v2:

 

quest change_guild_master begin
state start begin
 when 71099.use begin
  say_title("Pierścień Zastępstwa:")
  say("Pierścień Zastępstwa pozwala mianować członka")
  say("gildii na Lidera. Wystarczy, że będąc aktualnym")
  say("Liderem podasz imię osoby, której chcesz przekazać ")
  say("władzę nad gildią (zmiana jest nieodwracalna):")
  local name = input()
  local find = find_pc_by_name(name)
  local wymagany = 40
  say_title("Pierścień Zastępstwa:")
  if name == "" then
say("Żadna nazwa nie została wpisana.")
say("Zmiana lidera anulowana.")
return
  elseif name == pc.get_name() then
say("Nie możesz samemu sobie przydzielić zastępstwa.")
return
  elseif find == 0 then
say("Zmiana lidera gildii jest możliwa tylko wtedy, gdy")
say("zastępca jest zalogowany na tej samej mapie co ty.")
return
  else
local select = pc.select(find)
local level = pc.get_level()
pc.select(select)
if level < wymagany then
 say("Przyszły lider musi mieć co najmniej "..wymagany.." poziom.")
 return
end
  end
  local change = guild.change_master(name)
  if change == 0 then
say("Nieznany błąd nr 1")
  elseif change == 1 then
say("Zmiana Lidera gildii jest możliwa tylko")
say("wtedy, gdy nim jesteś.")
  elseif change == 2 then
say("Nie ma takiego członka w twojej gildii.")
  elseif change == 3 then
say("Zastępstwo zostało przydzielone graczowi")
say(name..". Przeloguj się w celu zmiany lidera.")
item.remove()
  elseif change == 4 then
say("Nieznany błąd nr 2")
  end
 end
end
end

 

Wklej.to:

http://wklej.to/SZClg

 

 


v2.1

quest change_guild_master begin
state start begin
 when 71099.use begin
  say_title("Pierścień Zastępstwa:")
  say("Pierścień Zastępstwa pozwala mianować członka")
  say("gildii na Lidera. Wystarczy, że będąc aktualnym")
  say("Liderem podasz imię osoby, której chcesz przekazać ")
  say("władzę nad gildią (zmiana jest nieodwracalna):")
  local name = input()
  local find = find_pc_by_name(name)
  local wymagany = 40
  say_title("Pierścień Zastępstwa:")
  if not pc.has_guild() then
  elseif name == "" then
say("Żadna nazwa nie została wpisana.")
say("Zmiana lidera anulowana.")
return
  elseif name == pc.get_name() then
say("Nie możesz samemu sobie przydzielić zastępstwa.")
return
  elseif find == 0 then
say("Zmiana lidera gildii jest możliwa tylko wtedy, gdy")
say("zastępca jest zalogowany na tej samej mapie co ty.")
return
  elseif find > 0 then
local select = pc.select(find)
local level = pc.get_level()
pc.select(select)
if level < wymagany then
 say("Przyszły lider musi mieć co najmniej "..wymagany.." poziom.")
 return
end
  end
  local change = guild.change_master(name)
  if change == 0 then
say("Nieznany błąd nr 1")
  elseif change == 1 then
say("Zmiana Lidera gildii jest możliwa tylko")
say("wtedy, gdy nim jesteś.")
  elseif change == 2 then
say("Nie ma takiego członka w twojej gildii.")
  elseif change == 3 then
say("Zastępstwo zostało przydzielone graczowi")
say(name..". Przeloguj się w celu zmiany lidera.")
item.remove()
  elseif change == 4 then
say("Nie możesz używać tego przedmiotu gdy")
say("nie posiadasz gildii.")
  end
 end
end
end

 

Wklej.to:

http://wklej.to/SNbel

 


Co zostało zmienione:

 

v1

  • stworzenie questa

v2

  • dodane sprawdzanie, czy przyszły lider ma wymagany poziom (ustalamy go samodzielnie w queście, u mnie to defaultowe 40 w lokalnej wymagany)
  • w związku z powyższym dany gracz musi być zalogowany na tym samym game co my (funkcja find_pc_by_name)
  • dodane usuwanie Pierścienia, o którym wcześniej zapomniałem :D

v2.1

  • dodany komunikat do return 4
  • dodany warunek if not pc.has_guild() po którym nie wykonuje się żadna akcja, przez co nie ma potrzeby powtarzania 2x tego samego komunikatu (return 4 zwraca ten komunikat)


Zadanie dla tych bardziej ogarniających. Kod z game, pomóżcie mi ustalić co oznacza zwrócone 0 :

http://wklej.to/aoSdd

 

Rzeczy sprawdzone, które na pewno nie zwracają 0:

  • Znaki specjalne (alt + cyfry) - return 3, czyli brak takiej osoby w gildii
  • Różne królestwa - w ogóle nie wpływa (zmiana możliwa)
  • Zmiana nadana na samego siebie - w ogóle nie wpływa (zmiana możliwa)
  • Poziom przyszłego lidera niższy od tego ustalonego w localach - w ogóle nie wpływa (zmiana możliwa)
  • Zmiana typu inputa z string na number - w ogóle nie wpływa (zmiana możliwa)
  • cdn...


Kilka słów odnośnie questa

Zrobiłem drobne zabezpieczenie co by się nie dało zmieniać lidera na siebie. Twórcy z Korei tego nie uwzględnili i można to wykonać przez co po relogu w gildii nie ma lidera (wszyscy gracze mają range "Członek", nikt nie ma "Lider" ale ciągle my nim jesteśmy). Możecie sobie dodać po inpucie potwierdzenie czy na pewno chcemy zmienić i takie inne gadki co by dać graczowi chwile namysłu. Quest testowany na serwerze, działa. To chyba tyle, peace.

Koniec z MPCForum.pl i ogółem z metinem

:D

 

sunp.png

Sygnatura wykonana przez

Isuribi aka Amelka.

Opublikowano

1 to chyba

Podałeś nieprawidłową Nazwę. <-- sprawdza czy jest taka osoba

4 to

Nie Jesteś w Gildii <-- sprawdza czy jesteś w gildii

 

nie jestem pewien.

Opublikowano

1 to chyba

Podałeś nieprawidłową Nazwę. <-- sprawdza czy jest taka osoba

4 to

Nie Jesteś w Gildii <-- sprawdza czy jesteś w gildii

 

nie jestem pewien.

1 mam ale z 4 trafiłeś, nie pomyślałem o tym xD dzięki

Koniec z MPCForum.pl i ogółem z metinem

:D

 

sunp.png

Sygnatura wykonana przez

Isuribi aka Amelka.

Opublikowano

Chyba wszystkie błędy łapaj.

      	 if change == 0 then
               say("Wprowadzono nieprawidłowa nazwe.")
           elseif change == 1 then
               say("Tylko liderzy gildii moga korzystac z tego przedmiotu.")
           elseif change == 2 then
               say("Nie mozesz znalezc czlonkow gildii.")
           elseif change == 3 then
               say("Pomyslnie zmieniono lidera gildii.")
               result = true
           elseif change == 4 then
               say("Nie jestes w gildii.")
           elseif change == 5 then
               say("Gracz nie jest online.")
           elseif ret == 6 then
               say("Poziom gracza jest zbyt niski.")
           elseif change == 7 then
               say("Gracz jest za krotko, aby byc liderem.")
           end

06335296784396897220.png


Opublikowano

nie ma jak wsiąść z spolszczonego questa =P

 

btw.

quest fajny przydatny, bo ten z yamira źle się wgrywał i miał parę błędów.

Opublikowano

Chyba wszystkie błędy łapaj.

   	 if change == 0 then
			say("Wprowadzono nieprawidłowa nazwe.")
		elseif change == 1 then
			say("Tylko liderzy gildii moga korzystac z tego przedmiotu.")
		elseif change == 2 then
			say("Nie mozesz znalezc czlonkow gildii.")
		elseif change == 3 then
			say("Pomyslnie zmieniono lidera gildii.")
			result = true
		elseif change == 4 then
			say("Nie jestes w gildii.")
		elseif change == 5 then
			say("Gracz nie jest online.")
		elseif ret == 6 then
			say("Poziom gracza jest zbyt niski.")
		elseif change == 7 then
			say("Gracz jest za krotko, aby byc liderem.")
		end

Widzę, że skopiowałeś prosto z epvp. Dzisiaj szukałem w necie czy ktokolwiek napisał tego questa i jest jeden na epvp, tylko że tam jest wykorzystana nieco inna funkcja, mianowicie guild.change_master_with_limit. Prawdopodobnie to limit oznacza faktyczne uznanie kogoś jako zastępce, czyli na jakiś czas. Jednak ta funkcja również przyjmuje 1 argument (nick zastępcy) i nie wiem jak to w sumie działa. Tutaj psource tej funkcji dla osób, którym chce się myśleć:

http://wklej.to/Ri4it

Koniec z MPCForum.pl i ogółem z metinem

:D

 

sunp.png

Sygnatura wykonana przez

Isuribi aka Amelka.

Opublikowano

Nwm skąd to konkretnie było bo miałem to w locale w dodatku spolszczony, więc nie pisz prosto z epvp..

Tu macie pełen quest:

http://wklej.to/ci20f

06335296784396897220.png


  • 3 tygodnie później...
Opublikowano

Super quest, aczkolwiek ja mam takowy z deklaracją funkcji change_master() no ale Twoj jest z uzyciem funkcji z game, propsy :))

Opublikowano

U mnie zaś po kliknięciu na pierścień nic się nie dzieje. Wie ktoś co może być przyczyną? Bo quest się wgrywa poprawnie...

Opublikowano

U mnie zaś po kliknięciu na pierścień nic się nie dzieje. Wie ktoś co może być przyczyną? Bo quest się wgrywa poprawnie...

Ustaw type/subtype 18/10.

Nie czekaj - zagraj już dzisiaj !

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...