donkeyg Posted July 10, 2012 Posted July 10, 2012 players skull change to no name skull, item ID 7420 Quote
Euphy Posted July 10, 2012 Posted July 10, 2012 set .@i, countitem(7420); delitem 7420, .@i; getitem 7420, .@i; Is that what you want? Not really sure. Quote
donkeyg Posted August 11, 2012 Author Posted August 11, 2012 set .@i, countitem(7420); delitem 7420, .@i; getitem 7420, .@i; Is that what you want? Not really sure. how about if this is my script , where should i add? - shop quest_shop7 -1,501:50 xmas,153,116,5, script Skull Exchanger 68,{ set @i,0; mes "[skull NPC]"; mes "Which item do you wish to obtain?"; mes "Select only one."; callshop "quest_shop7",1; npcshopattach "quest_shop7"; end; OnBuyItem: if(.BuildQuest) { for(set .e,0; !compare(getarg(.e+1) + "","Zeny"); set .e,.e+2) {} npcshopadditem "quest_shop7",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 "[skull NPC]"; mes "I require the following:"; 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 "^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) + "","Zeny"); 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(Zeny < getarg(@i)) { next; mes "You do not have enough Zeny."; mes "Please obtain ^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 "quest_shop7",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,7420,800,0,"Zeny",2000,1; case 2: callsub OnBuyItem,7420,800,0,"Zeny",1228,1; case 3: callsub OnBuyItem,7420,500,0,"Zeny",12186,1; case 4: callsub OnBuyItem,7420,500,0,"Zeny",5151,1; case 5: callsub OnBuyItem,7420,500,0,"Zeny",5568,1; case 6: callsub OnBuyItem,7420,800,0,"Zeny",13414,1; case 7: callsub OnBuyItem,7420,800,0,"Zeny",13412,1; case 8: callsub OnBuyItem,7420,800,0,"Zeny",13413,1; // case 3: callsub OnBuyItem,4131,1,1022,300,17753,15,5000000,"Zeny",503,1; // case 4: callsub OnBuyItem,4290,5,7206,150,7263,150,17753,20,10000000,"Zeny",506,1; // case 5: callsub OnBuyItem,4168,1,2255,5,5128,1,2229,1,5127,1,17753,15,10000000,"Zeny",506,1; // case 6: callsub OnBuyItem,17753,25,25000000,"Zeny",2202,1; } } Quote
Emistry Posted August 11, 2012 Posted August 11, 2012 if you want the NPC change it upon clicked.. the the simplest way ever..... put it below the header of npc... Quote
donkeyg Posted August 12, 2012 Author Posted August 12, 2012 (edited) if you want the NPC change it upon clicked.. the the simplest way ever..... put it below the header of npc... - shop quest_shop7 -1,501:50 xmas,153,116,5, script Skull Exchanger 68,{ set .@i, countitem(7420); delitem 7420, .@i; getitem 7420, .@i; like this? Edited August 12, 2012 by donkeyg Quote
clydelion Posted August 12, 2012 Posted August 12, 2012 or via src.. pc.c if(battle_config.bone_drop==2 || (battle_config.bone_drop==1 && map[sd->bl.m].flag.pvp)) { struct item item_tmp; memset(&item_tmp,0,sizeof(item_tmp)); item_tmp.nameid=ITEMID_SKULL_; item_tmp.identify=1; item_tmp.card[0]=CARD0_CREATE; item_tmp.card[1]=0; item_tmp.card[2]=GetWord(sd->status.char_id,0); // CharId item_tmp.card[3]=GetWord(sd->status.char_id,1); map_addflooritem(&item_tmp,1,sd->bl.m,sd->bl.x,sd->bl.y,0,0,0,0); } this part item_tmp.card[0]=CARD0_CREATE; item_tmp.card[1]=0; item_tmp.card[2]=GetWord(sd->status.char_id,0); // CharId item_tmp.card[3]=GetWord(sd->status.char_id,1); make them all = 0 item_tmp.card[0]=0; item_tmp.card[1]=0; item_tmp.card[2]=0; item_tmp.card[3]=0; Quote
Question
donkeyg
players skull change to no name skull, item ID 7420
6 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.