 |
OpenKore Forum OpenKore Development & Support
|
View previous topic :: View next topic |
Author |
Message |
hakore Spammer


Joined: 12 Apr 2005 Posts: 682
|
Posted: Sat Jul 02, 2005 8:43 pm Post subject: reactOnKillSteal: react when kill stealed |
|
|
reactOnKillSteal v.1.4.1
by hakore
Minimum Openkore version required: v.1.6.2
Note. It is possible to run this plugin in v.1.6.1. See 5th post below for details.
Non-KS-botters! It's time we intelligently react when kill stealed!
Version changes:
9/1/2005
- fixed (hopefully) the bug where the plugin reacts on the actions of Unknown #0
- will now react if both whenPlayerIsKnown and whenPlayerIsUnknown are set to 1 (the same if both of them are set to 0 or unset)
7/30/2005
- now allows reaction to unknown players (this includes GM in perfect hide and ranged players that kill steals you from afar).
- options added: whenPlayerIsUnknown (flag), whenPlayerIsKnown (flag)
- a million thanks to --Roger-- for helping me set a test server.
7/25/2005
- IMPORTANT: You have to add reactOnKillSteal 1 in config.txt to enable this plugin.
- options added: playerIDs (player IDs), notPlayerIDs (player IDs)
7/13/2005
- added smart kill stealing detection (see features below)
- added typing delay simulation (see features below)
- added forced emoticon delay (see features below)
- INCOMPATIBLE CHANGE: timeout and timeoutSeed inside the reactOnKillSteal blocks are no longer supported. Use reactOnKillSteal_timeout and reactOnKillSteal_timeoutSeed instead (see syntax definition below)
- there is no default value for timeout now since a delay is already resolved for emoticons for which the default timeout is intended to be used.
7/6/2005
- tested on v.1.6.1, with the modified functions.pl
- you will now react on monsters attacking you, even if you are not currently attacking them. Useful for mob-training.
- options added: attackTargetOnly (flag), player_reactionCount (range)
- added a custom "skill name" Normal Attack to be used in skills and notSkills options. It is used to distinguish normal attacks to skill use.
- reaction usages are now saved for each player and not for each monsters. Currently, the usage count is only reset when the player leaves the screen. Still finding ways to improve on this.
7/4/2005
- add support for v.1.6.1. Your functions.pl, however, may need to be modified a bit.
- changed keyword names @monster and @player to @monsterNum and @playerNum, respectively.
- fixed a possible bug when using keywords. A player might be named the same as the keywords defined. Placing the replace code for @playerName after all other keyword replacement will prevent this.
7/3/2005
- first release
Introduction:
This plugin that allows you to react when kill stealed by automatically using console commands.
What is kill steal?
Kill steal, as far as this plugin is concerned, is that event when some other player attacks or use skills on the monster you are already attacking or that which is currently attacking you (for mob training). Kill stealing therefore, as understood by this plugin, is not necessarily a bad thing. For example, when your support priest cast Lex Divina on the monster, this plugin still considers it kill stealing. The options provided let you decide which event is bad, and which is good, so you may react accordingly. For the same example above, you might want to use a /thx emoticon as reaction or just ignore the event by setting other condition options. It's all up to you.
Why console command?
Console commands give users flexibility on how they want to react to kill stealing. The most common reactions would be to issue a public chat, a private message or an emoticon. But what if you want to use skills on the target monster when you detect being kill stealed? With console commands, Rogues will have an option to use the Intimidate skill, for example. If you want to be more creative, you could use this plugin in conjuction with the macro plugin.
config.txt - Syntax definitions:
- reactOnKillSteal (flag) new in v.1.3
flag: 1 = on, 0 = off
- enables/disables the plugin.
- reactOnKillSteal_timeout (seconds) new in v.1.2
- specifies the minimum time to wait before reacting again.
- reactOnKillSteal_timeoutSeed (seconds) new in v.1.2
- if this is set, the timeout will be increased by a random value less than or equal to the specified time (in seconds). Use this to prevent Kore from reacting in fixed time intervals, which makes it more suspicious.
Code: | reactOnKillSteal_timeout 2
reactOnKillSteal_timeoutSeed 5
reactOnKillSteal e 23; e 7;e 6; c wa?; e 16 {
altCommand_persist
} |
reactOnKillSteal (commands)
commands: a semi-colon (";") separated list of console commands.
A random command out of this list will be executed if the conditions are met for this block. This command will be executed the first time you detect a kill steal hit to a monster.
- altCommand_# (commands)
#: change this to an integer starting from 0 (e.g. altCommand_0, altCommand_1)
commands: a semi-colon (";") separated list of console commands.
- allows you to specify a sequence of commands to use after the first reaction. Kore will use these commands in sequence, while respecting the given timeout between each reaction, until the next indexed altCommand_# does not exist. An empty value means you want to repeat the last command executed. One command out of the specified list is randomly picked to be executed.
Note: The index is saved for each specific player so you will react with the same sequence, starting from the command reactOnKillSteal, for each one. The index is only reset when the player leaves your screen so if you have reacted the most number of times you have configured Kore to react (i.e. the last altCommand_# is executed for a player), unless altCommand_persist is defined, you will never react for a while until the player leaves your screen or a new reactOnKillSteal block is used.
- altCommand_persist (commands)
commands: a semi-colon (";") separated list of console commands.
- allows you to specify a repeating reaction after you have used all your other altCommand_# options. It's not always necessary.
The altCommand_* options also control how many reactions you will show. e.g. If no altCommand_# is defined, you will only show one reaction (that specified in the reactOnKillSteal). If altCommand_0 and altCommand_1 are defined, you will show 3 reactions. If altCommand_persist is defined, you will have endless number of reactions.
See examples below.
- disabled (flag)
flag: 1 = on, 0 = off
- temporarily disable a block completely.
- inLockOnly (flag)
flag: 1 = on, 0 = off
- only react when in lockMap. If this is set to 1, reactions due to kill stealing will only be enabled if lockMap is set and you are currently in the lockMap.
- notParty (flag)
flag: 1 = on, 0 = off
- don't react when party members attack your monster. By default, Kore will react when kill stealed, even by your party mates. Set this option to 1 to prevent Kore from reacting when your party attacks your monster.
- notTankModeTarget (flag)
flag: 1 = on, 0 = off
- don't react when your tankee attacks your monster. By default, Kore will react when kill stealed, even by your tankModeTarget. Set this option to 1 to prevent Kore from reacting when your Tankee attacks your monster.
- attackTargetOnly (flag)
flag: 1 = on, 0 = off
- only react when your target monster is kill stealed. By default, Kore will react when all monsters who are currently attacking Kore (aggressives) is kill stealed. Set this option to 1 to ignore kill stealing of monsters that you are not attacking.
- monsters (monsters)
monsters: a comma-separated list of monster names.
- only react if the monster being kill stealed is in the list.
- notMonsters (monsters)
monsters: a comma-separated list of monster names.
- never react if the monster being kill stealed is in the list. It is advised to include MVP/Boss monsters on this list since such monsters are free-for-all and you have no rights to own (and thus react on kill stealing of) a Boss monster.
- damage (range)
- only react when the damage done to monster due to the kill steal attack is within this range. If this is not set (or if it is set to 0) Kore will react on kill steals regardless of the damage. If you want to react only on misses, set this to "< 1".
- skills (skills)
skills: a comma-separated list of skill names.
- only react when the skill used againts our monster is in this list. If this option is empty, Kore will react on any type of attack (whether normal attack or skill). If this is set, Kore will only react on the skills specified; and it will not react to normal attacks unless you specify an item in the list named "Normal Attack".
Note. "Normal Attack" is not a special "skill name" that the plugin uses it to distinguish skills and normal attacks.
Examples:
1. skills Heal, Blessing, Increase AGI - react only when the skill Heal, Blessing or Increase AGI is used, and don't react on normal attacks or any other skills.
2. skills Normal Attack - react only on normal attacks and not on skills.
3. skills Heal, Blessing, Increase AGI, Normal Attack - react only on normal attacks or when the skill Heal, Blessing or Increase AGI is used, don't react on other skills.
- notSkills (skills)
skills: a comma-separated list of skill names.
- never react when the skill used againts our monster is in this list. If this option is empty, Kore will react on any type of attack (whether normal attack or skill). If this is set, Kore will NOT react on the skills specified; it will still react to normal attacks unless you specify an item in the list named "Normal Attack".
Note. "Normal Attack" is not a valid skill name, but the plugin uses it to distinguish skills and normal attacks.
Examples:
1. notSkills Heal, Blessing, Increase AGI don't react when the skill Heal, Blessing or Increase AGI is used, but react on normal attacks and other skills.
2. notSkills Normal Attack - never react on normal attacks, but react on skills.
3. notSkills Heal, Blessing, Increase AGI, Normal Attack - don't react on normal attacks and when the skill Heal, Blessing or Increase AGI is used; still react on other skills.
- isCasting (flag)
flag: 1 = on, 0 = off
- only react while the player is still casting a spell.
- whenPlayerIsUnknown (flag) new in v.1.4
flag: 1 = on, 0 = off
- if this is enabled, you will only react when the player is unknown or not visible on screen (this includes GM in perfect hide and ranged players that kill steals you from afar).
- whenPlayerIsKnown (flag) new in v.1.4
flag: 1 = on, 0 = off
- if this is enabled, you will only react if the player is known or visible on screen.
- players (players)
players: a comma-separated list of player names.
- only react if the kill stealer is in the list. If this is empty, Kore will react on all players. If the list is specified, Kore will react only on players specified on the list and not on anyone else.
- notPlayers (players)
players: a comma-separated list of player names.
- never react if the kill stealer is in the list; still react on the rest.
- playerIDs (player IDs) new in v.1.3
player IDs: a comma-separated list of player IDs.
- only react if the kill stealer is in the list. If this is empty, Kore will react on all players. If the list is specified, Kore will react only on players specified on the list and not on anyone else.
- notPlayerIDs (player IDs) new in v.1.3
player IDs: a comma-separated list of player IDs.
- never react if the kill stealer is in the list; still react on the rest.
- player_lvl (range)
- only react if the kill stealer's level is within the given range. If this is empty, Kore will react reagardless of the player's level.
- player_isJob (jobs)
job classes: comma-separated list of job classes
- only react if the kill stealer is one of the specified job classes. If this is empty, Kore will react on all job classes. If a list is specified, Kore will react only on job classes specified.
- player_isNotJob (jobs)
job classes: comma-separated list of job classes
- never react on job classes that appear on this list.
- player_sex (sex)
sex: Boy/Girl
- only react if the kill stealer if of the specified sex. If this is empty, Kore will react regardless of the player's sex.
- player_damage (range)
- only react if the total damage done by the player to the monster he is kill stealing is within the given range.
- player_misses (range)
- only react if the total misses made by the player to the monster he is kill stealing is within the given range.
- player_ksCount (range)
- only react if the number of unique monsters kill stealed by this player from you is within the given range. This is useful to determine how you will react on players who keep on kill stealing your monster no matter how you react. For example, if this count reaches 5 or more, you may conclude that the kill stealer is a ks-bot who just ignores your warnings. You may also configure the intensity of your reactions on such events.
- player_reactionCount (range)
- only react if the total number of your reactions to the player due to kill stealing is within the given range. The same concept with player_ksCount, except that this counts your reactions. This may be useful to determine how you would react to players who never stop hitting your monster regardless of how many times you have reacted. You can also use this to determine if someone is following you, for example, if this count reaches 20 or more, where you only need 2-3 hits to kill a monster, it means this player never leaves you screen, or follows you around, to kill steal from you everytime.
Note: this is only useful if you have defined multiple altCommand_#s or if altCommand_persist is defined. Since it counts your reactions, the count will not be incremented if you have configured it to react only once (or a few times).
For example:
Code: | reactOnKillSteal e 23; e 16 {
altCommand_0
altCommand_1
altCommand_2
player_reactionCount <= 10
}
reactOnKillSteal tele {
player_reactionCount > 10
} |
The second block will never be called since you will only have a maximum of 4 reactions.
Special Features:
1. Special keywords for commands
To be able to maximize the power offered by console commands used in this plugin, some keywords can be used with commands. These are useful when using the "pm" command, as well as skill use commands.
- @monsterNum - this keyword will be replaced by the monster number of your target. e.g. sm 28 @monsterNum
- @monsterName - this keyword will be replaced by the name of your target monster.
- @playerNum - this keyword will be replaced by the player number of the kill stealer. e.g. sp 153 @player; follow @playerNum
- @playerName - this keyword will be replaced by the name of the kill stealer. e.g. pm @playerName wtf
2. Smart kill stealing determination. new in v.1.2
The plugin will now only react to kill stealing if you are currently attacking the monster, or the monster is attacking you, AND that monster was never attacked by other players first AND if it hasn't attacked other players before you. The plugin now has a way of determining which monsters are exclusively yours by marking monsters you attack, or attacks you, if those monsters are initially clean.
3. Smart typing simulation new in v.1.2
Commands that use chat (e.g. c, g, p and pm) are now identified and given a timeout delay before executing. It follows Openkore's built-in chat response's simulation of typing based on the number of characters on the chat message divided by a pre-determined character per second rate. You can now use chats as your first reaction without worrying about how realistic it would be when triggered.
4. Forced emoticon delay new in v.1.2
The plugin also ensures that emoticons will have a delay if the previous reaction is also an emoticon. This ensures that an emoticon will fully display before another emoticon may be used so that you will not spam emoticons that overwrite each other.
Some examples:
# Simple reactions block, only use when the player kills steal you twice or less and when you have reacted less than 3 times.
Code: | reactOnKillSteal e 23; e 7;e 6; c wa?; e 16 {
altCommand_0 c stop!!; c pls stop; c go away;e 23; e 7;e 6
altCommand_1 c it's mine; c kill stealer!; c kilstealr!; c kil stealr!
player_reactionCount < 3
player_ksCount < 3
notParty 1
} |
# Simple reactions block, only use when the player kills steal you twice or less and when you have reacted 3 times or more.
Code: | reactOnKillSteal e 40; e 9; c u again?; e 16 {
altCommand_0 c @playerName kser; c kill stealer!; c kilstealr!; c kil stealr!; e 40
altCommand_1 c got ur screenie; e 40; e 9; c ur hopeless; pm @playerName die ks-bot!
player_reactionCount 3-6
player_ksCount < 3
notParty 1
} |
# Simple reactions block, use when the player kills steal you twice or less and when you have reacted more than 6 times.
# You will repeatedly use the emoticons /e5 and /... as reaction.
Code: | reactOnKillSteal e 40; e 9 {
altCommand_persist
player_reactionCount > 6
player_ksCount < 3
notParty 1
} |
# Rogue: always use the Intimidate skill if the player kill steals your target monster 3 times or more
Code: | reactOnKillSteal sm 219 @monsterNum {
altCommand_0 tele
player_ksCount >= 3
notParty 1
attackTargetOnly 1
} |
# Sage: use the Dispel skill if the player buffs your target monster
Code: | reactOnKillSteal sm 289 @monsterNum;e 23; e 7 {
altCommand_persist
skills Blessing, Increase AGI
isCasting 0
attackTargetOnly 1
} |
Some tips:
1. Keep chat messages short and simple. Always imagine how quick you can type those words and how realistic it would seem if you were to type it yourself. Shorthands are prefered.
2. Some typographic/spelling errors seem more realistic. Since you can use random commands, you may want to add erroneous texts as well.
3. Be wary of chat filters and limitations! You should very well know that the RO Client has a chat filter which prevents you from sending chat messages that include forbidden words. You might as well not include any in your commands. Never use a slash "/" as the first character of your chat message. If you do need to, prefix it with any character other than a white space.
4. Be careful when using the @playerName and @monsterName keywords! Some player and monster names are too long, let alone that some player names contain special characters that are hard to type. It is also not advisable to use a player name as the first word of your chat messages because some player names may start with a slash "/". Note too that monster names are always in proper case.
TO DO list: (will only work on this upon request)
1. Add a feature that will allow users to define their own command delimiter. The default delimiter, semi-colon (";"), was chosen instead of the usual comma so you could generously use commas in your commands and chat messages. However, there may be cases when you would also need semi-colons in your commands (e.g. when using the eval command).
2. Allow aliases for monster names when using the keyword @monsterName to override the case-sensitive names and allow some shorthands (e.g. GR for Ghostring). Such aliases could be a list (random) as well.
3. Allow limits for the number of characters to be substituted when using the @playerName keyword. This is useful in chat messages to prevent the plugin to substitute full names of players that are very long (e.g. player name I_Want_To_Kill_Everything_In_My_Path could be changed to I_Want_To_ or the like. This is rather complicated so it might take a while.
reactOnKillSteal.pl - Download instructions:
Download the plugin then save it in your 'plugins' folder.
This is the first plugin I wrote. I were only able to test this on two novice trial accounts. Please feel free to post comments and bug reports. Thanks.
Description: |
reactOnKillSteal v1.4.1 plugin by hakore |
|
 Download |
Filename: |
reactOnKillSteal.pl |
Filesize: |
12.57 KB |
Downloaded: |
55 Time(s) |
_________________ Read the Manual. Be creative! You ARE your bot. If your bot acts stupid, then you are... 
Last edited by hakore on Thu Sep 01, 2005 4:14 am; edited 40 times in total |
|
Back to top |
|
 |
Savior Sephiroth Newbie

Joined: 24 May 2005 Posts: 7
|
Posted: Sun Jul 03, 2005 3:20 am Post subject: |
|
|
There are one way of the Kore react with one sound on KS??
But my version is 1.6.1. Where have the 1.6.2? CVS??
And Tranks for you great plugin!
|
|
Back to top |
|
 |
hakore Spammer


Joined: 12 Apr 2005 Posts: 682
|
Posted: Sun Jul 03, 2005 8:34 pm Post subject: |
|
|
There are more than one way.
At the moment, you can get v.1.6.2 from CVS.
_________________ Read the Manual. Be creative! You ARE your bot. If your bot acts stupid, then you are...  |
|
Back to top |
|
 |
Red_Rose2005 Not So Newbie

Joined: 27 Jun 2005 Posts: 63 Location: Glast Heim
|
Posted: Sun Jul 03, 2005 8:38 pm Post subject: |
|
|
Wooooooowww!!! finally!! the one i've been waiting for.. but but.. im using openkore 1.6.1.. what's the difference with 1.6.1 and cvs? please make one for 1.6.1 pleeeeeeeeease???
But still thank you for this! mwah!
|
|
Back to top |
|
 |
hakore Spammer


Joined: 12 Apr 2005 Posts: 682
|
Posted: Sun Jul 03, 2005 9:10 pm Post subject: |
|
|
Ok, I modified the plugin to support v.1.6.1.
However, there is a plugin call hook that exists in v.1.6.2 CVS that is not found in v.1.6.1. If you really want to make the plugin work in v.1.6.1, you have to add the plugin hook (one line of code) in your functions.pl (somewhere in line 6423). See the lines with the + sign:
Perl: | } elsif ($switch eq "008A") {
$conState = 5 if ($conState != 4 && $xkore);
my ($ID1, $ID2, $tick, $src_speed, $dst_speed, $damage, $param2, $type, $param3) = unpack("x2 a4 a4 a4 L1 L1 s1 S1 C1 S1", $msg);
if ($type == 1) {
# Take item
my ($source, $verb, $target) = getActorNames($ID1, $ID2, 'pick up', 'picks up');
debug "$source $verb $target\n", 'parseMsg_presence';
$items{$ID2}{takenBy} = $ID1 if ($items{$ID2});
} elsif ($type == 2) {
# Sit
my ($source, $verb) = getActorNames($ID1, 0, 'are', 'is');
if ($ID1 eq $accountID) {
message "You are sitting.\n";
$char->{sitting} = 1;
} else {
debug getActorName($ID1)." is sitting.\n", 'parseMsg';
$players{$ID1}{sitting} = 1 if ($players{$ID1});
}
} elsif ($type == 3) {
# Stand
my ($source, $verb) = getActorNames($ID1, 0, 'are', 'is');
if ($ID1 eq $accountID) {
message "You are standing.\n";
$char->{sitting} = 0;
} else {
debug getActorName($ID1)." is standing.\n", 'parseMsg';
$players{$ID1}{sitting} = 0 if ($players{$ID1});
}
} else {
# Attack
my $dmgdisplay;
if ($damage == 0) {
$dmgdisplay = "Miss!";
$dmgdisplay .= "!" if ($type == 11);
} else {
$dmgdisplay = $damage;
$dmgdisplay .= "!" if ($type == 10);
$dmgdisplay .= " + $param3" if $param3;
}
updateDamageTables($ID1, $ID2, $damage);
my ($source, $verb, $target) = getActorNames($ID1, $ID2, 'attack', 'attacks');
+
+ Plugins::callHook('packet_attack', {sourceID => $ID1, targetID => $ID2, msg => \$msg, dmg => $damage});
+
my $msg = "$source $verb $target - Dmg: $dmgdisplay (delay ".($src_speed/10).")";
my $status = sprintf("[%3d/%3d]", percent_hp($char), percent_sp($char));
if ($ID1 eq $accountID) {
message("$status $msg\n", $damage > 0 ? "attackMon" : "attackMonMiss");
if ($startedattack) {
$monstarttime = time();
$monkilltime = time();
$startedattack = 0;
}
calcStat($damage);
} elsif ($ID2 eq $accountID) {
# Check for monster with empty name
if (%{$monsters{$ID1}} && $monsters{$ID1}{'name'} eq "") {
if ($config{'teleportAuto_emptyName'} ne '0') {
message "Monster with empty name attacking you. Teleporting...\n";
useTeleport(1);
} else {
# Delete monster from hash; monster will be
# re-added to the hash next time it moves.
delete $monsters{$ID1};
}
}
message("$status $msg\n", $damage > 0 ? "attacked" : "attackedMiss");
} else {
debug("$msg\n", 'parseMsg_damage');
}
} |
I still recommend using v.1.6.2 though.
_________________ Read the Manual. Be creative! You ARE your bot. If your bot acts stupid, then you are...  |
|
Back to top |
|
 |
Maniax 2 Not So Newbie

Joined: 26 Apr 2005 Posts: 66
|
Posted: Sun Jul 03, 2005 10:13 pm Post subject: |
|
|
hakore wrote: | Ok, I modified the plugin to support v.1.6.1.
However, there is a plugin call hook that exists in v.1.6.2 CVS that is not found in v.1.6.1. If you really want to make the plugin work in v.1.6.1, you have to add the plugin hook (one line of code) in your functions.pl (somewhere in line 6423). See the lines with the + sign:
|
i didnt find any line 6423 and no "+ sign:" , whats the exact location to put this code in funtions.pl¿
|
|
Back to top |
|
 |
hakore Spammer


Joined: 12 Apr 2005 Posts: 682
|
Posted: Sun Jul 03, 2005 10:25 pm Post subject: |
|
|
I said somewhere, so it's not exact, but it's just around there.
The lines with plus (+) sign in the code above means those lines are not yet included the source code, you have to add it. You don't have to include the + sign though when adding it. It's merely a symbol here to tell it's the line to be added.
It's better that you search for this line: Code: | } elsif ($switch eq "008A") { |
Then scroll down a bit and look for this line: Code: | my ($source, $verb, $target) = getActorNames($ID1, $ID2, 'attack', 'attacks'); |
Now add this piece of code after the line defined above: Code: | Plugins::callHook('packet_attack', {sourceID => $ID1, targetID => $ID2, msg => \$msg, dmg => $damage}); |
Now, does that make sense?
_________________ Read the Manual. Be creative! You ARE your bot. If your bot acts stupid, then you are...  |
|
Back to top |
|
 |
Maniax 2 Not So Newbie

Joined: 26 Apr 2005 Posts: 66
|
Posted: Sun Jul 03, 2005 10:28 pm Post subject: |
|
|
Yes sir
PD: ur awesome
|
|
Back to top |
|
 |
--Roger-- Spammer


Joined: 05 Apr 2005 Posts: 755 Location: Morocc
|
Posted: Mon Jul 04, 2005 8:56 am Post subject: |
|
|
Im speechless... This plugin is wonderfull!!!!!
[joke]Are you a ninja?[/joke]
_________________ OpenKore support for brazilians.
http://www.openkore-brasil.com |
|
Back to top |
|
 |
Maniax 2 Not So Newbie

Joined: 26 Apr 2005 Posts: 66
|
Posted: Tue Jul 05, 2005 1:31 am Post subject: |
|
|
If i put
altCommand_4 quit
will it work?
Does this works if some1 heal/buffs ur mosnters? or just for normal attacks?
PD: im asking cause i dont have a way to test it
|
|
Back to top |
|
 |
hakore Spammer


Joined: 12 Apr 2005 Posts: 682
|
Posted: Tue Jul 05, 2005 1:52 am Post subject: |
|
|
Maniax 2 wrote: | If i put
skills Heal;Blessing
- only react when the skill used againts our monster is in this list. |
Incorect syntax: Normally, lists are comma-delimited. You only use the semi-colon delimiter for the commands. I guess I'll have to update the documentation on the first post to explicitly state the correct list delimiter.
Maniax 2 wrote: | isCasting Increase Agi
- only react while the player is still casting a spell. |
Incorrect syntax: Read the definition above again. The value is a flag, not a skill name. The skill name goes in the skills option.
Now, if you do want to react while the kill stealer is casting, you must create a separate block for Heal, since heal is never casted.
e.g.
Code: | # For skills Blessing and Increase AGI while casting
reactOnKillSteal e 23 {
skills Blessing, Increase AGI
isCasting 1
# etc...
}
# For Heal
reactOnKillSteal e 23 {
skills Heal
# etc...
}
# For all attacks (weapon or skill)
reactOnKillSteal e 23 {
# etc...
} |
Maniax 2 wrote: | it will still react for normal attacks ? |
If you specified a value for the skills option, it means you will only react if a player uses at least one of the specified skills on your monster. However, it also means that you will never react on normal attacks. You have to create a separate block for normal attacks (where the skills option is empty).
Maniax 2 wrote: | and i put
altCommand_4 quit
will it work?
PD: im asking cause i dont have a way to test it  |
altCommand_4 quit is fine (assuming you have corrected and sorted out all your other condition options). You will quit Openkore on your fifth reaction (if you do reached that amount of reactions to a single monster).
_________________ Read the Manual. Be creative! You ARE your bot. If your bot acts stupid, then you are... 
Last edited by hakore on Tue Jul 05, 2005 3:04 am; edited 2 times in total |
|
Back to top |
|
 |
Maniax 2 Not So Newbie

Joined: 26 Apr 2005 Posts: 66
|
Posted: Tue Jul 05, 2005 2:48 am Post subject: |
|
|
so if i dont put nothing it will react on ANYTHING that some1 does to the monsters im killing ?
what about if ur having a mob of 3 monsters will it react too if ur not attacking that monster at that time?
|
|
Back to top |
|
 |
hakore Spammer


Joined: 12 Apr 2005 Posts: 682
|
Posted: Tue Jul 05, 2005 3:01 am Post subject: |
|
|
Maniax 2 wrote: | so if i dont put nothing it will react on ANYTHING that some1 does to the monsters im killing ? |
If your conditions are empty, e.g.:
Code: | reactOnKillSteal e 23 {
} |
You will always react when kill stealed in any form. Only once though, since there are no altCommand_# defined.
Maniax 2 wrote: | what about if ur having a mob of 3 monsters will it react too if ur not attacking that monster at that time? |
I'll add that feature. At the moment, you will only react when someone kill steals the monster you are currently attacking.
_________________ Read the Manual. Be creative! You ARE your bot. If your bot acts stupid, then you are...  |
|
Back to top |
|
 |
Maniax 2 Not So Newbie

Joined: 26 Apr 2005 Posts: 66
|
Posted: Tue Jul 05, 2005 3:35 am Post subject: |
|
|
I have tested it in 1.6.1 with a merchant bot , he attacked a pupa , then i come with a novice lvl 2 (lol) and start hitting the same pupa the bot its hitting , but it doesnt respond anything , i have used ur fist example config code without the kscount 3 .
i have pasted the callhook thing in funtions pl , have pasted the reactonskillsteal.pl in plugins folder i use the command plugin in bot console to see if the plugin its logged and it is , but the bot doesnt react 
PD: Does the player that its ksing u has to really kill the monster u are attacking ? or it will react if the kser hits the monster?
|
|
Back to top |
|
 |
hakore Spammer


Joined: 12 Apr 2005 Posts: 682
|
Posted: Tue Jul 05, 2005 5:24 am Post subject: |
|
|
To test if it really is working, remove all conditions in the block except for the altCommands. Use this:
Code: | reactOnKillSteal e 23; e 16 {
altCommand_0 e 23; e 16;
altCommand_1
altCommand_2
altCommand_3 e 32; e 5; e 23; e 16
altCommand_4
altCommand_5
altCommand_6
altCommand_7
altCommand_8
altCommand_9
} |
Test it again.
If it does react using this config, then the plugin is working. You must have some conditions set that prevents it from doing so (I think it's inLockOnly).
Now if it still doesn't react (after you have edited functions.pl) then there must be a bug, or I'm not able to see every little detail to make it work with v.1.6.1 (I doubt this, though).
Try it first.
I just finished re-writing the code so the plugin would react to support mob training (i.e. when players attack monsters attacking you even if it is not your current target). I will post the code tomorrow after I tested it tonight.
_________________ Read the Manual. Be creative! You ARE your bot. If your bot acts stupid, then you are...  |
|
Back to top |
|
 |
|
|
Watch this topic for replies
|
You can post new topics in this forum You can reply to topics in this forum You can edit your posts in this forum You can delete your posts in this forum You can vote in polls in this forum You can attach files in this forum You can download files in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|