Quest hilfe

01/17/2011 13:11 Legend2007#1
Moin Community

Ich bräuchte eine kleine hilfe mit einem quest script und zwar wollte ich eine quest schreiben womit ich einen beliebigen Status (VIT, INT, STR, DEX) um X Punkte erhöhen kann.. Gibt's da eine möglichkeit um dies umzusetzen?

Mache mal nen beispiel über was Ich rede da Ich gemerkt habe das kaum jemand meine Fragen versteht (warum auch immer lol) (wobei dieses konzept ja leicht ist)...

Also:
Quest beginnt -> bekommt einen auftrag den man erledigen muss -> Belohnung

Belohnung: +1 STR permanent (also sollte auf dem aktuellen STR wert dazu addiert werden, somit: hat man 90 dann soll es per quest auf 91 gesetzt werden)

Ist es möglich umzusetzen?

Danke für jene antwort

Gruß
Legend
01/17/2011 13:14 Muscooler#2
Rein theoretisch müsste das gehen. Schau dir mal den Regenbogenstein Quest an, der macht ja fast dasselbe.
01/17/2011 13:57 Legend2007#3
Habe mir die quest angeschaut und all das was in meinem fall nutzbar sein könnte wäre:

Quote:
pc.set_skill_level((vnum) ,59)
wobei mir das aber nicht so sehr zusagt.. Wie richte ich es auf dex, str, etc aus? :S

Die quest_function liste hat auch keinen direkten befehl um auf solche werte zuzugreifen.. zumindest hab ich's versucht und gefailed x.x
01/17/2011 14:08 lfcmaus#4
der befehl setzt deen skill hoch nicht den status
die einzigste quest die dir helfen wird ist wo ne biologen quest
da gabs doch mal mal welche wo man +60def dazu bekommt oder +5% anggeschw.

des wäre sicherlich nützlicher
01/17/2011 14:17 .NoThx#5
Tach,
ich ahbe anbei mal eine liste aller questefehle die ich kenne(bzw gesehen ahbe aus tehrads)
soweit ich weiß gibs ei befehl dafür jeodch weiß ich ihn nicht ..lad dir einfach enn bio quest runter!
Liste:
HTML Code:
__give_char_priv()
addimage()
addmapsignal()
affect.add() -- affect hinzufügen
affect.remove() -- affect entfernen
affect.remove_bad() -- negativen affect wegmachen
affect.remove_good() -- positiven affect entfernen
bool_to_str() -- Boolean zu String heisst 1 wird zu true und 0 wird zu false oder so
building.get_land_id() -- Id des Landes ausgben
building.get_land_info() -- Info über das land ausgeben
building.has_land() -- hat land? 0 oder 1
building.set_land_owner() -- setzt den Besitzer des landes
char_log() -- schreibt was in die log tabelle?
chat() -- schreibt etwas in den chat?
clear_server_timer() -- Server timer zurücksezen
clearmapsignal()
cleartimer() -- timer zurück setzen
cmdchat() -- cmd chat ka was
color(r,g,b) -- farbe rgb glaubich
complete_quest() -- quest abschließen
complete_quest_state() -- complete sate
confirm() -- bestätigen Ja nein?
sys_log() -- etwas in den system log schreiben?
d.check_eliminated() -- checken ob etwas eliminiert wurde
d.clear_regen() -- es spawnen keine monster mehr
d.count_monster() -- monster zählen?
d.exit() -- irgendwas verlassen
d.exit_all() -- alle verlassen irgendwas
d.exit_all_to_start_position() -- alle zurück zur start postion von irgendwas
d.get_kill_mob_count() -- wie viele mobs wurden getötet
d.get_kill_stone_count() -- wie viele metins wurden gekillt
d.get_map_index() -- map index ausgeben
d.getf() -- ka
d.is_unique_dead() -- ist einer tot?
d.is_use_potion() -- benutzt jemand Potion?
d.join() -- beitreten?
d.jump_all() -- alle springen?
d.jump_all_local() -- alle springen lokal?
d.kill_unique() -- ka
d.new_jump() -- neuer sprung?
d.new_jump_all() -- alle neuer sprung?
d.purge() -- monster verschwinden?
d.purge_unique() -- ein monster verschwinded
d.regen_file()
d.revived()
d.select() -- auswahl
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() -- irgendwas spawnen?
d.spawn_goto_mob() -- spawnt und teleportiert zu mob
d.spawn_group() -- gruppe spawnen
d.spawn_mob() -- mob spawnen
d.spawn_move_group() -- gruppe spawnen und bewegen?
d.spawn_move_unique() -- einen mob spawnen und bewegen?
d.spawn_name_mob()
d.spawn_stone_door() -- stein tür spawnen?
d.spawn_unique()
d.spawn_wooden_door() -- Holztür spawnen?
d.unique_get_hp_perc()
d.unique_set_def_grade()
d.unique_set_hp()
d.unique_set_maxhp()
delay() -- verzögerung
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() -- item shop fenster wie im 2009er client öffnen benötigt ziemlich aktuellen client
game.open_safebox() -- safe box öffnen halt xD
game.request_make_guild()
game.set_event_flag()
game.set_safebox_level()
get_global_time() -- Globale Zeit ausgeben
get_locale() -- locale aufgeben (hongkong?)
get_server_timer_arg() -- server timer zeit ausgeben
get_time() -- zeit ausgeben
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() -- input feld erstellen wo man was eingeben kann
is_test_server()
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()
npc.lock()
npc.open_shop()
npc.purge()
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() -- was in der quest tabelle löschen
pc.destroy_guild()
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(exp)
pc.give_exp2(exp)
pc.give_exp_perc(percent)
pc.give_gold(gold)
pc.give_item(vnum)-- gibt Rang punkte zurück
pc.give_item2(vnum)
pc.give_item_from_special_item_group(is_item?)
pc.give_lotto()
pc.has_guild() -- Gibt zurück ob man in einer Gilde ist(1) oder eben nicht(0)
pc.has_master_skill() -- Gibt zurück ob man irgendwas auf hat(1) oder eben nicht(0)
pc.hasguild() -- Gibt zurück ob man in einer Gilde ist(1) oder eben nicht(0)
pc.have_map_scroll()
pc.have_pos_scroll()
pc.in_dungeon() -- Gibt zurück ob man greade in einem Dungeon ist(1) oder eben nicht(0)
pc.is_guild_master() -- Gibt zurück ob man Gilden Leader ist(1) oder eben nicht(0)
pc.is_horse_alive() -- Gibt zurück das Pferd des Spielers lebt(1) oder eben nicht(0)
pc.is_married() -- Gibt zurück ob man in verheiratet ist(1) oder eben nicht(0)
pc.is_mount() -- Gibt zurück ob ein spieler auf e
pc.is_polymorphed() -- Gibt zurück ob man verwandelt ist(1) oder eben nicht(0)
pc.isguildmaster() -- Gibt zurück ob man Gilden Leader ist(1) oder eben nicht(0)
pc.mount()
pc.pc_attract_ranger()
pc.polymorph(mob_vnum) -- Spieler Verwandeln
pc.refine_equip() -- Gegenstand Verbeßern
pc.remove_from_guild() -- Aus Gilde löschen
pc.remove_item(item_vnum) -- Gegenstand aus Inventar löschen
pc.remove_polymorph() -- Verwandlund rückgangig machen
pc.removeitem() -- Gegenstand aus Inventar löschen
pc.reset_point() -- Punkte zurück setzen (Status?)
pc.revive_horse()
pc.select() -- Auswahl
pc.set_part()
pc.set_warp_location()
pc.set_warp_location_local()
pc.setf()
pc.setqf(name,value)
pc.set_skill_group() --Lehre wechseln
pc.set_skill_level() -- skill level ändern
pc.unmount()
pc.warp() -- Teleportieren
pc.warp_exit() -- Teleportieren (Ausgang)
pc.warp_local()
pc.warp_to_guild_war_observer_position() -- Teleportieren zu Gildenkrieg wächter Typie
pc.is_clear_skill_group()
pc_find_skill_teacher_vid()
pc_find_square_guard_vid()
pc_get_exp_bonus() -- Gibt dem EXP Bonus aus
pc_get_village_map_index() -- gibt den map index des Dorfes aus
pc_is_novice() -- gibt aus ob der Spieler noch unter level 15 ist
q.done() -- quest beenden
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() -- state setzen
q.start() -- Quest Starten
q.yield()
raw_script()
restart_quest() -- Quest neustarten
say() -- einaches sagen
say_npc_name() -- gibt Text mit Formatierung für den NPC Namen aus
say_pc_name() -- gibt Text mit Formatierung für den Spieler Namen aus
say_reward() -- gibt Text mit Formatierung für eine Belohnunh aus
say_title() -- gibt Text mit Formatierung für den Titel aus
say_item() -- gibt Text mit Formatierung für ein Item aus
say_item_vnum()--gibt Text mit Formatierung für ein Item aus<-Wie bei mt2de bei Schmied und Bio
select() -- Auswahl die Values müsst ihr selber machen Jede value = 1 auswahl feld wie Ja Nein
select_table() -- Ne tabelle ka wie das funktioniert ausprobieren
clear_letter() -- Brief löschen usw
send_letter() -- Quest Brief senden usw
send_letter_ex() -- Quest Brief senden usw mit einer besonderheit ka was xD
server_loop_timer() -- Schleifen Timer
server_timer() -- timer erstellen?
set_quest_state() -- state setzen
set_state() -- state setzen
setbgimage()
setcolor()
setleftimage()
setmapcenterposition()
setskin()
setstate()
show_horse_menu() -- pferde menu anzeigen
skill_group_dialog()
syschat() -- debug mode chat fenster
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() -- timer halt ka wie man es benutzt
tonumber() -- irgendetwas zur nummer machen
tostring() irgendwas zum string machen
type()
wait() -- erstellt einen weiter Knopf
pc.is_engaged()
time_to_str() -- Zeit zu String
string.format()
math.ceil() -- aufrunden mathematisch
pc.is_gm() -- gibt aus ob der Spieler GM ist 1 oder 0
pc.get_gm_level() -- gibt das GM level zurück also implementor usw
pc.get_alignment() -- gibt Rang punkte zurück
pc.get_real_alignment() -- gibt echtes Gemüt zurück
pc.learn_grand_master_skill() -- einen skill auf großmeister machen oder war es P immer 1 schritt
pc.is_skill_book_no_delay() -- wenn eine Exxo gelesen wurde 1 wenn nicht 0
pc.remove_skill_book_no_delay() -- entfernt den exxo effekt
__get_empire_priv_string() -- den Bonus eines Reichs ausgeben
__give_empire_priv() -- einem Reich einen Bonus geben
npc.get_guild() -- Gilde eines NPCs ausgeben
pc.mining() -- prüft ob der Spieler greade an der Mine arbeitet (1) oder eben nicht
d.notice() -- eine notiz anscheinend keine ahnung wofür "d" steht
pc.ore_refine()
under_han()
d.kill_all() -- alle töten (monster ?)
d.setqf() -- wie gesagt weiß ich nicht aber speichert auch sachen in der quest tabelle
__get_guild_priv_string()
__give_guild_priv()
__get_guildid_byname()
item.get_id()
item.select() -- Item Auswahl?
select_item() -- Item auswahl erstellen?
item.select_cell() -- Item Zelle wählen?
pc.diamond_refine() -- Steine uppen
__fish_real_refine_rod()
__refine_pick()
item.get_cell() -- Box nummer ausgeben wo das item im inventar ist
building.reconstruct() -- gebäude neu aufbauen
arena.start_duel() -- duell in der arena starten
arena.get_duel_list() -- Duell liste anzeigen
arena.add_observer() -- Wächter hinzufügen?
arena.is_in_arena() -- befindet sich in arena
BuildSkillList() -- skill liste erstellen
notice_all() -- überall notiz auffem server?
warp_all_to_village() -- alle zurück in ihre dörfer teleportieren oder nur ein reich ka
say_in_map() -- in Formartierung für Maps was sagen
goldbar.quest()
warp_all_in_map() -- allle in eine map teleportieren?
regen_in_map() -- alle monster einer map regenerieren?
kill_all_in_map() -- alle in der map töten?
notice_in_map() -- notiz auf einer map
forked.decdeadcount()
forked.cleardeadcount()
forked.setdeadcount()
forked.initkillcount()
forked.inckillcount()
forked.initmobkillcount()
forked.incmobkillcount()
forked.getmobkillcount()
warp_all_except_my_empire_in_map() -- alle aus mein reich in eine map teleportieren
warp_all_my_empire_in_map() -- nur mein reich in map teleportieren
forked.initforked()
warp_to_village() -- ins dorf teleportieren (nur sich selber?)
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() -- alle in ihre dörfer teleportieren außer mein reich
is_allow_map() -- Map erlaubt (1) Map nicht erlaubt (0)
oh.candidacy_list()
oh.election()
oh.candidacy_name()
oh.candidacy()
oh.takemonarchmoney()
pc.teleport() -- sich selber teleportieren oder jemanden zusich holen?
oh.isguildmaster()
oh.candidacycount()
affect.remove_hair() -- harr entfernen
affect.add_hair() -- harr geben
affect.add_collect() -- irgendwas geben
affect.add_collect_point() -- irgendwas geben
pc.get_premium_remain_sec() -- wie lange ist man noch premium?
oh.ismonarch() -- ist king?
oh.spawnmob() -- mob spawnen wenn man king ist?
oh.monarchbless() -- king segenen oder er segenet dich?
oh.monarchpowerup() -- king bekommt mehr power oder du?
oh.monarchdefenseup() -- king rüssi geben? aufjedenfall mehr verteidigung
pc.send_block_mode()
command("gm befehl") -- jo gm befehel ausfüren nur als gm
oxevent.get_status()
oxevent.open() -- öffnen
oxevent.close() -- schließen
oxevent.quiz() -- quiz starten
oxevent.end_event() -- even beenden
oxevent.get_attender()
oxevent.give_item() -- am ende des ox events den gewinner oder gewinnern ein item geben
oxevent.end_event_force() -- Mit gewalt das event beenden
forked.getlevellimit()
mgmt.monarch_state() -- king status
mgmt.monarch_change_lord() -- king ändern
oh.frog_to_empire_money()
oh.spawnguard()
oh.info()
oh.transfer()
oh.warp()
pc.change_sex() -- geschlecht des spielers ändern
pc.change_empire() -- Reich des spielers ändern
pc.get_change_empire_count() -- wie oft schon das reich gewechselt
get_quest_state() -- gibt den aktuellen state der quest aus
affect.remove_collect() -- affect entfernen ka welchen
<
01/17/2011 14:17 Legend2007#6
Hätte früher drauf kommen sollen xD
Danke!

Nurnoch eine letzte frage:
Kann man per quest auch die Statspunkte, die man zur verfügung hat, senken?
Sodass ich per quest +1 VIT gebe, aber auch die zur verfügung stehenden Punkte auch runter gehn sonst gibt's ja garkeine grenze o.o"

Beispiel:
VIT 90

Punkte zur verfügung: 50

Durch quest -> VIT 91 -> Punkte auf 49 runter

@.NoThx: Ich habe diese liste schon gesehn und mir ca. 10 mal durch geschaut aber wurde nicht fundig. Dennoch danke.
01/17/2011 14:20 .2good4you111#7
affect.add(value, time)

value ist genau das selbe wie i der Db die Bonis und Time in Sekunden angegeben, wi lange der boni hält.

Eine Liste mit den Bonivalues gibts irgendwo im Forum hier...
01/17/2011 14:24 Legend2007#8
Awesome!

Danke sehr für den Befehl! :D

Jedoch besteht meine Frage noch wie ich die Statuspunkte die ich noch verteilen kann runtersenke. :P
01/17/2011 14:26 lfcmaus#9
und wenns perma soll was kommt dann bei time rein?
01/17/2011 14:27 .NoThx#10
die gehen wenn die zeit abgelaufen ist automatich runter
€:die befehle die du braust:
affect.add() -- affect hinzufügen
affect.remove() -- affect entfernen
affect.remove_bad() -- negativen affect wegmachen
affect.remove_good() -- positiven affect entfernen
€²:@ If setz doch einfahc 999999999999999999
solange spielt keiner mit einem char^^
01/17/2011 14:28 .2good4you111#11
60*60 = 1Stunde

60*60*24 = 1 Tag

60*60*24*365 = 1 Jahr

60*60*24*365*100 = 100 Jahre

[...]
01/17/2011 14:29 Legend2007#12
Quote:
Originally Posted by lfcmaus View Post
und wenns perma soll was kommt dann bei time rein?
Beispielsweise kannst du sowas benutzen:

Zeit = 60*60*24*355*5

(Sekunden * Minuten * Stunden * Tage * Jahre) = Zeit in Sekunden

Edit:

Quote:
Originally Posted by .NoThx View Post
die gehen wenn die zeit abgelaufen ist automatich runter
€:die befehle die du braust:
affect.add() -- affect hinzufügen
affect.remove() -- affect entfernen
affect.remove_bad() -- negativen affect wegmachen
affect.remove_good() -- positiven affect entfernen
€²:@ If setz doch einfahc 999999999999999999
solange spielt keiner mit einem char^^
Ja schon klar jedoch meinte Ich nicht den affect den ich dazu addiere sondern die überflüssige Statuspunkte die einem Char gutgeschrieben werden bei jedem level up.
01/17/2011 14:36 lfcmaus#13
key des ist doch was tolles damit solltest du deine quest hinbekommen^^
2good thx für das erklären mit der zeit
01/17/2011 14:37 .2good4you111#14
Np, wenn du hilfe mit quests brauchst kannst mich ruhig fragen, habe momentan sowiso langeweile... :S
01/17/2011 14:40 .Scy#15
Quote:
Originally Posted by .NoThx View Post
die gehen wenn die zeit abgelaufen ist automatich runter
€:die befehle die du braust:
affect.add() -- affect hinzufügen
affect.remove() -- affect entfernen
affect.remove_bad() -- negativen affect wegmachen
affect.remove_good() -- positiven affect entfernen
€²:@ If setz doch einfahc 999999999999999999
solange spielt keiner mit einem char^^
60*60*24*365 = 1jahr