-
Posts
1654 -
Joined
-
Last visited
-
Days Won
66
Content Type
Profiles
Forums
Downloads
Jobs Available
Server Database
Third-Party Services
Top Guides
Store
Everything posted by nanakiwurtz
-
Yep, that's why I asked you earlier about it, "why would you warp to prontera if the players in pvp room is less than 50?"
-
Okay then, I'll rewrite your script. prontera,148,166,6 script Arena Master 808,{ if( select("PVP Room [ "+getmapusers("pvp_n_8-5")+"/50 ]:Cancel") == 1 ) { if( getmapusers("pvp_n_8-5") >= 50 ) { mes "[Arena Master]", "I'm sorry but the PVP Room is already full!"; close; } warp "pvp_n_8-5",0,0; } close; OnPCDieEvent: if(strcharinfo(3) == "pvp_n_8-5") { dispbottom "You will respawn in 3 Seconds."; sleep2 3000; atcommand "@alive"; atcommand "@heal"; warp "pvp_n_8-5",0,0; } end; }
-
prontera,148,166,6<tab>script<tab>Arena Master<tab>808,{ Save and reload
-
prontera,148,166,6 script Arena Master 808,{ if( select("PVP Room [ "+getmapusers("pvp_n_8-5")+"/50 ]:Cancel") == 1 ) { if( getmapusers("pvp_n_8-5") < 50 ) warp "prontera",0,0; } close; OnPCDieEvent: if(strcharinfo(3) == "pvp_n_8-5") { dispbottom "You will respawn in 3 Seconds."; sleep2 3000; atcommand "@alive"; atcommand "@heal"; warp "pvp_n_8-5",0,0; } end; } But I don't quite understand, on line "if( getmapusers("pvp_n_8-5") < 50 ) warp "prontera",0,0;" why would you warp to prontera if the players in pvp room is less than 50? I think it should warp you IN to the pvp map, right?
-
Yes, it caused the error.
-
Ahh.. You have 2 commas on the header. It should be "808,{" with a single comma. And the map isn't the same --> if(strcharinfo(3) == "pvp_y_2-2") ?? i think you'll want to edit to match with the current pvp map --> pvp_n_8-5
-
Post your whole script, maybe there's some typo on it.
-
prontera,155,180,0 script Skull Points 910,{ switch(select("View PVP Skull Points Ladder:" + (countitem(.ITEMID_SKULL_) ? ("Exchange "+countitem(.ITEMID_SKULL_)+" "+((countitem(.ITEMID_SKULL_)==1)?"Skull":"Skulls")+" --> Points") : "") )) { case 1: query_sql "SELECT `char`.`name`, CAST(`value` AS UNSIGNED) " + "FROM global_reg_value " + "LEFT JOIN `char` ON global_reg_value.char_id=`char`.char_id " + "WHERE global_reg_value.`str`='skull_points' AND CAST(`value` AS UNSIGNED) > 0 " + "ORDER BY CAST(`value` AS UNSIGNED) DESC LIMIT 10", .@name$, .@points; mes "[Top 10 Skull Points]"; for (set .@i,0; .@i<getarraysize(.@name$); set .@i,.@i+1) { mes (.@i+1) +". ^0000FF"+ .@name$[.@i] +"^000000 ("+ .@points[.@i] +((.@points[.@i]==1)?" pt":" pts")+")"; } break; case 2: set .@skulls, countitem(.ITEMID_SKULL_); if (.@skulls < 1) { mes "You don't have any PVP Skulls."; } else { delitem .ITEMID_SKULL_, .@skulls; getitem 7227, .@skulls; set skull_points, skull_points + .@skulls; dispbottom "Gained "+.@skulls+" skull points. Total = " + skull_points; } break; } close; OnInit: // should match /src/map/itemdb.h set .ITEMID_SKULL_, 7420; end; }
-
How to disable mercenaries on scripts?
nanakiwurtz replied to johnbond's question in Scripting Support
Kill then ressurect them -
Are you using rAthena?
-
How to disable mercenaries on scripts?
nanakiwurtz replied to johnbond's question in Scripting Support
So the item will be still consumed but without creating the mercenary? Hmm makes sense.. -
I'm afraid that the guide is no longer valid with recent client versions, because Gravity had changed their compiler
-
How to disable mercenaries on scripts?
nanakiwurtz replied to johnbond's question in Scripting Support
Emistry, I think he wants to prevent the users from bringing mercenary scrolls on inventory or in their cart. -
Use 'sleep2'
-
Make sure you use the skull with ID 7420, not 7005
-
You're welcome But I still in doubt by what you asked on first post, the item can't be refined more than +12? Or do you want it to get capped at ATK+36% even the item is +20?
-
How to disable mercenaries on scripts?
nanakiwurtz replied to johnbond's question in Scripting Support
1. if (getmapxy(@mapname$,@mapx,@mapy,2)==0) { mes .@n$; mes "Sorry, pets are not allowed."; close; } 2. You can set an array to check for Mercenary scrolls in your inventory / cart, if I'm not mistaken Brian had posted a code for it a few days ago. 3. I find "merc_delete", but currently don't know how to use it. Or you can to forcefully delete it via SQL on both table 'mercenary' and 'mercenary_owner'. But if you forcefully delete it on SQL, you won't get the faith point. -
On which line did you get the bug? Or what result did you get when doing the quest?
-
If I read the script, it can be used multiple times, as long as you want.
-
Refining is up to +12, can't go further? There you go 1201,Knife,Knife,4,50,,400,17,,1,3,0xFE9F7EEF,7,2,2,1,1,1,1,{if (getrefine <= 12) {bonus bAtkRate,getrefine()*3;}},{},{}
-
prt_in,63,60,4 script Refiner 85,{ set .Scroll,7199;//'Protection Scroll' item id set .back,0; //when use 'Protection Scroll' //-1,-2,-3... -->back to level 1,2,3...(MAX:10) if refine fail //1,2,3... --> reduce level 1,2,3.... if refine fail set @use2,0; set @rate,0; set @typr,0; set @menu2,0; set @use3,0; function CHose; function nZeny { switch(getequipweaponlv(getarg(0))) { case 1: return 500; case 2: return 2000; case 0: case 3: case 4: return 5000; default: return 0; } } function nItem { if(getarg(1)==1){ switch(getequipweaponlv(getarg(0))) { case 0: return 985; case 1: return 1010; case 2: return 1011; case 3: case 4: return 984; default: return 0; } }else{ switch(getequipweaponlv(getarg(0))) { case 0: return 6241; case 1: case 2: case 3: case 4: return 6240; default: return 0; } } } function nRate { function aRate { return getarg(getarg(0,0)+1,0); } switch(getequipweaponlv(getarg(0))) { case 0: return aRate(getarg(1), 100,100,100,100,60, 40,40,20,20,10, 50,30,20,10,10, 10,10,10,10,10); case 1: return aRate(getarg(1), 100,100,100,100,100, 100,100,60,40,20, 70,70,50,50,30, 30,20,20,10,10); case 2: return aRate(getarg(1), 100,100,100,100,100, 100,60,40,20,20, 70,50,50,30,30, 20,20,10,10,10); case 3: return aRate(getarg(1), 100,100,100,100,100, 60,50,20,20,20, 50,50,30,30,20, 20,10,10,10,10); case 4: return aRate(getarg(1), 100,100,100,100,60, 40,40,20,20,10, 50,30,30,20,20, 10,10,10,10,10); } } function sRater { mes "[Successful rate]["+set(@rate,(nRate(@typr,getequiprefinerycnt(@typr))+(@use2>6000?10:0)))+"%]"; return; } if(select("Refine","Close")==2) close; set @typr,select(""+getequipname(1),""+getequipname(2),""+getequipname(3),""+getequipname(4),""+getequipname(5),""+getequipname(6)); callsub OnCon; sRater; if(select("^000088Refine now^000000","^FF3355Don't refine^000000")==2) close; callsub OnCon2; OnCon: if(!getequipisenableref(@typr)) { mes "I can't refine this !..."; close; } if(getequiprefinerycnt(@typr)>=10) { mes "It's not possible to refine this better than +10."; close; } if(Zeny<nZeny(@typr)) { mes "You don't have enough Zeny. Your Zeny is lower than "+nZeny(@typr)+"."; close; } if( @use3 ) { if( !countitem(@use3) ) { mes "You don't have any "+getitemname(@use3)+"."; close; } }else{ if( !countitem(set(@use2,nItem(@typr,select("^FF3355Use normal Ore!^000000","^000088Use purified Ore!^000000"))))) { mes "You don't have any "+getitemname(@use2)+"."; close; } set @use3,@use2; } return; OnCon2: if(.Scroll) { if( @menu2==2 ) { if(!countitem(.Scroll)) { mes "You don't have a Protection Scroll."; close; } }else{ if( select("^FF3355Go ahead without protection Scroll!^000000.","^000088Use Protection Scroll!^000000.")==2) { if(!countitem(.Scroll)) { mes "your don't have Protection Scroll."; close; } }else mes " "; } } set Zeny,Zeny-nZeny(@typr); if(.Scroll) { if( @menu==2 || @menu2==2 ) if( @rate >= 100 ) mes "100% of success, so automatically cancel using the protection scroll"; else delitem .Scroll,1; } delitem @use2,1; if(.Scroll) { if( @menu==2 || @menu2==2 ) { if(@rate<rand(1,100)) { if(.back<0) { getitem2 getequipid(@typr),1,1,-(.back<-10?-10:.back),0,getequipcardid(@typr,0),getequipcardid(@typr,1),getequipcardid(@typr,2),getequipcardid(@typr,3); failedrefitem @typr; announce strcharinfo(0)+" tried to refine a +"+getequiprefinerycnt(@typr)+" "+getequipname(@typr)+" to +"+(getequiprefinerycnt(@typr)+1)+" and FAILED!"; close; }else{ set .@D,set(.@D,getequiprefinerycnt(@typr)-.back)<0?0:.@D; if(getequiprefinerycnt(@typr)<=10) { getitem2 getequipid(@typr),1,1,.@D,0,getequipcardid(@typr,0),getequipcardid(@typr,1),getequipcardid(@typr,2),getequipcardid(@typr,3); failedrefitem @typr; announce strcharinfo(0)+" tried to refine a +"+getequiprefinerycnt(@typr)+" "+getequipname(@typr)+" to +"+(getequiprefinerycnt(@typr)+1)+" and FAILED!"; close; }else while(getequiprefinerycnt(@typr)!=.@D) { successrefitem @typr; announce strcharinfo(0)+" tried to refine a +"+getequiprefinerycnt(@typr)+" "+getequipname(@typr)+" to +"+(getequiprefinerycnt(@typr)+1)+" and SUCCEED!"; } } }else successrefitem @typr; CHose(@use2,@menu); } } if(@rate<rand(1,100)) { announce strcharinfo(0)+" tried to refine a +"+getequiprefinerycnt(@typr)+" "+getequipname(@typr)+" to +"+(getequiprefinerycnt(@typr)+1)+" and FAILED!"; failedrefitem @typr; close; }else successrefitem @typr; announce strcharinfo(0)+" tried to refine a +"+getequiprefinerycnt(@typr)+" "+getequipname(@typr)+" to +"+(getequiprefinerycnt(@typr)+1)+" and SUCCEED!"; CHose(@use2,@menu); function CHose { set @menu2,@menu2?@menu2:@menu; set @use3,@use3?@use3:@use2; next; sRater; if( select("[^000088continue^000000]","[^FF3355End^000000]") == 2 ) close; else callsub OnCon,1; callsub OnCon2; } }
-
Save the script as ANSI not Unicode.
-
I think it should be 'baselevel' instead of 'baselvl', but I don't quite understand with your question, on which part?
-
Change (.@job[.i@]) into (.@job[.@i]) in this line: mes (.@i+1) +". ^0000FF"+ .@name$[.@i] +"^000000, "+jobname(.@job[.i@])+", "+ .@guild$[.@i] +" ("+ .@points[.@i] +((.@points[.@i]==1)?" pt":" pts")+")";
-
See post #2