Jump to content

Stolao

Developer
  • Posts

    1443
  • Joined

  • Last visited

  • Days Won

    40

Everything posted by Stolao

  1. an example Item_db.txt 512,Apple,Apple,11,15,,20,,,,,0xFFFFFFFF,7,2,,,,,,{ callfunc "Cell-Phone"; },{},{} npc function script Cell-Phone { message strcharinfo(0),"[Cell-Phone]: What would you like?"; swithc(select("Warp:Call Pawn Shop")){ case 2: close2; callshop "Tool Dealer#alb",<option>; //callshop "<name>",<option>; //The options are: // 0 = The normal window (buy, sell and cancel) // 1 = The buy window // 2 = The sell window break; case 1: warp "Random",0,0; break; } end; }
  2. This could be quite useful *bookmarked
  3. https://rathena.org/board/files/file/3270-utility-super-novice-prayer-command/ there is no http in the download link for some reason also to fix "Another bad side is the fact that if the SN dies before the 3 minutes of wait to use the command again the SN won't be able to use it" this ou can do a OnPcDieEvent: set @CalledAngel,0; end;
  4. As far as i know there is no work around without a source edit
  5. wrong section, this goes here
  6. you can create a per-defined list of items to chose from
  7. i cleaned it up (didn't optimize) and removed the use of goto //===== Thaddeus Scripts ================================== //= Simple Cool Anti-Bot //===== By: ================================================== //= Thaddeus //===== Current Version: ===================================== //= 1.0 //===== Compatible With: ===================================== //= Hercules, rAthena, 3ceam, eAthena //===== Description: ========================================= // Improvise Simple Anti-Bot! from method of Brian. //===== Comments: ============================================ //= Change the % chance of triggering, change jail time. //===== Additional Comments: ================================= //= 1.00 Initial Release //===== Contact Info: ========================================= //= http://hercules.ws/board/user/457-thaddeus/ //============================================================ //===== Credits to: ========================================= //= Brian, //============================================================ - script anti-bot2 -1,{ OnPCLoginEvent: set checkbot,0; if(botter >= 1) { doevent "anti-bot::Oncheckb"; } } - script anti-bot -1,{ OnNPCKillEvent: if( rand(100) < 75 ) { end;} // Default Setting: 75% Chance to Ignore the Anti-Bot Oncheckb: function GetString; if (getgmlevel() >= 3) { end;} /* Uncomment if you want to Ignore this by GM */ if(checkbot >= 1) { end; } atcommand "@jail "+strcharinfo(0)+""; set botter,1; sc_start SC_BERSERK, 1000000000, 1; sc_start SC_FREEZE, 1000000000, 1; sleep2 3000; for(set botter,botter; botter < 4; set botter,botter + 1;){ set .@String$,GetString( 15,rand(3,7) ); mes "You Have 3 Chance to Type the Red Text Correctly"; mes "If you failed- You will be jailed"; mes "Input the ^FF0000RED COLOUR^000000 part"; mes "^0000FF"+GetString( 15,rand(5,10) )+"^FF0000"+.@String$+"^0000FF"+GetString( 15,rand(3,10) )+"^000000"; input .@Input$; if( .@Input$ != .@String$ ){ if (botter >= 3) { atcommand "@unjail "+strcharinfo(0)+""; sleep2 1000; atcommand "@jailfor 10d "+strcharinfo(0)+""; announce "[Anti-BOT]: The user [" +strcharinfo(0) +"] Has Been Jailed For 10 Days.",0,0xe80f0f; set botter,0; close; end; } mes "Wrong.."; next; } else { break; } } atcommand "@unjail "+strcharinfo(0)+""; set botter,0; set checkbot,1; sc_end SC_BERSERK; sc_end SC_FREEZE; percentheal 100,100; sc_start SC_INC_AGI,240000,10; sc_start SC_BLESSING,240000,10; end; function GetString { if( getarg(0) & 1 ) setarray .@List$[ getarraysize( .@List$ ) ],"1","2","3","4","5","6","7","8","9"; if( getarg(0) & 2 ) setarray .@List$[ getarraysize( .@List$ ) ],"A","B","C","D","E","F","G","H","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"; if( getarg(0) & 4 ) setarray .@List$[ getarraysize( .@List$ ) ],"a","b","c","d","e","f","g","h","i","j","k","m","n","o","p","q","r","s","t","u","v","w","x","y","z"; //if( getarg(0) & 8 ) setarray .@List$[ getarraysize( .@List$ ) ],"!","@","#","$","%","^","&","*","(",")","-","=","/","+"; set .@Str$,""; while( getstrlen( .@Str$ ) < getarg(1) ) set .@Str$,.@Str$ + .@List$[ rand( getarraysize( .@List$ ) ) ]; return .@Str$; } } sec_pri mapflag pvp off
  8. Too lazy to work on this but a few thoughts Take AnnieRuru mission board like Capuche said or use tr0n's Quest Board and add a player "request menu" personally I would use tr0ns as its more easily adaptable
  9. are you currently holding any of item 512? if so it wont grant you.
  10. How can i add if the user finished the quest instead of the monsters list it will show the delay time.. try this OnHuntCmd: if (#Mission_Delay > gettimetick(2) && .Delay) { announce "I'm afraid you'll have to wait " + callfunc("Time2Str",#Mission_Delay) + " before taking another mission.",bc_self|bc_blue; end; } for (.@i = 0; .@i < .Quests; .@i++) { .@j[.@i] = getd("Mission" + .@i); .@j[.Quests] = .@j[.Quests] + strmobinfo(3,.@j[.@i]); .@j[.Quests+1] = .@j[.Quests+1] + (strmobinfo(6,.@j[.@i]) / (getbattleflag("base_exp_rate") / 100) * .Modifier[0]); .@j[.Quests+2] = .@j[.Quests+2] + (strmobinfo(7,.@j[.@i]) / (getbattleflag("job_exp_rate") / 100) * .Modifier[1]); announce " > "+strmobinfo(1,.@j[.@i]) + " (" + getd("Mission"+.@i+"_") + "/" + #Mission_Count + ")",bc_self|bc_blue; } end;
  11. quick bump
  12. Add this somewhere appropriate OnHuntCmd: for (.@i = 0; .@i < .Quests; .@i++) { .@j[.@i] = getd("Mission" + .@i); .@j[.Quests] = .@j[.Quests] + strmobinfo(3,.@j[.@i]); .@j[.Quests+1] = .@j[.Quests+1] + (strmobinfo(6,.@j[.@i]) / (getbattleflag("base_exp_rate") / 100) * .Modifier[0]); .@j[.Quests+2] = .@j[.Quests+2] + (strmobinfo(7,.@j[.@i]) / (getbattleflag("job_exp_rate") / 100) * .Modifier[1]); announce " > "+strmobinfo(1,.@j[.@i]) + " (" + getd("Mission"+.@i+"_") + "/" + #Mission_Count + ")",bc_self|bc_blue; } end; Add somewhere under OnInit: bindatcmd "huntinglist","Hunting Missions::OnHuntCmd",0,99;
  13. 1st change bindatcmd("PvpLadder" ,"Pvp_Ladder::OnPvpLadder",0,99); end; } OnPCLoginEvent: if( $TOPPK$ == strcharinfo(0) && countitem(<512>) < 1) { getitembound 512,1,4; } else if(countitem(512) >= 1){ delitem 512,1; } to bindatcmd("PvpLadder" ,"Pvp_Ladder::OnPvpLadder",0,99); end; OnPCLoginEvent: if( $TOPPK$ == strcharinfo(0) && countitem(<512>) < 1) { getitembound <512>,1,4; } else if(countitem(<512>) >= 1){ delitem <512>,1; } } 2nd you have it configured to only count kills in prontera to change that change this set .Options,4|32|64; // Bitwise Variable // 1: Only Counts Kills on .Map$ if Disabled to this set .Options,1|4|32|64; // Bitwise Variable // 1: Only Counts Kills on .Map$ if Disabled i should have reversed the logic on option 1, enabled means any map disabled means just that map also should take effect after the 1st kill
  14. that will only give the item, to again and remove an item id recommend using OnPCLoginEvent: if( $TOPPK$ == strcharinfo(0) && countitem(<item id>) < 1) { getitembound <item id>,1,4; } else if(countitem(<item id>) >= 1){ delitem <item id>,1; } however there are limits 1: make this item ONLY obtainable via this, 2 item wont be removed till players next log ps if you need it instant (or almost) replace OnPCLoginEvent with OnPCStatCalcEvent and it will eliminate note 2 but that will be more of a memory hog
  15. go into your npc.h #define MAX_NPC_CLASS2_START 10000 #define MAX_NPC_CLASS2_END 10110 <--- change thing that was the issue with my custom npcs at least
  16. search for "getexp" and "//" it out
  17. try adding OnPcDieEvent: if(strcharinfo(3) == .map$){ warpparty "SavePointAll",0,0,getcharid(1),.map$; }
  18. Stolao

    Random Quest

    Mind explaining better?
  19. yes its quite possible and easy, you will need these commands getrefine() downrefitem <equipment slot>{,<count>} successrefitem <equipment slot>{,<count>}; so why not give it a shot~
  20. Update Poring Power 1.00 -> 1.01 1.01 Converted to new areamob format
  21. will om you with 1 and 3 2 i thinks already on forums
  22. this is an example, very basic 1101,Sword,Sword,5,100,,500,25,,1,3,0x000654E3,7,2,2,1,2,1,2,{ if(CharVar&1){ bonus bstr,1; }if(CharVar&2){ bonus bvit,1; } },{},{} prontera,150,182,5 scrip Repair 811,{ mes "[Dood]"; mes "Want me to boost your stats when using a sword?"; if(select("No:Yes") == 1){ close; } else { next; } mes "[Dood]"; mes "What stat?"; set CharVar,select("Str:Vit:Both") close; } if you have questions about this look up Operators -> bitwise in your /doc/script_commands
  23. Ive already done this however I'm not releasing as its an ugly mess of a script, this what you want? prontera,164,175,3 shop Apple-Lady 123,512:-1 prontera,165,174,3 script ShopEditor 123,{ message strcharinfo(0),"Hi~"; if(getgroupid() >= 60) end; message strcharinfo(0),"How much Should Apples cost?"; input(.@i,1,1000000); npcshopitem "Apple-Lady",512,.@i; end; OnMinute01: OnMinute16: OnMinute31: OnMinute46: npcshopitem "Apple-Lady",512,rand(12,25); }
  24. Ok im a complete idiot when the topic is scripting but correct me if im wrong... This adds a % change of get item x when monster y is killed. Thats the part i understand but theres actually how prevent a drop? Like i know if i want to make it drop (not getting directly as reward) i need to use makeitem x,y or something but i have no clue if theres how to delete a item from the mob drop list. you can use makeitem instead of getitem however it would drop from players location, not mobs location
×
×
  • Create New...