Jump to content
  • 0

Card remover go by cashpoints?


HristDead

Question


  • Group:  Members
  • Topic Count:  66
  • Topics Per Day:  0.02
  • Content Count:  167
  • Reputation:   2
  • Joined:  08/01/12
  • Last Seen:  

Hi.

I'm not sure how to do this, I want the rathena default cardremover to take 3 cashpoints instead of zeny. I still want the zeny per card costs to stay though, but change the base costs with cashpoints (set .zenycost,500000; // Set base cost in zeny of the card remover services)

Here is the script


//===== rAthena Script =======================================
//= Card Removal NPC
//===== By: ==================================================
//= TyrNemesis^
//===== Current Version: =====================================
//= 1.2
//===== Compatible With: =====================================
//= rAthena SVN
//===== Description: =========================================
//= Removes cards from equipped items.
//===== Additional Comments: =================================
//= 1.0 First version. [TyrNemesis^]
//= 1.2 Optimized and fixed getequipname menu. [Kisuka]
//============================================================

harmonia,173,71,2 script Card Remover#eAcustom 532,{
set .zenycost,500000; // Set base cost in zeny of the card remover services
set .percardcost,250000; // set cost per card of the card remover services
set .faildestroy,0; // Should the card remover have a chance of failure that destroys items? 1 = Yes, 0 = No.
mes "[Card Remover]";
mes "Good day, young one. I have the power to remove cards that you have compounded onto your equipment. Does this idea please you?";
next;
switch(select("Yes, it does.:What do you charge?:No thanks.")) {
case 1:
mes "[Card Remover]";
mes "Very well. Which item shall I examine for you?";
next;

setarray .@position$[1], "Head","Body","Left hand","Right hand","Robe","Shoes","Accessory 1","Accessory 2","Head 2","Head 3";
set .@menu$,"";
for( set .@i,1; .@i <= 10; set .@i,.@i+1 )
{
if( getequipisequiped(.@i) )
set .@menu$, .@menu$ + .@position$[.@i] + "-" + "[" + getequipname(.@i) + "]";

set .@menu$, .@menu$ + ":";
}
set .@part,select(.@menu$);
if(!getequipisequiped(.@part)) {
mes "[Card Remover]";
mes "You're not wearing anything there that I can remove cards from.";
close;
}
if(getequipcardcnt(.@part) == 0) {
mes "[Card Remover]";
mes "There are no cards compounded on this item. I can do nothing with it, sorry.";
close;
}
set .@cardcount,getequipcardcnt(.@part);

if (!checkweight(1202,(.@cardcount+1))) { 
mes "^3355FFJust a minute!";
mes "I can't offer any of my";
mes "services to you because";
mes "you're carrying too much";
mes "stuff. Put your extra items in";
mes "Kafra Storage and come again~";
close;
}
mes "[Card Remover]";
mes "This item has " + .@cardcount + "cards compounded on it. To perform my magic, I will need " + (.zenycost+(.@cardcount * .percardcost)) + " zeny, a ^0000FFStar Crumb^000000, and a ^0000FFYellow Gemstone^000000.";
next;
if(select("Very well. Do it.:Nevermind.") == 2) {
mes "[Card Remover]";
mes "Very well. Return at once if you seek my services.";
close;
}
if((zeny < (.zenycost+(.@cardcount * .percardcost))) || (countitem(1000) < 1) || (countitem(715) < 1)) {
mes "[Card Remover]";
mes "You do not have all the items I require to work my magic, child. Come again when you do.";
close;
}
mes "[Card Remover]";
mes "Before I begin, I must warn you--I may fail. If I do, I may destroy the cards, the item, or both. I do not give refunds. That being said, which is more important to you: The cards, or the item?";
next;
switch(select("I changed my mind about this.:The item.:The cards.")) {
case 1:
mes "[Card Remover]";
mes "Very well. Return at once if you seek my services.";
close;
case 2:
set .@failtype,1;
break;
case 3:
set .@failtype,2;
}
mes "[Card Remover]";
mes "Very well. I shall begin.";
set zeny,zeny - (.zenycost+(.@cardcount * .percardcost));

// Replace the constants in the next 3 lines with failure chance values defined in refine_db.txt
// First value = Total failure chance (item and cards destroyed)
// Second value = Partial failure chance (one or the other is destroyed, player decides which one is safe)
// Third value = Harmless failure chance (all that's lost is your investment)

set .@failchance,rand(100);
if (.faildestroy==1) {
if(.@failchance < 2) {
next;
failedremovecards .@part,0;
mes "[Card Remover]";
mes "The process was a total failure. I am afraid the item and the cards were destroyed.";
close;
}

if(.@failchance < 8) {
if (.@failtype == 1) {
next;
failedremovecards .@part,1;
mes "[Card Remover]";
mes "While I have managed to remove the cards from the item, they were destroyed in the process. The item, however, is okay.";
close;
}

if (.@failtype == 2) {
next;
failedremovecards .@part,2;
mes "[Card Remover]";
mes "Most unfortunate. I succeeded at removing the cards, but the item itself was destroyed in the process.";
close;
}
}
}

if(.@failchance < 10) {
next;
failedremovecards .@part,3;
mes "[Card Remover]";
mes "I have failed to remove the cards. Luckily, however, both the item and the cards are still okay.";
close;
}
next;
successremovecards .@part;
mes "[Card Remover]";
mes "The process was a success. Here are your cards and your item. Farewell.";
close;
case 2:
mes "[Card Remover]";
mes "I charge a flat fee of "+.zenycost+" zeny, plus "+.percardcost+" zeny for each card I remove from the item.";
close;
case 3:
mes "[Card Remover]";
mes "Very well. Return at once if you seek my services.";
close;
}
}

Link to comment
Share on other sites

3 answers to this question

Recommended Posts


  • Group:  Forum Moderator
  • Topic Count:  93
  • Topics Per Day:  0.02
  • Content Count:  10015
  • Reputation:   2348
  • Joined:  10/28/11
  • Last Seen:  

change all

Zeny

to

#CASHPOINTS

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  66
  • Topics Per Day:  0.02
  • Content Count:  167
  • Reputation:   2
  • Joined:  08/01/12
  • Last Seen:  

I tried this. Emistry NPC not clickable. did i do something wrong?


//===== rAthena Script =======================================
//= Card Removal NPC
//===== By: ==================================================
//= TyrNemesis^
//===== Current Version: =====================================
//= 1.2
//===== Compatible With: =====================================
//= rAthena SVN
//===== Description: =========================================
//= Removes cards from equipped items.
//===== Additional Comments: =================================
//= 1.0 First version. [TyrNemesis^]
//= 1.2 Optimized and fixed getequipname menu. [Kisuka]
//============================================================

harmonia,173,71,2 script Card Remover#eAcustom 532,{
set .#CASHPOINTS,3; // Set base cost in #CASHPOINTS of the card remover services
set .percardcost,500000; // set cost per card of the card remover services
set .faildestroy,0; // Should the card remover have a chance of failure that destroys items? 1 = Yes, 0 = No.
mes "[Card Remover]";
mes "Good day, young one. I have the power to remove cards that you have compounded onto your equipment. Does this idea please you?";
next;
switch(select("Yes, it does.:What do you charge?:No thanks.")) {
case 1:
mes "[Card Remover]";
mes "Very well. Which item shall I examine for you?";
next;

setarray .@position$[1], "Head","Body","Left hand","Right hand","Robe","Shoes","Accessory 1","Accessory 2","Head 2","Head 3";
set .@menu$,"";
for( set .@i,1; .@i <= 10; set .@i,.@i+1 )
{
if( getequipisequiped(.@i) )
set .@menu$, .@menu$ + .@position$[.@i] + "-" + "[" + getequipname(.@i) + "]";

set .@menu$, .@menu$ + ":";
}
set .@part,select(.@menu$);
if(!getequipisequiped(.@part)) {
mes "[Card Remover]";
mes "You're not wearing anything there that I can remove cards from.";
close;
}
if(getequipcardcnt(.@part) == 0) {
mes "[Card Remover]";
mes "There are no cards compounded on this item. I can do nothing with it, I'm afraid.";
close;
}
set .@cardcount,getequipcardcnt(.@part);

if (!checkweight(1202,(.@cardcount+1))) { 
mes "^3355FFJust a minute!";
mes "I can't offer any of my";
mes "services to you because";
mes "you're carrying too much";
mes "stuff. Put your extra items in";
mes "Kafra Storage and come again~";
close;
}
mes "[Card Remover]";
mes "This item has " + .@cardcount + "cards compounded on it. To perform my magic, I will need " + (.#CASHPOINTS+(.@cardcount * .percardcost)) + " ^0000FF3 Cash Points^000000 a ^0000FFStar Crumb^000000, and a ^0000FFYellow Gemstone^000000.";
next;
if(select("Very well. Do it.:Nevermind.") == 2) {
mes "[Card Remover]";
mes "Very well. Return at once if you seek my services.";
close;
}
if((#CASHPOINTS < (.#CASHPOINTS+(.@cardcount * .percardcost))) || (countitem(1000) < 1) || (countitem(715) < 1)) {
mes "[Card Remover]";
mes "You do not have all the items I require to work my magic, child. Come again when you do.";
close;
}
mes "[Card Remover]";
mes "Before I begin, I must warn you--I may fail. If I do, I may destroy the cards, the item, or both. I do not give refunds. That being said, which is more important to you: The cards, or the item?";
next;
switch(select("I changed my mind about this.:The item.:The cards.")) {
case 1:
mes "[Card Remover]";
mes "Very well. Return at once if you seek my services.";
close;
case 2:
set .@failtype,1;
break;
case 3:
set .@failtype,2;
}
mes "[Card Remover]";
mes "Very well. I shall begin.";
set #CASHPOINTS,#CASHPOINTS - (.#CASHPOINTS+(.@cardcount * .percardcost));

// Replace the constants in the next 3 lines with failure chance values defined in refine_db.txt
// First value = Total failure chance (item and cards destroyed)
// Second value = Partial failure chance (one or the other is destroyed, player decides which one is safe)
// Third value = Harmless failure chance (all that's lost is your investment)

set .@failchance,rand(100);
if (.faildestroy==1) {
if(.@failchance < 2) {
next;
failedremovecards .@part,0;
mes "[Card Remover]";
mes "The process was a total failure. I am afraid the item and the cards were destroyed.";
close;
}

if(.@failchance < 8) {
if (.@failtype == 1) {
next;
failedremovecards .@part,1;
mes "[Card Remover]";
mes "While I have managed to remove the cards from the item, they were destroyed in the process. The item, however, is okay.";
close;
}

if (.@failtype == 2) {
next;
failedremovecards .@part,2;
mes "[Card Remover]";
mes "Most unfortunate. I succeeded at removing the cards, but the item itself was destroyed in the process.";
close;
}
}
}

if(.@failchance < 10) {
next;
failedremovecards .@part,3;
mes "[Card Remover]";
mes "I have failed to remove the cards. Luckily, however, both the item and the cards are still okay.";
close;
}
next;
successremovecards .@part;
mes "[Card Remover]";
mes "The process was a success. Here are your cards and your item. Farewell.";
close;
case 2:
mes "[Card Remover]";
mes "I charge a flat fee of "+.#CASHPOINTS+" Cash Points, plus "+.percardcost+" Zeny for each card I remove from the item.";
close;
case 3:
mes "[Card Remover]";
mes "Very well. Return at once if you seek my services.";
close;
}
}

Link to comment
Share on other sites


  • Group:  Forum Moderator
  • Topic Count:  93
  • Topics Per Day:  0.02
  • Content Count:  10015
  • Reputation:   2348
  • Joined:  10/28/11
  • Last Seen:  

.#CASHPOINTS

there is no variable start with ".#"

beside..there should be an error....

show it next time...

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