Jump to content
  • 0

NPC dynamic [Warning] & [Debug]


Yasunari Ishibashi

Question


  • Group:  Members
  • Topic Count:  49
  • Topics Per Day:  0.01
  • Content Count:  157
  • Reputation:   2
  • Joined:  01/06/12
  • Last Seen:  

-    shop    Coin_shop    -1,501:50
prontera,164,169,4    script    Coin Converter    436,{
   set @i,0;
   mes "[ Coin Converter ]";
   mes "Pilih yang kamu inginkan?";
   mes "Pilih salah satu.";
   callshop "Coin_shop",1;
   npcshopattach "Coin_shop";
   end;

OnBuyItem:
   if(.BuildQuest) {
       for(set .e,0; !compare(getarg(.e+1),"Zeny"); set .e,.e+2) {}
       npcshopadditem "Coin_shop",getarg(.e+2),getarg(.e)*compare(getarg(.e+1),"SZeny");
       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 "[ Coin Converter ]";
   mes "Saya memerlukan berikut ini :";
   for(set @i,0; !compare(getarg(@i+1),"Zeny"); 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" + ((Zeny>=getarg(@i))? "^00FF00":"") + "" + getarg(@i) + " Zeny";
   mes "^000000Sebagai gantinya, saya akan memberikan :^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),"Zeny"); set @i,@i+2) if(countitem(getarg(@i)) < getarg(@i+1)) {
               next;
               mes "Anda harus memiliki " + countitem(getarg(@i)) + " " + getitemname(getarg(@i)) + ", while I require " + getarg(@i+1) + ".";
               mes "Silahkan mendapatkan ^FF0000" + (getarg(@i+1)-countitem(getarg(@i))) + " more " + getitemname(getarg(@i)) + "^000000.";
               close;
           }
           if(Zeny < getarg(@i)) {
               next;
               mes "Kamu tidak memiliki cukup zeny.";
               mes "Silahkan mendapatkan ^FF0000" + (getarg(@i)-Zeny) + " more Zeny^000000.";
               close;
           }
           for(set @i,0; !compare(getarg(@i+1),"Zeny"); set @i,@i+2) delitem getarg(@i),getarg(@i+1);
           set Zeny,Zeny-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 "Coin_shop",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,675,5,1,"SZeny",674,1,0;
       case 2: callsub OnBuyItem,674,10,1,"SZeny",673,1,0;
       case 3: callsub OnBuyItem,673,10,1,"SZeny",671,1,0;
       case 4: callsub OnBuyItem,671,10,1,"SZeny",670,1,0;        
   }
}

if anyone can help justify my script problem? thanks

post-1298-0-28582200-1335628754_thumb.png

Link to comment
Share on other sites

6 answers to this question

Recommended Posts


  • Group:  Members
  • Topic Count:  7
  • Topics Per Day:  0.00
  • Content Count:  130
  • Reputation:   43
  • Joined:  12/11/11
  • Last Seen:  

The compare functions wants the variable type "string". It receives an integer.

You can solve this by type-casting the variables from integer to string.

Look at the green part. By adding an empty string, you make sure that it is a string:

compare(""+var, ...)

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  49
  • Topics Per Day:  0.01
  • Content Count:  157
  • Reputation:   2
  • Joined:  01/06/12
  • Last Seen:  

where the script went wrong?

Please clue because I do not know which one should be changed ...

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  1
  • Topics Per Day:  0.00
  • Content Count:  4
  • Reputation:   0
  • Joined:  04/01/12
  • Last Seen:  

Replace all

compare(getarg(.e+1),"Zeny");

to

compare(""+getarg(.e+1),"Zeny");

Link to comment
Share on other sites


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

error was worse, anyone can help?

hmm ? what else do you need here ? vinzhunter has provided the solution....

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  2
  • Topics Per Day:  0.00
  • Content Count:  10
  • Reputation:   0
  • Joined:  11/22/11
  • Last Seen:  

warning and debug, same at all :)

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