Jump to content

Leaderboard


Popular Content

Showing content with the highest reputation on 09/18/2020 in all areas

  1. 1 point
    I and (I hope other moderators) will be able to do as I do, which is marking Questions & Help, with "Solved ✔" in the Topic title, so that if players use the term "Solved" they can reference to probably similar questions already asked that has an answer, so that it is easier for them to find the solution. Thanks.
  2. 1 point
    Weren't exp formula for character max level is in charlvup.txt and not lifelvup.txt?
  3. 1 point
    01010042 - Lance Model view Find Texture Model in Item Model -> Item -> 01010042, Copy Paste the one you want to change, rename it to 01010042. Get a hex editor, open the new 01010042 in hex, change values inside to read 01010042.lgo and .tga or png depending on file format. Texture -> Item, Copy new the one you want, rename it to 01010042.
  4. 1 point
    Bug Title: amplifier unlimited stats Bug Description: remove amps stats after switch or use a ticket in same region , unlimited stats time if player login after real ticks finished example : used nana for 10 min , if player logged out then logged after 11min or more nana will be 15999998 seconds Status: Closed Author: mkhzaleh this will save real time and stop ticks when player logout inside Character.cpp search for void CCharacter::SwitchMap(SubMap *pCSrcMap, cChar *szTarMapName, Long lTarX, Long lTarY, bool bNeedOutSrcMap, Char chSwitchType, Long lTMapCpyNO) replace with void CCharacter::SwitchMap(SubMap *pCSrcMap, cChar *szTarMapName, Long lTarX, Long lTarY, bool bNeedOutSrcMap, Char chSwitchType, Long lTMapCpyNO) {T_B if (!pCSrcMap) return; BreakAction(); if( IsPlayerCha() ) { SetSubMap( pCSrcMap ); GetPlayer()->MisGooutMap(); SetSubMap( NULL ); } if (bNeedOutSrcMap && pCSrcMap) pCSrcMap->GoOut(this); if (!strcmp(pCSrcMap->GetName(), szTarMapName)) // 同地图间切换 { if (GetPlayer()) //LG("enter_map", "SwitchMap(同地图切换,控制角色名 %s[主角色名 %s],地图名 %s)--------\n", GetLogName(), GetPlyMainCha()->GetLogName(), szTarMapName); LG("enter_map", "SwitchMap(the same map switch,control player name %s[mainplayer %s],mapname %s)--------\n", GetLogName(), GetPlyMainCha()->GetLogName(), szTarMapName); if (m_SMoveRedu.ulStartTick == 0xffffffff) m_SMoveRedu.ulStartTick = GetTickCount(); if(!IsPlayerCha()) // 非玩家角色,则在自己的出生点重生 { m_SFightInit.chTarType = 0; m_CChaAttr.Init(GetCat()); Square SSrcShape = GetShape(); Square STarShape = {{lTarX, lTarY}, GetRadius()}; if (!pCSrcMap->Enter(&STarShape, this)) pCSrcMap->Enter(&SSrcShape, this); } else { SStateData2String(this, g_skillstate, 1024); //PStateData2String(this, g_skillstate, 1024); if (IsBoat()) g_strChaState[1] = g_skillstate; else g_strChaState[0] = g_skillstate; Square SSrcShape = GetShape(); Square STarShape = {{lTarX, lTarY}, SSrcShape.radius}; if (!pCSrcMap->EnsurePos(&STarShape, this)) // 进入失败 { lTarX = SSrcShape.centre.x; lTarY = SSrcShape.centre.y; } GetPlayer()->GetMainCha()->Cmd_EnterMap(szTarMapName, lTMapCpyNO, lTarX, lTarY); // 角色护送NPC同步地图切换 GetPlayer()->MisEnterMap(); } SetExistState(enumEXISTS_WAITING); return; } else { bool bVolunteer = false; SubMap *pCBackM = GetSubMap(); SetSubMap(pCSrcMap); pCSrcMap->BeforePlyOutMap(this); //LG("enter_map", "SwitchMap(不同Server地图切换,控制角色名 %s[主角色名 %s],原地图 %s,目标地图 %s)--------\n", GetLogName(), GetPlyMainCha()->GetLogName(), pCSrcMap->GetName(), szTarMapName); LG("enter_map", "SwitchMap(differ Server map switch,control player name %s[mainplayer %s],formerly map %s,aimmap %s)--------\n", GetLogName(), GetPlyMainCha()->GetLogName(), pCSrcMap->GetName(), szTarMapName); if (GetSubMap()) //LG("enter_map", "角色地图名 %s\n", GetSubMap()->GetName()); LG("enter_map", "character map name %s\n", GetSubMap()->GetName()); // 资料写数据库 CPlayer *pPlayer = GetPlayer(); if(!pPlayer) return; //组队面板修改 if(GetPlyMainCha()->IsVolunteer()) { bVolunteer = true; GetPlyMainCha()->Cmd_DelVolunteer(); } game_db.SavePlayer(pPlayer, enumSAVE_TYPE_SWITCH); //LG("enter_map", "保存数据成功\n"); LG("enter_map", "save data succeed\n"); // 角色护送NPC同步地图切换 pPlayer->MisLogout(); SetSubMap(pCBackM); // 发送协议 WPACKET l_wpk =GETWPACKET(); WRITE_CMD(l_wpk, CMD_MT_SWITCHMAP); WRITE_STRING(l_wpk, pCSrcMap->GetName()); WRITE_LONG(l_wpk, pCSrcMap->GetCopyNO()); WRITE_LONG(l_wpk, GetShape().centre.x); WRITE_LONG(l_wpk, GetShape().centre.y); WRITE_STRING(l_wpk, szTarMapName); WRITE_LONG(l_wpk, lTMapCpyNO); WRITE_LONG(l_wpk, lTarX); WRITE_LONG(l_wpk, lTarY); if (chSwitchType == enumSWITCHMAP_DIE) // 死亡导致的地图切换(如果目标地图不可达,则gate强制玩家下线,不会返回源地图) WRITE_CHAR(l_wpk, 1); else WRITE_CHAR(l_wpk, 0); ReflectINFof(this,l_wpk); g_pGameApp->DelPlayerIdx(pPlayer->GetDBChaId()); g_pGameApp->m_dwPlayerCnt--; pPlayer->Free(); // 删除gate server对应的维护信息 pPlayer->OnLogoff(); DELPLAYER(pPlayer); //LG("enter_map", "结束进入地图\n\n"); LG("enter_map", "finish enter map\n\n"); } T_E} inside GameDB.cpp search for PStateData2String(pCha, g_skillstate, defSSTATE_DATE_STRING_LIN); replace with SStateData2String(pCha, g_skillstate, defSSTATE_DATE_STRING_LIN);
  • Newsletter

    Want to keep up to date with all our latest news and information?
    Sign Up
×
×
  • Create New...