*Problemă: Nu ma lasa sa creez breasla....
Tipologie server: PvM
*Resursă folosită: -
*ServerFiles utilizat: -
*Syserr: -
Poză: -
*Detalii suplimentare: Nu pot creea breasla, ma refer aici ca nu ma lasa sa o creez, quest am, iar cand dau sa creez o breasla, imi da sa pun nume, dau ok, si dupa dispare fereastra aia mica unde am pus numele, si nu se intampla nimic...
Precizez ca am golit breslele din navicat, iar questul pe care il folosesc este funtional, pentru ca l-am mai folosit si a mers perfect...
Iar erori, de asemenea, nu primesc...
Stie careva de la ce e problema? Va rog...
Multumesc anticipat!
Problema creare breasla
- Athero
-

- Mesaje: 3936
- Membru din: 17 Aug 2017, 00:08
- Aprecieri: 559
- Mulţumiri: 7142
- Discord: Copiază ID
Intră în guild_manager.cpp din sursă şi caută.
Înlocuieşte toată funcţia cu :DWORD CGuildManager::CreateGuild(TGuildCreateParameter& gcp)
Şi acum rulează questul ăsta.DWORD CGuildManager::CreateGuild(TGuildCreateParameter& gcp)
{
if (!gcp.master)
return 0;
if (!check_name(gcp.name))
{
gcp.master->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<e¢¬¢¬ea¢æ©«A¡°> e¢¬¢¬ea¢æ©«A¡° i¢¥e|a¢æži¢¥ i ia¢æ¡Ë¨Ïia¢æ¡ËE©«i¡×a?¡þ ia¢æ¡ËA iA ¥ìea¢æ©öE¢Óea¢æ©ö¢´."));
return 0;
}
static char __escape_name[GUILD_NAME_MAX_LEN * 2 + 1];
DBManager::instance().EscapeString(__escape_name, sizeof(__escape_name), static_cast<const char *>(gcp.name),
sizeof(gcp.name));
std::auto_ptr<SQLMsg> pmsg(DBManager::instance().DirectQuery("SELECT COUNT(*) FROM guild%s WHERE name = '%s'",
get_table_postfix(), __escape_name));
if (pmsg->Get()->uiNumRows > 0)
{
MYSQL_ROW row = mysql_fetch_row(pmsg->Get()->pSQLResult);
if (!(row[0] && row[0][0] == '0'))
{
gcp.master->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<e¢¬¢¬ea¢æ©«A¡°> i¢¥e?¢¬ e¡Æa?¡Ëia?¡þ i¢¥e|a¢æžiE©« e¢¬¢¬ea¢æ©«A¡°e¡Æa?¡þ ižE¢ÓiA ¥ìea¢æ©öE¢Óea¢æ©ö¢´."));
return 0;
}
}
else
{
gcp.master->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<e¢¬¢¬ea¢æ©«A¡°> e¢¬¢¬ea¢æ©«A¡°e¡Í¨ù i¨¡¡¯ia¢æž¡¾ia¢æ¡Ë iE¢ÓE©« ia¢æ¡±a¢æ iA ¥ìea¢æ©öE¢Óea¢æ©ö¢´."));
return 0;
}
// new CGuild(gcp) queries guild tables and tell dbcache to notice other game servers.
// other game server calls CGuildManager::LoadGuild to load guild.
CGuild * pg = M2_NEW CGuild(gcp);
m_mapGuild.insert(std::make_pair(pg->GetID(), pg));
return pg->GetID();
}
quest guild_manage begin
state start begin
when
11000.chat."Paraseste breasla" or
11002.chat."Paraseste breasla" or
11004.chat."Paraseste breasla" with pc.hasguild() and not pc.isguildmaster() and npc.get_empire() == pc.get_empire() begin
say_title("Gardian:")
say("")
say("Chiar vrei sa parasesti aceasta breasla?")
say("Sunt sigur ca membrii vor fi foarte")
say("dezamagiti de tine ...")
say("")
local s = select("Sunt sigur de asta", "Ma mai gândesc")
if s==1 then
say_title("Gardian:")
say("")
say("Ai parasit breasla!")
say("")
pc.remove_from_guild()
end
end
when
11000.chat."Desfiinteaza breasla" or
11002.chat."Desfiinteaza breasla" or
11004.chat."Desfiinteaza breasla" with pc.hasguild() and pc.isguildmaster() and npc.get_empire() == pc.get_empire() begin
say_title("Gardian:")
say("")
say("Am depus mult efort în crearea acestei bresle")
say("iar acum tu vrei sa o distrugi? Toata experienta")
say("si amintirile vor fi pierdute pentru totdeauna.")
say("")
say("Chiar vrei sa distrugi aceasta breasla?")
say("")
local s = select("Da", "Nu")
if s==1 then
say_title("Gardian:")
say("")
say("Ai distrus breasla!")
say("")
pc.destroy_guild()
end
end
when
11000.chat."Înfiinteaza o breasla " or
11002.chat."Înfiinteaza o breasla " or
11004.chat."Înfiinteaza o breasla " with not pc.hasguild() and not pc.isguildmaster() and npc.get_empire() == pc.get_empire() begin
say_title("Gardian:")
say("")
say("Pentru a înfiinta o breasla trebuie sa ai minim")
say("nivelul 40 si 500.000 Yang.")
say("")
say("Crezi ca îndeplinesti toate conditiile?")
say("")
local s = select("Da", "Nu")
if s == 2 then
return
elseif pc.get_level()<40 then
say_title("Gardian:")
say("")
say("Nivelul tau este "..pc.get_level())
say("")
say_reward("Nivel necesar: 40")
say("")
return
elseif pc.get_gold()<500000 then
say_title("Gardian:")
say("")
say("Revin-o când ai destui bani.")
say("")
return
end
game.request_make_guild()
end
end
end
game/src/guild_manager.cppCauta si inlocuieste toata functia
DWORD CGuildManager::CreateGuild(TGuildCreateParameter& gcp)cu
DWORD CGuildManager::CreateGuild(TGuildCreateParameter& gcp)
{
if (!gcp.master)
return 0;
if (!check_name(gcp.name))
{
gcp.master->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<길드> 길드 이름이 적합하지 않습니다."));
return 0;
}
std::auto_ptr<SQLMsg> pmsg(DBManager::instance().DirectQuery("SELECT COUNT(*) FROM guild%s WHERE name = '%s'",
get_table_postfix(), gcp.name));
if (pmsg->Get()->uiNumRows > 0)
{
MYSQL_ROW row = mysql_fetch_row(pmsg->Get()->pSQLResult);
if (!(row[0] && row[0][0] == '0'))
{
gcp.master->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<길드> 이미 같은 이름의 길드가 있습니다."));
return 0;
}
}
else
{
gcp.master->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<길드> 길드를 생성할 수 없습니다."));
return 0;
}
// new CGuild(gcp) queries guild tables and tell dbcache to notice other game servers.
// other game server calls CGuildManager::LoadGuild to load guild.
CGuild * pg = M2_NEW CGuild(gcp);
m_mapGuild.insert(std::make_pair(pg->GetID(), pg));
return pg->GetID();
}
Salveaza, compileaza si inlocuieste game-ul vechi cu cel nou (nu uita permisiuni 7777).Acum ruleaza quest-ul asta:
https://ufile.io/zy3d7
~ Strix.
RedFear scrie:*Problemă: Nu ma lasa sa creez breasla....
Tipologie server: PvM
*Resursă folosită: -
*ServerFiles utilizat: -
*Syserr: -
Poză: -
*Detalii suplimentare: Nu pot creea breasla, ma refer aici ca nu ma lasa sa o creez, quest am, iar cand dau sa creez o breasla, imi da sa pun nume, dau ok, si dupa dispare fereastra aia mica unde am pus numele, si nu se intampla nimic...
Precizez ca am golit breslele din navicat, iar questul pe care il folosesc este funtional, pentru ca l-am mai folosit si a mers perfect...
Iar erori, de asemenea, nu primesc...
Stie careva de la ce e problema? Va rog...
Multumesc anticipat!
Input main cpp
Cod: Selectaţi tot
void CInputMain::AnswerMakeGuild(LPCHARACTER ch, const char* c_pData)
{
TPacketCGAnswerMakeGuild* p = (TPacketCGAnswerMakeGuild*) c_pData;
if (ch->GetGold() < 200000)
return;
if (ch->GetGuild())
return;
CGuildManager& gm = CGuildManager::instance();
TGuildCreateParameter cp;
memset(&cp, 0, sizeof(cp));
cp.master = ch;
strlcpy(cp.name, p->guild_name, sizeof(cp.name));
if (cp.name[0] == 0 || !check_name(cp.name))
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("적합하지 않은 길드 이름 입니다."));
return;
}
DWORD dwGuildID = gm.CreateGuild(cp);
if (dwGuildID)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<길드> [%s] 길드가 생성되었습니다."), cp.name);
int GuildCreateFee = 20000;
ch->PointChange(POINT_GOLD, -GuildCreateFee);
DBManager::instance().SendMoneyLog(MONEY_LOG_GUILD, ch->GetPlayerID(), -GuildCreateFee);
char Log[128];
snprintf(Log, sizeof(Log), "GUILD_NAME %s MASTER %s", cp.name, ch->GetName());
LogManager::instance().CharLog(ch, 0, "MAKE_GUILD", Log);
if (g_iUseLocale)
ch->RemoveSpecifyItem(GUILD_CREATE_ITEM_VNUM, 1);
//ch->SendGuildName(dwGuildID);
}
else
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<길드> 길드 생성에 실패하였습니다."));
} Mersi mult, exact asta era problema, am rezolvat-o.[A]14K scrie:RedFear scrie:*Problemă: Nu ma lasa sa creez breasla....
Tipologie server: PvM
*Resursă folosită: -
*ServerFiles utilizat: -
*Syserr: -
Poză: -
*Detalii suplimentare: Nu pot creea breasla, ma refer aici ca nu ma lasa sa o creez, quest am, iar cand dau sa creez o breasla, imi da sa pun nume, dau ok, si dupa dispare fereastra aia mica unde am pus numele, si nu se intampla nimic...
Precizez ca am golit breslele din navicat, iar questul pe care il folosesc este funtional, pentru ca l-am mai folosit si a mers perfect...
Iar erori, de asemenea, nu primesc...
Stie careva de la ce e problema? Va rog...
Multumesc anticipat!
Input main cpp
Cod: Selectaţi tot
void CInputMain::AnswerMakeGuild(LPCHARACTER ch, const char* c_pData) { TPacketCGAnswerMakeGuild* p = (TPacketCGAnswerMakeGuild*) c_pData; if (ch->GetGold() < 200000) return; if (ch->GetGuild()) return; CGuildManager& gm = CGuildManager::instance(); TGuildCreateParameter cp; memset(&cp, 0, sizeof(cp)); cp.master = ch; strlcpy(cp.name, p->guild_name, sizeof(cp.name)); if (cp.name[0] == 0 || !check_name(cp.name)) { ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("적합하지 않은 길드 이름 입니다.")); return; } DWORD dwGuildID = gm.CreateGuild(cp); if (dwGuildID) { ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<길드> [%s] 길드가 생성되었습니다."), cp.name); int GuildCreateFee = 20000; ch->PointChange(POINT_GOLD, -GuildCreateFee); DBManager::instance().SendMoneyLog(MONEY_LOG_GUILD, ch->GetPlayerID(), -GuildCreateFee); char Log[128]; snprintf(Log, sizeof(Log), "GUILD_NAME %s MASTER %s", cp.name, ch->GetName()); LogManager::instance().CharLog(ch, 0, "MAKE_GUILD", Log); if (g_iUseLocale) ch->RemoveSpecifyItem(GUILD_CREATE_ITEM_VNUM, 1); //ch->SendGuildName(dwGuildID); } else ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<길드> 길드 생성에 실패하였습니다.")); }
-
- Informaţie
-
Cine este conectat
Utilizatori ce ce navighează pe acest forum: Baidu [Spider] și 29 vizitatori


daca te-am ajutat.

