Jump to content
  • 0

How to make this v4p script work with items?


HristDead

Question


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

Nevermind, find another script that works just fine!

---------------------------------------------------------------

Hi all.

I'm using the script that comes along with the flux vote for point module by Jaypee.

I really like how he's done the easy way to redeem items like this:

add_item(ItemID,ItemQuantity,RequiredPoints,"Category");

This is easy because you don't have to make a option for every single item in the menu screen.

Now my question is, I was wondering if someone could make me help this script to work with an item (ID #7227) instead of vote points.

This means i don't need SQL queries or anything since i wont be using it for voting purpose, i just want it to read item id 7227 and let players pick items if they have the required amount of those, I'm merely using this script as a example.

Help very much appreciated!

Here is the complete script;

- script - -1,{

//Function Prototypes
function garbagecol;//Garbage collection for the Character variables
garbagecol();
function add_item; //Syntanx: add_item(ITEMID,QUANTITY,POINTS,CATEGORY);
function makeCategory;//This will return a list of the categories
function getItemsByCat;//This will return the list of items associated to the particular category
function getItemDetails;//This will return the details of the item
function getPoints;//This will return the points of the player stored in the database
function updatePoints;//This will updates the points of the player stored in the database


//NPC Name
set .npcname$,"[Vote Point Redeemer]";

//Initialization of the Rewards
add_item(20012,1,50,"Money Cards");
add_item(20007,1,250,"Money Cards");
add_item(20008,1,500,"Money Cards");
add_item(2345,1,50,"Equipment");
add_item(2347,1,50,"Equipment");
add_item(2349,1,50,"Equipment");
add_item(2351,1,50,"Equipment");

//Script Start
mes .npcname$;
mes "What do you want to do?";
switch(select("Exchange my Vote Points.:Check my balance."))
{
case 1:
next;
mes .npcname$;
mes "To proceed, please select a category:";
set .@selected,select(makeCategory())-1;
next;
mes .npcname$;
mes "Now choose the item you want:";
set .@selected,select(getItemsByCat(@listCat$[.@selected]))-1;

next;
mes .npcname$;
set .@ritemid,getItemDetails(@itemKeys[.@selected],"itemid");
set .@rquantity,getItemDetails(@itemKeys[.@selected],"quantity");
set .@rpoints,getItemDetails(@itemKeys[.@selected],"points");
mes "Item ID:"+.@ritemid;
mes "Item Name: "+getitemname(.@ritemid);
mes "Item Quantity: "+.@rquantity+"";
mes "Required Points: "+.@rpoints+" Vote Points";
mes "\n";
mes "Do you want to this item?";
if(select("Yes:No")==1)
{
set .@points,getPoints(getcharid(3));
if(.@points>=.@rpoints)
{
next;
mes .npcname$;
updatePoints(getcharid(3),.@rpoints);
getitem .@ritemid,.@rquantity;
mes "Here you go! Thank you for voting. Don't forget to vote again.";
}
else
mes "Sorry, you do not have enough points for this item.";
}
else
{
next;
mes .npcname$;
mes "Okay bye!";
}
garbagecol();
close;
case 2:
next;
mes .npcname$;
set .@points,getPoints(getcharid(3));
mes "You currently have "+.@points+" Vote Points.";
garbagecol();
close;
}
end;

//Functions Bodies
function updatePoints {
set .@account_id,getarg(0);
set .@usedPoints,getarg(1);
query_sql("UPDATE `cp_v4p_voters` SET points=(points-"+.@usedPoints+") WHERE account_id='"+.@account_id+"'");
return;
}

function getPoints {
set .@account_id,getarg(0);
query_sql("SELECT `points` FROM `cp_v4p_voters` WHERE account_id="+.@account_id+" LIMIT 1",.@points);
if(getarraysize(.@points)==0)
return 0;
return .@points[0];
}

function getItemDetails {
set .@key,getarg(0); //Key
set .@detail$,getarg(1); //What details to return such as ItemID, Points, Quantity, Category

if(strtolower(.@detail$) == strtolower("ItemID"))
return @itemID[.@key];
else if(strtolower(.@detail$) == strtolower("Quantity"))
return @itemQ[.@key];
else if(strtolower(.@detail$) == strtolower("Points"))
return @points[.@key];
else if(strtolower(.@detail$) == strtolower("Category"))
return @category$[.@key];
}

function getItemsByCat {
set .@selectedCat$,getarg(0);
set .@make_string$,"";
set .@x,0;
for(set .@i,0; .@i<getarraysize(@category$); set .@i,.@i+1)
{
if(strtolower(.@selectedCat$) == strtolower(@category$[.@i]))
{
setarray @itemKeys[.@x],.@i;
if(.@make_string$ == "")
set .@make_string$,getitemname(@itemID[.@i]);
else
set .@make_string$,.@make_string$+":"+getitemname(@itemID[.@i]);

set .@x,.@x+1;
}
}
return .@make_string$;
}


function makeCategory {
set .@make_string$,"";
for(set .@i,0; .@i<getarraysize(@category$); set .@i,.@i+1)
{
if(.@make_string$ == "")
{
setarray @listCat$[getarraysize(@listCat$)],@category$[.@i];
set .@make_string$,@category$[.@i];
}
else
{
if(compare(.@make_string$,@category$[.@i])==0)
{
setarray @listCat$[getarraysize(@listCat$)],@category$[.@i];
set .@make_string$,.@make_string$+":"+@category$[.@i];
}
}
}
return .@make_string$;
}

function add_item
{
set .@itemID,getarg(0,-1); //IteID
set .@itemQ,getarg(1,-1); //Item Quantity
set .@points,getarg(2,-1);
set .@cat$,getarg(3,"Uncategorized"); //Category


if(.@itemID == -1)
{
debugmes "Invalid Item ID. Script not completely loaded.";
end;
}
else if(.@itemQ == -1)
{
debugmes "Invalid Item Quantity. Script not completely loaded.";
end;
}
else if(.@points == -1)
{
debugmes "Points assignment error. Script not completely loaded.";
end;
}
set .@key,getarraysize(@itemID);
setarray @itemID[.@key],.@itemID;
setarray @itemQ[.@key],.@itemQ;
setarray @points[.@key],.@points;
setarray @category$[.@key],.@cat$;
return 1; //return 1 as success
}

function garbagecol{
deletearray @itemID[0],128;
deletearray @itemQ[0],128;
deletearray @points[0],128;
deletearray @category$[0],128;
deletearray @listCat$[0],128;
deletearray @itemKeys[0],128;
return;
}
}

Edited by HristDead
Link to comment
Share on other sites

1 answer to this question

Recommended Posts


  • Group:  Members
  • Topic Count:  30
  • Topics Per Day:  0.01
  • Content Count:  782
  • Reputation:   82
  • Joined:  01/01/12
  • Last Seen:  

Just use the dynamic shop included in SVN/NPC/custom

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