- Mesaj
- 694
- Çözümler
- 41
- Beğeni
- 165
- Puan
- 609
- Ticaret Puanı
- 0
Linkleri görebilmek için
giriş yap veya kayıt ol.
Sorun bu arkadaşlar hiç syserr yok maalesef fixi bilen var mı ?
//ch->CheckMount();ch->CheckMount();
Evet questleri kaldırdım.Questleri kaldırdın mı?
Öldükten sonra 2 defa Pvp koruma etkinleştirildi çıkıyor normal mi?char cppde die komutu varsa eğer oraya öldüğünde unmount çektir (yada binekten seni indiren neyse) binekten indirsin seni. çözülür.
Muhtemelen öldüğünde binekten iniyor bir tanesi onun için diğeri de tekrar biniyor onun için.Öldükten sonra 2 defa Pvp koruma etkinleştirildi çıkıyor normal mi?
Linkleri görebilmek için giriş yap veya kayıt ol.
Zaten sorunsuz bir filesten çektim sistemiMuhtemelen öldüğünde binekten iniyor bir tanesi onun için diğeri de tekrar biniyor onun için.
bu hatayı bende bir fileste görmüştüm hiç uğraşmadım sildim sana tavsiyem sistemi komple düzgün çalışan bir filesle karşılaştır. Mutlaka eksik bir şeyler vardır.
Burada başla komutundaki çağırma fonksiyonlarını kaldır.
ACMD(do_restart)
{
if (false == ch->IsDead())
{
ch->ChatPacket(CHAT_TYPE_COMMAND, "CloseRestartWindow");
ch->StartRecoveryEvent();
return;
}
if (NULL == ch->m_pkDeadEvent)
return;
int iTimeToDead = (event_time(ch->m_pkDeadEvent) / passes_per_sec);
if (subcmd != SCMD_RESTART_TOWN && (!ch->GetWarMap() || ch->GetWarMap()->GetType() == GUILD_WAR_TYPE_FLAG))
{
if (!test_server)
{
if (ch->IsHack())
{
//성지 맵일경우에는 체크 하지 않는다.
if (false == CThreeWayWar::instance().IsSungZiMapIndex(ch->GetMapIndex()))
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("아직 재시작 할 수 없습니다. (%d초 남음)"), iTimeToDead - (180 - g_nPortalLimitTime));
return;
}
}
#define eFRS_HERESEC 170
if (iTimeToDead > eFRS_HERESEC)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("아직 재시작 할 수 없습니다. (%d초 남음)"), iTimeToDead - eFRS_HERESEC);
return;
}
}
}
//PREVENT_HACK
//DESC : 창고, 교환 창 후 포탈을 사용하는 버그에 이용될수 있어서
// 쿨타임을 추가
if (subcmd == SCMD_RESTART_TOWN)
{
if (ch->IsHack())
{
//길드맵, 성지맵에서는 체크 하지 않는다.
if ((!ch->GetWarMap() || ch->GetWarMap()->GetType() == GUILD_WAR_TYPE_FLAG) ||
false == CThreeWayWar::instance().IsSungZiMapIndex(ch->GetMapIndex()))
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("아직 재시작 할 수 없습니다. (%d초 남음)"), iTimeToDead - (180 - g_nPortalLimitTime));
return;
}
}
#define eFRS_TOWNSEC 173
if (iTimeToDead > eFRS_TOWNSEC)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("아직 마을에서 재시작 할 수 없습니다. (%d 초 남음)"), iTimeToDead - eFRS_TOWNSEC);
return;
}
}
//END_PREVENT_HACK
ch->ChatPacket(CHAT_TYPE_COMMAND, "CloseRestartWindow");
ch->GetDesc()->SetPhase(PHASE_GAME);
ch->SetPosition(POS_STANDING);
ch->StartRecoveryEvent();
//FORKED_LOAD
//DESC: 삼거리 전투시 부활을 할경우 맵의 입구가 아닌 삼거리 전투의 시작지점으로 이동하게 된다.
if (1 == quest::CQuestManager::instance().GetEventFlag("threeway_war"))
{
if (subcmd == SCMD_RESTART_TOWN || subcmd == SCMD_RESTART_HERE)
{
if (true == CThreeWayWar::instance().IsThreeWayWarMapIndex(ch->GetMapIndex()) &&
false == CThreeWayWar::instance().IsSungZiMapIndex(ch->GetMapIndex()))
{
ch->GoHome();
ch->ReviveInvisible(5);
ch->PointChange(POINT_HP, ch->GetMaxHP() - ch->GetHP());
ch->PointChange(POINT_SP, ch->GetMaxSP() - ch->GetSP());
return;
}
//성지
if (true == CThreeWayWar::instance().IsSungZiMapIndex(ch->GetMapIndex()))
{
if (CThreeWayWar::instance().GetReviveTokenForPlayer(ch->GetPlayerID()) <= 0)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("성지에서 부활 기회를 모두 잃었습니다! 마을로 이동합니다!"));
ch->GoHome();
}
else
{
ch->Show(ch->GetMapIndex(), GetSungziStartX(ch->GetEmpire()), GetSungziStartY(ch->GetEmpire()));
}
ch->PointChange(POINT_HP, ch->GetMaxHP() - ch->GetHP());
ch->PointChange(POINT_SP, ch->GetMaxSP() - ch->GetSP());
ch->ReviveInvisible(5);
return;
}
}
}
//END_FORKED_LOAD
if (ch->GetDungeon())
ch->GetDungeon()->UseRevive(ch);
if (ch->GetWarMap() && !ch->IsObserverMode())
{
CWarMap* pMap = ch->GetWarMap();
DWORD dwGuildOpponent = pMap ? pMap->GetGuildOpponent(ch) : 0;
if (dwGuildOpponent)
{
switch (subcmd)
{
case SCMD_RESTART_TOWN:
sys_log(0, "do_restart: restart town");
PIXEL_POSITION pos;
if (CWarMapManager::instance().GetStartPosition(ch->GetMapIndex(), ch->GetGuild()->GetID() < dwGuildOpponent ? 0 : 1, pos))
ch->Show(ch->GetMapIndex(), pos.x, pos.y);
else
ch->ExitToSavedLocation();
ch->PointChange(POINT_HP, ch->GetMaxHP() - ch->GetHP());
ch->PointChange(POINT_SP, ch->GetMaxSP() - ch->GetSP());
ch->ReviveInvisible(5);
#ifdef ENABLE_MOUNT_COSTUME_SYSTEM
ch->CheckMount();
#endif
break;
case SCMD_RESTART_HERE:
sys_log(0, "do_restart: restart here");
ch->RestartAtSamePos();
//ch->Show(ch->GetMapIndex(), ch->GetX(), ch->GetY());
ch->PointChange(POINT_HP, ch->GetMaxHP() - ch->GetHP());
ch->PointChange(POINT_SP, ch->GetMaxSP() - ch->GetSP());
ch->ReviveInvisible(5);
#ifdef ENABLE_MOUNT_COSTUME_SYSTEM
ch->CheckMount();
#endif
break;
}
return;
}
}
switch (subcmd)
{
case SCMD_RESTART_TOWN:
sys_log(0, "do_restart: restart town");
PIXEL_POSITION pos;
if (SECTREE_MANAGER::instance().GetRecallPositionByEmpire(ch->GetMapIndex(), ch->GetEmpire(), pos))
ch->WarpSet(pos.x, pos.y);
else
ch->GoHome();
ch->PointChange(POINT_HP, 50 - ch->GetHP());
ch->DeathPenalty(1);
break;
case SCMD_RESTART_HERE:
sys_log(0, "do_restart: restart here");
ch->RestartAtSamePos();
//ch->Show(ch->GetMapIndex(), ch->GetX(), ch->GetY());
ch->PointChange(POINT_HP, 50 - ch->GetHP());
ch->DeathPenalty(0);
ch->ReviveInvisible(5);
#ifdef ENABLE_MOUNT_COSTUME_SYSTEM
ch->CheckMount();
#endif
break;
}
}
//ch->CheckMount();ch->CheckMount();