Good day Rathena ! I need support here regarding @sikiro's Flux CP NPC Script .. This is use to redeam Donation Credits and convert into #CASHPOINTS ... Im having a little problem since I want to add restriction here ...
1. Lets say I have 500 Donation credits.. The NPC will ask HOW MUCH donation credits I want to convert into CASHPOINTS .. If I input 501 the NPC will not allow me to convert since it has bigger amount than my existing credit amount ... Im not that good in SQL ,... Please help
FULL SCRIPT:
Quote
prontera,139,182,4 script Donor Rewards Redeemer 987,{
// ----------------- NPC Settings -----------------
// --- SET THESE BEFORE LOADING THE SCRIPT! ---
// Server Name
set .serverName$,"rAthena";
// NPC Name to display during chat.
// Default: "[Donor Rewards Redeemer]"
set .npcName$,"[Donor Rewards Redeemer]";
// DO NOT CHANGE THIS!
// Default: "cp_redeemlog"
set .redeemTable$,"cp_credits";
set .itemTable$,"cp_redeemlog";
// Display Credits to FluxCP Creators?
// Help promote our product if its useful.
// 0 = Disable. 1 = Enable.
// Default: 1
set .showCredits,0;
// Max number of unique items to redeem at a time.
// DO NOT RAISE THIS VALUE ABOVE 128 WITHOUT
// MAKING THE NECESSARY SCRIPT ENGINE MODS
// FOR SCRIPT ARRAY SIZING! DANGEROUS!
// Default: 128
set .numRedemptionsSimul,128;
// --------------- End NPC Settings ---------------
// ----------------- Begin Script -----------------
mes .npcName$;
mes "Well hello there " + (Sex ? "good sir!" : "young madam!");
mes "How may I be of assistance to you on this fine day?";
next;
prompt("I wish to redeem My Credits:Collect My items :Check my balance.");
mes .npcName$;
switch(@menu) {
case 1:
query_sql("SELECT `balance` FROM `" + escape_sql(.redeemTable$) + "` WHERE `account_id` = " + getcharid(3) + " LIMIT 0,30", .@credits);
if (.@credits > 0){
mes "How many Donation Credits do you wish to redeem?";
next;
mes .npcName$;
input .@withdrawCredits,1,.@credits;
query_sql("UPDATE `" + escape_sql(.redeemTable$) + "` SET `balance` = `balance` - " + .@withdrawCredits + " WHERE `account_id` = " + getcharid(3) + "");
set #CASHPOINTS,#CASHPOINTS + .@withdrawCredits;
mes .@withdrawCredits + "x " ;
} else {
mes "My records indicate that there are no rewards awaiting to be redeemed.";
mes "My deepest apologies for the misunderstanding.";
}
break;
case 2:
query_sql "SELECT `id`, `nameid`, `quantity` FROM `" + escape_sql(.itemTable$) + "` WHERE `account_id` = " + getcharid(3) + " AND `redeemed` = 0 LIMIT " + .numRedemptionsSimul,.@id,.@nameid,.@quantity;
if (getarraysize(.@id) > 0) {
mes "Items Pending Redemption: " + getarraysize(.@id);
for (set .@i,0; .@i < getarraysize(.@id); set .@i,.@i+1)
if (checkweight(.@nameid[.@i],.@quantity[.@i]) == 0) {
mes "I'm terribly sorry, but you are carrying too much to accept " + (.@i ? "any more of " : " ") + "your rewards at this time.";
mes "Please come back with fewer items.";
} else {
query_sql "UPDATE `" + escape_sql(.itemTable$) + "` SET `char_id` = " + getcharid(0) + ", `redeemed` = 1, `redemption_date` = NOW() WHERE `id` = " + .@id[.@i];
getitem .@nameid[.@i],.@quantity[.@i];
mes .@quantity[.@i] + "x " + getitemname(.@nameid[.@i]);
}
if (.@i == getarraysize(.@id)) {
mes "Thank you for your patronage " + (Sex ? "fine sir." : "ma'am.");
mes "Please enjoy your stay on " + .serverName$ + "!";
}
if (.showCredits)
callfunc "F_FluxCredits";
} else {
mes "My records indicate that there are no rewards awaiting to be redeemed.";
mes "My deepest apologies for the misunderstanding.";
}
break;
case 3:
query_sql("SELECT `balance` FROM `" + escape_sql(.redeemTable$) + "` WHERE `account_id` = " + getcharid(3) + " LIMIT 0,30", .@credits);
mes "You currently have " + .@credits + " donation credits.";
break;
}
close;
// ------------------ End Script ------------------
}
// ------------ Credits to FluxCP Creators ------------
// - Please do not modify or delete this function or -
// - its contents. To disable the credits from being -
// - shown, set .showCredits to 0 in the NPC Settings -
// - at the top of this file. -
// ----------------------------------------------------
case 1:
query_sql("SELECT `balance` FROM `" + escape_sql(.redeemTable$) + "` WHERE `account_id` = " + getcharid(3) + " LIMIT 0,30", .@credits);
if (.@credits > 0){
mes "How many Donation Credits do you wish to redeem?";
next;
mes .npcName$;
input .@withdrawCredits,1,.@credits;
query_sql("UPDATE `" + escape_sql(.redeemTable$) + "` SET `balance` = `balance` - " + .@withdrawCredits + " WHERE `account_id` = " + getcharid(3) + "");
set #CASHPOINTS,#CASHPOINTS + .@withdrawCredits;
mes .@withdrawCredits + "x " ;
} else {
mes "My records indicate that there are no rewards awaiting to be redeemed.";
mes "My deepest apologies for the misunderstanding.";
}
break;
Question
Eross
Good day Rathena ! I need support here regarding @sikiro's Flux CP NPC Script .. This is use to redeam Donation Credits and convert into #CASHPOINTS ... Im having a little problem since I want to add restriction here ...
1. Lets say I have 500 Donation credits.. The NPC will ask HOW MUCH donation credits I want to convert into CASHPOINTS .. If I input 501 the NPC will not allow me to convert since it has bigger amount than my existing credit amount ... Im not that good in SQL ,... Please help
FULL SCRIPT:
The line that I need to modify:
THANKYOU !!!
Link to comment
Share on other sites
3 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.