ittiphol Posted December 8, 2019 Group: Members Topic Count: 27 Topics Per Day: 0.01 Content Count: 115 Reputation: 7 Joined: 05/09/19 Last Seen: May 20, 2021 Share Posted December 8, 2019 (edited) This script it's works fine but not use Auto Potion on attack I must use this script please fix on this script please help .... //===== rAthena Script ======================================= //= Auto-Potion //===== By: ================================================== //= Euphy //===== Current Version: ===================================== //= 1.0 //===== Compatible With: ===================================== //= rAthena Project //===== Description: ========================================= //= Provides an @autopot command to automatically use potions //= when hit (i.e. 'autobonus2'). //===== Additional Comments: ================================= //= 1.0 First version. [Euphy] //============================================================ - script #autopot -1,{ OnInit: bindatcmd("autopot",strnpcinfo(0)+"::OnCommand"); end; L_Help: dispbottom "Available commands:"; dispbottom " @autopot <item id> {<min hp % [1..100]> {<delay [50..1000]>}}"; dispbottom " @autopot <on|off>"; dispbottom " @autopot list"; dispbottom " @autopot info"; dispbottom " @autopot help"; return; L_Info: dispbottom "------ Auto-Potion Information ------"; dispbottom "POTION: " + getitemname(@autopot_id) + " (" + @autopot_id + ")"; dispbottom "MIN HP: " + @autopot_min + " %"; dispbottom "DELAY: " + @autopot_delay + " ms"; dispbottom "---------------------------------------------"; return; L_Start: .@potion = getarg(0); .@min = getarg(1); .@delay = getarg(2); if (.@min < 1 || .@min > 100) .@min = 90; if (.@delay < 50 || .@delay > 1000) .@delay = 50; // lower values will increase server strain switch (.@potion) { case 501: case 507: case 545: case 569: .@effect = EF_POTION1; break; case 502: .@effect = EF_POTION2; break; case 503: case 508: case 546: case 579: case 11500: .@effect = EF_POTION3; break; case 504: case 509: case 547: case 11501: case 11503: case 11548: .@effect = EF_POTION4; break; case 512: case 513: case 515: case 516: case 548: case 549: case 550: case 582: case 607: .@effect = EF_POTION7; break; default: .@effect = EF_EXIT; break; } if (BaseLevel < getiteminfo(.@potion,12)) { message strcharinfo(0), "Your base level is too low to use '" + getitemname(.@potion) + "'."; end; } @autopot_id = .@potion; @autopot_min = .@min; @autopot_delay = .@delay; @autopot_eff = .@effect; @autopot_none = 0; bonus_script "{ callfunc \"start_autopot\"; }",86400,8,0,SI_INCHEALRATE; message strcharinfo(0), "Auto-Potion started."; callsub L_Info; return; OnCommand: if (!getarraysize(.@atcmd_parameters$)) { message strcharinfo(0), "Invalid syntax."; callsub L_Help; end; } .@command$ = strtolower(.@atcmd_parameters$[0]); if (.@command$ == "on") { if (@autopot_min) message strcharinfo(0), "Auto-Potion is already on."; else if (@autopot_min_) { @autopot_min = @autopot_min_; @autopot_min_ = 0; message strcharinfo(0), "Auto-Potion enabled."; callsub L_Info; } else { message strcharinfo(0), "Auto-Potion has not been set."; callsub L_Help; } end; } else if (.@command$ == "off") { if (!@autopot_min) message strcharinfo(0), "Auto-Potion is already off."; else { @autopot_min_ = @autopot_min; @autopot_min = 0; message strcharinfo(0), "Auto-Potion disabled."; } end; } else if (.@command$ == "list") { // credits to AnnieRuru getinventorylist; for (; .@i < @inventorylist_count; .@i++) { if (getiteminfo(@inventorylist_id[.@i],2) == IT_HEALING) { .@items[.@count] = @inventorylist_id[.@i]; .@menu$ = .@menu$ + sprintf("~ ^0055FF%s^000000 (%dx):", getitemname(@inventorylist_id[.@i]), countitem(@inventorylist_id[.@i])); .@count++; } } if (.@count) { // 'mes' window needed if player is hit during selection mes "[ Auto-Potion ]"; mes "Select a healing item."; .@select = select(.@menu$ + " ^777777Cancel^000000") - 1; if (.@select != .@count) callsub L_Start, .@items[.@select], 0, 0; close2; } else message strcharinfo(0), "There are no healing items in your inventory."; end; } else if (.@command$ == "info") { if (@autopot_min) { message strcharinfo(0), "Auto-Potion information is displayed below."; callsub L_Info; } else message strcharinfo(0), "Auto-Potion is not enabled."; end; } else if (.@command$ == "help") { message strcharinfo(0), "List of commands is displayed below."; callsub L_Help; end; } else { .@potion = atoi(.@atcmd_parameters$[0]); if (getiteminfo(.@potion,2) != IT_HEALING) { message strcharinfo(0), getitemname(.@potion) + " is not a healing item."; end; } callsub L_Start, .@potion, atoi(.@atcmd_parameters$[1]), atoi(.@atcmd_parameters$[2]); end; } } function script start_autopot { if (@autopot_active) end; @autopot_active = 1; while (Hp && Hp * 100 / MaxHp < @autopot_min) { if (!countitem(@autopot_id)) { if (@autopot_none <= gettimetick(2)) { @autopot_none = gettimetick(2) + 10; dispbottom "There are no '" + getitemname(@autopot_id) + "' in your inventory."; } break; } if (getstatus(SC_BERSERK) || getstatus(SC_SATURDAYNIGHTFEVER) || getstatus(SC_GRAVITATION) || getstatus(SC_TRICKDEAD) || getstatus(SC_HIDING) || getstatus(SC__SHADOWFORM) || getstatus(SC__INVISIBILITY) || getstatus(SC__MANHOLE) || getstatus(SC_KAGEHUMI) || getstatus(SC_HEAT_BARREL_AFTER)) break; if (getstatus(SC_STONE) || getstatus(SC_FREEZE) || getstatus(SC_STUN) || getstatus(SC_SLEEP)) ; else { delitem @autopot_id,1; consumeitem @autopot_id; specialeffect2 @autopot_eff; } sleep2 @autopot_delay; } @autopot_active = 0; autobonus2 "{}",10000,1,BF_WEAPON|BF_MAGIC; end; } Edited December 8, 2019 by ittiphol Quote Link to comment Share on other sites More sharing options...
Question
ittiphol
This script it's works fine
but not use Auto Potion on attack
I must use this script please fix on this script
please help ....
Link to comment
Share on other sites
0 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.