- 20 Ottobre 2011
- 256
- 0
- Miglior risposta
- 0
gli npc sono creati con un particolare linguaggio di script chiamato LUA,
il lua è usato in moltissimi giochi,anche se i comandi sono quasi sempre diversi
vanno scritti in un documento di testo,consiglio notepad++
Download notepad++
RICORDO CHE GLI SPAZI SONO IMPORTANTISSIMI!
COME FACCIO A FAR DIRE QUALCOSA A UN NPC?
ci sono tre modi per far parlare in tre modi diversi
se si vuole far dire a un npc qualcosa normalmente si scrive
codice:
say ( "testo" )
a questo punto il nostro npc dirà semplicemente "testo"
è abbastanza intuitivo visto che "say" in inglese vuol dire "dire"
se si vuole far dire un titolo usiamo
codice:
say_title ( "titolo" )
il titolo viene visualizzato in giallo
se invece è un avviso si scrive
codice:
say_reward ( "avviso" )
e verrà visualizzato in rosa
facciamo l'esempio di un npc che vende item
codice:
say_title ( "venditore" )
say ( "sono un venditore sai?" )
say ( "posso venderti degli item" )
say ( "vuoi?" )
say_reward ( "ricordati che costa yang!" )
continuando con l'npc che vende item ora vediamo come...
CREARE DELLE OPZIONI
è molto semplice
codice:
local blabla = select ( "pelle di zampa d'orso" , "artiglio di lupo" , "dente di cinghiale" , "chiudi" )
a questo punto "blabla" è diventata la variabile della selezione!
le variabili vi serviranno molto in npc più complicati con opzioni l'una dentro l'altra!
ma adesso come facciamo a specificare cosa avviene quando viene cliccata un opzione?
GLI IF & ELSEIF
è molto intuitivo,"if",si sa,in ingleve vuol dire "se"
e allora scriviamo
codice:
if blabla == 1 then
sotto vanno messi i comandi che dopo vedremo
molto facile da interpretare, in italiano sarebbe
se blabla == 1 allora
praticamente: SE l'opzione è uguale a 1 allora
[comandi]
ricordiamo che blala è la nostra variabile,se noi avessimo messo "local vloaid" allora
adesso metteremmo "if vloaid"
per la seconda opzione non dobbiamo più mettere if ma elseif,else in inglese vuol
dire altrimenti
codice:
elseif blabla== 2 then
altrimenti se blabla è uguale a 2 allora
siamo arrivati qua
codice:
say_title ( "venditore" )
say ( "sono un venditore sai?" )
say ( "posso venderti degli item" )
say ( "vuoi?" )
say_reward ( "ricordati che costa yang!" )
local blabla = select ( "pelle di zampa d'orso" , "artiglio di lupo" , "dente di cinghiale" , "chiudi" )
if blabla == 1 then
adesso vediamo i fatidici COMANDI
I COMANDI
/!\ QUANDO FINISCE UNA SERIE DI COMANDI BISOGNA SEMPRE METTERE
return
end
ci sono diversi tipi di comandi da mettere sotto agli if,nel caso del venditore
codice:
pc . give_item2 ( "value" , quantità )
questo comando da l'item "value" nella
"quantità" scelta
però gli item non li vogliamo dare gratis
per far pagare mettiamo questo comando
codice:
if pc . gold >= 10 then
pc . changegold ( - 10 )
se i soldi sono maggiori (>) di 10 allora
cambia i soldi in meno (-) 10
naturalmente 10 è un esempio,voi mettete il vostro prezzo
siamo arrivati qui
codice:
say_title ( "venditore" )
say ( "sono un venditore sai?" )
say ( "posso venderti degli item" )
say ( "vuoi?" )
say_reward ( "ricordati che costa yang!" )
local blabla = select ( "pelle di zampa d'orso" , "artiglio di lupo" , "dente di cinghiale" , "chiudi" )
if blabla == 1 then
if pc . gold >= 10 then
pc . changegold ( - 10 )
pc . give_item2 ( "30053" , 1 )
ma se chi clicca l'npc non ha abbastanza soldi? c'è il nostro amico else
codice:
else
say ( "Non hai abbastanza yang!" )
codice:
say_title ( "venditore" )
say ( "sono un venditore sai?" )
say ( "posso venderti degli item" )
say ( "vuoi?" )
say_reward ( "ricordati che costa yang!" )
local blabla = select ( "pelle di zampa d'orso" , "artiglio di lupo" , "dente di cinghiale" , "chiudi" )
if blabla == 1 then
if pc . gold >= 10 then
pc . changegold ( - 10 )
pc . give_item2 ( "30053" , 1 )
else
say ( "Non hai abbastanza yang!" )
return
end
ho messo return end perchè è finita una serie di comandi!
naturalmente possiamo continuare a fare le opzioni con elseif
codice:
say_title ( "venditore" )
say ( "sono un venditore sai?" )
say ( "posso venderti degli item" )
say ( "vuoi?" )
say_reward ( "ricordati che costa yang!" )
local blabla = select ( "pelle di zampa d'orso" , "artiglio di lupo" , "dente di cinghiale" , "chiudi" )
if blabla == 1 then
if pc . gold >= 10 then
pc . changegold ( - 10 )
pc . give_item2 ( "30053" , 1 )
else
say ( "Non hai abbastanza yang!" )
return
end
elseif blabla == 2 then
if pc . gold >= 10 then
pc . changegold ( - 10 )
pc . give_item2 ( "30028" , 1 )
else
say ( "Non hai abbastanza yang!" )
return
end
elseif blabla == 3 then
if pc . gold >= 10 then
pc . changegold ( - 10 )
pc . give_item2 ( "30004" , 1 )
else
say ( "Non hai abbastanza yang!" )
return
end
per il "chiudi":non specificatelo nemmeno,se non è specificato quando lo si clicca si termina automaticamente lo script...
CREARE UN INPUT CON VARIABILE
un input è un riquadro di testo,in cui inserire un informazione che servirà
per i comandi seguenti
codice:
local lala = input ( )
questo è il comando,lala è come sopra blabla
automaticamente lala diventa la variabile di quello che c'è scritto dentro,se
noi la dentro scriviamo ciao
lala = ciao
e adesso come facciamo a utilizzarla?
mettiamo che è un npc per gm e serve a settare le skill a p di qualcuno
codice:
local nome_pg = input ( )
command("setskillother " .. nome_pg .. " 4 59")
IMPORTANTISSIMI GLI SPAZI
"[spazio]..[spazio]nome_pg[spazio]..[spazio]"
questo setterà a p aura del pg di cui hai inserito il nome
ma..avete notato command?
command serve a far fare un comando gm a un npc,naturalmente funzionerà solo
se il pg è gm
i comandi sono veramente tantissimi,consiglio di guardare gli npc da scaricare
per scoprirne e utilizzarne di nuovi!
COME AGGIUNGERE l'NPC CHE ABBIAMO APPENA CREATO
create una cartella e chiamatela con il value che volete dare all'npc IL VALUE DEVE ESSERE QUELLO DI UN NPC GIA ESISTENTE MA VUOTO es 20092
dentro createci una cartella e chiamatela "chat" (senza virgolette "")
e salvateci dentro il documento di testo come
change_empire.start.0.script
poi create un altro documento di testo e chiamatelo
change empire.start.0.arg
e dentro ci mettiamo
codice:
"Testo che volete venga visualizzato sull'opzione per entrare nell'npc"
es: vuoi viaggiare?
attenzione a mettere le virgolette ""
creiamone un altro e chiamiamolo
change_empire.start.0.when
quasi sempre va lasciato vuoto,ma se vogliamo far si
che questo npc lo possano usare solo i gm scriviamo dentro
codice:
return pc . is_gm ( )
mettete sopra l'arg in mezzo lo script e sotto il when,dopodichè mettete la cartella nell'ftp questo percorso
/usr/game(o rain)/channel/share_data/locale/hongkong(o english o newcibn)/quest/object
riavviate il server oppure in game date il comando codice:
/reload q
spawnate il vostro npc con il comando codice:
/m numero del nome della cartella
se avete sbagliato non vi manderà in loop niente,semplicemente l'npc non funzionerà
un po di comandi
if pc . gold >= 100 then
pc . changegold ( - 100 ) toglie 100 yang
if pc . gold >= 100 then
pc . changegold ( + 100 ) aggiunge 100 yang
elseif pc . countitem ( "value" ) < quantità then
say ( "Mi dispiace, ma non hai abbastanza item." )
elseif pc . countitem ( "value" ) >= quantità then
pc . removeitem ( "value" , quantità ) toglie item "value" nella quantià "quantità"
horse.advance ( ) fa salire il cavallo di un livello
horse.is_dead fa morire il cavallo
horse.is_riding () Credo serva per cavalcare il cavallo senza averlo come i buoni equitazione
horse.revive () Fa risorgere il cavallo morto
horse.ride () Serve a far salire il pg che clicca l'npc
horse.set_level () Setta il livello del cavallo del pg che clicca l'npc
horse.summon () Evoca il cavallo
horse.unride () Fa scendere il pg dal cavallo
horse.unsummon () Congeda il cavallo
horse.feed () da da mangiare al cavallo
change_sex () cambia sesso del personaggio
e ora una lunga lista di comandi di cui non conosco l'utilità presi da una vecchia guida di Sh0ck1991
codice:
__give_char_priv ()
addImage ()
addmapsignal ()
affect.add ()
affect.remove ()
affect.remove_bad ()
affect.remove_good ()
bool_to_str ()
building.get_land_id ()
building.get_land_info ()
building.has_land ()
building.set_land_owner ()
char_log ()
Chat ()
clear_server_timer ()
clearmapsignal ()
clear timer ()
cmdchat ()
color ()
complete_quest ()
complete_quest_state ()
confirm ()
sys_log ()
d.check_eliminated ()
d.clear_regen ()
d.count_monster ()
d.exit ()
d.exit_all ()
d.exit_all_to_start_position ()
d.get_kill_mob_count ()
d.get_kill_stone_count ()
d.get_map_index ()
d.getf ()
d.is_unique_dead ()
d.is_use_potion ()
d.join ()
d.jump_all ()
d.jump_all_local ()
d.kill_unique ()
d.new_jump ()
d.new_jump_all ()
d.purge ()
d.purge_unique ()
d.regen_file ()
d.revived ()
d.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 ()
d.spawn_goto_mob ()
d.spawn_group ()
d.spawn_mob ()
d.spawn_move_group ()
d.spawn_move_unique ()
d.spawn_name_mob ()
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 ()
game.open_safebox ()
game.request_make_guild ()
game.set_event_flag ()
game.set_safebox_level ()
get_global_time ()
get_locale ()
get_server_timer_arg ()
get_time ()
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 ()
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 ()
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_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_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 ()
pc.get_skill_group ()
pc.getsp ()
pc.getweapon ()
pc.getx ()
pc.gety ()
pc.give_exp ()
pc.give_exp2 ()
pc.give_exp_perc ()
pc.give_gold ()
pc.give_item ()
pc.give_item2 ()
pc.give_item_from_special_item_group ()
pc.give_lotto ()
pc.has_guild ()
pc.has_master_skill ()
pc.hasguild ()
pc.have_map_scroll ()
pc.have_pos_scroll ()
pc.in_dungeon ()
pc.is_guild_master ()
pc.is_horse_alive ()
pc.is_married ()
pc.is_mount ()
pc.is_polymorphed ()
pc.isguildmaster ()
pc.mount ()
pc.pc_attract_ranger ()
pc.polymorph ()
pc.refine_equip ()
pc.remove_from_guild ()
pc.remove_item ()
pc.remove_polymorph ()
pc.removeitem ()
pc.reset_point ()
pc.revive_horse ()
pc.select ()
pc.set_part ()
pc.set_warp_location ()
pc.set_warp_location_local ()
pc.setf ()
pc.setqf ()
pc.set_skill_group ()
pc.set_skill_level ()
pc.unmount ()
pc.warp ()
pc.warp_exit ()
pc.warp_local ()
pc.warp_to_guild_war_observer_position ()
pc.is_clear_skill_group ()
pc_find_skill_teacher_vid ()
pc_find_square_guard_vid ()
pc_get_exp_bonus ()
pc_get_village_map_index ()
pc_is_novice ()
q.done ()
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 ()
say ()
say_npc_name ()
say_pc_name ()
say_reward ()
say_title ()
say_item ()
say_item_vnum ()
select ()
select_table ()
clear_letter ()
send_letter ()
send_letter_ex ()
server_loop_timer ()
server_timer ()
set_quest_state ()
set_state ()
setbgimage ()
setcolor ()
setleftimage ()
setmapcenterposition ()
setSkin ()
setstate ()
show_horse_menu ()
skill_group_dialog ()
syschat ()
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 ()
tonumber ()
tostring ()
type ()
wait ()
pc.is_engaged ()
time_to_str ()
string.format ()
Math.ceil ()
pc.is_gm ()
pc.get_gm_level ()
pc.get_alignment ()
pc.get_real_alignment ()
pc.learn_grand_master_skill ()
pc.is_skill_book_no_delay ()
pc.remove_skill_book_no_delay ()
__get_empire_priv_string ()
__give_empire_priv ()
npc.get_guild ()
pc.mining ()
d.notice ()
pc.ore_refine ()
under_han ()
d.kill_all ()
d.setqf ()
__get_guild_priv_string ()
__give_guild_priv ()
__get_guildid_byname ()
item.get_id ()
item.select ()
select_item ()
item.select_cell ()
pc.diamond_refine ()
__fish_real_refine_rod ()
__refine_pick ()
item.get_cell ()
building.reconstruct ()
arena.start_duel ()
arena.get_duel_list ()
arena.add_observer ()
arena.is_in_arena ()
BuildSkillList ()
notice_all ()
warp_all_to_village ()
say_in_map ()
goldbar.quest ()
warp_all_in_map ()
regen_in_map ()
kill_all_in_map ()
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 ()
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 ()
oh.isguildmaster ()
oh.candidacycount ()
affect.remove_hair ()
affect.add_hair ()
affect.add_collect ()
affect.add_collect_point ()
pc.get_premium_remain_sec ()
oh.ismonarch ()
oh.spawnmob ()
oh.monarchbless ()
oh.monarchpowerup ()
oh.monarchdefenseup ()
pc.send_block_mode ()
command ( "command gm)
oxevent.get_status ()
oxevent.open ()
oxevent.close ()
oxevent.quiz ()
oxevent.end_event ()
oxevent.get_attender ()
oxevent.give_item ()
oxevent.end_event_force ()
forked.getlevellimit ()
mgmt.monarch_state ()
mgmt.monarch_change_lord ()
oh.frog_to_empire_money ()
oh.spawnguard ()
oh.info ()
oh.transfer ()
oh.warp ()
pc.change_sex ()
pc.change_empire ()
pc.get_change_empire_count ()
get_quest_state ()
Fonti : Inforge
il lua è usato in moltissimi giochi,anche se i comandi sono quasi sempre diversi
vanno scritti in un documento di testo,consiglio notepad++
Download notepad++
RICORDO CHE GLI SPAZI SONO IMPORTANTISSIMI!
COME FACCIO A FAR DIRE QUALCOSA A UN NPC?
ci sono tre modi per far parlare in tre modi diversi
se si vuole far dire a un npc qualcosa normalmente si scrive
codice:
say ( "testo" )
a questo punto il nostro npc dirà semplicemente "testo"
è abbastanza intuitivo visto che "say" in inglese vuol dire "dire"
se si vuole far dire un titolo usiamo
codice:
say_title ( "titolo" )
il titolo viene visualizzato in giallo
se invece è un avviso si scrive
codice:
say_reward ( "avviso" )
e verrà visualizzato in rosa
facciamo l'esempio di un npc che vende item
codice:
say_title ( "venditore" )
say ( "sono un venditore sai?" )
say ( "posso venderti degli item" )
say ( "vuoi?" )
say_reward ( "ricordati che costa yang!" )
continuando con l'npc che vende item ora vediamo come...
CREARE DELLE OPZIONI
è molto semplice
codice:
local blabla = select ( "pelle di zampa d'orso" , "artiglio di lupo" , "dente di cinghiale" , "chiudi" )
a questo punto "blabla" è diventata la variabile della selezione!
le variabili vi serviranno molto in npc più complicati con opzioni l'una dentro l'altra!
ma adesso come facciamo a specificare cosa avviene quando viene cliccata un opzione?
GLI IF & ELSEIF
è molto intuitivo,"if",si sa,in ingleve vuol dire "se"
e allora scriviamo
codice:
if blabla == 1 then
sotto vanno messi i comandi che dopo vedremo
molto facile da interpretare, in italiano sarebbe
se blabla == 1 allora
praticamente: SE l'opzione è uguale a 1 allora
[comandi]
ricordiamo che blala è la nostra variabile,se noi avessimo messo "local vloaid" allora
adesso metteremmo "if vloaid"
per la seconda opzione non dobbiamo più mettere if ma elseif,else in inglese vuol
dire altrimenti
codice:
elseif blabla== 2 then
altrimenti se blabla è uguale a 2 allora
siamo arrivati qua
codice:
say_title ( "venditore" )
say ( "sono un venditore sai?" )
say ( "posso venderti degli item" )
say ( "vuoi?" )
say_reward ( "ricordati che costa yang!" )
local blabla = select ( "pelle di zampa d'orso" , "artiglio di lupo" , "dente di cinghiale" , "chiudi" )
if blabla == 1 then
adesso vediamo i fatidici COMANDI
I COMANDI
/!\ QUANDO FINISCE UNA SERIE DI COMANDI BISOGNA SEMPRE METTERE
return
end
ci sono diversi tipi di comandi da mettere sotto agli if,nel caso del venditore
codice:
pc . give_item2 ( "value" , quantità )
questo comando da l'item "value" nella
"quantità" scelta
però gli item non li vogliamo dare gratis
per far pagare mettiamo questo comando
codice:
if pc . gold >= 10 then
pc . changegold ( - 10 )
se i soldi sono maggiori (>) di 10 allora
cambia i soldi in meno (-) 10
naturalmente 10 è un esempio,voi mettete il vostro prezzo
siamo arrivati qui
codice:
say_title ( "venditore" )
say ( "sono un venditore sai?" )
say ( "posso venderti degli item" )
say ( "vuoi?" )
say_reward ( "ricordati che costa yang!" )
local blabla = select ( "pelle di zampa d'orso" , "artiglio di lupo" , "dente di cinghiale" , "chiudi" )
if blabla == 1 then
if pc . gold >= 10 then
pc . changegold ( - 10 )
pc . give_item2 ( "30053" , 1 )
ma se chi clicca l'npc non ha abbastanza soldi? c'è il nostro amico else
codice:
else
say ( "Non hai abbastanza yang!" )
codice:
say_title ( "venditore" )
say ( "sono un venditore sai?" )
say ( "posso venderti degli item" )
say ( "vuoi?" )
say_reward ( "ricordati che costa yang!" )
local blabla = select ( "pelle di zampa d'orso" , "artiglio di lupo" , "dente di cinghiale" , "chiudi" )
if blabla == 1 then
if pc . gold >= 10 then
pc . changegold ( - 10 )
pc . give_item2 ( "30053" , 1 )
else
say ( "Non hai abbastanza yang!" )
return
end
ho messo return end perchè è finita una serie di comandi!
naturalmente possiamo continuare a fare le opzioni con elseif
codice:
say_title ( "venditore" )
say ( "sono un venditore sai?" )
say ( "posso venderti degli item" )
say ( "vuoi?" )
say_reward ( "ricordati che costa yang!" )
local blabla = select ( "pelle di zampa d'orso" , "artiglio di lupo" , "dente di cinghiale" , "chiudi" )
if blabla == 1 then
if pc . gold >= 10 then
pc . changegold ( - 10 )
pc . give_item2 ( "30053" , 1 )
else
say ( "Non hai abbastanza yang!" )
return
end
elseif blabla == 2 then
if pc . gold >= 10 then
pc . changegold ( - 10 )
pc . give_item2 ( "30028" , 1 )
else
say ( "Non hai abbastanza yang!" )
return
end
elseif blabla == 3 then
if pc . gold >= 10 then
pc . changegold ( - 10 )
pc . give_item2 ( "30004" , 1 )
else
say ( "Non hai abbastanza yang!" )
return
end
per il "chiudi":non specificatelo nemmeno,se non è specificato quando lo si clicca si termina automaticamente lo script...
CREARE UN INPUT CON VARIABILE
un input è un riquadro di testo,in cui inserire un informazione che servirà
per i comandi seguenti
codice:
local lala = input ( )
questo è il comando,lala è come sopra blabla
automaticamente lala diventa la variabile di quello che c'è scritto dentro,se
noi la dentro scriviamo ciao
lala = ciao
e adesso come facciamo a utilizzarla?
mettiamo che è un npc per gm e serve a settare le skill a p di qualcuno
codice:
local nome_pg = input ( )
command("setskillother " .. nome_pg .. " 4 59")
IMPORTANTISSIMI GLI SPAZI
"[spazio]..[spazio]nome_pg[spazio]..[spazio]"
questo setterà a p aura del pg di cui hai inserito il nome
ma..avete notato command?
command serve a far fare un comando gm a un npc,naturalmente funzionerà solo
se il pg è gm
i comandi sono veramente tantissimi,consiglio di guardare gli npc da scaricare
per scoprirne e utilizzarne di nuovi!
COME AGGIUNGERE l'NPC CHE ABBIAMO APPENA CREATO
create una cartella e chiamatela con il value che volete dare all'npc IL VALUE DEVE ESSERE QUELLO DI UN NPC GIA ESISTENTE MA VUOTO es 20092
dentro createci una cartella e chiamatela "chat" (senza virgolette "")
e salvateci dentro il documento di testo come
change_empire.start.0.script
poi create un altro documento di testo e chiamatelo
change empire.start.0.arg
e dentro ci mettiamo
codice:
"Testo che volete venga visualizzato sull'opzione per entrare nell'npc"
es: vuoi viaggiare?
attenzione a mettere le virgolette ""
creiamone un altro e chiamiamolo
change_empire.start.0.when
quasi sempre va lasciato vuoto,ma se vogliamo far si
che questo npc lo possano usare solo i gm scriviamo dentro
codice:
return pc . is_gm ( )
mettete sopra l'arg in mezzo lo script e sotto il when,dopodichè mettete la cartella nell'ftp questo percorso
/usr/game(o rain)/channel/share_data/locale/hongkong(o english o newcibn)/quest/object
riavviate il server oppure in game date il comando codice:
/reload q
spawnate il vostro npc con il comando codice:
/m numero del nome della cartella
se avete sbagliato non vi manderà in loop niente,semplicemente l'npc non funzionerà
un po di comandi
if pc . gold >= 100 then
pc . changegold ( - 100 ) toglie 100 yang
if pc . gold >= 100 then
pc . changegold ( + 100 ) aggiunge 100 yang
elseif pc . countitem ( "value" ) < quantità then
say ( "Mi dispiace, ma non hai abbastanza item." )
elseif pc . countitem ( "value" ) >= quantità then
pc . removeitem ( "value" , quantità ) toglie item "value" nella quantià "quantità"
horse.advance ( ) fa salire il cavallo di un livello
horse.is_dead fa morire il cavallo
horse.is_riding () Credo serva per cavalcare il cavallo senza averlo come i buoni equitazione
horse.revive () Fa risorgere il cavallo morto
horse.ride () Serve a far salire il pg che clicca l'npc
horse.set_level () Setta il livello del cavallo del pg che clicca l'npc
horse.summon () Evoca il cavallo
horse.unride () Fa scendere il pg dal cavallo
horse.unsummon () Congeda il cavallo
horse.feed () da da mangiare al cavallo
change_sex () cambia sesso del personaggio
e ora una lunga lista di comandi di cui non conosco l'utilità presi da una vecchia guida di Sh0ck1991
codice:
__give_char_priv ()
addImage ()
addmapsignal ()
affect.add ()
affect.remove ()
affect.remove_bad ()
affect.remove_good ()
bool_to_str ()
building.get_land_id ()
building.get_land_info ()
building.has_land ()
building.set_land_owner ()
char_log ()
Chat ()
clear_server_timer ()
clearmapsignal ()
clear timer ()
cmdchat ()
color ()
complete_quest ()
complete_quest_state ()
confirm ()
sys_log ()
d.check_eliminated ()
d.clear_regen ()
d.count_monster ()
d.exit ()
d.exit_all ()
d.exit_all_to_start_position ()
d.get_kill_mob_count ()
d.get_kill_stone_count ()
d.get_map_index ()
d.getf ()
d.is_unique_dead ()
d.is_use_potion ()
d.join ()
d.jump_all ()
d.jump_all_local ()
d.kill_unique ()
d.new_jump ()
d.new_jump_all ()
d.purge ()
d.purge_unique ()
d.regen_file ()
d.revived ()
d.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 ()
d.spawn_goto_mob ()
d.spawn_group ()
d.spawn_mob ()
d.spawn_move_group ()
d.spawn_move_unique ()
d.spawn_name_mob ()
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 ()
game.open_safebox ()
game.request_make_guild ()
game.set_event_flag ()
game.set_safebox_level ()
get_global_time ()
get_locale ()
get_server_timer_arg ()
get_time ()
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 ()
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 ()
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_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_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 ()
pc.get_skill_group ()
pc.getsp ()
pc.getweapon ()
pc.getx ()
pc.gety ()
pc.give_exp ()
pc.give_exp2 ()
pc.give_exp_perc ()
pc.give_gold ()
pc.give_item ()
pc.give_item2 ()
pc.give_item_from_special_item_group ()
pc.give_lotto ()
pc.has_guild ()
pc.has_master_skill ()
pc.hasguild ()
pc.have_map_scroll ()
pc.have_pos_scroll ()
pc.in_dungeon ()
pc.is_guild_master ()
pc.is_horse_alive ()
pc.is_married ()
pc.is_mount ()
pc.is_polymorphed ()
pc.isguildmaster ()
pc.mount ()
pc.pc_attract_ranger ()
pc.polymorph ()
pc.refine_equip ()
pc.remove_from_guild ()
pc.remove_item ()
pc.remove_polymorph ()
pc.removeitem ()
pc.reset_point ()
pc.revive_horse ()
pc.select ()
pc.set_part ()
pc.set_warp_location ()
pc.set_warp_location_local ()
pc.setf ()
pc.setqf ()
pc.set_skill_group ()
pc.set_skill_level ()
pc.unmount ()
pc.warp ()
pc.warp_exit ()
pc.warp_local ()
pc.warp_to_guild_war_observer_position ()
pc.is_clear_skill_group ()
pc_find_skill_teacher_vid ()
pc_find_square_guard_vid ()
pc_get_exp_bonus ()
pc_get_village_map_index ()
pc_is_novice ()
q.done ()
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 ()
say ()
say_npc_name ()
say_pc_name ()
say_reward ()
say_title ()
say_item ()
say_item_vnum ()
select ()
select_table ()
clear_letter ()
send_letter ()
send_letter_ex ()
server_loop_timer ()
server_timer ()
set_quest_state ()
set_state ()
setbgimage ()
setcolor ()
setleftimage ()
setmapcenterposition ()
setSkin ()
setstate ()
show_horse_menu ()
skill_group_dialog ()
syschat ()
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 ()
tonumber ()
tostring ()
type ()
wait ()
pc.is_engaged ()
time_to_str ()
string.format ()
Math.ceil ()
pc.is_gm ()
pc.get_gm_level ()
pc.get_alignment ()
pc.get_real_alignment ()
pc.learn_grand_master_skill ()
pc.is_skill_book_no_delay ()
pc.remove_skill_book_no_delay ()
__get_empire_priv_string ()
__give_empire_priv ()
npc.get_guild ()
pc.mining ()
d.notice ()
pc.ore_refine ()
under_han ()
d.kill_all ()
d.setqf ()
__get_guild_priv_string ()
__give_guild_priv ()
__get_guildid_byname ()
item.get_id ()
item.select ()
select_item ()
item.select_cell ()
pc.diamond_refine ()
__fish_real_refine_rod ()
__refine_pick ()
item.get_cell ()
building.reconstruct ()
arena.start_duel ()
arena.get_duel_list ()
arena.add_observer ()
arena.is_in_arena ()
BuildSkillList ()
notice_all ()
warp_all_to_village ()
say_in_map ()
goldbar.quest ()
warp_all_in_map ()
regen_in_map ()
kill_all_in_map ()
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 ()
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 ()
oh.isguildmaster ()
oh.candidacycount ()
affect.remove_hair ()
affect.add_hair ()
affect.add_collect ()
affect.add_collect_point ()
pc.get_premium_remain_sec ()
oh.ismonarch ()
oh.spawnmob ()
oh.monarchbless ()
oh.monarchpowerup ()
oh.monarchdefenseup ()
pc.send_block_mode ()
command ( "command gm)
oxevent.get_status ()
oxevent.open ()
oxevent.close ()
oxevent.quiz ()
oxevent.end_event ()
oxevent.get_attender ()
oxevent.give_item ()
oxevent.end_event_force ()
forked.getlevellimit ()
mgmt.monarch_state ()
mgmt.monarch_change_lord ()
oh.frog_to_empire_money ()
oh.spawnguard ()
oh.info ()
oh.transfer ()
oh.warp ()
pc.change_sex ()
pc.change_empire ()
pc.get_change_empire_count ()
get_quest_state ()
Fonti : Inforge
Ultima modifica: