Înlătură notificare
Bun venit pe all4games.ro, Vizitator.
Distribuie şi tu această comunitate pentru a devenii mai cunoscută. Dacă ai tutoriale şi/sau resurse, nu ezita să le postezi şi aici. Mulţumim!
Înregistrare sau logare.

ServerFiles Server files complet. [Sursa: client, server.]

Discuție în 'ServerFiles' creată de Gigiz, 22 Feb 2020.

  1. Gigiz

    Gigiz
    Administrator
    Membru personal

    Înscris:
    15 Mar 2016
    Mesaje:
    320
    Aprecieri primite:
    258
    Aprecieri oferite:
    11
    Descriere luată de pe forumul Trebuie să te loghezi pentru a vedea link-ul

    Serverul este stabil, îl puteți folosi cu încredere.
    Sursa este aceea de la serenity îmbunătățită și cu foarte multe fix-uri.
    Sursa game este compatibila cu gcc49

    service.h sursă game.
    #ifndef __INC_METIN2_COMMON_DEFINES_H__
    #define __INC_METIN2_COMMON_DEFINES_H__

    enum eCommonDefines {
    MAP_ALLOW_LIMIT = 64, // 32 default
    };

    #define ENABLE_PLAYER_PER_ACCOUNT5
    #define ENABLE_PORT_SECURITY

    /* SYSTEME PRINCIPALE JUCATORI*/
    #define __WJ_SHOW_MOB_INFO__
    #define __SEND_TARGET_INFO__
    #define __SPECIAL_STORAGE__
    #define __7AND8TH_SKILLS__
    #define __TITLE_SYSTEM__
    #define __TIMER_ELIXIR__
    #define __SASH_SYSTEM__
    #define __MULTI_SHOP__
    #define __BIOLOG_TIME__
    #define __BIOLOG_SYSTEM__
    #define __CHANGE_SEX_WR__
    #define __REFINE_SYSTEM__
    #define __CHANGELOOK_SYSTEM__
    #define __CHANGELOOK_EXTEND__
    #define __EXTENDED_ITEM_NAME__
    #define __EXPANDED_BOOK_NAME__
    #define __WEAPON_COSTUME_SYSTEM__
    #define __COSTUME_ATTR_SYSTEM__
    #define __COSTUME_RING_SYSTEM__
    #define __SEQUENCE_SYSTEM__
    #define __SHOW_CHEST_DROP__
    #define __ATTENDANCE_EVENT__
    #define __ENABLE_BATTLE_FIELD__
    #define __DUNGEON_INFO_SYSTEM__
    #define __SKILLS_LEVEL_OVER_P__
    #define __VIEW_TARGET_PLAYER_HP__
    #define __VIEW_TARGET_DECIMAL_HP__


    // #ifndef ENABLE_ANNOUNCEMENT_REFINE_SUCCES
    // #define ENABLE_ANNOUNCEMENT_REFINE_SUCCES
    // #define ENABLE_ANNOUNCEMENT_REFINE_SUCCES_MIN_LEVEL 9
    // #endif

    #define ENABLE_NEW_QUICK_SLOT_SYSTEM
    //#define WJ_GUILD_LEADER_SYSTEM
    #define WJ_ENABLE_PICKUP_ITEM_EFFECT
    #define WJ_ENABLE_TRADABLE_ICON

    #define ENABLE_CHANGE_CHANNEL
    #define ENABLE_ANTIEXP_RENEWAL
    #define ENABLE_SORT_INVENTORY
    #define ENABLE_CUBE_RENEWAL
    #define ENABLE_DICE_SYSTEM
    #define ENABLE_GLOBAL_CHAT
    #define ENABLE_FISH_EVENT
    #define ENABLE_GEM_SYSTEM
    #define ENABLE_NEWSTUFF
    #define ENABLE_PET_SLOT
    #define NEW_PET_SYSTEM
    #define NEW_PET_SUMMON

    #define ENABLE_MOUNT_COSTUME_SYSTEM
    #define ENABLE_SUPPORT_SYSTEM
    #define ENABLE_AGGREGATE_MONSTER_EFFECT
    #define ITEM_REMAINING


    /* SYSTEME PENTRU ADMINISTRARE*/
    #define __WHISPER_ADMIN__
    #define __ADMIN_MANAGER__


    /* OFFLINE SHOPS */
    #define OFFLINE_SHOP // Offline shops system
    #define GIFT_SYSTEM // gift system enable
    #define FULL_YANG // Enable support for yang type long long
    #define SHOP_TIME_REFRESH 1*60 // time for cycle checking older shops
    #define SHOP_BLOCK_GAME99 //Blocking create shops on channel 99
    //#define SHOP_DISTANCE // Show shops in pos distance like WoM2
    #define SHOP_AUTO_CLOSE //Enable auto closing shop after sell last item
    //#define SHOP_ONLY_ALLOWED_INDEX //Enable limiting for other map index which is not defined in player.shop_limit
    //#define SHOP_HIDE_NAME // Enable hidding shop npc names like "Player's shop"
    #define SHOP_GM_PRIVILEGES GM_IMPLEMENTOR //Minimum GM privileges to using Shop GM Panel
    #define ENABLE_OFFLINE_SHOP_HIDE
    #define SHOP_SEARCH
    #define SHOP_SEARCH_PRICE_MIN //Price in gui is a minimum eq. price >= item_price if is commented price in gui is a maximum
    /* END OFFLINE SHOPS */

    /* SYSTEME TEMNITE */
    #define __VERSION_162__
    #ifdef __VERSION_162__
    #define HEALING_SKILL_VNUM 265
    #endif

    #define __DUNGEON_FOR_GUILD__
    #ifdef __DUNGEON_FOR_GUILD__
    #define __MELEY_LAIR_DUNGEON__
    #ifdef __MELEY_LAIR_DUNGEON__
    #define __DESTROY_INFINITE_STATUES_GM__
    #define __LASER_EFFECT_ON_75HP__
    #define __LASER_EFFECT_ON_50HP__
    #endif
    #endif
    /* END SYSTEME TEMNITE */

    #endif

    Câteva imagini cu sistemele implementate.
    1. Trebuie să te loghezi pentru a vedea link-ul
    2. Trebuie să te loghezi pentru a vedea link-ul
    3. Trebuie să te loghezi pentru a vedea link-ul
    Galerie cu imagini: Trebuie să te loghezi pentru a vedea link-ul

    Descărcări (by J4M):
    1. Trebuie să te loghezi pentru a vedea link-ul
      Sursă game și serverfiles complet
    2. Trebuie să te loghezi pentru a vedea link-ul
      Sursă client + client complet cu toate programele necesare
    3. Trebuie să te loghezi pentru a vedea link-ul
      (GCC49 Instalare manuala cu tutorial:)

    Rezolvare bug-uri găsite ulterior:

    Fereastra logare:
    Când deschideai clientul şi voiai să-l închizi, fără să te conectezi pe server, acesta rămânea blocat.

    Rezolvare:
    Caută în fişierul networkmodule.py
    COD:
    Select All
            if self.curPhaseWindow:
               
    self.curtain.FadeIn()
               
    self.curPhaseWindow.SetFocus()
    Înlocuieşte codul cu :
    COD:
    Select All
            if self.curPhaseWindow:
               
    self.curtain.FadeIn()
               
    # self.curPhaseWindow.SetFocus()
           
    else:
               
    app.Exit()

    Rezolvare negot:

    1. intrati in usr/src/vlad/files/common/service.h
    2. inainte de ultimul #endif pune :
      COD:
      Select All
      #define __NEW_EXCHANGE_WINDOW__
    3. intrati in usr/src/vlad/filles/game/exchange.cpp si cautati:
      COD:
      Select All
      m_pGrid M2_NEW CGrid(43);
      inlocuiti cu:
      COD:
      Select All
      #ifdef __NEW_EXCHANGE_WINDOW__
         
      m_pGrid M2_NEW CGrid(64);
      #else
         
      m_pGrid M2_NEW CGrid(43);
      #endif
    4. intrati in usr/src/vlad/filles/game/exchange.h si cautati:
      COD:
      Select All
      EXCHANGE_ITEM_MAX_NUM 12,
      inlocuiti cu:
      COD:
      Select All
      #ifdef __NEW_EXCHANGE_WINDOW__
         
      EXCHANGE_ITEM_MAX_NUM 24,
      #else
         
      EXCHANGE_ITEM_MAX_NUM 12,
      #endif
    5. Compilaţi.

    Rezolvare gaya:

    1. intrati in quest,facei un fisier numit gaya_create.lua si puneti asta
      COD:
      Select All
      quest gaya begin
          state start begin
              
      function CreateGaya()
                  
      say("Am nevoie de 10 "..item_name(item.vnum)..",")
                  
      say("5000 yang ºi o piatrã +0, +1, +2 or +3")
                  
      say("pentru a crafta o preþioasã Gaya.")
                  
      say("")
                 
                  
      say("Rata de succes este 75%... oh, si te")
                  
      say("costã 5.000 Yang.")
                  
      say("Sã continui?")
                  
      say("")
                 
                  
      local s select("Da""Nu")
                  if 
      == 1 then
                      
      if pc.get_gold() < 5000 then
                          
      return
                      
      end

                      local SELECTED_CELL 
      select_item_ex()
                      if 
      SELECTED_CELL == 6969 then
                          
      return
                      
      end
                     
                      local old_item 
      item.get_id()
                      if 
      not item.select_stone_cell(SELECTED_CELLthen
                          say
      ("Acesta nu este obiectul de care am nevoie.")
                          
      say("")
                          return
                      
      end

                      
      if item.vnum 28000 or item.vnum >= 28400 then
                          say
      ("Ai ales un obiect gresit.")
                          
      say("Am nevoie de pietre +0 +1 +2 si +3.")
                          return
                      
      end

                      item
      .select(old_item)
                     
                      if 
      pc.create_gaya(500050SELECTED_CELL10then
                          syschat
      ("[Gaya] Cantitate de Gaya: 1")
                          
      syschat("[Gaya] Tãierea a avut succes.")
                      else
                          
      syschat("[Gaya] Tãierea a eºuat.")
                      
      end
                     
                      gaya
      .CreateGayaWithoutText()
                  
      end
              end
             
              
      function CreateGayaWithoutText()
                  
      local SELECTED_CELL select_item_ex()
                  if 
      SELECTED_CELL == 6969 then
                      
      return
                  
      end
                 
                  local old_item 
      item.get_id()
                  if 
      not item.select_stone_cell(SELECTED_CELLthen
                      say
      ("Acesta nu este obiectul de care am nevoie.")
                      
      say("")
                      return
                  
      end

                  
      if item.vnum 28000 or item.vnum >= 28400 then
                      say
      ("Ai ales un obiect gresit.")
                      
      say("Am nevoie de pietre +0 +1 +2 si +3.")
                      
      say("")
                      return
                  
      end

                  item
      .select(old_item)
                 
                  if 
      pc.create_gaya(500050SELECTED_CELL10then
                      syschat
      ("[Gaya] Cantitate de Gaya: 1")
                      
      syschat("[Gaya] Tãierea a avut succes.")
                  else
                      
      syschat("[Gaya] Tãierea a eºuat.")
                  
      end
                 
                  gaya
      .CreateGayaWithoutText()
              
      end

              when 20503.take with item
      .vnum == 50926 begin
                  gaya
      .CreateGaya()
              
      end

              when 20503.click begin
                  local s
      select("Taie Pietre Lucioase""Închide")
                  if 
      s==1 then
                      say
      ("Vrei sã tai Pietrele Lucioase în Gaya acum?")
                      
      say("Vreau aceastã cantitate de Pietre Lucioase: 10 ")
                  
      end
              end
             
              when 20504.click begin
                  local s1
      =select("Ce este Piaþa Gaya?""Închide")
                  if 
      s1==1 then
                      say
      ("Ai auzit de Piaþa Gaya?")
                      
      say("Nu? Meritã sã îi faci o vizitã. Poþi cumpãra")
                      
      say("numeroase lucruri grozave.")
                      
      say("Uneori poþi sã gãseºti ºi produse extrem de")
                      
      say("valoroase.")
                      
      say("Vrei sã deschizi o Piaþa Gaya acum?")
                     
                      
      local s2=select("Da""Nu")
                      if 
      s2==1 then
                          pc
      .open_gem_shop()
                      
      end
                  end
              end
             
          end
      end
    2. scriem ./qc gaya_create.lua,intram in joc,dam un /reload q si gata.

    Rezolvare insotitori:

    Intrati in quest si creati un fişier numit newpetstaff.quest, în care adăugaţi:
    COD:
    Select All
    quest newpetstuff begin
            state start begin
                 
                    
    function book_skill(value)
                            return 
    value 55009
                    end
                 
                    when 55010.
    use or 55011.use or 55012.use or 55013.use or 55014.use or 55015.use or 55016.use or 55017.use or 55018.use or 55019.use or 55020.use or 55021.use or 55022.use or 55023.use or 55024.use or 55025.use or 55026.use or 55027.use begin                    
                           
    if newpet.getlevel() >= 80 and  newpet.getevo() == 3 then
                                    
    if newpet.increaseskill(newpetstuff.book_skill(item.get_vnum())) then
                                        pc
    .remove_item(item.get_vnum(), 1)
                                    
    end
                            end
                    end
            end
    end
    Tot în quest creaţi un alt fişier cu numele PetSystemIncubator.lua şi adăugaţi:
    COD:
    Select All
    quest PetSystemIncubator begin
        state start begin
            when 55401.
    use or 55402.use or 55403.use or 55404.use begin
                newpet
    .EggRequest(item.get_vnum())
                
    cmdchat(string.format("OpenPetIncubator %d ", (item.get_vnum()-55401)))
            
    end
        end
    end
    Tot în quest mai creaţi un alt fişier cu numele PetSystems.lua şi adăugaţi:
    COD:
    Select All
    quest PetSystems begin
        state start begin
            
    function get_pet_info(itemVnum)
                
    pet_info_map = {
                --  [
    ITEM VNUMMOB_VNUM, DEFAULT NAMEbuff_idxspawn_effect_idx
                    
    [55701]     = { 34041"'s Kleiner Affe"0},
                    [
    55702]     = { 34045"'s Kleine Spinne"0},
                    [
    55703]     = { 34049"'s Kleiner Razador"0},
                    [
    55704]     = { 34053"'s Kleiner Nemere"0},
                 
                }
                
    itemVnum tonumber(itemVnum)
                return 
    pet_info_map[itemVnum]
            
    end
         
            when 55701.
    use or 55702.use or 55703.use or 55704.use begin
                local pet_info 
    PetSystems.get_pet_info(item.vnum)

                if 
    null != pet_info then

                    local mobVnum 
    pet_info[1]
                    
    local petName pet_info[2]
                 

                    if 
    true == newpet.is_summon(mobVnumthen                
                        newpet
    .unsummon(mobVnum)
                    else
                        if 
    newpet.count_summoned() < 1 then
                            newpet
    .summon(mobVnumpetNamefalse)
                        else
                            
    syschat("You already summoned a pet.")
                        
    end              
                    end 
    -- if pet.is_summon
                end  
    -- if null != pet_info
            end 
    -- when
        end
    end
    După care instalaţi quest-urile.

    Nu merg unele mape:

    intrati in sysser din ch1,si daca apare ceva de genul:
    Cod:
    Select All
    cannot find map location index 73
    mergem in fiecare config din fiecare ch,iar la map Allow adaugam acest numar/index.
    Numerele trebuiesc sortate în ordine crescătoare.


    Pornire server:

    Pune Trebuie să te loghezi pentru a vedea link-ul in usr/lib, usr/lib32 si /lib
    Intraţi in fiecare config din ch+conf.txt din datebase si la BIND_ip puneţi ip-ul vostru.
    Intraţi in navicat si daţi empty la urmatoarele tabele:
    -account
    -gmlist
    -player
    -player_gift
    -player_index
    -player_shop
    -player_shop_item

    Sursa: Trebuie să te loghezi pentru a vedea link-ul

    Dacă aveţi probleme cu acestă resursă, Trebuie să te loghezi pentru a vedea link-ul oferă suport contra cost.
     
  2. Pisti95

    Pisti95 Membru nou Membru

    Înscris:
    10 Noi 2021
    Mesaje:
    1
    Aprecieri primite:
    0
    Aprecieri oferite:
    1
    Can you upload? the links are dead.
     

Distribuie pagina asta