Register for your free account! | Forgot your password?

You last visited: Today at 03:04

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[Release] Penyadrop snippet

Discussion on [Release] Penyadrop snippet within the Flyff PServer Guides & Releases forum part of the Flyff Private Server category.

Reply
 
Old   #1
 
Buffmebuffyou's Avatar
 
elite*gold: 1
Join Date: Mar 2008
Posts: 213
Received Thanks: 224
[Release] Penyadrop snippet

Da ich dieses Script noch auf dem PC habe und nicht mehr benötige, veröffentliche ich es. Hiermit kann man den Penyadrop exponentiell per Monsterlevel einstellen, die Penyarate in den Resourcen wird dabei ignoriert, es können allerdings Ausnahmen für bestimmte Monster eingetragen werden (midna_penyaMoverExceptions).

Wichtig: Ich kann kein C++, daher weiß ich nicht ob ich alle Datenformate korrekt angegeben habe. Sollte also etwas falsch sein, könnt Ihr mich das gerne wissen lassen und ich bessere das aus.

Mit den aktuellen Einstellungen droppen die Monster diese Menge:
Code:
Mob Lv.		Small			Normal			Captain			Giant

1		47 - 58			95 - 116		143 - 174		954 - 1166		
2		50 - 62			101 - 124		152 - 186		1017 - 1243		
3		54 - 66			108 - 132		162 - 198		1080 - 1320		
4		57 - 70			115 - 140		172 - 211		1152 - 1408		
5		61 - 75			123 - 150		184 - 226		1233 - 1507		
6		65 - 79			130 - 159		195 - 239		1305 - 1595		
7		69 - 85			139 - 170		209 - 255		1395 - 1705		
8		74 - 90			148 - 181		222 - 272		1485 - 1815		
9		79 - 96			158 - 193		237 - 290		1584 - 1936		
10		84 - 102		168 - 205		252 - 308		1683 - 2057		
11		89 - 109		179 - 218		268 - 328		1791 - 2189		
12		95 - 116		190 - 233		286 - 349		1908 - 2332		
13		101 - 124		203 - 248		305 - 372		2034 - 2486		
14		108 - 132		216 - 265		325 - 397		2169 - 2651		
15		115 - 141		231 - 282		346 - 424		2313 - 2827		
16		122 - 150		245 - 300		368 - 450		2457 - 3003		
17		130 - 160		261 - 320		392 - 480		2619 - 3201		
18		139 - 170		279 - 341		418 - 511		2790 - 3410		
19		148 - 181		297 - 363		445 - 544		2970 - 3630		
20		158 - 193		316 - 387		475 - 580		3168 - 3872		
21		168 - 206		337 - 412		506 - 618		3375 - 4125		
22		179 - 219		359 - 438		538 - 658		3591 - 4389		
23		191 - 233		382 - 467		573 - 701		3825 - 4675		
24		203 - 249		407 - 498		611 - 747		4077 - 4983		
25		216 - 265		433 - 530		650 - 795		4338 - 5302		
26		231 - 282		462 - 565		693 - 848		4626 - 5654		
27		246 - 300		492 - 601		738 - 902		4923 - 6017		
28		262 - 320		524 - 641		787 - 961		5247 - 6413		
29		279 - 341		558 - 683		838 - 1024		5589 - 6831		
30		297 - 363		594 - 727		892 - 1090		5949 - 7271		
31		316 - 387		633 - 774		950 - 1161		6336 - 7744		
32		337 - 412		675 - 825		1012 - 1237		6750 - 8250		
33		359 - 438		718 - 877		1077 - 1316		7182 - 8778		
34		382 - 467		765 - 935		1147 - 1402		7650 - 9350		
35		407 - 498		815 - 996		1223 - 1494		8154 - 9966		
36		434 - 530		868 - 1061		1302 - 1592		8685 - 10615		
37		462 - 564		924 - 1129		1386 - 1694		9243 - 11297		
38		492 - 601		984 - 1203		1476 - 1805		9846 - 12034		
39		524 - 640		1048 - 1281		1572 - 1922		10485 - 12815		
40		558 - 682		1116 - 1365		1675 - 2047		11169 - 13651		
41		594 - 727		1189 - 1454		1784 - 2181		11898 - 14542		
42		633 - 774		1267 - 1548		1900 - 2323		12672 - 15488		
43		674 - 824		1349 - 1648		2023 - 2473		13491 - 16489		
44		718 - 878		1437 - 1756		2155 - 2635		14373 - 17567		
45		765 - 935		1530 - 1871		2296 - 2806		15309 - 18711		
46		814 - 996		1629 - 1992		2444 - 2988		16299 - 19921		
47		868 - 1060		1736 - 2121		2604 - 3182		17361 - 21219		
48		924 - 1129		1848 - 2259		2772 - 3389		18486 - 22594		
49		984 - 1203		1969 - 2406		2953 - 3610		19692 - 24068		
50		1048 - 1281		2097 - 2563		3145 - 3844		20970 - 25630		
51		1116 - 1365		2233 - 2730		3350 - 4095		22338 - 27302		
52		1189 - 1453		2378 - 2907		3568 - 4360		23787 - 29073		
53		1266 - 1548		2533 - 3096		3800 - 4644		25335 - 30965		
54		1349 - 1648		2698 - 3297		4047 - 4946		26982 - 32978		
55		1436 - 1756		2873 - 3512		4310 - 5268		28737 - 35123		
56		1530 - 1870		3060 - 3740		4590 - 5610		30600 - 37400		
57		1629 - 1991		3258 - 3983		4888 - 5974		32589 - 39831		
58		1735 - 2121		3471 - 4242		5206 - 6364		34713 - 42427		
59		1848 - 2258		3696 - 4517		5544 - 6776		36963 - 45177		
60		1968 - 2405		3936 - 4811		5904 - 7217		39366 - 48114		
61		2096 - 2562		4193 - 5124		6289 - 7687		41931 - 51249		
62		2232 - 2729		4465 - 5458		6698 - 8187		44658 - 54582		
63		2377 - 2906		4755 - 5812		7133 - 8718		47556 - 58124		
64		2532 - 3095		5065 - 6190		7597 - 9286		50652 - 61908		
65		2697 - 3296		5394 - 6593		8091 - 9890		53946 - 65934		
66		2872 - 3510		5744 - 7021		8617 - 10531		57447 - 70213		
67		3059 - 3738		6118 - 7477		9177 - 11216		61182 - 74778		
68		3258 - 3982		6516 - 7964		9774 - 11946		65160 - 79640		
69		3469 - 4241		6939 - 8482		10409 - 12723		69399 - 84821		
70		3695 - 4516		7390 - 9033		11086 - 13549		73908 - 90332		
71		3935 - 4810		7871 - 9620		11807 - 14430		78714 - 96206		
72		4191 - 5122		8382 - 10245		12573 - 15368		83826 - 102454		
73		4464 - 5456		8928 - 10912		13392 - 16368		89280 - 109120		
74		4754 - 5810		9508 - 11621		14262 - 17432		95085 - 116215		
75		5062 - 6188		10125 - 12376		15188 - 18564		101259 - 123761		
76		5392 - 6590		10784 - 13181		16177 - 19771		107847 - 131813		
77		5742 - 7019		11485 - 14038		17228 - 21057		114858 - 140382		
78		6115 - 7475		12231 - 14950		18347 - 22425		122319 - 149501		
79		6513 - 7961		13027 - 15922		19541 - 23883		130275 - 159225		
80		6936 - 8478		13873 - 16956		20810 - 25434		138735 - 169565		
81		7387 - 9029		14775 - 18058		22162 - 27088		147753 - 180587		
82		7868 - 9616		15736 - 19233		23604 - 28850		157365 - 192335		
83		8379 - 10241		16758 - 20483		25138 - 30724		167589 - 204831		
84		8924 - 10907		17848 - 21815		26773 - 32722		178488 - 218152		
85		9504 - 11616		19008 - 23233		28513 - 34849		190089 - 232331		
86		10121 - 12371		20243 - 24742		30365 - 37113		202437 - 247423		
87		10780 - 13175		21560 - 26351		32340 - 39527		215604 - 263516		
88		11480 - 14032		22961 - 28064		34442 - 42096		229617 - 280643		
89		12226 - 14944		24453 - 29888		36680 - 44832		244539 - 298881		
90		13021 - 15915		26043 - 31830		39064 - 47746		260433 - 318307		
91		13868 - 16949		27736 - 33899		41604 - 50849		277362 - 338998		
92		14769 - 18051		29538 - 36103		44308 - 54154		295389 - 361031		
93		15729 - 19225		31459 - 38450		47189 - 57675		314595 - 384505		
94		16752 - 20474		33504 - 40949		50256 - 61424		335043 - 409497		
95		17841 - 21805		35682 - 43611		53523 - 65417		356823 - 436117		
96		19000 - 23223		38001 - 46446		57002 - 69669		380016 - 464464		
97		20235 - 24732		40471 - 49464		60706 - 74197		404712 - 494648		
98		21550 - 26340		43101 - 52680		64652 - 79020		431019 - 526801		
99		22951 - 28052		45903 - 56104		68855 - 84156		459036 - 561044		
100		24444 - 29876		48888 - 59752		73332 - 89628		488880 - 597520		
101		26032 - 31817		52065 - 63635		78097 - 95452		520650 - 636350		
102		27724 - 33886		55449 - 67772		83174 - 101658		554499 - 677721		
103		29526 - 36088		59053 - 72176		88580 - 108264		590535 - 721765		
104		31446 - 38434		62892 - 76869		94339 - 115303		628929 - 768691		
105		33490 - 40932		66980 - 81865		100471 - 122797		669807 - 818653		
106		35667 - 43593		71334 - 87186		107001 - 130779		713340 - 871860		
107		37985 - 46426		75970 - 92853		113956 - 139279		759708 - 928532		
108		40454 - 49444		80909 - 98888		121363 - 148333		809091 - 988889		
109		43084 - 52658		86168 - 105317		129253 - 157975		861687 - 1053173		
110		45884 - 56081		91769 - 112162		137654 - 168243		917694 - 1121626		
111		48867 - 59726		97734 - 119453		146601 - 179180		977346 - 1194534		
112		52043 - 63608		104086 - 127217		156130 - 190825		1040868 - 1272172		
113		55426 - 67743		110853 - 135487		166279 - 203230		1108530 - 1354870		
114		59029 - 72146		118058 - 144293		177087 - 216440		1180584 - 1442936		
115		62865 - 76836		125731 - 153672		188597 - 230508		1257318 - 1536722		
116		66952 - 81830		133904 - 163661		200857 - 245491		1339047 - 1636613		
117		71304 - 87149		142608 - 174299		213912 - 261449		1426086 - 1742994		
118		75938 - 92814		151877 - 185628		227816 - 278442		1518777 - 1856283		
119		80874 - 98847		161749 - 197694		242624 - 296541		1617498 - 1976942		
120		86131 - 105272		172263 - 210544		258395 - 315816		1722636 - 2105444		
121		91730 - 112115		183461 - 224230		275192 - 336345		1834614 - 2242306
Ihr müsst nur diesen Code in Mover.cpp suchen..
Code:
	#if __VER >= 9 // __EVENTLUA
							nNumGold	= (int)( nNumGold * prj.m_EventLua.GetGoldDropFactor() );
	#endif // __EVENTLUA
.. und hiermit ersetzen.
Code:
	#if __VER >= 9 // __EVENTLUA
					
						/* 
							CONFIGURATION
							
							midna_penyaMoverExceptions				Set exceptions for the level penya system (e.g. for boss monsters).
							
							midna_penyaMoverMultiplier				Multipliers for the level penya system.
																					[0] = Global multiplier
																					[1] = Small monsters multiplier
																					[2] = Normal monsters multiplier
																					[3] = Captain monsters multiplier
																					[4] = Giant monsters multiplier
																					
							midna_penyaMoverRandomPercent		Set random percentage for penya (this percentage counts for plus and minus)
						*/
						
							char midna_penyaMoverExceptions[] = { "" }; // example: { MI_AIBATT1, MI_AIBATT2, MI_AIBATT3 }
							double midna_penyaMoverMultiplier[5] = { 1.0, 0.5, 1.0, 1.5, 10.0 };
							double midna_penyaMoverRandomPercent = 10; // default 10%


						// DO NOT CHANGE FROM THIS POINT!
							bool midna_penyaMoverExceptionsFound = false;
							for( i=0; i<sizeof(midna_penyaMoverExceptions)/sizeof(midna_penyaMoverExceptions[0]); i++ )
							{
								if( lpMoverProp->dwID == midna_penyaMoverExceptions[i] )
								{
									midna_penyaMoverExceptionsFound = true;
								}
							}

							if( midna_penyaMoverExceptionsFound )
							{
								nNumGold = (int)( nNumGold * prj.m_EventLua.GetGoldDropFactor() );
							}
							else
							{
								int midna_penyaMoverBase = 100;
								double midna_penyaMoverBaseMultiplier = pow((double)(1.065), (double)(lpMoverProp->dwLevel));
								int midna_penyaMoverFinalPenya = (int)(midna_penyaMoverBase * midna_penyaMoverBaseMultiplier * midna_penyaMoverMultiplier[0]);
								int midna_penyaMoverMin = (int)(midna_penyaMoverFinalPenya - midna_penyaMoverFinalPenya * midna_penyaMoverRandomPercent / 100); // sub
								int midna_penyaMoverMax = (int)(midna_penyaMoverFinalPenya + midna_penyaMoverFinalPenya * midna_penyaMoverRandomPercent / 100); // add

								nNumGold = rand()%(midna_penyaMoverMax-midna_penyaMoverMin)+midna_penyaMoverMin;

								switch ( lpMoverProp->dwClass )
								{
									case RANK_LOW:		nNumGold = (int)(nNumGold * midna_penyaMoverMultiplier[1]); break;
									case RANK_NORMAL:	nNumGold = (int)(nNumGold * midna_penyaMoverMultiplier[2]); break;
									case RANK_CAPTAIN:	nNumGold = (int)(nNumGold * midna_penyaMoverMultiplier[3]); break;
									case RANK_BOSS:		nNumGold = (int)(nNumGold * midna_penyaMoverMultiplier[4]); break;
									case RANK_SUPER:	nNumGold = (int)(nNumGold * midna_penyaMoverMultiplier[4]); break;
								}
							}
							
	#endif // __EVENTLUA
Viel Spaß damit.
Buffmebuffyou is offline  
Old 12/01/2014, 22:48   #2

 
elite*gold: 28
Join Date: Feb 2010
Posts: 463
Received Thanks: 277
Or in mover.cpp after
Quote:
int nNumGold = lpDropItem->dwNumber + xRandom( (lpDropItem->dwNumber2 + 1 ) - lpDropItem->dwNumber2 );
Include

Quote:
switch((int)lpMoverProp->dwLevel)
{
case 1: nNumGold = 100; break;
case 2: nNumGold = 200; break;
...
}
Case 1 = monster lvl.1
100; = 100 penyas

Your option it's good to
ZeroTwo02 is offline  
Old 12/02/2014, 01:19   #3
 
Mognakor's Avatar
 
elite*gold: 0
Join Date: Mar 2008
Posts: 598
Received Thanks: 465
Lässt sich wesentlich effizienter mit einer Look-Up Table umsetzen die nur einmal zu Beginn generiert wird und später nurnoch per Array-Zugriff ausgelesen wird.
Mognakor is offline  
Thanks
1 User
Old 12/02/2014, 03:26   #4
 
Buffmebuffyou's Avatar
 
elite*gold: 1
Join Date: Mar 2008
Posts: 213
Received Thanks: 224
Quote:
Originally Posted by Mognakor View Post
Lässt sich wesentlich effizienter mit einer Look-Up Table umsetzen die nur einmal zu Beginn generiert wird und später nurnoch per Array-Zugriff ausgelesen wird.
Das stimmt allerdings, leider hab ich kaum Erfahrung mit C++.

Quote:
Originally Posted by naruto66620 View Post
Or in mover.cpp after

Include



Case 1 = monster lvl.1
100; = 100 penyas

Your option it's good to
I think this is a very inefficient method.
Buffmebuffyou is offline  
Old 12/02/2014, 12:48   #5
 
Mognakor's Avatar
 
elite*gold: 0
Join Date: Mar 2008
Posts: 598
Received Thanks: 465
Grobe Anleitung für die LookUp-Table:

-Such dir eine Datenstruktur oder erschaffe eine neue die in der Mover.cpp verfügbar ist (z.b. die Project-Klasse in der ohnehin alles geladen wird etc.)
-Lege darin ein Array mit den geeigneten Dimensionen an (int Penya[121][4][2] 121 Level, 4 Typen (Small,Normal,Captain,Giant,), 2 Werte (Min/Max)
-Lege eine Funktion an die von 1-MaxLevel läuft, sich den Wert berechnet und diesen mit den Faktoren multipliziert und jeweils in das array schreibt
-Rufe diese Funktion an geeigneter Stelle im Ladevorgang auf
-Erstelle eine 2te Funktion die basierend auf den Parametern "Level" und "Monstertyp", einen Integer zurückgibt, du kannst checks einbauen für Min&MaxLevel Min&Max-Monstertyp und auch per Random-Funktion einen Wert zwischen Min-&MaxPenya ausrechnen.
-Rufe diese Funktion an der von dir angegebenen Stelle auf, sofern das Monster keine Ausnahme darstellt.

Weiter Optimierungsmöglichkeit:
Anstatt in einer Schleife ein Array zu durchsuchen könnte man der propMover einen Parameter hinzufügen (bool PenyaDropException) und den entweder per Src (quick&dirty) oder aber per eigener Datei oder sogar über die propMover.txt einlesen.


Weitere Anmerkung:
Sollen bei einer switch Anweisung mehrere Werte zum absolut selben Ergebnis führen kann man das auch so umsetzen:
Code:
switch ( lpMoverProp->dwClass )
{
case RANK_LOW:		nNumGold = (int)(nNumGold * midna_penyaMoverMultiplier[1]); break;
case RANK_NORMAL:	nNumGold = (int)(nNumGold * midna_penyaMoverMultiplier[2]); break;
case RANK_CAPTAIN:	nNumGold = (int)(nNumGold * midna_penyaMoverMultiplier[3]); break;
case RANK_BOSS:		
case RANK_SUPER:	nNumGold = (int)(nNumGold * midna_penyaMoverMultiplier[4]); break;
}
Weitere Weitere Anmerkung:
Eine LookUp-Table macht den code besser wartbar,lesbar und ermöglicht es daher auch die Berechnung einfacher zu optimieren da man nur in einer einfacher Funktion die Formel anpassen muss.
Mognakor is offline  
Thanks
1 User
Old 12/02/2014, 22:50   #6
 
elite*gold: 0
Join Date: Apr 2013
Posts: 511
Received Thanks: 431
Man könnte sogar noch die Switch Case abfrage weg ballern wenn man genau sich die Ranking Kacke anschaut:

Quote:
switch ( lpMoverProp->dwClass )
{
case RANK_LOW: nNumGold = (int)(nNumGold * midna_penyaMoverMultiplier[1]); break;
case RANK_NORMAL: nNumGold = (int)(nNumGold * midna_penyaMoverMultiplier[2]); break;
case RANK_CAPTAIN: nNumGold = (int)(nNumGold * midna_penyaMoverMultiplier[3]); break;
case RANK_BOSS:
case RANK_SUPER: nNumGold = (int)(nNumGold * midna_penyaMoverMultiplier[4]); break;
}
zu:

Quote:
nNumGold = (int)(nNumGold * midna_penyaMoverMultiplier[lpMoverProp->dwClass]);
Natürlich muss man da aufpassen das auch grad das "RANK" verfügbar ist. Ansonsten machts Fatz und weg ist der Server.

Alles nette spielerreihen die man machen kann, allerdings find ich es etwas komisch da Item Prop ( u.a. auch Penya ) über x funktionen verteilt ist.
Wanetrain is offline  
Reply


Similar Threads Similar Threads
[Snippet]Text kodieren
02/18/2013 - Web Development - 11 Replies
Hier ist ein kleines Snippet, mit welchem man Text kodieren kann. Vielleicht nützt es ja dem ein oder anderen etwas :rolleyes: Dieser Code ist zu 100% von mir. <?php /* * Text encoder
[Code Snippet] getFloatFromString [C++
02/15/2012 - C/C++ - 5 Replies
I wrote a small function for getting a float from a string. I know that this function isn't perfect. It isnt very hard to fix it ;) I belive in you guys :P using namespace std; float getFloatFromString (char *szBuffer);
[Snippet] Varianten zum Umgehen von VAC3
12/16/2011 - C/C++ - 3 Replies
Hi Com, hier ein paar Methoden um eine auf HL1 & HL2 Engine basierende .dll secure hingegen VAC3 zu kriegen. - Professional protection & bypass methods -> String destruction -> Polymorphism -> PEB hiding -> FULL HideProcess
EKO FRESH SNIPPET ( ALBUM RELEASE 2.09.2011)
08/12/2011 - Music - 8 Replies
Hey Commy ! ;) Wie findet ihr das Snippet von EKO FRESH ? http://www.youtube.com/watch?v=n7-1mYf6DFo&fe ature=player_embedded Greetz ! ;)
[New] Alba Kingz Album Snippet!! [Rap]!!
08/10/2010 - Main - 3 Replies
Hallo Leute, http://img576.imageshack.us/img576/6324/henwdseu1 .jpg Ich wollte euch mal Alba Kingz vorstellen!! Alba Kingz ist eine Albanische Musik Gruppe mit sehr viel Sehr viel Talent. Ich Hoffe das ich euch nicht Störe oder so aber wollte nur mal Zeigen!!



All times are GMT +1. The time now is 03:05.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.