Ich habe aktuell folgenden Fehler:
2014/ 5/29 16:26:39 GuildHouseTender.lua:46: attempt to call global 'SetGHQuest' (a nil value)
2014/ 5/29 16:26:39 GuildHouseTender.lua Load Failed!!!
Ich habe die aktuellste GuildHouseTender.lua und nutze Armas Source 1.01.
Der Fehler tritt auf wenn ich den WorldServer starte, denn dieser crasht sich dann auch sofort wieder. Irgentwas in der GuildHouse Funktion oder .lua fehlt. Habe schon alle Threads danach durchgeschaut.
Inhalt der GilldHouseTender.lua:
----------------------------------------------------------------------
----------------------------------------------------------------------
dofile(".\\LuaFunc\\GuildHouseFunc.lua")
----------------------------------------------------------------------
----------------------------------------------------------------------
AddTender( "WI_GUILDHOUSE_MIDDLE" )
--{
SetMaxHouse( 20 )
SetMinPenya( 500000000 )
SetChargeRate( 0.85 )
IsBeginNoticeTime = "Mon 10:00"
IsEndNoticeTime = "Mon 15:00"
IsBeginTenderTime = "Mon 16:00"
IsEndTenderTime = "Mon 17:00"
SetNpc= "MaFl_GUILDHOUSESALE 1"
SetNpc= "MaSa_GUILDHOUSESALEROA 2"
SetNpc= "MaEw_GUILDHOUSESALETROY 3"
--}
-- Flaris Guildhouse Notices
SetGHInfo( "MaFl_GUILDHOUSNOTICE_01", "WI_GUILDHOUSE_MIDDLE", GH_AREA_FLARIS , "Testtest Gildenhaus Flaris 1" )
SetGHInfo( "MaFl_GUILDHOUSNOTICE_02", "WI_GUILDHOUSE_MIDDLE", GH_AREA_FLARIS , "Testtest Gildenhaus Flaris 2" )
SetGHInfo( "MaFl_GUILDHOUSNOTICE_03", "WI_GUILDHOUSE_MIDDLE", GH_AREA_FLARIS , "Testtest Gildenhaus Flaris 3" )
SetGHInfo( "MaFl_GUILDHOUSNOTICE_04", "WI_GUILDHOUSE_MIDDLE", GH_AREA_FLARIS , "Testtest Gildenhaus Flaris 4" )
SetGHInfo( "MaFl_GUILDHOUSNOTICE_05", "WI_GUILDHOUSE_MIDDLE", GH_AREA_FLARIS , "Testtest Gildenhaus Flaris 5" )
-- Saint Morning Guildhouse Notices
SetGHInfo( "MaSa_GUILDHOUSNOTICE_01", "WI_GUILDHOUSE_MIDDLE", GH_AREA_SAINTMORNING , "Testtest Gildenhaus Saint Morning 1" )
SetGHInfo( "MaSa_GUILDHOUSNOTICE_02", "WI_GUILDHOUSE_MIDDLE", GH_AREA_SAINTMORNING , "Testtest Gildenhaus Saint Morning 2" )
SetGHInfo( "MaSa_GUILDHOUSNOTICE_03", "WI_GUILDHOUSE_MIDDLE", GH_AREA_SAINTMORNING , "Testtest Gildenhaus Saint Morning 3" )
SetGHInfo( "MaSa_GUILDHOUSNOTICE_04", "WI_GUILDHOUSE_MIDDLE", GH_AREA_SAINTMORNING , "Testtest Gildenhaus Saint Morning 4" )
SetGHInfo( "MaSa_GUILDHOUSNOTICE_05", "WI_GUILDHOUSE_MIDDLE", GH_AREA_SAINTMORNING , "Testtest Gildenhaus Saint Morning 5" )
SetGHInfo( "MaSa_GUILDHOUSNOTICE_06", "WI_GUILDHOUSE_MIDDLE", GH_AREA_SAINTMORNING , "Testtest Gildenhaus Saint Morning 6" )
SetGHInfo( "MaSa_GUILDHOUSNOTICE_07", "WI_GUILDHOUSE_MIDDLE", GH_AREA_SAINTMORNING , "Testtest Gildenhaus Saint Morning 7" )
SetGHInfo( "MaSa_GUILDHOUSNOTICE_08", "WI_GUILDHOUSE_MIDDLE", GH_AREA_SAINTMORNING , "Testtest Gildenhaus Saint Morning 8" )
SetGHInfo( "MaSa_GUILDHOUSNOTICE_09", "WI_GUILDHOUSE_MIDDLE", GH_AREA_SAINTMORNING , "Testtest Gildenhaus Saint Morning 9" )
-- Elriun Guildhouse Notices
SetGHInfo( "MaEw_GUILDHOUSNOTICE_01", "WI_GUILDHOUSE_MIDDLE", GH_AREA_ELLIUN , "Testtest Gildenhaus Elliun 1" )
SetGHInfo( "MaEw_GUILDHOUSNOTICE_02", "WI_GUILDHOUSE_MIDDLE", GH_AREA_ELLIUN , "Testtest Gildenhaus Elliun 2" )
SetGHInfo( "MaEw_GUILDHOUSNOTICE_03", "WI_GUILDHOUSE_MIDDLE", GH_AREA_ELLIUN , "Testtest Gildenhaus Elliun 3" )
----------------------------------------------------------------------
----------------------------------------------------------------------
SetGHQuest( "QUEST_GUILDHOUSE_TRN3", "WI_GUILDHOUSE_MIDDLE", 130 )
Zeilen die ich auskommentiert habe damit der Server nicht direkt crasht:
void CGuildHouseMng::LoadScript()
{
if( m_Lua.RunScript( "GuildHouseTender.lua" ) != 0 )
{
Error( "GuildHouseTender.lua Load Failed!!!" );
exit(0);
}
m_Lua.GetGloabal( "tTender" );
m_Lua.PushNil();
while( m_Lua.TableLoop( -2 ) )
{
DWORD dwGHType = static_cast<DWORD>( CScript::GetDefineNum( m_Lua.GetFieldToString( -1, "strGHType" ) ) );
TENDER_DATA TenderData;
TenderData.nMaxHouse = static_cast<int>( m_Lua.GetFieldToNumber( -1, "nMaxHouse" ) );
TenderData.nMinPenya = static_cast<int>( m_Lua.GetFieldToNumber( -1, "nMinPenya" ) );
TenderData.nChargeRate = static_cast<int>( m_Lua.GetFieldToNumber( -1, "nChargeRate" ) );
TenderData.dwPrevNoticeTick = static_cast<DWORD>( m_Lua.GetFieldToNumber( -1, "nPrevNoticeTick" ) );
TenderData.dwTenderNoticeTick = static_cast<DWORD>( m_Lua.GetFieldToNumber( -1, "nTenderNoticeTick" ) );
MAP_TENDER_DATA::iterator it = m_mapTenderData.insert( MAP_TENDER_DATA::value_type( dwGHType, TenderData ) ).first;
m_Lua.GetField( -1, "tNpc" );
m_Lua.PushNil();
while( m_Lua.TableLoop( -2 ) )
{
OBJID objNpcId = static_cast<OBJID>( CScript::GetDefineNum( m_Lua.GetFieldToString( -1, "strNpcId" ) ) );
int nAreaIndex = static_cast<int>( m_Lua.GetFieldToNumber( -1, "nAreaIndex" ) );
if( prj.GetMoverProp( objNpcId ) == NULL )
{
Error( "Invalid GuildHouse NpcId : %d", objNpcId );
}
it->second.mapNpc.insert( map<OBJID, int>::value_type( objNpcId, nAreaIndex ) );
m_Lua.Pop( 1 );
}
m_Lua.Pop( 1 );
m_Lua.Pop( 1 );
}
m_Lua.GetGloabal( "tGHInfo" );
m_Lua.PushNil();
while( m_Lua.TableLoop( -2 ) )
{
GUILDHOUSE_DATA GHData;
GHData.objGHId = static_cast<OBJID>( CScript::GetDefineNum( m_Lua.GetFieldToString( -1, "strNpcId" ) ) );
GHData.dwGHType = static_cast<DWORD>( CScript::GetDefineNum( m_Lua.GetFieldToString( -1, "strGHType" ) ) );
GHData.nAreaIndex = static_cast<int>( m_Lua.GetFieldToNumber( -1, "nAreaIndex" ) );
_tcscpy( GHData.szTitle, m_Lua.GetFieldToString( -1, "strTitle" ) );
m_mapGHData.insert( MAP_GH_DATA::value_type( GHData.objGHId, GHData ) );
m_Lua.Pop( 1 );
}
#ifdef __WORLDSERVER
m_Lua.GetGloabal( "tGHQuest" );
m_Lua.PushNil();
while( m_Lua.TableLoop( -2 ) )
{
int nQuestId = static_cast<OBJID>( CScript::GetDefineNum( m_Lua.GetFieldToString( -1, "strQuestId" ) ) );
GUILDHOUSE_QUEST GHQuest;
GHQuest.dwGHType = static_cast<DWORD>( m_Lua.GetFieldToNumber( -1, "dwGHType" ) );
GHQuest.nLevel = static_cast<int>( m_Lua.GetFieldToNumber( -1, "nLevel" ) );
m_mapGHQuest.insert( MAP_GH_QUEST::value_type( nQuestId, GHQuest ) );
m_Lua.Pop( 1 );
}
#endif // __WORLDSERVER
m_Lua.Pop( 0 );
}