决战服务端(帝王端)源代码说明
1、物品改数及成功率。
A、改数:Define.h 中 #define MAX_ITEM_UPGRADE_COUNT 20 后面20就是改数。 B、成功率:user.cpp 中 - int g_ItemAttUpgrade[] = {9800, 8200, 8000, 7800, 7500, 7200,7000, 6800, 65000, 6200, 6000, 5800, 5500, 5200, 5000, 4800, 4500,4300, 4000, 100};
- int g_ItemDefUpgrade[] = {9800, 8500, 8000, 7800, 7500, 7200,7000, 6800, 65000, 6200, 6000, 5800, 5500, 5200, 5000, 4800, 4500,4300, 4000, 100};
- int g_ItemAccessoriUpgrade[] = {10000, 9500, 8500};
- int g_ItemBlessingUpgrade[] = {8000, 9500, 10000};
- int g_ItemNormalDownUpgrade[] = {6000, 1000};
复制代码
第一行int是武器,后面的数字就是每一改的成功率,第二行是装备,第三行估计是首饰6、7、8改的成功率,第四行是石头的成功率,最后一行应该失败率吧。如果要想20改,必须在一、二行机率后面增加余下10改的机率。
2、物品消失时间 Define.h中 - #define MAX_THROW_ITEM 30000
复制代码把它改成100就是最大允许地面上有100件物品或钱,如果超过的话就从掉的最早的物品开始自动作消失处理。当然如果你的服务器人数多的话建议设置大一点,不然消失得很快。
3、人物初始点数 user.cpp中 - if(SumPoint > 65)
- nRemain = 65 - nSum 65
复制代码这两句应该是控制总的分配点数。此处没怎么测试。
4、基本武器换战斗经验
服务器端文件的MAP文件夹中,文件1.EVT的EVENT103 ~EVENT106四个分别对应四个职业的基本武器换战斗经验。 - EVENT 103
- A LEVEL 5 10000
- A CLASS 3
- A EXIST_ITEM 10 1
- E ROB_ITEM 10 1
- E XP_UP 50000 这里就是战斗经验
- E GIVE_DN 1000000000 这里是送钱,想送物品可以写上E GIVE_ITEM 加物品代码。
- E ADD_EVENT 116
- E SAY 60
- E RETURN
- END
复制代码
5、110级后不能升级可修改User.cpp文件
- if(m_sLevel >= 200) { m_sLevel = 200; return; }
- CheckMaxValue((DWORD &)dwExp, (DWORD)iNpcExp);
- while(dwExp >= dwExpNext)
- // Level UP
- {
- if(sLevel == 200) { dwExp = dwExpNext; break; }
- if(sLevel < 200)
复制代码
所有200的地方原来为110。
6、每项属性超过100点的修改方法:打开User.cpp - case USER_STR:
- iNum = m_sSTR;
- iNum += iPlusMinus;
- if(iNum <= 0 || iNum > 200) return;
- m_sSTR = iNum; m_sPA -= 1;
- break;
- case USER_CON:
- iNum = m_sCON;
- iNum += iPlusMinus;
- if(iNum <= 0 || iNum > 200) return;
- m_sCON = iNum; m_sPA -= 1;
- break;
- case USER_DEX:
- iNum = m_sDEX;
- iNum += iPlusMinus;
- if(iNum <= 0 || iNum > 200) return;
- m_sDEX = iNum; m_sPA -= 1;
- break;
- case USER_VOL:
- iNum = m_sVOL;
- iNum += iPlusMinus;
- if(iNum <= 0 || iNum > 200) return;
- m_sVOL = iNum; m_sPA -= 1;
- break;
- case USER_WIS:
- iNum = m_sWIS;
- iNum += iPlusMinus;
- if(iNum <= 0 || iNum > 200) return;
- m_sWIS = iNum; m_sPA -= 1;
- break;
复制代码
以上iNum > 200即属性点最多不超过200点。具体数字由你决定!
7、每级基本点数修改 User.cpp中 - if((sLevel - m_sLevel) > 0)
- {
- BYTE tType = 2;
- sTempLevel = m_sLevel;
- m_dwExp = dwExp;
- m_dwExpNext = dwExpNext;
- m_sLevel = sLevel;
- while(sTempLevel < sLevel)
- {
- sTempLevel++;
- CheckMaxValue((short &)m_sPA, (short)2);
复制代码
最后的一个(short)2 即为每级基本点数为2。 弄了几天还是弄不明白白蓝黄装备控制的部份,Boss只爆蓝装备,怪物不爆锆石等。
8、只爆4属性黄金装备(吃幸运药的情况下)
- int CNpc::IsMagicItem(COM* pCom, ItemList *pItem, int iTable)
- {
- int i = 0, j;
- int iMagicTemp = 1 , iRareTemp = 1;
- int iRandom = myrand( 1, 10000 );
- int iMagicCount = 0, iCount = 0;
- int nLoop = 0, iType = 0;
- int nEventMoon = 0;
- int nEventSongpeon = 0;
- int nEventBox = 0;
- USER* pUser = NULL;
- /* SYSTEMTIME gTime; //@@@@@@@@@@@@@@@ Event Code
- GetLocalTime(&gTime);
- if(gTime.wMonth < 7) { iMagicTemp = 10; iRareTemp = 2; }
- else if(gTime.wMonth == 7)
- {
- if(gTime.wDay <= 7) { iMagicTemp = 10; iRareTemp = 2; }
- }
- */
- if(m_sEvent == NPC_EVENT_MOP)
- {
- iMagicTemp = NPC_EVENT_CHANCE;
- iRareTemp = NPC_EVENT_CHANCE;
- }
- else if(m_sEvent == NPC_EVENT_GREATE_MOP)
- {
- iMagicTemp = 60; //70
- iRareTemp = 70; //75
- }
- if(m_lKillUid >= 0)
- {
- pUser = GetUser(pCom, m_lKillUid);
- if(pUser != NULL && pUser->m_state == STATE_GAMESTARTED)
- {
- if(pUser->m_dwMagicFindTime != 0)
- {
- if(iMagicTemp < 40)
- {
- iMagicTemp *= 10; //幸运药机率增加
- iRareTemp *= 10;
- }
- if(iMagicTemp >= 40 && iMagicTemp < 70)
- {
- iMagicTemp *= 10; //幸运机率增加
- iRareTemp *= 10;
- }
- }
- }
- }
- nEventMoon = NPC_RARE_ITEM * iRareTemp + (NPC_EVENT_MOON - NPC_RARE_ITEM);
- nEventSongpeon = nEventMoon + (NPC_EVENT_SONGPEON - NPC_EVENT_MOON);
- nEventBox = nEventSongpeon + (NPC_EVENT_BOX - NPC_EVENT_SONGPEON);
- if(iRandom <= NPC_MAGIC_ITEM * iMagicTemp)
- {
- nLoop = 4; //此处由原来的蓝装备改为黄装备
- iType = RARE_ITEM; //此处由原来的蓝装备改为黄装备
- }
- else if(iRandom > NPC_MAGIC_ITEM * iMagicTemp && iRandom <= NPC_RARE_ITEM * iRareTemp) // 饭绢
- {
- // if(m_sEvent == NPC_EVENT_GREATE_MOP) nLoop = 10; // more greater
- // else nLoop = 2; //此处由原来的黄装备改为蓝装备
- nLoop = 2; //此处由原来的黄装备改为蓝装备
- iType = MAGIC_ITEM; //此处由原来的黄装备改为蓝装备
复制代码
只要将数据库中怪物物品掉率调低一点就可以全爆四属性黄金装备。
9、修正百级技能超过120级后还往上加的问题。打开User2.cpp(查找over100 即可到达接近以下语句的位置) - int backupskill = m_UserSkill[emptyskillslot].sSid;
- int backupskilllevel = m_UserSkill[emptyskillslot].tLevel;
- m_UserSkill[emptyskillslot].sSid = selectedskill;
- if( m_sLevel > 99 || m_sLevel < 120) //此处控制100~120的技能点
- {
- m_UserSkill[emptyskillslot].tLevel = (BYTE)((m_sLevel % 100) + 1);
- }
- if( m_sLevel >= 120) //此处控制120级后,固定技能点为20
- {
- m_UserSkill[emptyskillslot].tLevel = (BYTE)(20);
- }
复制代码
|