Jump to content
  • 0

helpPremium System


Diconfrost VaNz

Question


  • Group:  Members
  • Topic Count:  50
  • Topics Per Day:  0.01
  • Content Count:  974
  • Reputation:   41
  • Joined:  11/13/11
  • Last Seen:  

Hi, i'm diconfrost vanz. I own WipeOutRO. it's a midrate server. Well, enough for introductions.

 

i'm making a premium system for my server that will give boost on exp/drop and give something like instant access on some maps.

 

At first i tried to use the script of Rafael

 

 

 
and i failed to make it to my liking.
 
And after that i tried using this 
 
 
but the npc script was incomplete and i can't make an item script for it.
 
And now i was using this script made by my friend Jezu,
 
 
It's a perfect one for me, the only problem i have there is i can't make an item script for it.
 
Can you help me rescript or recode it so i can make something like a item script using callfunc or something can be used in item scripts?
Link to comment
Share on other sites

8 answers to this question

Recommended Posts


  • Group:  Members
  • Topic Count:  50
  • Topics Per Day:  0.01
  • Content Count:  974
  • Reputation:   41
  • Joined:  11/13/11
  • Last Seen:  

Now i've finished my premium system :D

 

here's the new npc script.

 

 

prontera,155,181,5    script    Clahador    757,{
function getPremiumTime;

mes "[^FF0000Clahador^000000]";
mes "Hello "+strcharinfo(0)+", I'm ^FF0000Clahador the butcher^000000.";
mes "I will be of help if you need something.";
next;
mes "[^FF0000Clahador^000000]";
mes "Oh! you need help?";
mes "What kind of help do you need?";
next;
menu "Newbie here",P_New,"I'm a ViP!",P_VIP,"Nevermind",P_NVM;

P_New:

mes "[^FF0000Clahador^000000]";
mes "Did you already claim your free items in the ^FF0000Freebies NPC^000000???";
menu "Yes!",F_Yes,"No!",F_No;

F_No:
mes "[^FF0000Clahador^000000]";
mes "You should get 'em!.";
mes "It will help you on the start.";
mes "I will send you to the freebie giver.";

next;

warp "prontera",155,183;
close;

F_Yes:
mes "[^FF0000Clahador^000000]";
mes "Haha, i hope you like those items.";
next;
mes "By the way, you can earn zennies through quests like going to daily quest, request board, and many more!";
mes "Did you know that you can have many zennies you want if you gonna hunt more rare items?";
mes "Try it!";
close;

P_VIP:
mes "[^FF0000Clahador^000000]";
mes "Oh you avail our ViP Ticket!";
mes "Thank you!";
next;
mes "[^FF0000Clahador^000000]";
mes "Your ^0055FFPremium Time^000000 Left : "+getPremiumTime( #Premium );
mes "You should maximize it";
mes "Grind your skills and hunt now!";
close;

P_NVM:
mes "[^FF0000Clahador^000000]";
mes "Thank you!";
mes "Come Again!";
close;

function    getPremiumTime    {
set .@Time,getarg(0);
    set .@SecondLeft,( .@Time % 60 );
    set .@MinuteLeft,( .@Time / 60 % 60 );
    set .@HourLeft,( .@Time / ( 60 * 60 ) % 24 );
    set .@DayLeft,( .@Time / ( 24 * 60 * 60 ) );
    
    set .@TimeLeft$,(( .@DayLeft )?.@DayLeft+" Day ":"" ) +
                    (( .@HourLeft )?.@HourLeft+" Hrs ":"" ) +
                    (( .@MinuteLeft )?.@MinuteLeft+" Min ":"" ) +
                    (( .@SecondLeft )?.@SecondLeft+" Sec":"" );
                    
return "^FF0000"+.@TimeLeft$+"^000000";
}

OnPCLoginEvent:
    sc_end SC_EXPBOOST;
    sc_end SC_JEXPBOOST;
    sc_end SC_ITEMBOOST;

if( #Premium > gettimetick(1) ){
sc_start SC_EXPBOOST,(( #Premium - gettimetick(1) ) * 1000 ),300;
sc_start SC_JEXPBOOST,(( #Premium - gettimetick(1) ) * 1000 ),200;
sc_start SC_ITEMBOOST,(( #Premium - gettimetick(1) ) * 1000 ),200;
dispbottom "Hello "+strcharinfo(0)+", your Premium Time Left : "+getPremiumTime( #Premium );

}
end;



}
 

 

 

 

and the item script provided by clydelion

 

 

 

{ set #Premium,#Premium + ( 33 * 24 * 3600 ); },{},{}
 

 

 

 

 

Thank you guys <3

Edited by Diconfrost VaNz
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  28
  • Topics Per Day:  0.01
  • Content Count:  218
  • Reputation:   16
  • Joined:  01/24/12
  • Last Seen:  

You can try this. 

 

 

 
//Item_Db2 : 20000,VIP_Mistress,VIP Mistress,2,1,,,,,,,0xFFFFFFFF,7,2,,,,,,{ callfunc "VIPStart"; },{},{}
 
prontera,155,181,5    script    VIP Mistress    757,{
L_VIPStart:
function getPremiumTime;
 
mes "Want to buy ^0055FFPremium Time^000000 ?";
if( select( "Purchase ^0055FFPremium Time^000000:Cancel" ) == 1 ){
    if( #Premium > gettimetick(1) ){
        mes "Your ^0055FFPremium Time^000000 is currently activated which end after "+getPremiumTime( #Premium );
        mes "Or you want to ^FF0000Extend^000000 the duration ?";
        if( select("Extend:Cancel") == 2 ) close;
    }
mes "1 Day = "+.DayCost+" Cash Points";
mes "How many Day you want to buy ?";
input .@Day;
if( .@Day || #CASHPOINTS < ( .@Day * .DayCost ) ){
    if( #CASHPOINTS < ( .@Day * .DayCost ) ){
        mes "You need more "+( ( .@Day * .DayCost ) - #CASHPOINTS )+" Cash Points.";
    }else{
        mes "You plan to purchase "+.@Day+" Day which total cost is "+( .@Day * .DayCost )+" Cash Points.";
        if( select("Confirm:Cancel") == 1 ){
            set #CASHPOINTS,#CASHPOINTS - ( .@Day * .DayCost );
            set #Premium,#Premium + ( .@Day * 24 * 3600 );
            mes "You have purchased another "+.@Day+" of Premium Times.";
        }
    }
}
 
}
close;
 
function    getPremiumTime    {
set .@Time,getarg(0);
    set .@SecondLeft,( .@Time % 60 );
    set .@MinuteLeft,( .@Time / 60 % 60 );
    set .@HourLeft,( .@Time / ( 60 * 60 ) % 24 );
    set .@DayLeft,( .@Time / ( 24 * 60 * 60 ) );
    
    set .@TimeLeft$,(( .@DayLeft )?.@DayLeft+" Day ":"" ) +
                    (( .@HourLeft )?.@HourLeft+" Hrs ":"" ) +
                    (( .@MinuteLeft )?.@MinuteLeft+" Min ":"" ) +
                    (( .@SecondLeft )?.@SecondLeft+" Sec":"" );
                    
return "^FF0000"+.@TimeLeft$+"^000000";
}
 
OnPCLoginEvent:
if( #Premium > gettimetick(1) ){
    mes "Your Premium Time Left : "+getPremiumTime( #Premium );
    close;
 
    //ADD MORE BUFFS HERE!
    //by Jezu.
    //Format: 
    //sc_start SC_SAMPLEBUFFS,(( #Premium - gettimetick(1) ) * 1000 ),<number/level of buffs;
    sc_start SC_EXPBOOST,(( #Premium - gettimetick(1) ) * 1000 ),300;
    sc_start SC_ITEMBOOST,(( #Premium - gettimetick(1) ) * 1000 ),200;
    sc_start SC_JEXPBOOST,(( #Premium - gettimetick(1) ) * 1000 ),200;
}
end;
 
 
OnInit:
setarray .DayCost,25; //points payment
end;
 
function    VIPStart    {
goto L_VIPStart;
}
}

Edited by Nipsino
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  17
  • Topics Per Day:  0.00
  • Content Count:  754
  • Reputation:   186
  • Joined:  05/22/12
  • Last Seen:  

Hmm.

 

set #Premium,#Premium + ( 30 * 24 * 3600 ); // Days * Hours * secondsperhour

 

Just change 30 to the number of premium days you want to give them accordingly.

  • Upvote 1
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  50
  • Topics Per Day:  0.01
  • Content Count:  974
  • Reputation:   41
  • Joined:  11/13/11
  • Last Seen:  

Hmm.

 

set #Premium,#Premium + ( 30 * 24 * 3600 ); // Days * Hours * secondsperhour

 

Just change 30 to the number of premium days you want to give them accordingly.

 

i used this one and it works.

 

however, i want premium users have boosts on their exp/drop and as you can see this is in the script

 

 

 

OnPCLoginEvent:
if( #Premium > gettimetick(1) ){
    mes "Your Premium Time Left : "+getPremiumTime( #Premium );
    close;
 
    //ADD MORE BUFFS HERE!
    //by Jezu.
    //Format: 
    //sc_start SC_SAMPLEBUFFS,(( #Premium - gettimetick(1) ) * 1000 ),<number/level of buffs;
    sc_start SC_EXPBOOST,(( #Premium - gettimetick(1) ) * 1000 ),300;
    sc_start SC_ITEMBOOST,(( #Premium - gettimetick(1) ) * 1000 ),200;
    sc_start SC_JEXPBOOST,(( #Premium - gettimetick(1) ) * 1000 ),200;
}
 

and whenever i try to login, the timer was reset it was like the exp/drop boost will take forever.

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  28
  • Topics Per Day:  0.01
  • Content Count:  218
  • Reputation:   16
  • Joined:  01/24/12
  • Last Seen:  

Hmm.

 

set #Premium,#Premium + ( 30 * 24 * 3600 ); // Days * Hours * secondsperhour

 

Just change 30 to the number of premium days you want to give them accordingly.

 

Woaaah. Clearly forgot all about that, haha. Been too busy forgot a bit of scripting knowledge. :[

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  17
  • Topics Per Day:  0.00
  • Content Count:  754
  • Reputation:   186
  • Joined:  05/22/12
  • Last Seen:  

Hmm.

 

set #Premium,#Premium + ( 30 * 24 * 3600 ); // Days * Hours * secondsperhour

 

Just change 30 to the number of premium days you want to give them accordingly.

 

i used this one and it works.

 

however, i want premium users have boosts on their exp/drop and as you can see this is in the script

 

 

 

OnPCLoginEvent:
if( #Premium > gettimetick(1) ){
    mes "Your Premium Time Left : "+getPremiumTime( #Premium );
    close;
 
    //ADD MORE BUFFS HERE!
    //by Jezu.
    //Format: 
    //sc_start SC_SAMPLEBUFFS,(( #Premium - gettimetick(1) ) * 1000 ),<number/level of buffs;
    sc_start SC_EXPBOOST,(( #Premium - gettimetick(1) ) * 1000 ),300;
    sc_start SC_ITEMBOOST,(( #Premium - gettimetick(1) ) * 1000 ),200;
    sc_start SC_JEXPBOOST,(( #Premium - gettimetick(1) ) * 1000 ),200;
}
 

and whenever i try to login, the timer was reset it was like the exp/drop boost will take forever.

That's normal for premium users. The boost won't reset when their premium time is over

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  50
  • Topics Per Day:  0.01
  • Content Count:  974
  • Reputation:   41
  • Joined:  11/13/11
  • Last Seen:  

when you activate it via a custom item or what you can call "VIP Ticket"

 

it will be activated.

 

It's like you're using bubble gum and battle manuals.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...