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

Loteria czasowa


Cort

Rekomendowane odpowiedzi

Opublikowano

Wpadłem dzisiaj na pomysł na napisanie loterii, na której można wygrać różne przedmioty o różnej ilości. Rzecz jasna punkty itp. Jednak żeby nie było zbyt łatwo, dodałem limit czasowy. Za taki limit dziękuję Sunushiemu, który wykorzystał go w cyklicznych polowaniach. Loteria działa dość prosto, zobaczcie sami:

qqqiuz.jpg1zheax.jpgnw14yb.jpg

Aaa, no i limit punktów jest w zmiennej, więc edycja jest prostsza.

No dobrze, ale skąd zdobyć te punkty?

Wystarczy przeciągnąć dowolny kamień duszy na npc. I dostajemy za niego losową ilość punktów, którą ustalimy wcześniej sami.

hywvs8.jpgesvzws.jpg

I tak to działa. Istnieje również opcja ominięcia limitu czasowego, czyli ten 'biznes'. Ilość punktów za ominięcie blokady ustawiamy w quescie.

79zwg4.jpg

No to by chyba było na tyle. Itemy są zapisane w tablicy, więc można łatwo sobie dopisać jakiś przedmiot. Zapisałem 10 przykładowych itemów, kto chce zrobi jak chce, dałem Wam gotowy pomysł, rozwinąć go można na wiele sposobów. No to teraz kod i funkcja npc.name() do questliba.

Questlib

function npc.name() say_title(mob_name(npc.get_race())) end

Quest_functions

npc.name

http://pastebin.com/nc1W5uMU

 

 

 

quest lotto_dziwko begin
state start begin
when 20095.take with item.get_type() == 10 begin
npc.name()
say("Twoje punkty wymiany: "..pc.getqf("lotto"))
say("Czy chcesz oddać :")
say_item_vnum(item.get_vnum())
if select(locale.yes,locale.no) == 1 then
local limit = 50
local  = math.random(limit)
npc.name()
say("Za "..item_name(item.get_vnum()).." otrzymano "...." punktów.") 
say("Punkty te możesz wymienić za punkty na loterii")
say("Pamiętaj, że im więcej masz")
say("punktów, tym większa ilość losów!")
pc.setqf("lotto", pc.getqf("lotto")+)
item.remove()
end
end
when 20095.chat."Loteria!" begin
npc.name()
say("Witaj!")
say("Zajmuję się małym konkursem.")
say("Obracam wartościowymi przedmiotami w loterii.")
say("Jeśli masz wystarczającą ilość punktów, mogę ")
say("wpuścić Cię do loterii. Ale! Możesz losować ")
say("raz na 12 godzin. Chyba, że zagadasz")
say("do mnie i ubijemy mały biznes... To jak?")
wait()
if pc.getqf("lotto") < 1 then
npc.name()
say("Wybacz, ale nie masz żadnych punktów!")
return
else
local y = {
[1] = {71084},
[2] = {71085},
[3] = {71001},
[4] = {71004},
[5] = {71018},
[6] = {71019},
[7] = {71020},
[8] = {71034},
[9] = {71044},
[10] = {71045},
}
local n = number(1, table.getn(y))
local limit_count = 100
local z = math.random(limit_count)
local acc_time = get_time()
local old_time = pc.getqf("lotto_limit")
if acc_time < old_time and pc.getqf("lotto_troll") == 0 then
local diff = math.ceil((old_time - acc_time)/3600)
local h
if diff == 1 then
h = "godzinę."
elseif (diff >= 2 and diff <= 4) or diff >= 22 then
h = "godziny."
else
h = "godzin."
end
npc.name()
say("Musisz poczekać jeszcze "..diff.." "..h)
else
pc.setqf("lotto", pc.getqf("lotto")-1)
npc.name()
say("Twój wylosowany przedmiot to:")
say_item_vnum(y[n][1])
say("W ilości "..z.." sztuk.")
say("")
say_reward("Pozostałe losy: "..pc.getqf("lotto"))
say_reward("Została nałożona blokada czasowa.")
say_reward("Do zobaczenia za 12 godzin!")
if pc.getqf("lotto_troll") == 1 then
pc.setqf("lotto_troll", 0)
end
pc.give_item2(y[n][1], z)
pc.setqf("lotto_limit", get_time()+12*60*60)
end
end
end
when 20095.chat."Obejście Limitu" begin
local  = 50
npc.name()
say("Mogę zrobić dla Ciebie wyjątek")
say("jeśli posiadasz "...." losów.")
say("Wtedy zdejmę Twoją blokadę.")
say_reward("Kontynuować?")
if select(locale.yes,locale.no) == 1 then
if pc.getqf("lotto_troll") == 1 then
npc.name()
say("Ale Ty nie masz blokady!")
return
else
if pc.getqf("lotto") < x then
npc.name()
say("Nie masz "...." punktów!")
else
npc.name()
say("Dobrze, zdjąłem Twoją blokadę.")
say("Teraz znów możesz brać udział w loterii.")
pc.setqf("lotto_troll", 1)
pc.setqf("lotto", pc.getqf("lotto")-)
end
end
end
end
end
end

 

 

No to wsio, miłego sylwestra życzę :)


  •  

ePc0b.jpg

mcn_cc.pl - banda złodziei

;)

Piszę questy na zamówienie - Zostanę questerem na serwerze dedykowanym - Na zlecenie napiszę questy - Zakoduję stronę HTML5/CSS3

Opublikowano

Quest ciekawy, taka mini-tombola :D Sprawdzałeś czy działa ta Twoja funkcja? Bo widzę że na ss jej nie wykorzystałeś :) Głownie mam wątpliwości co do tej kropki.

Powodzenia w dalszym pisaniu questów :)

Pozdrawiam

zf0m.png


LINK DO PREZENTACJI (KLIK)


Nic dodać, nic ująć.


Opublikowano

Fajne mozliwe ze wykorzystam oby wiecej czegos takiego !!!

Pracuje niestety samodzielnie nad typowym hardem :

Mój Postęp Prac :

Pliki serwerowe : ok 80 %

Client : ok 80 %

Strona www : ok 95 %

Opublikowano

@up

to chyba zle patrzyles, bo ta funkcja kest wykorzystana i dziala

@top

quest ciekawy ;) dzieki

Obama wie, co robisz!!!
131894.jpg                                                                                                                                                    4906167742.png

                                                                                                                                                                                                                                                                                      LTE Play Opole

Opublikowano

Quest ciekawy, taka mini-tombola :D Sprawdzałeś czy działa ta Twoja funkcja? Bo widzę że na ss jej nie wykorzystałeś :) Głownie mam wątpliwości co do tej kropki.

Powodzenia w dalszym pisaniu questów :)

Pozdrawiam

Aa tak. Ja tą funkcję pisałem z pamięci, u mnie ona działa, tylko ja mam dodane te dwie kropki, tak dla wyglądu. U Was to będzie po prostu nazwa npc i tyle. Dzięki :)

ePc0b.jpg

mcn_cc.pl - banda złodziei

;)

Piszę questy na zamówienie - Zostanę questerem na serwerze dedykowanym - Na zlecenie napiszę questy - Zakoduję stronę HTML5/CSS3

Opublikowano

Najbardziej doczepię się do gramatyki. Jak otrzymam 1 punkt, to i tak jest napisane:

Za ITEM otrzymano 1 punktów

nad tym popracuj, tak samo ze sztukami ;)

 

umarł

Opublikowano

Najbardziej doczepię się do gramatyki. Jak otrzymam 1 punkt, to i tak jest napisane:

Za ITEM otrzymano 1 punktów

nad tym popracuj, tak samo ze sztukami ;)

Z4zolku, pisałem

dałem Wam gotowy pomysł, rozwinąć go można na wiele sposobów

To jedynie surowy quest nie kładłem nacisku na poprawność gramatyczną :unsure:

ePc0b.jpg

mcn_cc.pl - banda złodziei

;)

Piszę questy na zamówienie - Zostanę questerem na serwerze dedykowanym - Na zlecenie napiszę questy - Zakoduję stronę HTML5/CSS3

Opublikowano

looz. w razie czego:

local ilosc = pc.count_item(skarpetka)

local gramatyka
if ilosc == 1 then
 gramatyka = " skarpetkę "
elseif ilosc >= 2 and ilosc <= 4 then
 gramatyka = " skarpetki "
else
 gramatyka = " skarpetek "
end

do przerobienia. Wszystko przykładowo, tak jak mówisz ;)

 

umarł

Opublikowano

Dzisiaj jeszcze spróbuję w tablicach usprawnić ten nieszczęsny system achievementów w pythonie. Nie dziwię się, że po tym im DT nie śmigało :)

ePc0b.jpg

mcn_cc.pl - banda złodziei

;)

Piszę questy na zamówienie - Zostanę questerem na serwerze dedykowanym - Na zlecenie napiszę questy - Zakoduję stronę HTML5/CSS3

  • 7 miesięcy temu...
Opublikowano

mozna wersje z tabami bo ja niezajmuje sie questami

Nie rozumiem - skoro nie zajmujesz się questami, to po co Ci wersja z tabami?

 

http://pastebin.com/nc1W5uMU

 

 

@down

i tak nie wiem co to ma ze sobą wspólnego... Endy akurat tutaj się zgadzają

 

umarł

Opublikowano

Chodzilo mi o to ze :

1) Chce to wgrac na serwer a mi wywala ze endy są zle

2)Nie pisze questów.

66603082608911692451.png

Pomogłem daj LIke ;p

Opublikowano

Chodzilo mi o to ze :

1) Chce to wgrac na serwer a mi wywala ze endy są zle

2)Nie pisze questów.

Endy do tabów nic nie mają.

 

Dobrze kopiujesz quest?

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...