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

[Kurs] Kurs Pisania Questów


Rekomendowane odpowiedzi

Opublikowano

Witam

 

Napisałem kurs, specjalnie dla MPC <3 <3

Mam nadzieję że się przyda.

Ok, let's go!

 

Narzędzia:

Musimy mieć oczywiście jakiś program do pisania questów, bo w notatniku to nie za bardzo :D

Więc polecam program NotePad++

Można pobrać go bez problemu na googlach :)

 

Więc to jest lista potrzebnych narzędzi:

-Notepad++

-Cierpliwość

-Chęci

-i mózg :lol:

 

 

 

Część I

Część I będzie o porównaniach i o komentarzach. Więc to jest tak:

Znak: Opis:

<                    Sprawdza czy liczba X jest mniejsza od liczby Y
>                    Sprawdza, czy liczba X jest większa niż Y.
<=                  Sprawdza, czy liczba X jest mniejsza lub równa liczbie Y.
>=                  Sprawdza, czy liczba X jest większa lub równa liczbie Y.
==                  Sprawdza czy liczba X i liczba Y są sobie równe.
!=                    Sprawdza, czy liczba X i liczba Y nie jest sobie równa. (chyba źle napisałem ;P)

 

 

To są wszystkie znaki porównujące.

 

Komentarze zapisujemy pod taką postacią:

tutaj_twój_kod -- A tutaj piszemy swój komentarz.

 

 

 

Część II

 

 

Kolejną rzeczą bez której się nie obędziecie to funkcje. Poniżej masz listę wszystkich funkcji (większość wyjaśniona)

__give_char_priv()
addimage()
addmapsignal()
affect.add() - Dodaj się jakiś wpływ (nie wiem za bardzo)
affect.remove() - Wiadomo, usuwa UP
affect.remove_bad() - Usuwa się negatywny wpływ np. spowolnienie chyba
affect.remove_good() - Usuwa pozytywny wpływ np. aure
bool_to_str() - Nie wiem ale to jest jakiś algorytm który coś oblicza
building.get_land_id() - Nie wiem
building.get_land_info() - Nie wiem
building.has_land() - Nie wiem
building.set_land_owner() -- Nie wiem
char_log() -Wpisuje coś w MySQL do jakiegoś loga itp. (?)
chat() - Pisze na czacie wiadomość tekstową
clear_server_timer() - Resetuje zegar serwa (z tym zegarem to lepiej sie nie bawic)
clearmapsignal() - Nie wiem
cleartimer() - Resetuje jakiś stoper (np. w misjach na czas)
cmdchat() - pisze coś na czacie (?)
color(r,g, - to służy do wpisywania kolorów w postaci R,B,G
complete_quest() - Kończy questa (?)
complete_quest_state() - Nie wiem
confirm() - potwierdzenie
sys_log() - Pisze coś w systemowym logu (?)
d.check_eliminated() - Sptawdza ile mobów zostało zabitych chyba
d.clear_regen() - Nie wiem
d.count_monster() - ilość jakiś potworów
d.exit() - wiadomo
d.exit_all() - wiadomo
d.exit_all_to_start_position() - koniec czegoś tam i powraca do pierwszej pozycji ( czyli do pierwszego state)
d.get_kill_mob_count() - Ile jeszcze mobów trzeba zabić (taki licznik jakby)
d.get_kill_stone_count() - UP tylko że metinów (kamieni)
d.get_map_index() - Nie wiem
d.getf() - Nie wiem
d.is_unique_dead() - Sprawdza czy jest na dedzie ( :lol: )
d.is_use_potion() - Nie wiem ale coś związane z potami
d.join() - Nie wiem
d.jump_all() - Nie wiem
d.jump_all_local() - Nie wiem
d.kill_unique() - Nie wiem
d.new_jump()
d.new_jump_all()
d.purge() - To samo co komenda /purge
d.purge_unique() - UP tylko że coś inaczej
d.regen_file()
d.revived()
d.select() - Coś takiego jak funkcja Select()
d.set_dest()
d.set_exit_all_at_eliminate()
d.set_regen_file()
d.set_unique()
d.set_warp_at_eliminate()
d.setf()
d.spawn() - Chyba przywołuje jakiegoś moba (tak po nazwie zobaczyłem)
d.spawn_goto_mob() - Teleportuje gracza do moba chyba
d.spawn_group() - Przywołuje grupke mobów
d.spawn_mob() - Przywołuje moba
d.spawn_move_group() - Nie wiem
d.spawn_move_unique() - Nie wiem
d.spawn_name_mob() - Nie wiem
d.spawn_stone_door()
d.spawn_unique()
d.spawn_wooden_door()
d.unique_get_hp_perc()
d.unique_set_def_grade()
d.unique_set_hp()
d.unique_set_maxhp()
delay()
find_npc_by_vnum()
find_pc_by_name()
find_pc_cond()
game.drop_item()
game.get_event_flag()
game.get_guild_name()
game.get_safebox_level()
game.get_warp_guild_war_list()
game.open_mall() - Otwiera item shopk'a
game.open_safebox() - Otwiera magazyn 
game.request_make_guild()
game.set_event_flag()
game.set_safebox_level()
get_global_time() - Sprawdza która jest godzina :lol:
get_locale() - Sprawdza z jakiego jest państwa O_o
get_server_timer_arg()
get_time() - Sprawdza czas...
guild.around_ranking_string()
guild.get_any_war()
guild.get_ladder_point()
guild.get_name()
guild.get_rank()
guild.get_reserve_war_table()
guild.get_warp_war_list()
guild.high_ranking_string()
guild.is_bet()
guild.is_war()
guild.level()
guild.name()
guild.war_bet()
guild.war_enter()
highscore.register()
highscore.show()
horse.advance()
horse.feed()
horse.get_grade()
horse.get_health()
horse.get_health_pct()
horse.get_hp()
horse.get_level()
horse.get_stamina()
horse.get_stamina_pct()
horse.is_dead()
horse.is_mine
horse.is_riding()
horse.revive()
horse.ride()
horse.set_level()
horse.summon()
horse.unride()
horse.unsummon()
input() - Robi takiego textbox gdzie się wpisuje text, no wiesz co 
is_test_server() - Chyuba sprawdza czy serw jest GM MODE
item.get_count()
item.get_level()
item.get_name()
item.get_refine_vnum()
item.get_size()
item.get_socket()
item.get_sub_type()
item.get_type()
item.get_value()
item.get_vnum()
item.has_flag()
item.next_refine_vnum()
item.remove()
item.set_socket()
item_name()
loop_timer()
makequestbutton()
marriage.divorce_time_check()
marriage.end_wedding()
marriage.engage_to()
marriage.find_married_vid()
marriage.get_married_time()
marriage.get_wedding_list()
marriage.join_wedding()
marriage.marry_to()
marriage.remove()
marriage.set_to_marriage()
marriage.warp_to_my_marriage_map()
marriage.wedding_dark()
marriage.wedding_snow()
marriage.wedding_music()
marriage.wedding_is_playing_music()
math.floor()
math.max()
math.mod()
math.random()
member.chat()
member.clear_ready()
member.set_ready()
mob.spawn()
mob.spawn_group()
mob_name()
mob_vnum()
next_time_is_now()
next_time_set()
notice()
npc.dec_remain_hairdye_count()
npc.dec_remain_skill_book_count()
npc.get_empire()
npc.get_race()
npc.get_remain_hairdye_count()
npc.get_remain_skill_book_count()
npc.getrace()
npc.is_near()
npc.is_near_vid()
npc.is_pc()
npc.is_quest()
npc.kill() - Zabija npc  npc.kill(20016)   20016 to id kowala :lol:
npc.lock()
npc.open_shop() - Otwiera sklepik NPC'ta
npc.purge() - wiadomo (nie które funkcjepomijam bo są bardzo proste  )
npc.unlock()
npc_get_job()
npc_is_same_empire()
npc_is_same_job()
number()
party.chat()
party.clear_ready()
party.get_max_level()
party.get_near_count()
party.getf()
party.is_leader()
party.is_party()
party.run_cinematic()
party.setf()
party.setqf()
party.show_cinematic()
party.syschat()
pc.aggregate_monster()
pc.change_alignment()
pc.change_gold() 
pc.change_money()
pc.change_sp()
pc.changealignment()
pc.changegold()
pc.changemoney()
pc.clear_skill()
pc.clear_sub_skill()
pc.clear_one_skill()
pc.count_item()
pc.countitem()
pc.delqf() - Usuwa coś w MySQL w tabeli quest
pc.destroy_guild() - wiadomo (nie będe już pisał "wiadomo")
pc.enough_inventory()
pc.forget_my_attacker()
pc.get_armor()
pc.get_empire()
pc.get_equip_refine_level()
pc.get_exp()
pc.get_gold()
pc.get_guild()
pc.get_horse_level()
pc.get_hp()
pc.get_job()
pc.get_leadership()
pc.get_level()
pc.get_local_x()
pc.get_local_y()
pc.get_map_index()
pc.get_max_hp()
pc.get_max_sp()
pc.get_money()
pc.get_name()
pc.get_next_exp()
pc.get_part()
pc.get_playtime()
pc.get_sex()
pc.get_skill_level()
pc.get_sp()
pc.get_start_location()
pc.get_vid()
pc.get_war_map()
pc.get_weapon()
pc.get_x()
pc.get_y()
pc.getarmor()
pc.getcurrentmapindex()
pc.getempire()
pc.getf()
pc.getgold()
pc.getguild()
pc.gethp()
pc.getleadership()
pc.getmaxhp()
pc.getmaxsp()
pc.getmoney()
pc.getname()
pc.getplaytime()
pc.getqf(name)
pc.get_skill_group()
pc.getsp()
pc.getweapon()
pc.getx()
pc.gety()
pc.give_exp(ilość expa)
pc.give_exp2(jak up)
pc.give_exp_perc(exp w procentach)
pc.give_gold(funkcja na kase)
pc.give_item() - To nie daje itema tylko range chyba
pc.give_item2(ID ITEMA)
pc.give_item_from_special_item_group(ID ITEMA Z ITEMSHOPA)
pc.give_lotto()
pc.has_guild() - Zwraca, czy jesteśmy w gildii (1), czy nie (0)
pc.has_master_skill() -Zwraca, czy mamy skille na G (1), czy nie (0)
pc.hasguild() - To samo co pc.has_guild()
pc.have_map_scroll()
pc.have_pos_scroll()
pc.in_dungeon() - Sprawdza czy jesteśmy w v1 (1), lub nie ma nas tam czyli zwraca (0)
pc.is_guild_master() - wiadomo
pc.is_horse_alive() - wiadomo
pc.is_married() - wiadomo
pc.is_mount() - wiadomo
pc.is_polymorphed() - Sprawdza czy jesteśmy zamienieni za pomocą poli (1) a jak nie to zwraca (0)
pc.isguildmaster() - wiadomo
pc.mount() - wiadomo
pc.pc_attract_ranger()
pc.polymorph(id_moba) - Zamienia nas w moba
pc.refine_equip() - wiadomo
pc.remove_from_guild() - Wywala z gilldi
pc.remove_item(id_tema) - Kasuje nam jakiś item z eq
pc.remove_polymorph() - wiadomo
pc.removeitem() - wiadomo
pc.reset_point() - Resetuje punkty ale niewiem czy skilli czy statusu
pc.revive_horse()
pc.select() - To samo co funkcja Select() tylko czymś się tóżni (nie wiem czym :P )
pc.set_part()
pc.set_warp_location()
pc.set_warp_location_local()
pc.setf()
pc.setqf(nazwa,wartość)
pc.set_skill_group() - Zmienia nas np. z mentala na bodego
pc.set_skill_level() - Zmienia nam np. Aure z 1 na P
pc.unmount()
pc.warp() - Teleportuje nas
pc.warp_exit()
pc.warp_local()
pc.warp_to_guild_war_observer_position() - Teleportuje nas na wojne gildi jak obserwator
pc.is_clear_skill_group()
pc_find_skill_teacher_vid()
pc_find_square_guard_vid()
pc_get_exp_bonus() - Daje nam bonusa na exp np. 50% (tylko dla nas!)
pc_get_village_map_index() - nie wiem
pc_is_novice() - Sprawdza czy mamy lvl niższy od 15
q.done() - wiadomo
q.getcurrentquestindex()
q.no_send()
q.set_clock()
q.set_clock_name()
q.set_clock_value()
q.set_counter()
q.set_counter_name()
q.set_counter_value()
q.set_icon()
q.set_quest_state()
q.set_state()
q.set_title()
q.set_title2()
q.setstate()
q.start()
q.yield()
raw_script()
restart_quest() - Restartuje qesta
say() - Pisze na ekranie jakiś tekst (wiadomo..)
say_npc_name() - nie wiem za bardzo
say_pc_name() - pisze cos tam na nick gracza???
say_reward() - Tym piszemy np.  say_reward("Otrzymałeś Miecz +9")
say_title() - Tytuł ten taki na żółto
say_item() - Wyskakuje obrazek itema chyba?
say_item_vnum() - jak up
select() - Tym robimy np. wybór  TAK lub NIE    przykład: select ( "Tak","Nie" ) zwraca 1 gdy nacisnie sie na tak a zwraca 2 gdy naciśnie się na Nie
select_table()
clear_letter() - Usuwa litery z ekranu
send_letter() - Pisze, coś jak say()
send_letter_ex()
server_loop_timer()
server_timer()
set_quest_state() - Zmienia state quest'a
set_state() - Zmieina state
setbgimage()
setcolor()
setleftimage()
setmapcenterposition()
setskin()
setstate()
show_horse_menu() - Pokazuje menu konia
skill_group_dialog()
syschat() - Coś debuguje (?)
table.insert()
table.foreach()
table.foreachi()
table.getn()
table_get_random_item()
target.clear()
target.delete()
target.id()
target.npc()
target.pc()
target.pos()
target.vid()
test_chat()
time_hour_to_sec()
time_min_to_sec()
timer() - licznik , stoper
tonumber()
tostring()
type()
wait() - Tworzy przycisk "Dalej"
pc.is_engaged()
time_to_str() - Zmeina czas (liczby) na słowo chyba
string.format()
math.ceil() -- aufrunden mathematisch
pc.is_gm() - sprawdza czy dana osoba to gm jak true to zwraca 1 jak false 0...
pc.get_gm_level()
pc.get_alignment() - Zwraca range gracza...
pc.get_real_alignment() - nie wiem
pc.learn_grand_master_skill() - Wbija skill np. Z G1 na G2 (musi być na G!!!) i wbija tylko o1
pc.is_skill_book_no_delay() - Sprawdza czy ktoś ma użyty zwój egzo czy nie. Wiadomo 1 lub 0
pc.remove_skill_book_no_delay() - Usuwa działanie zwoja egzo
__get_empire_priv_string() - Priv Zuo na jedno królestwo
__give_empire_priv()
npc.get_guild()
pc.mining() - sprawdza czy aktualnie korzystasz z kilofa (?)
d.notice() - coś związane z notatkami ale nie mam pojęcia co to jest "d"
pc.ore_refine()
under_han()
d.kill_all() - Zabija all potwory z całej mapki (?)
d.setqf()
__get_guild_priv_string()
__give_guild_priv()
__get_guildid_byname()
item.get_id()
item.select() - wybierasz item z eq
select_item() - co up
item.select_cell()
pc.diamond_refine()
__fish_real_refine_rod()
__refine_pick()
item.get_cell()
building.reconstruct()
arena.start_duel() - rozpoczyna pvp na arenie
arena.get_duel_list() - wiadomo
arena.add_observer() - Dodaje obserwatora do pvp na arenie
arena.is_in_arena()
BuildSkillList()
notice_all()
warp_all_to_village() - Wszystkich teleportuje do M1 (swojego królestwa)
say_in_map() - Domyślcie się bo ja nie wiem
goldbar.quest()
warp_all_in_map() - Wszystkich teleportuje na jakąś mapke (cool)
regen_in_map() - all potworom z mapki regenuje się full hp
kill_all_in_map() - zabija all na mapie O_o
notice_in_map()
forked.decdeadcount()
forked.cleardeadcount()
forked.setdeadcount()
forked.initkillcount()
forked.inckillcount()
forked.initmobkillcount()
forked.incmobkillcount()
forked.getmobkillcount()
warp_all_except_my_empire_in_map()
warp_all_my_empire_in_map()
forked.initforked()
warp_to_village() - psiałem juz wczesinej
forked.getdeadcount()
forked.incbosskillcount()
forked.getbosskillcount()
forked.getsungziposx()
forked.getsungziposy()
forked.getpassstartposx()
forked.getpassstartposy()
forked.getsungzimapindex()
forked.getpassmapindex()
forked.getpassmapindexbyempire()
get_start_mapindex()
get_start_pos_X()
get_start_pos_Y()
forked.getsungzipath()
forked.getpasspath()
forked.getpasspathbyempire()
forked.isforkedmapindex()
forked.issungzimapindex()
warp_all_to_village_except_my_empire()
is_allow_map()
oh.candidacy_list()
oh.election()
oh.candidacy_name()
oh.candidacy()
oh.takemonarchmoney()
pc.teleport() - Teleportuje gracza
oh.isguildmaster()
oh.candidacycount()
affect.remove_hair() - Usuwa fryz 
affect.add_hair() - Dodaje fryz 
affect.add_collect()
affect.add_collect_point()
pc.get_premium_remain_sec() - Daje komus konto premium
oh.ismonarch() - hmmm
oh.spawnmob() - Jak jest gm do mobyu się odradzają (?)
oh.monarchbless()
oh.monarchpowerup()
oh.monarchdefenseup()
pc.send_block_mode()
command("tutaj komenda gma któta ma być wpisana na chacie np . /mob 1903") 
oxevent.get_status()
oxevent.open() - Otwiera OX
oxevent.close()
oxevent.quiz()
oxevent.end_event()
oxevent.get_attender()
oxevent.give_item() - Daje itemy za wygraną w OX
oxevent.end_event_force()
forked.getlevellimit()
mgmt.monarch_state() - sPRAWDZA CZY JEST GM
mgmt.monarch_change_lord() - Zmienia króla (chyba w wojnie królestw)
oh.frog_to_empire_money()
oh.spawnguard()
oh.info()
oh.transfer()
oh.warp()
pc.change_sex() - zmienia plec
pc.change_empire() - Zmeina królestwo
pc.get_change_empire_count() - Ile razy zmienił królestwo
get_quest_state() - Wiadomo (State questa sprawdza)
affect.remove_collect()

 

Ale mnie łapy bolą od pisania O_o

 

 

 

Część III

 

 

Już możecie pisać questy! Tylko nie znacie jeszcze kilku informacji:

 

3.1

Każdy quest rozpoczyna się czyms takim:

quest nazwa_questa begin

 

3.2

Już po nazwie questa trzeba dodać state! Nie będe się rozpisywał tylko podam kod :P

 

state NAZWA_STATE'A begin
when letter begin
// tutaj twój kod
end
end 

 

Jak widać po "state" daliśmy "begin". To oznacza początek. A początek musi mieć swój koniec więc musimy na końcu napisać "end" xD

 

3.3

 

W quescie może być wiele state'ów. Zeby miedzy nimi się przemieszczać piszemy coś takiego:

 

set_state ( "nazwa_state'a" ) 

 

3.4

 

W dziale 3.2 zauważyliście "when"

Te "when", to jest jakby warunek, ale nie do końca.

Tu macie przykład i liste poniżej

 

when letter begin // tutaj użyłem "letter"
local v = find_npc_by_vnum ( 20354 ) // 20354 to vnum NPC do jakiego ma się udać gracz
if 0 == v then // to właśnie jest warunek. Sptawdza czy v jest równe 0
else // tak jakby "inaczej"
target . vid ( "__TARGET__" , v , "NPC bla bla" ) // Zaznacza NPC strzałką. między "" można dać nazwę dowolną.
end
end  -- Edit by kodexior 

 

No i ta obiecana lista :D :

 

letter = jak wpisują się litery
info = Po naciśnięciu na przycisk poszukiwanie (czy jakoś tak)
button = prawie jak info
login = jak się zaloguje (wiadomo)
levelup = kiedy nowy poziom zostanie osiągnięty 

logout = jak ktoś się zaloguje ~T-00

 

3.5

 

Warunki

 

Warunki wyglądają tak:

 

if .... then

....

elseif ... then

...

else

...

end

 

oczywiście mogą wyglądać np. tak:

 

if ... then

..

end

 

Tu macie przykład z wyjaśnieniem:

if pc . get_level () == 15 then
-- Jeżeli postać ma 15 lvl to:
-- Tutaj kod
end
if pc . get_level () >= 15 then
-- Uczyłem cię znaków porównania. Spróbuj sam sobie poradzić 
end
if pc . get_level () <= 15 then

end
if pc . get_level () < 15 then

end
if pc . get_level () > 15 then

end 

 

A gdy warunek nie będzie się spełniał a napiszemy "else" to będzie tak:

 

if zmienna == 2 then -- Warunek się nie spełnia więc komp przechodzi do elseif
a = c + d                      
elseif zmienna2 == 4 then  -- Kolejny warunek się nie spełnia więc komp przechodzi do else
n = h + j
else      -- A "else" wykonuje się w osatnim wypadku"
a = b + t
end 

 

 

 

To już koniec mojego kursu, postarałem się opisać ten wspaniały język jak najlepiej, życzę bardzo dobrych questów

:) i pozdrawiam - MrOMGWTF

Mam nadzieje że się spodobało, jak tak, to daj +, jak nie, to też daj

^^

Do modków:

Jak się da prosił bym o podklejenie :D

Pamiętaj, all by MrOMGWTF, zakazuje kopiowania!

 

 

 

OMG

Zapomniałem napisać o zmiennych! o.O

 

No to jazda...

 

zmienne mogą być lokalne albo globalne

zmienne robimy tak:

 

local zmienna1 = 5

I w ten sposób mamy zmienną zmienna1 o wartości 5.

 

 

 

Aktualizacje userów:

 

 

 

Nie ma ;p

 

 

Opublikowano

Niby gdzie?

Gdy by było to bym nie siedział 1,5h przed kompem na dzielenie się z wami informacjami :O

Podaj linka do topica

 

@DOWN:

Żebyś wiedział ile ja literówek zrobiłem :O

Bo pisałem na szybko jakieś 1.5 - 2 h :D

Opublikowano

Odnośnie d.notice() - podejrzewam, że to wiadomość dla konkretnej mapy, na której quest (lub jego część, w zależności od konstrukcji questa) jest wykonywany. Dla przykładu, wiadomość "na GMowym", gdy przechodzi się DT, jest właśnie dzięki d.notice("Dotarles na 6 pietro.") (na przykład taki komunikat). To z tego, co pamiętam.

Kolejny przykład: na sohan jest ubijane 9 ogonów - komunikat jest tylko na sohan (nie sprawdzałem, ale myślę, że to tak).

Btw. do listy w części III, w 3.4, dodaj, że jeszcze jest warunek when logout.

d.regen_file("resp.txt") (na przykład resp.txt) - plik, w którym jest opisany resp danych mobów (podczas wykonywania danego questa).

 

A, no i:

local zmienna1 == 5

Jest błędne. Poprawnie jest:

local zmienna1 = 5

(jeden =, == jest TYLKO dla warunków)

Opublikowano

chat() - Pisze na czacie tak na żółto jak są wojny gildi

 

chat("Sui: bleh")

 

I wygladaloby jakby gracz o nicku Sui napisal na norm. chacie (na bialo) text bleh

 

Co do pc.polymorph(id) to syntax wyglada tak:

pc.polymorph(id_moba, czas_w_sek)

 

Widac jeszcze duzo, duzo bledow, np. d.notice() to dungeon.notice() a dungeon to DT poziom 2-9 lub kazde '/private' mapy (np. jestesmy w shinsoo, wpisujemy /private 1 i jestesmy na shinsoo #2)

 

Ale tak czy siak, + za checi pomocy i 5* za to, ze chcialo Ci sie to pisac.

9.png

userbarwb.png
Zawsze promocje na sygnatury ^^

Opublikowano

Ehh, mi to pisanie questów nie idzie. Żaden kurs mi nie pomoże. Ale + leci za poświęcony czas oraz chęci.

Opublikowano

+ Zostawiam

Oraz podklejam

Jeżeli się da to aktualizuj co jakiś czas.

Nowe objaśnienia itp..

Były Moderator Metin2, kiedyś z obowiązku, dziś dla rozrywki.


icon-social-apple-outline-64.png

Opublikowano

@Siera

OK, ludzie niech tutaj piszą poprawki do kursu i nowe rzeczy itp.

Ja też będę to aktualizował ;)

Thx za podklejenie

Opublikowano

pc.get_exp() - daje okreslona ilosc expa

pc.get_horse_level() - daje okreslony lvl konia

pc.get_hp() - daje okreslona ilosc hp

pc.get_level() - daje okreslony lvl

pc.get_money() - daje okreslono ilosc yang

pc.get_sex() - zmienia plec

pc.get_skill_level() - daje skil np . na P  1 59

pc.getmaxhp() - daje maxymalna ilosc hp (bug visualny)

c.getmaxsp() - daje maxymalna ilosc pe (bug visualny)

 

Dodaj proszę :)

Opublikowano

OK już dodaję,

Ale gdzie?

Po prostu dodać opisy to tych funkcji i dopisać by Dawmar37?

#EDIT_by_user_MrOMGWTF:

OK dodałem ;)

#DOWN:

Ale przecież to jest źle, bo ta funkcja, np. pc.get_exp()

Zwraca ilość expa jaką ma player!

#edit2:

przykład:

local exp_gracza = pc.get_exp ( )
chat ( exp_gracza )

To będzie pisało na czacie ilość twojego expa

Opublikowano

mozesz tak jak napisales lub odszukac ^^

ale latwiej by bylo dodac nowy spolier...;) i podpisac aktualizacje userow ^^ i na koncu podpisac kto co dodal

 

@up racja no niezauwazylem :P to tego 1 niedodawaj :D

Opublikowano

when letter begin // tutaj użyłem "letter"
local v = find_npc_by_vnum ( 20354 ) // szuka npc
if 0 == v then // to właśnie jest warunek. Sptawdza czy v jest równe 0
else // tak jakby "inaczej"
target . vid ( "__TARGET__" , v , "NPC bla bla" ) // NPC z nr 20354 jest jako cel (chyba wiecie o co chodzi ta strzałka)
end
end 

 

Zmień na:

 

when letter begin // tutaj użyłem "letter"
local v = find_npc_by_vnum ( 20354 ) // 20354 to vnum NPC do jakiego ma się udać gracz
if 0 == v then // to właśnie jest warunek. Sptawdza czy v jest równe 0
else // tak jakby "inaczej"
target . vid ( "__TARGET__" , v , "NPC bla bla" ) // Zaznacza NPC strzałką. między "" można dać nazwę dowolną.
end
end 

Pozdrawiam :)

Opublikowano

pc.get_exp() - daje okreslona ilosc expa

pc.get_horse_level() - daje okreslony lvl konia
pc.get_hp() - daje okreslona ilosc hp
pc.get_level() - daje okreslony lvl
pc.get_money() - daje okreslono ilosc yang
pc.get_sex() - zmienia plec
pc.get_skill_level() - daje skil np . na P  1 59
pc.getmaxhp() - daje maxymalna ilosc hp (bug visualny)
c.getmaxsp() - daje maxymalna ilosc pe (bug visualny)

Dodaj proszę :)

 

 

jestes w błędzie to tylko wyswietla informacje np na czacie albo w jakims tekscie jaki mamy level ile mamy hp itp., level itp sie dodaje "set" a nie "get"

Opublikowano

Witam

 

Dzisiaj zaczalem troche majstrowac przy questach. Chcialem napisac prosta misje, w ktorej po przekroczeniu 50 lvlu jesli ma sie skille na G to mozna szkolic je na wyzszy poziom. Prosilbym o sprawdzenie czy wszystko dobrze jest napisane..

 

 

			quest szkolenie begin
state start begin
	when login or levelup with pc.get_level() > 50 begin
		local v = find_npc_by_vnum(9003)
		if v != 0 then
			target.vid("__TARGET__", v, "NPC")
		end
		send_letter("Znajdz handlarke")
	end

	when button or info begin
		say_title("Szkolenie")
		say("Handlarka chce podrasowac Twoje skille")
		say("Znajdz ja!")
	end

	when __TARGET__.target.click begin
	target.delete("__TARGET__")
		say_title ("Zaawansowane szkolenie")
		say ("Witaj mezny wojowniku")
		say ("Dzieki mnie mozesz szkolic swoje umiejetnosci")
		wait()
		say ("ale...")
		say ("Mozesz to robic tylko, jezeli osiagnales juz")
		say ("conajmniej poziom wielkiego mistrza swoich umiejetnosci")
		wait()
		if pc.has_master_skill ( 0 ) then
		say ("Niestety Twoje umiejetnosci nie sa")
		say ("jeszcze wystarczajaco rozwiniete.")
		say ("Przyjdz kiedy je wyszkolisz!")
		end
		elseif pc.has_master_skill ( 1 ) then
		say ("Oo, Twoje umiejetnosci sa zadziwiajace,")
		say ("a dzieki mnie moga byc jeszcze lepsze!")
		say ("Wybierz wiec umiejetnosc, ktorej chcesz sie uczyc.")
		local s = select ("Trzystronne ciecie" , "Wir miecza" , "Berserk" , "Aura" , "Szarza")
		if 1 == s then
		say_title ("Wybrales szkolenie trzystronnego ciecia")
		say ("Poziom zostal zwiekszony!!")
		pc.learn_grand_master_skill( 1 )
		elseif 2 == s then
		say_title ("Wybrales szkolenie wiru miecza")
		say ("Poziom zostal zwiekszony!!")
		pc.learn_grand_master_skill( 2 )
		elseif 3 == s then
		say_title ("Wybrales szkolenie berserka")
		say ("Poziom zostal zwiekszony!!")
		pc.learn_grand_master_skill( 3 )
		elseif 4 == s then
		say_title ("Wybrales szkolenie aury")
		say ("Poziom zostal zwiekszony!!")
		pc.learn_grand_master_skill( 4 )
		elseif 5 == s then
		say_title ("Wybrales szkolenie szarzy")
		pc.learn_grand_master_skill( 5 )
		end
	set_state(ending)
	end
end
state ending begin
end
end

 

 

Wrzucilem to jako skille.quest do folderu quest w english. Potem we freebsd wklepalem sh make tej lokalizacji, w grze wpisalem /reload q, a nastepnie zrobilem reboot. Niestety w grze wogole nie ma tego questa i sie po prostu nie wyswietla. Co moze byc nie tak?

 

Pozdrawiam

asdvj.png

Opublikowano

Witam

 

Dzisiaj zaczalem troche majstrowac przy questach. Chcialem napisac prosta misje, w ktorej po przekroczeniu 50 lvlu jesli ma sie skille na G to mozna szkolic je na wyzszy poziom. Prosilbym o sprawdzenie czy wszystko dobrze jest napisane..

 

 

			quest szkolenie begin
state start begin
	when login or levelup with pc.get_level() > 50 begin
		local v = find_npc_by_vnum(9003)
		if v != 0 then
			target.vid("__TARGET__", v, "NPC")
		end
		send_letter("Znajdz handlarke")
	end

	when button or info begin
		say_title("Szkolenie")
		say("Handlarka chce podrasowac Twoje skille")
		say("Znajdz ja!")
	end

	when __TARGET__.target.click begin
	target.delete("__TARGET__")
		say_title ("Zaawansowane szkolenie")
		say ("Witaj mezny wojowniku")
		say ("Dzieki mnie mozesz szkolic swoje umiejetnosci")
		wait()
		say ("ale...")
		say ("Mozesz to robic tylko, jezeli osiagnales juz")
		say ("conajmniej poziom wielkiego mistrza swoich umiejetnosci")
		wait()
		if pc.has_master_skill ( 0 ) then
		say ("Niestety Twoje umiejetnosci nie sa")
		say ("jeszcze wystarczajaco rozwiniete.")
		say ("Przyjdz kiedy je wyszkolisz!")
		end
		elseif pc.has_master_skill ( 1 ) then
		say ("Oo, Twoje umiejetnosci sa zadziwiajace,")
		say ("a dzieki mnie moga byc jeszcze lepsze!")
		say ("Wybierz wiec umiejetnosc, ktorej chcesz sie uczyc.")
		local s = select ("Trzystronne ciecie" , "Wir miecza" , "Berserk" , "Aura" , "Szarza")
		if 1 == s then
		say_title ("Wybrales szkolenie trzystronnego ciecia")
		say ("Poziom zostal zwiekszony!!")
		pc.learn_grand_master_skill( 1 )
		elseif 2 == s then
		say_title ("Wybrales szkolenie wiru miecza")
		say ("Poziom zostal zwiekszony!!")
		pc.learn_grand_master_skill( 2 )
		elseif 3 == s then
		say_title ("Wybrales szkolenie berserka")
		say ("Poziom zostal zwiekszony!!")
		pc.learn_grand_master_skill( 3 )
		elseif 4 == s then
		say_title ("Wybrales szkolenie aury")
		say ("Poziom zostal zwiekszony!!")
		pc.learn_grand_master_skill( 4 )
		elseif 5 == s then
		say_title ("Wybrales szkolenie szarzy")
		pc.learn_grand_master_skill( 5 )
		end
	set_state(ending)
	end
end
state ending begin
end
end

 

 

Wrzucilem to jako skille.quest do folderu quest w english. Potem we freebsd wklepalem sh make tej lokalizacji, w grze wpisalem /reload q, a nastepnie zrobilem reboot. Niestety w grze wogole nie ma tego questa i sie po prostu nie wyswietla. Co moze byc nie tak?

 

Pozdrawiam

 

Łopatą tłumaczyć i nic. Podoczas robienia sh make musisz do listy dodać, podczas ./qc nazwa.quest NIC NIE DODAJESZ!

Twoim sposobem (shm) do listy dopisać trzeba nazwa.quest

Opublikowano

A lepiej robić questy w formacie .quest i dodawać do folderu quest, czy lepiej .arg .script .when do folderu object???

Jeszcze raz dotknij mojej sygny...

1646212_2_12.png

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...