[Release] RoC Fixes

12/29/2011 12:34 Shuya83#46
Die ganzen job quest sind buggy, wenn man job 1 quest angenommen hat kann man noch ne weitere quest annehmen.

2te Jobquest auch buggy sobald man den 2ten job hat, haben viele chars Skillbug und man kann keine skills skillen. 3te job quests sind soweit bug frei.


Wie kann ich das fixen?
12/29/2011 14:18 Achileus#47
Quote:
Originally Posted by Shuya83 View Post
Die ganzen job quest sind buggy, wenn man job 1 quest angenommen hat kann man noch ne weitere quest annehmen.

2te Jobquest auch buggy sobald man den 2ten job hat, haben viele chars Skillbug und man kann keine skills skillen. 3te job quests sind soweit bug frei.


Wie kann ich das fixen?
Weil offi ja die Quest´s geändert hat würde ich sie wieder auf denn alten Stand bringen wie bei v15 dann sollte es wieder gehen . Offi hat ja die 1-2 Jobchange gekürtzt bei 2 te nicht sicher aber bei der ersten sehr sogar!

Bin mir aber ehrlich nicht sicher ob das so stimmt ;(.

die QUests findest du bei propQuest.inc
12/29/2011 20:20 Shuya83#48
MAX_LEGEND_LEVEL 99.99% fix funktioniert nicht ich kann immer noch bis level 130 level, hat jemand nen rat woran das liegt? habs genau so geändert wie es auf erste seite steht.
12/30/2011 11:39 shevechco#49
Modified, BARUBA system still can not use and do not sign up,! ! ! Who can tell me how to fix it
02/19/2012 22:20 inteL96#50
Quote:
Originally Posted by fccfcc View Post
GuildCombatRank
Any tutorial for this?
02/26/2012 22:10 N8Schatten#51
Quote:
Originally Posted by inteL96 View Post
Any tutorial for this?
Würde mich auch ma intesieren wie man das einbaut, das siet interessant aus
02/26/2012 22:54 dennisdra#52
Quote:
Originally Posted by N8Schatten View Post
Würde mich auch ma intesieren wie man das einbaut, das siet interessant aus
...
Ein wenig Eigeninitiative wäre auch mal nicht schlecht...

TuT:

1. Man öffne die WndField.cpp in ...\_Interface\
2. Man suche nach folgendem:
Code:
CWndGuildCombatRank_Class* CWndGuildCombatRank_Person::__GetJobKindWnd(int nJob)
3. Man ersetze
Code:
CWndGuildCombatRank_Class* CWndGuildCombatRank_Person::__GetJobKindWnd(int nJob)
{
	switch(nJob) 
	{
	case JOB_MERCENARY:
	case JOB_KNIGHT:
	case JOB_BLADE:
 	case JOB_KNIGHT_MASTER:
	case JOB_BLADE_MASTER:
	case JOB_KNIGHT_HERO:
	case JOB_BLADE_HERO:
		return &m_WndGuildCombatTabClass_Mer;
		break;
		
	case JOB_ACROBAT:
	case JOB_JESTER:
	case JOB_RANGER:
	case JOB_JESTER_MASTER:
	case JOB_RANGER_MASTER:
	case JOB_JESTER_HERO:
	case JOB_RANGER_HERO:
		return &m_WndGuildCombatTabClass_Acr;
		break;
		
	case JOB_ASSIST:
	case JOB_RINGMASTER:
	case JOB_BILLPOSTER:
	case JOB_RINGMASTER_MASTER:
	case JOB_BILLPOSTER_MASTER:
	case JOB_RINGMASTER_HERO:
	case JOB_BILLPOSTER_HERO:
		return &m_WndGuildCombatTabClass_Ass;
		break;
		
	case JOB_MAGICIAN:
	case JOB_PSYCHIKEEPER:
	case JOB_ELEMENTOR:
	case JOB_PSYCHIKEEPER_MASTER:
	case JOB_ELEMENTOR_MASTER:
	case JOB_PSYCHIKEEPER_HERO:
	case JOB_ELEMENTOR_HERO:
		return &m_WndGuildCombatTabClass_Mag;
		break;
		
	default:
		break;
	}	

	return NULL;
}
mit folgendem Snippet von fccfcc
Code:
CWndGuildCombatRank_Class* CWndGuildCombatRank_Person::__GetJobKindWnd(int nJob)
{
switch(nJob)
{
case JOB_MERCENARY:
case JOB_KNIGHT:
case JOB_BLADE:
case JOB_KNIGHT_MASTER:
case JOB_BLADE_MASTER:
case JOB_KNIGHT_HERO:
case JOB_BLADE_HERO:
case JOB_LORDTEMPLER_HERO:
case JOB_STORMBLADE_HERO:
return &m_WndGuildCombatTabClass_Mer;
break;

case JOB_ACROBAT:
case JOB_JESTER:
case JOB_RANGER:
case JOB_JESTER_MASTER:
case JOB_RANGER_MASTER:
case JOB_JESTER_HERO:
case JOB_RANGER_HERO:
case JOB_WINDLURKER_HERO:
case JOB_CRACKSHOOTER_HERO:
return &m_WndGuildCombatTabClass_Acr;
break;

case JOB_ASSIST:
case JOB_RINGMASTER:
case JOB_BILLPOSTER:
case JOB_RINGMASTER_MASTER:
case JOB_BILLPOSTER_MASTER:
case JOB_RINGMASTER_HERO:
case JOB_BILLPOSTER_HERO:
case JOB_FLORIST_HERO:
case JOB_FORCEMASTER_HERO:
return &m_WndGuildCombatTabClass_Ass;
break;

case JOB_MAGICIAN:
case JOB_PSYCHIKEEPER:
case JOB_ELEMENTOR:
case JOB_PSYCHIKEEPER_MASTER:
case JOB_ELEMENTOR_MASTER:
case JOB_PSYCHIKEEPER_HERO:
case JOB_ELEMENTOR_HERO:
case JOB_MENTALIST_HERO:
case JOB_ELEMENTORLORD_HERO:
return &m_WndGuildCombatTabClass_Mag;
break;

default:
break;
}

return NULL;
}
4. Fertig
03/22/2012 14:43 inteL96#53
In the 'Delete Character', do I need to add this -> WARNING: This ignore the WIDC_EDIT1 in APP_DELETE_CHAR (Unused in RoC)

???


Because when I try to fix this Delete Character by following the tut in the first post, it gave errors.
04/10/2012 10:58 bkaddict20#54
I had this kind of error and I don't understand this error ...I used IDA pro but honestly im noob and don't understand that program hhihihihi...please be kind and help me fix this error please :) have a heart thank you
Quote:
Exception code : C0000005 ACCESS_VIOLATION
Fault address :004081A6 01:000071A6 C:\Server files\Blessed Flyff\Resource\7-WorldServer.exe

Registers:
EAX:0280C06D
EBX:43A63ED8
ECX:00050005
EDX:0956F002
ESI:4729AE6C
EDI:00000000
CS:EIP:001B:004081A6
SS:ESP:0023:089FFE84 EBP:4729AE50
DS:0023 ES:0023 FS:003B GS:0000
Flags:00010202

Call stack:
Address Frame
004081A6 089FFEB8 CColosseumMatch::CreateMover+1A6
0040881A 089FFED0 CColosseumMng::Process+EA
0045ACB7 089FFF7C CRunObject::Run+407
0045AD89 089FFF80 CRunObject::_Run+9
00579A65 089FFFB4 _threadstartex+6F
7C80B50B 089FFFEC GetModuleFileNameA+1B4
12/12/2012 14:54 Sabage#55
Tauscht das hier
Code:
#ifdef __BARUNA_PIERCING
			case BARUNA_PIERCE:
			{
        DWORD dwId1, dwId2, dwId3, dwId4;
       
        ar >> dwId1; // Baruna Weapon
        ar >> dwId2; // Baruna Rune
        ar >> dwId3; // Baruna Pprotect
        ar >> dwId4; // Baruna Piercing Rate
       
        CUser* pUser    = g_UserMng.GetUser( dpidCache, dpidUser );
 
        if( IsValidObj( pUser ) )
        {
                CItemElem* pItemElem0   = pUser->m_Inventory.GetAtId( dwId1 );
                CItemElem* pItemElem1   = pUser->m_Inventory.GetAtId( dwId2 );
                CItemElem* pItemElem2   = pUser->m_Inventory.GetAtId( dwId3 );
                CItemElem* pItemElem3   = pUser->m_Inventory.GetAtId( dwId4 );
 
                if( IsUsableItem( pItemElem0 ) == FALSE || IsUsableItem( pItemElem1 ) == FALSE )
                        return;
 
                if( pUser->m_vtInfo.GetOther() )
                        return;
 
                if( pUser->m_vtInfo.VendorIsVendor() )
                        return;
 
                if( pUser->m_Inventory.IsEquip( pItemElem0->m_dwObjId ) )
                        return;
 
                if( pItemElem0->GetProp()->dwReferStat1 != BARUNA_D ||
                        ( pItemElem0->GetProp()->dwItemKind2 != IK2_WEAPON_DIRECT && pItemElem0->GetProp()->dwItemKind2 != IK2_WEAPON_MAGIC ) )
                        return;
 
                if( pItemElem0->GetPiercingSize() >= MAX_PIERCING_BARUNA )
                        return;
 
                if( pItemElem1->GetProp()->dwItemKind3 != IK3_BARUNAWEA_PIERCE_RUNE )
                        return;
 
                if( IsUsableItem( pItemElem2 ) && pItemElem2->m_dwItemId != II_SYS_SYS_SCR_BARUNAPRPROTECT )
                        return;
 
                if( IsUsableItem( pItemElem3 ) && pItemElem3->m_dwItemId != II_SYS_SYS_SCR_BARUNAPRRATE )
                        return;
 
                int nProb = 0;
                nProb = pItemElem1->GetProp()->nEffectValue;
 
                if( pItemElem3 != NULL )
                        nProb += pItemElem3->GetProp()->nEffectValue;
 
                if( xRandom( 10000 ) > (DWORD)nProb )
                {
                        pUser->AddPlaySound( SND_INF_UPGRADEFAIL );
                        g_UserMng.AddCreateSfxObj((CMover *)pUser, XI_INT_FAIL, pUser->GetPos().x, pUser->GetPos().y, pUser->GetPos().z);
 
                        if( pItemElem2 == NULL )
                        {
                                pUser->RemoveItem( (BYTE)dwId2, (short)1 );
                                pUser->AddDefinedText( TID_BW_PEARCING_CONFIRM_MSG_2 , "" );
                        }
                        else
                                pUser->AddDefinedText( TID_BW_PEARCING_CONFIRM_MSG_3 , "" );
                }
                else
                {
                        pUser->UpdateItem( (BYTE)pItemElem0->m_dwObjId, UI_PIERCING_SIZE, pItemElem0->GetPiercingSize() + 1 );
                        pUser->AddPlaySound( SND_INF_UPGRADESUCCESS );                 
                        g_UserMng.AddCreateSfxObj((CMover *)pUser, XI_INT_SUCCESS, pUser->GetPos().x, pUser->GetPos().y, pUser->GetPos().z);
                        pUser->AddDefinedText( TID_BW_PEARCING_CONFIRM_MSG_1 , "" );
                        pUser->Pierce( pItemElem0, pItemElem1->m_dwItemId );
                        pUser->RemoveItem( (BYTE)dwId2, (short)1 );
                }
       
                if( pItemElem2 != NULL )
                        pUser->RemoveItem( (BYTE)dwId3, (short)1 );
 
                if( pItemElem3 != NULL )
                        pUser->RemoveItem( (BYTE)dwId4, (short)1 );
        }
        return;
			}
			break;	
#endif // __BARUNA_PIERCING
gegen eure Funktion in der DpSrvr.cpp und Baruna Piercing ist gefixt

edit
ihr müsst noch
#define MAX_PIERCING_BARUNA 3
unter
#define MAX_RANGE_NPC_MENU 1024
einfügen