Jump to content
  • 0

Some problems with my v4p NPC


Question

Posted (edited)

Hello,

I'm having an issue with my v4p NPC.
Once I try to buy the item, it says: You have 0 null [0/500] while I require 500 null.

Would you please check the script and correct it, eventually? I'd appreciate very much!
Thanks in advance (:
 

alexandria,158,143,6    script    Vote 4 Points    506,{
set @i,0;
mes "[Vote for Points]";
mes "Which item do you wish to obtain?";
mes "Select only one.";
callshop "v4p",1;
npcshopattach "v4p";
end;
OnBuyItem:
if(.BuildQuest) {
  for(set .e,0; !compare(getarg(.e+1),"#VOTEPOINTS"); set .e,.e+2) {}
  npcshopadditem "v4p",getarg(.e+2),getarg(.e)*compare(getarg(.e+1),"S#VOTEPOINTS");
  setarray .Shop[.i],getarg(.e+2);
  set .i,.i+1;
  goto Quest_Setup;
}
if(.Shop[@i]!=@bought_nameid) for(set @i,1; 1; set @i,@i+1) if(.Shop[@i]==@bought_nameid) { set .i,@i; callsub Quest_Setup; }
for(set @i,1; !@e; set @i,@i+1) if(.Shop[@i]==@bought_nameid) { set @e,1; set .i,@i; callsub Quest_Setup; }
mes "[Vote for Points]";
mes "I require the following:";
for(set @i,0; !compare(getarg(@i+1),"#VOTEPOINTS"); set @i,@i+2) mes "^FF0000" + ((countitem(getarg(@i))>=getarg(@i+1))? "^00FF00":"") + "" + getarg(@i+1) + " " + getitemname(getarg(@i)) + " [" + countitem(getarg(@i)) + "/" + getarg(@i+1) + "]";
if(getarg(@i)) mes "^FF0000" + ((#VOTEPOINTS>=getarg(@i))? "^00FF00":"") + "" + getarg(@i) + " Vote Points";
mes "^000000In exchange, I will give you:^0000FF";
for(set @i,@i+2; getarg(@i+1,0); set @i,@i+2) mes getarg(@i+1) + " " + getitemname(getarg(@i));
switch(select("Exchange:" + (((((getiteminfo(@bought_nameid,5) & 1) || (getiteminfo(@bought_nameid,5) & 256) || (getiteminfo(@bought_nameid,5) & 512)) && @equip==0))? "Preview Item":"") + ":No thanks")) {
  case 1:
   for(set @i,0; !compare(getarg(@i+1),"#VOTEPOINTS"); set @i,@i+2) if(countitem(getarg(@i)) < getarg(@i+1)) {
next;
mes "You have " + countitem(getarg(@i)) + " " + getitemname(getarg(@i)) + ", while I require " + getarg(@i+1) + ".";
mes "Please obtain ^FF0000" + (getarg(@i+1)-countitem(getarg(@i))) + " more " + getitemname(getarg(@i)) + "^000000.";
close;
   }
   if(#VOTEPOINTS < getarg(@i)) {
next;
mes "You do not have enough Vote Points.";
mes "Please obtain ^FF0000" + (getarg(@i)-#VOTEPOINTS) + " more Vote Points^000000.";
close;
   }
   for(set @i,0; !compare(getarg(@i+1),"#VOTEPOINTS"); set @i,@i+2) delitem getarg(@i),getarg(@i+1);
   set #VOTEPOINTS,#VOTEPOINTS-getarg(@i);
   for(set @i,@i+2; getarg(@i+1,0); set @i,@i+2) getitem getarg(@i),getarg(@i+1);
   if (compare(getarg(@i,0),"announce")) announce strcharinfo(0) + " has just obtained " + getitemname(@bought_nameid) + "!",bc_all;
   close;
  case 2:
   set @bottomview, getlook(3);
   set @topview, getlook(4);
   set @midview, getlook(5);
   addtimer 1000, strnpcinfo(3)+"::On_Leave";
   set @equip,getiteminfo(@bought_nameid, 5);
   set @view, getiteminfo(@bought_nameid, 11);
   if(@equip != -1 && @view > 0) {
if(@equip & 1) atcommand "@changelook 3 " + @view;
if(@equip & 256) atcommand "@changelook 1 " + @view;
if(@equip & 512) atcommand "@changelook 2 " + @view;
   }
   next;
   goto OnBuyItem;
  case 3:
   close;
}
On_Leave:
atcommand "@changelook 1 " + @topview;
atcommand "@changelook 2 " + @midview;
atcommand "@changelook 3 " + @bottomview;
set @equip,0;
set @view,0;
set @topview,0;
set @midview,0;
set @bottomview,0;
end;
OnInit:
npcshopitem "v4p",0,0;
set .BuildQuest,1;
set .i,1;
Quest_Setup:
switch(.i) {
  default: set .BuildQuest,0; set .e,0; set .i,0; end;
case 1: callsub OnBuyItem,21149,500,500,"S#VOTEPOINTS",2383,1;
}
}

// Dummy shop data -- copy as needed.
//============================================================
-    shop    v4p    -1,501:50
Edited by Capuche
To Code

3 answers to this question

Recommended Posts

Posted

1/ Add +"" in compare function to avoid warning

compare( ""+ getarg

 

2/

case 1: callsub OnBuyItem,501,500,500,"S#VOTEPOINTS",2383,1;

S#VOTEPOINTS should be #VOTEPOINTS

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