Jump to content

Kompulsor

Miembro
  • Contador contenido

    6
  • Ingreso

  • Última visita

  • Días ganados

    1

Actividad de reputación

  1. Me Gusta
    Kompulsor reacted to PACI in [Guia] Actualiza tu cliente   
    Hola.
    Hay gente que aún usa (tanto en cliente, como en servidor) cosas viejas, os traigo esta guia para que podáis "actualizar" vuestro cliente, y ya de paso vuestros cores para una versión más estable, y menos.. digamos peligrosa, aunque no es la palabra correcta.
     
    Desde hace ya mucho tiempo, tenemos disponible los binarios cuya revisión es la 34xxx o superior, aunque, desde que han salido, veo aún mucha gente de la comunidad hispana de metin2 usando los binarios viejos, o porque no saben hacerlo, o porque no quieren arriesgarse.
     
    Yo personalmente os recomiendo, ante todo, que actualicéis todo lo vuestro.
     
     
    Qué hay que cambiar para usar un binário >= 34k y <= 36k ?
    Los cambios para usar un binario entre 34k y 36k son muy simples, y no muy dificiles de hacer.
    Lo primero es cambiar vuestro game y db, os recomiendo la revisión 34083 y 33820 (game y db, respectivamente) para evitar errores de packets, y también para usar un game mucho mejor que del 2089M para abajo.
     
    Al cambiar la versión de la db para la 33820, las tablas item_proto y mob_proto dejan de ser utilizadas, aunque podeis usar esta librería de
    Debes iniciar sesión para ver el contenido del enlace en esta publicación. para volver a utilizar las tablas en vez de archivos *.txt: Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
    La parte del cliente es muy sencilla, solo tenéis que extraer vuestro cliente entero, y, donde el *.xml buscamos todos los type="2" y los reemplazamos por type="1". Si usais EterNexus, que es un extractor que no crea el *.xml, solo tenéis que extraer todo el cliente, y volver a compilarlo.
     
    En el uitooltip.py del root, deberéis cambiar esto:
     
    item.APPLY_DEF_GRADEitem.APPLY_ATT_GRADE  
    Por:
     
     
    item.APPLY_DEF_GRADE_BONUSitem.APPLY_ATT_GRADE_BONUS  
     
     
    Con la salida de las revisiones 40k y con la salida del source, la mayoría de la gente dejó ya de usar las versiones anteriores a esta para compilar una propria modificandolo a nuestro gusto, como yo y muchos otros, o usar el famoso bin 28k con el game 40250.
     
     
    Qué hay que cambiar para usar un game r40k ?
    Además de la db, game, y la adición de los *.txt (item_proto.txt, item_names.txt, mob_proto.txt, mob_names.txt), debereís hacer bastantes cambios a nível de cliente.
     
    Lo primero es cambiar el nombre de vuestro locale.py para localeinfo.py. En los demás archivos de root, debereis cambiar todos los import que se hagan al locale y todas las cosas que llamen ese archivo.
     
    Ejemplo:
     
    import locale -> import localeInfolocale. -> localeInfo. NO CONFUNDIR CON uiScriptLocale!!  
    Después de esto hay que cambiar todos los archivos de la carpeta lib y la python22.dll/python27.dll (depende del tipo de binario que tengáis)
     
     
    Y eso es todo, por lo menos lo que yo hice para usar las cosas del source.
     
    Saludos y suerte.
  2. Me Gusta
    Kompulsor reacted to PACI in [PEDIDO] Quest de leveo por pvp   
    --[[needed functions: npc.get_vid() -> Debes iniciar sesión para ver el contenido del enlace en esta publicación. pvplevelup begin state start begin when kill begin -- 1 if not npc.is_pc() and pc.level >= 150 then -- killing mobs pc.give_exp2(-pc.get_exp()) end -- 5 local canContinue = true local mapdict = {idx1, idx2, idx3, idx4, idx5, idx6} -- levelup map indexes for _, v in ipairs(mapdict) do if pc.get_map_index() == v then canContinue = false break end end if pc.level >= 170 or canContinue == false then return end if npc.is_pc() then -- killing other players -- 4 local oppvid = pc.select(npc.get_vid()) local opplvl, oppid = 0, 0 if oppvid == 0 then return end opplvl, oppid = pc.level, pc.get_player_id() pc.select(oppvid) if opplvl < 90 or get_time() < pc.getqf("delay") then return end -- 2 local expvalue = tonumber(pc.getqf("killed_id") ~= oppid and 200000000 or 200000000/pc.getqf("killcount")+1) pc.setqf("killed_id", oppid) pc.setqf("killcount", tonumber(pc.getqf("killcount") == 2 and 0 or pc.getqf("killcount")+1)) pc.setqf("delay", get_time()+60*5) pc.give_exp2(expvalue) end end endend
  3. Me Gusta
    Kompulsor reacted to Da Vinci in [GAME] Compilar source del game (mainline_released)   
    - Descargar el vdi Debes iniciar sesión para ver el contenido del enlace en esta publicación. 
     
    - lo montáis y os metéis (user: root pass: dev)
     
    - Abrís el ftp y editáis el "Makefile" de /usr/src/mainline_released/mainline_sg/Srcs/Server/game/src
     
    - en SVN_VERSION ponéis como queréis que se llame vuestra versión
    SVN_VERSION = 123456 - buscáis esto
    $(OBJDIR)/version.o: version.cpp @$(CC) $(CFLAGS) -D__USER__="$(USER)" -D__HOSTNAME__="$(HOSTNAME)" -D__PWD__="$(PWD)" -D__P4_VERSION__="$(P4_VERSION)" -c $< -o $@ @echo compile $< lo cambiáis por
    $(OBJDIR)/version.o: version.cpp @$(CC) $(CFLAGS) -D__P4_VERSION__="$(SVN_VERSION)" -c $< -o $@ @echo compile $< añadís debajo de
    LIBDIR += -L/usr/local/lib esto
    LIBDIR += -L/usr/local/lib/mysql - Dentro de /usr/src/mainline_released/mainline_sg/Srcs/Server/game/src editáis el archivo "version.cpp" borrando lo que hay por
    #include <stdio.h> void WriteVersion(){#ifndef __WIN32__ FILE* fp = fopen("VERSION.txt", "w"); if (fp) { fprintf(fp, "game revision: 123456n"); fclose(fp); }#endif} - Volvemos a la consola y ponemos:
    cd /usr/src/mainline_released/mainline_sg/Srcs/Server/game/srcgmake -j20 (Ultimo y más dificil) - Esperar a que se compile
     
    esta es la base del source que tomó vanilla
     
    Grifo: piecemeal search in m2dev
  4. Me Gusta
    Kompulsor reacted to pepineitor in [SYSEER]Error de Dungeon flag   
    Antes de cualquier comprobación tipo

    pc.get_map_index() >= (id)*10000 and pc.get_map_index() < (id2)*10000, d.getf("variable")Debes de poner  

    pc.in_dungeon()Un saludo
  5. Me Gusta
    Kompulsor reacted to Akroma in Modo Zombis   
    Buenas foreros de Zone, me doy el honor de estrenar esta seccion junto a keko, conforme que aqui os traigo mi modo Zombis.
     
    Os estareis preguntando:
     
    -En que consiste esto akroma?
    Senzillo amigos, vosotros partireis de la ronda 1, en 1 mapa con mobs, cada 5 rondas os dropeara 1 cofre i os teletransportara a otra zona del mapa, el cofre solo podra abrirse mientras la dungeon este activa, una vez tengais el cofre, y lo abrais os dropeara 1 arma, armadura, o lo que sea al azar para vuestra raza, en el momento en el que murais os llevaria a city i quedaria anulada la subida para ese jugador, recomiendo ir en grupo, para que sea mas ameno.
     
    Si completais las 45 rondas, podreis llevaros las cosas dropeadas del cofre, y los cofres si decidieseis no abrirlos.
     
    Esta testeada i funciona perfectamente.
     
    PD: Podeis hacer 1 ranking mysql para ella si quereis para tener 1 ranking de maximos jugadores de ronda maxima.
     
    Aqui os la dejo.
     
     
     
     
    Link pastebin
    Debes iniciar sesión para ver el contenido del enlace en esta publicación. Te lo puse yo (rafa23alzira) si te molesta dímelo y lo quito.
  6. Me Gusta
    Kompulsor reacted to KeKo in [Minicurso] MySQL en quest   
    Al final la hiciste :raisins:
     
    Muy buena guia, mezclando mysql con quest se pueden hacer un monton de cosas útiles y gracias a tu minicurso sera mucho mas facil para muchos
  7. Me Gusta
    Kompulsor reacted to Yori in Nueva función: multiple_countitem   
    Está wena esa funcion para hacer alguna quest del tipo de pedir una cantidad grande de items distintos que pueden ser admitidos para una quest, pero entonces me surge una duda? que funcion te quita los items para entregarlos en la quest?
     
     
    function multiple_removeitem(array,x)
     
    Lo demas siguelo tu, que yo no llego a tanto xD
    Wena funcion
     
    Saludos!!
  8. Me Gusta
    Kompulsor reacted to KeKo in Capitulo VII - El uso del pc.setqf y pc.getqf   
    Buenas zoneros y zoneras, aqui estoi de nuevo con una nueva leccion del curso de creacion de quests dedicada a mi colega akroma y a sema que tenen problemillas con los qfs
     
    Pc.setqf, pc.getqf... pc.set... pc.geee.... De que estabamos hablando?
     
    Uno de los comandos que mas utilizareis cuando os esteis haciendo/revisando quests serán los famosos:
     

    pc.setqf pc.getqf Para explicaros como funcionan estos tan problematicos comandos recurrire de nuevo al bonito simil que utilice cuando mi buen amigo Jordan me pidio una explicacion sencilla para entender de una vez estos comandos. Antes de hacerlo, quiero recordaros un dato muy importante: estos dos comandos llevan pc.algo así que tened muy en mente que afectan siempre a un jugador, que es el que active el qf en la quest y NO ningun otro.
     
    Bien, ahora pensad en un posit (esas notitas de colores que puedes pegar donde quieras) y pensad en una pared en la que podemos pegar nuestro posit. Ahora convirtamos esto a lua, nuestro posit es el pc.setqf y el pc.getqf y nuestra pared es el jugador que activara el qf.
     
    Que narices tiene que ver un posit en todo esto keko?
     
    Esta claro que en lua no hay posits, pero lo que busco con esta comparacion es que pilleis el concepto del qf. Bueno volvamos a donde lo dejamos: tenemos nuestro pj al que le queremos pegar un posit (es decir ponerle un qf) así que cojemos un boli y pensamos algo que poner en nuestro posit, es decir, pensamos que valor le vamos a dar al qf si pensamos en lua.
     
    Una vez ya lo hemos pensando, escribimos lo que queriamos y lo pegamos en la pared, lo que en lua corresponderia con darle un valor al qf y asignarselo al personaje.
     
    Pero esto no se para aquí, para que sirve un posit? Para acordarnos de algo!! Por lo tanto si seguimos con la comparacion al lua, habra veces que necesitemos comprobar que valor tiene nuestro qf para hacer condiciones con el. Además, si queremos cambiar lo que pone el posit, simplemente lo tachamos y ponemos otra cosa; en lua también podemos modificar el valor que tiene el qf de nuestro personaje.
     
    No me he enterao de una mierda , que hago con el posit?
     
    Aver, eso fue una comparación, para los que aun esteis buscando un boli pa escribir algo en el posit os haré un resumen de todo lo que os he estado intentando explicar hasta ahora:
     
    El comando pc.setqf nos permite asignar un determinado valor a un personaje de modo que podamos usar el comando pc.getqf para crear condiciones que impliquen que el personaje tenga ese valor concreto para activarse.
     
    Bueno, ahoara que ya lo he explicado en plan posit y en plan redactado vamos a profundizar un poquito en el uso de estos dos comandos.
     
    Ummm, como decias que le asignaba el valor a eso?
     
    Pues es muy sencillo, lo primero es distinguir entre:
     

    pc.setqf
    pc.getqf El pc.setqf siempre se usará para ASIGNAR un valor, mientras que el pc.getqf se encargará de CHEQUEAR cuál es el valor que tiene el qf que hemos puesto con el setqf.
     
    Bien, una vez sabemos esto procederé a explicaros cual es la sintaxis de un pc.setqf:
     

    pc.setqf("nombredelqf", valor) Del que seria un ejemplo este:
     

    pc.setqf("kekomola", 5) En este caso el jugador tendra asignado el valor "kekomola" con una cantidad igual a 5. El nombre que tenga el qf es el que vosotros querais!
     
    Me gustaria discernir entre dos tipos de setqfs:
     

    pc.setqf("kekomola", 2) pc.setqf("kekomola", pc.getqf("kekomola") + 1) El primero de ellos es un setqf que se utiliza cuando la cantidad que le vamos a dar al valor es fija, mientras que el segundo se utliza cuando la cantidad va a ir aumentando cada vez que utilicemos el setqf.
     
    Por lo tanto, en el primer caso siempre que activemos esa parte de la quest el valor kekomola sera igual a 2. Sin embargo, cada vez que activemos el segundo caso el valor kekomola irá aumentando en 1 (es decir la primera vez que lo usemos la cantidad sera 1, lo volveremos a usar y sera 2, luego 3, etc).
     
    Y por no faltar ahora os explicaré la sintaxis del pc.getqf: como este comando solo se utiliza en condiciones (ya que su funcion es la de chequear) no tiene la misma sintaxis que el setqf:
     

    if pc.getqf("kekomola") == 5 then Este comando lo usareis combinado con el estructurador if, por lo que ira escrito el pc.getqf("nombre") y luego el doble simbolo de igualdad (tipico de las comparaciones) y la cantidad del valor.
     
    Vale ya se asignar valores, ahora de que me sirve esto?
     
    Pues los setqf son unos de los comandos mas utilizados en las quests ya que permiten crear condiciones que van cambiando segun lo que va haciendo el personaje. Veamos un ejemplo:
     

    quest item begin state start begin when 70045.use begin pc.setqf("buenas", pc.getqf("buenas") + 1) if pc.getqf("buenas") == 1 then chat("buenas") elseif pc.getqf("buenas") == 2 then chat("que tal") elseif pc.getqf("buenas") >= 3 then chat("me aburro") end end end end En esta cada vez que usas el item te auemnta en 1 el qf:
     

    pc.setqf("buenas", pc.getqf("buenas") + 1) Por lo tanto ponemos una condicion para diferentes del mismo:
     

    if pc.getqf("buenas") == 1 then elseif pc.getqf("buenas") == 2 then elseif pc.getqf("buenas") >= 3 then De ese modo, dependiendo de cuantas veces hayamos usado el item dira algo diferente cada vez.
     
    Subamos la dificultad, convirtamos funciones en qfs:
     
    Bien, ahora que habeis visto un ejemplo de los qfs me toca enseñaros un paso mas, que seria utilizar funciones que recojen un dato del personaje y asignar el valor de ese dato a un qf. Para ello haremos lo siguiente:
     

    quest prueba begin state start begin when 70044.use begin local cabanivel = horse.get_level() pc.setqf("nivelcaballo", cabanivel) chat("El nivel de tu caballo se ha guardado") end end end Puede que a alguno le suene eso, ya que es la base del sistema de mascotas que cuando le das a control+h se sube al caballo en vez de subirse a la mascota. Pero lo importante para nuestra explicacion es el hecho de que si creamos un local que recoja un dato mediante una funcion:
     

    local cabanivel = horse.get_level() Luego podemos asingar ese valor al qf:
     

    pc.setqf("nivelcaballo", cabanivel) Entonces vamos a seguir desarrolando esa mini quest de sistema de mascotas, metiendo mas qfs:
     

    quest prueba begin state start begin when 70044.use begin if pc.getqf("keko") == 0 then local cabanivel = horse.get_level() pc.setqf("nivelcaballo", cabanivel) pc.setqf("keko", 1) horse.set_level("22") horse.unsummon() horse.summon() chat("Acabas de invocar a tu mascota") return end local volvernivel = pc.getqf("nivelcaballo") horse.set_level(volvernivel) pc.setqf("keko", 0) horse.unsummon() chat("Acabas de guardar tu mascota") end end end Bien, que ha pasado aqui? Pues varias cosas la verdad, vayamos de una en una:
     

    if pc.getqf("keko") == 0 then Aqui ponemos una condicion de que este qf sea igual y a 0, es decir, que aun no hayas usado nunca el item ya que cuando lo uses pondras cantidad 1 a ese valor:
     

    pc.setqf("keko", 1) Ahora como ya has usado el item el qf se ha vuelto 1, por lo que si vuelves a usar el item ya no estaras cumpliendo la condicion de que sea igual a 0, y la otra parte de la condicion (lo que va despues del return+end) se activa. Una vez se activo eso volvemos a poner cantidad 0 al qf:
     

    pc.setqf("keko", 0) Por lo tanto os habreis dado cuenta de que este objeto va alternando dos cosas: lo usas una vez y hace la primera, lo usas otra vez y hace la segunda, lo usas una tercera y vuelve a la primera y así constantemente.
     
    Además, aqui tambien hemos jugado con el nivel del caballo:
     

    local cabanivel = horse.get_level() pc.setqf("nivelcaballo", cabanivel) Primero miramos cual es con el local, y luego se lo asignamos al qf. Una vez asignado lo cambiamos con el comando horse.set_level e invocamos la mascota. Pero que pasa cuando guardamos la mascota? Queremos que el caballo vuelva a estar a su nivel, asi que hacemos lo siguiente: como ya tenemos nuestro qf con el nivel del caballo antes de cambiarlo, cogemos el valor de ese qf y lo convertimos en un local que luego damos de valor al horse.set_level
     

    local volvernivel = pc.getqf("nivelcaballo") horse.set_level(volvernivel) Vale, pues a otra cosa no?
     
    Ahora que ya entendeis como mezclar una funcion que recoje datos con un qf ya solo me quedaria explicaros como podeis hacer para mostrar la cantidad de un qf en una quest:
     

    quest muertes begin state start begin when kill with not npc.is_pc() begin pc.setqf("mobs", pc.getqf("mobs) + 1") chat("LLevas "..pc.getqf("mobs").." matados en tu juego") end end end Esta sencilla quest lo que hace es que cada vez que matas un mob suma un punto al qf mobs, y ademas por el chat te muestra cuantos puntos lleva ese qf:
     

    "..pc.getqf("mobs").." Para ello lo mete entre ".. .." como cuando os enseñé a mostrar el valor de un local en una quest.
     
    Por supuesto no tenemos xq mostrar el valor del qf en el mismo when ni en la misma quest que en la que le damos un valor, ya que el juego almacena para siempre el valor que tiene un qf.
     

    quest muertes begin state start begin when kill with not npc.is_pc() begin pc.setqf("mobs", pc.getqf("mobs") + 1) end when 20094.chat."Mobs" begin say("LLevas "..pc.getqf("mobs").." derrotados") end end end Y bueno eso es todo, espero que os haya sido útil este capítulo para todos aquellos que teniais dudas utilizando los pc.setqf y pc.getqf
  9. Me Gusta
    Kompulsor reacted to KeKo in Nuevo subforo: Creacion de quests   
    Hola a todos, como os habreis fijado hay un nuevo subforo dentro de la seccion quests.
     
    Este nuevo subforo es una iniciativa de ElRaulxX y mia (KeKo) en el que haremos un curso de creacion de quests para que todos podais aprender sobre el lenguaje lua, que (modificado para metin2) es el que se usa en la quests, y que podais editar, entender y crear quests.
     
    El curso se compondrá de una serie de capítulos en los que raul y yo os iremos desentrañando los interesantes misterios del mundo de las quest de metin2 :acepted:
     
    Dentro de poco publicaremos el primer capítulo del curso, y esperamos que a todos os guste el nuevo subforo y os sea útil.
     
    Un saludo, raul y keko.
  10. Me Gusta
    Kompulsor reacted to Croqueta in Funciones de Quests 90% de todos [español]   
    disculpanme por mi espanol, no e escrito mas que 11 anos :DD
    en espanol y para todos una data para cargar
     

    item.get_cell() no se tiene que escribir nada en las parentesis Beschreibung: -- gibt bei take und use das Aktuell benutzte Item aus. esplicasion: --para el "take" y "use" de el actual item volver: false wenn ein fehler aufgetreten ist ansonsten die Zellennumer im Inventar quando es false tienes que escojer un lugar del invantario item.select_cell(slot) selectiona el slot de el inventario esplicasion: --selectiona el item y ase que los comandos lo selectiona revolver: Boolean item.get_socket(socketid) sockel nummemero 0 asta 2 sockel0 hueco1 , sockel1 hueco2 ... asta 3 esplicasion: -- esa funcion qiere desir que te da el "id" del item que esta en el hueco revolver: false o el vnum del item item.remove(void) no se tiene que escribir nada en las parentesis esplicasion: -- borra el item selectionado revolver: nada item.get_id(void) no se tiene que escribir nada en las parentesis esplicasion: -- te da el id del item selectionado revolve: false o el id del item item.select(itemid) en las parentesis da el ID del item esplicasion: -- selectiona el item con el id y ase que los comandos lo selectiona revolve: Boolean item.get_count(void) no se tiene que escribir nada en las parentesis esplicasion: -- cuenta la cantidad de el selectionado item como 50 perlas revuelve: false o count item.get_level(void) no se tiene que escribir nada en las parentesis esplicasion: --te pregunta si el item es arma+1=1 devolver: +0= 0; +1=1 item.get_name(void) no se tiene que escribir nada en las parentesis revolver: nombre del item selectionado item.get_refine_vnum(void) no se tiene que escribir nada en las parentesis revolver: refined_vnum del item selectionado item.get_size(void) no se tiene que escribir nada en las parentesis revolver: tamaño del item selectionado -> en la database size item.get_sub_type(void) no se tiene que escribir nada en las parentesis revolver: subtype del item selectionado item.get_type(void) no se tiene que escribir nada en las parentesis revolver: type del item selectionado item.get_value(value) no se tiene que escribir nada en las parentesis revolver: el valor del item selectionado (value= value1 -> value5) item.get_vnum(void) no se tiene que escribir nada en las parentesis revolver: el vnum del item selectionado item.has_flag(flag) valor: flag esplicasion: -- chequa qual flag el item tiene revolver: Boolean item.set_socket(socketnum, value) valor: el numero del hueco y el valor que se qiera poner esplicasion: -- se pone en el hueco un item del selectionado item (sockelnum max =2) game.drop_item_with_ownership(item_vnum, anzahl) esplicasion: -- soltar objetos con su nombre ariba(el nombre se ve 10 segundos) game.drop_item(item_vnum, anzahl) esplicasion: -- solta un item __give_char_priv(rate_type, rate) esplicasion: -- le da el jugador selectionado un Bonus como yang, exp, caer objetos o yangbombas valor: rate_type = 1 asta 4 (YANG, DROP, YANGBOMB, EXP) rate= valor __get_empire_priv_string() esplicasion: -- le pregunta el actual bunus de un mondo en un string __give_empire_prive(empire, rate_type, rate, time) -- le da un mundo un bonus esplicasion: -- le da a 1 o a todo los mundos un bonus valor: rate_type= 1-4 (DROP, GOLD_DROP,TEN_GOLD_DROP, EXP) empire= 0-3 ; 0= todos los mundos __getnpcid(npc_name) esplicasion: -- te da el ID del npc si escribes el valor del npc is_test_server() esplicasion: -- te pregunta con un boolenvalor si es un testserver o no kill_all_in_map(mapindex) esplicasion: -- mata a todos los npc y monstros en la mapa puede ser que jugadores tambien valor: mapindex de la mapa bool_to_str() esplicasion: --transforma el boolinvalor en un string (si o no)("true" o "false") cmdchat(clientCMD) esplicasion: -- manda un comando en el chat channel del cliento se usa para abrir una tienda o para desir si el item fallo o esas cosas Wird genutzt für Sachen wie das öffnen eines Privaten Ladens oder die Meldungen beim Uppen command(cmd) esplicasion: -- como el comando "/" jugadores no pueden usar todos enable_over9refine(int, int) esplicasion: -- / valor: / regen_in_map(mapindex, path) esplicasion: -- carga la data de regen con el path y activa la en la mapindex de la mapa say_in_map(mapindex, text) esplicasion: -- como say pereo solo en la mapindex de la mapa (todos que esta en la mapa lo puede leer) set_quest_state(questname, state) esplicasion: -- pone en la quest un state y la activa(la quest con el nombre comienza) set_skin(skin_type) esplicasion: -- pone el estilo de la quest (como se ve en el juego) syschat(text) esplicasion: -- el texto que escribes se ve en el metin2 ventana para el jugador syserr(text) esplicasion: -- escribe en el chat algo falso de la quest si es un test_server time_to_str() esplicasion: -- da el actual tiempo en un string warp_all_to_village(mapindex, time) esplicasion: -- teleporta todo los jugadores en su mapa1 con el mapindex -- timer: da el tiempo que necesita para teleportar warp_to_village() esplicasion: -- teleporta el actual jugador en su mapa1 affect.add(applytype, applyvalue, time) esplicasion: -- te da un affect con el tipo 1000 asi se puede dar mas affect -- applytype son de 1 a 80 (los bonus ID) affect.remove() esplicasion: -- borra los affext type (223 no se puede borrar) Tip:210 = GM Stun 211 = GM Slow 203 = invisible 223 = chatbloc 500 asta 509 = EXP Bonus ... 514 = cabello 532 = caballo affect.remove_all_collect() esplicasion: -- borra todos los affect= bio quest affect affect.remove_bad() esplicasion: -- borra todos los negativos efectos como beneo, quemar ... affect.remove_good() esplicasion: --borry todos los positivos effectos como los buffs affect.remove_hair() esplicasion: -- borra el cabello building.get_land_id() -- te da el Id de el reino building.get_land_info() -- te da informasion de el reino building.has_land() -- tiene reino 0 o 1? building.set_land_owner() -- se pone el senor del reino char_log() -- escribe algo en el log tablo? clear_server_timer() -- borra el tiempo del server clearmapsignal() -- borra el punto de la map cleartimer() -- borrar el timer color(r,g,b) -- color rgb complete_quest() -- cierra la quest complete_quest_state() -- complete sate confirm() -- confirmar si no? sys_log() -- escribe algo en el system log? d.check_eliminated() -- controla si todos los monstros estan eliminados solo en los dungeons. d.clear_regen() -- para los respawns en los dungeons. d.count_monster() -- cuenta los monstros en el dungeon d.exit() -- jugador sale del dungeon d.exit_all() -- todos los jugadores salen del dungeon d.exit_all_to_start_position() -- todos enpiezan de start d.get_kill_mob_count() -- te da un numero de los eliminados monstros en el dungeon d.get_kill_stone_count() -- te da un numero de los eliminados metins en el dungeon d.get_map_index() -- Dungeon Map Index d.getf() -- Dungeon Flag d.is_unique_dead() -- se murio algien? d.is_use_potion() -- uso uno un pott? d.join() -- entrar un gruppo en el dungeon d.jump_all() -- teleportart todos a un punto de el Dungeon d.jump_all_local() -- teleporta todos local en el dungeon d.kill_unique() -- murio solo uno? d.new_jump() -- nuevo Warp d.new_jump_all() -- todos los jugadores teleportan de nuevo. d.purge() -- borrar todos los monstros en el dungeon como(/purge) d.purge_unique() -- uno o unos monstros borrarlo en el dungeon d.regen_file() -- cargar el regen file de monstros del dungeon d.revived() -- revivido d.select() -- selectionar el dungeon d.set_dest() -- pone un fin al dungeon d.set_exit_all_at_eliminate() -- cuando un enemigo murio todos salen del dungeon d.set_regen_file() -- pone el regen file del dungeon d.set_unique() -- pone solo uno en el Dungeon d.set_warp_at_eliminate() -- teleporta cuando enemigo murio d.setf() -- pone a el dungeon una flag d.spawn() -- llama un monstro en el dungeon d.spawn_goto_mob() -- llama un monstro en el dungeon y te teleportas donde el esta d.spawn_group() -- llama un grupo en el dungeon d.spawn_mob() -- llama un mostro en el grupo d.spawn_move_group() -- llama un grupo y move? d.spawn_move_unique() -- llama un monstro y move? d.spawn_name_mob() -- llama un monstro con nombre? d.spawn_stone_door() -- llama una puerta de piedra d.spawn_unique() -- llama uno d.spawn_wooden_door() -- llama una puerta de madera d.unique_get_hp_perc() -- te da el nombre de un monstro o jugador no se d.unique_set_def_grade() -- poner la defensa de un monstro o jugador d.unique_set_hp() -- poner la vida de un monstro o jugador no se d.unique_set_maxhp() -- poner maximal vida de un monstro o jugador no se delay() -- esperar find_npc_by_vnum() -- buscar un npc con el vnum find_pc_by_name() -- burca un jugador con el nombre find_pc_cond() -- buscar un jugador que tiene la condicion game.drop_item() -- soltar objetos game.get_event_flag() -- preguntas por el event_flag game.get_guild_name() -- preguntas por el nombre de gremio game.get_safebox_level() -- preguntas por el tamano de eö almacen game.get_warp_guild_war_list() -- te da la lista de gremio guerra game.open_mall() -- abrir el itemshop almacen game.open_safebox() -- abrir el almacen game.request_make_guild() -- te pregunta die qieres aser un gremio game.set_event_flag() -- pone el event_flag game.set_safebox_level() -- poner el tamano del almacen get_global_time() -- pone el global timepo get_locale() -- te da la selectionada locale get_server_timer_arg() -- te da el servertimer get_time() -- te da el tiempo guild.around_ranking_string() -- te da el guild ranking en uns string guild.get_any_war() -- te da todos los gremios que estan en guerra guild.get_ladder_point() -- te da los puntos del lider guild.get_name() -- te da el nombre del gremio guild.get_rank() -- te da el rank del gremio guild.get_reserve_war_table() -- lista de guerra guild.get_warp_war_list() -- liste de guerra warplist guild.high_ranking_string() -- Highscore al String (gremio) guild.is_bet() -- se aposto al el gremio? guild.is_war() -- preguntar si el gremio entra en guerra guild.level() -- pregunta qual nivel el gremio tiene guild.name() -- te da el nombre del gremio guild.war_bet() -- posta al gremio de guerra guild.war_enter() -- entrar en guerra con el gremio horse.advance() -- poner el caballo 1 lvlup horse.feed() -- darle el caballo algo de comer horse.get_grade() -- darle el rank del caballo horse.get_health() -- darle vida a el caballo horse.get_health_pct() -- vida de caballo en por cineto horse.get_hp() -- te da la vida de el caballo horse.get_level() -- te da el nivel del caballo horse.get_stamina() -- te da el sp del caballo (resistencia) horse.get_stamina_pct() -- t da el sp del caballo en por ciento horse.is_dead() -- el caballo esta muerto? horse.is_mine -- es mi caballo horse.is_riding() -- estoi ariba del caballo horse.revive() -- revivir el caballo horse.ride() -- monatar el caballo horse.set_level() -- poner el nivel de el caballo horse.summon() -- llamar el caballo horse.unride() -- decmontarse del caballo horse.unsummon() -- retirar el caballo input() -- input donde puedes escribir algo is_test_server() -- te pregunta soe es un testserver loop_timer() -- Loop Timer npc.is_quest() -- pregunta si un npc esta usado en una quest pc.change_gold() -- cambiar el yang pc.change_money() -- cambiar el yang pc.change_sp() -- cambiar el sp pc.changealignment() -- cambiar el rango pc.changegold() -- cambiar el yang pc.changemoney() -- cambiar el yang pc.clear_skill() -- borrar habilidad pc.clear_sub_skill() -- borrar sub habilidad pc.clear_one_skill() -- borrar una habilidad pc.count_item() -- contar un item del jugador pc.countitem()-- contar un item del jugador pc.delqf() -- borrar lo que esta en la quest tabale pc.destroy_guild() -- borrar el gremio pc.enough_inventory() -- controla si en el inventario ai espacio pc.forget_my_attacker() -- el monstro no te ataquea pc.get_armor() -- te da la armadura que usas pc.get_empire() -- te da el mundo en que estas pc.get_equip_refine_level() pc.get_exp() -- el exp que tienes en momento pc.get_gold() -- el yang que tienes en momento pc.get_guild() -- el gremio que estas en momento pc.get_horse_level() -- el nivel de tu caballo pc.get_hp() -- la vida que tienes en momento pc.get_job() -- tu categoria ninja, sura... pc.get_leadership() -- el lider pc.get_level() -- el nivel que tienes en momento pc.get_local_x() -- tu coordinacion x pc.get_local_y() -- tu coordinacion y pc.get_map_index() -- map index pc.get_max_hp() -- max hp del jugador pc.get_max_sp() -- max sp del jugador pc.get_money() -- el exp del jugador en momento pc.get_name() -- nombre del jugador pc.get_next_exp() -- cuanto exp para lvl up pc.get_part() pc.get_playtime() -- tiempo del jugador pc.get_sex() -- sexo del jugador pc.get_skill_level() -- habilidad nivel pc.get_sp() -- sp del jugador en momento pc.get_start_location() pc.get_vid() pc.get_war_map() pc.get_weapon() -- arma del jugador 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)-- te da el rango revuelvo pc.give_item2(vnum) -- le das un item (vnum) pc.give_item_from_special_item_group(is_item?) pc.give_lotto() pc.has_guild() -- es en un gremio si(1)o no(0) pc.has_master_skill() -- tienes algo en M1 si(1) o no(0) pc.hasguild() -- es en un gremio si(1)o no(0) pc.have_map_scroll() pc.have_pos_scroll() pc.in_dungeon() -- es en un dungeon si(1) o no(0) pc.is_guild_master() -- es el lider del gremio si(1) o no (2) pc.is_horse_alive() -- el caballo bive si(1) o no(0) pc.is_married() -- esta casado si(1) o no(0) pc.is_mount() -- esta monteado pc.is_polymorphed() -- transformado si(1) o no(0) pc.isguildmaster() -- es el lider del gremio si(1) o no (2) pc.mount(vnum,time) -- montar al caballo (vnum, tiempo) 60*60*24*.. (segundos*minutos*horas*dias*semanas*meses*anos) pc.pc_attract_ranger() -- distancia pc.polymorph(mob_vnum) -- transformar el jugador pc.refine_equip() -- mejorar el objectivo pc.remove_from_guild() -- borrar un jugador de gremio pc.remove_item(item_vnum) -- borrar un item del inventario pc.remove_polymorph() -- revolver la transformasion pc.removeitem() -- borrar un item del inventario pc.reset_point() -- borrar puntos de status? pc.revive_horse() -- revivir el caballo pc.select() -- selectional pc.set_part() -- poner un part como cabello pc.set_warp_location() pc.set_warp_location_local() pc.setf() -- lo mismo como setqf pc.setqf(name,value) pc.set_skill_group() --cambiar la clasificion pc.set_skill_level() -- cambiar la nivel de habilidad pc.unmount() -- demontarse pc.warp() -- teleportarse pc.warp_exit() -- teleportarse para salida pc.warp_local() -- teleportarse local como Tele-Hack pc.warp_to_guild_war_observer_position() -- teleportarse para el npc de gremio pc.is_clear_skill_group() pc_find_skill_teacher_vid() -- clasicasion de maestro pc_find_square_guard_vid() pc_get_exp_bonus() --te da el exp bonus pc_get_village_map_index() -- te da el mapindex de mapa1 pc_is_novice() -- si el jugador es principante no mas que 15 y no menos que 5 raw_script() restart_quest() -- se pone el state de la quest a start say() -- simple [sAY] say_npc_name() -- dise el nombre del npc say_pc_name() -- dise el normbre del jugador say_reward() -- dise un texto en rojo say_title() -- dise el titulo say_item() -- dise el nombre del item say_item_vnum()--ensena el item con imagine select() -- para selectionar optiones target.clear() target.delete() target.id() target.npc() target.pc() target.pos() target.vid() test_chat() time_hour_to_sec() time_min_to_sec() type() pc.is_engaged() -- esta el jugador casado string.format() pc.is_gm() -- es el jugador un gm si(1) no (2) pc.get_gm_level() -- qual nivel tiene el gm implemen.. pc.get_alignment() -- cambia el rango del jugador pc.get_real_alignment() -- cambia el rango a normal pc.learn_grand_master_skill() -- poner la habilidad a G1 o P (sube siempre a 1) pc.is_skill_book_no_delay() -- si el jugador uso una exxo si(1) no(2) pc.remove_skill_book_no_delay() -- borra el efecto de exxo

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
×
×
  • Crear nuevo...