Jump to content
  • 0

Donate Redeemer NPC


Eross

Question


  • Group:  Members
  • Topic Count:  155
  • Topics Per Day:  0.11
  • Content Count:  349
  • Reputation:   12
  • Joined:  04/05/20
  • Last Seen:  

I badly need help with this one guys ... Okay I modified Redeem NPC on flux files a little so I can convert the Credit Points into PODS ... The problem is , If the player/account is a newly created one and tried to exchange pods into credit, the pod will deleted but there will be no additional credits on database .. Can you check if ive done something wrong ?? thankyou !

Quote

prt_in,38,104,5    script    Donor Rewards Redeemer    987,{
    // ----------------- NPC Settings -----------------
    // --- SET THESE BEFORE LOADING THE SCRIPT! ---
    
    // Server Name
    set .serverName$,"DrizzleRO";
    
    // 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_redeemlog";
    set .creditTable$,"cp_credits";    
    
    
        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 items:DCP and POD Exchanger:Who might you be?:Check my remaining Donation Credits:I am merely perusing the area");
    mes .npcName$;
    switch(@menu) {
        case 1:
            query_sql "SELECT `id`, `nameid`, `quantity` FROM `" + escape_sql(.redeemTable$) + "` 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(.redeemTable$) + "` 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 2:
            prompt("DCP to Proof of Donation:Proof of Donation to DCP");
            switch(@menu) {    
        case 1:
            query_sql("SELECT `balance` FROM `" + escape_sql(.creditTable$) + "` 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;
            if (.@withdrawCredits < 1){
                mes "Input number greater than 0.";
                end;        
            }            
            if (.@credits < .@withdrawCredits){
                mes "Insufficient Exhange.";
                end;        
            }            
            query_sql("UPDATE `" + escape_sql(.creditTable$) + "` SET `balance` = `balance` - " + .@withdrawCredits + " WHERE `account_id` = " + getcharid(3) + "");
            getitem 7179,.@withdrawCredits;
            specialeffect2 10;
            mes .@withdrawCredits + "x Proof of Donation" ;
            } else {
                    mes "My records indicate that there are no DCP on your account.";
                    mes "My deepest apologies for the misunderstanding.";
            }
            break;
        case 2:
            query_sql("SELECT `balance` FROM `" + escape_sql(.creditTable$) + "` WHERE `account_id` = " + getcharid(3) + " LIMIT 0,30", .@credits);
            if (countitem(7179) > 0){
            mes "How many Donation Credits do you wish to redeem?";
            next;
            mes .npcName$;
            input .@withdrawCredits;
            if (.@withdrawCredits < 1){
                mes "Input number greater than 0.";
                end;        
            }            
            if (countitem(7179) < .@withdrawCredits){
                mes "Insufficient Exhange.";
                end;        
            }
            que .creditTable$) + "` SET `balance` = `balance` + " + .@withdrawCredits + " WHERE `account_id` = " + getcharid(3) + "");
            delitem 7179,.@withdrawCredits;
            specialeffect2 10;
            mes .@withdrawCredits + "x Drizzle Cash Points" ;
            
            } else {
                    mes "I don't think you have Proof of Donation in your inventory.";
                    mes "My deepest apologies for the misunderstanding.";
            }        
            break;        
            
        }
        break;    
        case 3:
            mes "I am here to allow for the redemption of rewards for donations to " + .serverName$ + ".";
            mes "Donations may be made to the server via the DrizzleRO Control Panel.";
        break;
        
        case 4:
            query_sql("SELECT `balance` FROM `" + escape_sql(.creditTable$) + "` WHERE `account_id` = " + getcharid(3) + " LIMIT 0,30", .@credits);
            mes "You currently have " + .@credits + " donation credits.";
        break;
        default:
            mes "Very well then.";
            mes "Good day to you.";
        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.                         -
// ----------------------------------------------------

function    script    F_FluxCredits    {
    mes "-----------------------------------";
    mes "Powered by Flux Control Panel.";
    mes "Copyright � 2008-2012 Matthew Harris and Nikunj Mehta.";
    mes "http://fluxcp.googlecode.com/";
    return;
}
 

 

 

Link to comment
Share on other sites

2 answers to this question

Recommended Posts

  • 0

  • Group:  Members
  • Topic Count:  162
  • Topics Per Day:  0.05
  • Content Count:  1546
  • Reputation:   192
  • Joined:  07/23/14
  • Last Seen:  

3 hours ago, Origami said:

que .creditTable$) + "` SET `balance` = `balance` + " + .@withdrawCredits + " WHERE `account_id` = " + getcharid(3) + "");

Maybe this line?

Link to comment
Share on other sites

  • 0

  • Group:  Members
  • Topic Count:  155
  • Topics Per Day:  0.11
  • Content Count:  349
  • Reputation:   12
  • Joined:  04/05/20
  • Last Seen:  

15 hours ago, Radian said:

Maybe this line?

Sorry my bad sir ... I was actually pasted it wrong lol ... I managed to fixed it earlier by addig INSERT lines ,Thankyou 

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