remedythe Posted February 14, 2014 Group: Members Topic Count: 1 Topics Per Day: 0.00 Content Count: 2 Reputation: 0 Joined: 01/14/14 Last Seen: February 26, 2014 Share Posted February 14, 2014 anyone have that NPC ? give me some help Quote Link to comment Share on other sites More sharing options...
Brave Posted February 14, 2014 Group: Members Topic Count: 30 Topics Per Day: 0.01 Content Count: 208 Reputation: 11 Joined: 05/31/12 Last Seen: May 15, 2016 Share Posted February 14, 2014 can you please give us more info what do you mean with first 99 class account matter or server count matter? Quote Link to comment Share on other sites More sharing options...
remedythe Posted February 14, 2014 Group: Members Topic Count: 1 Topics Per Day: 0.00 Content Count: 2 Reputation: 0 Joined: 01/14/14 Last Seen: February 26, 2014 Author Share Posted February 14, 2014 can you please give us more info what do you mean with first 99 class account matter or server count matter? Npc that give item and zeny for who Lv.99 in each class Ex. 1st Sniper and Lv.99 in server can recieve item form NPC but 2nd and other can't Quote Link to comment Share on other sites More sharing options...
Brave Posted February 14, 2014 Group: Members Topic Count: 30 Topics Per Day: 0.01 Content Count: 208 Reputation: 11 Joined: 05/31/12 Last Seen: May 15, 2016 Share Posted February 14, 2014 why don't just implement a Freebies which account based it is almost the same on what you are saying Actually Try this if it would work prontera.gat,149,180,5 script Freebie NPC 753,{ //Configurable Char Variables set @c, 1; // This is a variable for first letter Case-change. ( 1=on/0=off --Disable for speed up! ) set @npc$, "[^0000FFFreebie NPC^000000]"; setarray @cmds$, "getitemname", "getcharid", "strcharinfo"; //End //Character Vars set .@blvl, BaseLevel; set .@getitm$, ".itm"+#itmget+"$"; set .@getitm_len, getarraysize(getd(.@getitm$)); set .@nxtrblvl, atoi(getd(".itm"+(#itmget+1)+"$[2]")); set .@rblvl, atoi(getd(.@getitm$+"[2]")); //End //NPC Dialogue if(.@blvl>=.@rblvl) { for(set .@s,0;.@s<(.@getitm_len-3);set .@s,.@s+1){ set .@op$, callfunc("dispmes_func",getd(.@getitm$+"["+(.@s+3)+"]")); if(.@op$=="next;"||.@op$=="Next;") { set .@op$, ""; next; } if(.@op$=="menu;"||.@op$=="Menu;") { if(select("Yes:No")&2) close; set .@op$, ""; } if(.@op$=="close;"||.@op$=="Close;") { set .@op$, ""; close; } if(.@op$=="item;"||.@op$=="Item;") { set .@op$, ""; getitem atoi(getd(.@getitm$)),atoi(getd(.@getitm$+"[1]")); set #itmget,#itmget+1; } if(.@op$=="npc;"||.@op$=="Npc;") { set .@op$, @npc$; } if(.@op$!="") mes .@op$; } } mes @npc$; set .@message$, (.@blvl<=.@rblvl )? "You have already received this item, please come back when you are level "+.@rblvl+" for a special item." : ((.@rblvl<.@blvl )? "Sorry, I don't have anymore items to give you!" : ""); mes .@message$; close; //End end; OnInit: waitingroom "Free items!",0; //Configure NPC Items & Dialogue HERE! // ItemID Amount Required-BaseLevel setarray .itm0$, "501", "10", "1", "Npc;", "Hello, strcharinfo(0), do you want this free item?", "next;", "menu;", "Alright!", "item;", "Goodbye.", "close;"; setarray .itm1$, "502", "20", "70", "Npc;", "Wow, strcharinfo(0), you're really strong!", "I won't keep you waiting.", "Here is your item- You've earned it!", "item;", "Until we meet again.", "close;"; setarray .itm2$, "1599", "1", "180", "Npc;", "You, sir, are a true god!", "Hh-h-here is your getitemname(1599).", "item;", "close;"; //End /*Explanation: The first three values in each row are the only constant numbers. First is the item_id then the amount you want to give then the level you give it at. Every line after that is lucid. You can type what the npc is going to say. You can also use optional commands that I will list below to display information. Add new conditions by following my example just remember to change .itm<#>$ to the next value. I hope everyone can understand this x.x Keep in mind this is just the first version. It's still a little slow. You can change upper-case to ignore for speedup. Commands Explained: Commands that takeup one line: "Npc;", -> This will display the npcs name. "Item;", -> Will give the player item and increase quest value. "Menu;", -> This will display a Yes and No menu. "Close;", -> This will close the script. "Next;", -> This will refresh chat window and display Next button. Commands that can be used in chat: getitemname(<itemid>) -> Shows item name in chat. getcharid(<type>) -> Will return character id number. strcharinfo(<type>) -> displays information from charinfo. EX: strcharinfo(0) = Characters Name Skorm */ } function script dispmes_func { set .@len,callfunc("str_explode2","@explosion$",getarg(0), 3, " ", "(", ")"); for(set .@a,0;.@a<.@len;set .@a,.@a+1) { for(set .@b,0;.@b<getarraysize(@cmds$);set .@b,.@b+1){ if (compare(@explosion$[.@a],@cmds$[.@b])){ set .@output$, callfunc("commands_func",.@b,@explosion$[(.@a+1)]); set @explosion$[.@a], .@output$; set @explosion$[(.@a+1)], ""; } } if(!.@a&&@c) { callfunc "str_toarray", @explosion$[.@a], "@tmp$[0]"; set @tmp$[0],callfunc("str_changecase", @tmp$[0], 1); set @explosion$[.@a],""; set .@i,0; while(getstrlen(@explosion$[.@a])<getarraysize(@tmp$)){ set @explosion$[.@a],@explosion$[.@a]+@tmp$[.@i]; set .@i,.@i+1; } } set .@message$, .@message$+ ((@explosion$[.@a]!=""&&.@a<(.@len-1))? @explosion$[.@a]+" " : @explosion$[.@a]+""); } return .@message$; } function script commands_func { switch(getarg(0)){ case 0: return getitemname(atoi(getarg(1))); case 1: return getcharid(atoi(getarg(1))); case 2: return strcharinfo(atoi(getarg(1))); } } /// callfunc "str_explode2" , "<array output>", "<string>"{, <Amount of Delemiter>{, "<Delemiter>"{, "<Delemiter>"}}}; function script str_explode2 { if ( !getarg(2) ) return callfunc("str_toarray", getarg(1), getarg(0) ); sleep2 1; setarray .@char$[0], " ", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "e", "i", "a", "s", "r", "n", "t", "o", "u", "l", "c", "p", "m", "d", "v", "h", "g", "f", "b", "y", "q", "k", "z", "x", "j", "w", "_", "-", "(", ")", ";", ",", ":", ".", "*", "!", "?", "'"; set .@charsize, getarraysize(.@char$); set .@tmp$, "|~key~|"; set .@str$, .@tmp$ + getarg(1) ; set .@len, getstrlen(getarg(1)); set .@delem_len, getarg(2); for( set .@g,0;.@g<.@delem_len;set .@g,.@g+1 ){ setd(".@parse_len"+.@g, getstrlen(getarg(3+.@g))); } while( .@len > .@s ) { set .@i, 0 ; while( .@i < .@charsize ) { if ( ! ( set(.@l,.@l+1) % 600) ) sleep2 1; if ( compare( .@str$ , .@tmp$ + .@char$[.@i] ) ) { set .@tmp$, .@tmp$ + .@char$[.@i]; set .@g, 0; while( .@g < .@delem_len ) { if ( ! ( set(.@l,.@l+1) % 600) ) sleep2 1; if ( .@char$[.@i] == getarg((3+.@g)) ) { set .@p, .@p + 1; set .@s, .@s + (getd(".@parse_len"+.@g)-1) ; break; } set .@g,.@g+1; } if ( .@delem_len == .@g ) set .@arr$[.@p], .@arr$[.@p] + .@char$[.@i]; break; } set .@i, .@i+1 ; } if ( .@i == .@charsize ) return 0; else set .@s, .@s+1 ; } deletearray getd(getarg(0)); copyarray getd(getarg(0)), .@arr$, .@p+1; return .@p+1; } function script str_changecase { sleep2 1; if ( getarg(1) ) { setarray .@char$[ 0 ], " ", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "E", "I", "A", "S", "R", "N", "T", "O", "U", "L", "C", "P", "M", "D", "V", "H", "G", "F", "B", "Y", "Q", "K", "Z", "X", "J", "W", "_", "-", "(", ")", ";", ",", ":", ".", "*", "!", "?", "'"; } else { setarray .@char$[ 0 ], " ", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "e", "i", "a", "s", "r", "n", "t", "o", "u", "l", "c", "p", "m", "d", "v", "h", "g", "f", "b", "y", "q", "k", "z", "x", "j", "w", "_", "-", "(", ")", ";", ",", ":", ".", "*", "!", "?", "'"; } set .@charsize, getarraysize(.@char$); set .@str$, "|~key~|" + getarg(0) ; set .@len, getstrlen(getarg(0)); while( .@len>.@s ) { set .@i,0; while( .@i<.@charsize ) { if ( ! ( set(.@l,.@l+1) % 650) ) sleep2 1; if ( compare( .@str$ , "|~key~|" + .@tmp$ + .@char$[.@i] ) ) { set .@tmp$, .@tmp$ + .@char$[.@i]; break; } set .@i, .@i+1; } if ( .@i == .@charsize ) return ""; else set .@s, .@s+1; } return .@tmp$; } function script str_toarray { sleep2 1; if ( getstrlen( getarg(0) ) > 128 ) return 0; setarray .@char$[ 0 ], " ", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "e", "i", "a", "s", "r", "n", "t", "o", "u", "l", "c", "p", "m", "d", "v", "h", "g", "f", "b", "y", "q", "k", "z", "x", "j", "w", "_", "-", "(", ")", ";", ",", ":", ".", "*", "!", "?", "'"; set .@charsize, getarraysize(.@char$); set .@tmp$, "|~key~|"; set .@str$, .@tmp$ + getarg(0) ; set .@len, getstrlen(getarg(0)); while( .@len>.@s ) { set .@i,0; while( .@i<.@charsize ) { if ( ! ( set(.@l,.@l+1) % 650) ) sleep2 1; if ( compare( .@str$ , .@tmp$ + .@char$[.@i] ) ) { set .@tmp$, .@tmp$ + .@char$[.@i]; set .@arr$[.@s], .@char$[.@i]; break; } set .@i, .@i+1; } if ( .@i == .@charsize ) return 0; else set .@s, .@s+1; } deletearray getd(getarg(1)); copyarray getd(getarg(1)), .@arr$, .@len; return .@len; } Sorry got to rush that thing just check if there are error Quote Link to comment Share on other sites More sharing options...
Patskie Posted February 15, 2014 Group: Members Topic Count: 50 Topics Per Day: 0.01 Content Count: 1702 Reputation: 241 Joined: 09/05/12 Last Seen: 13 hours ago Share Posted February 15, 2014 - script Sample -1,{ OnPCBaseLvUpEvent: if ( BaseLevel != 99 ) end; switch ( BaseJob ) { case Job_Acolyte: getitem 501, 1; break; // case Job_.... : getitem <item id>, <amount>; break; default: break; } end; } Quote Link to comment Share on other sites More sharing options...
Question
remedythe
anyone have that NPC ? give me some help

Link to comment
Share on other sites
4 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.