chromus28 Posted September 20, 2013 Group: Members Topic Count: 91 Topics Per Day: 0.02 Content Count: 263 Reputation: 1 Joined: 04/25/13 Last Seen: December 20, 2014 Share Posted September 20, 2013 does anyone have a script npc that can upgrade the armor? example: i want to upgrade the Sniper Suit's into a 2 slotted suit.. player will just bring the requirement to get the upgraded item on the npc.. does anyone have it? Quote Link to comment Share on other sites More sharing options...
GmOcean Posted September 21, 2013 Group: Members Topic Count: 31 Topics Per Day: 0.01 Content Count: 666 Reputation: 93 Joined: 04/27/12 Last Seen: August 17, 2015 Share Posted September 21, 2013 prontera,150,180,4 script npc name 123,{ mes "I can turn a "+ getitemname(.before) +" into a "+ getitemname(.after) +""; mes "All I need is the following:"; for(set .@i,0; .@i<.items; set .@i,.@i+1) {mes "["+ .amt[.@i] +"]x "+ getitemname(.req[.@i]) +"";} if(switch(select("Turn in items:Cancel"))==2){close;} Case 1: for(set .@j,0; .@j<.items; set .@j,.@j+1) {if(countitem(.req[.@j]) < .amt[.@j]){mes "You don't have enough, "+ getitemname(.req[.@j]) +". You have ^FF0000"+ countitem(.req[.@j]) +"/"+ .amt[.@j] +""; close;}} for(set .@a,0; .@a<.items; set .@a,.@a+1) {delitem(.req[.@a],.@amt[.@a]);} getitem(.after,1); close; OnInit: set .before,25500; set .after,25508; setarray .req[0],501,502,503; //Replace with any items you want, can go upto 128 items. setarray .amt[0],1,1,1;//Replace with amount for it's respective item above. set .items,getarraysize(.req); end; } That should do it O.o assuming I have the items right lol. Quote Link to comment Share on other sites More sharing options...
GmOcean Posted September 21, 2013 Group: Members Topic Count: 31 Topics Per Day: 0.01 Content Count: 666 Reputation: 93 Joined: 04/27/12 Last Seen: August 17, 2015 Share Posted September 21, 2013 Well, before you can do that, you first need to create the 2slotted item and add it to your db. When you have done that, post back with your custom items IDs and you'll be able to get further assistance. Quote Link to comment Share on other sites More sharing options...
chromus28 Posted September 21, 2013 Group: Members Topic Count: 91 Topics Per Day: 0.02 Content Count: 263 Reputation: 1 Joined: 04/25/13 Last Seen: December 20, 2014 Author Share Posted September 21, 2013 Well, before you can do that, you first need to create the 2slotted item and add it to your db. When you have done that, post back with your custom items IDs and you'll be able to get further assistance. here is the id 25500 to 25508 Quote Link to comment Share on other sites More sharing options...
chromus28 Posted September 21, 2013 Group: Members Topic Count: 91 Topics Per Day: 0.02 Content Count: 263 Reputation: 1 Joined: 04/25/13 Last Seen: December 20, 2014 Author Share Posted September 21, 2013 oh thanks prontera,150,180,4 script npc name 123,{ mes "I can turn a "+ getitemname(.before) +" into a "+ getitemname(.after) +""; mes "All I need is the following:"; for(set .@i,0; .@i<.items; set .@i,.@i+1) {mes "["+ .amt[.@i] +"]x "+ getitemname(.req[.@i]) +"";} if(switch(select("Turn in items:Cancel"))==2){close;} Case 1: for(set .@j,0; .@j<.items; set .@j,.@j+1) {if(countitem(.req[.@j]) < .amt[.@j]){mes "You don't have enough, "+ getitemname(.req[.@j]) +". You have ^FF0000"+ countitem(.req[.@j]) +"/"+ .amt[.@j] +""; close;}} for(set .@a,0; .@a<.items; set .@a,.@a+1) {delitem(.req[.@a],.@amt[.@a]);} getitem(.after,1); close; OnInit: set .before,25500; set .after,25508; setarray .req[0],501,502,503; //Replace with any items you want, can go upto 128 items. setarray .amt[0],1,1,1;//Replace with amount for it's respective item above. set .items,getarraysize(.req); end; } That should do it O.o assuming I have the items right lol. Sir, only 1 item can be traded in this script? Quote Link to comment Share on other sites More sharing options...
GmOcean Posted September 21, 2013 Group: Members Topic Count: 31 Topics Per Day: 0.01 Content Count: 666 Reputation: 93 Joined: 04/27/12 Last Seen: August 17, 2015 Share Posted September 21, 2013 In that script yes. Did you need it to work for more than 1 item? Quote Link to comment Share on other sites More sharing options...
chromus28 Posted September 21, 2013 Group: Members Topic Count: 91 Topics Per Day: 0.02 Content Count: 263 Reputation: 1 Joined: 04/25/13 Last Seen: December 20, 2014 Author Share Posted September 21, 2013 In that script yes. Did you need it to work for more than 1 item? yes,, i need more than 10 items Quote Link to comment Share on other sites More sharing options...
GmOcean Posted September 21, 2013 Group: Members Topic Count: 31 Topics Per Day: 0.01 Content Count: 666 Reputation: 93 Joined: 04/27/12 Last Seen: August 17, 2015 Share Posted September 21, 2013 Okay, I think this should be it.. prontera,150,180,4 script npc name 123,{ mes "I can upgrade items into a more powerful version."; mes "Interested?"; if(select("Yes!:Not in the slightest")==2){close;} next; mes "What Item do you want to make?"; set .@a,1; while(.@a != .total) {set .@menu$,""+ getitemname( getd(".item"+.@a+"[0]") ) +"";} select(.@menu$); next; mes "All I need is the following:"; set .@i,2; set .@menu,@menu; mes "[1]x "+ getitemname(getd(".item"+.@menu+"[0]")) +""; while(getd(".item"+.@menu+"["+.@i+"]")) {mes "["+ getd(".item"+.@menu+"["+(.@i+1)+"]") +"]x "+ getitemname( getd(".item"+.@menu+"["+.@i+"]") ) +""; set .@i,.@i+2;} if(select("Turn in items:Cancel")==2){close;} set .@i,2; if(!countitem( getd(".item"+.@menu+"[0]") ){mes "You need to have 1, "+ getitemname(getd(".item"+.@menu+"[0]")) +""; close;} while(getd(".item"+.@menu+"["+.@i+"]")) {if(countitem(getd(".item"+.@menu+"["+.@i+"]")) < getd(".item"+.@menu+"["+(.@i+1)+"]")) {mes "You don't have enough, "+ getitemname(getd(".item"+.@menu+"["+.@i+"]")) +". You have ^FF0000"+ countitem(getd(".item"+.@menu+"["+.@i+"]")) +"/"+ getd(".item"+.@menu+"["+(.@i+1)+"]") +""; close;}} set .@i,2; while(getd(".item"+.@menu+"["+.@i+"]")) {delitem( getd(".item"+.@menu+"["+.@i+"]"), getd(".item"+.@menu+"["+(.@i+1)+"]") );} delitem(getd(".item"+.@menu+"[0]"),1); getitem(getd(".item"+.@menu+"[1]"),1); close; OnInit: //[0] = Old Item | [1] = New Item | [2] = ItemReq1 | [3] = ItemAmt1 | [4] = ItemReq2 | etc... setarray .item1[0],25500,25508,501,1,502,1,503,1; setarray .item2[0],olditem,newitem,req1,amt1,req2,amt2,etc,...; set .total,2; //Set to number of arrays made. end; } I'm going to go to sleep now. So if there are any errors, than maybe someone else will be able to fix them for you in the mean time. At any rate, this script should allow you to have as many items as you like, however, your limited to 64 Requirements per item. Ex: To make a Orange Potion, I can only set 64 ' different ' required items each with their own amount. Should be more than enough for something like this lol. Quote Link to comment Share on other sites More sharing options...
chromus28 Posted September 21, 2013 Group: Members Topic Count: 91 Topics Per Day: 0.02 Content Count: 263 Reputation: 1 Joined: 04/25/13 Last Seen: December 20, 2014 Author Share Posted September 21, 2013 (edited) ... ok i will check later on going to sleep xD ... bro here is now the error.. Edited September 21, 2013 by Capuche Remove long quote to make the post more readable Quote Link to comment Share on other sites More sharing options...
Capuche Posted September 22, 2013 Group: Developer Topic Count: 10 Topics Per Day: 0.00 Content Count: 2407 Reputation: 616 Joined: 07/05/12 Last Seen: March 20 Share Posted September 22, 2013 Line 20 miss a bracket -> if(!countitem( getd(".item"+.@menu+"[0]") ) ) {mes "You need to have 1, "+ getitemname(getd(".item"+.@menu+"[0]")) +""; close;} Quote Link to comment Share on other sites More sharing options...
chromus28 Posted September 22, 2013 Group: Members Topic Count: 91 Topics Per Day: 0.02 Content Count: 263 Reputation: 1 Joined: 04/25/13 Last Seen: December 20, 2014 Author Share Posted September 22, 2013 uhm why i can't click the npc?? i mean nothing happen when im clicking the npc Line 20 miss a bracket -> if(!countitem( getd(".item"+.@menu+"[0]") ) ) {mes "You need to have 1, "+ getitemname(getd(".item"+.@menu+"[0]")) +""; close;} no error now but nothing happen when clicking the npc aww error [Error]: run_script: infinity loop ! [Debug]: Source (NPC): Yii Haruka at force_2-3 (96,190) Quote Link to comment Share on other sites More sharing options...
GmOcean Posted September 22, 2013 Group: Members Topic Count: 31 Topics Per Day: 0.01 Content Count: 666 Reputation: 93 Joined: 04/27/12 Last Seen: August 17, 2015 Share Posted September 22, 2013 (edited) Lol, my bad... looks like I really was tired writing this @.@; give me a moment and i'll fix it Edit: Here you go, you'll notice that I did change the array set up around, I had them backwards lol... I coded it 1 way, while telling you to put it in another way lmao..(note to self - stop writing scripts while falling asleep). prontera,150,180,4 script npc name 123,{ mes "I can upgrade items into a more powerful version."; mes "Interested?"; if(select("Yes!:Not in the slightest")==2){close;} next; mes "What Item do you want to make?"; set .@a,1; set .@menu$,""+ getitemname(getd(".item"+.@a+"[0]")) +""; while(.@a != .total) {set .@a,.@a+1; set .@menu$,.@menu$ + ":"+ getitemname( getd(".item"+.@a+"[0]") ) +"";} select(.@menu$); next; mes "All I need is the following:"; set .@i,2; set .@menu,@menu; mes "[1]x "+ getitemname(getd(".item"+.@menu+"[1]")) +""; while(getd(".item"+.@menu+"["+.@i+"]")) {mes "["+ getd(".item"+.@menu+"["+(.@i+1)+"]") +"]x "+ getitemname( getd(".item"+.@menu+"["+.@i+"]") ) +""; set .@i,.@i+2;} if(select("Turn in items:Cancel")==2){close;} set .@i,2; if(!countitem( getd(".item"+.@menu+"[1]") )){mes "You need to have 1, "+ getitemname(getd(".item"+.@menu+"[1]")) +""; close;} while(getd(".item"+.@menu+"["+.@i+"]")) {if(countitem(getd(".item"+.@menu+"["+.@i+"]")) < getd(".item"+.@menu+"["+(.@i+1)+"]")) {mes "You don't have enough, "+ getitemname(getd(".item"+.@menu+"["+.@i+"]")) +". You have ^FF0000"+ countitem(getd(".item"+.@menu+"["+.@i+"]")) +"/"+ getd(".item"+.@menu+"["+(.@i+1)+"]") +""; close;} set .@i,.@i+2;} set .@i,2; while(getd(".item"+.@menu+"["+.@i+"]")) {delitem( getd(".item"+.@menu+"["+.@i+"]"), getd(".item"+.@menu+"["+(.@i+1)+"]") ); set .@i,.@i+2;} delitem(getd(".item"+.@menu+"[1]"),1); getitem(getd(".item"+.@menu+"[0]"),1); close; OnInit: //[0] = New Item | [1] = Old Item | [2] = ItemReq1 | [3] = ItemAmt1 | [4] = ItemReq2 | etc... setarray .item1[0],505,504,501,1,502,1,503,1; setarray .item2[0],506,504,501,1,502,1,503,1; //setarray .item3[0],olditem,newitem,req1,amt1,req2,amt2,etc,...; set .total,2; //Set to number of arrays made. end; } Edited September 22, 2013 by GmOcean Quote Link to comment Share on other sites More sharing options...
chromus28 Posted September 22, 2013 Group: Members Topic Count: 91 Topics Per Day: 0.02 Content Count: 263 Reputation: 1 Joined: 04/25/13 Last Seen: December 20, 2014 Author Share Posted September 22, 2013 Lol, my bad... looks like I really was tired writing this @.@; give me a moment and i'll fix it Edit: Here you go, you'll notice that I did change the array set up around, I had them backwards lol... I coded it 1 way, while telling you to put it in another way lmao..(note to self - stop writing scripts while falling asleep). prontera,150,180,4 script npc name 123,{ mes "I can upgrade items into a more powerful version."; mes "Interested?"; if(select("Yes!:Not in the slightest")==2){close;} next; mes "What Item do you want to make?"; set .@a,1; set .@menu$,""+ getitemname(getd(".item"+.@a+"[0]")) +""; while(.@a != .total) {set .@a,.@a+1; set .@menu$,.@menu$ + ":"+ getitemname( getd(".item"+.@a+"[0]") ) +"";} select(.@menu$); next; mes "All I need is the following:"; set .@i,2; set .@menu,@menu; mes "[1]x "+ getitemname(getd(".item"+.@menu+"[1]")) +""; while(getd(".item"+.@menu+"["+.@i+"]")) {mes "["+ getd(".item"+.@menu+"["+(.@i+1)+"]") +"]x "+ getitemname( getd(".item"+.@menu+"["+.@i+"]") ) +""; set .@i,.@i+2;} if(select("Turn in items:Cancel")==2){close;} set .@i,2; if(!countitem( getd(".item"+.@menu+"[1]") )){mes "You need to have 1, "+ getitemname(getd(".item"+.@menu+"[1]")) +""; close;} while(getd(".item"+.@menu+"["+.@i+"]")) {if(countitem(getd(".item"+.@menu+"["+.@i+"]")) < getd(".item"+.@menu+"["+(.@i+1)+"]")) {mes "You don't have enough, "+ getitemname(getd(".item"+.@menu+"["+.@i+"]")) +". You have ^FF0000"+ countitem(getd(".item"+.@menu+"["+.@i+"]")) +"/"+ getd(".item"+.@menu+"["+(.@i+1)+"]") +""; close;} set .@i,.@i+2;} set .@i,2; while(getd(".item"+.@menu+"["+.@i+"]")) {delitem( getd(".item"+.@menu+"["+.@i+"]"), getd(".item"+.@menu+"["+(.@i+1)+"]") ); set .@i,.@i+2;} delitem(getd(".item"+.@menu+"[1]"),1); getitem(getd(".item"+.@menu+"[0]"),1); close; OnInit: //[0] = New Item | [1] = Old Item | [2] = ItemReq1 | [3] = ItemAmt1 | [4] = ItemReq2 | etc... setarray .item1[0],505,504,501,1,502,1,503,1; setarray .item2[0],506,504,501,1,502,1,503,1; //setarray .item3[0],olditem,newitem,req1,amt1,req2,amt2,etc,...; set .total,2; //Set to number of arrays made. end; } ok boss i will try later thanks Quote Link to comment Share on other sites More sharing options...
Question
chromus28
does anyone have a script npc that can upgrade the armor?
example:
i want to upgrade the Sniper Suit's into a 2 slotted suit..
player will just bring the requirement to get the upgraded item on the npc..
does anyone have it?
Link to comment
Share on other sites
12 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.