|
You last visited: Today at 21:56
Advertisement
Bunch of Question
Discussion on Bunch of Question within the Flyff Private Server forum part of the Flyff category.
06/18/2018, 14:17
|
#1
|
elite*gold: 0
Join Date: Jun 2008
Posts: 355
Received Thanks: 5
|
Bunch of Question
I got a question and to know how to get this fix.
Aura Changer (Jops Glow):
Everytime i restart the server The chosen aura will go back to normal with-out giving me an error.
Sorry for having too much question but I just hope that I will get a decent response not an arrogant response. Thank you!!
|
|
|
06/18/2018, 15:00
|
#2
|
elite*gold: 0
Join Date: Nov 2010
Posts: 203
Received Thanks: 15
|
About the white font in Partyfinder & Controltab, compare your source to a v15/16/17/18 source, most of these sources are made with Black color codes (0xff000000) instead of white (0xffffffff).
Use software like WinMerge to see the differences.
---
For the modelchange part, take a look at this in your source.
pTexture[i] = CWndBase::m_textureMng.AddTexture(D3DDEVICE, MakePath(DIR_ITEM, pItemElem[i]->GetProp()->szIcon), 0xffff00ff);
if (pTexture[i])
pItemElem[i]->SetExtra(1);
if (pItemElem[0] && pItemElem[1])
{
pItemElem[2] = pItemElem[1];
pTexture[2] = pTexture[1];
}
|
|
|
06/18/2018, 15:07
|
#3
|
elite*gold: 0
Join Date: Mar 2018
Posts: 77
Received Thanks: 57
|
All your white text issues "Party Finder, Hotkey" is due to TextOut in WndControl or the app itself, make sure its set to 0xff000000.
Aura changer / Buff pet aura are database related issues. Either its not saving or loading correctly.
|
|
|
06/19/2018, 02:09
|
#4
|
elite*gold: 0
Join Date: Jun 2008
Posts: 355
Received Thanks: 5
|
Quote:
Originally Posted by Minotaurr
About the white font in Partyfinder & Controltab, compare your source to a v15/16/17/18 source, most of these sources are made with Black color codes (0xff000000) instead of white (0xffffffff).
Use software like WinMerge to see the differences.
---
For the modelchange part, take a look at this in your source.
pTexture[i] = CWndBase::m_textureMng.AddTexture(D3DDEVICE, MakePath(DIR_ITEM, pItemElem[i]->GetProp()->szIcon), 0xffff00ff);
if (pTexture[i])
pItemElem[i]->SetExtra(1);
if (pItemElem[0] && pItemElem[1])
{
pItemElem[2] = pItemElem[1];
pTexture[2] = pTexture[1];
}
|
I tried to search one by one and it doesn't give me a chance to change to Color (I didn't see a rgb or hex[correct me if im wrong] ) in each codes. Sadly I don't have a chance to compare it with v15 file with that system because i don't have that kind of file I only got a v19 interfaces (Usually released) Files.
about the Model change Here's my entry, if you don't mind taking a look.
HTML Code:
#ifdef __MODEL_CHANGE
CWndModelChange::CWndModelChange()
{
for( int i = 0; i < 3; i++ )
{
pItemElem[i] = NULL;
pTexture[i] = NULL;
}
}
CWndModelChange::~CWndModelChange()
{
for( int i = 0; i < 3; i++ )
{
if( pItemElem[i] != NULL )
{
if( !g_pPlayer->m_vtInfo.IsTrading( pItemElem[i] ))
pItemElem[i]->SetExtra(0);
}
}
}
BOOL CWndModelChange::Initialize( CWndBase* pWndParent, DWORD dwType )
{
return CWndNeuz::InitDialog( g_Neuz.GetSafeHwnd(), APP_LOOKCHANGE, 0, CPoint( 0, 0 ), pWndParent );
}
BOOL CWndModelChange::OnCommand( UINT nID, DWORD dwMessage, CWndBase* pWndBase )
{
return CWndNeuz::OnCommand( nID, dwMessage, pWndBase );
}
void CWndModelChange::OnSize( UINT nType, int cx, int cy )
{
CWndNeuz::OnSize( nType, cx, cy );
}
void CWndModelChange::OnLButtonUp( UINT nFlags, CPoint point )
{
}
void CWndModelChange::OnLButtonDown( UINT nFlags, CPoint point )
{
}
BOOL CWndModelChange::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
{
LPWNDCTRL wndCtrl[3];
wndCtrl[0] = GetWndCtrl( WIDC_STATIC1 );
wndCtrl[1] = GetWndCtrl( WIDC_STATIC2 );
wndCtrl[2] = GetWndCtrl( WIDC_STATIC3 );
for( int i = 0; i < sizeof(wndCtrl)/sizeof(LPWNDCTRL); i++ )
{
if( i == 2)
continue;
if( !wndCtrl[i] )
{
continue;
}
if( wndCtrl[i]->rect.PtInRect( point ))
{
if( i == 1 && pItemElem[0] == NULL)
continue;
CItemElem* pTempElem;
pTempElem = (CItemElem*) g_pPlayer->GetItemId( pShortcut->m_dwId );
ItemProp* pItemProp = pTempElem->GetProp();
if(i == 0 && pTempElem->m_dwnewID != NULL )
{
g_WndMng.PutString("Objects must have no model.", 0,0xff0000);
return FALSE;
}
if(pItemElem[0] && i == 1)
{
if(pItemElem[0]->GetProp()->dwID == pTempElem->GetProp()->dwID)
{
g_WndMng.PutString("You can not place the same objects twice", 0, 0xff0000);
return FALSE;
}
if(pItemElem[0]->GetProp()->dwItemSex != pTempElem->GetProp()->dwItemSex)
{
g_WndMng.PutString("Objects must be of the same kind.",0,0xff0000);
return FALSE;
}
if(pItemElem[0]->GetProp()->dwParts != pTempElem->GetProp()->dwParts)
{
g_WndMng.PutString("Object types are not identical", 0,0xff0000);
return FALSE;
}
//if(pItemElem[0]->GetProp()->dwItemKind3 != pTempElem->GetProp()->dwItemKind3)
//{
// g_WndMng.PutString("The Items must have the Same ItemKind",0,0xff0000);
// return FALSE;
//}
if(pItemElem[0]->GetProp()->dwHanded != pTempElem->GetProp()->dwHanded)
{
g_WndMng.PutString("You can not put a weapon model on one hand, on a two-handed weapon, and vice versa.");
return FALSE;
}
}
if(pTempElem->GetProp()->dwParts != PARTS_RWEAPON &&
pTempElem->GetProp()->dwParts != PARTS_LWEAPON &&
pTempElem->GetProp()->dwParts != PARTS_MASK &&
pTempElem->GetProp()->dwParts != PARTS_CLOAK &&
pTempElem->GetProp()->dwParts != PARTS_SHIELD &&
pTempElem->GetProp()->dwParts !=PARTS_HAND &&
pTempElem->GetProp()->dwParts !=PARTS_UPPER_BODY &&
pTempElem->GetProp()->dwParts !=PARTS_FOOT &&
pTempElem->GetProp()->dwParts !=PARTS_CAP &&
pTempElem->GetProp()->dwParts !=PARTS_ROBE &&
pTempElem->GetProp()->dwParts !=PARTS_CLOAK &&
pTempElem->GetProp()->dwParts !=PARTS_HAT &&
pTempElem->GetProp()->dwParts !=PARTS_CLOTH &&
pTempElem->GetProp()->dwParts !=PARTS_GLOVE &&
pTempElem->GetProp()->dwParts !=PARTS_BOOTS
)
{
g_WndMng.PutString("This type of object can not receive a model change", 0,0xff0000);
return FALSE;
}
if( pItemElem[i])
{
pItemElem[i]->SetExtra(0);
pItemElem[i] = NULL;//
}
pItemElem[i] = (CItemElem*)pTempElem;
pTexture[i] = CWndBase::m_textureMng.AddTexture( D3DDEVICE, MakePath( DIR_ITEM, pItemElem[i]->GetProp()->szIcon ), 0xffff00ff );
if( pTexture[i])
pItemElem[i]->SetExtra(1);
if(pItemElem[0] && pItemElem[1])
{
pItemElem[2] = pItemElem[1];
pTexture[2] = pTexture[0];
}
}
}
return TRUE;
}
void CWndModelChange::OnDraw( C2DRender* p2DRender )
{
LPWNDCTRL wndCtrl[3];
wndCtrl[0] = GetWndCtrl( WIDC_STATIC1 );
wndCtrl[1] = GetWndCtrl( WIDC_STATIC2 );
wndCtrl[2] = GetWndCtrl( WIDC_STATIC3 );
for( int i = 0; i < 3; i++ )
{
if( pItemElem[i] != NULL && pTexture[i] != NULL )
{
pTexture[i]->Render( p2DRender, CPoint( wndCtrl[i]->rect.left + 5, wndCtrl[i]->rect.top + 5));
}
}
}
HRESULT CWndModelChange::RestoreDeviceObjects()
{
CWndNeuz::RestoreDeviceObjects();
return S_OK;
}
HRESULT CWndModelChange::InvalidateDeviceObjects()
{
CWndNeuz::InvalidateDeviceObjects();
return S_OK;
}
HRESULT CWndModelChange::DeleteDeviceObjects()
{
CWndNeuz::DeleteDeviceObjects();
InvalidateDeviceObjects();
return S_OK;
}
void CWndModelChange::OnInitialUpdate( void )
{
CWndNeuz::OnInitialUpdate();
MoveParentCenter();
}
BOOL CWndModelChange::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
{
switch (nID)
{
case WIDC_BUTTON1: // Send LookChange
{
if( pItemElem[0] && pItemElem[1] && pItemElem[2] )
{
g_DPlay.SendModelChange( pItemElem[0]->m_dwObjId, pItemElem[1]->m_dwObjId );
for( int i = 0; i < 3; i++ )
{
if( pItemElem[i] != NULL )
{
if( !g_pPlayer->m_vtInfo.IsTrading( pItemElem[i] ))
pItemElem[i]->SetExtra(0);
}
}
Destroy();
}
else
{
g_WndMng.PutString("You must have 2 weapons in the pitches", 0, 0xff0000);
}
break;
}
case WIDC_BUTTON2: // Close
{
for( int i = 0; i < 3; i++ )
{
if( pItemElem[i] != NULL )
{
if( !g_pPlayer->m_vtInfo.IsTrading( pItemElem[i] ))
pItemElem[i]->SetExtra(0);
}
}
Destroy();
break;
}
}
return CWndNeuz::OnChildNotify( message, nID, pLResult );
}
#endif
Quote:
Originally Posted by Mushpoie
All your white text issues "Party Finder, Hotkey" is due to TextOut in WndControl or the app itself, make sure its set to 0xff000000.
|
I tried to take a look at my wndctonroll and Look for party find I saw that it was using a rgb code which is already set to 0 0 0 0, And I think it is already being set to black instead of white 255 255 255. I think yeah its on the app itself but I wonder how can i change its background cover if I was using a v15 Resdata (Not able to change rgb background)
HTML Code:
if( pWnd && pWnd->GetWndId() == APP_PARTY_FIND )
{
CWndPartyFind* pWndPartyFind = (CWndPartyFind*)pWnd;
if ( pWndPartyFind )
{
m_nFontHeight = 20;
CPoint pt( 2, 2 );
CString str = "";
CTexture *pIcon = NULL;
DWORD dwColor = D3DCOLOR_ARGB( 0, 0, 0, 0 );
vector<PARTYFINDER_LIST> tmp = pWndPartyFind->GetPartyList();
CRect rectClient = GetClientRect();
int nPage = rectClient.Height() / m_nFontHeight;
if( tmp.size() < 0 )
return;
for( size_t i = 0; i < tmp.size(); i++ )
{
if( i < static_cast<size_t>( m_wndScrollBar.GetScrollPos() ) )
continue;
if( i > static_cast<size_t>( m_wndScrollBar.GetScrollPos() + nPage ) )
break;
if( i == m_nCurSelect )
dwColor = D3DCOLOR_ARGB( 0, 0, 0, 0 );
str.Format( "%d", i );
p2DRender->TextOut( pt.x, pt.y, str, dwColor );
pt.x += 28;
str.Format( "%s", tmp[i].m_sParty );
p2DRender->TextOut( pt.x, pt.y, str, dwColor );
pt.x += 70;
str.Format( "%s", tmp[i].m_sLeader );
p2DRender->TextOut( pt.x, pt.y, str, dwColor );
pt.x += 85;
str.Format( "%d/8", tmp[i].m_nSizeofMember );
p2DRender->TextOut( pt.x, pt.y, str, dwColor );
pt.x += 82;
str.Format( "%d", tmp[i].m_nLevel );
p2DRender->TextOut( pt.x, pt.y, str, dwColor );
pt.x += 80;
str.Format( "%d", tmp[i].m_nPoint );
p2DRender->TextOut( pt.x, pt.y, str, dwColor );
pt.x += 85;
if( tmp[i].m_bSkillFull )
{
|
|
|
06/19/2018, 08:58
|
#5
|
elite*gold: 294
Join Date: Jun 2009
Posts: 407
Received Thanks: 587
|
pItemElem[i]->SetExtra(1);
if(pItemElem[0] && pItemElem[1])
{
pItemElem[2] = pItemElem[1];
pTexture[2] = pTexture[0];
}
model change issue is here
|
|
|
06/19/2018, 10:24
|
#6
|
elite*gold: 0
Join Date: Jun 2008
Posts: 355
Received Thanks: 5
|
Quote:
Originally Posted by Avalion
pItemElem[i]->SetExtra(1);
if(pItemElem[0] && pItemElem[1])
{
pItemElem[2] = pItemElem[1];
pTexture[2] = pTexture[0];
}
model change issue is here
|
Got fixed now thank you  Didn't see that. do you have any idea to the rest of the issue/problem listed above?
|
|
|
06/19/2018, 18:47
|
#7
|
elite*gold: 0
Join Date: Mar 2018
Posts: 155
Received Thanks: 54
|
Party Finder Font:
Code:
if( pWnd && pWnd->GetWndId() == APP_PARTY_FIND )
{
CWndPartyFind* pWndPartyFind = (CWndPartyFind*)pWnd;
if ( pWndPartyFind )
{
m_nFontHeight = 20;
CPoint pt( 2, 2 );
CString str = "";
CTexture *pIcon = NULL;
DWORD dwColor = D3DCOLOR_ARGB( 255, 255, 255, 255 );
vector<PARTYFINDER_LIST> tmp = pWndPartyFind->GetPartyList();
CRect rectClient = GetClientRect();
int nPage = rectClient.Height() / m_nFontHeight;
if( tmp.size() < 0 )
return;
for( size_t i = 0; i < tmp.size(); i++ )
{
if( i < static_cast<size_t>( m_wndScrollBar.GetScrollPos() ) )
continue;
if( i > static_cast<size_t>( m_wndScrollBar.GetScrollPos() + nPage ) )
break;
if( i == m_nCurSelect )
dwColor = D3DCOLOR_ARGB( 255, 0, 0, 255 );
str.Format( "%d", i );
p2DRender->TextOut( pt.x, pt.y, str, 0xff000000 );
pt.x += 28;
str.Format( "%s", tmp[i].m_sParty );
p2DRender->TextOut( pt.x, pt.y, str, 0xff000000 );
pt.x += 70;
str.Format( "%s", tmp[i].m_sLeader );
p2DRender->TextOut( pt.x, pt.y, str, 0xff000000 );
pt.x += 85;
str.Format( "%d/8", tmp[i].m_nSizeofMember );
p2DRender->TextOut( pt.x, pt.y, str, 0xff000000 );
pt.x += 82;
str.Format( "%d", tmp[i].m_nLevel );
p2DRender->TextOut( pt.x, pt.y, str, 0xff000000 );
pt.x += 80;
str.Format( "%d", tmp[i].m_nPoint );
p2DRender->TextOut( pt.x, pt.y, str, 0xff000000 );
pt.x += 85;
if( tmp[i].m_bSkillFull )
{
ON HOTKEY CHANGER FONT YOU MUST CHANGE IT ON WNDCHANGEHOTKEY.CPP
HERE'S MINE
Code:
if( g_Neuz.m_bKeyListening )
{
strBuff = "Waiting for key input...";
CSize s = p2DRender->m_pFont->GetTextExtent(strBuff);
pt.x = rectClient.Width() / 2 - s.cx / 2;
pt.y = rectClient.Height() / 2 - s.cy / 2;
p2DRender->TextOut(pt.x,pt.y,strBuff, 0xff000000);
}else{
for( int i = m_wndScrollBar.GetScrollPos(); i < m_listItemArray.GetSize(); ++i )
{
LPLISTITEM pItem = (LPLISTITEM)m_listItemArray.GetAt(i);
if( rectToolTip.PtInRect(ptMouse) )
{
p2DRender->RenderFillRect(rectToolTip,0xff99FFFF);
p2DRender->RenderRect(rectToolTip,0xFF3333CC);
}
rectToolTip.top += m_nFontHeight;
rectToolTip.bottom += m_nFontHeight;
if( pItem )
{
p2DRender->TextOut(pt.x,pt.y,pItem->m_strWord, 0xff000000);
map<DWORD,char*>::iterator it = m_mapApplet.find(pItem->m_dwData);
if( it != m_mapApplet.end() )
{
strBuff.Format("%c",*it->second);
strBuff.MakeUpper();
p2DRender->TextOut(rectClient.right-40,pt.y,strBuff, 0xff000000);
}
|
|
|
06/20/2018, 14:05
|
#8
|
elite*gold: 0
Join Date: Jun 2008
Posts: 355
Received Thanks: 5
|
Quote:
Originally Posted by Tweeney
Party Finder Font:
Code:
if( pWnd && pWnd->GetWndId() == APP_PARTY_FIND )
{
CWndPartyFind* pWndPartyFind = (CWndPartyFind*)pWnd;
if ( pWndPartyFind )
{
m_nFontHeight = 20;
CPoint pt( 2, 2 );
CString str = "";
CTexture *pIcon = NULL;
DWORD dwColor = D3DCOLOR_ARGB( 255, 255, 255, 255 );
vector<PARTYFINDER_LIST> tmp = pWndPartyFind->GetPartyList();
CRect rectClient = GetClientRect();
int nPage = rectClient.Height() / m_nFontHeight;
if( tmp.size() < 0 )
return;
for( size_t i = 0; i < tmp.size(); i++ )
{
if( i < static_cast<size_t>( m_wndScrollBar.GetScrollPos() ) )
continue;
if( i > static_cast<size_t>( m_wndScrollBar.GetScrollPos() + nPage ) )
break;
if( i == m_nCurSelect )
dwColor = D3DCOLOR_ARGB( 255, 0, 0, 255 );
str.Format( "%d", i );
p2DRender->TextOut( pt.x, pt.y, str, 0xff000000 );
pt.x += 28;
str.Format( "%s", tmp[i].m_sParty );
p2DRender->TextOut( pt.x, pt.y, str, 0xff000000 );
pt.x += 70;
str.Format( "%s", tmp[i].m_sLeader );
p2DRender->TextOut( pt.x, pt.y, str, 0xff000000 );
pt.x += 85;
str.Format( "%d/8", tmp[i].m_nSizeofMember );
p2DRender->TextOut( pt.x, pt.y, str, 0xff000000 );
pt.x += 82;
str.Format( "%d", tmp[i].m_nLevel );
p2DRender->TextOut( pt.x, pt.y, str, 0xff000000 );
pt.x += 80;
str.Format( "%d", tmp[i].m_nPoint );
p2DRender->TextOut( pt.x, pt.y, str, 0xff000000 );
pt.x += 85;
if( tmp[i].m_bSkillFull )
{
ON HOTKEY CHANGER FONT YOU MUST CHANGE IT ON WNDCHANGEHOTKEY.CPP
HERE'S MINE
Code:
if( g_Neuz.m_bKeyListening )
{
strBuff = "Waiting for key input...";
CSize s = p2DRender->m_pFont->GetTextExtent(strBuff);
pt.x = rectClient.Width() / 2 - s.cx / 2;
pt.y = rectClient.Height() / 2 - s.cy / 2;
p2DRender->TextOut(pt.x,pt.y,strBuff, 0xff000000);
}else{
for( int i = m_wndScrollBar.GetScrollPos(); i < m_listItemArray.GetSize(); ++i )
{
LPLISTITEM pItem = (LPLISTITEM)m_listItemArray.GetAt(i);
if( rectToolTip.PtInRect(ptMouse) )
{
p2DRender->RenderFillRect(rectToolTip,0xff99FFFF);
p2DRender->RenderRect(rectToolTip,0xFF3333CC);
}
rectToolTip.top += m_nFontHeight;
rectToolTip.bottom += m_nFontHeight;
if( pItem )
{
p2DRender->TextOut(pt.x,pt.y,pItem->m_strWord, 0xff000000);
map<DWORD,char*>::iterator it = m_mapApplet.find(pItem->m_dwData);
if( it != m_mapApplet.end() )
{
strBuff.Format("%c",*it->second);
strBuff.MakeUpper();
p2DRender->TextOut(rectClient.right-40,pt.y,strBuff, 0xff000000);
}
|
Do you have an idea for the jops glow? Or the guild buff. Or maybe recommended guild buff
|
|
|
06/20/2018, 17:00
|
#9
|
elite*gold: 0
Join Date: Mar 2018
Posts: 155
Received Thanks: 54
|
make sure you have added all DB PArts and Source side on jops glow
|
|
|
06/21/2018, 01:48
|
#10
|
elite*gold: 0
Join Date: Jun 2008
Posts: 355
Received Thanks: 5
|
Quote:
Originally Posted by Tweeney
make sure you have added all DB PArts and Source side on jops glow
|
I I've added the same code in source and database correctly, there's only two file that need to be edited in _Database the DbManagerJoin.cpp and DbManagerSave.cpp and already edit the Character_str and the character_tbl.
I'am just wondering I leech this code from a 2003 VS server file and I'am using a 2017 VS it has something to do with it? I didn't get any error while testing it. cant also perform debugging because it needs to restart the exe's file inorder for me to know if my glow is still there or back to zero.
|
|
|
06/22/2018, 13:39
|
#11
|
elite*gold: 0
Join Date: Jun 2008
Posts: 355
Received Thanks: 5
|
Can I bump my thread I really need help in Jops glow I don't know why its not saving im lost
|
|
|
06/22/2018, 17:01
|
#12
|
elite*gold: 0
Join Date: Mar 2018
Posts: 77
Received Thanks: 57
|
Quote:
Originally Posted by khemomo
Can I bump my thread I really need help in Jops glow I don't know why its not saving im lost
|
Make sure all entries in the source and sql file are INT based for jopsi glow. Also make sure all db entries are saving and loading in the correct order of each other.
As seen here:
and:
I found these by searching: Jopsi glow fix
|
|
|
06/23/2018, 06:50
|
#13
|
elite*gold: 0
Join Date: Jun 2008
Posts: 355
Received Thanks: 5
|
Quote:
Originally Posted by Mushpoie
Make sure all entries in the source and sql file are INT based for jopsi glow. Also make sure all db entries are saving and loading in the correct order of each other.
As seen here:
and:
I found these by searching: Jopsi glow fix
|
Yea i also search that and that is what i did on mine.
Here's my __JOPS_GLOW define in _Database part
DbManagerSave.cpp
Code:
#endif // __LAYER_1015
#if __VER >= 15 // __IMPROVE_QUEST_INTERFACE
",?"
#endif // __IMPROVE_QUEST_INTERFACE
#if __VER >= 15 // __CAMPUS
",?,?"
#endif // __CAMPUS
#ifdef __SYS_280514
",?"
#endif // __SYS_280514
#ifdef __JOPS_GLOW
",?,?,?,?,?,?,?"
#endif
// ")}", pMover->m_idPlayer, g_appInfo.dwSys ); // +3
")}", pMover->m_idPlayer, g_appInfo.dwSys, pMover->m_vReturnPos.x, pMover->m_vReturnPos.y, pMover->m_vReturnPos.z ); // +3
Code:
#if __VER >= 15 // __CAMPUS
MAX_SAVEPARAM += 2; // m_nCampusPoint, m_idCampus
#endif // __CAMPUS
#ifdef __SYS_280514
MAX_SAVEPARAM += 1;
#endif // __SYS_280514
#ifdef __JOPS_GLOW
MAX_SAVEPARAM += 7;
#endif
//////////////////////////////////////////////////////////////////////////////////////
#if __VER >= 8 // __S8_PK
int nNumSkill = 0;
int nSlaughter = 0;
#endif // __VER >= 8 // __S8_PK
SQLINTEGER cbLen = SQL_NTS;
BOOL* bOK = new BOOL[MAX_SAVEPARAM];
Code:
bOK[++j] = qry->BindParameter( ++i, SQL_PARAM_INPUT, SQL_C_LONG, SQL_INTEGER, 0, 0, &idCampus, 0, 0 );
#endif // __CAMPUS
#ifdef __SYS_280514
int nHideCoat = 0;
for (int z = 0; z < 5; ++z)
{
int c = (pMover->m_abHideCoat[z] ? 1 : 0);
nHideCoat |= (c << z);
}
bOK[++j] = qry->BindParameter(++i, SQL_PARAM_INPUT, SQL_C_LONG, SQL_INTEGER, 0, 0, &nHideCoat, 0, 0);
#endif // __SYS_280514
#ifdef __JOPS_GLOW
bOK[++j] = qry->BindParameter( ++i, SQL_PARAM_INPUT, SQL_C_LONG, SQL_INTEGER, 0, 0, &pMover->m_iGlowArmLeft , 0, 0 );
bOK[++j] = qry->BindParameter( ++i, SQL_PARAM_INPUT, SQL_C_LONG, SQL_INTEGER, 0, 0, &pMover->m_iGlowArmRight, 0, 0 );
bOK[++j] = qry->BindParameter( ++i, SQL_PARAM_INPUT, SQL_C_LONG, SQL_INTEGER, 0, 0, &pMover->m_iGlowLegLeft, 0, 0 );
bOK[++j] = qry->BindParameter( ++i, SQL_PARAM_INPUT, SQL_C_LONG, SQL_INTEGER, 0, 0, &pMover->m_iGlowLegRight, 0, 0 );
bOK[++j] = qry->BindParameter( ++i, SQL_PARAM_INPUT, SQL_C_LONG, SQL_INTEGER, 0, 0, &pMover->m_iGlowBody, 0, 0);
bOK[++j] = qry->BindParameter( ++i, SQL_PARAM_INPUT, SQL_C_LONG, SQL_INTEGER, 0, 0, &pMover->m_iGlowHandLeft, 0, 0);
bOK[++j] = qry->BindParameter( ++i, SQL_PARAM_INPUT, SQL_C_LONG, SQL_INTEGER, 0, 0, &pMover->m_iGlowHandRight, 0, 0);
#endif
for( i=0; i<j; ++i )
{
if( bOK[i] == FALSE )
{
char szBuffer[128];
sprintf( szBuffer, "SavePlayer(%s) - %dth bindparam error - %d", pMover->m_szName, i+1, ::GetCurrentThreadId() );
DbManagerfun.cpp
Code:
pMover->m_nSkillPoint = qry->GetInt( "m_SkillPoint" );
#if __VER >= 13 // __HONORABLE_TITLE // 달인
pMover->m_nHonor = qry->GetInt( "m_nHonor" );
#endif // __HONORABLE_TITLE // 달인
#ifdef __JOPS_GLOW
pMover->m_iGlowArmLeft = qry->GetInt( "GlowArmLeft" );
pMover->m_iGlowArmRight = qry->GetInt( "GlowArmRight" );
pMover->m_iGlowLegLeft = qry->GetInt( "GlowLegLeft" );
pMover->m_iGlowLegRight = qry->GetInt( "GlowLegRight" );
pMover->m_iGlowBody = qry->GetInt( "GlowBody" );
pMover->m_iGlowHandLeft = qry->GetInt( "GlowHandLeft" );
pMover->m_iGlowHandRight = qry->GetInt( "GlowHandRight" );
#endif //__JOPS_GLOW
}
#if __VER >= 13 // __HONORABLE_TITLE // 달인
void CDbManager::GetHonor( CMover* pMover, CQuery *qry, LPDB_OVERLAPPED_PLUS lpDbOverlappedPlus )
DbManagerJoin.cpp
Code:
#if __VER >= 15 // __GUILD_HOUSE
mover.m_nRestPoint = qry->GetInt( "m_nRestPoint" );
mover.m_tLogOut = time_null() - qry->GetInt( "m_LogOutTime" );
#endif // __GUILD_HOUSE
#ifdef __SYS_280514
int n = qry->GetInt("m_nHideCoat");
for( int z = 0; z < 5; ++z )
{
mover.m_abHideCoat[z] = (n >> z) & 1;
}
#endif // __SYS_280514
#ifdef __JOPS_GLOW
mover.m_iGlowArmLeft = qry->GetInt( "GlowArmLeft" );
mover.m_iGlowArmRight = qry->GetInt( "GlowArmRight" );
mover.m_iGlowLegLeft = qry->GetInt( "GlowLegLeft" );
mover.m_iGlowLegRight = qry->GetInt( "GlowLegRight" );
mover.m_iGlowBody = qry->GetInt( "GlowBody" );
mover.m_iGlowHandLeft = qry->GetInt( "GlowHandLeft" );
mover.m_iGlowHandRight = qry->GetInt( "GlowHandRight" );
#endif
if( !qry->MoreResults() )
{
FreeRequest( lpDBOP );
return;
}
while( qry->Fetch() )
Here's also the things I add on my Database(SQL)
Character_STR
Code:
--, [MENTION=714211]Im_BanK[/MENTION]PW char(4) = '0000'
, @im_aCheckedQuest varchar(100) =''
, @im_nCampusPoint int = 0
, @im_idCampus int = 0
, @im_nHideCoat int = 0
, [MENTION=561743]IglO[/MENTION]wArmleft int = 0
, [MENTION=561743]IglO[/MENTION]wArmRight int = 0
, [MENTION=561743]IglO[/MENTION]wLegLeft int = 0
, [MENTION=561743]IglO[/MENTION]wLegRight int = 0
, [MENTION=561743]IglO[/MENTION]wBody int = 0
, [MENTION=561743]IglO[/MENTION]wHandLeft int = 0
, [MENTION=561743]IglO[/MENTION]wHandRight int = 0
/*******************************************************
Gu ¡¾¢¬¨¬¨¢
S : SELECT
I : INSERT
U : UPDATE
D : DELETE
2005.04.11 updated
Code:
, isnull(R.m_nRestPoint, 0) m_nRestPoint
, isnull(R.m_LogOutTime, 0) m_LogOutTime
, A.GlowArmLeft
, A.GlowArmRight
, A.GlowLegLeft
, A.GlowLegRight
, A.GlowBody
, A.GlowHandLeft
, A.GlowHandRight
FROM CHARACTER_TBL A
inner join TASKBAR_TBL B on A.m_idPlayer = B.m_idPlayer and A.serverindex = B.serverindex
Code:
, m_aCheckedQuest = @im_aCheckedQuest
, m_nCampusPoint = @im_nCampusPoint
, m_nHideCoat = @im_nHideCoat
, idCampus = @im_idCampus
, GlowArmLeft = [MENTION=561743]IglO[/MENTION]wArmleft
, GlowArmRight = [MENTION=561743]IglO[/MENTION]wArmRight
, GlowLegLeft = [MENTION=561743]IglO[/MENTION]wLegLeft
, GlowLegRight = [MENTION=561743]IglO[/MENTION]wLegRight
, GlowBody = [MENTION=561743]IglO[/MENTION]wBody
, GlowHandLeft = [MENTION=561743]IglO[/MENTION]wHandLeft
, GlowHandRight = [MENTION=561743]IglO[/MENTION]wHandRight
WHERE m_idPlayer = @im_idPlayer
AND serverindex = [MENTION=3453071]iServe[/MENTION]rindex
-- if object_id('QUEST_TBL') is not null
-- EXEC QUEST_STR 'A1',@im_idPlayer [MENTION=3453071]iServe[/MENTION]rindex,@im_lpQuestCntArray
update tblLogout_Penya
Code:
---------- Ver 15
, m_aCheckedQuest
, m_nCampusPoint
, idCampus
, m_nHideCoat
, GlowArmLeft
, GlowArmRight
, GlowLegLeft
, GlowLegRight
, GlowBody
, GlowHandLeft
, GlowHandRight
)
VALUES
(
@om_idPlayer,
[MENTION=3453071]iServe[/MENTION]rindex,
@iaccount,
Code:
@im_SkillPoint,
@im_SkillLv,
@im_SkillExp
-- Ver 15
, '$'
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
)
Character_TBL
|
|
|
06/23/2018, 14:14
|
#14
|
elite*gold: 294
Join Date: Jun 2009
Posts: 407
Received Thanks: 587
|
1.) its best to keep things in order in my opinion for everything. Makes it cleaner and easier to read.
2.) You're setting the results twice when you're loading in the game. GetBaseCharacter and in the Join function. It shouldn't matter, but =\
3.) You forgot the code in "CMover::Copy". Probably the case, but I haven't bothered to actually pay attention to the mess in the Join function.
|
|
|
06/23/2018, 14:26
|
#15
|
elite*gold: 0
Join Date: Jun 2008
Posts: 355
Received Thanks: 5
|
Quote:
Originally Posted by Avalion
1.) its best to keep things in order in my opinion for everything. Makes it cleaner and easier to read.
2.) You're setting the results twice when you're loading in the game. GetBaseCharacter and in the Join function. It shouldn't matter, but =\
3.) You forgot the code in "CMover::Copy". Probably the case, but I haven't bothered to actually pay attention to the mess in the Join function.
|
2.) actually I just tried to put the
Code:
#ifdef __JOPS_GLOW
mover.m_iGlowArmLeft = qry->GetInt( "GlowArmLeft" );
mover.m_iGlowArmRight = qry->GetInt( "GlowArmRight" );
mover.m_iGlowLegLeft = qry->GetInt( "GlowLegLeft" );
mover.m_iGlowLegRight = qry->GetInt( "GlowLegRight" );
mover.m_iGlowBody = qry->GetInt( "GlowBody" );
mover.m_iGlowHandLeft = qry->GetInt( "GlowHandLeft" );
mover.m_iGlowHandRight = qry->GetInt( "GlowHandRight" );
#endif
in DbManagerjoin.cpp even if its already being define.
3. Here's my CMover::Copy Part
Code:
void CMover::Copy( CMover * pMover, BOOL bAll )
{
m_nSlot = pMover->m_nSlot;
m_dwIndex = pMover->m_dwIndex;
m_idPlayer = pMover->m_idPlayer;
m_dwAuthorization = pMover->m_dwAuthorization;
m_idGuild = pMover->m_idGuild;
m_idWar = pMover->m_idWar;
m_dwMode = pMover->m_dwMode;
lstrcpy( m_szBankPass, pMover->m_szBankPass );
m_dwPeriodicTick = pMover->m_dwPeriodicTick;
#ifdef __RT_1025
m_RTMessenger = pMover->m_RTMessenger;
#else // __RT_1025
m_Messenger = pMover->m_Messenger;
#endif // __RT_1025
#ifdef __BUFF_1107
m_buffs = pMover->m_buffs;
#endif // __BUFF_1107
#if __VER >= 14 // __PCBANG
m_dwPCBangClass = pMover->m_dwPCBangClass;
#endif // __PCBANG
#if __VER >= 15 // __CAMPUS
m_idCampus = pMover->m_idCampus;
m_nCampusPoint = pMover->m_nCampusPoint;
#endif // __CAMPUS
#ifdef __SYS_280514
memcpy(m_abHideCoat,pMover->m_abHideCoat,sizeof(m_abHideCoat));
#endif
if( bAll )
{
m_Inventory.Copy( pMover->m_Inventory );
#if __VER >= 11 // __SYS_POCKET
m_Pocket.Copy( pMover->m_Pocket );
#endif // __SYS_POCKET
memcpy( m_aEquipInfo, pMover->m_aEquipInfo, sizeof(EQUIP_INFO) * MAX_HUMAN_PARTS );
memcpy( m_UserTaskBar.m_aSlotApplet, pMover->m_UserTaskBar.m_aSlotApplet, sizeof(m_UserTaskBar.m_aSlotApplet) );
memcpy( m_UserTaskBar.m_aSlotItem, pMover->m_UserTaskBar.m_aSlotItem, sizeof(m_UserTaskBar.m_aSlotItem) );
memcpy( m_UserTaskBar.m_aSlotQueue, pMover->m_UserTaskBar.m_aSlotQueue, sizeof(m_UserTaskBar.m_aSlotQueue) );
m_UserTaskBar.m_nActionPoint = pMover->m_UserTaskBar.m_nActionPoint;
lstrcpy( m_szName, pMover->m_szName );
m_vScale = pMover->m_vScale;
m_dwMotion = pMover->m_dwMotion;
#ifdef __DBSERVER
m_dwWorldID = pMover->m_dwWorldID;
#endif // __DBSERVER
#ifdef __LAYER_1015
SetLayer( pMover->GetLayer() );
#endif // __LAYER_1015
m_vPos = pMover->m_vPos;
m_fAngle = pMover->m_fAngle;
lstrcpy( m_szCharacterKey, pMover->m_szCharacterKey );
m_nHitPoint = pMover->m_nHitPoint;
m_nManaPoint = pMover->m_nManaPoint;
m_nFatiguePoint = pMover->m_nFatiguePoint;
m_dwSkinSet = pMover->m_dwSkinSet;
m_dwHairMesh = pMover->m_dwHairMesh;
m_dwHairColor = pMover->m_dwHairColor;
m_dwHeadMesh = pMover->m_dwHeadMesh;
SetSex( pMover->GetSex() );
m_dwRideItemIdx = pMover->m_dwRideItemIdx;
SetGold( pMover->GetGold() );
m_nJob = pMover->m_nJob;
m_idparty = pMover->m_idparty;
#if __VER >= 8 // __S8_PK
m_dwPKTime = pMover->m_dwPKTime;
m_nPKValue = pMover->m_nPKValue;
m_dwPKPropensity = pMover->m_dwPKPropensity;
m_dwPKExp = pMover->m_dwPKExp;
#else // __VER >= 8 // __S8_PK
m_nNumKill = pMover->m_nNumKill;
m_nSlaughter = pMover->m_nSlaughter;
#endif // __VER >= 8 // __S8_PK
#if __VER >= 8 // __CSC_VER8_5
m_nAngelExp = pMover->m_nAngelExp;
m_nAngelLevel = pMover->m_nAngelLevel;
#endif // __CSC_VER8_5
m_idMurderer = pMover->m_idMurderer;
m_nFame = pMover->m_nFame;
m_pActMover->m_dwState = pMover->m_pActMover->GetState();
m_pActMover->m_dwStateFlag = pMover->m_pActMover->GetStateFlag();
m_nStr = pMover->m_nStr;
m_nSta = pMover->m_nSta;
m_nDex = pMover->m_nDex;
m_nInt = pMover->m_nInt;
m_nLevel = pMover->m_nLevel;
m_nExp1 = pMover->m_nExp1;
m_nFuel = pMover->m_nFuel;
m_tmAccFuel = pMover->m_tmAccFuel;
m_nSkillLevel = pMover->m_nSkillLevel;
m_nSkillPoint = pMover->m_nSkillPoint;
m_idMarkingWorld = pMover->m_idMarkingWorld;
m_vMarkingPos = pMover->m_vMarkingPos;
m_nRemainGP = pMover->m_nRemainGP;
#if __VER >= 12 // __MOD_TUTORIAL
m_nTutorialState = pMover->m_nTutorialState;
#else // __MOD_TUTORIAL
m_nFlightLv = pMover->m_nFlightLv;
#endif // __MOD_TUTORIAL
m_nFxp = pMover->m_nFxp;
m_bPlayer = TRUE;
m_nDeathExp = pMover->m_nDeathExp;
m_nDeathLevel = pMover->m_nDeathLevel;
memcpy( m_aJobSkill, pMover->m_aJobSkill, sizeof(m_aJobSkill) );
#ifdef __SKILL_0205
memcpy( m_abUpdateSkill, pMover->m_abUpdateSkill, sizeof(m_abUpdateSkill) );
#endif // __SKILL_0205
memcpy( m_aQuest, pMover->m_aQuest, sizeof(QUEST) * MAX_QUEST );
m_nQuestSize = pMover->m_nQuestSize;
memcpy( m_aCompleteQuest, pMover->m_aCompleteQuest, sizeof(WORD) * MAX_COMPLETE_QUEST );
m_nCompleteQuestSize = pMover->m_nCompleteQuestSize;
#if __VER >= 15 // __IMPROVE_QUEST_INTERFACE
memcpy( m_aCheckedQuest, pMover->m_aCheckedQuest, sizeof(WORD) * MAX_CHECKED_QUEST );
m_nCheckedQuestSize = pMover->m_nCheckedQuestSize;
#endif // __IMPROVE_QUEST_INTERFACE
memcpy( m_dwSMTime, pMover->m_dwSMTime, sizeof(m_dwSMTime) );
m_nPlusMaxHitPoint = pMover->m_nPlusMaxHitPoint;
m_nAttackResistLeft = pMover->m_nAttackResistLeft;
m_nAttackResistRight = pMover->m_nAttackResistRight;
m_nDefenseResist = pMover->m_nDefenseResist;
#ifndef __BUFF_1107
memcpy( m_SkillState.m_aSkillInfluence, pMover->m_SkillState.m_aSkillInfluence, sizeof(m_SkillState.m_aSkillInfluence) );
#endif // __BUFF_1107
m_dwReturnWorldID = pMover->m_dwReturnWorldID;
m_vReturnPos = pMover->m_vReturnPos;
for( int i = 0; i < 3; i++ )
m_Bank[i].Copy( pMover->m_Bank[i] );
memcpy( m_idPlayerBank, pMover->m_idPlayerBank, sizeof(m_idPlayerBank) );
memcpy( m_dwGoldBank, pMover->m_dwGoldBank, sizeof( m_dwGoldBank) );
#ifdef __DBSERVER
#ifdef __EVENT_1101
#ifdef __EVENT_1101_2
m_nEventFlag = pMover->m_nEventFlag;
#else // __EVENT_1101_2
m_dwEventFlag = pMover->m_dwEventFlag;
#endif // __EVENT_1101_2
m_dwEventTime = pMover->m_dwEventTime;
m_dwEventElapsed = pMover->m_dwEventElapsed;
#endif // __EVENT_1101
#endif // __DBSERVER
#if __VER >= 9 // __PET_0410
SetPetId( pMover->GetPetId() );
#endif // __PET_0410
#if __VER >= 9 //__AI_0509
m_fSpeedFactor = pMover->m_fSpeedFactor;
#endif // __AI_0509
#ifdef __EXP_ANGELEXP_LOG
m_nExpLog = pMover->m_nExpLog;
m_nAngelExpLog = pMover->m_nAngelExpLog;
#endif // __EXP_ANGELEXP_LOG
#ifdef __EVENTLUA_COUPON
m_nCoupon = pMover->m_nCoupon;
#endif // __EVENTLUA_COUPON
#ifdef __JEFF_9_20
m_dwMute = pMover->m_dwMute;
#endif // __JEFF_9_20
#if __VER >= 13 // __HONORABLE_TITLE // 달인
m_nHonor = pMover->m_nHonor;
memcpy( m_aHonorTitle, pMover->m_aHonorTitle, sizeof(int) * MAX_HONOR_TITLE );
#endif // __HONORABLE_TITLE // 달인
#if __VER >= 15 // __GUILD_HOUSE
m_nRestPoint = pMover->m_nRestPoint;
m_tLogOut = pMover->m_tLogOut;
#endif // __GUILD_HOUSE
#ifdef __JOPS_GLOW
m_iGlowArmLeft = pMover->m_iGlowArmLeft;
m_iGlowArmRight = pMover->m_iGlowArmRight;
m_iGlowLegLeft = pMover->m_iGlowLegLeft;
m_iGlowLegRight = pMover->m_iGlowLegRight;
m_iGlowBody = pMover->m_iGlowBody;
m_iGlowHandLeft = pMover->m_iGlowHandLeft;
m_iGlowHandRight = pMover->m_iGlowHandRight;
if(m_iGlowArmLeft > 16 || m_iGlowArmLeft < 0 )
m_iGlowArmLeft = 0;
if(m_iGlowArmRight > 16 || m_iGlowArmRight < 0 )
m_iGlowArmRight = 0;
if(m_iGlowLegLeft > 16 || m_iGlowLegLeft < 0 )
m_iGlowLegLeft = 0;
if(m_iGlowLegRight > 16 || m_iGlowLegRight < 0)
m_iGlowLegRight = 0;
if( m_iGlowBody > 16 || m_iGlowBody < 0)
m_iGlowBody = 0;
if(m_iGlowHandLeft > 24 ||m_iGlowHandLeft < 0)
m_iGlowHandLeft = 0;
if(m_iGlowHandRight > 24|| m_iGlowHandRight < 0)
m_iGlowHandRight = 0;
// fixx for database entrys = NULL if entry == NULL it would be without fix ingame = -99
#endif
}
}
Code:
m_dwAuthorization = AUTH_GENERAL;
m_dwMode = 0;
m_dwStateMode = 0;
m_dwUseItemId = 0;
m_nRemainGP = 0;
#ifdef __JOPS_GLOW
m_iGlowBody = 0;
m_iGlowLegLeft = 0;
m_iGlowLegRight = 0;
m_iGlowArmLeft = 0;
m_iGlowArmRight = 0;
m_iGlowHandLeft = 0;
m_iGlowHandRight = 0;
#endif
m_aQuest = new QUEST[ MAX_QUEST ];
m_aCompleteQuest = new WORD[ MAX_COMPLETE_QUEST ];
m_nQuestSize = 0;
m_nCompleteQuestSize = 0;
memset( m_aQuest, 0, sizeof(QUEST) * MAX_QUEST );
memset( m_aCompleteQuest, 0, sizeof(WORD) * MAX_COMPLETE_QUEST );
Or did I make something wrong?
|
|
|
Similar Threads
|
Selling a bunch of 2moons chars for dil
09/27/2008 - Dekaron Trading - 22 Replies
First up lvl 98 bagi warrior: Starting bid...75m
Next lvl 64 mage going for.....20m
Lastly a lvl 48 hunter 15m....
Will also take acclaim coins for any of these only threw codes im not getting fucked over again with someone stealing my account.
|
S> Bunch of 130's + full 2soc set
07/25/2008 - Conquer Online 2 Trading - 5 Replies
Sold
|
All times are GMT +1. The time now is 21:57.
|
|