Skocz do zawartości

[Quest] Dozorca + Bank


z4z0l

Rekomendowane odpowiedzi

Witam. Napisałem quest na swój serwer, ale, że lubię się dzielić z innymi udostępnię go wam.

Jest to mój własny ale to KURWA własnoręcznie napisany dozorca oraz bankier. Nie ma bugu z wypłacaniem 1kkk yang, dodane zostały małe zabezpieczenia. Jeżeli znajdziecie jakiś błąd czy cokolwiek, piszcie pod tematem. Pozdrawiam.

 

 

quest dozorca begin
state start begin
when 9005.chat."Chcę otworzyć magazyn" begin
say_title("Dozorca : ")
say("Możesz u mine przechowywać swoje")
say("przedmioty. Jeżeli chcesz, musisz")
say("wykupić sobie miejsce.")
say("Będzie Cię to kosztowało 500 yang.")
say("")
say_reward("Czy chcesz otworzyć prywatny magazyn?")
local s=select("Zapłać " , "Nie płać ")
if s==1 and pc.get_money()>=500 then
say_title("Dozorca :")
say("A więc zdecydowałeś się ")
say("skorzystać z moich usług!")
say("Twoje hasło do magazynu to : 000000")
pc.change_gold(-500)
pc.setqf("mamkonto", 0)
set_state(drugi)
elseif pc.get_money()<=500 then
say_title("Dozorca : ")
say("Nie posiadasz wystarczającej")
say("ilości yang !")
end
end
end

state drugi begin
when 9005.click begin
say_title("Dozorca :")
say("Witaj! Jestem dozorcą. ")
say("Możesz u mnie przechowywać przedmioty.")
local f=select("Otwórz magazyn" , "Odbierz przedmioty z ItemShop" , "Kupno Srebrnej lub Złotej Sztabki" , "Bank" , "Anuluj")
if f==1 then
game.open_safebox()
elseif 2==f then
game.open_mall()
elseif 3==f then
npc.open_shop(7)
elseif 4==f then
say_title("Dozorca :")
say("Witaj. Możesz u mnie zostawić swoje całe")
say("oszczędności bądź wziąć kredyt.")
say("")
if pc.getqf("mamkonto") == 0 then
say("Nie masz jeszcze konta. Czy chcesz je")
say("utworzyć ? Kosztuje to 1 000 000 yang")
say("oraz poziom Twojej postaci musi być ")
say("większy niż 75.")
if pc.get_level() >= 75 then
local g=select("Tak" , "Nie")
if g==1 then
if pc.get_money() >= 1000000 then
say_title("Dozorca :")
say("Twoje konto bankowe zostało utworzone.")
pc.change_money(-1000000)
pc.setqf("mamkonto", 1)
else
say_title("Dozorca :")
say("Nie masz wystarczającej ilości yang aby")
say("utworzyć konto.")
end
end
else
say_title("Dozorca :")
say("Nie masz 75 poziomu!")
end
else
local stankkonta = pc.getqf("stankonta")
local h=select("Sprawdź stan konta" , "Wpłać pieniądze" , "Wypłać pieniądze" , "Anuluj")
if h==1 then
say_title("Dozorca :")
say("Stan Twojego konta to:")
say_reward("" ..pc.getqf("stankonta").. " yang.")
elseif 2==h then
say_title("Dozorca :")
say("Wpisz ilość yang którą chcesz wpłacić.")
local wplac = tonumber(input(""))
if wplac > 0 and wplac < 2000000000 then
if wplac == "" then
say_title("Dozorca :")
say("Musisz wpisać ilość yang !")
end
end
if wplac > pc.get_money() then
say_title("Dozorca :")
say("Nie masz " ..wplac.. " yang.")
end
if wplac <= pc.get_money() and wplac > 0 then
local stannowy = tonumber(wplac) + pc.getqf("stankonta")
pc.change_money(-wplac)
pc.setqf("stankonta", stannowy)
say_title("Dozorca :")
say("Wpłaciłeś yangi na swoje konto.")
say("Aktualny stan Twojego konta to :")
say_reward("" ..pc.getqf("stankonta").. " yang.")
else
say_title("Dozorca :")
say("Nie możesz wpłacić tej kwoty!")
end
elseif 3==h then
say_title("Dozorca :")
say("Aktualny stan Twojego konta to :")
say_reward("" ..pc.getqf("stankonta").. " yang.")
say("")
say("Jednorazowo możesz wypłacić nie więcej")
say("niż 500 000 000 yang.")
local wyplac = tonumber(input(""))
if wyplac > 0 and wyplac < 500000000 then
if wyplac > pc.getqf("stankonta") then
say_title("Dozorca :")
say("Nie masz tyle yang na koncie.")
else
local yang_bug = pc.get_money() + wyplac
if yang_bug <= 1999999999 then
local stannowy = pc.getqf("stankonta") - tonumber(wyplac)
pc.change_money(wyplac)
pc.setqf("stankonta", stannowy)
say_title("Dozorca :")
say("Twoje yangi zostały wypłacone z konta.")
say("Aktualny stan Twojego konta to :")
say_reward("" ..pc.getqf("stankonta").. " yang.")
else
say_title("Dozorca :")
say("Nie możesz wypłacić yang. Stan Twoich")
say("yang w ekwpiunku wynosiłby więcej niż ")
say("dopuszczalna norma.")
end
end
else
say_title("Dozorca :")
say("Nie możesz wypłacić tej kwoty!")
end
end
end
end
end

end
end

 

 

Linki abyście widzieli TABki.

http://wklej.to/AA1tD

http://speedy.sh/7pZv6/dozorca.quest

http://www.virustotal.com/file-scan/report.html?id=db14cbaeaa0348ebafb3be0a267172714aa9a1da3e2a9c9a0db9bd2370f6b1b5-1322076981

 

umarł

Odnośnik do komentarza

No jedyne czego można się tu doczepić to brak tabów przez co mało czytelne. Niepotrzebnie też dzielisz na 2 lub więcej state. Zrób tak:

quest asd begin
state start begin
when xxx.chat begin
...
end
when xxx.chat begin
...
end
end
end

Każda rozmowa może być w jednym state, stosuje się go zazwyczaj po to by oddzielić jakąś część misji, kolejny krok tak jakby (często gęsto stosuje się też wtedy zmianę letter i buttona)

 

edit. aha, forum nie uwzględnia tabów. Gratulacje dla teamu! :D

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

:D

 

sunp.png

Sygnatura wykonana przez

Isuribi aka Amelka.

Odnośnik do komentarza

komornika nie naślesz, ale możesz zrobić automatyczne spłacanie kredytu. Czyli jeśli nie spłacisz kredytu w wyznaczonym terminie, po 2 dniu będą pobierane yangi, jeśli będziesz je mieć. Czyli na postaci pojawi się 100kk yang, odbierze Ci momentalnie 100kk yang. Drastyczniej może być np blokada konta na pewien czas, jako wysłanie do więzienia za niespłacanie należności. Dodatkową opcją może być wpłacanie kaucji, a zarazem przez to odbanowanie postaci :). Kombinujcie a pomysłów jest dużo. Możecie wprowadzić też nową mapę która posłuży jako więzienie, oczywiście mapa bez teleporterów z zablokowaną możliwością teleportu do małżonka. Czas gry będzie liczony jeśli bedzie się zalogowanym. np 2kkk yang trzeba będzie wysiedzieć z tydzień :) W zależności od inflacji serwera.

Boo: czyli prawie jak narodziny Frankenstein'a.

http://www.youtube.com/watch?v=UXBdZu82-9A

Odnośnik do komentarza

when 9005.chat "Dawaj kredyt!" begin
say_title(mob_name(9005)..":")
say("Chcesz kredytu? Nie ma sprawy tylko pamiętaj,")
say("że oprocentowanie wynosi 10% na dzień!")
say("Wypłacona kwota również nie może przekraczać ")
say("10kk. Wpisz jaką kwotę chcesz pobrać:")
local kredyt = tonumber(input())
if kredyt > 10000000 then	-- tutaj można zmienić max wartość kredytu
	say_title(mob_name(9005)..":")
	say("Nie możesz tyle wypłacić.")
	say("")
elseif kredyt + pc.get_gold() >= 2000000000 then
	say_title(mob_name(9005)..":")
	say("Nie możesz tyle wypłacić, gdyż zbugują ")
	say("Ci się yangi.")
	say("")
else
	pc.changegold(kredyt)
	pc.setqf("kredyt", kredyt+kredyt*0.1) -- 0.1 = 10%, można zmienić wg. uznania
	pc.setqf("czas", get_time()+24*60*60)
	say_title(mob_name(9005)..":")
	say("Otrzymałeś kredyt. Musisz spłacić go do jutra")
	say("albo komornik zrobi Ci wjazd na chatę.")
	say("Miłego spłacania.")
end
end

when 9005.chat "Spłać kredyt" with pc.getqf("czas") > get_time() begin
say_title(mob_name(9005)..":")
say("Nono, zmieściłeś się w czasie.")
say("Na pewno chcesz spłacić?")
say_notice("Posiadasz "..pc.get_gold().." a musisz spłacić "..pc.getqf("kredyt").." Yang.")
local a = select("Tak","Nie")
if a == 2 then
	return
end
if pc.get_gold() < pc.getqf("kredyt") then
	say_title(mob_name(9005)..":")
	say("Nie masz tyle Yang!")
	say("")
	return
end
pc.changegold(-pc.getqf("kredyt"))
say_title(mob_name(9005)..":")
say("Mamona, ah mamona!")
say("")
end

 

http://pastebin.pl/50959

 

Macie system kredytu + spłacanie. Nie testowane, nie wiem czy działa, nie ponoszę odpowiedzialności za błędne działanie. Karę opracujcie sobie sami.

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

:D

 

sunp.png

Sygnatura wykonana przez

Isuribi aka Amelka.

Odnośnik do komentarza

Zmieńcie

when 9005.chat "Dawaj kredyt!" begin

na

when 9005.chat."Dawaj kredyt!" with pc.get_level() >= 75 and pc.getqf("kredyt") == 0 begin

i macie całe zabezpieczenie..

 

Przy spłacaniu kredytu należy też dodać zerowanie qf("kredyt") bo zapomniałem o tym ;)

 

edit. ™Rampager, niekoniecznie. Wystarczy zapisać id konta gracza (najlepiej w tym wypadku użyć game.set_event_flag() co by było globalne lecz jest to troszku bez sensu. Są inne sposoby na to ;)) i when login with pc.getqf("kredyt") != 0 and pc.getqf("czas") < get_time() and (jeśli użyjemy event flaga no to game.get_event_flag("id") == pc.get_account_id()) begin po czym dodać repeata aż do uzyskania z yangów kwoty z getqf("kredyt"). Proste ;)

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

:D

 

sunp.png

Sygnatura wykonana przez

Isuribi aka Amelka.

Odnośnik do komentarza

@Piciasek Zobacz, że możesz sobie wartości zmieniać. Powiedzmy, że posiadamy serwer z maksymalnym lvl 250, aby wziąć kredyt trzeba mieć hm.. 130lvl.

Zmieniamy i git, kto na serwerze wbije tak szybko 130? No, z tym będzie już problem. Więc graczom będzie szkoda 130 lvl zesłać na zbanowanie czy też kare w jakiś inny sposób.

 

Co do tematu, spoko Quest.

Prosił bym o pozwolenie edytowania Questu, oczywiście bez możliwości udostępienia na inne fora :)

Bądź z dopiskiem waszych nicków ;p

Odnośnik do komentarza

Zarchiwizowany

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

  • Ostatnio przeglądający forum [Quest] Dozorca + Bank   0 użytkowników
    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...