HERAKLES Otomatik Avlı kalıcı sunucu. 19 Haziran'da açılıyor. Atius & Wizard güvencesiyle hemen kayıt ol, ön kayıt ödülleri aktif. HEMEN TIKLA!
teşekkurlerSelamlar. Flame Dungeon, Snow Dungeon, Devils Catacomb ve Deviltower Zone için geri dönüş sistemini sizlerle paylaşmak istiyorum.
[CODE lang="cpp" title="common\tables.h"]//aratın;
int aiPremiumTimes[PREMIUM_MAX_NUM];
//altına ekleyin;
long d_map_index;[/CODE]
[CODE lang="cpp" title="db\src\ClientManagerPlayer.cpp"]//aratın;
"horse_skill_point = %d, "
//altına ekleyin;
"d_map_index = %d, "
//tekrar aratın;
pkTab->horse_skill_point);
//değiştirin;
pkTab->horse_skill_point,
pkTab->d_map_index);
//tekrar aratın;
,horse_skill_point
//devamına ekleyin;
,d_map_index
//tekrar aratın;
str_to_number(pkTab->horse_skill_point, row[col++]);
//altına ekleyin;
str_to_number(pkTab->d_map_index, row[col++]);[/CODE]
[CODE lang="cpp" title="game\src\char.cpp"]//aratın;
tab.horse = GetHorseData();
//altına ekleyin;
tab.d_map_index = m_points.d_map_index;
//tekrar aratın;
m_points.iRandomSP = t->sRandomSP;
//altına ekleyin;
m_points.d_map_index = t->d_map_index;[/CODE]
[CODE lang="cpp" title="game\src\char.h"]//aratın;
BYTE skill_group;
//altına ekleyin;
long d_map_index;
//tekrar aratın;
ESex GET_SEX(LPCHARACTER ch);
//üstüne ekleyin;
public:
long LicyPlayerDungeonIndex() { return m_points.d_map_index; }
void MniusPlayerDungeonIndex(long vnum) { m_points.d_map_index = vnum; }[/CODE]
[CODE lang="cpp" title="game\src\dungeon.cpp"]//aratın;
void CDungeon::Initialize()
[
...
]
//altına ekleyin;
struct FWarpToLicyDungeonCoords
{
FWarpToLicyDungeonCoords(long lMapIndex, long X, long Y, LPDUNGEON d)
: m_lMapIndex(lMapIndex), m_x(X), m_y(Y), m_pkDungeon(d)
{
}
void operator () (LPCHARACTER ch)
{
ch->SaveExitLocation();
ch->WarpSet(m_x, m_y, m_lMapIndex);
}
long m_lMapIndex;
long m_x;
long m_y;
LPDUNGEON m_pkDungeon;
};
void CDungeon::Join_Coords(LPCHARACTER ch, long X, long Y, long index)
{
if (SECTREE_MANAGER::instance().GetMap(m_lMapIndex) == NULL)
{
sys_err("CDungeon: SECTREE_MAP not found for #%ld", m_lMapIndex);
return;
}
X*=100;
Y*=100;
FWarpToLicyDungeonCoords(m_lMapIndex, X, Y, this) (ch);
}
void CDungeon::JoinParty_Coords(LPPARTY pParty, long X, long Y, long index)
{
pParty->SetDungeon(this);
m_map_pkParty.insert(std::make_pair(pParty,0));
if (SECTREE_MANAGER::instance().GetMap(m_lMapIndex) == NULL)
{
sys_err("CDungeon: SECTREE_MAP not found for #%ld", m_lMapIndex);
return;
}
X*=100;
Y*=100;
FWarpToLicyDungeonCoords f(m_lMapIndex, X, Y, this);
pParty->ForEachOnMapMember(f,index);
}
//tekrar aratın;
deadEvent = event_create(dungeon_dead_event, info, PASSES_PER_SEC(10));
//değiştirin;
deadEvent = event_create(dungeon_dead_event, info, PASSES_PER_SEC(300));[/CODE]
[CODE lang="cpp" title="game\src\dungeon.h"]//aratın;
void DecMember(LPCHARACTER ch);
//altına ekleyin;
void JoinParty_Coords(LPPARTY pParty, long X, long Y, long index);
void Join_Coords(LPCHARACTER ch, long X, long Y, long index);[/CODE]
[CODE lang="cpp" title="game\src\questlua_dungeon.cpp"]//aratın;
void RegisterDungeonFunctionTable()
//üstüne ekleyin;
int dungeon_join_coords(lua_State* L)
{
if (lua_gettop(L)<3 || !lua_isnumber(L,1) || !lua_isnumber(L, 2) || !lua_isnumber(L,3))
{
sys_err("not enough argument");
return 0;
}
long lMapIndex = (long)lua_tonumber(L, 1);
LPDUNGEON pDungeon = CDungeonManager::instance().Create(lMapIndex);
if (!pDungeon)
return 0;
LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr();
long index2 = (long)ch->GetMapIndex();
if (ch->GetParty() && ch->GetParty()->GetLeaderPID() == ch->GetPlayerID())
pDungeon->JoinParty_Coords(ch->GetParty(), (long)lua_tonumber(L, 2), (long)lua_tonumber(L, 3),index2);
else if (!ch->GetParty())
pDungeon->Join_Coords(ch, (long)lua_tonumber(L, 2), (long)lua_tonumber(L, 3),index2);
return 0;
}
//tekrar aratın;
{ NULL, NULL }
//üstüne ekleyin;
{ "join_cords", dungeon_join_coords },[/CODE]
[CODE lang="cpp" title="game\src\questlua_pc.cpp"]//aratın;
void RegisterPCFunctionTable()
//üstüne ekleyin;
int pc_get_dungeonindex(lua_State * L)
{
lua_pushnumber(L, CQuestManager::instance().GetCurrentCharacterPtr()->LicyPlayerDungeonIndex());
return 1;
}
int pc_set_dungeonindex(lua_State * L)
{
if (!lua_isnumber(L, 1))
{
sys_err("invalid argument");
return 0;
}
else
{
long newIndex = lua_tonumber(L, 1);
LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr();
ch->MniusPlayerDungeonIndex(newIndex);
return 0;
}
}
//tekrar aratın;
{ NULL, NULL }
//üstüne ekleyin;
{"get_dungeonindex", pc_get_dungeonindex },
{"set_dungeonindex", pc_set_dungeonindex },[/CODE]
Okutulacak dosyalar ekte yer alıyor.
İyi forumlar dilerim.
Belki de içeriği incelemelisiniz. Sakin olun.aynen aynenkesinlikle aynı değildir ve bende körüm zaten
https://forum.turkmmo.com/konu/3750077-c-zindan-geri-donus-sistemi/
kesinlikle bu konu ile aynı yapıya sahip değil ve sadece struct FWarpToDungeonCoords bunu alıp struct FWarpToLicyDungeonCoords bu şekilde değiştirip paylaşmadınhadi git kendini kandır kodun ismini değiştirince geliştirici olunuyor sanırım

hadi git kendini kandır yavrumBelki de içeriği incelemelisiniz. Sakin olun.![]()
https://forum.turkmmo.com/konu/3785108-zindana-geri-donus-set-kule-nemere-razador-catacomb
Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)
Benzer konular
- Cevaplar
- 8
- Görüntüleme
- 536
- Cevaplar
- 28
- Görüntüleme
- 1K
- Cevaplar
- 17
- Görüntüleme
- 1K

kesinlikle aynı değildir ve bende körüm zaten