-
Posts
44 -
Joined
-
Last visited
Ylen X Walker's Achievements
-
very nice sir! Keep it up!
-
@autoattack random disconnect when being used on latest trunk
Ylen X Walker posted a question in Source Support
Hey guys! Anyone encountering this? I've been auto-attacking monsters for about 30 mins then this shows up. I installed it on the latest rAthena version. What could be the cause? Code is originally from https://rathena.org/board/topic/71297-autoattack/ I Implemented this code: atcommand.cpp // Auto Attack --- put before all command static int buildin_autoattack_sub(struct block_list *bl,va_list ap) { int *target_id=va_arg(ap,int *); *target_id = bl->id; return 1; } void autoattack_motion(struct map_session_data* sd) { int i, target_id; if( pc_isdead(sd) || !sd->state.autoattack ) return; for(i=0;i<=9;i++) { target_id=0; map_foreachinarea(buildin_autoattack_sub, sd->bl.m, sd->bl.x-i, sd->bl.y-i, sd->bl.x+i, sd->bl.y+i, BL_MOB, &target_id); if(target_id){ unit_attack(&sd->bl,target_id,1); break; } target_id=0; } if(!target_id && !pc_isdead(sd) && sd->state.autoattack){ unit_walktoxy(&sd->bl,sd->bl.x+(rand()%2==0?-1:1)*(rand()%25),sd->bl.y+(rand()%2==0?-1:1)*(rand()%25),0); } return; } static TIMER_FUNC(autoattack_timer) { struct map_session_data *sd=NULL; sd=map_id2sd(id); if(sd==NULL || pc_isdead(sd) || !sd->state.autoattack ) return 0; if(sd->state.autoattack) { unit_stop_attack(&sd->bl); autoattack_motion(sd); if(DIFF_TICK(sd->autoattack_delay,gettick())> 0){ clif_authfail_fd(sd->fd, 15); return 0; } else{ add_timer(gettick()+1000,autoattack_timer,sd->bl.id,0); // 1000 is delay sd->autoattack_delay = gettick() + 1000; // 1000 is delay } } return 0; } ACMD_FUNC(autoattack) { nullpo_retr(-1, sd); if (sd->state.autoattack) { sd->state.autoattack = 0; unit_stop_attack(&sd->bl); clif_displaymessage(fd, "Auto Attack has been deactivated."); } else { sd->state.autoattack = 1; add_timer(gettick()+1000,autoattack_timer,sd->bl.id,0); clif_displaymessage(fd, "Auto Attack activated."); } return 0; } ACMD_FUNC(accinfo) { char query[NAME_LENGTH]; @@ -8827,6 +8881,7 @@ * Command reference list, place the base of your commands here **/ AtCommandInfo atcommand_base[] = { + ACMD_DEF(autoattack), ACMD_DEF2("warp", mapmove), ACMD_DEF(where), ACMD_DEF(jumpto), status.hpp OPTION_OKTOBERFEST = 0x10000000, OPTION_SUMMER2 = 0x20000000, + OPTION_AUTOATTACK = 0x40000000, pc.hpp struct map_session_data { struct block_list bl; struct unit_data ud; struct view_data vd; struct status_data base_status, battle_status; struct status_change sc; struct regen_data regen; struct regen_data_sub sregen, ssregen; + unsigned int autoattack_delay; // autoattack timer unsigned int killable : 1; unsigned int doridori : 1; unsigned int ignoreAll : 1; + unsigned int autoattack : 1; // autoattack unsigned int debug_remove_map : 1; // temporary state to track double remove_map's [FlavioJS] unsigned int buyingstore : 1; unsigned int lesseffect : 1; unsigned int vending : 1; -
What does it do sir?
-
Hey guys! Anyone encountering this? I've been auto-attacking monsters for about 30 mins then this shows up. I installed it on the latest rAthena version. What could be the cause?
-
my ctrl + v. I was trying to sell this in discord.
-
4th Job Development Project
Ylen X Walker replied to Rytech's topic in Project Concepts & In Progress
Cool Work! -
Good day sir / mam, what else am I missing in the code? Item link prints unknown item - script itemdescs -1,{ end; OnInit: bindatcmd "ii2",strnpcinfo(3)+"::OnAtcommand"; bindatcmd "itemdescription",strnpcinfo(3)+"::OnAtcommand"; end; OnAtcommand: mes "^3355FF[ Item Description Search ]^000000"; mes "What item are you looking for?"; input [email protected]$; [email protected] = searchitem([email protected][0],[email protected]$); mes "I found " + [email protected] + " items:"; for ([email protected] = 0; [email protected] < [email protected]; [email protected]++) // Display name (eg: "Apple[0]") mes "<ITEM>"+getitemname([email protected][[email protected]]) +"<INFO>"[email protected]$+"</INFO></ITEM> [" + getitemslots([email protected][[email protected]]) + "]"; end; } -- This is not my original code. Code came from sir Nova. CTTO.
-
Good day! I'm having some issues regarding Endless Tower wherein after I defeated Entweihen Crothen, there's a chance that Naght Sieger will not appear and it will just send you back to alberta. I tried entering the memorial dungeon again and on the 99th Floor I can't get past it but there's a warp it gives me ashes of darkness that can be exploit over and over by just stepping into the portal.
-
Good day guys! Anyone can help me convert this to rathena compatability? Thanks in advance! //================= Hercules Script ======================================= //= _ _ _ //= | | | | | | //= | |_| | ___ _ __ ___ _ _| | ___ ___ //= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| //= | | | | __/ | | (__| |_| | | __/\__ \ //= \_| |_/\___|_| \___|\__,_|_|\___||___/ //================= License =============================================== //= This file is part of Hercules. //= http://herc.ws - http://github.com/HerculesWS/Hercules //= //= Copyright (C) 2017 Hercules Dev Team //= Copyright (C) 2017 Smokexyz //= //= Hercules is free software: you can redistribute it and/or modify //= it under the terms of the GNU General Public License as published by //= the Free Software Foundation, either version 3 of the License, or //= (at your option) any later version. //= //= This program is distributed in the hope that it will be useful, //= but WITHOUT ANY WARRANTY; without even the implied warranty of //= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the //= GNU General Public License for more details. //= //= You should have received a copy of the GNU General Public License //= along with this program. If not, see <http://www.gnu.org/licenses/>. //========================================================================= //= Option Master (Item Options NPC @see db/item_options.conf) //================= Description =========================================== //= Select from a list of your equipments, one to enhance with up to 5 options. //= A list of the first 10 options are provided in this npc. //================= Current Version ======================================= //= 1.0 //========================================================================= prontera,153,180,4 script Option Master 4_DOG01,{ callsub(StartTalking); end; OnInit: /** * General Configuration */ /* Chance of the enhancement process to fail. (0 - 99 in percent) */ .chance_of_failure = 10; /* Delete the item on failure? (true/false) */ .delete_on_failure = true; /* Required amount of zeny for a try. */ .zeny_requirement = 100; /* Minimum amount of the bonus value. * For negative effects or certain bonuses that require negative values * Maximum possible value is -INT16_MAX) */ .minimum_bonus_amount = -100; // usually used with delay bonus options, although not provided in the script. /* Maximum amount of the bonus value. * Maximum possible value is INT16_MAX */ .maximum_bonus_amount = 100; /* Disable selection of bonus value (true/false) */ .enable_random_bonus = false; /* Item Option Descriptions */ setarray(.options$[0], "Max HP", "Max SP", "STR", "AGI", "VIT", "INT", "DEX", "LUK"); /* Item Option Constants */ setarray(.option_constants[0], VAR_MAXHPAMOUNT, VAR_MAXSPAMOUNT, VAR_STRAMOUNT, VAR_AGIAMOUNT, VAR_VITAMOUNT, VAR_INTAMOUNT, VAR_DEXAMOUNT, VAR_LUKAMOUNT); end; StartTalking: [email protected]$ = _("[ ^990099Option Master^000000 ]"); disable_items(); mes([email protected]$); mesf("Hey there %s", strcharinfo(PC_NAME)); mes("There's a new-found method of adding options to an equipment that I have been working on."); next(); if (.enable_random_bonus) { mes([email protected]$); mes("Equipment bonuses are added randomly per slot!"); mes("So if you wind up with a low amount of bonus, don't hesitate to override the slot."); next(); } mes([email protected]$); mes("Would you like me to add extra stats to your equipment?"); next(); if (select("Of course!", "Meh, not right now.") == 2) { mes([email protected]$); mes("Alright then, catch you later."); close(); } // Build the Menu. setarray([email protected]$[1], "Head", "Body", "Left Hand", "Right Hand", "Robe", "Shoes", "Accessory 1", "Accessory 2", "Head 2", "Head 3"); [email protected]$ = ""; for ([email protected] = 1; [email protected] <= 10; [email protected]) [email protected]$ += ((getequipisequiped([email protected])) ? getequipname([email protected]) : [email protected]$[[email protected]] + "-[Not equipped]") + ":"; // Select the part. [email protected]_index = select([email protected]$); // Check if it's worn. if (!getequipisequiped([email protected]_index)) { mes([email protected]$); mes("Brah, your item ain't equipped."); close(); // Check if it allows options } else if (!getequipisenableopt([email protected]_index)) { mes([email protected]$); mes("Brah, this equip can't have options."); close(); // Check if equipment is identified. } else if (!getequipisidentify([email protected]_index)) { mes([email protected]$); mes("Brah, this equip ain't identified."); close(); } // Present a list of currently infused options. do { [email protected]$ = ""; [email protected] = false; // Build the menu of current options. for ([email protected] = 1; [email protected] <= MAX_ITEM_OPTIONS; [email protected]) { // call getequipoption(<equip_index>, <type>, <slot>); // if the return is <0, it's a script error. // if the return is 0, the slot is empty. // if the return is >0, the slot is unavailable. [email protected] = getequipoption([email protected]_index, [email protected], IT_OPT_INDEX); if ([email protected] > 0) [email protected]$ += ([email protected]) + ") " + .options$[[email protected] - 1] + ":"; else [email protected]$ += ([email protected]) + ") ^999999Empty^000000" + ":"; } // Option Slot is the actual option slot 0-MAX_ITEM_OPTIONS (@see mmo.h) [email protected]_slot = select([email protected]$); // Check for used slot and request user action if found. if (getequipoption([email protected]_index, [email protected]_slot, IT_OPT_INDEX) > 0) { mes([email protected]$); mes("This slot is already used up!"); if (select("^990000Override the slot.^000000", "Choose again.") == 2) [email protected] = true; next(); } } while ([email protected]); // loop if the slot is not to be overridden // Present a list of available bonuses. mes([email protected]$); mes("Which of the following item bonuses would you like to add to this item?"); next(); // Build the Options! [email protected]$ = ""; for ([email protected] = 0; [email protected] < getarraysize(.options$); [email protected]) [email protected]$ += ([email protected] + 1) + ") " + .options$[[email protected]] + ":"; do { // Select the options! [email protected]_variable = select([email protected]$); next(); mes([email protected]$); mesf("You chose ^009900%s^000000!", .options$[[email protected]_variable - 1]); mes("Are you sure?"); next(); } while (select("Fo Shizzle.", "I'ma re-evaluate, brah.") == 2); // Select a bonus or randomise. if (.enable_random_bonus) { [email protected] = rand(.maximum_bonus_amount); } else { do { mes([email protected]$); mesf("Please input the bonus amount of ^009900%s^000000 you want to add!", .options$[[email protected]_variable - 1]); mesf("(Min: %d, Max: %d)", .minimum_bonus_amount, .maximum_bonus_amount); [email protected] = input([email protected], .minimum_bonus_amount, .maximum_bonus_amount); next(); } while ([email protected]); } // If there's a chance of failure, inform the user. if (.chance_of_failure) { mes([email protected]$); mes("Alright so,"); mes("I'll have you know..."); mesf("There's a ^990000%d%% chance of failure^000000.", .chance_of_failure); mes("Because, well... I didn't go to school."); next(); mes([email protected]$); if (.delete_on_failure) { mes("If I fail, your item will break and it ^990000will be destroyed^000000!"); } mes("Are you still ready to go forward with this?"); next(); if (select("Fo shizzle.", "Hells naw, go back to school.") == 2) { mes([email protected]$); mes("Geez, you don't have to be so harsh about it."); close(); } next(); } // If there's a Zeny Requirement, perform the usual. if (.zeny_requirement > 0) { mes([email protected]$); mesf("You also have to pay %dZ.", .zeny_requirement); next(); if (select("Of course!", "No way!") == 2) { mes([email protected]$); mes("Well, see you around then..."); close(); } if (Zeny < .zeny_requirement) { mes([email protected]$); mes("You don't have enough Zeny!"); close(); } Zeny -= .zeny_requirement; } // Check if there's a chance of failure, set and roll the dice. if (.chance_of_failure && rand(100) <= .chance_of_failure) { mes([email protected]$); mes("^990000I failed!^000000"); mes("Guess I should go back to school."); // Delete the item if flagged. if (.delete_on_failure) failedrefitem([email protected]_index); // Simulate failed refinement of the item and delete. } else { // Set the Item Option bonuses in the slot see db/item_options.conf for more info. setequipoption([email protected]_index, [email protected]_slot, .option_constants[[email protected]_variable - 1], [email protected]); mes([email protected]$); mes("^009900Praise Jesus^000000"); mes("I have added an option to your item."); mes("My skills are flawless!"); } next(); mes([email protected]$); mes("See you around!"); close(); }
-
[Showcase] Meteor Storm Custom Animation
Ylen X Walker replied to vferrari's topic in Spriting & Palette Showcase
Hi guys how can I edit it like this? ^ This one only got the exclamation graphic but it doesn't have the meteor sprite -
Is it just me or I get kicked out of the server whenever I hit a wall. No errors on map server.
-
Chris' Script Collection [Last Update: 04-06/2021]
Ylen X Walker replied to llchrisll's topic in Script Collections
Good day sir! Does it work on latest revision of rAthena? https://raw.githubusercontent.com/llchrisll/rAthena-Scripts/master/released/Systems/TrainingSystem.txt -
Some Mechanic skill doesn't give effect while in Madogear #3774
Ylen X Walker posted a question in Source Support
Is this really fixed? The latest revision still doesn't give any effect. -
Good day sir! Anyone can help me edit some of the lines wherein I can input an item name (not only item id) and then it will show at least 10 items with the same name or id with its corresponding items links? //===== rAthena Script ======================================= //= In-game Item Descriptions Script //===== By: ================================================== //= Nova http://www.novaragnarok.com //============================================================ - script itemdescs -1,{ end; OnInit: bindatcmd "ii2",strnpcinfo(3)+"::OnAtcommand"; bindatcmd "itemdesc",strnpcinfo(3)+"::OnAtcommand"; end; OnAtcommand: mes "^3355FF[ Item Description Search ]^000000"; [email protected] = atoi([email protected]_parameters$[0]); mes "<ITEM>"+getitemname([email protected])+"<INFO>"[email protected]+"</INFO></ITEM>"; mes ""; mes "Click on the name of the item above."; end; }