|
You last visited: Today at 09:14
Advertisement
Web Shop
Discussion on Web Shop within the Flyff PServer Guides & Releases forum part of the Flyff Private Server category.
03/02/2015, 08:58
|
#76
|
elite*gold: 26
Join Date: Aug 2011
Posts: 45
Received Thanks: 1
|
Quote:
Originally Posted by Titanos™
Wenn man es richtig eingestellt hat und es richtig funktioniert dann musst du dich nicht einloggen dann ist dort ein Auto login drinne.
|
nicht schlecht, aber kann ich trotzdem nicht anmelden... nicht im Spiel, nicht im Browser...
|
|
|
03/02/2015, 09:23
|
#77
|
elite*gold: 10
Join Date: Jan 2015
Posts: 937
Received Thanks: 451
|
Quote:
Originally Posted by romzik
nicht schlecht, aber kann ich trotzdem nicht anmelden... nicht im Spiel, nicht im Browser...
|
Überprüfe deine Einstellungen.
Zur hilfe solltest du das hier:
Code:
else
{
$loggedin = false;
//die( 'Fehler: Charakter konnte nicht abgerufen werden.' );
}
}
else
{
$loggedin = false;
//die( 'Fehler: Fehlerhafte Account Informationen.' );
}
}
else
{
$loggedin = false;
//die( 'Fehler: Account Informationen stimmen nicht überein.' );
}
}
else
{
$loggedin = false;
//die( 'Fehler: Einige Daten wurden nicht übermittelt.' );
}
in das ändern:
Code:
else
{
$loggedin = false;
die( 'Fehler: Charakter konnte nicht abgerufen werden.' );
}
}
else
{
$loggedin = false;
die( 'Fehler: Fehlerhafte Account Informationen.' );
}
}
else
{
$loggedin = false;
die( 'Fehler: Account Informationen stimmen nicht überein.' );
}
}
else
{
$loggedin = false;
die( 'Fehler: Einige Daten wurden nicht übermittelt.' );
}
Zur Information das ist die Login.php
|
|
|
03/02/2015, 09:33
|
#78
|
elite*gold: 26
Join Date: Aug 2011
Posts: 45
Received Thanks: 1
|
Notice: Undefined index: user_id in C:\wamp\www\shop\login.php on line 8
Notice: Undefined index: m_idPlayer in C:\wamp\www\shop\login.php on line 9
Notice: Undefined index: server_index in C:\wamp\www\shop\login.php on line 10
Notice: Undefined index: check in C:\wamp\www\shop\login.php on line 11
Notice: Undefined index: md5 in C:\wamp\www\shop\login.php on line 12
Fehler: Einige Daten wurden nicht übermittelt.
und wenn ich mich anmelde, kommt das: Fehler: Fehlerhafte Account Informationen.
kleine test.. bekomme ich komplette information..
PHP Code:
else
{
$SQL = new MSSQL( true );
$Query = "SELECT * FROM [CHARACTER_01_DBF].[dbo].[CHARACTER_TBL] WHERE [account] = %s AND [m_idPlayer] = %s AND [isblock] = 'F'";
$character = $SQL->Exec( $Query, $_SESSION['user_id'], sprintf( "%07d", $_SESSION['m_idPlayer'] ) ) ? $SQL->fetch[0] : false;
print_r($character);
$loggedin = false;
die( 'Fehler: Fehlerhafte Account Informationen.' );
}
Array ( [m_idPlayer] => 0002205 [serverindex] => 01 [account] => romzik [m_szName] => testt [playerslot] => 1 [dwWorldID] => 1 [m_dwIndex] => 12 [m_vScale_x] => 1.0 [m_dwMotion] => 0 [m_vPos_x] => 6971.21 [m_vPos_y] => 100.19997 [m_vPos_z] => 3331.8574 [m_fAngle] => 0.0 [m_szCharacterKey] => (null) [m_nHitPoint] => 230 [m_nManaPoint] => 63 [m_nFatiguePoint] => 32 [m_nFuel] => -1 [m_dwSkinSet] => 0 [m_dwHairMesh] => 0 [m_dwHairColor] => -329126 [m_dwHeadMesh] => 2 [m_dwSex] => 1 [m_dwRideItemIdx] => 0 [m_dwGold] => 0 [m_nJob] => 0 [m_pActMover] => 1,0 [m_nStr] => 15 [m_nSta] => 15 [m_nDex] => 15 [m_nInt] => 15 [m_nLevel] => 1 [m_nMaximumLevel] => 1 [m_nExp1] => 0 [m_nExp2] => 0 [m_aJobSkill] => [m_aLicenseSkill] => [m_aJobLv] => 0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/$ [m_dwExpertLv] => 0 [m_idMarkingWorld] => 0 [m_vMarkingPos_x] => 0.0 [m_vMarkingPos_y] => 0.0 [m_vMarkingPos_z] => 0.0 [m_nRemainGP] => 0 [m_nRemainLP] => 0 [m_nFlightLv] => 0 [m_nFxp] => 0 [m_nTxp] => 0 [m_lpQuestCntArray] => $ [m_chAuthority] => Z [m_dwMode] => 131072 [m_idparty] => 0 [m_idCompany] => 000000 [m_idMuerderer] => 0 [m_nFame] => 0 [m_nDeathExp] => 0 [m_nDeathLevel] => 0 [m_dwFlyTime] => 0 [m_nMessengerState] => 0 [blockby] => [TotalPlayTime] => 106 [isblock] => F [End_Time] => 201803020000 [BlockTime] => 20150301 [CreateTime] => 2015-03-02 07:03:19.993 [m_tmAccFuel] => 0 [m_tGuildMember] => 20150301070319 [m_dwSkillPoint] => 0 [m_aCompleteQuest] => $ [m_dwReturnWorldID] => 1 [m_vReturnPos_x] => 0.0 [m_vReturnPos_y] => 0.0 [m_vReturnPos_z] => 0.0 [MultiServer] => 1 [m_SkillPoint] => 0 [m_SkillLv] => 0 [m_SkillExp] => 0 [dwEventFlag] => 0 [dwEventTime] => 0 [dwEventElapsed] => 0 [PKValue] => 0 [PKPropensity] => 0 [PKExp] => 0 [AngelExp] => 0 [AngelLevel] => 0 [FinalLevelDt] => 2000-01-01 00:00:00 [m_dwPetId] => -1 [m_nExpLog] => 0 [m_nAngelExpLog] => 0 [m_nCoupon] => 0 [m_nHonor] => -1 [m_nLayer] => 0 [m_nCampusPoint] => 0 [idCampus] => 0 [m_aCheckedQuest] => $ [GlowArmRight] => 0 [GlowArmLeft] => 0 [GlowLegRight] => 0 [GlowLegLeft] => 0 [GlowBody] => 0 [GlowHandLeft] => 0 [GlowHandRight] => 0 ) Fehler: Fehlerhafte Account Informationen.
|
|
|
03/02/2015, 09:52
|
#79
|
elite*gold: 10
Join Date: Jan 2015
Posts: 937
Received Thanks: 451
|
Quote:
Originally Posted by romzik
Notice: Undefined index: user_id in C:\wamp\www\shop\login.php on line 8
Notice: Undefined index: m_idPlayer in C:\wamp\www\shop\login.php on line 9
Notice: Undefined index: server_index in C:\wamp\www\shop\login.php on line 10
Notice: Undefined index: check in C:\wamp\www\shop\login.php on line 11
Notice: Undefined index: md5 in C:\wamp\www\shop\login.php on line 12
Fehler: Einige Daten wurden nicht übermittelt.
und wenn ich mich anmelde, kommt das: Fehler: Fehlerhafte Account Informationen.
kleine test.. bekomme ich komplette information..
PHP Code:
else { $SQL = new MSSQL( true ); $Query = "SELECT * FROM [CHARACTER_01_DBF].[dbo].[CHARACTER_TBL] WHERE [account] = %s AND [m_idPlayer] = %s AND [isblock] = 'F'"; $character = $SQL->Exec( $Query, $_SESSION['user_id'], sprintf( "%07d", $_SESSION['m_idPlayer'] ) ) ? $SQL->fetch[0] : false; print_r($character); $loggedin = false; die( 'Fehler: Fehlerhafte Account Informationen.' ); }
Array ( [m_idPlayer] => 0002205 [serverindex] => 01 [account] => romzik [m_szName] => testt [playerslot] => 1 [dwWorldID] => 1 [m_dwIndex] => 12 [m_vScale_x] => 1.0 [m_dwMotion] => 0 [m_vPos_x] => 6971.21 [m_vPos_y] => 100.19997 [m_vPos_z] => 3331.8574 [m_fAngle] => 0.0 [m_szCharacterKey] => (null) [m_nHitPoint] => 230 [m_nManaPoint] => 63 [m_nFatiguePoint] => 32 [m_nFuel] => -1 [m_dwSkinSet] => 0 [m_dwHairMesh] => 0 [m_dwHairColor] => -329126 [m_dwHeadMesh] => 2 [m_dwSex] => 1 [m_dwRideItemIdx] => 0 [m_dwGold] => 0 [m_nJob] => 0 [m_pActMover] => 1,0 [m_nStr] => 15 [m_nSta] => 15 [m_nDex] => 15 [m_nInt] => 15 [m_nLevel] => 1 [m_nMaximumLevel] => 1 [m_nExp1] => 0 [m_nExp2] => 0 [m_aJobSkill] => [m_aLicenseSkill] => [m_aJobLv] => 0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/$ [m_dwExpertLv] => 0 [m_idMarkingWorld] => 0 [m_vMarkingPos_x] => 0.0 [m_vMarkingPos_y] => 0.0 [m_vMarkingPos_z] => 0.0 [m_nRemainGP] => 0 [m_nRemainLP] => 0 [m_nFlightLv] => 0 [m_nFxp] => 0 [m_nTxp] => 0 [m_lpQuestCntArray] => $ [m_chAuthority] => Z [m_dwMode] => 131072 [m_idparty] => 0 [m_idCompany] => 000000 [m_idMuerderer] => 0 [m_nFame] => 0 [m_nDeathExp] => 0 [m_nDeathLevel] => 0 [m_dwFlyTime] => 0 [m_nMessengerState] => 0 [blockby] => [TotalPlayTime] => 106 [isblock] => F [End_Time] => 201803020000 [BlockTime] => 20150301 [CreateTime] => 2015-03-02 07:03:19.993 [m_tmAccFuel] => 0 [m_tGuildMember] => 20150301070319 [m_dwSkillPoint] => 0 [m_aCompleteQuest] => $ [m_dwReturnWorldID] => 1 [m_vReturnPos_x] => 0.0 [m_vReturnPos_y] => 0.0 [m_vReturnPos_z] => 0.0 [MultiServer] => 1 [m_SkillPoint] => 0 [m_SkillLv] => 0 [m_SkillExp] => 0 [dwEventFlag] => 0 [dwEventTime] => 0 [dwEventElapsed] => 0 [PKValue] => 0 [PKPropensity] => 0 [PKExp] => 0 [AngelExp] => 0 [AngelLevel] => 0 [FinalLevelDt] => 2000-01-01 00:00:00 [m_dwPetId] => -1 [m_nExpLog] => 0 [m_nAngelExpLog] => 0 [m_nCoupon] => 0 [m_nHonor] => -1 [m_nLayer] => 0 [m_nCampusPoint] => 0 [idCampus] => 0 [m_aCheckedQuest] => $ [GlowArmRight] => 0 [GlowArmLeft] => 0 [GlowLegRight] => 0 [GlowLegLeft] => 0 [GlowBody] => 0 [GlowHandLeft] => 0 [GlowHandRight] => 0 ) Fehler: Fehlerhafte Account Informationen.
|
Ich werde mal auf den Erendora Server gehen und dir die Gefixte Version des Web Shops geben.
Edit:
Download:
Sagen die du beachten musst:
Login.php: In zeile 28:
PHP Code:
if( (md5( $_SESSION['user_id'].$_SESSION['m_idPlayer'].$_SESSION['server_index'].'DEIN HASH EINTRAGEN' ) == $_SESSION['md5'] ) && $account['password'] == $_SESSION['check'] )
Login.php: Zeile 39:
PHP Code:
$_SESSION['md5'] = md5( $_SESSION['user_id'].$_SESSION['m_idPlayer'].$_SESSION['server_index'].'DEINEN HASH EINTRAGEN' );
Config: Deine einstellungen:
PHP Code:
<?php session_start(); ini_set('display_errors', false); error_reporting(E_ALL ^ E_NOTICE); $_CONFIG = array(); define( "MSSQL_HOST", "DEINE DATENBANK" ); // Host define( "MSSQL_USER", "ADMINISTRATOR BENUTZER DER DATENBANK" ); // User define( "MSSQL_PASS", "DATENBANKPASSWORT" ); // Pass define( "MSSQL_PORT", "1433" ); // Port (default: 1433) define( "MSSQL_VERS", "10" ); // Driver version ( 10 => SQL2008, 11 => SQL2012 ) define( "MSSQL_TRUS", false ); // Trusting connection ( Localhost => true, Remote => false ) // Class includes include( "class/class.odbc.php" ); // CDPSrvr define( "BILLING_IP", "IP ADRESSE" ); // Billing IP define( "BILLING_PORT", 29000 ); // Billing Port define( "BILLING_CHECK1", 0000000 ); // Billing first check value define( "BILLING_CHECK2", 0000000 ); // Billing second check value // Site config $language = 'DE'; // Shop language ( DE => German, EN => English ) $site_title = 'Premium Shop'; // Shop title $charge_url = 'DEINE DOMAIN ODER IP EINTRAGEN'; // Charge url $cash_name = 'dPoints'; // Currency name $cash_short = 'dP'; // Currency name (short) $hash_password = ''; // Password hash $hash_shop = 'DEIN HASH EINTRAGEN'; // Shop hash // Language include include( 'language.php' ); $shop_cat = array( 'A' => $lang['cat_a'], 'B' => $lang['cat_b'], 'C' => $lang['cat_c'], 'D' => $lang['cat_d'], 'E' => $lang['cat_e'], 'F' => $lang['cat_f'], 'G' => $lang['cat_g'], 'H' => $lang['cat_h'], 'I' => $lang['cat_i'], 'J' => $lang['cat_j'] ); // Login handling include( 'login.php' ); ?>
|
|
|
03/02/2015, 10:54
|
#80
|
elite*gold: 26
Join Date: Aug 2011
Posts: 45
Received Thanks: 1
|
funktioniert trotzdem nicht.. keine ahnung was er will...
|
|
|
03/02/2015, 11:15
|
#81
|
elite*gold: 18
Join Date: Sep 2009
Posts: 20,174
Received Thanks: 14,475
|
Andere trusted Einstellung mal testen. Von false auf true.
|
|
|
03/02/2015, 12:22
|
#82
|
elite*gold: 26
Join Date: Aug 2011
Posts: 45
Received Thanks: 1
|
Hilfe Leute... verstehe nicht ganz das:
Open include/config.php and change the following settings:
BILLING_IP Don't change this if the web site is on the same root server as the server files.
BILLING_PORT Default is 29000. You can change this just search for PN_ADBILL in your source files.
BILLING_CHECK1 This one is the first check key. This have to be a number and the same as bi2.dwParam4 in CDPSrvr::OnBuyingInfo.
BILLING_CHECK2 This one is the second check key. This have to be a number and the same as bi2.dwParam5 in CDPSrvr::OnBuyingInfo.
$hash_shop This is a hash value for validation and have to be the same as hash in CWebBox::Refresh_Web and CWebBox::Process.
kann jemand per Teamviewer helfen?
|
|
|
05/09/2015, 16:22
|
#83
|
elite*gold: 0
Join Date: Jan 2010
Posts: 141
Received Thanks: 8
|
Okay so I have this problem and hoping for some people to answer on how to fix. So I downloaded a ITEM_DBF from google, yes and then execute it in the database without any problem and I then executed this ITEM_DBF.sql that Sedrika included in his release and unfortunately I receive this errors that I dunno why it appears and have no idea on what to do, should I change something or comment out something or w/e? I really need help. Here is a quoted of the error that I got when I executed the query ITEM_DBF.sql. I am using MSSQL 2005 BTW!
Quote:
Msg 102, Level 15, State 1, Line 5
Incorrect syntax near '110'.
Msg 102, Level 15, State 6, Line 2
Incorrect syntax near 'HONOR_BROKER_PRIORITY'.
Msg 102, Level 15, State 6, Line 2
Incorrect syntax near 'FILESTREAM'.
Msg 102, Level 15, State 1, Line 2
Incorrect syntax near '0'.
Msg 2714, Level 16, State 6, Line 2
There is already an object named 'ITEM_TBL' in the database.
Msg 207, Level 16, State 1, Procedure ITEM_STR, Line 90
Invalid column name 'dwHanded'.
Msg 207, Level 16, State 1, Procedure ITEM_STR, Line 91
Invalid column name 'dwFlag'.
Msg 207, Level 16, State 1, Procedure ITEM_STR, Line 93
Invalid column name 'dwPartsub'.
Msg 207, Level 16, State 1, Procedure ITEM_STR, Line 94
Invalid column name 'dwExclusive'.
Msg 207, Level 16, State 1, Procedure ITEM_STR, Line 97
Invalid column name 'dwShopAble'.
Msg 207, Level 16, State 1, Procedure ITEM_STR, Line 98
Invalid column name 'bCharged'.
Msg 207, Level 16, State 1, Procedure ITEM_STR, Line 101
Invalid column name 'eItemType'.
Msg 207, Level 16, State 1, Procedure ITEM_STR, Line 104
Invalid column name 'fAttackSpeed'.
Msg 207, Level 16, State 1, Procedure ITEM_STR, Line 106
Invalid column name 'nProbability'.
Msg 207, Level 16, State 1, Procedure ITEM_STR, Line 109
Invalid column name 'dwDestParam3'.
Msg 207, Level 16, State 1, Procedure ITEM_STR, Line 112
Invalid column name 'nAdjParamVal3'.
Msg 207, Level 16, State 1, Procedure ITEM_STR, Line 115
Invalid column name 'dwChgParamVal3'.
Msg 207, Level 16, State 1, Procedure ITEM_STR, Line 116
Invalid column name 'nDestData11'.
Msg 207, Level 16, State 1, Procedure ITEM_STR, Line 117
Invalid column name 'nDestData12'.
Msg 207, Level 16, State 1, Procedure ITEM_STR, Line 118
Invalid column name 'nDestData13'.
Msg 207, Level 16, State 1, Procedure ITEM_STR, Line 120
Invalid column name 'dwReqFp'.
Msg 207, Level 16, State 1, Procedure ITEM_STR, Line 124
Invalid column name 'dwReferStat1'.
Msg 207, Level 16, State 1, Procedure ITEM_STR, Line 125
Invalid column name 'dwReferStat2'.
Msg 207, Level 16, State 1, Procedure ITEM_STR, Line 126
Invalid column name 'dwReferTarget1'.
Msg 207, Level 16, State 1, Procedure ITEM_STR, Line 127
Invalid column name 'dwReferTarget2'.
Msg 207, Level 16, State 1, Procedure ITEM_STR, Line 128
Invalid column name 'dwReferValue1'.
Msg 207, Level 16, State 1, Procedure ITEM_STR, Line 129
Invalid column name 'dwReferValue2'.
Msg 207, Level 16, State 1, Procedure ITEM_STR, Line 131
Invalid column name 'nItemResistElecricity'.
Msg 207, Level 16, State 1, Procedure ITEM_STR, Line 132
Invalid column name 'nItemResistFire'.
Msg 207, Level 16, State 1, Procedure ITEM_STR, Line 133
Invalid column name 'nItemResistWind'.
Msg 207, Level 16, State 1, Procedure ITEM_STR, Line 134
Invalid column name 'nItemResistWater'.
Msg 207, Level 16, State 1, Procedure ITEM_STR, Line 135
Invalid column name 'nItemResistEarth'.
Msg 207, Level 16, State 1, Procedure ITEM_STR, Line 139
Invalid column name 'dwFFuelReMax'.
Msg 207, Level 16, State 1, Procedure ITEM_STR, Line 140
Invalid column name 'dwAFuelReMax'.
Msg 207, Level 16, State 1, Procedure ITEM_STR, Line 142
Invalid column name 'szIcon'.
Msg 207, Level 16, State 1, Procedure ITEM_STR, Line 143
Invalid column name 'szCommand'.
Msg 207, Level 16, State 1, Procedure ITEM_STR, Line 293
Invalid column name 'szName'.
|
|
|
|
05/19/2015, 06:55
|
#84
|
elite*gold: 0
Join Date: Jan 2010
Posts: 141
Received Thanks: 8
|
How to make this available only in the game?
|
|
|
09/14/2015, 04:27
|
#85
|
elite*gold: 0
Join Date: Dec 2012
Posts: 239
Received Thanks: 33
|
Quote:
Originally Posted by Sedrika
Download
Download 
Download
Open DbItemUpdate.cpp and search for:
Code:
void CDbManager::ChangeItemUpdate( CQuery* pQuery )
Replace the whole function with this one:
Code:
void CDbManager::ChangeItemUpdate( CQuery* pQuery )
{
char szSQL[4096] = {0,};
sprintf( szSQL, "ITEM_STR 'D1'" );
if( FALSE == pQuery->Exec( szSQL ) )
{
WriteLog( szSQL );
return;
}
for( int i = 0; i < prj.m_aPropItem.GetSize(); i++ )
{
ItemProp* pItemProp = prj.GetItemProp( i );
if( pItemProp && pItemProp->dwItemKind3 != IK3_VIRTUAL && pItemProp->dwID != 0 )
{
CString strItem = pItemProp->szName;
strItem.Replace( "'", "" );
CString strItemCommand = pItemProp->szCommand;
strItemCommand.Replace( "'", "" );
sprintf( szSQL, "ITEM_STR 'I1',"
"%d, '%s', %d, %d, %d, %d," // 0
"%d, %d, %d, %d, %d, %d," // 1
"%d, %d, %d, %d, %d, %d," // 2
"%d, %d, %d, %d, %d, %f," // 3
"%d, %d, %d, %d, %d, %d," // 4
"%d, %d, %d, %d, %d, %d," // 5
"%d, %d, %d, %d, %d, %d," // 6
"%d, %d, %d, %d, %d, %d," // 7
"%d, %d, %d, %d, %d, %d," // 8
"%d, %d, %f, %d, %d, %d," // 9
"%d, '%s', '%s'", // 10
pItemProp->dwID, strItem, pItemProp->dwPackMax, pItemProp->dwItemKind1, pItemProp->dwItemKind2, pItemProp->dwItemKind3, // 0
pItemProp->dwItemJob, pItemProp->dwItemSex, pItemProp->dwCost, pItemProp->dwHanded, pItemProp->dwFlag, pItemProp->dwParts, // 1
pItemProp->dwPartsub, pItemProp->dwExclusive, pItemProp->dwItemLV, pItemProp->dwItemRare, pItemProp->dwShopAble, pItemProp->bCharged, // 2
pItemProp->dwAbilityMin, pItemProp->dwAbilityMax, pItemProp->eItemType, pItemProp->dwWeaponType, pItemProp->nAdjHitRate, pItemProp->fAttackSpeed, // 3
pItemProp->dwAttackRange, pItemProp->nProbability, pItemProp->dwDestParam[0], pItemProp->dwDestParam[1], pItemProp->dwDestParam[2], pItemProp->nAdjParamVal[0], // 4
pItemProp->nAdjParamVal[1], pItemProp->nAdjParamVal[2], pItemProp->dwChgParamVal[0], pItemProp->dwChgParamVal[1], pItemProp->dwChgParamVal[2], pItemProp->nDestData1[0], // 5
pItemProp->nDestData1[1], pItemProp->nDestData1[2], pItemProp->dwReqMp, pItemProp->dwReqFp, pItemProp->dwReqDisLV, pItemProp->dwCircleTime, // 6
pItemProp->dwSkillTime, pItemProp->dwReferStat1, pItemProp->dwReferStat2, pItemProp->dwReferTarget1, pItemProp->dwReferTarget2, pItemProp->dwReferValue1, // 7
pItemProp->dwReferValue2, pItemProp->dwSkillType, pItemProp->nItemResistElecricity, pItemProp->nItemResistFire, pItemProp->nItemResistWind, pItemProp->nItemResistWater, // 8
pItemProp->nItemResistEarth, pItemProp->dwExp, pItemProp->fFlightSpeed, pItemProp->dwFlightLimit, pItemProp->dwFFuelReMax, pItemProp->dwAFuelReMax, // 9
pItemProp->dwLimitLevel1, pItemProp->szIcon, strItemCommand // 10
);
if( FALSE == pQuery->Exec( szSQL ) )
{
WriteLog( szSQL );
return;
}
} // if
} // for
TRACE( "ChangeItemUpdate Complete\n" );
}
Open ProjectCmn.cpp and search for:
Code:
BOOL CProject::LoadPropItem( LPCTSTR lpszFileName, CFixedArray< ItemProp >* apObjProp )
Search and replace this:
Code:
#ifdef __CLIENT
_tcsncpy( prop.szIcon, scanner.token, sizeof(prop.szIcon)-1 );
prop.szCommand[sizeof(prop.szIcon)-1] = 0;
#endif
with this:
Code:
#if defined(__CLIENT) || defined(__DBSERVER)
_tcsncpy( prop.szIcon, scanner.token, sizeof(prop.szIcon)-1 );
prop.szCommand[sizeof(prop.szIcon)-1] = 0;
#endif
Search and replace this:
Code:
#ifdef __CLIENT
_tcsncpy( prop.szCommand, scanner.token, sizeof(prop.szCommand)-1 );
prop.szCommand[sizeof(prop.szCommand)-1] = 0;
#endif
with this:
Code:
#if defined(__CLIENT) || defined(__DBSERVER)
_tcsncpy( prop.szCommand, scanner.token, sizeof(prop.szCommand)-1 );
prop.szCommand[sizeof(prop.szCommand)-1] = 0;
#endif
Open ProjectCmn.h and search for:
Code:
#ifdef __CLIENT
TCHAR szIcon[64];
TCHAR szCommand[256];
#endif
and replace it with this:
Code:
#if defined(__CLIENT) || defined(__DBSERVER)
TCHAR szIcon[64];
TCHAR szCommand[256];
#endif
Open DPSrvr.cpp and search for:
Code:
void CDPSrvr::OnBuyingInfo( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
and replace the whole function with this:
Code:
void CDPSrvr::OnBuyingInfo( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
{
BUYING_INFO2 bi2;
ar.Read( (void*)&bi2, sizeof(BUYING_INFO2) );
CWorld* pWorld;
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );
/*
100 - Save Player
101 - Create Item
*/
if( IsValidObj( pUser ) && ( pWorld = pUser->GetWorld() ) )
{
if( bi2.dwParam4 != 0000000 || bi2.dwParam5 != 0000000 )
return;
if( bi2.dwCommand == 100 ) // Save Player
{
g_dpDBClient.SavePlayer( pUser, pWorld->GetID(), pUser->GetPos(), pUser->GetLayer() );
}
else if( bi2.dwCommand == 101 ) // Create Item
{
SERIALNUMBER iSerialNumber = 0;
CItemElem itemElem;
itemElem.m_dwItemId = bi2.dwParam1;
itemElem.m_nItemNum = (short)bi2.dwParam2;
itemElem.m_bCharged = TRUE;
BYTE nId;
bi2.dwParam3 = pUser->CreateItem( &itemElem, &nId );
if( bi2.dwParam3 )
{
CItemElem* pItemElem = pUser->m_Inventory.GetAtId( nId );
if( pItemElem )
{
iSerialNumber = pItemElem->GetSerialNumber();
pItemElem->m_bCharged = TRUE;
if( bi2.dwTargetId > 0 )
pUser->AddDefinedText( TID_EVE_REAPITEM, "\"%s\"", itemElem.GetName() );
}
}
else
{
LogItemInfo aLogItem;
aLogItem.Action = "S";
aLogItem.SendName = pUser->GetName();
aLogItem.WorldId = pUser->GetWorld()->GetID();
aLogItem.Gold = aLogItem.Gold2 = pUser->GetGold();
g_dpDBClient.SendQueryPostMail( pUser->m_idPlayer, 0, itemElem, 0, "WebShop", "" );
aLogItem.RecvName = "HOMEPAGE_SHOP";
g_DPSrvr.OnLogItem( aLogItem, &itemElem, itemElem.m_nItemNum );
}
g_dpDBClient.SendBuyingInfo( &bi2, iSerialNumber );
g_dpDBClient.SavePlayer( pUser, pWorld->GetID(), pUser->GetPos(), pUser->GetLayer() );
}
}
}
Open buyinginfo.h and replace the while file with this:
Code:
#ifndef __CHARGEDITEM_H__
#define __CHARGEDITEM_H__
typedef struct _BUYING_INFO
{
DWORD dwServerIndex;
DWORD dwPlayerId;
DWORD dwTargetId;
DWORD dwCommand;
DWORD dwParam1;
DWORD dwParam2;
DWORD dwParam3;
DWORD dwParam4;
DWORD dwParam5;
_BUYING_INFO()
{
dwServerIndex = 0;
dwPlayerId = 0;
dwTargetId = 0;
dwCommand = 0;
dwParam1 = 0;
dwParam2 = 0;
dwParam3 = 0;
dwParam4 = 0;
dwParam5 = 0;
}
}
BUYING_INFO, *PBUYING_INFO;
typedef struct _BUYING_INFO2: public _BUYING_INFO
{
DWORD dpid;
DWORD dwKey;
_BUYING_INFO2() : _BUYING_INFO()
{
dpid = 0xFFFFFFFF;
dwKey = 0;
}
}
BUYING_INFO2, *PBUYING_INFO2;
typedef struct _BUYING_INFO3: public _BUYING_INFO2
{
DWORD dwTickCount;
_BUYING_INFO3() : _BUYING_INFO2()
{
// dwTickCount = GetTickCount();
}
}
BUYING_INFO3, *PBUYING_INFO3;
#endif // __CHARGEDITEM_H__
Open dpadbill.h and search for:
Code:
void Process( void )
and replace the whole function with this:
Code:
void Process( void )
{
DWORD dwTickCount = GetTickCount();
// static DWORD adwKey[1024];
vector<DWORD> adwKey;
int nSize = 0;
m_AddRemoveLock.Enter();
for( map<DWORD, PBUYING_INFO3>::iterator i = m_mapPbi3.begin(); i != m_mapPbi3.end(); ++i )
{
PBUYING_INFO3 pbi3 = i->second;
if( dwTickCount - pbi3->dwTickCount > SEC( 3 ) )
{
CDPAdbill::GetInstance()->Send( pbi3, sizeof(BUYING_INFO), pbi3->dpid );
// adwKey[nSize++] = pbi3->dwKey;
adwKey.push_back( pbi3->dwKey );
}
}
// Remove
// for( int j = 0; j < nSize; j++ )
for( DWORD j = 0; j < adwKey.size(); j++ )
{
// PBUYING_INFO3 ptr = CBuyingInfoMng::GetInstance()->Get( adwKey[j] );
PBUYING_INFO3 ptr = CBuyingInfoMng::GetInstance()->Get( adwKey[j] );
if( ptr )
{
BUYING_INFO2 bi2;
DWORD sn = 0;
bi2.dwServerIndex = ptr->dwServerIndex;
bi2.dwPlayerId = ptr->dwPlayerId;
bi2.dwTargetId = ptr->dwTargetId;
bi2.dwCommand = ptr->dwCommand;
bi2.dwParam1 = ptr->dwParam1;
bi2.dwParam2 = ptr->dwParam2;
bi2.dwParam3 = ptr->dwParam3;
bi2.dwParam4 = ptr->dwParam4;
bi2.dwParam5 = ptr->dwParam5;
CAr ar;
ar.Write( (void*)&bi2, sizeof(BUYING_INFO2) );
ar << sn;
int nBufSize;
LPBYTE lpData = ar.GetBuffer( &nBufSize );
LPDB_OVERLAPPED_PLUS lpDbOverlappedPlus = g_DbManager.m_pDbIOData->Alloc();
memcpy( lpDbOverlappedPlus->lpBuf, lpData, nBufSize );
lpDbOverlappedPlus->uBufSize = nBufSize;
lpDbOverlappedPlus->nQueryMode = LOG_SM_ITEM;
PostQueuedCompletionStatus( g_DbManager.m_hDbCompletionPort, 1, NULL, &lpDbOverlappedPlus->Overlapped );
}
Remove( adwKey[j] );
SAFE_DELETE( ptr );
}
m_AddRemoveLock.Leave();
adwKey.clear();
}
Open WebBox.cpp and search for:
Code:
void CWebBox::Refresh_Web()
and replace the whole function with this:
Code:
void CWebBox::Refresh_Web()
{
char address[512], postdata[WEB_STR_LEN], header[WEB_STR_LEN];
ZeroMemory( address, 512 );
wsprintf( address, GetAddress() );
char out[260] = { 0, };
char in[260] = { 0, };
CString hash = "gaajgussfdbfhjq";
sprintf( in, "%s%d%d%s", m_szUser, m_nPlayer, m_nServer, hash );
::md5( out, in );
wsprintf( postdata, WEB_POSTDATA, m_szUser, m_nPlayer, m_nServer, out, g_Neuz.m_szPassword );
wsprintf( header, WEB_HEADER, lstrlen( postdata ) );
ChangeWebAddress( address, postdata, header );
}
Search for:
Code:
bool CWebBox::Process(HWND hWnd,HINSTANCE hInstance, char* szUser, u_long nPlayer, DWORD nServer, int nLevel, int nJob, int nSex, const char* szName )
and replace the whole function with this:
Code:
bool CWebBox::Process(HWND hWnd,HINSTANCE hInstance, char* szUser, u_long nPlayer, DWORD nServer, int nLevel, int nJob, int nSex, const char* szName )
{
char address[512], postdata[WEB_STR_LEN], header[WEB_STR_LEN];
ZeroMemory( address, 512 );
ZeroMemory( postdata, WEB_STR_LEN );
ZeroMemory( header, WEB_STR_LEN );
if( m_bStart && m_bStartWeb )
{
lstrcpy( m_szUser, szUser );
m_nPlayer = nPlayer;
m_nServer = nServer;
m_nLevel = nLevel;
m_nJob = nJob;
m_nSex = nSex;
lstrcpy( m_szName, szName );
D3DDEVICE->SetDialogBoxMode( TRUE );
Start_WebBox( hWnd, hInstance, WEB_DEFAULT_X, WEB_DEFAULT_Y, NULL );
wsprintf( address, GetAddress() );
char out[260] = { 0, };
char in[260] = { 0, };
CString hash = "gjgusdbfjq";
sprintf( in, "%s%d%d%s", m_szUser, m_nPlayer, m_nServer, hash );
::md5( out, in );
wsprintf( postdata, WEB_POSTDATA, m_szUser, m_nPlayer, m_nServer, out, g_Neuz.m_szPassword );
wsprintf( header, WEB_HEADER, lstrlen( postdata ) );
ChangeWebAddress( address, postdata, header );
Show( TRUE );
m_bStart = false;
m_bEnd = false;
return true;
}
else if( m_bEnd )
{
End_WebBox();
m_bEnd = false;
m_bStart = false;
m_bStartWeb = false;
return false;
}
else if( m_bStartWeb )
{
if( GetAsyncKeyState( VK_F5 ) )
Refresh_Web();
}
return false;
}
Open dpdbsrvr.cpp and search for:
Code:
void CDPDBSrvr::OnBuyingInfo( CAr & ar, DPID dpid, LPBYTE lpBuf, u_long uBufSize )
and replace the whole function with this:
Code:
void CDPDBSrvr::OnBuyingInfo( CAr & ar, DPID dpid, LPBYTE lpBuf, u_long uBufSize )
{
BUYING_INFO2 bi2;
SERIALNUMBER iSerialNumber;
ar.Read( (void*)&bi2, sizeof(BUYING_INFO2) );
ar >> iSerialNumber;
CBuyingInfoMng::GetInstance()->m_AddRemoveLock.Enter();
PBUYING_INFO3 pbi3 = CBuyingInfoMng::GetInstance()->Get( bi2.dwKey );
if( pbi3 )
{
//static char lpOutputString[260] = { 0, };
//sprintf( lpOutputString, "ACCOUNTSERVER.EXE\t// Recv from trans\t// dwRetVal = %d", bi2.dwRetVal );
//OutputDebugString( lpOutputString );
CDPAdbill::GetInstance()->Send( &bi2, sizeof(BUYING_INFO), bi2.dpid );
CBuyingInfoMng::GetInstance()->Remove( bi2.dwKey );
safe_delete( pbi3 );
/*
bi2.szBxaid // 구매 번호
bi2.dwItemId // 아이템 인덱스
bi2.dwItemNum // 아이템 개수
bi2.dwServerIndex // 서버 인덱스
bi2.dwPlayerId // 플레이어 식별자
bi2.dwRetVal // 지급 성공 여부, 성공 : 1, 실패 : 0
iSerialNumber // 시리얼 번호
*/
LPDB_OVERLAPPED_PLUS lpDbOverlappedPlus = g_DbManager.m_pDbIOData->Alloc();
memcpy( lpDbOverlappedPlus->lpBuf, (LPBYTE)lpBuf + sizeof(DWORD), uBufSize - sizeof(DWORD) );
lpDbOverlappedPlus->uBufSize = uBufSize - sizeof(DWORD);
lpDbOverlappedPlus->nQueryMode = LOG_SM_ITEM;
PostQueuedCompletionStatus( g_DbManager.m_hDbCompletionPort, 1, NULL, &lpDbOverlappedPlus->Overlapped );
}
else
{
// 치명적 오류 : 어카운트 서버에는 지급 명령에 대한 정보가 없다.
}
CBuyingInfoMng::GetInstance()->m_AddRemoveLock.Leave();
TRACE( "RECV PACKETTYPE_BUYING_INFO FROM TRANS\n" );
}
Open DBManager.cpp and search for:
Code:
void CDbManager::LogSMItem( CQuery & qryLog, LPDB_OVERLAPPED_PLUS lpDbOverlappedPlus )
and replace the whole function with:
Code:
void CDbManager::LogSMItem( CQuery & qryLog, LPDB_OVERLAPPED_PLUS lpDbOverlappedPlus )
{
return;
}
Open dpadbill.cpp and search for:
Code:
void CDPAdbill::UserMessageHandler( LPDPMSG_GENERIC lpMsg, DWORD dwMsgSize, DPID idFrom )
and replace the whole function with this:
Code:
void CDPAdbill::UserMessageHandler( LPDPMSG_GENERIC lpMsg, DWORD dwMsgSize, DPID idFrom )
{
PBUYING_INFO3 pbi3 = new BUYING_INFO3;
memcpy( (void*)pbi3, lpMsg, sizeof(BUYING_INFO) );
pbi3->dpid = idFrom;
pbi3->dwKey = m_dwKey++;
pbi3->dwTickCount = GetTickCount();
CBuyingInfoMng::GetInstance()->Add( pbi3 );
g_dpDbSrvr.SendBuyingInfo( (PBUYING_INFO2)pbi3 );
}
Execute WebShop.sql and ITEM_DBF.sql
Open DatabaseServer.ini and add this if it's not already there:
Code:
ITEMUPDATE
DSN_NAME_ITEMUPDATE "item"
DB_ADMIN_ID_ITEMUPDATE "item"
DB_PWD_ITEMUPDATE ""
Create a new entry with the following settings:
Name: item
Default Database: ITEM_DBF
Open include/config.php and change the following settings:
BILLING_IP Don't change this if the web site is on the same root server as the server files.
BILLING_PORT Default is 29000. You can change this just search for PN_ADBILL in your source files.
BILLING_CHECK1 This one is the first check key. This have to be a number and the same as bi2.dwParam4 in CDPSrvr::OnBuyingInfo.
BILLING_CHECK2 This one is the second check key. This have to be a number and the same as bi2.dwParam5 in CDPSrvr::OnBuyingInfo.
$hash_shop This is a hash value for validation and have to be the same as hash in CWebBox::Refresh_Web and CWebBox::Process.
Open DONATE_SHOP_TBL in MSSQL and add the items there:
dwCategory A-H belongs on which category you want to add an item.
dwItemId Id of the item.
dwCost Item price.
dwAmount Amount of items.
dwGender 1 => Male, 2 => Female, 3 => Sexless
dwSale 0 => Hide, 1 => Show
dwPurchase How often this item has been bought. Default is 0 .
1.1
- Added a feature to login via webbrowser.
1.0.1
- Fixed a bug with sending packets to the servers.
Epilogue:
I will gradually integrate new functions and make them more user friendly.
I hope you enjoy using this shop system i've created from the original design used by Webzen.
Credits:
- Webzen - Design
- Sedrika - Everytihing else
|
|
|
|
09/15/2015, 18:42
|
#86
|
elite*gold: 0
Join Date: Jan 2009
Posts: 1,741
Received Thanks: 1,674
|
Quote:
Originally Posted by macboyem07
|
You should show us WHICH error...
|
|
|
09/16/2015, 07:04
|
#87
|
elite*gold: 0
Join Date: Mar 2014
Posts: 243
Received Thanks: 11
|
Quote:
Originally Posted by xTwiLightx
You should show us WHICH error...
|
you can see his error here
http://www.elitepvpers.com/forum/flyff-pserver-discussions-questions/3859482-help-sedrika-webshop.html
|
|
|
09/16/2015, 12:43
|
#88
|
elite*gold: 0
Join Date: Dec 2012
Posts: 239
Received Thanks: 33
|
Quote:
Originally Posted by xTwiLightx
You should show us WHICH error...
|
this ERRORS sir:
Quote:
Notice: Undefined index: user_id in C:\xampp\htdocs\webshop\login.php on line 8
Notice: Undefined index: m_idPlayer in C:\xampp\htdocs\webshop\login.php on line 9
Notice: Undefined index: server_index in C:\xampp\htdocs\webshop\login.php on line 10
Notice: Undefined index: check in C:\xampp\htdocs\webshop\login.php on line 11
Notice: Undefined index: md5 in C:\xampp\htdocs\webshop\login.php on line 12
|
|
|
|
09/16/2015, 18:35
|
#89
|
elite*gold: 0
Join Date: Jan 2009
Posts: 1,741
Received Thanks: 1,674
|
Quote:
Originally Posted by macboyem07
this ERRORS sir:

|
Your client is not sending a POST request. Something went wrong.
Did you follow this guide 1:1?
Even with a non-changed Neuz it should work.
|
|
|
09/17/2015, 03:38
|
#90
|
elite*gold: 0
Join Date: Dec 2012
Posts: 239
Received Thanks: 33
|
Quote:
Originally Posted by xTwiLightx
Your client is not sending a POST request. Something went wrong.
Did you follow this guide 1:1?
Even with a non-changed Neuz it should work.
|
yeah sir i follow sedrika guide 1 by 1..and i used webshop 1.1.1 ...but same error..i used blessed source base and i change something code on source,i change the path link of webshop because when i open the webshop in game..the webshop go to "http://billing.blablabla.gpotato.blabla."
sorry for my english sir xD..i hope you understand
|
|
|
Similar Threads
|
[SHOP] Steam E*Gold Shop [SHOP] ***100% Garantie***100% Qualität***100% Preis***
02/02/2014 - elite*gold Trading - 10 Replies
Steam Account Shop
Ein Design wird gesucht(einfach per pn anschreiben)
Ich habe viele Steam accounts zur verfügung und biete diese mit 100% Garantie für die Lebenszeit an!
Besondere Angebote werden hier in diesem Thread dargestellt, Anfragen nehme ich jedoch auch gerne per PN, Post (Thread) oder Skype (akaCube) an.
Als Bezahlung nehme ich E*Gold und Paysafecard an.
|
GameKey shop oder gold shop yang shop
06/23/2013 - Web Development - 5 Replies
Hi leute ich bin ein fauler mensch und kenne mich mit http oder php 0% aus ich suche so ein script das so sein soll wie mmoga.de oder online-gold.de igpard.com alles was ich gefunden hab war sowas wie ebay oderso also nicht virtuelle güter und goldpard.com auch villeicht könnt ihr euch die seiten mal ansehen und ob es so ein cms gibt muss nicht gleich sein nur so ähnlich
|
All times are GMT +1. The time now is 09:15.
|
|