Jump to content

jaBote

Community Contributors
  • Content Count

    2037
  • Joined

  • Last visited

  • Days Won

    43

Reputation Activity

  1. Upvote
    jaBote reacted to Mumbles in Making new command   
    Commands are enclosed in ACMD() functions. While I wouldn't say you could typically add a new command anywhere in atcommand.c, you can add a new command before or after these functions. 
     
    Example:
     
    ACMD(searchstore){ int val = atoi(message); switch( val ) { case 0://EFFECTTYPE_NORMAL case 1://EFFECTTYPE_CASH break; default: val = 0; break; }  searchstore->open(sd, 99, val); return true;}ACMD(mynewcommand){//...}
  2. Upvote
    jaBote got a reaction from glemor123 in R> Hercules Woe Setter   
    Did you see this piece of code from your WoE setter script?
     
    //---------------------------------------------------------------------------------------------------------------------//These two functions handle WoE's activation/deactivation. Since stable does not have AgitStart2/AgitEnd2, //using the trunk version will result in catastrophic failure of the script. Double declaration of the following//functions fixes this (you will get warning messages though)function script WoEToggler { //<state> = 0|1 if(getarg(0)) { AgitStart; } else { AgitEnd; } return;}//if stable script will fail parsing this function, but the rest of the script will still be usablefunction script WoEToggler { //<state> = 0|1 if(getarg(0)) { AgitStart; AgitStart2; } else { AgitEnd; AgitEnd2; } return;}  
    You can safely remove this one if you want, since there's no stable branch at Hercules:
    function script WoEToggler { //<state> = 0|1 if(getarg(0)) { AgitStart; } else { AgitEnd; } return;}
  3. Upvote
    jaBote reacted to Zephy in Can anyone make a script like this   
    Do you want it to be a physical NPC (a player can click on it) or do you want it to be automatic (when a player kills a multiple of 5 MVPs on a certain map, automatically gain the items)?
     
    Here is a script that will do the latter :x...
     
    /*=========================================================Untitledby Zephy===========================================================Description:No description available.===========================================================Compatibility:Optimised for Hercules emulators.===========================================================Changelog:1.0 - Initial release.===========================================================Additional Notes: - If you want the kills to be reset when the player dies, uncomment line 44 and 52. - Currently the kill counter variable (@mvpkill) is a temporary variable, meaning that if the player logs out, their score will reset. If you want them to keep the score even when they log out, remove the '@' in @mvpkill.=========================================================*/- script MvP Counter -1,{OnNPCKillEvent: for (.@i = 0; .@i < getarraysize(.map$); .@i++) { if (getmonsterinfo(killedrid, MOB_MVPEXP) && strcharinfo(3) == .map$[.@i]) // Checks if user has killed an MvP on a specified map { @mvpkill++; //Increments variable to count MvP kills } if (@mvpkill % 5 == 0) // Checks if @mvpkill if a multiple of 5 { @amount++; // Increment variable for prize amount (increment by 1 per 5 kills) getitem .prize, @amount; // Gives player the prize } }end;/*OnPcDieEvent: if (@mvpkill) { @mvpkill = 0; }end;*///ConfigurationOnInit: .prize = 0; // Prize ID setarray .map$[0], "bossnia_01", "bossnia_02"; // Maps that you want this script active on end;}
  4. Upvote
    jaBote reacted to Angelmelody in Thor Patcher Button (Custom)   
    try this
     
      [button:Register ]
      Default='images/Reg1.png'
      OnHover='images/Reg2.png'
      OnDown='images/Reg3.png'
      Left= x-coordinate
      Top= y-coordinate
      Mode=1
      Action='http://www.your-regist-page....'
  5. Upvote
    jaBote reacted to justamadguy in Demetra Admin panel   
    Hello, i have a project of a control panel admin panel, i want it to be full of features, for players and adminstrators. The main points are functionalities and security combined with a clean, good looking and professional layout made with only css so it'll be really easy to customize the layout.   About the technologies and techniques i'm using: HTML5 CSS3 Javascript (jQuery Library) PHP Webstandards compliant Responsive design free and open-source   About the choice of the name   well, as all of you know, CeresCP owned for years the title of the most used cp but it's not updated since 2011, it's built with old techniques and it's vulnerable, but still a great cp Ceres is a roman goddess, and as you know the roman myths are based on the greek ones, Demetra is just the goddess corresponding to Ceres on the Greek Mythology, i made this as a homage to CeresCP.     Some features that got in my mind:   for players   Players level ranking Players zeny ranking Guild ranking (customizable view, by guild level or by amount of castles owned) once you log in, you will see your characters as they are (i'll be using rochargenphp framework) multi-language support

      for the staff Ban/unban VIP Admin ( the admin can activate players vip, and program it to end, with more than 1 different level of vips ) SQL server log, all the logs providaded by the server arranged in a cool table Panel log, a log system for the panel operations (a lv 99 GM can see a lv 80 log, but lv 80 can't see lv 99 logs

      Well there are more stuff but i can't remember then now (i have all noted on my notebook, later i'll update this topic)   If you guys have any ideas, features you want just let me know, any ideas will be considered   Is a donate shop, like on fluxcp, a good thing? is it used? should I implement it?   you can see a preview of the project in this link: http://noxusstudio.net/demetra
  6. Upvote
    jaBote got a reaction from Patskie in Guild Prize Giver   
    The script had an error by default.
     
    Change line 25 to:
    setarray .@reward[0],671,1; //<Item_ID>,<Amount>{,...}  
    And I think the loops at line 45 and 46 aren't correct. If you get problems try changing
    for(set .@i,0;.@i<getarraysize(.@reward);set .@i,.@i+1) if (!checkweight(.@reward[.@i],.@reward[.@i+1])) { mes " "; mes "^FF0000Overweight!^000000"; close; } for(set .@i,0;.@i<getarraysize(.@reward);set .@i,.@i+1) getitem .@reward[.@i],.@reward[.@i+1]; to:
    for(set .@i,0;.@i<getarraysize(.@reward);set .@i,.@i+2) if (!checkweight(.@reward[.@i],.@reward[.@i+1])) { mes " "; mes "^FF0000Overweight!^000000"; close; } for(set .@i,0;.@i<getarraysize(.@reward);set .@i,.@i+2) getitem .@reward[.@i],.@reward[.@i+1];  
    Full script fixed (I think):
    //===== Hercules Script ======================================//= Guild Prize Giveaway//===== By: ==================================================//= AnnieRuru / Mysterious / Joseph//===== Current Version: =====================================//= 1.7//===== Compatible With: =====================================//= Hercules//===== Description: =========================================//= Rewards guild masters of castle owners after each//= War of Emperium session.//===== Additional Comments: =================================//= v1.0 - Intitial Re-release [Mysterious]//= v1.1 - Language structures [Mysterious]//= v1.2 - Added divisions [Mysterious]//= v1.3 - Added proper information [Mysterious]//= v1.4 - Optimized! [Euphy]//= v1.5 - Little bit of cleaning [Mysterious]//= v1.6 - Fixed Agit on/off corruption. [Joseph]//= v1.7 - Fixed overweight issues [Joseph]//= v1.8 - Fixed default script failing to parse, and a //= possible issue on the getitem and overweight //= checking loops [jaBote]//============================================================prontera,163,166,4 script Castle Rewards 871,{ function GetCastle; setarray .@reward[0],671,1; //<Item_ID>,<Amount>{,...} set .@n$,"["+strnpcinfo(0)+"]"; mes "Your guild [^0000FF"+getguildname(getcharid(2))+"^000000] has conquered:"; for(set .@i,0;.@i<getarraysize(.Castles$);set .@i,.@i+1) if (getcastledata(.Castles$[.@i],1) == getcharid(2)) { mes " > "+getcastlename(.Castles$[.@i])+""; set .@c,1; setarray .@uh$[getarraysize(.@uh$)],.Castles$[.@i],(1<<.@i); } if (!.@c) { mes " > No castles."; close; } next; if (select(((getguildmasterid(getcharid(2))==getcharid(0))?((agitcheck()||agitcheck2())?"":"Redeem Reward"):"")+":Close")==2) close; mes .@n$; mes "Please select a castle to redeem your guild reward."; for(set .@i,0;.@i<getarraysize(.@uh$);set .@i,.@i+2) set .@m$,.@m$+($castle_reward&(1<<GetCastle(atoi(.@uh$[.@i+1])))?"^0000FF":"^FF0000")+getcastlename(.@uh$[.@i])+"^000000:"; next; set .@m,select(.@m$)-1; if ($castle_reward&(1<<GetCastle(atoi(.@uh$[.@m*2+1])))) { mes .@n$; mes "Here's your reward for conquering ^0000FF"+getcastlename(.@uh$[.@m*2])+"^000000."; mes "You should divide these among your guild members."; for(set .@i,0;.@i<getarraysize(.@reward);set .@i,.@i+2) if (!checkweight(.@reward[.@i],.@reward[.@i+1])) { mes " "; mes "^FF0000Overweight!^000000"; close; } for(set .@i,0;.@i<getarraysize(.@reward);set .@i,.@i+2) getitem .@reward[.@i],.@reward[.@i+1]; set $castle_reward,$castle_reward^(1<<GetCastle(atoi(.@uh$[.@m*2+1]))); close; } mes .@n$; mes "It seems like you've redeemed the reward."; close; function GetCastle { for(set .@j,0;.@j<getarraysize(.Castles$);set .@j,.@j+1) { set .@c1,.@c2|(1<<.@j); if (getarg(0)==.@c1) return .@j; } return -1; }OnAgitEnd:OnAgitEnd2: for(set .@i,0;.@i<getarraysize($WOE_CONTROL);set .@i,.@i+4) if (gettime(4)==$WOE_CONTROL[.@i] && gettime(3)==$WOE_CONTROL[.@i+2] && $castle_reward&(1<<GetCastle($WOE_CONTROL[.@i+3])) == 0) set $castle_reward,$castle_reward|(1<<GetCastle($WOE_CONTROL[.@i+3])); end; OnInit: setarray .Castles$, "prtg_cas01","prtg_cas02","prtg_cas03","prtg_cas04","prtg_cas05", "payg_cas01","payg_cas02","payg_cas03","payg_cas04","payg_cas05", "gefg_cas01","gefg_cas02","gefg_cas03","gefg_cas04","gefg_cas05", "aldeg_cas01","aldeg_cas02","aldeg_cas03","aldeg_cas04","aldeg_cas05", "arug_cas01","arug_cas02","arug_cas03","arug_cas04","arug_cas05", "schg_cas01","schg_cas02","schg_cas03","schg_cas04","schg_cas05"; end;}
  7. Upvote
    jaBote reacted to ossi0110 in Additional Buff make me stoned   
    this will work
     
    and you can easy look in the const.txt for the correct syntax
     
     
          // Food Buffs //specialeffect2 EF_FOOD01; sc_start SC_FOOD_STR, 360000, 10; //specialeffect2 EF_FOOD03; sc_start SC_FOOD_AGI, 360000, 10; //specialeffect2 EF_FOOD02; sc_start SC_FOOD_VIT, 360000, 10; //specialeffect2 EF_FOOD02; sc_start SC_FOOD_INT, 360000, 10; //specialeffect2 EF_FOOD04; sc_start SC_FOOD_DEX, 360000, 10;​ 
  8. Upvote
    jaBote reacted to Olrox in Maya to 3Ds max to Granny (I cant make the Animation to work)   
    At the time you export your FBX you have to enable the -animations- option; ah and btw, WoW animated models have bugs in their animation at the end frame that you must fix manually.
     
    Also, please post in the proper forums. The showcase forum is not the place to ask for support.
  9. Upvote
    jaBote got a reaction from Envolvents in Ticket Vip   
    Vou mover o tópico para a seção em Português devido a que a maioria do conteúdo é em Português.
  10. Upvote
    jaBote reacted to Patskie in Request Script   
    OnPCJobLvUpEvent:if ( JobLevel == 10 ) mes "Pop up";close;
  11. Upvote
    jaBote reacted to Patskie in delete certain items when entering the map.   
    It would be great if you post all your request at your topic description so that people who will help you out will not re-write their initial script.
  12. Upvote
    jaBote reacted to Patskie in limited broadcast   
    prontera,150,150,0 script Sample 100,{ mes "Input your message"; next; input .@m$; close2; if ( .@m$ != "" ) { query_sql "SELECT `account_id` FROM `char` WHERE `base_level` < 20 AND `online` = '1'",.@aid; while ( .@i < getarraysize(.@aid) ) { if ( attachrid( .@aid[.@i] ) ) dispbottom "" + .@m$ + ""; detachrid; .@i++; } } end;}
  13. Upvote
    jaBote reacted to kisuka in Authors of Athena   
    Athena has been passed along from team to team through the ages: from Athena, to AthenaMods, to eAthena, to 3CeAM, to rAthena, and now Hercules. With each new development team that acquires the project, a little bit more is done to improve the overall project that is Athena.
     
    There have been countless people involved with this project through many years. Many of them have put in countless hours, and contributed thousands of lines of code (some of which still exists to this day).
     
    Athena would not be where it is today without the help of these amazing developers. Because of this, I'm adding in this AUTHORS file to give tribute and credit to the amazing people which have made this project possible.
     
    Thank you to everyone who has helped in the development of Athena. You are amazing, skilled, and your work will live on through the years to come. This project is yours, and has lasted over 10 years thanks to the dedication and support you have put in.
     
    View AUTHORS List
     
    If you know any past developers which have contributed to Athena and aren't on the list, please submit a pull request
     
    To any development teams that are maintaining their own forks of Athena, please include this AUTHORS file in your own repos, give credit to all these amazing people.
  14. Upvote
    jaBote got a reaction from hideki6 in different daily monsters for everyone   
    Maybe you want to use this plugin: getandmob. This way your script will be easier to make.

    Most basic sample:
    map,x,y,dir script MonsterHunting sprite,{ OnPCLoginEvent: // So that newly logged players can't exploit   if ( lastdate != gettime(8) ) { // gettime(8) returns day of the year. Error margin: if someone logs in again after an exact year. set mobID, getrandmob(0,99); set lastdate, gettime(8); } dispbottom "Your mob of the day is: " + strmobinfo(1,mobID); end }  
    I assume you know basic scripting for doing the rest of what you want. This, as requested, just picks you a mob that can be different to another player's.
  15. Upvote
    jaBote reacted to Patskie in buffer npc   
    Full protection at Hercules i guess : 
    SC_PROTECTWEAPON 72SC_PROTECTSHIELD 73SC_PROTECTARMOR 74SC_PROTECTHELM 75 rAthena and Hercules have different const.txt. Please refer to db/const.txt
  16. Upvote
    jaBote got a reaction from khenma in How to set that when max zeny was reached it will convert to coins?   
    You should perform a source edit (which I don't know) for fulfilling that.
  17. Upvote
    jaBote reacted to Angelmelody in Quick HP/SP recovery in towns   
    you can use  SC_ITEMSCRIPT on player to run item script  when players entry into a town
     
    sc_start SC_ITEMSCRIPT,180000,itemid;
  18. Upvote
    jaBote reacted to Cydh in Official VIP System   
    The difference between iRO/kRO (and with other official servers) maybe on the features and rates, but they have same behavior.
    Isn't Herc (and other emu that implement it) can make the configs/settings is adjustable by users?
  19. Upvote
    jaBote reacted to Dastgir in How to disable 3rd jobs?   
    src/config/renewal.h
    Comment
    #define RENEWAL and you can see below, more renewal stuff, you can comment them too(if you want pure pre-renewal).
     
    Then recompile the server.
  20. Upvote
    jaBote reacted to Brynner in Xantara's Flux CP databases are empty?   
    better to use proper fluxcp for hercules.
     
    https://github.com/HerculesWS/FluxCP
  21. Upvote
    jaBote reacted to Angelisk in VIP Room - Indoor   
    File Name: VIP Room - Indoor
    File Submitter: Angelisk
    File Submitted: 18 Nov 2013
    File Category: Maps & Textures
     

    :!: Angel's Arts - Mapping Project :!:

     
    To view all my works click on the link above (guides you at my Facebook page).

    This map was developed on purpose of being a vip room (divided in 3 parts: entrance(1st floor), living room(2nd floor) and suite(2nd floor)).


    Any desired changes are by your own. You can use this map for whatever you want.
    The sale of this map is prohibited (since it's being released for free).
    Let the credits on the map if you do not perform major changes (only visible on map editor / not apparent for players). Don't entitle yourself as the author of this content.
    Redistribution in other communities is free as long as the credits are placed.


    Thanks, Angel.
    Facebook: Angel's Arts Mapping Project.

    rAthena profile: Angelisk
    brAthena profile: Angelisk - link down
    TSR profile: Angelisk
    R.O. Services profile: Angel

    Click here to download this file
  22. Upvote
    jaBote got a reaction from Mumbles in how to detach login, char, map?   
    For me, using ctrl+A, then D has always worked. Not sure about ctrl+shift+A, then D.
  23. Upvote
    jaBote got a reaction from mrlongshen in Help with this script please   
    Yes, just copy that script and bind @go with very few modifications.
     
     
    Yes.
  24. Upvote
    jaBote got a reaction from Shio in Wandering Poring v1.0   
    Just set an additional label in which you do all necessary calculations and then fire the OnAtcommand label.
     
    Or even better: make the OnAtcommand label just process if there's been a map specified and your additional label set the map, then call a new label called OnEvent or so. Example:
     
    - script poringbind -1,{OnInit: unbindatcmd "poring"; bindatcmd("poring","poringbind::OnAtcommand",20,90); end; OnAtcommand:if(getgroupid() < 20) { end; }set .map$,.@atcmd_parameters$[0]; if(@map$ == "") {dispbottom "Syntax: @poring <mapname>";dispbottom "Five Porings will spawn on the map you choose. Recommended usage for this event is 3-5 times per day.";dispbottom "NOTE: Do NOT use capitals in the map name otherwise no Poring will spawn!";end;}donpcevent strnpcinfo(3)+"::OnEvent";end; OnMinute01: // Put your custom triggers hereset .map$, "yourmapname";donpcevent strnpcinfo(3)+"::OnEvent";end;OnEvent:monster .map$,0,0,"Wandering Poring",1002,5,"poringbind::OnKill";announce "[Wandering Poring] : 5x Wandering Porings have been sighted on the map: "+.map$+". The first person to find and kill each will receive an award!",0;end; OnKill:// Update Here!set .@prize,rand(1,5);announce "[Wandering Poring] : "+strcharinfo(0)+" has captured a Wandering Poring on the map "+strcharinfo(3)+"!",0;// Syntax: Item ID / Quantityif(.@prize == 1) { getitem 501,1; }if(.@prize == 2) { getitem 502,1; }if(.@prize == 3) { getitem 503,1; }if(.@prize == 4) { getitem 504,1; }if(.@prize == 5) { getitem 505,1; }// 25 Poring Coins Base Prizegetitem 7539,25;end; }
  25. Upvote
    jaBote reacted to Mumbles in how can i make this script work?   
    You could try something like this:
    while (getrefine(EQI_ARMOR) < 6) { successrefitem EQI_ARMOR;}  
    Item script version:
    while (getrefine(EQI_ARMOR) < 6) { successrefitem EQI_ARMOR; }  
    If you're using a "Guarantee_Armor_6Up", I would assume you're refining an armor lol. The only choice the user should have is wearing the desired equipment to be refined.
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.