Problema drop pietre

Totalitatea subiectelor care nu respectă regulamentul impus in sectiunea "Probleme şi Întrebări" vor fi stocate aici.
Închis
Avatar utilizator
N.Dorin
Nivel 1

Nivel 1
Mesaje: 122
Membru din: 20 Dec 2015, 22:50
Server: Saiong2
Regat: Jinno
Aprecieri: 41  
Mulţumiri: 8  
Medalii

Buna seara! Am si eu o problema , la metine pica doar pietre +4..
Stiu ca trebuie facut din char.cpp sau constants.cpp , problema e ca nu inteleg mai deloc cum sta treaba si mai exact de unde sa modific.. Se poate sa imi spuneti voi mai exact ce am de facut?
Va las aici si char.cpp si constants.cpp

Constants.cpp
const SStoneDropInfo aStoneDrop[STONE_INFO_MAX_NUM] =
{
	//  mob		pct	{+0	+1	+2	+3	+4}
	{8005,	60,	{30,	30,	30,	9,	1}	},
	{8006,	60,	{28,	29,	31,	11,	1}	},
	{8007,	60,	{24,	29,	32,	13,	2}	},
	{8008,	60,	{22,	28,	33,	15,	2}	},
	{8009,	60,	{21,	27,	33,	17,	2}	},
	{8010,	60,	{18,	26,	34,	20,	2}	},
	{8011,	60,	{14,	26,	35,	22,	3}	},
	{8012,	60,	{10,	26,	37,	24,	3}	},
	{8013,	60,	{2,		26,	40,	29,	3}	},
	{8014,	60,	{0,		26,	41,	30,	3}	},
Char.cpp
void CHARACTER::DetermineDropMetinStone()
{
#ifdef ENABLE_NEWSTUFF
	if (g_NoDropMetinStone)
	{
		m_dwDropMetinStone = 0;
		return;
	}
#endif

	static const DWORD c_adwMetin[] =
	{
		28430,
		28431,
		28432,
		28433,
		28434,
		28435,
		28436,
		28437,
		28438,
		28439,
		28440,
		28441,
		28442,
		28443,
		28444,

	};

	DWORD stone_num = GetRaceNum();
	int idx = std::lower_bound(aStoneDrop, aStoneDrop+STONE_INFO_MAX_NUM, stone_num) - aStoneDrop;
	if (idx >= STONE_INFO_MAX_NUM || aStoneDrop[idx].dwMobVnum != stone_num)
	{
		m_dwDropMetinStone = 0;
	}
	else
	{
		const SStoneDropInfo & info = aStoneDrop[idx];
		m_bDropMetinStonePct = info.iDropPct;
		{
			m_dwDropMetinStone = c_adwMetin[number(0, sizeof(c_adwMetin)/sizeof(DWORD) - 1)];
			int iGradePct = number(1, 100);
			for (int iStoneLevel = 0; iStoneLevel < STONE_LEVEL_MAX_NUM; iStoneLevel ++)
			{
				int iLevelGradePortion = info.iLevelPct[iStoneLevel];
				if (iGradePct <= iLevelGradePortion)
				{
					break;
				}
				else
				{
					iGradePct -= iLevelGradePortion;
					m_dwDropMetinStone += 0; // µ¹ +a -> +(a+1)ÀÌ µÉ¶§¸¶´Ù 100¾¿ Áõ°¡
				}
			}
		}
	}
}

Va multumesc foarte mult!
Avatar utilizator
[Reizo]
Ţepar / Untrusted User

Ţepar / Untrusted User
Mesaje: 1301
Membru din: 22 Oct 2019, 15:44
Server: SAPPHIRE2
Regat: Chunjo
Aprecieri: 409  
Mulţumiri: 4322  
Discord: Copiază ID
 Contact:
Medalii

Păi şi ce i aşa greu de înţeles... Ştergi tot din constants legat de pietre nu funcţia.. Ce e în ea şi ar trb să meargă.
Imagine
Afișează semnătura
Avatar utilizator
[RaKu]
Membru Club

Membru Club
Mesaje: 2137
Membru din: 30 Noi 2016, 21:49
Regat: Jinno
Aprecieri: 202  
Mulţumiri: 424  
Discord: Copiază ID
Medalii

Problema este din char.cpp pune in loc de 4 pune 0. Ex : 28430 28030
Avatar utilizator
N.Dorin
Nivel 1

Nivel 1
Mesaje: 122
Membru din: 20 Dec 2015, 22:50
Server: Saiong2
Regat: Jinno
Aprecieri: 41  
Mulţumiri: 8  
Medalii

Ideea e ca vreau sa pice +0,1,2,3,4
Am pus 28030 si imi da eroare cand vreau sa compilez

[ Postat de pe Android ] Imagine
Închis
Răspunsuri
13
Vizualizări
1045
Răspunsuri
7
Vizualizări
660
Răspunsuri
8
Vizualizări
905
Răspunsuri
4
Vizualizări
658

Înapoi la “Arhivă Probleme şi Întrebări”

  • Informaţie
  • Cine este conectat

    Utilizatori ce ce navighează pe acest forum: Google [Bot], Semrush [Bot] și 189 vizitatori