Jump to content

-YC-

Miembro
  • Contador contenido

    274
  • Ingreso

  • Última visita

  • Días ganados

    15

Mensajes publicados por -YC-

  1. Hola shavos, bueno no he visto este tuto aquí así que lo traigo, como dice el título, es como poner la animación al recoger un mineral después de picar una veta, empecemos:

     

    Primero vamos a UserInterface/PythonCharacterModule.cppy y buscamos esto:

    PyModule_AddIntConstant(poModule, "NEW_AFFECT_DRAGON_SOUL_QUALIFIED",        CInstanceBase::NEW_AFFECT_DRAGON_SOUL_QUALIFIED);

    debajo añadimos está función:

    PyModule_AddIntConstant(poModule, "MOTION_PICK_UP",                        CRaceMotionData::NAME_PICK_UP);

    después vamos a UserInterface/PythonPlayerInput.cpp​ y buscamos esto:

    void CPythonPlayer::PickCloseItem()

    y añadimos esto:

       pkInstMain->GetGraphicThingInstancePtr()->InterceptOnceMotion(CRaceMotionData::NAME_PICK_UP);

    después vamos a GameLib/ActorInstanceMotion.cpp​ y buscamos esto:

           case CRaceMotionData::NAME_SLAP_HURT_WITH_SHAMAN:

    debajo añadimos esto:

           case CRaceMotionData::NAME_PICK_UP:

    seguimos :v, vamos a GameLib/RaceManager.cpp y buscamos esto:

           s_kMap_stType_dwIndex.insert(std::map<std::string, DWORD>::value_type("SKILL5", CRaceMotionData::NAME_SKILL+125));

    debajo añadimos está función:

           s_kMap_stType_dwIndex.insert(std::map<std::string, DWORD>::value_type("PICK_UP", CRaceMotionData::NAME_PICK_UP));

    vamos a GameLib/RaceMotionData.cpp y buscamos:

           case NAME_DIG:

    debajo añadimos esto:

           case NAME_PICK_UP:

    vamos a GameLib/RaceMotionData.h buscamos esto:

               NAME_JOY,

    debajo añadimos esto:

               NAME_PICK_UP,

    Compilamos el binario y sería todo lo que añadiriamos al binario

     

    Por ultimo vamos a root/playersettingmodule.py​ buscamos esto:

    def SetGeneralMotions(mode, folder):

    y debajo del ultimo chrmgr, que sería DIG ponemos esto:

        chrmgr.RegisterCacheMotionData(mode,        chr.MOTION_PICK_UP,                "pick_up.msa")

    Y sería todo, el resultado es este:

     

    FvBkd.png

     

    Créditos:

    Shisui de metin2dev

     

    PD: La animación la hizo Ymir por defecto todos los clientes la traen no hace falta implementarla, saludos :v

  2.  

    Agora es ese erro

    0712 01:01:03253 :: Traceback (most recent call last):
    
    0712 01:01:03253 ::   File "introLogo.py", line 60, in OnUpdate
    
    0712 01:01:03254 ::   File "networkModule.py", line 177, in SetLoginPhase
    
    0712 01:01:03254 ::   File "system.py", line 130, in __pack_import
    
    0712 01:01:03255 ::   File "system.py", line 110, in _process_result
    
    0712 01:01:03255 ::   File "introLogin.py", line 26, in <module>
    
    0712 01:01:03256 ::   File "system.py", line 137, in __pack_import
    
    0712 01:01:03256 :: ImportError
    0712 01:01:03257 :: : 
    0712 01:01:03257 :: Bad magic number in C:\Users\blabla\Desktop\Cliente\lib\string.pyc
    0712 01:01:03257 :: 
    
    

    Tus librerías están dañadas :v

     

    descarga estás:

     

     

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
  3.  

    Erro :|

    0pYJzQK.png

    0711 00:05:10903 :: Traceback (most recent call last):
    
    0711 00:05:10904 ::   File "introLogo.py", line 60, in OnUpdate
    
    0711 00:05:10911 ::   File "networkModule.py", line 177, in SetLoginPhase
    
    0711 00:05:10921 ::   File "system.py", line 130, in __pack_import
    
    0711 00:05:10921 ::   File "system.py", line 110, in _process_result
    
    0711 00:05:10930 ::   File "introLogin.py", line 24, in <module>
    
    0711 00:05:10931 ::   File "system.py", line 137, in __pack_import
    
    0711 00:05:10932 :: ImportError
    0711 00:05:10932 :: : 
    0711 00:05:10932 :: No module named md5
    0711 00:05:10932 :: 
    
    

    ¿Que cliente usas?

     

    trata de borrar el import md5 :v

  4. Hola shavelos, de nuevo :v bueno ya que no vi en el foro este sistema, se los traigo gratis :v, el sistema es de Yiv de EPVP, dejo video;

     

     

    Instalacion:

     

    Descargar el .rar suben las quest a tu sftp, abren questlib.lua,  van al final del archivo y ponen esto;

    dofile("locale/mexico/quest/achievementsystem_extension.lua")

    Ustedes pondran su ruta

     

    2.- En quest_functions ponen esto:

    achievement.init
    achievement.getNextLevelAchievementInfo
    achievement.nextLevelAchievement
    achievement.getMobAchievementInfo
    achievement.increasePoints
    achievement.getf
    achievement.setf
    achievement.login
    achievement.initLevel
    achievement.initShop
    achievement.initMob
    achievement.buyItem
    achievement.clientCommunication
    

    3.- Descompilan ETC, o hacen un nuevo patch y ponen la carpeta Yiv, donde lleva el diseño del board.

     

    4.- Descompilan roots, y pasan el archivo uiachievement.py..

     

    5.- Abren ConstInfo.py y ponen esto:

    # YIV WORK: Achievement
    CQC = 0
    CQC_INFO = ""
    

    6.- Abren interfacemodule.py y buscan esto:

    def OpenQuestWindow(self, skin, idx):

    debajo ponen esto:

      # YIV WORK: Achievement
            if constInfo.CQC == 1:
                return
    

    debe quedar asi:

     

    b732effe04.png

     

    7.- abrimos game.py e importamos el .py del sistema poniendo al principio esto:

    import uiAchievement

    8.- Busca esto: GameWindow Klasse (def __init__(self, stream))

    y debajo de esto:

            self.playerGauge = uiPlayerGauge.PlayerGauge(self)
            self.playerGauge.Hide()

    ponen esto:

    # YIV WORK: Achievement
            self.achievementWindow = uiAchievement.AchievementBoard()
            self.achievementWindow.Close()

    9.- Buscamos def Close(self):

    y debajo de

    self.ClearDictionary()

    ponen:

            # YIV WORK: Achievement
            self.achievementWindow.Close()
            self.achievementWindow = None

    10.- Buscan def __BuildKeyDict(self):

    y debajo ponen el comando con el que se abrira en este paso F6

    onPressKeyDict[app.DIK_F6]    = lambda : self.achievementWindow.ToggleVisible()

    11.- Buscan esto: def __ServerCommand_Build(self):

    y ponen esto:

                "achievement"            : self.achievementWindow.HandleAchievementServerCommand,
                "cqc_start"                : self.cqcStart,
                "cqc_get"                : self.cqcGet,
                "cqc_end"                : self.cqcEnd,
    

    12.- Y a lo ultimo del game.py esto:

        def cqcStart(self):
            constInfo.CQC = 1
    
        def cqcGet(self):
            net.SendQuestInputStringPacket(str(constInfo.CQC_INFO))
    
        def cqcEnd(self):
            constInfo.CQC_INFO = None
            constInfo.CQC = 0
    

    13.-Para configurar los premios, se hace en el achievementsystem_extension.lua aqui:

    achievement.shop = {
        {{14,1,10},{19,1,20},{11209,1,25},{11219,1,30},{0,0,0},{0,0,0},{0,0,0},{0,0,0}},
        {{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}},
        {{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}},
        {{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}},
        {{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}},
        {{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}},
        {{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}},
        {{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}},
    }
    

    en este caso quedaria asi:

     

    14 ----- Espada+4

    1 ---- Cantidad

    10 ---- Puntos para canjaer

     

    QUEST POR SI QUIERES HACER ITEMS QUE TE DEN PUNTOS LOGRO:

    quest achievement_coupons begin
        state start begin
            when 30093.use or 30094.use or 30095.use or 30096.use begin
                local points = ({
                    [30093] = 25,
                    [30094] = 50,
                    [30095] = 100,
                    [30096] = 200
                })[item.get_vnum()]
                achievement.increasePoints(points)
                item.remove()
            end
        end
    end
    

    Creditos:

    Yiv

     

     

    Descarga en adjunto

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.

  5. tienes que agregar la quest en el questlist de filezilla o winscp, luego poner la quest  y en la parte de when 50512.use with begin pones el vnum del item que quieres esa quest y luego tienes que ir ala maquina virtual y poner el comando ./qc nombredelaquest.quest  y listo puedes hacer /reload q dentro del juego o hacer reboot para asegurarse y ya te deveria funcionar. 

    No es necesario poner la quest en el questlist, ya que ese archivo es por si quieres hacer un make, :v

     

     

    CON RESPECTO AL POST:

    Ve a /usr/home/game/share/locale/xxx/quest/object/ y busca la carpeta llamada 50512 y revisa qué este la función de la quest...

  6. Debes iniciar sesión para ver el contenido del enlace en esta publicación.

    *-* Ein Deutscher auf zone :v

     

    Sencillo :v:

     

    In der game.py direkt unter

    Code:

     

    def OpenQuestWindow(self, skin, idx):

    folgenden code hinzufügen, ganz egal ob dort schon was steht,

    packt es einfach direkt unter den Funktionsnamen!

    Code:

        if constInfo.INPUT_IGNORE == 1:
            return
    dann noch in der

    Code:

            def __ServerCommand_Build(self):
    folgendes hinzufügen:

    Code:

                "getinputbegin"                : self.__Inputget1,
                "getinputend"                : self.__Inputget2,

    Die zwei Funktionen ans Ende der game.py:

    Code:

        def __Inputget1(self):
            constInfo.INPUT_IGNORE = 1
    
        def __Inputget2(self):
            constInfo.INPUT_IGNORE = 0
    Und in die constInfo.py

    Code:

    INPUT_IGNORE = 0

    öffne die uiquest.py und suche nach

     

    Code:

    def __init__(self,skin,idx):
    und direkt unter dem Funktionsnamen fügst du dann folgenden Code ein:

    Code:

            import constInfo
            if constInfo.INPUT_IGNORE == 1:
                return
     
×
×
  • Crear nuevo...