Jump to content
  • 0

Question

8 answers to this question

Recommended Posts

Posted

if i use this 7146 after using pernament on character



// Settings :
//    -    Only required to edit the ShopSetting() Function
//            Notes : You may also add / remove Menu ( If any ) 
//    -    Shop Currency can be either ItemID or Variable Name, but must write within Quotation Marks ( 


"" )
//            Ex. of Variable.    ->    Zeny , #CASHPOINTS , #KAFRAPOINTS , CustomVariable , 


#CustomVariable
//    -    ERROR Message are used to show Invalid Settings in your NPC.




// Leave this alone...
-    shop    Emistry_Shop    -1,512:100




-    script    Shopper    757,{
function ShopSettings;
function ValidateCost;
function CurrencyInfo;
function ClearData;
function ValueConvert;
function ErrorNotice;


mes "Each Shop from the Menu may purchase using ^FF0000Different Currency^000000.";
mes "^00FF00____________________________^000000";
mes "So,Which shop you would like to look at it";
next;
// Menu Selection
select("TCG Shop","Event Ticket Shop","Donate Shop");


ClearData();
ShopSettings( @menu );
npcshopitem "Emistry_Shop",512,100;
npcshopdelitem "Emistry_Shop",512;
for(set .@i,0; .@i < getarraysize( @ItemLists ); set .@i,.@i+1)
    npcshopadditem "Emistry_Shop",@ItemLists[.@i],@ItemCost[.@i];
mes "Okay...wait awhile";
mes "^00FF00____________________________^000000";
CurrencyInfo( @Currency$ );
mes "^00FF00____________________________^000000";
callshop "Emistry_Shop",1;
npcshopattach "Emistry_Shop";
end;




function    ShopSettings    {
    switch( getarg(0) ){
        Case 1:
            // Currency [ Item ID / Variable Name ]
            set @Currency$,"7227";
            // Item ID Lists
            setarray @ItemLists[0],6153,7227,608;
            // Item Price
            setarray @ItemCost[0],100,1,30;
            break;
        Case 2:
            // Currency [ Item ID / Variable Name ]
            set @Currency$,"7711";
            // Item ID Lists
            setarray @ItemLists[0],2306,2302,2303,2304,2305,2301,13036,512;
            // Item Price
            setarray @ItemCost[0],2,2,3,4,5,6,50,50;
            break;
        Case 3:
            // Currency [ Item ID / Variable Name ]
            set @Currency$,"7179";
            // Item ID Lists
            setarray @ItemLists


[0],22000,22001,22002,22003,22004,22005,4357,4359,4361,4363,4365,4367,4441,4128,4399;
            // Item Price
            setarray @ItemCost[0],20,20,20,20,20,20,20,20,20,20,20,20,20,20,20;
            break;
        // Case 4,5,6.....etc...
        default:
            ErrorNotice( "Invalid Menu Selection for Menu "+@menu+"." );
            close;
    }
    
    
if( @Currency$ == "" )
    ErrorNotice( "Invalid Currency Setting in Menu "+@menu+" ." );
if( getarraysize( @ItemCost ) != getarraysize( @ItemLists ) || getarraysize( @ItemLists ) != getarraysize( 


@ItemCost ) )
    ErrorNotice( "Missing or Extra Value of Item or Cost Settings in Menu "+@menu+" ." );
return;
}


function    ErrorNotice    {
    mes "^FF0000ERROR^000000 - "+getarg(0);
    mes "^00FF00____________________________^000000";
    mes "Inform this Message to ^0000FFGame Staffs^000000 immediately !";
    close;
}


function    CurrencyInfo    {
    if( getitemname( atoi( getarg(0) ) ) != "null" ){
        mes "Item Currency : ^FF0000"+getitemname( atoi( getarg(0) ) )+"^000000";
        mes "Available Amount : ^0000FF"+ValueConvert( countitem( atoi( getarg(0) ) ) )+"^000000";
    }else if( getitemname( atoi( getarg(0) ) ) == "null" ){
        mes "Variable Currency : ^FF0000"+getarg(0)+"^000000";
        mes "Available Amount : ^0000FF"+ValueConvert( getd( getarg(0) ) )+"^000000";
    }
return;
}


function    ValidateCost    {
    if( getitemname( atoi( getarg(0) ) ) != "null" ){
        if( countitem( atoi( getarg(0) ) ) < getarg(1) ) return 1;
    }else{
        if( getd( getarg(0) ) < getarg(1) ) return 1;
    }
return 0;
}


function ClearData    {
    set @Currency$,"";
    set @TotalCost,0;
    deletearray @bought_nameid[0],getarraysize( @bought_nameid );
    deletearray @bought_quantity[0],getarraysize( @bought_quantity );
    deletearray @ItemLists[0],getarraysize( @ItemLists );
    deletearray @ItemCost[0],getarraysize( @ItemCost );
return;
}


function    ValueConvert    {
    set .@num, atoi(""+getarg(0));
    if ( .@num == 0 || .@num >= 2147483647 ) return getarg(0);
    set .@l, getstrlen(""+.@num);
    for ( set .@i,0; .@i < .@l; set .@i, .@i + 1 ) {
        set .@num$, .@num % pow(10,.@i+1) / pow(10,.@i) + .@num$;
            if ( (.@i+1) % 3 == 0 && .@i+1 != .@l ) set .@num$, ","+ .@num$;
    }
    return .@num$;
}


OnBuyItem:
    ShopSettings( @menu );
    for(set @i,0; @i < getarraysize( @bought_nameid ); set @i,@i+1)
        for(set @j,0; @j < getarraysize( @ItemLists ); set @j,@j+1)
            if( @ItemLists[@j] == @bought_nameid[@i] )
            set @TotalCost,@TotalCost + ( @ItemCost[@j] * @bought_quantity[@i] );
    mes "^FF0000       BILLING LIST^000000";
    mes "^00FF00____________________________^000000";
    for( set @i,0; @i < getarraysize( @bought_nameid ); set @i,@i+1 )
            mes "^FF0000"+@bought_quantity[@i]+" x ^0000FF"+getitemname( @bought_nameid[@i] 


)+"^000000";
    mes "^00FF00____________________________^000000";


    if( getitemname( atoi( @Currency$ ) ) != "null" )
        mes "Total Cost : ^0000FF"+ValueConvert( @TotalCost )+" x "+getitemname( atoi( @Currency$ ) 


)+"^000000";
    else if( getitemname( atoi( @Currency$ ) ) == "null" ){
        mes "Total Cost : ^0000FF"+ValueConvert( @TotalCost )+" "+@Currency$+"^000000";
    }
    
    mes "^00FF00____________________________^000000";
    if( ValidateCost( @Currency$,@TotalCost ) ){
        if( getitemname( atoi( @Currency$ ) ) != "null" )
            mes "[ ^FF0000X^000000 ] Insufficient ^0000FF"+getitemname( atoi( @Currency$ ) 


)+"^000000";
        else{
            mes "[ ^FF0000X^000000 ] Insufficient ^0000FF"+@Currency$+"^000000";
        }
    }else{
        if( select( "^0000FFPurchase^000000:Cancel" ) == 1 ){
            if( getitemname( atoi( @Currency$ ) ) != "null" )
                delitem atoi( @Currency$ ),@TotalCost;
            else{
                set getd( @Currency$ ),getd( @Currency$ ) - @TotalCost;
            }
            for(set @i,0; @i < getarraysize( @bought_nameid ); set @i,@i+1)
                getitem @bought_nameid[@i],@bought_quantity[@i];
            message strcharinfo(0),"Purchased "+getarraysize( @bought_nameid )+" Items.";
            mes "Thank you for shopping.";
        }
    }
ClearData();
close;


}
 

 

501,Red_Potion,Red Potion,0,50,,70,,,,,0xFFFFFFFF,7,2,,,,,,{ itemheal rand(45,65),0; doevent "npcname::shopper"; },{},{}

is not working master

Posted


- script Shopper 757,{

OnTalk: // <---- ADD THIS or another other label name you want.


501,Red_Potion,Red Potion,0,50,,70,,,,,0xFFFFFFFF,7,2,,,,,,{ itemheal rand(45,65),0; doevent "Shopper::OnTalk"; },{},{}

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.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...