ni plugin disconnect ku
[codebox]
# Openkore Plugins - Disconnect
#
# Merubah fungsi teleport auto menjadi disconnect auto
# version 0.0.3
# Dibuat oleh Qpalzm & FerryGukguk
# Special thank's to FerryGukguk atas dukungan dan support
# Special thank's to WarAngel atas tutor yang sangat membantu
#
#
#
#
# Kode yang dipakai untuk config.txt :
#
# disconnect_plugin (flag)
# 1 - Enable
# 2 - Disable
#
# disconnectAuto_time
# waktu disconnect untuk disconnectAuto_hp, disconnectAuto_sp, disconnectAuto_minAggressives, disconnectAuto_minAggressivesInLock (dalam detik)
#
# disconnectAuto_monster_time
# waktu disconnect kalau bertemu monster yang sudah ditandai di mon_control.txt (dalam detik)
#
# disconnectAuto_hp
# disconnect pada saat HP di bawah nominal tertentu (dalam persen, jangan dikasih range ">, = , <")
#
# disconnectAuto_sp
# disconnect pada saat SP di bawah nominal tertentu (dalam persen, jangan dikasih range ">, = , <")
#
# disconnectAuto_minAggressives
# disconnect pada saat jumlah monster yang memukul karakter lebih dari yang ditentukan (jangan dikasih range ">, = , <")
#
# disconnectAuto_minAggressivesInLock
# disconnect pada saat jumlah monster yang memukul karakter lebih dari yang ditentukan hanya di lockmap (jangan dikasih range ">, = , <")
#
#
#
# Kode yang dipakai untuk mon_control.txt :
# co: menghindari stormy knight
#
# Stormy Knight 0 4 0
#
#
# Description:
# Plugins ini dibuat untuk Server yang tidak menyediakan
# skill "Teleport" (idRO Fun and Chat Server)
# yang digunakan untuk memutuskan hubungan pada saat tertentu
#
#
# Warning !!
# teleportAuto_hp ---> tidak boleh diisi
# teleportAuto_sp ---> tidak boleh diisi
# teleportAuto_minAggressives ---> tidak boleh diisi
# teleportAuto_minAggressivesInLock ---> tidak boleh diisi
#
package Disconnect;
use strict;
use Time::HiRes qw(time);
use Carp::Assert;
use IO::Socket;
use Text:
arseWords;
use encoding 'utf8';
use Globals;
use Log qw(message warning error debug);
use Network::Send ();
use Settings;
use AI;
use AI::Homunculus;
use ChatQueue;
use Utils;
use Misc;
use Commands;
use Network;
use FileParsers;
use Translation;
use Field;
use Task::TalkNPC;
use Utils::Exceptions;
Plugins::register('disconnect', 'automatic disconnecting for certain condition', \&unload_callback);
my $plugin_hook = Plugins::addHook("AI_pre", \&disconnect);
sub disconnect {
my $map_name_lu = $field{name}.'.rsw';
my $safe = 0;
# Check whether it's safe to teleport
if (!$cities_lut{$map_name_lu}) {
$safe = 1;
}
if ($config{disconnect_plugin}) {
if ($safe && timeOut($timeout{ai_teleport_hp})
&& (
(
($config{disconnectAuto_hp} && percent_hp($char) <= $config{disconnectAuto_hp})
|| ($config{disconnectAuto_sp} && percent_sp($char) <= $config{disconnectAuto_sp})
)
&& scalar(ai_getAggressives())
|| (
$config{disconnectAuto_minAggressives}
&& scalar(ai_getAggressives()) >= $config{disconnectAuto_minAggressives}
&& !($config{disconnectAuto_minAggressivesInLock} && $field{name} eq $config{'lockMap'})
) || (
$config{disconnectAuto_minAggressivesInLock}
&& scalar(ai_getAggressives()) >= $config{disconnectAuto_minAggressivesInLock}
&& $field{name} eq $config{'lockMap'}
)
)
&& !$char->{dead}
) {
warning TF("Disconnecting for %s due some condition\n", $config{'disconnectAuto_time'});
relog($config{'disconnectAuto_time'});
}
# monster disconnect
foreach (@monstersID) {
next unless $_;
if (mon_control($monsters{$_}{name},$monsters{$_}{nameID})->{teleport_auto} == 4) {
warning TF("Disconnecting for %s secs to avoid %s\n", $config{'disconnectAuto_monster_time'}, $monsters{$_}{name});
relog($config{'disconnectAuto_monster_time'});
}
}
}
}
sub unload_callback {
}
return 1;
[/codebox]
kok error y kk ferry?