|
You last visited: Today at 07:39
Advertisement
Gildenlager in den GoW Files!
Discussion on Gildenlager in den GoW Files! within the Flyff Private Server forum part of the Flyff category.
04/05/2015, 07:10
|
#1
|
elite*gold: 20
Join Date: Jun 2013
Posts: 445
Received Thanks: 76
|
Gildenlager in den GoW Files!
Warum funktioniert das Gildenlager der Giants of War Files nicht?
Das MMI_ ist ganz normal bei Juria in der Character.inc definiert.
|
|
|
04/08/2015, 06:23
|
#2
|
elite*gold: 400
Join Date: May 2012
Posts: 156
Received Thanks: 37
|
Was geht denn nicht? Gibt es den Menüpunkt nicht?
|
|
|
04/08/2015, 12:12
|
#3
|
elite*gold: 20
Join Date: Jun 2013
Posts: 445
Received Thanks: 76
|
Obwohl er unter der normalen bank definiert ist wird der punkt ingame nicht angezeigt genau ^^.
AddMenu( MMI_BANKING );
AddMenu( MMI_GUILDBANKING ); //Wird ingame nicht angezeigt.
|
|
|
04/08/2015, 15:19
|
#4
|
elite*gold: 7
Join Date: Sep 2012
Posts: 4,466
Received Thanks: 3,219
|
Quote:
Originally Posted by Serenity-.
Obwohl er unter der normalen bank definiert ist wird der punkt ingame nicht angezeigt genau ^^.
AddMenu( MMI_BANKING );
AddMenu( MMI_GUILDBANKING ); //Wird ingame nicht angezeigt.
|
Schau mal bitte ob das bei anderen Npcs so ist.
|
|
|
04/08/2015, 18:53
|
#5
|
elite*gold: 20
Join Date: Jun 2013
Posts: 445
Received Thanks: 76
|
bei Juria und bei der post isses so
|
|
|
04/08/2015, 19:16
|
#6
|
elite*gold: 6
Join Date: Nov 2012
Posts: 1,470
Received Thanks: 2,222
|
Schonmal geschaut ob in deiner WorldServer.ini "GUILDBANK" eingetragen ist? ^^
|
|
|
04/08/2015, 19:20
|
#7
|
elite*gold: 20
Join Date: Jun 2013
Posts: 445
Received Thanks: 76
|
is drin
|
|
|
04/08/2015, 22:56
|
#8
|
elite*gold: 0
Join Date: Oct 2014
Posts: 57
Received Thanks: 68
|
Hm, schau ma inner Source nach bzw such nach MMI_GUILDBANK und guck dir den code an.
Vllt is da iwas durcheinander geraten.
|
|
|
04/09/2015, 01:35
|
#9
|
elite*gold: 20
Join Date: Jun 2013
Posts: 445
Received Thanks: 76
|
Der Code: (DPSrvr.cpp)
Quote:
/********************************CHECK GUILDBANK AGAIN*********************************/
void CDPSrvr::OnPutItemGuildBank( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
{
#ifdef __SYSSECURITY
try{
#endif
if( g_eLocal.GetState( ENABLE_GUILD_INVENTORY ) == FALSE )
return;
BYTE nId, mode;
DWORD nItemNum;
ar >> nId >> nItemNum >> mode;
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );
if( IsValidObj( pUser ) )
{
#if __VER >= 15 // __GUILD_HOUSE
if( !pUser->GetWorld() || !GuildHouseMng->IsGuildHouse( pUser->GetWorld()->GetID() ) )
#endif // __GUILD_HOUSE
if( !CNpcChecker::GetInstance()->IsCloseNpc( MMI_GUILDBANKING, pUser->GetWorld(), pUser->GetPos() ) )
return;
if( mode == 0 ) // 길드창고에는 Gold를 넣을수 없습니다.
return;
if( nId < 0 || nId > pUser->m_Inventory.GetMax() )
return;
CItemElem* pItemElem = pUser->m_Inventory.GetAtId( nId );
if( IsUsableItem( pItemElem ) == FALSE )
return;
if( pItemElem->IsQuest() )
return;
if( pItemElem->IsBinds() )
return;
if( pUser->IsUsing( pItemElem ) )
{
pUser->AddDefinedText( TID_GAME_CANNOT_DO_USINGITEM );
return;
}
ItemProp* pProp = pItemElem->GetProp();
if( pProp->dwParts == PARTS_RIDE && pProp->dwItemJob == JOB_VAGRANT )
return;
if( pUser->m_Inventory.IsEquip( nId ) )
{
pUser->AddDefinedText( TID_GAME_EQUIPTRADE, "" );
return;
}
if( pItemElem->IsCharged() )
return;
if( (short)( nItemNum ) > pItemElem->m_nItemNum )
nItemNum = pItemElem->m_nItemNum;
#ifdef __SECURITY_FIXES
if( (short)(nItemNum) < 1 )
nItemNum = 1;
#else
if( nItemNum < 1 )
nItemNum = 1;
#endif
// GUILD_BANK_STR 'S1','000000','01'
// GUILD BANK 전체 불러오기 ex ) GUILD_BANK_STR 'S1',@im_idGuild,@iserverindex GUILD_BANK_STR 'S1','000000','01'
// GUILD BANK 저장하기 ex ) GUILD_BANK_STR 'U1',@im_idGuild,@iserverindex,@im_nGoldGuild,@im_ apIndex,@im_dwObjIndex,@im_GuildBank GUILD_BANK_STR 'U1','000001','01',0,'$','$','$'
CGuild* pGuild = pUser->GetGuild();
if( pGuild )
{
CItemElem itemElem;
itemElem = *pItemElem;
itemElem.m_nItemNum = (short)nItemNum;
if ( pGuild->m_GuildBank.Add( &itemElem ) )
{
LogItemInfo aLogItem;
aLogItem.Action = "W";
aLogItem.SendName = pUser->GetName();
aLogItem.RecvName = "GUILDBANK";
aLogItem.WorldId = pUser->GetWorld()->GetID();
aLogItem.Gold = aLogItem.Gold2 = pUser->GetGold();
OnLogItem( aLogItem, &itemElem, nItemNum );
pUser->RemoveItem( (BYTE)( nId ), (short)( nItemNum ) );
UpdateGuildBank( pGuild, GUILD_PUT_ITEM, 0, pUser->m_idPlayer, &itemElem, 0, (short)( nItemNum ) );
pUser->AddPutItemGuildBank( &itemElem );
g_UserMng.AddPutItemElem( pUser, &itemElem );
}
else
{
pUser->AddDefinedText( TID_GAME_GUILDBANKFULL, "" ); // 길드창고가 꽉찼시유~
}
}
}
#ifdef __SYSSECURITY
}
catch(...)
{
Error("Error on Line %d in %s",__LINE__,__FILE__);
}
#endif
}
void CDPSrvr::OnGetItemGuildBank( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
{
#ifdef __SYSSECURITY
try{
#endif
if( g_eLocal.GetState( ENABLE_GUILD_INVENTORY ) == FALSE )
return;
BYTE nId, mode;
DWORD dwItemNum;
ar >> nId >> dwItemNum >> mode;
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );
if( IsValidObj( pUser ) )
{
#if __VER >= 15 // __GUILD_HOUSE
if( !pUser->GetWorld() || !GuildHouseMng->IsGuildHouse( pUser->GetWorld()->GetID() ) )
#endif // __GUILD_HOUSE
if( !CNpcChecker::GetInstance()->IsCloseNpc( MMI_GUILDBANKING, pUser->GetWorld(), pUser->GetPos() ) )
return;
if (mode == 0) // Gold를 길드창고에서 빼낼때
{
int nGold = (int)dwItemNum;
if( nGold <= 0 || CanAdd( pUser->GetGold(), nGold ) == FALSE )
return;
CGuild* pGuild = pUser->GetGuild();
if (pGuild && pGuild->IsGetPenya(pUser->m_idPlayer))
{
if( (DWORD)nGold > pGuild->m_nGoldGuild )
return;
pUser->AddGold( nGold, FALSE );
pGuild->m_nGoldGuild -= nGold;
pUser->AddGetGoldGuildBank( nGold, 0, pUser->m_idPlayer, 0 ); // 0은 업데이트 시킨 클라에게
pGuild->DecrementMemberContribution( pUser->m_idPlayer, nGold, 0 );
UpdateGuildBank(pGuild, GUILD_GET_PENYA, 1, pUser->m_idPlayer, NULL, nGold );
LogItemInfo aLogItem;
aLogItem.Action = "Y";
aLogItem.SendName = "GUILDBANK";
aLogItem.RecvName = pUser->GetName();
aLogItem.WorldId = pUser->GetWorld()->GetID();
aLogItem.Gold = pUser->GetGold() - nGold;
aLogItem.Gold2 = pUser->GetGold();
//aLogItem.ItemName = "SEED";
_stprintf( aLogItem.szItemName, "%d", II_GOLD_SEED1 );
aLogItem.itemNumber = nGold;
OnLogItem( aLogItem );
CGuildMember* pMember;
CUser* pUsertmp;
map<u_long, CGuildMember*>::iterator i = pGuild->m_mapPMember.begin();
for( ; i != pGuild->m_mapPMember.end(); ++i )
{
pMember = i->second;
pUsertmp = (CUser*)prj.GetUserByID( pMember->m_idPlayer );
if( IsValidObj( pUsertmp ) && pUsertmp != pUser )
{
pUsertmp->AddGetGoldGuildBank( nGold, 2, pUser->m_idPlayer, 0 ); // 2는 업데이트 해야할 클라이게
}
}
g_DPCoreClient.SendGuildMsgControl_Bank_Penya( pUser, nGold, 2, 0 ); // 2는 업데이트 해야할 다른 월드서버의 클라이언트
}
// Core 서버에 전 서버에 업데이트 되야함을 알린다.
}
else if (mode == 1) // 아이템을 길드창고에서 빼낼때
{
CGuild* pGuild = pUser->GetGuild();
if (pGuild && pGuild->IsGetItem(pUser->m_idPlayer))
{
if( nId < 0 || nId > pGuild->m_GuildBank.GetMax() )
return;
CItemElem* pItemElem = pGuild->m_GuildBank.GetAtId( nId );
if( NULL == pItemElem )
return;
if( (short)( dwItemNum ) > pItemElem->m_nItemNum )
dwItemNum = pItemElem->m_nItemNum;
#ifdef __SECURITY_FIXES
if( (short)(dwItemNum) < 1 )
dwItemNum = 1;
#else
if( dwItemNum < 1 )
dwItemNum = 1;
#endif
CItemElem itemElem;
itemElem = *pItemElem;
itemElem.m_nItemNum = (short)( dwItemNum );
itemElem.m_dwObjId = pItemElem->m_dwObjId;
if( pUser->m_Inventory.Add( &itemElem ) )
{
if (pItemElem->m_nItemNum > (int)( dwItemNum ) )
pItemElem->m_nItemNum = (short)( pItemElem->m_nItemNum - dwItemNum );
else
pGuild->m_GuildBank.RemoveAtId( nId );
UpdateGuildBank(pGuild, GUILD_GET_ITEM, 0, pUser->m_idPlayer, &itemElem, 0, (short)( dwItemNum ) );
LogItemInfo aLogItem;
aLogItem.Action = "Y";
aLogItem.SendName = "GUILDBANK";
aLogItem.RecvName = pUser->GetName();
aLogItem.WorldId = pUser->GetWorld()->GetID();
aLogItem.Gold = aLogItem.Gold2 = pUser->GetGold();
OnLogItem( aLogItem, &itemElem, dwItemNum );
// 클라이언트에게 아이템이 인벤토리에 추가됨을 알린다.
pUser->AddGetItemGuildBank( &itemElem );
// 자신을 제외한 모든 클라이언트에게 알려준다.
g_UserMng.AddGetItemElem( pUser, &itemElem );
}
else
{
// 꽉차서 넣을수 가 없음. 메세지 처리
pUser->AddBankIsFull();
}
}
}
}
#ifdef __SYSSECURITY
}
catch(...)
{
Error("Error on Line %d in %s",__LINE__,__FILE__);
}
#endif
}
/***********************************GUILDBANK CHECK AGAIN END************************************/
|
|
|
|
04/09/2015, 02:08
|
#10
|
elite*gold: 0
Join Date: Oct 2014
Posts: 57
Received Thanks: 68
|
Nein, daran wird es nicht liegen. Er ruft ja erst die beiden Funktionen nachdem du auf das Menü geklickt hast auf. Suche mal das Menü MMI_GUILDBANKING in der Source und schick davon mal den Code^^ Also ich rede jetz nur vom Clientside code.
|
|
|
 |
Similar Threads
|
[R] Gildenlager Fix
03/05/2015 - Metin2 PServer Guides & Strategies - 12 Replies
Hallo,
da ich immer wieder sehe, dass manche wertlosen Individuen meinen Fix für das Gildenlager von Professor Ente releasen oder auch verkaufen, release ich ihn noch mal.
Diesmal aber nur den Fix & eine Anleitung, wie man ihn einbaut (nicht die ganze Quest).
Wie man es einbaut
In der Quest sucht ihr nach function insert_item(cell,slot,tab)
Unter der folgenden Zeile.
|
[S]Gildenlager
02/10/2015 - Metin2 Private Server - 4 Replies
Hey leute bin auf der suche nach dem gildenlager von prof. ente
kann auch verbuggt sein
es währe echt nett wenn ihr es mir senden würdet
Thx im vorraus
MFG
|
Gildenlager
01/17/2015 - Metin2 Private Server - 1 Replies
Hey,
kann mir einer pls helfen beim Gildenlager ?
Und zwar geht es dadrum, dass ich beim Gildenlager rechte verteile, jedoch kann ich die Rechte nicht verwenden. Ab und zu kann ich sogar kein Namen eintragen, um überhaupt Rechte zu verteilen... ?
|
Gildenlager Bug or so :D
01/16/2015 - Metin2 Private Server - 5 Replies
Tag,hab mir mal das Gildenlager eingebaut,soweit geht alles jedoch kann ich keine Items in das Lager lagern aber Yang geht.
Hoffentlich kennt jemand eine Lösung
Screen
Screenshot by Lightshot
Screenshot by Lightshot
Syserr spuckt nichts aus
|
[Buying] Gildenlager
12/16/2014 - Metin2 Trading - 1 Replies
Servus!
Suche die komplett entbuggte Version des Gildenlager's.
Bitte in Skype oder per PN melden.
LG
_Point_
|
All times are GMT +1. The time now is 07:39.
|
|