Jump to content
  • 0

Cash Shop or Kafra Shop


DrakeSky

Question


  • Group:  Members
  • Topic Count:  27
  • Topics Per Day:  0.01
  • Content Count:  69
  • Reputation:   0
  • Joined:  03/27/18
  • Last Seen:  

Hi!

I'm having a hard time on this Cash Shop or Kafra Shop, what I want is a Cash Shop or Kafra Shop that used Cash Points that has a Waiting Room on it.

Every time I reload my script the name of the NPC will become Kafra Shop but when I log out then log back in it will become Cash Shop.

Need help on this script. Thanks.

 

Here's my script:

prontera,140,126,6    cashshop    Kafra Shop    116,13534:5,13810:5,12913:5,12914:5,13718:5,12909:5,12922:5

prontera,140,126,6    script    Cash Shop    116,{

callshop "Kafra Shop",116;

OnInit:
delwaitingroom;
waitingroom "--- Cash Shop ---",0;
end;

close;
}

 

Edited by Mael
Use a codebox
Link to comment
Share on other sites

5 answers to this question

Recommended Posts

  • 0

  • Group:  Members
  • Topic Count:  38
  • Topics Per Day:  0.01
  • Content Count:  167
  • Reputation:   22
  • Joined:  11/23/11
  • Last Seen:  

32 minutes ago, DrakeSky said:

Hi!

I'm having a hard time on this Cash Shop or Kafra Shop, what I want is a Cash Shop or Kafra Shop that used Cash Points that has a Waiting Room on it.

Every time I reload my script the name of the NPC will become Kafra Shop but when I log out then log back in it will become Cash Shop.

Need help on this script. Thanks.

 

Here's my script:


prontera,140,126,6    cashshop    Kafra Shop    116,13534:5,13810:5,12913:5,12914:5,13718:5,12909:5,12922:5

prontera,140,126,6    script    Cash Shop    116,{

callshop "Kafra Shop",116;

OnInit:
delwaitingroom;
waitingroom "--- Cash Shop ---",0;
end;

close;
}

*callshop "<name>",<option>;

These are a series of commands used to create dynamic shops.
The 'callshop' function calls an invisible shop (view -1) as if the player clicked on it.

The options are:
	0 = The normal window (buy, sell and cancel)
	1 = The buy window
	2 = The sell window

Note: The <option> parameter only works on the 'shop' type NPC.

A shop called with this command will trigger the labels "OnBuyItem" and "OnSellItem"
(as long as an npcshop* command is executed from that NPC, see note below). These
labels, if used, will replace how the shop handles the buying and selling of items,
allowing for the creation of dynamic shops.

The label "OnBuyItem" sets the following arrays:
	@bought_nameid   - item ID bought
	@bought_quantity - amount bought

The label "OnSellItem" sets the following arrays:
	@sold_nameid        - item ID sold
	@sold_quantity      - amount sold
	@sold_refine        - refine count
	@sold_attribute     - if the item is broken (1) or not (0)
	@sold_identify      - if the item is identified (1) or not (0)
	@sold_card1         - card slot 1
	@sold_card2         - card slot 2
	@sold_card3         - card slot 3
	@sold_card4         - card slot 4
	@sold_option_id1    - random option ID 1
	@sold_option_val1   - random option value 1
	@sold_option_param1 - random option param 1
	@sold_option_id2    - random option ID 2
	@sold_option_val2   - random option value 2
	@sold_option_param2 - random option param 2
	@sold_option_id3    - random option ID 3
	@sold_option_val3   - random option value 3
	@sold_option_param3 - random option param 3
	@sold_option_id4    - random option ID 4
	@sold_option_val4   - random option value 4
	@sold_option_param4 - random option param 4
	@sold_option_id5    - random option ID 5
	@sold_option_val5   - random option value 5
	@sold_option_param5 - random option param 5

Note: These labels will only be triggered if an npcshop* command is executed because these
commands set a special data on the shop NPC, named master_nd in the source. The above labels
are triggered in the NPC whose master_nd is given in the shop.

A full example of a dynamic shop can be found in doc/sample/npc_dynamic_shop.txt.

 

prontera,140,126,6    cashshop    Kafra Shop    116,13534:5,13810:5,12913:5,12914:5,13718:5,12909:5,12922:5

prontera,140,126,6    script    Cash Shop    116,{
callshop "Kafra Shop",0;
end;

OnInit:
delwaitingroom;
waitingroom "--- Cash Shop ---",0;
end;

}

 

Link to comment
Share on other sites

  • 0

  • Group:  Members
  • Topic Count:  27
  • Topics Per Day:  0.01
  • Content Count:  69
  • Reputation:   0
  • Joined:  03/27/18
  • Last Seen:  

25 minutes ago, Katazui said:

*callshop "<name>",<option>;

These are a series of commands used to create dynamic shops.
The 'callshop' function calls an invisible shop (view -1) as if the player clicked on it.

The options are:
	0 = The normal window (buy, sell and cancel)
	1 = The buy window
	2 = The sell window

Note: The <option> parameter only works on the 'shop' type NPC.

A shop called with this command will trigger the labels "OnBuyItem" and "OnSellItem"
(as long as an npcshop* command is executed from that NPC, see note below). These
labels, if used, will replace how the shop handles the buying and selling of items,
allowing for the creation of dynamic shops.

The label "OnBuyItem" sets the following arrays:
	@bought_nameid   - item ID bought
	@bought_quantity - amount bought

The label "OnSellItem" sets the following arrays:
	@sold_nameid        - item ID sold
	@sold_quantity      - amount sold
	@sold_refine        - refine count
	@sold_attribute     - if the item is broken (1) or not (0)
	@sold_identify      - if the item is identified (1) or not (0)
	@sold_card1         - card slot 1
	@sold_card2         - card slot 2
	@sold_card3         - card slot 3
	@sold_card4         - card slot 4
	@sold_option_id1    - random option ID 1
	@sold_option_val1   - random option value 1
	@sold_option_param1 - random option param 1
	@sold_option_id2    - random option ID 2
	@sold_option_val2   - random option value 2
	@sold_option_param2 - random option param 2
	@sold_option_id3    - random option ID 3
	@sold_option_val3   - random option value 3
	@sold_option_param3 - random option param 3
	@sold_option_id4    - random option ID 4
	@sold_option_val4   - random option value 4
	@sold_option_param4 - random option param 4
	@sold_option_id5    - random option ID 5
	@sold_option_val5   - random option value 5
	@sold_option_param5 - random option param 5

Note: These labels will only be triggered if an npcshop* command is executed because these
commands set a special data on the shop NPC, named master_nd in the source. The above labels
are triggered in the NPC whose master_nd is given in the shop.

A full example of a dynamic shop can be found in doc/sample/npc_dynamic_shop.txt.

 


prontera,140,126,6    cashshop    Kafra Shop    116,13534:5,13810:5,12913:5,12914:5,13718:5,12909:5,12922:5

prontera,140,126,6    script    Cash Shop    116,{
callshop "Kafra Shop",0;
end;

OnInit:
delwaitingroom;
waitingroom "--- Cash Shop ---",0;
end;

}

 

Thank you so much! Sir Katazui, I was able to fix it ^_^ you're so helpful ^_^

Link to comment
Share on other sites

  • 0

  • Group:  Members
  • Topic Count:  27
  • Topics Per Day:  0.01
  • Content Count:  69
  • Reputation:   0
  • Joined:  03/27/18
  • Last Seen:  

Where should I put the Waiting room here?

//===== rAthena Script =======================================
//= saders Hourly Rewards
//===== By: ==================================================
//= Sader1992
//https://rathena.org/board/profile/30766-sader1992/
//===== Current Version: =====================================
//= 1.2
//===== Compatible With: ===================================== 
//= rAthena Project
//https://rathena.org/board/files/file/3647-saders-hourly-rewards/
//https://github.com/sader1992/sader_scripts
//===== Description: =========================================
//==== all the configuration are in the last
//==== support gepard / ip / or without them
//==== if you use ip/gepard sql will be used for that
//==== can add minimem level to get the rewards
//==== can change the time
//==== can ban the vending from the rewards (it will reset after relogin)
//==== can add rewards else then variable
//==== there is a shop npc for the variable
//==== you can make it only for vip
//==== can ban idle players for X time from the Hourly Rewards
//==== player can ban his char from getting the reward by @HourlyBan (it will reset after relogin)
//============================================================
//==== please send me a message if you find error
//==== if you like my work maybe consider support me at paypal
//==== [email protected]
//============================================================
//==== 1.1 FIX Critical issue with gepard/ip and compatibility with my other scripts
//==== 1.2 FIX GrPard Variable
//============================================================
-    script    sader_Hourly_Rewards    -1,{

OnHourlyRewards:
        if(#Hourly_Ban){
            message strcharinfo(0),"[Hourly Rewards]: You did ban this char from the Hourly Rewards , Relogin to change that .";
            addtimer .s_time, strnpcinfo(3)+"::OnHourlyRewards";
            end;
        }
        if(.s_idle){
            if(checkidle() > .s_idle_time){
                message strcharinfo(0),"[Hourly Rewards]: No Hourly Rewards for IDLE Players!.";
                addtimer .s_time, strnpcinfo(3)+"::OnHourlyRewards";
                end;
            }
        }
        if(.s_vip){
            if(!vip_status(VIP_STATUS_ACTIVE)){
                message strcharinfo(0),"[Hourly Rewards]: if you are a VIP you will get Hourly Rewards!.";
                addtimer .s_time, strnpcinfo(3)+"::OnHourlyRewards";
                end;
            }
        }
        if(BaseLevel < .s_hourly_level){
            message strcharinfo(0),"[Hourly Rewards]: if you are level "+.s_hourly_level+" and more you will get Hourly Rewards!.";
            addtimer .s_time, strnpcinfo(3)+"::OnHourlyRewards";
            end;
        }
        if(.s_vinding){
            if(checkvending() & .s_vinding){
                message strcharinfo(0),"[Hourly Rewards]: No Hourly Rewards for Venders , Relogin to change that .";
                if(.s_GePard_ip){
                query_logsql("delete from `sader_variables_log` where `variable` = '#Hourly_Rewads_Check' AND `account_id`= '"+getcharid(3)+"'");
                }
                #Hourly_Rewads_Check = 0;
                #Hourly_Ban = 1;
                addtimer .s_time, strnpcinfo(3)+"::OnHourlyRewards";
                end;
            }
        }
        #Hourly_Rewads_Check += 1;
        if(.s_GePard_ip == 1){
            query_sql("SELECT `last_unique_id` FROM `login` WHERE `account_id` = '"+getcharid(3)+"'", .@s_last_unique_id$);
            query_logsql("SELECT value FROM `sader_variables_log` WHERE unique_id = '"+.@s_last_unique_id$+"' AND `variable` = '#Hourly_Rewads_Check'", .@s_GePard);
            if(.@s_GePard >= #Hourly_Rewads_Check){
                message strcharinfo(0),"[Hourly Rewards]: You already got the Hourly Rewards from this PC";
                #Hourly_Rewads_Check -= 1;
                addtimer .s_time, strnpcinfo(3)+"::OnHourlyRewards";
                end;
            }
            if(.@s_GePard == 0){
                query_logsql("INSERT INTO `sader_variables_log` (`unique_id`,`ip`,`variable`,`index`,`value`, `account_id`, `char_id`, `char_name`) VALUES ('"+.@s_last_unique_id$+"', '"+getcharip()+"', '#Hourly_Rewads_Check', '0', '"+#Hourly_Rewads_Check+"', '"+getcharid(3)+"', '"+getcharid(0)+"', '"+strcharinfo(0)+"')");
            }
            query_logsql("Update `sader_variables_log` SET `value` = '"+#Hourly_Rewads_Check+"' WHERE `unique_id`= '"+.@s_last_unique_id$+"' AND `variable` = '#Hourly_Rewads_Check'");
        }else if(.s_GePard_ip == 2){
            query_logsql("SELECT value FROM `sader_variables_log` WHERE ip = '"+getcharip()+"' AND `variable` = '#Hourly_Rewads_Check'", .@s_ip);
            if(.@s_ip >= #Hourly_Rewads_Check){
                message strcharinfo(0),"[Hourly Rewards]: You already got the Hourly Rewards from this IP";
                #Hourly_Rewads_Check -= 1;
                addtimer .s_time, strnpcinfo(3)+"::OnHourlyRewards";
                end;
            }
            if(.@s_ip == 0){
                query_logsql("INSERT INTO `sader_variables_log` (`unique_id`,`ip`,`variable`,`index`,`value`, `account_id`, `char_id`, `char_name`) VALUES ('"+.@s_last_unique_id$+"', '"+getcharip()+"', '#Hourly_Rewads_Check', '0', '"+#Hourly_Rewads_Check+"', '"+getcharid(3)+"', '"+getcharid(0)+"', '"+strcharinfo(0)+"')");
            }
            query_logsql("Update `sader_variables_log` SET `value` = '"+#Hourly_Rewads_Check+"' WHERE `ip`= '"+getcharip()+"' AND `variable` = '#Hourly_Rewads_Check'");
        }
        message strcharinfo(0),"[Hourly Rewards]: you Gain your Reward.";
        callsub Hourly_Rewads;
        addtimer .s_time, strnpcinfo(3)+"::OnHourlyRewards";
end;

OnHourlyBan:
    if(!#Hourly_Ban){
        message strcharinfo(0),"[Hourly Rewards]: You did ban this char from the Hourly Rewards , Relogin to change that .";
        if(.s_GePard_ip){
        query_logsql("delete from `sader_variables_log` where `variable` = '#Hourly_Rewads_Check' AND `account_id`= '"+getcharid(3)+"'");
        }
        #Hourly_Rewads_Check = 0;
        #Hourly_Ban = 1;
        addtimer .s_time, strnpcinfo(3)+"::OnHourlyRewards";
    }
end;

OnUnHourlyBan:
    #Hourly_Ban = 0;
end;
OnPCLogoutEvent:
    if(.s_GePard_ip){
    query_logsql("delete from `sader_variables_log` where `variable` = '#Hourly_Rewads_Check' AND `account_id`= '"+getcharid(3)+"'");
    }
    if(#Hourly_Ban == 1){
        #Hourly_Ban = 0;
    }
    #Hourly_Rewads_Check = 0;
end;

OnPCLoginEvent:
    addtimer .s_time, strnpcinfo(3)+"::OnHourlyRewards";
end;

OnInit:
    .s_idle = 0; //    ban hourly rewards from idle players ? 0 no / 1 yes {if player didn't move for x time he wont get hourly reward}  , DEFAULT = 0
    .s_idle_time = 1800; //    this the time for idle in secend  , DEFAULT = 1800 (30 min)
    .s_vip = 0; //    1 = only for VIP / 0 = for everyone  , DEFAULT = 0
    .s_time = 3600000; //    1000 = 1 secend | 60000 = 1 min | 3600000 = 1 houre  , DEFAULT = 3600000 (1 hr)
    .s_hourly_level = 0; //    Minimam level to get the Houerly rewards / 0 = no minimem level  , DEFAULT 0
    .s_GePard_ip = 0; //    0 = no Gepard / 1 = Gepard / 2 = IP  , DEFAULT 0
    .s_vinding = 7; //    DEFAULT 7 / 0 = will give the reward even if vending / 1 = no normal vending / 2 = no @autotrade / 4 = no buyingstore | Example: if you want to ban normal vend and buying store you add the numbers 1+4=5
    query_logsql("CREATE TABLE IF NOT EXISTS `sader_variables_log` (`unique_id` INT( 11 ) UNSIGNED NOT NULL DEFAULT  '0',`ip` VARCHAR(100) NOT NULL,`variable` VARCHAR(32) NOT NULL, `index` INT NOT NULL, `value` INT NOT NULL,`account_id` INT NOT NULL,`char_id` INT NOT NULL,`char_name` VARCHAR(30) NOT NULL) ENGINE=MyISAM");
    bindatcmd("UnHourlyBan",strnpcinfo(3)+"::OnUnHourlyBan",99,99);
    bindatcmd("HourlyBan",strnpcinfo(3)+"::OnHourlyBan",0,99);

end;

Hourly_Rewads:
    //put the Hourly Rewards here
    #HourlyShop += 1;
    //getitem 905,1; //    if you want to add items as reward you can add them here like that
    //getexp 10000,5000; //    if you wanna add exp as reward add them here like that
    //if(#Hourly_Rewads_Check == 5){getitem 905,1;} //    like this you can add reward for Xhr and this reward will be given for that X in this example 5 mean that the player did pass 5hr
    //if(#Hourly_Rewads_Check >= 5){getitem 905,1;} //    like this you can add reward for Xhr and this reward will be given for that X in this example 5 mean that the player did pass 5hr or more
return;
}
prontera,144,126,6    pointshop    Hourly Point Shop    667,#HourlyShop,13534:5,13810:5,12913:5,12914:5,13718:5,12909:5,12922:5
//<ITEM_ID>:<PRICE>,<ITEM_ID>:<PRICE>,<ITEM_ID>:<PRICE>,<ITEM_ID>:<PRICE>

 

Edited by Mael
Use a codebox
Link to comment
Share on other sites

  • 0

  • Group:  Members
  • Topic Count:  38
  • Topics Per Day:  0.01
  • Content Count:  167
  • Reputation:   22
  • Joined:  11/23/11
  • Last Seen:  

18 minutes ago, DrakeSky said:

Where should I put the Waiting room here?

 


/===== rAthena Script =======================================
//= saders Hourly Rewards
//===== By: ==================================================
//= Sader1992
//https://rathena.org/board/profile/30766-sader1992/
//===== Current Version: =====================================
//= 1.2
//===== Compatible With: ===================================== 
//= rAthena Project
//https://rathena.org/board/files/file/3647-saders-hourly-rewards/
//https://github.com/sader1992/sader_scripts
//===== Description: =========================================
//==== all the configuration are in the last
//==== support gepard / ip / or without them
//==== if you use ip/gepard sql will be used for that
//==== can add minimem level to get the rewards
//==== can change the time
//==== can ban the vending from the rewards (it will reset after relogin)
//==== can add rewards else then variable
//==== there is a shop npc for the variable
//==== you can make it only for vip
//==== can ban idle players for X time from the Hourly Rewards
//==== player can ban his char from getting the reward by @HourlyBan (it will reset after relogin)
//============================================================
//==== please send me a message if you find error
//==== if you like my work maybe consider support me at paypal
//==== [email protected]
//============================================================
//==== 1.1 FIX Critical issue with gepard/ip and compatibility with my other scripts
//==== 1.2 FIX GrPard Variable
//============================================================
-    script    sader_Hourly_Rewards    -1,{

OnHourlyRewards:
        if(#Hourly_Ban){
            message strcharinfo(0),"[Hourly Rewards]: You did ban this char from the Hourly Rewards , Relogin to change that .";
            addtimer .s_time, strnpcinfo(3)+"::OnHourlyRewards";
            end;
        }
        if(.s_idle){
            if(checkidle() > .s_idle_time){
                message strcharinfo(0),"[Hourly Rewards]: No Hourly Rewards for IDLE Players!.";
                addtimer .s_time, strnpcinfo(3)+"::OnHourlyRewards";
                end;
            }
        }
        if(.s_vip){
            if(!vip_status(VIP_STATUS_ACTIVE)){
                message strcharinfo(0),"[Hourly Rewards]: if you are a VIP you will get Hourly Rewards!.";
                addtimer .s_time, strnpcinfo(3)+"::OnHourlyRewards";
                end;
            }
        }
        if(BaseLevel < .s_hourly_level){
            message strcharinfo(0),"[Hourly Rewards]: if you are level "+.s_hourly_level+" and more you will get Hourly Rewards!.";
            addtimer .s_time, strnpcinfo(3)+"::OnHourlyRewards";
            end;
        }
        if(.s_vinding){
            if(checkvending() & .s_vinding){
                message strcharinfo(0),"[Hourly Rewards]: No Hourly Rewards for Venders , Relogin to change that .";
                if(.s_GePard_ip){
                query_logsql("delete from `sader_variables_log` where `variable` = '#Hourly_Rewads_Check' AND `account_id`= '"+getcharid(3)+"'");
                }
                #Hourly_Rewads_Check = 0;
                #Hourly_Ban = 1;
                addtimer .s_time, strnpcinfo(3)+"::OnHourlyRewards";
                end;
            }
        }
        #Hourly_Rewads_Check += 1;
        if(.s_GePard_ip == 1){
            query_sql("SELECT `last_unique_id` FROM `login` WHERE `account_id` = '"+getcharid(3)+"'", .@s_last_unique_id$);
            query_logsql("SELECT value FROM `sader_variables_log` WHERE unique_id = '"+.@s_last_unique_id$+"' AND `variable` = '#Hourly_Rewads_Check'", .@s_GePard);
            if(.@s_GePard >= #Hourly_Rewads_Check){
                message strcharinfo(0),"[Hourly Rewards]: You already got the Hourly Rewards from this PC";
                #Hourly_Rewads_Check -= 1;
                addtimer .s_time, strnpcinfo(3)+"::OnHourlyRewards";
                end;
            }
            if(.@s_GePard == 0){
                query_logsql("INSERT INTO `sader_variables_log` (`unique_id`,`ip`,`variable`,`index`,`value`, `account_id`, `char_id`, `char_name`) VALUES ('"+.@s_last_unique_id$+"', '"+getcharip()+"', '#Hourly_Rewads_Check', '0', '"+#Hourly_Rewads_Check+"', '"+getcharid(3)+"', '"+getcharid(0)+"', '"+strcharinfo(0)+"')");
            }
            query_logsql("Update `sader_variables_log` SET `value` = '"+#Hourly_Rewads_Check+"' WHERE `unique_id`= '"+.@s_last_unique_id$+"' AND `variable` = '#Hourly_Rewads_Check'");
        }else if(.s_GePard_ip == 2){
            query_logsql("SELECT value FROM `sader_variables_log` WHERE ip = '"+getcharip()+"' AND `variable` = '#Hourly_Rewads_Check'", .@s_ip);
            if(.@s_ip >= #Hourly_Rewads_Check){
                message strcharinfo(0),"[Hourly Rewards]: You already got the Hourly Rewards from this IP";
                #Hourly_Rewads_Check -= 1;
                addtimer .s_time, strnpcinfo(3)+"::OnHourlyRewards";
                end;
            }
            if(.@s_ip == 0){
                query_logsql("INSERT INTO `sader_variables_log` (`unique_id`,`ip`,`variable`,`index`,`value`, `account_id`, `char_id`, `char_name`) VALUES ('"+.@s_last_unique_id$+"', '"+getcharip()+"', '#Hourly_Rewads_Check', '0', '"+#Hourly_Rewads_Check+"', '"+getcharid(3)+"', '"+getcharid(0)+"', '"+strcharinfo(0)+"')");
            }
            query_logsql("Update `sader_variables_log` SET `value` = '"+#Hourly_Rewads_Check+"' WHERE `ip`= '"+getcharip()+"' AND `variable` = '#Hourly_Rewads_Check'");
        }
        message strcharinfo(0),"[Hourly Rewards]: you Gain your Reward.";
        callsub Hourly_Rewads;
        addtimer .s_time, strnpcinfo(3)+"::OnHourlyRewards";
end;

OnHourlyBan:
    if(!#Hourly_Ban){
        message strcharinfo(0),"[Hourly Rewards]: You did ban this char from the Hourly Rewards , Relogin to change that .";
        if(.s_GePard_ip){
        query_logsql("delete from `sader_variables_log` where `variable` = '#Hourly_Rewads_Check' AND `account_id`= '"+getcharid(3)+"'");
        }
        #Hourly_Rewads_Check = 0;
        #Hourly_Ban = 1;
        addtimer .s_time, strnpcinfo(3)+"::OnHourlyRewards";
    }
end;

OnUnHourlyBan:
    #Hourly_Ban = 0;
end;
OnPCLogoutEvent:
    if(.s_GePard_ip){
    query_logsql("delete from `sader_variables_log` where `variable` = '#Hourly_Rewads_Check' AND `account_id`= '"+getcharid(3)+"'");
    }
    if(#Hourly_Ban == 1){
        #Hourly_Ban = 0;
    }
    #Hourly_Rewads_Check = 0;
end;

OnPCLoginEvent:
    addtimer .s_time, strnpcinfo(3)+"::OnHourlyRewards";
end;

OnInit:
    .s_idle = 0; //    ban hourly rewards from idle players ? 0 no / 1 yes {if player didn't move for x time he wont get hourly reward}  , DEFAULT = 0
    .s_idle_time = 1800; //    this the time for idle in secend  , DEFAULT = 1800 (30 min)
    .s_vip = 0; //    1 = only for VIP / 0 = for everyone  , DEFAULT = 0
    .s_time = 3600000; //    1000 = 1 secend | 60000 = 1 min | 3600000 = 1 houre  , DEFAULT = 3600000 (1 hr)
    .s_hourly_level = 0; //    Minimam level to get the Houerly rewards / 0 = no minimem level  , DEFAULT 0
    .s_GePard_ip = 0; //    0 = no Gepard / 1 = Gepard / 2 = IP  , DEFAULT 0
    .s_vinding = 7; //    DEFAULT 7 / 0 = will give the reward even if vending / 1 = no normal vending / 2 = no @autotrade / 4 = no buyingstore | Example: if you want to ban normal vend and buying store you add the numbers 1+4=5
    query_logsql("CREATE TABLE IF NOT EXISTS `sader_variables_log` (`unique_id` INT( 11 ) UNSIGNED NOT NULL DEFAULT  '0',`ip` VARCHAR(100) NOT NULL,`variable` VARCHAR(32) NOT NULL, `index` INT NOT NULL, `value` INT NOT NULL,`account_id` INT NOT NULL,`char_id` INT NOT NULL,`char_name` VARCHAR(30) NOT NULL) ENGINE=MyISAM");
    bindatcmd("UnHourlyBan",strnpcinfo(3)+"::OnUnHourlyBan",99,99);
    bindatcmd("HourlyBan",strnpcinfo(3)+"::OnHourlyBan",0,99);

end;

Hourly_Rewads:
    //put the Hourly Rewards here
    #HourlyShop += 1;
    //getitem 905,1; //    if you want to add items as reward you can add them here like that
    //getexp 10000,5000; //    if you wanna add exp as reward add them here like that
    //if(#Hourly_Rewads_Check == 5){getitem 905,1;} //    like this you can add reward for Xhr and this reward will be given for that X in this example 5 mean that the player did pass 5hr
    //if(#Hourly_Rewads_Check >= 5){getitem 905,1;} //    like this you can add reward for Xhr and this reward will be given for that X in this example 5 mean that the player did pass 5hr or more
return;
}
prontera,144,126,6    pointshop    Hourly Point Shop    667,#HourlyShop,13534:5,13810:5,12913:5,12914:5,13718:5,12909:5,12922:5
//<ITEM_ID>:<PRICE>,<ITEM_ID>:<PRICE>,<ITEM_ID>:<PRICE>,<ITEM_ID>:<PRICE>

 

 

//===== rAthena Script =======================================
//= saders Hourly Rewards
//===== By: ==================================================
//= Sader1992
//https://rathena.org/board/profile/30766-sader1992/
//===== Current Version: =====================================
//= 1.2
//===== Compatible With: ===================================== 
//= rAthena Project
//https://rathena.org/board/files/file/3647-saders-hourly-rewards/
//https://github.com/sader1992/sader_scripts
//===== Description: =========================================
//==== all the configuration are in the last
//==== support gepard / ip / or without them
//==== if you use ip/gepard sql will be used for that
//==== can add minimem level to get the rewards
//==== can change the time
//==== can ban the vending from the rewards (it will reset after relogin)
//==== can add rewards else then variable
//==== there is a shop npc for the variable
//==== you can make it only for vip
//==== can ban idle players for X time from the Hourly Rewards
//==== player can ban his char from getting the reward by @HourlyBan (it will reset after relogin)
//============================================================
//==== please send me a message if you find error
//==== if you like my work maybe consider support me at paypal
//==== [email protected]
//============================================================
//==== 1.1 FIX Critical issue with gepard/ip and compatibility with my other scripts
//==== 1.2 FIX GrPard Variable
//============================================================
-	script	sader_Hourly_Rewards	-1,{

OnHourlyRewards:
       if(#Hourly_Ban){
           message strcharinfo(0),"[Hourly Rewards]: You did ban this char from the Hourly Rewards , Relogin to change that .";
           addtimer .s_time, strnpcinfo(3)+"::OnHourlyRewards";
           end;
       }
       if(.s_idle){
           if(checkidle() > .s_idle_time){
               message strcharinfo(0),"[Hourly Rewards]: No Hourly Rewards for IDLE Players!.";
               addtimer .s_time, strnpcinfo(3)+"::OnHourlyRewards";
               end;
           }
       }
       if(.s_vip){
           if(!vip_status(VIP_STATUS_ACTIVE)){
               message strcharinfo(0),"[Hourly Rewards]: if you are a VIP you will get Hourly Rewards!.";
               addtimer .s_time, strnpcinfo(3)+"::OnHourlyRewards";
               end;
           }
       }
       if(BaseLevel < .s_hourly_level){
           message strcharinfo(0),"[Hourly Rewards]: if you are level "+.s_hourly_level+" and more you will get Hourly Rewards!.";
           addtimer .s_time, strnpcinfo(3)+"::OnHourlyRewards";
           end;
       }
       if(.s_vinding){
           if(checkvending() & .s_vinding){
               message strcharinfo(0),"[Hourly Rewards]: No Hourly Rewards for Venders , Relogin to change that .";
               if(.s_GePard_ip){
               query_logsql("delete from `sader_variables_log` where `variable` = '#Hourly_Rewads_Check' AND `account_id`= '"+getcharid(3)+"'");
               }
               #Hourly_Rewads_Check = 0;
               #Hourly_Ban = 1;
               addtimer .s_time, strnpcinfo(3)+"::OnHourlyRewards";
               end;
           }
       }
       #Hourly_Rewads_Check += 1;
       if(.s_GePard_ip == 1){
           query_sql("SELECT `last_unique_id` FROM `login` WHERE `account_id` = '"+getcharid(3)+"'", .@s_last_unique_id$);
           query_logsql("SELECT value FROM `sader_variables_log` WHERE unique_id = '"+.@s_last_unique_id$+"' AND `variable` = '#Hourly_Rewads_Check'", .@s_GePard);
           if(.@s_GePard >= #Hourly_Rewads_Check){
               message strcharinfo(0),"[Hourly Rewards]: You already got the Hourly Rewards from this PC";
               #Hourly_Rewads_Check -= 1;
               addtimer .s_time, strnpcinfo(3)+"::OnHourlyRewards";
               end;
           }
           if(.@s_GePard == 0){
               query_logsql("INSERT INTO `sader_variables_log` (`unique_id`,`ip`,`variable`,`index`,`value`, `account_id`, `char_id`, `char_name`) VALUES ('"+.@s_last_unique_id$+"', '"+getcharip()+"', '#Hourly_Rewads_Check', '0', '"+#Hourly_Rewads_Check+"', '"+getcharid(3)+"', '"+getcharid(0)+"', '"+strcharinfo(0)+"')");
           }
           query_logsql("Update `sader_variables_log` SET `value` = '"+#Hourly_Rewads_Check+"' WHERE `unique_id`= '"+.@s_last_unique_id$+"' AND `variable` = '#Hourly_Rewads_Check'");
       }else if(.s_GePard_ip == 2){
           query_logsql("SELECT value FROM `sader_variables_log` WHERE ip = '"+getcharip()+"' AND `variable` = '#Hourly_Rewads_Check'", .@s_ip);
           if(.@s_ip >= #Hourly_Rewads_Check){
               message strcharinfo(0),"[Hourly Rewards]: You already got the Hourly Rewards from this IP";
               #Hourly_Rewads_Check -= 1;
               addtimer .s_time, strnpcinfo(3)+"::OnHourlyRewards";
               end;
           }
           if(.@s_ip == 0){
               query_logsql("INSERT INTO `sader_variables_log` (`unique_id`,`ip`,`variable`,`index`,`value`, `account_id`, `char_id`, `char_name`) VALUES ('"+.@s_last_unique_id$+"', '"+getcharip()+"', '#Hourly_Rewads_Check', '0', '"+#Hourly_Rewads_Check+"', '"+getcharid(3)+"', '"+getcharid(0)+"', '"+strcharinfo(0)+"')");
           }
           query_logsql("Update `sader_variables_log` SET `value` = '"+#Hourly_Rewads_Check+"' WHERE `ip`= '"+getcharip()+"' AND `variable` = '#Hourly_Rewads_Check'");
       }
       message strcharinfo(0),"[Hourly Rewards]: you Gain your Reward.";
       callsub Hourly_Rewads;
       addtimer .s_time, strnpcinfo(3)+"::OnHourlyRewards";
end;

OnHourlyBan:
   if(!#Hourly_Ban){
       message strcharinfo(0),"[Hourly Rewards]: You did ban this char from the Hourly Rewards , Relogin to change that .";
       if(.s_GePard_ip){
       query_logsql("delete from `sader_variables_log` where `variable` = '#Hourly_Rewads_Check' AND `account_id`= '"+getcharid(3)+"'");
       }
       #Hourly_Rewads_Check = 0;
       #Hourly_Ban = 1;
       addtimer .s_time, strnpcinfo(3)+"::OnHourlyRewards";
   }
end;

OnUnHourlyBan:
   #Hourly_Ban = 0;
end;
OnPCLogoutEvent:
   if(.s_GePard_ip){
   query_logsql("delete from `sader_variables_log` where `variable` = '#Hourly_Rewads_Check' AND `account_id`= '"+getcharid(3)+"'");
   }
   if(#Hourly_Ban == 1){
       #Hourly_Ban = 0;
   }
   #Hourly_Rewads_Check = 0;
end;

OnPCLoginEvent:
   addtimer .s_time, strnpcinfo(3)+"::OnHourlyRewards";
end;

OnInit:
   .s_idle = 0; //    ban hourly rewards from idle players ? 0 no / 1 yes {if player didn't move for x time he wont get hourly reward}  , DEFAULT = 0
   .s_idle_time = 1800; //    this the time for idle in secend  , DEFAULT = 1800 (30 min)
   .s_vip = 0; //    1 = only for VIP / 0 = for everyone  , DEFAULT = 0
   .s_time = 3600000; //    1000 = 1 secend | 60000 = 1 min | 3600000 = 1 houre  , DEFAULT = 3600000 (1 hr)
   .s_hourly_level = 0; //    Minimam level to get the Houerly rewards / 0 = no minimem level  , DEFAULT 0
   .s_GePard_ip = 0; //    0 = no Gepard / 1 = Gepard / 2 = IP  , DEFAULT 0
   .s_vinding = 7; //    DEFAULT 7 / 0 = will give the reward even if vending / 1 = no normal vending / 2 = no @autotrade / 4 = no buyingstore | Example: if you want to ban normal vend and buying store you add the numbers 1+4=5
   query_logsql("CREATE TABLE IF NOT EXISTS `sader_variables_log` (`unique_id` INT( 11 ) UNSIGNED NOT NULL DEFAULT  '0',`ip` VARCHAR(100) NOT NULL,`variable` VARCHAR(32) NOT NULL, `index` INT NOT NULL, `value` INT NOT NULL,`account_id` INT NOT NULL,`char_id` INT NOT NULL,`char_name` VARCHAR(30) NOT NULL) ENGINE=MyISAM");
   bindatcmd("UnHourlyBan",strnpcinfo(3)+"::OnUnHourlyBan",99,99);
   bindatcmd("HourlyBan",strnpcinfo(3)+"::OnHourlyBan",0,99);

end;

Hourly_Rewads:
   //put the Hourly Rewards here
   #HourlyShop += 1;
   //getitem 905,1; //    if you want to add items as reward you can add them here like that
   //getexp 10000,5000; //    if you wanna add exp as reward add them here like that
   //if(#Hourly_Rewads_Check == 5){getitem 905,1;} //    like this you can add reward for Xhr and this reward will be given for that X in this example 5 mean that the player did pass 5hr
   //if(#Hourly_Rewads_Check >= 5){getitem 905,1;} //    like this you can add reward for Xhr and this reward will be given for that X in this example 5 mean that the player did pass 5hr or more
return;
}
//prontera,144,126,6    pointshop    Hourly Point Shop    667,#HourlyShop,13534:5,13810:5,12913:5,12914:5,13718:5,12909:5,12922:5
//<ITEM_ID>:<PRICE>,<ITEM_ID>:<PRICE>,<ITEM_ID>:<PRICE>,<ITEM_ID>:<PRICE> 

-	pointshop	Hourly Point Shop	667,#HourlyShop,13534:5,13810:5,12913:5,12914:5,13718:5,12909:5,12922:5

prontera,144,126,6	script	Hourly Point Shop#NPC	667,{
callshop "Hourly Point Shop",0;
end;

OnInit:
delwaitingroom;
waitingroom "--- Hourly Point Shop ---",0;
end;

}

 

  • MVP 1
Link to comment
Share on other sites

  • 0

  • Group:  Members
  • Topic Count:  27
  • Topics Per Day:  0.01
  • Content Count:  69
  • Reputation:   0
  • Joined:  03/27/18
  • Last Seen:  

5 minutes ago, Katazui said:

 


//===== rAthena Script =======================================
//= saders Hourly Rewards
//===== By: ==================================================
//= Sader1992
//https://rathena.org/board/profile/30766-sader1992/
//===== Current Version: =====================================
//= 1.2
//===== Compatible With: ===================================== 
//= rAthena Project
//https://rathena.org/board/files/file/3647-saders-hourly-rewards/
//https://github.com/sader1992/sader_scripts
//===== Description: =========================================
//==== all the configuration are in the last
//==== support gepard / ip / or without them
//==== if you use ip/gepard sql will be used for that
//==== can add minimem level to get the rewards
//==== can change the time
//==== can ban the vending from the rewards (it will reset after relogin)
//==== can add rewards else then variable
//==== there is a shop npc for the variable
//==== you can make it only for vip
//==== can ban idle players for X time from the Hourly Rewards
//==== player can ban his char from getting the reward by @HourlyBan (it will reset after relogin)
//============================================================
//==== please send me a message if you find error
//==== if you like my work maybe consider support me at paypal
//==== [email protected]
//============================================================
//==== 1.1 FIX Critical issue with gepard/ip and compatibility with my other scripts
//==== 1.2 FIX GrPard Variable
//============================================================
-	script	sader_Hourly_Rewards	-1,{

OnHourlyRewards:
       if(#Hourly_Ban){
           message strcharinfo(0),"[Hourly Rewards]: You did ban this char from the Hourly Rewards , Relogin to change that .";
           addtimer .s_time, strnpcinfo(3)+"::OnHourlyRewards";
           end;
       }
       if(.s_idle){
           if(checkidle() > .s_idle_time){
               message strcharinfo(0),"[Hourly Rewards]: No Hourly Rewards for IDLE Players!.";
               addtimer .s_time, strnpcinfo(3)+"::OnHourlyRewards";
               end;
           }
       }
       if(.s_vip){
           if(!vip_status(VIP_STATUS_ACTIVE)){
               message strcharinfo(0),"[Hourly Rewards]: if you are a VIP you will get Hourly Rewards!.";
               addtimer .s_time, strnpcinfo(3)+"::OnHourlyRewards";
               end;
           }
       }
       if(BaseLevel < .s_hourly_level){
           message strcharinfo(0),"[Hourly Rewards]: if you are level "+.s_hourly_level+" and more you will get Hourly Rewards!.";
           addtimer .s_time, strnpcinfo(3)+"::OnHourlyRewards";
           end;
       }
       if(.s_vinding){
           if(checkvending() & .s_vinding){
               message strcharinfo(0),"[Hourly Rewards]: No Hourly Rewards for Venders , Relogin to change that .";
               if(.s_GePard_ip){
               query_logsql("delete from `sader_variables_log` where `variable` = '#Hourly_Rewads_Check' AND `account_id`= '"+getcharid(3)+"'");
               }
               #Hourly_Rewads_Check = 0;
               #Hourly_Ban = 1;
               addtimer .s_time, strnpcinfo(3)+"::OnHourlyRewards";
               end;
           }
       }
       #Hourly_Rewads_Check += 1;
       if(.s_GePard_ip == 1){
           query_sql("SELECT `last_unique_id` FROM `login` WHERE `account_id` = '"+getcharid(3)+"'", .@s_last_unique_id$);
           query_logsql("SELECT value FROM `sader_variables_log` WHERE unique_id = '"+.@s_last_unique_id$+"' AND `variable` = '#Hourly_Rewads_Check'", .@s_GePard);
           if(.@s_GePard >= #Hourly_Rewads_Check){
               message strcharinfo(0),"[Hourly Rewards]: You already got the Hourly Rewards from this PC";
               #Hourly_Rewads_Check -= 1;
               addtimer .s_time, strnpcinfo(3)+"::OnHourlyRewards";
               end;
           }
           if(.@s_GePard == 0){
               query_logsql("INSERT INTO `sader_variables_log` (`unique_id`,`ip`,`variable`,`index`,`value`, `account_id`, `char_id`, `char_name`) VALUES ('"+.@s_last_unique_id$+"', '"+getcharip()+"', '#Hourly_Rewads_Check', '0', '"+#Hourly_Rewads_Check+"', '"+getcharid(3)+"', '"+getcharid(0)+"', '"+strcharinfo(0)+"')");
           }
           query_logsql("Update `sader_variables_log` SET `value` = '"+#Hourly_Rewads_Check+"' WHERE `unique_id`= '"+.@s_last_unique_id$+"' AND `variable` = '#Hourly_Rewads_Check'");
       }else if(.s_GePard_ip == 2){
           query_logsql("SELECT value FROM `sader_variables_log` WHERE ip = '"+getcharip()+"' AND `variable` = '#Hourly_Rewads_Check'", .@s_ip);
           if(.@s_ip >= #Hourly_Rewads_Check){
               message strcharinfo(0),"[Hourly Rewards]: You already got the Hourly Rewards from this IP";
               #Hourly_Rewads_Check -= 1;
               addtimer .s_time, strnpcinfo(3)+"::OnHourlyRewards";
               end;
           }
           if(.@s_ip == 0){
               query_logsql("INSERT INTO `sader_variables_log` (`unique_id`,`ip`,`variable`,`index`,`value`, `account_id`, `char_id`, `char_name`) VALUES ('"+.@s_last_unique_id$+"', '"+getcharip()+"', '#Hourly_Rewads_Check', '0', '"+#Hourly_Rewads_Check+"', '"+getcharid(3)+"', '"+getcharid(0)+"', '"+strcharinfo(0)+"')");
           }
           query_logsql("Update `sader_variables_log` SET `value` = '"+#Hourly_Rewads_Check+"' WHERE `ip`= '"+getcharip()+"' AND `variable` = '#Hourly_Rewads_Check'");
       }
       message strcharinfo(0),"[Hourly Rewards]: you Gain your Reward.";
       callsub Hourly_Rewads;
       addtimer .s_time, strnpcinfo(3)+"::OnHourlyRewards";
end;

OnHourlyBan:
   if(!#Hourly_Ban){
       message strcharinfo(0),"[Hourly Rewards]: You did ban this char from the Hourly Rewards , Relogin to change that .";
       if(.s_GePard_ip){
       query_logsql("delete from `sader_variables_log` where `variable` = '#Hourly_Rewads_Check' AND `account_id`= '"+getcharid(3)+"'");
       }
       #Hourly_Rewads_Check = 0;
       #Hourly_Ban = 1;
       addtimer .s_time, strnpcinfo(3)+"::OnHourlyRewards";
   }
end;

OnUnHourlyBan:
   #Hourly_Ban = 0;
end;
OnPCLogoutEvent:
   if(.s_GePard_ip){
   query_logsql("delete from `sader_variables_log` where `variable` = '#Hourly_Rewads_Check' AND `account_id`= '"+getcharid(3)+"'");
   }
   if(#Hourly_Ban == 1){
       #Hourly_Ban = 0;
   }
   #Hourly_Rewads_Check = 0;
end;

OnPCLoginEvent:
   addtimer .s_time, strnpcinfo(3)+"::OnHourlyRewards";
end;

OnInit:
   .s_idle = 0; //    ban hourly rewards from idle players ? 0 no / 1 yes {if player didn't move for x time he wont get hourly reward}  , DEFAULT = 0
   .s_idle_time = 1800; //    this the time for idle in secend  , DEFAULT = 1800 (30 min)
   .s_vip = 0; //    1 = only for VIP / 0 = for everyone  , DEFAULT = 0
   .s_time = 3600000; //    1000 = 1 secend | 60000 = 1 min | 3600000 = 1 houre  , DEFAULT = 3600000 (1 hr)
   .s_hourly_level = 0; //    Minimam level to get the Houerly rewards / 0 = no minimem level  , DEFAULT 0
   .s_GePard_ip = 0; //    0 = no Gepard / 1 = Gepard / 2 = IP  , DEFAULT 0
   .s_vinding = 7; //    DEFAULT 7 / 0 = will give the reward even if vending / 1 = no normal vending / 2 = no @autotrade / 4 = no buyingstore | Example: if you want to ban normal vend and buying store you add the numbers 1+4=5
   query_logsql("CREATE TABLE IF NOT EXISTS `sader_variables_log` (`unique_id` INT( 11 ) UNSIGNED NOT NULL DEFAULT  '0',`ip` VARCHAR(100) NOT NULL,`variable` VARCHAR(32) NOT NULL, `index` INT NOT NULL, `value` INT NOT NULL,`account_id` INT NOT NULL,`char_id` INT NOT NULL,`char_name` VARCHAR(30) NOT NULL) ENGINE=MyISAM");
   bindatcmd("UnHourlyBan",strnpcinfo(3)+"::OnUnHourlyBan",99,99);
   bindatcmd("HourlyBan",strnpcinfo(3)+"::OnHourlyBan",0,99);

end;

Hourly_Rewads:
   //put the Hourly Rewards here
   #HourlyShop += 1;
   //getitem 905,1; //    if you want to add items as reward you can add them here like that
   //getexp 10000,5000; //    if you wanna add exp as reward add them here like that
   //if(#Hourly_Rewads_Check == 5){getitem 905,1;} //    like this you can add reward for Xhr and this reward will be given for that X in this example 5 mean that the player did pass 5hr
   //if(#Hourly_Rewads_Check >= 5){getitem 905,1;} //    like this you can add reward for Xhr and this reward will be given for that X in this example 5 mean that the player did pass 5hr or more
return;
}
//prontera,144,126,6    pointshop    Hourly Point Shop    667,#HourlyShop,13534:5,13810:5,12913:5,12914:5,13718:5,12909:5,12922:5
//<ITEM_ID>:<PRICE>,<ITEM_ID>:<PRICE>,<ITEM_ID>:<PRICE>,<ITEM_ID>:<PRICE> 

-	pointshop	Hourly Point Shop	667,#HourlyShop,13534:5,13810:5,12913:5,12914:5,13718:5,12909:5,12922:5

prontera,144,126,6	script	Hourly Point Shop#NPC	667,{
callshop "Hourly Point Shop",0;
end;

OnInit:
delwaitingroom;
waitingroom "--- Hourly Point Shop ---",0;
end;

}

 

Thank you, Sir Katazui! ^_^

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...