[Release] IGCN Season 9.5 (src-x9.5 9.5.1.15) SRC (April/2016)

Page 46 of 63 FirstFirst ... 36383940414243444546474849505152535456 ... LastLast
Results 676 to 690 of 944
  1. #676
    Alpha Member ianvalls90 is offline
    MemberRank
    Apr 2007 Join Date
    ArgentinaLocation
    1,829Posts

    re: [Release] IGCN Season 9.5 (src-x9.5 9.5.1.15) SRC (April/2016)

    Quote Originally Posted by MaxMuON View Post
    Hi guys,
    Who can help me with IGC.dll and main.exe that don`t have chat bug ?
    I see this one have only 200kb and other from another server s9.5, fixed have 7820kb, but the problem is that i get d/c every 3 min with the fixed one ... So who can help me ? Thank you !
    Did you disable the checkdllversion on server side?

    Enviado desde mi SM-G531M mediante Tapatalk

  2. #677
    Enthusiast MaxMuON is offline
    MemberRank
    Nov 2016 Join Date
    42Posts

    re: [Release] IGCN Season 9.5 (src-x9.5 9.5.1.15) SRC (April/2016)

    Its not that.. Not the server kick me, the client does ... the problem is from igc.dll, it have some kind of protection ...

    [00:46:21] (12112)(test)(test) Character closed[00:46:21] (12112)Logout Request : test [173.239.223.11]

    its like i log out
    Last edited by MaxMuON; 29-11-17 at 11:48 PM.

  3. #678
    Member S1lvik is offline
    MemberRank
    Jan 2012 Join Date
    MoldovaLocation
    69Posts

    re: [Release] IGCN Season 9.5 (src-x9.5 9.5.1.15) SRC (April/2016)

    after entering the illusion event, the ticket does not disappear, how to fix ? help please

  4. #679
    Account Upgraded | Title Enabled! nofeara is offline
    MemberRank
    Nov 2009 Join Date
    510Posts

    re: [Release] IGCN Season 9.5 (src-x9.5 9.5.1.15) SRC (April/2016)

    Quote Originally Posted by fox333 View Post
    Don't shut down your server that way.... Do it properly and it won't happen.

    Disconnect all players 1st using the commands in the game server.

    Reconnect feature will properly function if the game server stops unexpectedly, and base from my experience it is reconnecting properly and not doing that duplicate thing.

  5. #680
    Account Upgraded | Title Enabled! or30n is online now
    MemberRank
    Jun 2005 Join Date
    738Posts

    re: [Release] IGCN Season 9.5 (src-x9.5 9.5.1.15) SRC (April/2016)

    Hello guyz, in these files what about agility bug for all classes? Gen system is working fine?

  6. #681
    Account Upgraded | Title Enabled! ADMTec is offline
    MemberRank
    Aug 2011 Join Date
    474Posts

    re: [Release] IGCN Season 9.5 (src-x9.5 9.5.1.15) SRC (April/2016)

    Someone could add to this muserver a custum that has in Zteam that I find very interesting to bonus players in events.

    it's the MonsterSpawner.xml

    in Red is define an item that when it is dropped will create a Temporary Spot
    in Yellow is defined the monster that will spawn and also the quantity and the duration time.
    in Green it is defined if the spot created will be private or not (if it is deprived only those who dropped the item can attack the monsters.
    in Blue is defined if the party of whom the item drops will be able to attack.
    in Orange is set if the guild of who drops the item will be able to attack.

    <monsterspawner>
    <!-- example, elite yeti -->
    <item type="14" index="300">
    <spawn monster="20" count="30" duration="60" />
    <!-- rules for use this spot (false: any user can attack, true: only owner & by rules) -->
    <private active="true">
    <party>true</party>
    <guild>false</guild>
    </private>
    </item>

    <!-- example, mutant -->
    <item type="14" index="301">
    <spawn monster="62" count="30" duration="60" />
    <!-- rules for use this spot (false: any user can attack, true: only owner & by rules) -->
    <private active="true">
    <party>true</party>
    <guild>false</guild>
    </private>
    </item>

    <!-- example, fire golem -->
    <item type="14" index="302">
    <spawn monster="291" count="30" duration="60" />
    <!-- rules for use this spot (false: any user can attack, true: only owner & by rules) -->
    <private active="true">
    <party>true</party>
    <guild>false</guild>
    </private>
    </item>
    </monsterspawner>


    aqui fica os código que eu pegue da source da Zteam

    MonsterSpawner.cpp

    PHP Code:

    #include "stdafx.h"
    #include "MonsterSpawner.h"
    #include "GameMain.h"
    #include "..\pugixml\pugixml.hpp"

    MonsterSpawnerMngMonsterSpawnerMng::m_Instance NULL;

    MonsterSpawnerMng::MonsterSpawnerMng() {
        
    m_WorkPool.clear();
        
    //m_ItemData.clear();
    }

    MonsterSpawnerMng::~MonsterSpawnerMng() {
        
    // lifetime instance...
    }

    void MonsterSpawnerMng::Load() {
        
    m_Loaded false;
        
    Init();
        
    Read(gDirPath.GetNewPath(FILE_CUSTOM_MONSTERSPAWNER));
    }

    void MonsterSpawnerMng::Init() {
        
    m_ItemData.clear();
    }

    void MonsterSpawnerMng::Read(const char *File) {
        
    using namespace pugi;
        
    xml_document Document;
        
    xml_parse_result Result Document.load_file(File);
        if (
    Result.status != status_ok) {
            
    MsgBox("[MonsterSpawnerMng] File %s not found!"File);
            return;
        }
        
    xml_node nodeMain Document.child("monsterspawner");
        for (
    xml_node nodeIt nodeMain.child("item"); nodeItnodeIt nodeIt.next_sibling()) {
            
    MonsterSpawnerItemInfo newItem = { };
            
    newItem.itemCategory nodeIt.attribute("type").as_int(-1);
            
    newItem.itemIndex nodeIt.attribute("index").as_int(-1);
            
    newItem.spawnMonsterId nodeIt.child("spawn").attribute("monster").as_int(-1);
            
    newItem.spawnMonsterCount nodeIt.child("spawn").attribute("count").as_int(-1);
            
    newItem.spawnDuration nodeIt.child("spawn").attribute("duration").as_int(-1);
            
    newItem.isPrivate nodeIt.child("private").attribute("active").as_bool();
            
    newItem.isPrivateParty nodeIt.child("private").child("party").text().as_bool();
            
    newItem.isPrivateGuild nodeIt.child("private").child("guild").text().as_bool();
            
    m_ItemData.push_back(newItem);
        }
        
    LogAddTD("[MonsterSpawnerMng] loaded %d node(s)"m_ItemData.size());
        
    m_Loaded true;
    }

    void MonsterSpawnerMng::procRun() {

        for (
    size_t i 0m_WorkPool.size(); i++) {

            if (
    m_WorkPool[i].isEmpty()) {
                continue;
            }
            if (
    m_WorkPool[i].isExpired()) {
                
    LogAddTD("[MonsterSpawnerMng] [%s] spot duration is expired, slot cleared",
                    
    m_WorkPool[i].ownerName.c_str());
                
    m_WorkPool[i].clearSlot();
            }
        }
    }

    void MonsterSpawnerMng::procRegen(short MonsterIndex) {
        
    gObj[MonsterIndex].gObj[MonsterIndex].StartX;
        
    gObj[MonsterIndex].gObj[MonsterIndex].StartY;
        
    gObj[MonsterIndex].MTX gObj[MonsterIndex].X;
        
    gObj[MonsterIndex].MTY gObj[MonsterIndex].Y;
        
    gObj[MonsterIndex].m_ActState.Emotion 1;
        
    gObj[MonsterIndex].m_ActState.EmotionCount 1;
    }

    bool MonsterSpawnerMng::procCreate(short UserIndexint ItemCode) {
        
    MonsterSpawnerItemInfotmpItemInfo getItemInfo(ItemCode);
        if (
    tmpItemInfo == NULL) {
            return 
    false;
        }
        
    int tmpSlotIndex getEmptySlot();
        if (
    tmpSlotIndex == -1) {
            
    MonsterSpawnerWorkNode newNode;
            
    newNode.setSlot(UserIndextmpItemInfo);
            
    m_WorkPool.push_back(newNode);
        } else {
            
    m_WorkPool[tmpSlotIndex].setSlot(UserIndextmpItemInfo);
        }
        
    LogAddTD("[MonsterSpawnerMng] [%s][%s] spot has been created (monster: %d, count: %d, duration: %d, map: %d (%d:%d))",
            
    gObj[UserIndex].AccountIDgObj[UserIndex].NametmpItemInfo->spawnMonsterIdtmpItemInfo->spawnMonsterCount,
            
    tmpItemInfo->spawnDurationgObj[UserIndex].MapNumbergObj[UserIndex].XgObj[UserIndex].Y);
        return 
    true;
    }

    bool MonsterSpawnerMng::isPrivate(short UserIndexshort MonsterIndex) {
        
    LPOBJ tmpAttacker = &gObj[UserIndex];
        
    LPOBJ tmpMonster = &gObj[MonsterIndex];
        
    LPOBJ tmpOwner NULL;
        
    MonsterSpawnerWorkNodetmpNode NULL;
        
    MonsterSpawnerItemInfotmpItem NULL;

        for (
    size_t i 0m_WorkPool.size(); i++) { // select node

            
    if (m_WorkPool[i].isMonster(MonsterIndex)) {
                
    tmpNode = &m_WorkPool[i];
                break;
            }
        }
        if (
    tmpNode == NULL) { // node not founded, spot unblocked
            
    return false;
        }
        if (
    tmpNode->isOwner(tmpAttacker->Name)) { // owner
            
    return false;
        }
        
    tmpItem getItemInfo(tmpNode->itemCode);
        if (
    tmpItem == NULL) { // rules for node not founded, spot unblocked
            
    return false;
        }
        if (!
    tmpItem->isPrivate) { // spot not privated by rules
            
    return false;
        }
        for (
    int i OBJ_STARTUSERINDEXOBJMAXi++) { // select live owner
            
    if (gObj[i].Connected >= PLAYER_PLAYING) {
                if (
    tmpNode->isOwner(gObj[i].Name)) {
                    
    tmpOwner = &gObj[i];
                    break;
                }
            }
        }
        if (
    tmpOwner == NULL) { // spot have owner, but owner is offline, cant check rules - block by rules
            
    MsgOutput(UserIndex"Monster is privated by %s"tmpNode->ownerName.c_str());
            return 
    true;
        }
        if (
    tmpItem->isPrivateParty && tmpOwner->PartyNumber >= 0) { // spot is not privated for party members
            
    if (tmpOwner->PartyNumber == tmpAttacker->PartyNumber) {
                return 
    false;
            }
        }
        if (
    tmpItem->isPrivateGuild && tmpOwner->GuildNumber 0) { // spot is not privated for guild members
            
    if (tmpOwner->GuildNumber == tmpAttacker->GuildNumber) {
                return 
    false;
            }
        }
        
    MsgOutput(UserIndex"Monster is privated by %s"tmpNode->ownerName.c_str());
        return 
    true;
    }

    bool MonsterSpawnerMng::isEventMonster(short MonsterIndex) {

        for (
    size_t i 0m_WorkPool.size(); i++) {

            if (
    m_WorkPool[i].isMonster(MonsterIndex)) {
                return 
    true;
            }
        }
        return 
    false;
    }

    bool MonsterSpawnerMng::isKeyItem(int ItemCode) {
        if (
    getItemInfo(ItemCode) != NULL) {
            return 
    true;
        }
        return 
    false;
    }

    int MonsterSpawnerMng::getEmptySlot() {

        for (
    size_t i 0m_WorkPool.size(); i++) {

            if (
    m_WorkPool[i].isEmpty()) {
                return 
    i;
            }
        }
        return -
    1;
    }

    MonsterSpawnerItemInfoMonsterSpawnerMng::getItemInfo(int ItemCode) {
        if (!
    m_Loaded) {
            return 
    NULL;
        }

        for (
    size_t i 0m_ItemData.size(); i++) {

            if (
    ITEMGET(m_ItemData[i].itemCategorym_ItemData[i].itemIndex) == ItemCode) {
                return &
    m_ItemData[i];
            }
        }
        return 
    NULL;

    MonsterSpawner.h



    PHP Code:

    #pragma once

    // import
    #include "user.h"

    // data
    struct MonsterSpawnerItemInfo {
        
    short itemIndex;
        
    short itemCategory;
        
    short spawnMonsterId;
        
    short spawnMonsterCount;
        
    short spawnDuration;
        
    bool isPrivate;
        
    bool isPrivateParty;
        
    bool isPrivateGuild;
    };

    struct MonsterSpawnerWorkNode // maybe better use class & ptr instance...
        
    MonsterSpawnerWorkNode() {
            
    ownerName.reserve(MAX_ACCOUNT_LEN 1);
            
    monsterPool.clear();
            
    itemCode = -1;
            
    tickEnd 0;
        }
        
    void setSlot(short UserIndexMonsterSpawnerItemInfoitemInfo) {
            if (
    UserIndex || UserIndex OBJMAX) {
                return;
            }
            
    LPOBJ tmpUser = &gObj[UserIndex];
            if (
    tmpUser == NULL) {
                return;
            }
            
    ownerName.assign(tmpUser->Name);
            
    itemCode ITEMGET(itemInfo->itemCategoryitemInfo->itemIndex);
            
    tickEnd GetTickCount() + (itemInfo->spawnDuration 60 1000);
            
    setSpot(UserIndexitemInfo);
        }
        
    void clearSlot() {
            
    ownerName.assign("");
            
    itemCode = -1;
            
    tickEnd 0;
            
    clearSpot();
            
    monsterPool.clear();
        }
        
    void setSpot(short UserIndexMonsterSpawnerItemInfoitemInfo) {
            if (
    UserIndex || UserIndex OBJMAX) {
                return;
            }
            
    LPOBJ tmpUser = &gObj[UserIndex];
            if (
    tmpUser == NULL) {
                return;
            }
            for (
    int i 0itemInfo->spawnMonsterCounti++) {
                
    int tmpMonsterIndex gObjAddMonster(tmpUser->MapNumber);
                if (
    tmpMonsterIndex 0) {
                    return;
                }
                
    gObj[tmpMonsterIndex].m_PosNum = -1;
                
    gObj[tmpMonsterIndex].X    tmpUser->rand() % 2;
                
    gObj[tmpMonsterIndex].Y    tmpUser->rand() % 2;
                
    gObj[tmpMonsterIndex].MapNumber    tmpUser->MapNumber;
                
    gObj[tmpMonsterIndex].TX gObj[tmpMonsterIndex].X;
                
    gObj[tmpMonsterIndex].TY gObj[tmpMonsterIndex].Y;
                
    gObj[tmpMonsterIndex].m_OldX gObj[tmpMonsterIndex].X;
                
    gObj[tmpMonsterIndex].m_OldY gObj[tmpMonsterIndex].Y;
                
    gObj[tmpMonsterIndex].StartX gObj[tmpMonsterIndex].X;
                
    gObj[tmpMonsterIndex].StartY gObj[tmpMonsterIndex].Y;
                
    gObj[tmpMonsterIndex].m_ActState.Emotion 1;
                
    gObj[tmpMonsterIndex].m_ActState.EmotionCount 15;
                
    gObj[tmpMonsterIndex].Dir rand() % 8;
                
    gObjSetMonster(tmpMonsterIndexitemInfo->spawnMonsterId);
                
    monsterPool.push_back(tmpMonsterIndex);
            }
        }
        
    void clearSpot() {

            for (
    size_t i 0monsterPool.size(); i++) {

                
    gObjViewportListProtocolDestroy(&gObj[monsterPool[i]]);
                
    gObjViewportClose(&gObj[monsterPool[i]]);
                
    gObjDel(monsterPool[i]);
                
    gObj[monsterPool[i]].Live 0;
                
    gObj[monsterPool[i]].DieRegen 1;
            }
        }
        
    bool isOwner(charOwnerName) {
            if (
    ownerName.compare(OwnerName) == NULL) {
                return 
    true;
            }
            return 
    false;
        }
        
    bool isMonster(short MonsterIndex) {

            for (
    size_t i 0monsterPool.size(); i++) {

                if (
    monsterPool[i] == MonsterIndex) {
                    return 
    true;
                }
            }
            return 
    false;
        }
        
    bool isEmpty() {
            if (
    isOwner("")) {
                return 
    true;
            }
            return 
    false;
        }
        
    bool isExpired() {
            if (
    GetTickCount() >= tickEnd) {
                return 
    true;
            }
            return 
    false;
        }
        
    std::string ownerName;
        
    std::vector<shortmonsterPool;
        
    int itemCode;
        
    DWORD tickEnd;
    };

    // monster spawner by item drop impletation
    class MonsterSpawnerMng {
    public:
        
    MonsterSpawnerMng();
        ~
    MonsterSpawnerMng();

        
    void Load();
        
    void Init();
        
    void Read(const charFile);

        
    void procRun();
        
    void procRegen(short MonsterIndex);
        
    bool procCreate(short UserIndexint ItemCode);
        
        
    bool isPrivate(short UserIndexshort MonsterIndex);
        
    bool isEventMonster(short MonsterIndex);
        
    bool isKeyItem(int ItemCode);
        
    int getEmptySlot();
        
    MonsterSpawnerItemInfogetItemInfo(int ItemCode);

        
    // singleton
        
    static MonsterSpawnerMnggetInstance() {
            if (
    m_Instance == NULL) {
                
    m_Instance = new MonsterSpawnerMng();
            }
            return 
    m_Instance;
        }

    private:
        static 
    MonsterSpawnerMngm_Instance;
        
    std::vector<MonsterSpawnerWorkNodem_WorkPool;
        
    std::vector<MonsterSpawnerItemInfom_ItemData;

    private:
        
    bool m_Loaded;
    }; 

  7. #682
    Gamma DragonSeth is offline
    MemberRank
    Aug 2011 Join Date
    2,996Posts

    re: [Release] IGCN Season 9.5 (src-x9.5 9.5.1.15) SRC (April/2016)

    Quote Originally Posted by or30n View Post
    Hello guyz, in these files what about agility bug for all classes? Gen system is working fine?
    Gen worked fine for me. Agility bug doesn't exist when i worked with the files.

  8. #683
    Account Upgraded | Title Enabled! soooom is offline
    MemberRank
    Mar 2006 Join Date
    LatviaLocation
    231Posts

    re: [Release] IGCN Season 9.5 (src-x9.5 9.5.1.15) SRC (April/2016)

    Hi guys, have you ever experience rage fighters loosing items in the inventory or equipped items after some couple of time?

  9. #684
    Account Upgraded | Title Enabled! nofeara is offline
    MemberRank
    Nov 2009 Join Date
    510Posts

    re: [Release] IGCN Season 9.5 (src-x9.5 9.5.1.15) SRC (April/2016)

    Quote Originally Posted by soooom View Post
    Hi guys, have you ever experience rage fighters loosing items in the inventory or equipped items after some couple of time?
    I did. So it was not just me. XD. But not all characters, rf only and i experienced only 1 character. Well what i did is, check the item logs for the player to know what items got lost.. Then i deleted and recreated the character again put back his lost items (actually i made him a trade :D).

  10. #685
    Account Upgraded | Title Enabled! soooom is offline
    MemberRank
    Mar 2006 Join Date
    LatviaLocation
    231Posts

    re: [Release] IGCN Season 9.5 (src-x9.5 9.5.1.15) SRC (April/2016)

    Quote Originally Posted by soooom View Post
    Hi guys, have you ever experience rage fighters loosing items in the inventory or equipped items after some couple of time?
    Maybe someone can help to debug and fix problem? I can pay, not much becouse server dont have donate it's my hobby.
    Becouse bug is very critical all my RF loosing items. If I don't fixed it I should close my server and I really dont want it :(
    I noticed that in Database - Character table all RF characters loosing varbinary columns(have NULL). Quest,Inventory,Skills,MuBot etc.

    If I open any RF character who loosed items IGC.EssentialTools item editor its crash.
    I need to change Quest from NULL to NewCharacter. Then I can start edit with IGC.EssentialTools item editor. <- Maybe this can help.

    Also when you create RF first time Quest,Skills columns = NULL <- Maybe this can help.


    GameServer have no error logs.
    DataServer have no error logs.

  11. #686
    Account Upgraded | Title Enabled! nofeara is offline
    MemberRank
    Nov 2009 Join Date
    510Posts

    re: [Release] IGCN Season 9.5 (src-x9.5 9.5.1.15) SRC (April/2016)

    does someone know how to record users MAC Address on database?????

  12. #687
    Enthusiast MaxMuON is offline
    MemberRank
    Nov 2016 Join Date
    42Posts

    re: [Release] IGCN Season 9.5 (src-x9.5 9.5.1.15) SRC (April/2016)

    Hi guys, i have a problem ... i can`t find in files to edit Skill DMG % from BK .. i have on full stats 6707% skill dmg and the dmg of BK,DL and RF is gigantic ... you can see what i am talking about in the print below : https://i.imgur.com/tluOI58.jpg Thank you and please give me an answer ...

  13. #688
    Alpha Member ianvalls90 is offline
    MemberRank
    Apr 2007 Join Date
    ArgentinaLocation
    1,829Posts

    re: [Release] IGCN Season 9.5 (src-x9.5 9.5.1.15) SRC (April/2016)

    Quote Originally Posted by MaxMuON View Post
    Hi guys, i have a problem ... i can`t find in files to edit Skill DMG % from BK .. i have on full stats 6707% skill dmg and the dmg of BK,DL and RF is gigantic ... you can see what i am talking about in the print below : https://i.imgur.com/tluOI58.jpg Thank you and please give me an answer ...
    You need to balance skills, via LUA scripting, reformulate them to give "lower dmg".....its not an easy task tho.

    Enviado desde mi SM-G531M mediante Tapatalk

  14. #689
    Valued Member ReaperMuAdmin is offline
    MemberRank
    May 2008 Join Date
    On a boatLocation
    123Posts

    re: [Release] IGCN Season 9.5 (src-x9.5 9.5.1.15) SRC (April/2016)

    after multiple tries, changing IGC.DLLs, trying different CSs, disabling DLL check on login (allow login invalid dll = 1)
    I still cannot login to a server that's hosted on LAN with all LAN IPs configured.
    I get immediate DC after main.exe loads.
    Dummy 1.02Q server setup locally works fine.
    I don't know what to do anymore

    What I tried:
    Ashlay's EXEs
    Ashlay's DLL
    Stock EXEs
    Stock DLLs
    Repacked Bins
    HEX Edit of Main and IGC.Dll
    enabling loopback
    gameserver.ini (disable DLL Check or smtg along those lines)

    FILES USED:
    Everything that was provided in this thread
    Originals (with AUTH system disabled)
    and ASHLAY modified files

    EDIT:
    hosted on
    server 2012 R2 x64
    SQL 2012 Enterprise
    Last edited by ReaperMuAdmin; 15-12-17 at 12:59 AM.

  15. #690
    Account Upgraded | Title Enabled! nofeara is offline
    MemberRank
    Nov 2009 Join Date
    510Posts

    re: [Release] IGCN Season 9.5 (src-x9.5 9.5.1.15) SRC (April/2016)

    Quote Originally Posted by ReaperMuAdmin View Post
    after multiple tries, changing IGC.DLLs, trying different CSs, disabling DLL check on login (allow login invalid dll = 1)
    I still cannot login to a server that's hosted on LAN with all LAN IPs configured.
    I get immediate DC after main.exe loads.
    Dummy 1.02Q server setup locally works fine.
    I don't know what to do anymore

    What I tried:
    Ashlay's EXEs
    Ashlay's DLL
    Stock EXEs
    Stock DLLs
    Repacked Bins
    HEX Edit of Main and IGC.Dll
    enabling loopback
    gameserver.ini (disable DLL Check or smtg along those lines)

    FILES USED:
    Everything that was provided in this thread
    Originals (with AUTH system disabled)
    and ASHLAY modified files

    EDIT:
    hosted on
    server 2012 R2 x64
    SQL 2012 Enterprise
    what is your ip, i'll make you igc dll.
    Last edited by allexander; 13-02-19 at 03:21 PM.



Advertisement