Jump to content

nanakiwurtz

Members
  • Posts

    1654
  • Joined

  • Last visited

  • Days Won

    66

Everything posted by nanakiwurtz

  1. 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?"
  2. 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; }
  3. prontera,148,166,6<tab>script<tab>Arena Master<tab>808,{ Save and reload
  4. 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?
  5. Yes, it caused the error.
  6. 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
  7. Post your whole script, maybe there's some typo on it.
  8. 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; }
  9. Kill then ressurect them
  10. Are you using rAthena?
  11. So the item will be still consumed but without creating the mercenary? Hmm makes sense..
  12. I'm afraid that the guide is no longer valid with recent client versions, because Gravity had changed their compiler
  13. Emistry, I think he wants to prevent the users from bringing mercenary scrolls on inventory or in their cart.
  14. Use 'sleep2'
  15. Make sure you use the skull with ID 7420, not 7005
  16. 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?
  17. 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.
  18. On which line did you get the bug? Or what result did you get when doing the quest?
  19. If I read the script, it can be used multiple times, as long as you want.
  20. 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;}},{},{}
  21. 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; } }
  22. Save the script as ANSI not Unicode.
  23. I think it should be 'baselevel' instead of 'baselvl', but I don't quite understand with your question, on which part?
  24. 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")+")";
  25. See post #2
×
×
  • Create New...