Register for your free account! | Forgot your password?

Go Back   elitepvpers > MMORPGs > Flyff > Flyff Private Server > Flyff PServer Guides & Releases
You last visited: Today at 22:47

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

Advertisement



[Release] Premium System - Source

Discussion on [Release] Premium System - Source within the Flyff PServer Guides & Releases forum part of the Flyff Private Server category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Jul 2013
Posts: 14
Received Thanks: 9
[Release] Premium System - Source

Ich release jetzt das Premium System, nach langen Überlegungen ob ich es tuhe mache ich es, da es eh schon gefühlte 70 % der Server haben. Ich werde dies in einem kleinen Tutorial machen.



Dies ist das Premium System, es sollte funktionieren, wenn es Probleme gibt schreibt mir eine PN, ich bitte um KEIN geflame, nehmt es oder nicht.

Mit freundlichen Grüßen

Selénc
Selénc is offline  
Thanks
1 User
Old 10/12/2013, 21:29   #2
 
elite*gold: 10
Join Date: Feb 2011
Posts: 1,760
Received Thanks: 501
Quote:
#ifdef __PREMIUM
BOOL TextCmd_PremiumAwake( CScanner & s )
Warum einen Extra Befehl?

Quote:
BOOL TextCmd_PremiumBuff( CScanner& scanner )
{
#ifdef __WORLDSERVER

#include "defineSkill.h"
Das include gehört in den Kopf der Datei.

Quote:
if( pUser->HasBuff( BUFF_ITEM, II_SYS_SYS_SCR_PREMIUM ) ||
pUser->HasBuff( BUFF_ITEM, II_SYS_SYS_SCR_PREMIUM_2 ) ||
pUser->HasBuff( BUFF_ITEM, II_SYS_SYS_SCR_PREMIUM_3 ) ||
pUser->HasBuff( BUFF_ITEM, II_SYS_SYS_SCR_PREMIUM_4 ) )
{
Eine abfrage machen die direkt alle macht spart schreib arbeit.

Quote:
case IK3_EGG:
{} break;

default :
{
if( pItemElem->IsAccessory() )
pUser->UpdateItem( (BYTE)pItemElem->m_dwObjId, UI_AO, 20 );
Das sollte klar sein was nicht so gut gemacht ist. ( Das case IK3_EGG is unnötig. )

PS: Das ist kein geflame.
Velmore is offline  
Thanks
2 Users
Old 10/12/2013, 23:22   #3
 
elite*gold: 59
Join Date: Oct 2012
Posts: 716
Received Thanks: 465
Velmore hat eig schon fast alles gesagt.
Eine kleinere Verbesserung währe noch dem Player die FUnktion "IsPremium()" hinzuzufügen , da du sehr oft folgende abfrage verwendest:
Quote:
if( pAttacker->HasBuff( BUFF_ITEM, II_SYS_SYS_SCR_PREMIUM ) ||
pAttacker->HasBuff( BUFF_ITEM, II_SYS_SYS_SCR_PREMIUM_2 ) ||
pAttacker->HasBuff( BUFF_ITEM, II_SYS_SYS_SCR_PREMIUM_3 ) ||
pAttacker->HasBuff( BUFF_ITEM, II_SYS_SYS_SCR_PREMIUM_4 ) )
könnte man in eine funktion packen:

Quote:
BOOL CUser::IsPremium(void)
{
return ( HasBuff( BUFF_ITEM, II_SYS_SYS_SCR_PREMIUM ) ||
HasBuff( BUFF_ITEM, II_SYS_SYS_SCR_PREMIUM_2 ) ||
HasBuff( BUFF_ITEM, II_SYS_SYS_SCR_PREMIUM_3 ) ||
HasBuff( BUFF_ITEM, II_SYS_SYS_SCR_PREMIUM_4 ) );

}
und dann könnteste immer pUser->IsPremium() verwenden, würde dir copy & paste ersparen und das einfügen neuer premium items erleichtern.

MfG Tobi

ps: Code ist nicht getestet, soltle aber klappen
FlyCraft.TobiLap is offline  
Old 10/12/2013, 23:34   #4



 
Sedrika's Avatar
 
elite*gold: 18
The Black Market: 103/0/0
Join Date: Sep 2009
Posts: 20,174
Received Thanks: 14,475
Quote:
Originally Posted by FlyCraft.TobiLap View Post
Velmore hat eig schon fast alles gesagt.
Eine kleinere Verbesserung währe noch dem Player die FUnktion "IsPremium()" hinzuzufügen , da du sehr oft folgende abfrage verwendest:


könnte man in eine funktion packen:



und dann könnteste immer pUser->IsPremium() verwenden, würde dir copy & paste ersparen und das einfügen neuer premium items erleichtern.

MfG Tobi

ps: Code ist nicht getestet, soltle aber klappen
CMover statt CUser und es passt.
Sedrika is offline  
Old 10/13/2013, 00:19   #5
 
elite*gold: 59
Join Date: Oct 2012
Posts: 716
Received Thanks: 465
Quote:
Originally Posted by Sago​ View Post
CMover statt CUser und es passt.
Wozu? Wird doch nur bei CUser objekten aufgerufen oder irre ich mich da?
( denn entweder wird die abfrage verwendet bei userobjekten und wo mans nicht weiss, kommt hier im code immer eine pAttacker->IsPlayer() abfrage)
FlyCraft.TobiLap is offline  
Old 10/13/2013, 04:18   #6



 
Sedrika's Avatar
 
elite*gold: 18
The Black Market: 103/0/0
Join Date: Sep 2009
Posts: 20,174
Received Thanks: 14,475
Quote:
Originally Posted by FlyCraft.TobiLap View Post
Wozu? Wird doch nur bei CUser objekten aufgerufen oder irre ich mich da?
( denn entweder wird die abfrage verwendet bei userobjekten und wo mans nicht weiss, kommt hier im code immer eine pAttacker->IsPlayer() abfrage)
pAttacker ist cmover daher.
Sedrika is offline  
Old 10/13/2013, 06:57   #7
 
elite*gold: 0
Join Date: Jul 2013
Posts: 56
Received Thanks: 2
SS Please?
h4rvswagg is offline  
Old 10/13/2013, 07:42   #8
 
elite*gold: 115
Join Date: Jan 2012
Posts: 1,156
Received Thanks: 894
Incomplete..
Rhyder` is offline  
Thanks
1 User
Old 10/13/2013, 12:18   #9
 
elite*gold: 59
Join Date: Oct 2012
Posts: 716
Received Thanks: 465
Quote:
Originally Posted by Sago​ View Post
pAttacker ist cmover daher.
pAttacker wird aber nur verwendet in dem Premiumzusammenhang wenn es ein CUser ist
FlyCraft.TobiLap is offline  
Old 10/13/2013, 22:23   #10



 
Sedrika's Avatar
 
elite*gold: 18
The Black Market: 103/0/0
Join Date: Sep 2009
Posts: 20,174
Received Thanks: 14,475
Quote:
Originally Posted by FlyCraft.TobiLap View Post
pAttacker wird aber nur verwendet in dem Premiumzusammenhang wenn es ein CUser ist
Wird allerdings in der MoverParam.cpp verwendet und ist daher auch CMover!
Du kannst dich nicht ins Rechte zwingen wo kein platz ist.
Sedrika is offline  
Thanks
2 Users
Old 10/13/2013, 23:01   #11
 
elite*gold: 59
Join Date: Oct 2012
Posts: 716
Received Thanks: 465
Quote:
Originally Posted by Sago​ View Post
Wird allerdings in der MoverParam.cpp verwendet und ist daher auch CMover!
Du kannst dich nicht ins Rechte zwingen wo kein platz ist.
Samma chekcste das nicht? nur weils da verwendet wird heisst es nicht dass es ein Mover ist junge alter.
jedes mal wenns verwendet wird, falls du dir mal das releaste angeguckt hast wird abgefragt obs ein CUser ist....
FlyCraft.TobiLap is offline  
Old 10/13/2013, 23:26   #12
 
Мentus's Avatar
 
elite*gold: 30
Join Date: Sep 2012
Posts: 426
Received Thanks: 1,021
Ihr habt beide unrecht.

Jedoch finde ich Sago's Aussage mit den Aldishit nice :'D.

Jetzt gehen wir in den Source, und schauen uns an wieso das was Tobilap geposted hat überhaupt funktionieren würde.




Ja genau! CUser hat Zugriff auf CMover, umgekehrt nicht. ( man kann CMover zu CUser casten, aber sollte man nicht tun, wenn man keine Ahnung hat. )

CMover ist auch für NPC genutzt, damit werden wirklich alle Mover "gekennzeichet". ( Client/WS )

Jedoch ist die CUser Klasse nur für den WorldServer gedacht, und dient zum Verwalten der Nutzer im WorldServer. ( Gibt natürlich auch noch in anderen Projekten die Klasse CUser, jedoch nicht mit Zugriff auf CMover mit anderen Verwendungszwecken. )


Jetzt schauen wir uns mal die Member der Klasse CUser an:



Dort sehen wir schon, Ticks, hmmmm.
Dient wie oben genannt nur der Verwaltung, zum Beispiel von Cooldowns und so weiter.

Jedoch gibt es noch Funktionen, schauen wir uns diese mal an:



Wie ihr sehen könnt, wird in diesen Funktionen großteils nur der Client updated oder auch um irgendwelche Meldungen anzeigen zu lassen oder Ähnliches.
Halt alles rund um das (WorldServer->Client) Verhältniss findet ihr dort.


Es ist scheiß egal, ob CMover oder CUser im WorldServer.
Jedoch ist es unnötig ein CUser zu nutzen wenn man eh in der Klasse CMover arbeitet.

z.B:

PHP Code:
#ifdef __WORLDSERVER
BOOL CMover::IsVip()
{
    
CUserpUser g_UserMng.GetUserByPlayerIDm_idPlayer );
    if( 
IsValidObjpUser ) && pUser->HasBuffBLAID ) )
        return 
TRUE;
    return 
FALSE;
}
#endif 
Das ist unnötig, da wir die Funktionen von CUser garnicht nutzen wollen.

Also reicht es:
PHP Code:
#ifdef __WORLDSERVER
BOOL CMover::IsVip()
{
    if( 
this->HasBuffBLAID ) )
        return 
TRUE;
    return 
FALSE;
}
#endif 
Man die vorgegebene Struktur schon verwenden und es bei CMover belassen, da die Funktionen von CUser garnicht gebraucht werden. ( wie bereits erwähnt )

.. und ob nun pAttacker ein CMover oder CUser ist, kann man nur anhand des Quellcode's feststellen.

Die Variable könnte theoretisch auch "pKakaPisseausmeinemArsch" heißen, das sagt NULL über den Klassen-Typen aus.

PHP Code:
CMoverpAttacker prj.GetMoverobjid ); 
PHP Code:
CUserpAttacker g_UserMng.GetUserByPlayerIDidPlayer ); 

BTW;
@ Tobilap
PHP Code:
float CMover::GetPieceItemDropRateFactorCMoverpAttacker 
Wieso CUser verwenden, wenn bereits eh CMover vorgeben ist? Man müsste dann sogar casten*, was nicht gerade zu empfehlen ist wegen einer solchen Abfrage.


@TE
Das Premium System ist nicht das Wahre, ich habe es z.B bei meinem Premium System die Zeiten extra in der Datenbank speichern lassen.



casten* =
Мentus is offline  
Thanks
7 Users
Old 10/13/2013, 23:29   #13
 
elite*gold: 59
Join Date: Oct 2012
Posts: 716
Received Thanks: 465
Quote:
Originally Posted by Мentus View Post
Ihr habt beide unrecht.

Jedoch finde ich Sago's Aussage mit den Aldishit nice :'D.

Jetzt gehen wir in den Source, und schauen uns an wieso das was Tobilap geposted hat überhaupt funktionieren würde.




Ja genau! CUser hat Zugriff auf CMover, umgekehrt nicht. ( man kann CMover zu CUser casten, aber sollte man nicht tun, wenn man keine Ahnung hat. )

CMover ist auch für NPC genutzt, damit werden wirklich alle Mover "gekennzeichet". ( Client/WS )

Jedoch ist die CUser Klasse nur für den WorldServer gedacht, und dient zum Verwalten der Nutzer im WorldServer. ( Gibt natürlich auch noch in anderen Projekten die Klasse CUser, jedoch nicht mit Zugriff auf CMover mit anderen Verwendungszwecken. )


Jetzt schauen wir uns mal die Member der Klasse CUser an:



Dort sehen wir schon, Ticks, hmmmm.
Dient wie oben genannt nur der Verwaltung, zum Beispiel von Cooldowns und so weiter.

Jedoch gibt es noch Funktionen, schauen wir uns diese mal an:



Wie ihr sehen könnt, wird in diesen Funktionen großteils nur der Client updated oder auch um irgendwelche Meldungen anzeigen zu lassen oder Ähnliches.
Halt alles rund um das (WorldServer->Client) Verhältniss findet ihr dort.


Es ist scheiß egal, ob CMover oder CUser im WorldServer.
Jedoch ist es unnötig ein CUser zu nutzen wenn man eh in der Klasse CMover arbeitet.

z.B:

PHP Code:
#ifdef __WORLDSERVER
BOOL CMover::IsVip()
{
    
CUserpUser g_UserMng.GetUserByPlayerIDm_idPlayer );
    if( 
IsValidObjpUser ) && pUser->HasBuffBLAID ) )
        return 
TRUE;
    return 
FALSE;
}
#endif 
Das ist unnötig, da wir die Funktionen von CUser garnicht nutzen wollen.

Also reicht es:
PHP Code:
#ifdef __WORLDSERVER
BOOL CMover::IsVip()
{
    if( 
this->HasBuffBLAID ) )
        return 
TRUE;
    return 
FALSE;
}
#endif 
Man die vorgegebene Struktur schon verwenden und es bei CMover belassen, da die Funktionen von CUser garnicht gebraucht werden. ( wie bereits erwähnt )

.. und ob nun pAttacker ein CMover oder CUser ist, kann man nur anhand des Quellcode's feststellen.

Die Variable könnte theoretisch auch "pKakaPisseausmeinemArsch" heißen, das sagt NULL über den Klassen-Typen aus.

PHP Code:
CMoverpAttacker prj.GetMoverobjid ); 
PHP Code:
CUserpAttacker g_UserMng.GetUserByPlayerIDidPlayer ); 

BTW;
@ Tobilap
PHP Code:
float CMover::GetPieceItemDropRateFactorCMoverpAttacker 
Wieso CUser verwenden, wenn bereits eh CMover vorgeben ist? Man müsste dann sogar casten, was nicht gerade zu empfehlen ist wegen einer solchen Abfrage.


@TE
Das Premium System ist nicht das Wahre, ich habe es z.B bei meinem Premium System die Zeiten extra in der Datenbank speichern lassen.
Die erste intelligente aussave von mentus die ich gehört habe

@mentus jo das premium hier ist einfach nur bullshit und kann sogar bis auf das renderen des namens per resource gemacht werden xD
FlyCraft.TobiLap is offline  
Thanks
5 Users
Old 10/27/2013, 23:17   #14
 
Simon©'s Avatar
 
elite*gold: 0
Join Date: Sep 2013
Posts: 34
Received Thanks: 4
Wie verlängert man die Zeit von 10sec auf sag ich mal 14 und 28 Tage?
Simon© is offline  
Old 11/01/2013, 20:52   #15
 
elite*gold: 0
Join Date: Feb 2013
Posts: 167
Received Thanks: 141
Quote:
Originally Posted by Simon© View Post
Wie verlängert man die Zeit von 10sec auf sag ich mal 14 und 28 Tage?
Geh in Spec_item.txt bzw. PropItem.txt in die zeile der Premium Scroll und scroll so weit rüber bis du "10000" findest.
Die zahl änderst du nun zu 604800000 für 7 tage.
1209600000 = 14 tage. usw.

Die angabe ist immer in Milli Sec.
1000 = 1 Sec



@Topic:

Finde das nett das du es released und mit uns teilst, jedoch was ich persönlich unnötig finde ist das mit den Commands, die könnte man noch ein bisschen besser ausbauen was das angeht.

Genauso finde ich könnte eine geringere cooldown zeit der dungeons für premium User ganz nett sein.

Aber auch -25% weniger Penya kosten bei den NPC's bzw. +25% mehr Penya beim verkauf an NPC's währen sicher cool.

Sowie vielleicht eine geringere Shout limitierung für Premium User, z.b. 10 Shouts pro Minute anstatt die üblichen 5.

Auch coole features währen, größere Bags/Bank, sowie zugang zur Bank überall per command oder am besten ein kleines Menü speziell für Premium User (Ähnlich wie das Lord Menü).
Swäg is offline  
Reply


Similar Threads Similar Threads
[Source Release]Day & Night System
08/15/2014 - Flyff PServer Guides & Releases - 50 Replies
Hier release ich mal das day & night system. Was ist das day & night system? Seht es euch am besten an mit den screens. Dämmerung : http://img809.imageshack.us/img809/553/flyff00000k r.jpg Dunkler : http://img831.imageshack.us/img831/3141/flyff00001 p.jpg Nochmal dunkler als voher :D : http://img210.imageshack.us/img210/6941/flyff00002 v.jpg das wird nacher noch viel dunkler und später wieder hell.
Please release baruna system source
02/18/2012 - Flyff Private Server - 1 Replies
I have problem baruna system please release baruna system source I can't download source this forum http://www.elitepvpers.com/forum/flyff-pserver-di scussions-questions/1350191-source-baruna-system.h tml :handsdown::handsdown::handsdown::handsdown:
[RELEASE] Source for old ip farm system
03/14/2011 - League of Legends - 8 Replies
Hay guys here i give u my beta bot version for old lol GUI style. Its programe in AutoIT its made by simple functions, maybe some of u guys need it, i end with LOL so i can release it here u have ;#include <GuiConstants.au3> #include <INet.au3> #include <GUIConstantsEx.au3> #include <EditConstants.au3>
[Release] Socket System for Hybrids Source!
05/12/2010 - CO2 PServer Guides & Releases - 22 Replies
Apple Pie is amazing!!!!



All times are GMT +1. The time now is 22:48.


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.