ucell-uz

prem + super prem\sp

1 сообщение в этой теме

помогите пожалуйста со скриптом, имею старенький скрипт написанный под еА, оо-очень хочется опробовать его для геркулеса...юзаю геркулес 2015 написанный под libconfig 1.4.9

вот сам скрипт

 

Скрытый текст

 

- script    PCLoginEvent    -1{  
if(getgmlevel() > 0 && getgmlevel() < 20) goto CheckPayment;
end;

CheckPayment:
if(getgmlevel() == 10 && #PayDaySPrem <= 0) {
set #PayDaySPrem,0;
callfunc "DisablePayment";
} else if(getgmlevel() == 1 && #PayDayPrem <= 0) {
set #PayDayPrem,0;
callfunc "DisablePayment";
}
if(getgmlevel() == 1) {
announce "Ваш статус: Платный. | Осталось дней: "+#PayDayPrem,3;
} else if(getgmlevel() == 10) {
announce "Ваш статус: Платный. | Осталось дней: "+#PayDaySPrem,3;
} else {
announce "Ваш статус: Бесплатный. | Оплата аккаунта у [Premium Maker]`a",3;
}
end;
}

function script DisablePayment {
query_sql "SELECT account_id FROM `char` WHERE name='"+strcharinfo(0)+"'", @premium_acc_id$;
query_sql "UPDATE `login` SET level=0 WHERE account_id='"[email protected]_acc_id$[0]+"'";
atcommand strcharinfo(0)+":@reloadgmdb";
return;
}
//===== Конец Функциональной части ===========================  
//============================================================  

//============================================================  
//===== Вычитание дней оплаты ================================  
- script    PaymentControl    -1,{  
end;

OnClock0000:
query_sql "UPDATE `global_reg_value` SET value=value - 1 WHERE str='#PayDayPrem'";  
query_sql "UPDATE `global_reg_value` SET value=value - 1 WHERE str='#PayDaySPrem'";  
end;  
}  
//===== Конец системы вычитания ==============================  
//============================================================  

prontera.gat,136,171,6    script    Premium Maker    862,{  
set @PricePrem, 3000000;  
set @PriceSP, 5000000;  
if(getgmlevel() > 10) goto CannotPay;  
if(getgmlevel() == 1 && #PayDayPrem > 0) goto Prem_Menu2;  
if(getgmlevel() > 1 && #PayDaySPrem > 0) goto SPrem_menu2;  
mes "[Premium Maker]";  
mes "Здравствуйте, я могу сделать вас ^0000FFПремиумом^000000.";  
next;  
mes "[Premium Maker]";  
mes "Вы хотите стать ^0000FFПлатным^000000 игроком?";  
next;  
menu "Стать ^0000FFПремиумом^000000",MakePrem,"Стать ^0000FFСупер Премиумом^000000",MakeSuperPrem,"Нет, спасибо",-;  
close;  

MakePrem:  
mes "[Premium Maker]";  
mes "Итак, вы решили стать ^0000FFПремиумом^000000. Стоимость данной услуги ^FF0000"[email protected]+" зен за 1 период^000000, 1 период = 30 дням.";  
next;  

MenuMakePrem:  
menu "Я согласен",Yes_MakePrem,"Можно поподробнее",Wht_Prem,"Нет, спасибо.",-;  
close;  

Wht_Prem:  
mes "[Premium Maker]";  
mes "^0000FFПремиуму^000000 доступны бонусы, не доступные обычным игрокам.";  
next;  
goto MenuMakePrem;  

Yes_MakePrem:  
mes "[Premium Maker]";  
mes "Пожалуйста, введите число периодов, на которое вы хотите оплатить премиум.";  
input @PremMonth;  
next;  
if(@PremMonth < 1) set @PremMonth, 1;  
if(@PremMonth > 12) set @PremMonth, 12;  
set @NeededZeny, @[email protected];  
mes "[Premium Maker]";  
mes "Выбрано периодов: ^008080"[email protected]+"^000000";  
mes "Необходимо зенег: ^FF0000"[email protected]+"^000000";  
next;  
mes "[Premium Maker]";  
mes "Вы согласны?";  
menu "Да",-,"Нет",CancelMake;  

if (Zeny < @NeededZeny) goto MaloZeneg;  
set Zeny,[email protected];  
set #PayDayPrem, [email protected];  
query_sql "SELECT account_id FROM `char` WHERE name='"+strcharinfo(0)+"'", @just_acc_id$;  
query_sql "UPDATE `login` SET level=1 WHERE account_id='"[email protected]_acc_id$[0]+"'";  
atcommand strcharinfo(0)+":@reloadgmdb";  
mes "[Premium Maker]";  
mes "Поздравляю вас, вы оплатили ^0000FFПремиум^000000. Оплачено дней: ^FF8040"+#PayDayPrem+"^000000";  
close;  

MakeSuperPrem:  
mes "[Premium Maker]";  
mes "Итак, вы решили стать ^0000FFСупер Премиумом^000000. Стоимость данной услуги ^FF0000"[email protected]+" зен за 1 период^000000, 1 период = 30 дням.";  
next;  

MenuMakeSuperPrem:  
menu "Я согласен",Yes_MakeSuperPrem,"Можно поподробнее",Wht_SuperPrem,"Нет, спасибо.",-;  
close;  

Wht_SuperPrem:  
mes "[Premium Maker]";  
mes "^0000FFСупер премиумам^000000 становятся доступны все команды, доступные премиумам, а так же несколько новых команд. Появляется доступ к НПЦ, не доступным больше никому, кроме СП, а у НПЦ, даступных только премиумам у СП появляются скидки.";  
next;  
goto MenuMakeSuperPrem;  

Yes_MakeSuperPrem:  
mes "[Premium Maker]";  
mes "Пожалуйста, введите число периодов, на которое вы хотите оплатить премиум.";  
input @SPMonth;  
next;  
if(@SPMonth < 1) set @SPMonth, 1;  
if(@SPMonth > 12) set @SPMonth, 12;  
set @NeededZeny, @[email protected];  
mes "[Premium Maker]";  
mes "Выбрано периодов: ^008080"[email protected]+"^000000";  
mes "Необходимо зенег: ^FF0000"[email protected]+"^000000";  
next;  
mes "[Premium Maker]";  
mes "Вы согласны?";  
menu "Да",-,"Нет",CancelMake;  

if (Zeny < @NeededZeny) goto MaloZeneg;  
set Zeny,[email protected];  
if(#PayDaySPrem <= 0) set #PayDaySPrem,0;  
set #PayDaySPrem, [email protected];  
query_sql "SELECT account_id FROM `char` WHERE name='"+strcharinfo(0)+"'", @just_acc_id$;  
query_sql "UPDATE `login` SET level=10 WHERE account_id='"[email protected]_acc_id$[0]+"'";  
atcommand strcharinfo(0)+":@reloadgmdb";  
mes "[Premium Maker]";  
mes "Поздравляю вас, вы оплатили ^0000FFCупер Премиумом^000000. Оплачено дней: ^FF8040"+#PayDaySPrem+"^000000";  
close;  

Prem_Menu2:  
mes "[Premium Maker]";  
mes "Добрый день ^800000"+strcharinfo(0)+"^000000. Что вы желаете сделать?";  
next;  
menu "Продлить ^0000FFПремиум^000000",Add_Prem,"Стать ^0000FFСупер Премиумом^000000",MakeSuperPrem,"Остаток периода",Status,"Ничего",-;  
close;  

Add_Prem:  
mes "[Premium Maker]";  
mes "Введите число периодов, на которое вы хотите продлить ^0000FFПремиум^000000.";  
input @AddPrem;  
next;  
if(@AddPrem < 1) set @AddPrem, 1;  
if(@AddPrem > 12) set @AddPrem, 12;  
set @NeededZeny, @[email protected];  
mes "[Premium Maker]";  
mes "Выбрано периодов: ^008080"[email protected]+"^000000";  
mes "Необходимо зенег: ^FF0000"[email protected]+"^000000";  
next;  
mes "[Premium Maker]";  
mes "Вы согласны?";  
menu "Да",-,"Нет",CancelMake;  

if (Zeny < @NeededZeny) goto MaloZeneg;  
set Zeny,[email protected];  
if(#PayDayPrem < 0) set #PayDayPrem,0;  
set #PayDayPrem, #PayDayPrem+([email protected]);  
mes "[Premium Maker]";  
mes "^0000FFПремиум^000000 продлён. Оплачено дней: ^FF8040"+#PayDayPrem+"^000000";  
close;  

SPrem_menu2:  
mes "[Premium Maker]";  
mes "Добрый день ^800000"+strcharinfo(0)+"^000000. Что вы желаете сделать?";  
next;  
menu "Продлить СП",Add_SPrem,"Остаток периода",Status,"Ничего",-;  
close;  

Add_SPrem:  
mes "[Premium Maker]";  
mes "Введите число периодов, на которое вы хотите продлить Премиум.";  
input @AddSPrem;  
next;  
if(@AddSPrem < 1) set @AddSPrem, 1;  
if(@AddSPrem > 12) set @AddSPrem, 12;  
set @NeededZeny, @[email protected];  
mes "[Premium Maker]";  
mes "Выбрано периодов: ^008080"[email protected]+"^000000";  
mes "Необходимо зенег: ^FF0000"[email protected]+"^000000";  
next;  
mes "[Premium Maker]";  
mes "Вы согласны?";  
menu "Да",-,"Нет",CancelMake;  

if (Zeny < @NeededZeny) goto MaloZeneg;  
set Zeny,[email protected];  
if(#PayDaySPrem < 0) set #PayDaySPrem,0;  
set #PayDaySPrem, #PayDaySPrem+([email protected]);  
mes "[Premium Maker]";  
mes "^0000FFСупер Премиум^000000 продлён. Оплачено дней: ^FF8040"+#PayDaySPrem+"^000000";  
close;  

Status:  
mes "[Premium Maker]";  
if(getgmlevel() > 1) {  
mes "Ваш статус: ^0000FFСупер Премиум^000000";  
mes "Дней до окончания оплаты: ^FF8000"+#PayDaySPrem+"^000000";  
} else {  
mes "Ваш статус: ^0000FFПремиум^000000";  
mes "Дней до окончания оплаты: ^FF8000"+#PayDayPrem+"^000000";  
}  
close;  

ConvertToSP:  
set @Convetr, @PricePrem+(@PriceSP/2);  
mes "[Premium Maker]";  
mes "Итак, Вы хотите преобразовать себя из премиума в СП. Эта услуга стоит: "[email protected]+" зен.";  
next;  
mes "[Premium Maker]";  
mes "Продолжить конвертауию?";  
next;  
menu "Да, продолжим.",ContConvert,"Нет, спасибо.",-;  
goto SPrem_menu2;  

ContConvert:  
mes "[Premium Maker]";  
mes "Введите число периодов оплаты СП.";  
input @ConvToSPrem;  
next;  
if(@ConvToSPrem < 1) set @Convetr, 1;  
if(@ConvToSPrem > 12) set @Convetr, 12;  
set @NeededZeny, @[email protected];  
mes "[Premium Maker]";  
mes "Выбрано периодов: ^008080"[email protected]+"^000000";  
mes "Необходимо зенег: ^FF0000"[email protected]+"^000000";  
next;  
mes "[Premium Maker]";  
mes "Вы согласны?";  
menu "Да",-,"Нет",CancelMake;  

if (Zeny < @NeededZeny) goto MaloZeneg;  
set Zeny,[email protected];  
set #PayDaySPrem, #PayDayPrem+([email protected]);  
set #PayDayPrem,0;  
mes "[Premium Maker]";  
mes "Теперь вы ^0000FFСупер Премиум^000000. Оплачено дней: ^FF8040"+#PayDaySPrem+"^000000";  
close;  

MaloZeneg:  
mes "[Premium Maker]";  
mes "Я сделаю вас ^0000FFПремиумом/СП^000000 только тогда, когда вы принесёте мне нужную сумму!";  
close;  

CancelMake:  
mes "[Premium Maker]";  
mes "Хорошо, приходите ко мне когда мои услуги станут вам нужны.";  
close;  

CannotPay:  
mes "[Premium Maker]";  
mes "МММ... на вас установлен статус Хелпера... к сожалению я не могу оплатить вам аккаунт.";  
close;  
}

 

 

очень хорошая и продуманная система с хорошей проверкой...

 

ещё имею 1 скрипт как раз работает на геркулесе 2015, но совместить оба не получается, я хотел из 2х скриптов собрать в 1 нормальный, помогите кому не трудно

prontera,146,166,6    script    Premium Account    4_M_PHILMAN,{
// Settings: -----------------------------
set .@Cost, 350; // Cash Points required
set .@Time, 4 * 7 * 24 * 60 * 60; // Time in Seconds = 4 weeks, 7 days per week, 24 hours per day, 60 minutes per day, 60 seconds per minute. = 1 month in this sample. in this sample.
set .@Time$, "1 month";
// ---------------------------------------

mes "[Premium Account]";
mes "I am the Premium Account seller.";
if( #PremiumUser > gettimetick(2) )
mes "Your Premium Account expires in ^FF0000" + callfunc("Time2Str",#PremiumUser) + "^000000.";
mes "What can I do for you?";
next;

// isPremium() returns 1 if the current user account is premium and it have not expired.
// It works together with #Premium_Tick, which is a account Var set with a Unix Time value, representing when the premium account expires.
// isPremium() is the same as #Premium_Tick > gettimetick(2)

switch( select("Pay for Premium Time:About Premium Account") )
{
case 1:
mes "[Premium Account]";
if( #PremiumUser > gettimetick(2) )
mes "Do you really want to extend your Premium Time?";
else
mes "You do really want to convert your account to premium?";

mes "Premium Time is ^FF0000" + .@Time$ + "^000000";
mes "Value is ^FF0000" + .@Cost + "^000000 Cash Points.";
next;
if( select("Yes:No") == 2 )
{
mes "[Premium Account]";
mes "Come back if you change your mind.";
close;
}

if( #CASHPOINTS < .@Cost )
{
mes "[Premium Account]";
mes "You don't have enough Cash Points.";
close;
}

if( #PremiumUser > gettimetick(2) )
set #PremiumUser, #PremiumUser + .@Time; // Time Extension
else
set #PremiumUser, gettimetick(2) + .@Time; // New premium Account
query_sql "UPDATE `login` SET group_id = '1' WHERE account_id = "+getcharid(3)+"";
set #CASHPOINTS, #CASHPOINTS - .@Cost;
mes "[Premium Account]";
mes "Congratulations!!..";
mes "Remember your Premium Account expires in ^FF0000" + callfunc("Time2Str",#PremiumUser) + "^000000.";
next; 
mes "To change the status to take effect, please reenter the game.";
close;
case 2:

// Edit this messages to explain your Users about the premium account in your server.
// ----------------------------------------------------------------------------------

mes "[Premium Account]";
mes "With Premium Account you can:";
mes "Use the commands: @mobsearch,";
mes "@cast,@exp,@petrename,@where,";
mes "@changeleader, @packetfilter,";
mes "@autorefresh and other...";
mes "   ";
close;
}


OnPCLoginEvent:
if( #PremiumUser > gettimetick(2)) {
// sc_start SC_ITEMBOOST,( #PremiumUser - gettimetick(2) ),50;
// sc_start SC_EXPBOOST,( #PremiumUser - gettimetick(2) ),50;
dispbottom "Remember your Premium Account expires in " + callfunc("Time2Str",#PremiumUser) + "";
}
if( #PremiumUser <= gettimetick(2) ) {
dispbottom "Time of Premium Account was ended or you don't pay for this.";
query_sql "UPDATE `login` SET group_id = '0' WHERE account_id = "+getcharid(3)+"";
}
end;
}

Изменено пользователем ucell-uz
0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!


Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.


Войти сейчас