Wednesday, 2024-04-24, 5:18 AM
Main Sign Up RSS
Welcome, Guest
.:|Menu|:.


|Search|
.:|CategorieS|:.
Software [29] Games [5]
Design [0] Icons [0]
Scripts [0] Templates [0]
Wallpapers [3] Phones [0]
Ebooks [2] Humor [0]
Music [1] TV Shows [0]
Tutorials [32] Other [2]
Fitness [0] General knowledge [0]
|Statistics|

Started: Jan/04/2011
free counters

Free counter and web stats



Total online: 1
Guests: 1
Users: 0


Main » Files » Tutorials

[Guia] NPC
2011-04-07, 5:00 AM

Guias reunidas para una buena modificacion de vuestras NPC:

Cambiar el precio de los objetos que venden los npc
1) montamos el server
2)abrimos el navicap
3)aqui nos vamos a player_proto
4)en vnum buscamos el codigo del objeto al que quermos cambiarle el precio en este caso yo busco el mineral del herrero el codigo es "25041" luego nos vamos a la casilla de gold (aqui le ponemos el precio que queremos que el npc nos lo venda) ponemos "1" seria un yang
5)en shop_buy_price ponemos el precio al que queremos que el npc nos lo compre yo le pongo 0 por que no quiero que aya bug de yang en mi server
6) desmontamos el navicap y el server y al reiniciar TARAN =)


Para implementarlas:

Abrir el filezilla, luego ir hasta esta seccion: /usr/rain/channel/share_data/locale/hongkong/quest/object/ y pegar los arhivos ahi dentro, luego guardas y reinicias. Luego te vas al juego escribes el comando ( /reload q ) luego invocas el npc con este codigo /m 20094 y sale la npc con todas sus funciones ya traducidas al español.


Implementar NPC fijos:

Esta guia es para añadir npc en cualkier mapa, para esta guia voy a usar el castillo de nuestro reino (yo soy tomatito jeje(shisoo -.-))

Castillo del reino:
Acercar (dimensiones reales: 957 x 537)Imagen

Si nos hemos metido aki ya abremos visto k no hay nada,eso es muxo espacio desaprobechado xD
Para añadir npc primero hay k saber el codigo del mapa k es el mapa al k le keremos añadir el npc,por ejemplo shinsoo city 1 = 1 = metin2_map_a1
shinsoo city 2 = 78 = metin2_map_a2_1
esos numeros señalados son los codigos del mapa,si nos fijamos en navicat cuando cerramos nuestra cuenta vamos a pplayer y buscamos nuestro pj en la columna de "Map_index" vemos k pone un numero,ese numero es el codigo del mapa.Una vez aclarado esto tenemos k saber a k mapa pertenece cada numero,para saberlo vamos a filezilla y buscamos el archivo Index ,k esta en

/usr/rain/channel/share_data/locale/hongkong/map


lo descargamos y lo abrimos con NOTEPAD ++
hay podremos observar esto

Acercar (dimensiones reales: 1024 x 728)Imagen

Vemos hay un numero segido de un nombre,el numero es el codigo del mapa y el nombre es la carpeta del filezilla donde se encuentra ese mapa.
Como dije antes yo voy a usar el castillo del reino:para ello debemos averiguar el codigo del mapa,es lo k dije antes:vamos al mapa al k le keremos añadir el npc,cerramos,vamos a navicat - player - player y buscamos nuestro pj,en a columna map_index vemos k numero pone
cojemos ese numero y buscamos en el archivo index k descargamos antes(el codigo del castillo del reino,city1, es 181 )ok vemos k la carpeta asociada al codigo 181 es metin2_map_empirewar01 ok pues vamos a

Marca
]/usr/rain/channel/share_data/locale/hongkong/map/metin2_map_empirewar01

y buscamos un archivo llamado npc.txt , lo abrimos y vemos la siguiente sintaxis:


//°ø¼º¸Ê NPC
m 21 319 0 0 0 0 60s 100 1 9012
m 38 467 0 0 0 0 60s 100 1 9012
m 464 467 0 0 0 0 60s 100 1 9012


Lo sustituimos por este:


//type cx cy sx sy z dir time percent count vnum
// ±ºÁ÷ NPC
m 173 191 0 0 0 8 1m 100 1 20016
m 173 201 0 0 0 0 1m 100 1 11000
m 21 319 0 0 0 0 60s 100 1 9012
m 38 467 0 0 0 0 60s 100 1 9012
m 464 467 0 0 0 0 60s 100 1 9012


con este esamos dndo la orden k se añadan los npc 20016 y 11000 en las cordenadas marcadas (herrero y guardian de plaza)
Pues siguiendo este mismo metodo añadimos los npc k keramos,siguiendo las cordenadas deseadas.

Para probar todos los mapas nuevos por ejemplo la isal gm vamos a player y en map index ponemos 200 y en las cordenadas 700 y 700




Hacer que cualquier pj sea tienda

1) montamos el server
2)abrimos el navicap
3)vamos a mob_proto
4)vamos ala fila 20090 (sura femenino)
5)nos vamos al a derecha hsta on_click
6)cambiamos el 2 por un 1
7)vamos a la shop
8)buscamos el vnum 1001 k es all_sword
9)luego pone en npc_vnum 20090
10)desmontan el server
11)motan el server
12)entran al juego y invocan al mob 20090 le dais doble click y ya teneis su tienda



Aqui abajo de paso os dejo la guia que puse de como cambiarle los nombres a lo Npcs:


1-Despues de aver encendido el server, abrimos el navicat.

2-Le damos a Player.

3-Le damos a Mod-Proto.

4-Le damos a Hex (se situa en la parte de arriba de la ventana)

5-Buscamos el codigo del npc que queremos traducir, en este caso se traducira el herrero de city, su codigo es 20016.

6-Como le dimos en el paso 4 a Hex, en la columna gb2312name, abajo nos saldra su nombre en coreano y unos numeros, pues lo borramos todo y escribimos el nombre que queramos darle.

7-Para que nos salga el nombre también tendremos que poner el nombre en "name", la columna de al lado, asi pues nos quedara el mismo nombre en la columna "name" y "gb2312name".

8-Cerramos y reboteamos el server.


Y listo ya tenemos nuestro npc traducido, espero que les haya servido, no se si ya hay una guia de esto pero aun asi la pongo por si acaso

Os dejo aqui una foto del asunto:

Acercar (dimensiones reales: 749 x 660)Imagen






Como poner la npc verde y poner otros items en los vendedores?

1. Vamos al filezilla damos en archivo gestor de sitios
2. Damos click en Nuevo sitio en servidor ponemos la ip del hamachi terminada en 100 en puerto 22 en tipo de servidor SFTP SSH File Transfer Protocol en modo de acceso normal Usuario root Contraseña mcncc.com
3. Damos a Editar Luego a opciones donde dice tiempo de espera lo subimos a 1000 o mas xD esperamos que conecte
4. Luego vamos a usrsrainschannelsshare_dataslocaleshongkongsmap
ahi buskamos el mapa chunjo que sera map....B1
5. Abrimos el npc.txt Click derecho Ver/editar cuando cargue buscamos el value 20041 que sera el peaton lamentable que lo cambiaremos por esta npc
Nota: Para Poner los Npcs que son 9007 y 9008 que son otros vendedores de armas y armaduras les quitamos los // que salen unas lineas mas arriba tienen en la linea es decir sale m// quitamos esos slash y guardamos y ya quedan
6. Lo cambiamos por 9010si quieren ponerlo en unas coordenadas especificas lo ponen antes donde salen 3 numeros y un espacio y luego 3 numero de nuevo estan a la izquiera del 9010 aqui cerramos y le damos guardar
7. Vamos a filezilla y le damos si a reemplazar mientras tanto tenemos que hacer que funcione la npc (si no sabian viene blokeada)
8. vamos al navicat ahora a player y luego a mob_proto una vez en mob proto buskamos el 9010 buskamos la columna on click y la cambiamos por 1
9. cerramos y guardamos ahora agreguemos algo a esa npc pero primero tenemos que agregarla a las ids de npcs
10. abrimos la tabla shop una vez ahi agregamos otro record con el id que queramos ponerle a la npc
11. En npc_vnum ponemos 9010 en vnum ponemos el numero que queramos ahora cerramos y guardamos
12. Ahora vamos a la tabla shop_item ahi ponemos un nuevo record el shop_vnum ponemos el numero cualquiera que le pusimos en mi caso 11 item_vnum es el id del articulo le pondre las armor de emperador(11971) listo cerramos
Nota: la otra columna al lado del value del item que dice 1 es la cantidad del articulo asi como si fueran pociones ahi pondriamos 200y guardamos y reboteamos el server... ahora que ya esta reboteado vamos al juego y vamos a buskar la npc




Crea Tu Npc Personalizado

Bueno esto es para lo q quieran crear su npc personalizado
esto es mas para las sintaxis de los archivos

Empezamos:

Abrir su editor de texto (puede ser notepad o notepad++ xd) luego ir a File, y luego Save As.
Ponerle como nombre: christmas_santa.start
Then luego guardar o dale en save xd

Ahora crearemos lo q seria el script del npc (los codigos q hacen las funciones del npc (Prestar mucha atencion a los espacios)
say ( "Este es el texto q aparecera al clickear al NPC" )

local s = select ( "opcion 1" , "opcion 2" ) Puedes ponerle cuantas opciones tu quieras

if s == 1 then ( corre la primera opc ) (osea q si eligen la primera opc, correra esto)

if s == 2 then ( corre la segunda opc ) (lo mismo q arriba xD)

Luego de completar cada funcion y/o opcion, pones al final end

Algunos ejemplo de funciones

horse.is_dead () Mata al caballo al clickear la NPC (rara funcion xD)
horse.is_mine Ni la menor idea xD
horse.is_riding () te monta al caballo al darle click al npc
horse.revive () Resusita al caballo muerto
horse.ride () Te sube al caballo
horse.set_level () Te pone lvl de caballo, por ejemplo: 30 = militar
horse.summon () Aparece el caballo
horse.unride () Te baja del caballo
horse.unsummon () Guarda el caballo


if pc. gold> = 250000 then
pc. changegold (- 250,000)
Esta funcion te quita 250,000 Yang

pc. changegold (250,000)
Esta funcion te da 250,000 Yang

pc. give_item2 (value object)
esta funcion te da cualquier objeto q se le ponga

[ENTER]
Si quieres q en la funcion (say) te imprima otra linea, usa [ENTER]

else
Usado cuando el personaje no cumple algun requisito
Por ejemplo cuando no tiene yang



Aquí os dejo tmbn todas las funciones que puede tener un NPC:



__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 ()
affect.remove_collect ()





Category: Tutorials | Added by: Malone
Views: 1542 | Downloads: 0 | Rating: 0.0/0
Total comments: 0
Only registered users can add comments.
[ Sign Up | Login ]