Jump to content

sikiro

Members
  • Posts

    171
  • Joined

  • Last visited

  • Days Won

    1

Posts posted by sikiro

  1. @zell so i have been working on concepts and getting things to work the way i want them to so progress is good is there any posibility for you to show me an example of  the sql bit of pulling info for a player house and as well as when they buy one inputing the information. so far i can teleport to the house and add remove npcs but it is temporary sadly.

  2. I do not take credit for this nor did i make this script at all i just modified it.

     

    THIS NPC REQUIRES FLUX CONTROL PANEL OR IT WILL NOT WORK.

    i myself was asking for someone to modify an Npc to be able to accept cash points in game  but i also decided it would be ideal to give you both options so

    it was edited to not only give you the option to redeem cash points but also maintain its core function of allowing a player to still redeem items purchased on the web-store.

     

    if you have any questions please feel Free to reply to this topic.

    Databases required.

    cp_redeemlog.sql

    CREATE TABLE IF NOT EXISTS `cp_redeemlog` (
      `id` int(11) unsigned NOT NULL auto_increment,
      `nameid` int(11) unsigned NOT NULL default '0',
      `quantity` int(11) unsigned NOT NULL default '0',
      `cost` int(11) unsigned NOT NULL,
      `account_id` int(11) unsigned NOT NULL,
      `char_id` int(11) unsigned default NULL,
      `redeemed` tinyint(1) unsigned NOT NULL,
      `redemption_date` datetime default NULL,
      `purchase_date` datetime NOT NULL,
      PRIMARY KEY  (`id`)
    ) ENGINE=MyISAM COMMENT='Log of redeemed donation items.';

    cp_credits.sql

    CREATE TABLE IF NOT EXISTS `cp_credits` (
      `account_id` int(11) unsigned NOT NULL,
      `balance` int(11) unsigned NOT NULL DEFAULT '0',
      `last_donation_date` datetime DEFAULT NULL,
      `last_donation_amount` float unsigned DEFAULT NULL,
      PRIMARY KEY (`account_id`),
      KEY `account_id` (`account_id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='Donation credits balance for a given account.';
    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,1;
    	
    	// 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.                         -
    // ----------------------------------------------------
    
    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;
    }

    donation.txt

     

    • Upvote 1
  3. i am trying to make this Npc take out cp credits and add them as cash points i am successful at doing it to some extend but when i go to the npc again to just add on to the points it will reset the value.

    Example:

    i order 1k points reedeem.

    then later i order 1k more and redeem.

    total points still 1k. i might be missing something supper simple.

    prontera,139,182,4	script	Donor Rewards Redeemer	987,{
    	// ----------------- NPC Settings -----------------
    	// --- SET THESE BEFORE LOADING THE SCRIPT! ---
    	
    	// Server Name
    	set .serverName$,"Stock-RO";
    	
    	// 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";
    	
    	// 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:Who might you be?:I am merely perusing the area");
    	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,.@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 `balance` FROM `" + escape_sql(.redeemTable$) + "` WHERE `account_id` = " + getcharid(3) + " LIMIT 0,30", .@credits);
    			mes "You currently have " + .@credits + " donation credits.";
    		break;
    		case 3:
    			mes "I am here to allow for the redemption of donation credits for " + .serverName$ + ".";
    			mes "Donations may be made to the server via the control panel.";
    		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;
    }

    Problem Solved on by tinkering. 

     

  4. hey everyone atempting to import npcs to flux seems to be broken has anyone had any luck getting this to work?

    flux error logs show nothing when atempting to upload the npc folder in zip format it will upload successfully and my ftp does show the following but the panel will not populate it.

    ftp.png.51793ca7874cfb6e60d9ecdda84cf465.png

     

     

    flux.thumb.png.09f633f6ee20a9af9138a7a8b2a5b772.png

×
×
  • Create New...