diff options
Diffstat (limited to 'src')
303 files changed, 11902 insertions, 971 deletions
diff --git a/src/char/HPMchar.c b/src/char/HPMchar.c index f3cf2cff4..517bc0835 100644 --- a/src/char/HPMchar.c +++ b/src/char/HPMchar.c @@ -2,7 +2,7 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2014-2018 Hercules Dev Team + * Copyright (C) 2014-2020 Hercules Dev Team * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/char/HPMchar.h b/src/char/HPMchar.h index 0de3b88b8..d2fc69301 100644 --- a/src/char/HPMchar.h +++ b/src/char/HPMchar.h @@ -2,7 +2,7 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2014-2018 Hercules Dev Team + * Copyright (C) 2014-2020 Hercules Dev Team * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/char/Makefile.in b/src/char/Makefile.in index f159a443f..79ee3e18f 100644 --- a/src/char/Makefile.in +++ b/src/char/Makefile.in @@ -1,8 +1,8 @@ # This file is part of Hercules. # http://herc.ws - http://github.com/HerculesWS/Hercules # -# Copyright (C) 2012-2018 Hercules Dev Team -# Copyright (C) Athena Dev Teams +# Copyright (C) 2012-2020 Hercules Dev Team +# Copyright (C) Athena Dev Teams # # Hercules is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/src/char/char.c b/src/char/char.c index 66bfdd4ee..aac9ad20c 100644 --- a/src/char/char.c +++ b/src/char/char.c @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/char/char.h b/src/char/char.h index 3b8bcff2e..413007868 100644 --- a/src/char/char.h +++ b/src/char/char.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/char/geoip.c b/src/char/geoip.c index 67c057aff..daace34d5 100644 --- a/src/char/geoip.c +++ b/src/char/geoip.c @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/char/geoip.h b/src/char/geoip.h index be9fe4fff..f8070dc2e 100644 --- a/src/char/geoip.h +++ b/src/char/geoip.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/char/int_achievement.c b/src/char/int_achievement.c index 14311ecf0..167178482 100644 --- a/src/char/int_achievement.c +++ b/src/char/int_achievement.c @@ -2,7 +2,7 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * -* Copyright (C) 2017 Hercules Dev Team +* Copyright (C) 2017-2020 Hercules Dev Team * Copyright (C) Smokexyz * * Hercules is free software: you can redistribute it and/or modify diff --git a/src/char/int_achievement.h b/src/char/int_achievement.h index 4a44a798d..6c6ddc7f4 100644 --- a/src/char/int_achievement.h +++ b/src/char/int_achievement.h @@ -2,7 +2,7 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * -* Copyright (C) 2017 Hercules Dev Team +* Copyright (C) 2017-2020 Hercules Dev Team * Copyright (C) Smokexyz * * Hercules is free software: you can redistribute it and/or modify diff --git a/src/char/int_auction.c b/src/char/int_auction.c index 1e5b0a06d..aa01872f9 100644 --- a/src/char/int_auction.c +++ b/src/char/int_auction.c @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/char/int_auction.h b/src/char/int_auction.h index 720efe22a..642fd21e3 100644 --- a/src/char/int_auction.h +++ b/src/char/int_auction.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/char/int_clan.c b/src/char/int_clan.c index 9fb8ad95e..87f21f3fd 100644 --- a/src/char/int_clan.c +++ b/src/char/int_clan.c @@ -2,7 +2,7 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2017 Hercules Dev Team + * Copyright (C) 2017-2020 Hercules Dev Team * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/char/int_clan.h b/src/char/int_clan.h index e7b44ecd3..abc026efb 100644 --- a/src/char/int_clan.h +++ b/src/char/int_clan.h @@ -2,7 +2,7 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2017 Hercules Dev Team + * Copyright (C) 2017-2020 Hercules Dev Team * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/char/int_elemental.c b/src/char/int_elemental.c index 175007b66..76ea7d56f 100644 --- a/src/char/int_elemental.c +++ b/src/char/int_elemental.c @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/char/int_elemental.h b/src/char/int_elemental.h index 3172dcacf..8c326faef 100644 --- a/src/char/int_elemental.h +++ b/src/char/int_elemental.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/char/int_guild.c b/src/char/int_guild.c index 3e9d50f8d..af2088403 100644 --- a/src/char/int_guild.c +++ b/src/char/int_guild.c @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/char/int_guild.h b/src/char/int_guild.h index 4ed0f526e..252a4970f 100644 --- a/src/char/int_guild.h +++ b/src/char/int_guild.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/char/int_homun.c b/src/char/int_homun.c index 5a1c9d23f..52418a1fa 100644 --- a/src/char/int_homun.c +++ b/src/char/int_homun.c @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/char/int_homun.h b/src/char/int_homun.h index 8eba66963..f68dfb4e4 100644 --- a/src/char/int_homun.h +++ b/src/char/int_homun.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/char/int_mail.c b/src/char/int_mail.c index e0625fcab..5a698eb3c 100644 --- a/src/char/int_mail.c +++ b/src/char/int_mail.c @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/char/int_mail.h b/src/char/int_mail.h index 95934d0a1..8fd6e70a5 100644 --- a/src/char/int_mail.h +++ b/src/char/int_mail.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/char/int_mercenary.c b/src/char/int_mercenary.c index 21bfb5538..a39bd9ad6 100644 --- a/src/char/int_mercenary.c +++ b/src/char/int_mercenary.c @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/char/int_mercenary.h b/src/char/int_mercenary.h index 6291bfcf6..85292938f 100644 --- a/src/char/int_mercenary.h +++ b/src/char/int_mercenary.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/char/int_party.c b/src/char/int_party.c index bf680c816..b29ccaf24 100644 --- a/src/char/int_party.c +++ b/src/char/int_party.c @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/char/int_party.h b/src/char/int_party.h index b9a888cca..b3306cc13 100644 --- a/src/char/int_party.h +++ b/src/char/int_party.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/char/int_pet.c b/src/char/int_pet.c index d31e7545c..880de668d 100644 --- a/src/char/int_pet.c +++ b/src/char/int_pet.c @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/char/int_pet.h b/src/char/int_pet.h index b5852d441..43360ccda 100644 --- a/src/char/int_pet.h +++ b/src/char/int_pet.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/char/int_quest.c b/src/char/int_quest.c index 0fa7771cb..4269b3da1 100644 --- a/src/char/int_quest.c +++ b/src/char/int_quest.c @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/char/int_quest.h b/src/char/int_quest.h index e71afc561..a5fb4805b 100644 --- a/src/char/int_quest.h +++ b/src/char/int_quest.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/char/int_rodex.c b/src/char/int_rodex.c index fbf628f32..0539eab7e 100644 --- a/src/char/int_rodex.c +++ b/src/char/int_rodex.c @@ -2,7 +2,7 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2017 Hercules Dev Team + * Copyright (C) 2017-2020 Hercules Dev Team * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/char/int_rodex.h b/src/char/int_rodex.h index a6a172ceb..44b9ce477 100644 --- a/src/char/int_rodex.h +++ b/src/char/int_rodex.h @@ -2,7 +2,7 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2017 Hercules Dev Team + * Copyright (C) 2017-2020 Hercules Dev Team * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/char/int_storage.c b/src/char/int_storage.c index 130df5515..d82440270 100644 --- a/src/char/int_storage.c +++ b/src/char/int_storage.c @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/char/int_storage.h b/src/char/int_storage.h index 918927620..886c54e15 100644 --- a/src/char/int_storage.h +++ b/src/char/int_storage.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/char/inter.c b/src/char/inter.c index 264327289..2d8d06a9c 100644 --- a/src/char/inter.c +++ b/src/char/inter.c @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/char/inter.h b/src/char/inter.h index f97c619c0..36d28b656 100644 --- a/src/char/inter.h +++ b/src/char/inter.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/char/loginif.c b/src/char/loginif.c index a093c8cf5..554513420 100644 --- a/src/char/loginif.c +++ b/src/char/loginif.c @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/char/loginif.h b/src/char/loginif.h index 5dfedb952..55fd03f83 100644 --- a/src/char/loginif.h +++ b/src/char/loginif.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/char/mapif.c b/src/char/mapif.c index 29be4eaa2..9077afae4 100644 --- a/src/char/mapif.c +++ b/src/char/mapif.c @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/char/mapif.h b/src/char/mapif.h index f5b54b6b7..11dd79504 100644 --- a/src/char/mapif.h +++ b/src/char/mapif.h @@ -2,7 +2,7 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team + * Copyright (C) 2012-2020 Hercules Dev Team * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/char/packets_hc_struct.h b/src/char/packets_hc_struct.h index 196493cac..dc5feab60 100644 --- a/src/char/packets_hc_struct.h +++ b/src/char/packets_hc_struct.h @@ -2,7 +2,7 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2016-2018 Hercules Dev Team + * Copyright (C) 2016-2020 Hercules Dev Team * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/char/pincode.c b/src/char/pincode.c index 5a7eb1cab..6346f3266 100644 --- a/src/char/pincode.c +++ b/src/char/pincode.c @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/char/pincode.h b/src/char/pincode.h index 699758179..594aabb19 100644 --- a/src/char/pincode.h +++ b/src/char/pincode.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/common/HPM.c b/src/common/HPM.c index 479135767..23335fcde 100644 --- a/src/common/HPM.c +++ b/src/common/HPM.c @@ -2,7 +2,7 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2013-2018 Hercules Dev Team + * Copyright (C) 2013-2020 Hercules Dev Team * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/common/HPM.h b/src/common/HPM.h index a4e3e46cc..6e40c323b 100644 --- a/src/common/HPM.h +++ b/src/common/HPM.h @@ -2,7 +2,7 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2013-2018 Hercules Dev Team + * Copyright (C) 2013-2020 Hercules Dev Team * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/common/HPMDataCheck.h b/src/common/HPMDataCheck.h index 3ef917a88..a0a9f8c35 100644 --- a/src/common/HPMDataCheck.h +++ b/src/common/HPMDataCheck.h @@ -2,7 +2,7 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2014-2019 Hercules Dev Team + * Copyright (C) 2014-2020 Hercules Dev Team * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -736,6 +736,7 @@ HPExport const struct s_HPMDataCheck HPMDataCheck[] = { { "PACKET_ZC_REPAIRITEMLIST", sizeof(struct PACKET_ZC_REPAIRITEMLIST), SERVER_TYPE_MAP }, { "PACKET_ZC_REPAIRITEMLIST_sub", sizeof(struct PACKET_ZC_REPAIRITEMLIST_sub), SERVER_TYPE_MAP }, { "PACKET_ZC_ROLE_CHANGE", sizeof(struct PACKET_ZC_ROLE_CHANGE), SERVER_TYPE_MAP }, + { "PACKET_ZC_SE_CASHSHOP_OPEN", sizeof(struct PACKET_ZC_SE_CASHSHOP_OPEN), SERVER_TYPE_MAP }, { "PACKET_ZC_SEARCH_STORE_INFO_ACK", sizeof(struct PACKET_ZC_SEARCH_STORE_INFO_ACK), SERVER_TYPE_MAP }, { "PACKET_ZC_SEARCH_STORE_INFO_ACK_sub", sizeof(struct PACKET_ZC_SEARCH_STORE_INFO_ACK_sub), SERVER_TYPE_MAP }, { "PACKET_ZC_SKILL_SCALE", sizeof(struct PACKET_ZC_SKILL_SCALE), SERVER_TYPE_MAP }, diff --git a/src/common/HPMSymbols.inc.h b/src/common/HPMSymbols.inc.h index f92899114..1ead8c5e2 100644 --- a/src/common/HPMSymbols.inc.h +++ b/src/common/HPMSymbols.inc.h @@ -2,7 +2,7 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2013-2019 Hercules Dev Team + * Copyright (C) 2013-2020 Hercules Dev Team * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/common/HPMi.h b/src/common/HPMi.h index 7698d3ca7..fca08a482 100644 --- a/src/common/HPMi.h +++ b/src/common/HPMi.h @@ -2,7 +2,7 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2013-2015 Hercules Dev Team + * Copyright (C) 2013-2020 Hercules Dev Team * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -241,9 +241,15 @@ struct HPMi_interface { #ifdef HERCULES_CORE #define HPM_SYMBOL(n, s) (HPM->share((s), (n)), true) #else // ! HERCULES_CORE +#ifdef HERCULES_CORE_HPMI_SKIP +extern struct HPMi_interface HPMi_s; +extern struct HPMi_interface *HPMi; +extern void *(*import_symbol) (char *name, unsigned int pID); +#else HPExport struct HPMi_interface HPMi_s; HPExport struct HPMi_interface *HPMi; HPExport void *(*import_symbol) (char *name, unsigned int pID); +#endif #define HPM_SYMBOL(n, s) ((s) = import_symbol((n),HPMi->pid)) #endif // !HERCULES_CORE diff --git a/src/common/Makefile.in b/src/common/Makefile.in index 708780595..033b26ae3 100644 --- a/src/common/Makefile.in +++ b/src/common/Makefile.in @@ -1,8 +1,8 @@ # This file is part of Hercules. # http://herc.ws - http://github.com/HerculesWS/Hercules # -# Copyright (C) 2012-2018 Hercules Dev Team -# Copyright (C) Athena Dev Teams +# Copyright (C) 2012-2020 Hercules Dev Team +# Copyright (C) Athena Dev Teams # # Hercules is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/src/common/atomic.h b/src/common/atomic.h index fdff6e6ab..518d2e6ab 100644 --- a/src/common/atomic.h +++ b/src/common/atomic.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) rAthena Project (www.rathena.org) + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) rAthena Project (www.rathena.org) * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/common/cbasetypes.h b/src/common/cbasetypes.h index c9c189032..0b5613316 100644 --- a/src/common/cbasetypes.h +++ b/src/common/cbasetypes.h @@ -2,7 +2,7 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team + * Copyright (C) 2012-2020 Hercules Dev Team * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/common/conf.c b/src/common/conf.c index d81a6636b..dae7db8fc 100644 --- a/src/common/conf.c +++ b/src/common/conf.c @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/common/conf.h b/src/common/conf.h index ccab6dc17..2d2df92f2 100644 --- a/src/common/conf.h +++ b/src/common/conf.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/common/console.c b/src/common/console.c index 0075ac2a1..5b4dbeb1a 100644 --- a/src/common/console.c +++ b/src/common/console.c @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/common/console.h b/src/common/console.h index dd3a9cf2e..92a262a12 100644 --- a/src/common/console.h +++ b/src/common/console.h @@ -2,7 +2,7 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2013-2015 Hercules Dev Team + * Copyright (C) 2013-2020 Hercules Dev Team * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/common/core.c b/src/common/core.c index dbd1d2596..54358b85c 100644 --- a/src/common/core.c +++ b/src/common/core.c @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/common/core.h b/src/common/core.h index 0622a987d..3fceb0b1a 100644 --- a/src/common/core.h +++ b/src/common/core.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/common/db.c b/src/common/db.c index c28ad1f7c..bcd57875b 100644 --- a/src/common/db.c +++ b/src/common/db.c @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/common/db.h b/src/common/db.h index 2af47567e..bbc6232ef 100644 --- a/src/common/db.h +++ b/src/common/db.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/common/des.c b/src/common/des.c index fbd158265..5a0e32b48 100644 --- a/src/common/des.c +++ b/src/common/des.c @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/common/des.h b/src/common/des.h index 79fe05603..860e35424 100644 --- a/src/common/des.h +++ b/src/common/des.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/common/ers.c b/src/common/ers.c index e421c47c9..30a90116f 100644 --- a/src/common/ers.c +++ b/src/common/ers.c @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/common/ers.h b/src/common/ers.h index 612a98dd4..cb8dfd009 100644 --- a/src/common/ers.h +++ b/src/common/ers.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/common/grfio.c b/src/common/grfio.c index 79154d191..0fdcbe61f 100644 --- a/src/common/grfio.c +++ b/src/common/grfio.c @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/common/grfio.h b/src/common/grfio.h index 13e7201fe..c7e58329f 100644 --- a/src/common/grfio.h +++ b/src/common/grfio.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/common/hercules.h b/src/common/hercules.h index 6b4b9d696..89ea761b4 100644 --- a/src/common/hercules.h +++ b/src/common/hercules.h @@ -2,7 +2,7 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2015 Hercules Dev Team + * Copyright (C) 2015-2020 Hercules Dev Team * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/common/mapindex.c b/src/common/mapindex.c index f6097bb06..e5bbb082c 100644 --- a/src/common/mapindex.c +++ b/src/common/mapindex.c @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/common/mapindex.h b/src/common/mapindex.h index b7e02447d..6fa52066e 100644 --- a/src/common/mapindex.h +++ b/src/common/mapindex.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/common/md5calc.c b/src/common/md5calc.c index 3f9ccdc41..dc95fe298 100644 --- a/src/common/md5calc.c +++ b/src/common/md5calc.c @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/common/md5calc.h b/src/common/md5calc.h index bd06f1fbc..27f308a6a 100644 --- a/src/common/md5calc.h +++ b/src/common/md5calc.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/common/memmgr.c b/src/common/memmgr.c index 3c645e7fa..13629259a 100644 --- a/src/common/memmgr.c +++ b/src/common/memmgr.c @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/common/memmgr.h b/src/common/memmgr.h index c7147cc5e..891a2c393 100644 --- a/src/common/memmgr.h +++ b/src/common/memmgr.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/common/mmo.h b/src/common/mmo.h index f4cf92508..f6eca919c 100644 --- a/src/common/mmo.h +++ b/src/common/mmo.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/common/mutex.c b/src/common/mutex.c index dd63d2adc..fbcc5b576 100644 --- a/src/common/mutex.c +++ b/src/common/mutex.c @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) rAthena Project (www.rathena.org) + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) rAthena Project (www.rathena.org) * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/common/mutex.h b/src/common/mutex.h index fc3ef4abc..5cde330ee 100644 --- a/src/common/mutex.h +++ b/src/common/mutex.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) rAthena Project (www.rathena.org) + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) rAthena Project (www.rathena.org) * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/common/nullpo.c b/src/common/nullpo.c index e19f7f846..dfb938708 100644 --- a/src/common/nullpo.c +++ b/src/common/nullpo.c @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/common/nullpo.h b/src/common/nullpo.h index 398531f13..fc5386243 100644 --- a/src/common/nullpo.h +++ b/src/common/nullpo.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/common/packets.c b/src/common/packets.c index 429418e0a..12d6850d1 100644 --- a/src/common/packets.c +++ b/src/common/packets.c @@ -2,7 +2,7 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team + * Copyright (C) 2012-2020 Hercules Dev Team * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/common/packets.h b/src/common/packets.h index 83c92c7fa..32f0fef9c 100644 --- a/src/common/packets.h +++ b/src/common/packets.h @@ -2,7 +2,7 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2013-2018 Hercules Dev Team + * Copyright (C) 2013-2020 Hercules Dev Team * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/common/packets/packets2003_len_main.h b/src/common/packets/packets2003_len_main.h index b78f4df3d..3f5abc7ac 100644 --- a/src/common/packets/packets2003_len_main.h +++ b/src/common/packets/packets2003_len_main.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2018-2019 Hercules Dev Team - * Copyright (C) 2018-2019 Andrei Karas (4144) + * Copyright (C) 2018-2020 Hercules Dev Team + * Copyright (C) 2018-2020 Andrei Karas (4144) * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/common/packets/packets2003_len_sak.h b/src/common/packets/packets2003_len_sak.h index b90a354a7..2dd50fdfd 100644 --- a/src/common/packets/packets2003_len_sak.h +++ b/src/common/packets/packets2003_len_sak.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2018-2019 Hercules Dev Team - * Copyright (C) 2018-2019 Andrei Karas (4144) + * Copyright (C) 2018-2020 Hercules Dev Team + * Copyright (C) 2018-2020 Andrei Karas (4144) * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/common/packets/packets2004_len_ad.h b/src/common/packets/packets2004_len_ad.h index 19b5a742e..e09f92122 100644 --- a/src/common/packets/packets2004_len_ad.h +++ b/src/common/packets/packets2004_len_ad.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2018-2019 Hercules Dev Team - * Copyright (C) 2018-2019 Andrei Karas (4144) + * Copyright (C) 2018-2020 Hercules Dev Team + * Copyright (C) 2018-2020 Andrei Karas (4144) * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/common/packets/packets2004_len_main.h b/src/common/packets/packets2004_len_main.h index 814788824..1ec936773 100644 --- a/src/common/packets/packets2004_len_main.h +++ b/src/common/packets/packets2004_len_main.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2018-2019 Hercules Dev Team - * Copyright (C) 2018-2019 Andrei Karas (4144) + * Copyright (C) 2018-2020 Hercules Dev Team + * Copyright (C) 2018-2020 Andrei Karas (4144) * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/common/packets/packets2004_len_sak.h b/src/common/packets/packets2004_len_sak.h index 7caffffc3..ff48440de 100644 --- a/src/common/packets/packets2004_len_sak.h +++ b/src/common/packets/packets2004_len_sak.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2018-2019 Hercules Dev Team - * Copyright (C) 2018-2019 Andrei Karas (4144) + * Copyright (C) 2018-2020 Hercules Dev Team + * Copyright (C) 2018-2020 Andrei Karas (4144) * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/common/packets/packets2005_len_ad.h b/src/common/packets/packets2005_len_ad.h index 468291f36..41a82f773 100644 --- a/src/common/packets/packets2005_len_ad.h +++ b/src/common/packets/packets2005_len_ad.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2018-2019 Hercules Dev Team - * Copyright (C) 2018-2019 Andrei Karas (4144) + * Copyright (C) 2018-2020 Hercules Dev Team + * Copyright (C) 2018-2020 Andrei Karas (4144) * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/common/packets/packets2005_len_main.h b/src/common/packets/packets2005_len_main.h index 91b274ab4..e49ea9c94 100644 --- a/src/common/packets/packets2005_len_main.h +++ b/src/common/packets/packets2005_len_main.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2018-2019 Hercules Dev Team - * Copyright (C) 2018-2019 Andrei Karas (4144) + * Copyright (C) 2018-2020 Hercules Dev Team + * Copyright (C) 2018-2020 Andrei Karas (4144) * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/common/packets/packets2005_len_sak.h b/src/common/packets/packets2005_len_sak.h index e9331eca5..2da2a1065 100644 --- a/src/common/packets/packets2005_len_sak.h +++ b/src/common/packets/packets2005_len_sak.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2018-2019 Hercules Dev Team - * Copyright (C) 2018-2019 Andrei Karas (4144) + * Copyright (C) 2018-2020 Hercules Dev Team + * Copyright (C) 2018-2020 Andrei Karas (4144) * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/common/packets/packets2006_len_ad.h b/src/common/packets/packets2006_len_ad.h index 981cbb4cb..0e38df526 100644 --- a/src/common/packets/packets2006_len_ad.h +++ b/src/common/packets/packets2006_len_ad.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2018-2019 Hercules Dev Team - * Copyright (C) 2018-2019 Andrei Karas (4144) + * Copyright (C) 2018-2020 Hercules Dev Team + * Copyright (C) 2018-2020 Andrei Karas (4144) * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/common/packets/packets2006_len_main.h b/src/common/packets/packets2006_len_main.h index 0eaa9f36c..92020778d 100644 --- a/src/common/packets/packets2006_len_main.h +++ b/src/common/packets/packets2006_len_main.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2018-2019 Hercules Dev Team - * Copyright (C) 2018-2019 Andrei Karas (4144) + * Copyright (C) 2018-2020 Hercules Dev Team + * Copyright (C) 2018-2020 Andrei Karas (4144) * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/common/packets/packets2006_len_sak.h b/src/common/packets/packets2006_len_sak.h index 6e39dcc3b..c01f5d51b 100644 --- a/src/common/packets/packets2006_len_sak.h +++ b/src/common/packets/packets2006_len_sak.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2018-2019 Hercules Dev Team - * Copyright (C) 2018-2019 Andrei Karas (4144) + * Copyright (C) 2018-2020 Hercules Dev Team + * Copyright (C) 2018-2020 Andrei Karas (4144) * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/common/packets/packets2007_len_ad.h b/src/common/packets/packets2007_len_ad.h index 1a1160786..d620d36e8 100644 --- a/src/common/packets/packets2007_len_ad.h +++ b/src/common/packets/packets2007_len_ad.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2018-2019 Hercules Dev Team - * Copyright (C) 2018-2019 Andrei Karas (4144) + * Copyright (C) 2018-2020 Hercules Dev Team + * Copyright (C) 2018-2020 Andrei Karas (4144) * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/common/packets/packets2007_len_main.h b/src/common/packets/packets2007_len_main.h index 374d5913e..953026a6b 100644 --- a/src/common/packets/packets2007_len_main.h +++ b/src/common/packets/packets2007_len_main.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2018-2019 Hercules Dev Team - * Copyright (C) 2018-2019 Andrei Karas (4144) + * Copyright (C) 2018-2020 Hercules Dev Team + * Copyright (C) 2018-2020 Andrei Karas (4144) * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/common/packets/packets2007_len_sak.h b/src/common/packets/packets2007_len_sak.h index 747335a23..d23b07d75 100644 --- a/src/common/packets/packets2007_len_sak.h +++ b/src/common/packets/packets2007_len_sak.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2018-2019 Hercules Dev Team - * Copyright (C) 2018-2019 Andrei Karas (4144) + * Copyright (C) 2018-2020 Hercules Dev Team + * Copyright (C) 2018-2020 Andrei Karas (4144) * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/common/packets/packets2008_len_ad.h b/src/common/packets/packets2008_len_ad.h index 6b3d7e25a..1a1aa5f54 100644 --- a/src/common/packets/packets2008_len_ad.h +++ b/src/common/packets/packets2008_len_ad.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2018-2019 Hercules Dev Team - * Copyright (C) 2018-2019 Andrei Karas (4144) + * Copyright (C) 2018-2020 Hercules Dev Team + * Copyright (C) 2018-2020 Andrei Karas (4144) * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/common/packets/packets2008_len_main.h b/src/common/packets/packets2008_len_main.h index d73b1c77d..a8caefe10 100644 --- a/src/common/packets/packets2008_len_main.h +++ b/src/common/packets/packets2008_len_main.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2018-2019 Hercules Dev Team - * Copyright (C) 2018-2019 Andrei Karas (4144) + * Copyright (C) 2018-2020 Hercules Dev Team + * Copyright (C) 2018-2020 Andrei Karas (4144) * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/common/packets/packets2008_len_re.h b/src/common/packets/packets2008_len_re.h index 7dfd991ba..8b855d34d 100644 --- a/src/common/packets/packets2008_len_re.h +++ b/src/common/packets/packets2008_len_re.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2018-2019 Hercules Dev Team - * Copyright (C) 2018-2019 Andrei Karas (4144) + * Copyright (C) 2018-2020 Hercules Dev Team + * Copyright (C) 2018-2020 Andrei Karas (4144) * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/common/packets/packets2008_len_sak.h b/src/common/packets/packets2008_len_sak.h index 0bb6b3251..1bc3d5edc 100644 --- a/src/common/packets/packets2008_len_sak.h +++ b/src/common/packets/packets2008_len_sak.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2018-2019 Hercules Dev Team - * Copyright (C) 2018-2019 Andrei Karas (4144) + * Copyright (C) 2018-2020 Hercules Dev Team + * Copyright (C) 2018-2020 Andrei Karas (4144) * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/common/packets/packets2009_len_main.h b/src/common/packets/packets2009_len_main.h index 0917b89cb..f35a273d7 100644 --- a/src/common/packets/packets2009_len_main.h +++ b/src/common/packets/packets2009_len_main.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2018-2019 Hercules Dev Team - * Copyright (C) 2018-2019 Andrei Karas (4144) + * Copyright (C) 2018-2020 Hercules Dev Team + * Copyright (C) 2018-2020 Andrei Karas (4144) * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/common/packets/packets2009_len_re.h b/src/common/packets/packets2009_len_re.h index 37d5efa47..f8b5ac986 100644 --- a/src/common/packets/packets2009_len_re.h +++ b/src/common/packets/packets2009_len_re.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2018-2019 Hercules Dev Team - * Copyright (C) 2018-2019 Andrei Karas (4144) + * Copyright (C) 2018-2020 Hercules Dev Team + * Copyright (C) 2018-2020 Andrei Karas (4144) * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/common/packets/packets2009_len_sak.h b/src/common/packets/packets2009_len_sak.h index 08ae6eca9..da3727fd2 100644 --- a/src/common/packets/packets2009_len_sak.h +++ b/src/common/packets/packets2009_len_sak.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2018-2019 Hercules Dev Team - * Copyright (C) 2018-2019 Andrei Karas (4144) + * Copyright (C) 2018-2020 Hercules Dev Team + * Copyright (C) 2018-2020 Andrei Karas (4144) * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/common/packets/packets2010_len_main.h b/src/common/packets/packets2010_len_main.h index e21fd53ac..da5c3aa13 100644 --- a/src/common/packets/packets2010_len_main.h +++ b/src/common/packets/packets2010_len_main.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2018-2019 Hercules Dev Team - * Copyright (C) 2018-2019 Andrei Karas (4144) + * Copyright (C) 2018-2020 Hercules Dev Team + * Copyright (C) 2018-2020 Andrei Karas (4144) * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/common/packets/packets2010_len_re.h b/src/common/packets/packets2010_len_re.h index c1adcfd47..9ebe1def6 100644 --- a/src/common/packets/packets2010_len_re.h +++ b/src/common/packets/packets2010_len_re.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2018-2019 Hercules Dev Team - * Copyright (C) 2018-2019 Andrei Karas (4144) + * Copyright (C) 2018-2020 Hercules Dev Team + * Copyright (C) 2018-2020 Andrei Karas (4144) * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/common/packets/packets2011_len_main.h b/src/common/packets/packets2011_len_main.h index 3a22085c9..a5644177d 100644 --- a/src/common/packets/packets2011_len_main.h +++ b/src/common/packets/packets2011_len_main.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2018-2019 Hercules Dev Team - * Copyright (C) 2018-2019 Andrei Karas (4144) + * Copyright (C) 2018-2020 Hercules Dev Team + * Copyright (C) 2018-2020 Andrei Karas (4144) * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/common/packets/packets2011_len_re.h b/src/common/packets/packets2011_len_re.h index d4e51782d..7bb9f0537 100644 --- a/src/common/packets/packets2011_len_re.h +++ b/src/common/packets/packets2011_len_re.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2018-2019 Hercules Dev Team - * Copyright (C) 2018-2019 Andrei Karas (4144) + * Copyright (C) 2018-2020 Hercules Dev Team + * Copyright (C) 2018-2020 Andrei Karas (4144) * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/common/packets/packets2012_len_main.h b/src/common/packets/packets2012_len_main.h index 116526aa5..6095f6807 100644 --- a/src/common/packets/packets2012_len_main.h +++ b/src/common/packets/packets2012_len_main.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2018-2019 Hercules Dev Team - * Copyright (C) 2018-2019 Andrei Karas (4144) + * Copyright (C) 2018-2020 Hercules Dev Team + * Copyright (C) 2018-2020 Andrei Karas (4144) * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/common/packets/packets2012_len_re.h b/src/common/packets/packets2012_len_re.h index a3399a942..6846b3ff0 100644 --- a/src/common/packets/packets2012_len_re.h +++ b/src/common/packets/packets2012_len_re.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2018-2019 Hercules Dev Team - * Copyright (C) 2018-2019 Andrei Karas (4144) + * Copyright (C) 2018-2020 Hercules Dev Team + * Copyright (C) 2018-2020 Andrei Karas (4144) * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/common/packets/packets2013_len_main.h b/src/common/packets/packets2013_len_main.h index 3845b73a8..3ca54efd2 100644 --- a/src/common/packets/packets2013_len_main.h +++ b/src/common/packets/packets2013_len_main.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2018-2019 Hercules Dev Team - * Copyright (C) 2018-2019 Andrei Karas (4144) + * Copyright (C) 2018-2020 Hercules Dev Team + * Copyright (C) 2018-2020 Andrei Karas (4144) * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/common/packets/packets2013_len_re.h b/src/common/packets/packets2013_len_re.h index c5cc6a6c7..021a7ef4d 100644 --- a/src/common/packets/packets2013_len_re.h +++ b/src/common/packets/packets2013_len_re.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2018-2019 Hercules Dev Team - * Copyright (C) 2018-2019 Andrei Karas (4144) + * Copyright (C) 2018-2020 Hercules Dev Team + * Copyright (C) 2018-2020 Andrei Karas (4144) * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/common/packets/packets2014_len_main.h b/src/common/packets/packets2014_len_main.h index e927738c1..0e3aeab37 100644 --- a/src/common/packets/packets2014_len_main.h +++ b/src/common/packets/packets2014_len_main.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2018-2019 Hercules Dev Team - * Copyright (C) 2018-2019 Andrei Karas (4144) + * Copyright (C) 2018-2020 Hercules Dev Team + * Copyright (C) 2018-2020 Andrei Karas (4144) * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/common/packets/packets2014_len_re.h b/src/common/packets/packets2014_len_re.h index 2cfecae19..de1eac07e 100644 --- a/src/common/packets/packets2014_len_re.h +++ b/src/common/packets/packets2014_len_re.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2018-2019 Hercules Dev Team - * Copyright (C) 2018-2019 Andrei Karas (4144) + * Copyright (C) 2018-2020 Hercules Dev Team + * Copyright (C) 2018-2020 Andrei Karas (4144) * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/common/packets/packets2015_len_main.h b/src/common/packets/packets2015_len_main.h index c8afa76f3..f1454b3ce 100644 --- a/src/common/packets/packets2015_len_main.h +++ b/src/common/packets/packets2015_len_main.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2018-2019 Hercules Dev Team - * Copyright (C) 2018-2019 Andrei Karas (4144) + * Copyright (C) 2018-2020 Hercules Dev Team + * Copyright (C) 2018-2020 Andrei Karas (4144) * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/common/packets/packets2015_len_re.h b/src/common/packets/packets2015_len_re.h index b8d5e44f0..bce9fe5a2 100644 --- a/src/common/packets/packets2015_len_re.h +++ b/src/common/packets/packets2015_len_re.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2018-2019 Hercules Dev Team - * Copyright (C) 2018-2019 Andrei Karas (4144) + * Copyright (C) 2018-2020 Hercules Dev Team + * Copyright (C) 2018-2020 Andrei Karas (4144) * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/common/packets/packets2016_len_main.h b/src/common/packets/packets2016_len_main.h index 116cd4c34..80518e3eb 100644 --- a/src/common/packets/packets2016_len_main.h +++ b/src/common/packets/packets2016_len_main.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2018-2019 Hercules Dev Team - * Copyright (C) 2018-2019 Andrei Karas (4144) + * Copyright (C) 2018-2020 Hercules Dev Team + * Copyright (C) 2018-2020 Andrei Karas (4144) * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/common/packets/packets2016_len_re.h b/src/common/packets/packets2016_len_re.h index 7e59eaec1..b5b08bf00 100644 --- a/src/common/packets/packets2016_len_re.h +++ b/src/common/packets/packets2016_len_re.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2018-2019 Hercules Dev Team - * Copyright (C) 2018-2019 Andrei Karas (4144) + * Copyright (C) 2018-2020 Hercules Dev Team + * Copyright (C) 2018-2020 Andrei Karas (4144) * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/common/packets/packets2017_len_main.h b/src/common/packets/packets2017_len_main.h index 1ce3bfbcc..fce8e08c5 100644 --- a/src/common/packets/packets2017_len_main.h +++ b/src/common/packets/packets2017_len_main.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2018-2019 Hercules Dev Team - * Copyright (C) 2018-2019 Andrei Karas (4144) + * Copyright (C) 2018-2020 Hercules Dev Team + * Copyright (C) 2018-2020 Andrei Karas (4144) * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/common/packets/packets2017_len_re.h b/src/common/packets/packets2017_len_re.h index 7ed294a4a..fd716595e 100644 --- a/src/common/packets/packets2017_len_re.h +++ b/src/common/packets/packets2017_len_re.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2018-2019 Hercules Dev Team - * Copyright (C) 2018-2019 Andrei Karas (4144) + * Copyright (C) 2018-2020 Hercules Dev Team + * Copyright (C) 2018-2020 Andrei Karas (4144) * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/common/packets/packets2017_len_zero.h b/src/common/packets/packets2017_len_zero.h index 4dbaac29f..ef5e5944e 100644 --- a/src/common/packets/packets2017_len_zero.h +++ b/src/common/packets/packets2017_len_zero.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2018-2019 Hercules Dev Team - * Copyright (C) 2018-2019 Andrei Karas (4144) + * Copyright (C) 2018-2020 Hercules Dev Team + * Copyright (C) 2018-2020 Andrei Karas (4144) * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/common/packets/packets2018_len_main.h b/src/common/packets/packets2018_len_main.h index 12563846d..3712d0656 100644 --- a/src/common/packets/packets2018_len_main.h +++ b/src/common/packets/packets2018_len_main.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2018-2019 Hercules Dev Team - * Copyright (C) 2018-2019 Andrei Karas (4144) + * Copyright (C) 2018-2020 Hercules Dev Team + * Copyright (C) 2018-2020 Andrei Karas (4144) * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/common/packets/packets2018_len_re.h b/src/common/packets/packets2018_len_re.h index ddfa67664..2d700f016 100644 --- a/src/common/packets/packets2018_len_re.h +++ b/src/common/packets/packets2018_len_re.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2018-2019 Hercules Dev Team - * Copyright (C) 2018-2019 Andrei Karas (4144) + * Copyright (C) 2018-2020 Hercules Dev Team + * Copyright (C) 2018-2020 Andrei Karas (4144) * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/common/packets/packets2018_len_zero.h b/src/common/packets/packets2018_len_zero.h index 8e973ebbf..1f99f1ddb 100644 --- a/src/common/packets/packets2018_len_zero.h +++ b/src/common/packets/packets2018_len_zero.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2018-2019 Hercules Dev Team - * Copyright (C) 2018-2019 Andrei Karas (4144) + * Copyright (C) 2018-2020 Hercules Dev Team + * Copyright (C) 2018-2020 Andrei Karas (4144) * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/common/packets/packets2019_len_main.h b/src/common/packets/packets2019_len_main.h index 8c46258f8..5772ec89a 100644 --- a/src/common/packets/packets2019_len_main.h +++ b/src/common/packets/packets2019_len_main.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2018-2019 Hercules Dev Team - * Copyright (C) 2018-2019 Andrei Karas (4144) + * Copyright (C) 2018-2020 Hercules Dev Team + * Copyright (C) 2018-2020 Andrei Karas (4144) * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -4294,7 +4294,11 @@ packetLen(0x0af8, 11) packetLen(0x0af9, 6) // Packet: 0x0afa +#if PACKETVER >= 20191204 +packetLen(0x0afa, 58) +#elif PACKETVER >= 20190109 packetLen(0x0afa, 54) +#endif // Packet: 0x0afb packetLen(0x0afb, -1) @@ -4612,7 +4616,9 @@ packetLen(0x0b3e, -1) #endif // Packet: 0x0b3f -#if PACKETVER >= 20191016 +#if PACKETVER >= 20191224 +packetLen(0x0b3f, 64) +#elif PACKETVER >= 20191016 packetLen(0x0b3f, 63) #elif PACKETVER >= 20190724 packetLen(0x0b3f, 64) @@ -4624,33 +4630,43 @@ packetLen(0x0b40, -1) #endif // Packet: 0x0b41 -#if PACKETVER >= 20191016 +#if PACKETVER >= 20191224 +packetLen(0x0b41, 70) +#elif PACKETVER >= 20191016 packetLen(0x0b41, 69) #elif PACKETVER >= 20190724 packetLen(0x0b41, 41) #endif // Packet: 0x0b42 -#if PACKETVER >= 20191016 +#if PACKETVER >= 20191224 +packetLen(0x0b42, 62) +#elif PACKETVER >= 20191016 packetLen(0x0b42, 61) #elif PACKETVER >= 20190724 packetLen(0x0b42, 30) #endif // Packet: 0x0b43 -#if PACKETVER >= 20190724 +#if PACKETVER >= 20191224 +packetLen(0x0b43, 48) +#elif PACKETVER >= 20190724 packetLen(0x0b43, 47) #endif // Packet: 0x0b44 -#if PACKETVER >= 20191016 +#if PACKETVER >= 20191224 +packetLen(0x0b44, 58) +#elif PACKETVER >= 20191016 packetLen(0x0b44, 57) #elif PACKETVER >= 20190724 packetLen(0x0b44, 32) #endif // Packet: 0x0b45 -#if PACKETVER >= 20191016 +#if PACKETVER >= 20191224 +packetLen(0x0b45, 58) +#elif PACKETVER >= 20191016 packetLen(0x0b45, 57) #elif PACKETVER >= 20190724 packetLen(0x0b45, 32) @@ -4837,14 +4853,53 @@ packetLen(0x0b65, -1) #endif // Packet: 0x0b66 -#if PACKETVER >= 20191106 +#if PACKETVER >= 20191224 +packetLen(0x0b66, 26) +#elif PACKETVER >= 20191106 packetLen(0x0b66, 25) #endif // Packet: 0x0b67 -#if PACKETVER >= 20191106 +#if PACKETVER >= 20191224 +packetLen(0x0b67, 33) +#elif PACKETVER >= 20191106 packetLen(0x0b67, 32) #endif +// Packet: 0x0b68 +#if PACKETVER >= 20191120 +packetLen(0x0b68, 12) +#endif + +// Packet: 0x0b69 +#if PACKETVER >= 20191127 +packetLen(0x0b69, 18) +#endif + +// Packet: 0x0b6a +#if PACKETVER >= 20191204 +packetLen(0x0b6a, -1) +#endif + +// Packet: 0x0b6b +#if PACKETVER >= 20191218 +packetLen(0x0b6b, 14) +#endif + +// Packet: 0x0b6c +#if PACKETVER >= 20191218 +packetLen(0x0b6c, 12) +#endif + +// Packet: 0x0b6d +#if PACKETVER >= 20191224 +packetLen(0x0b6d, 6) +#endif + +// Packet: 0x0b6e +#if PACKETVER >= 20191224 +packetLen(0x0b6e, 14) +#endif + #endif /* COMMON_PACKETS2019_LEN_MAIN_H */ diff --git a/src/common/packets/packets2019_len_re.h b/src/common/packets/packets2019_len_re.h index 489fec550..45572abc1 100644 --- a/src/common/packets/packets2019_len_re.h +++ b/src/common/packets/packets2019_len_re.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2018-2019 Hercules Dev Team - * Copyright (C) 2018-2019 Andrei Karas (4144) + * Copyright (C) 2018-2020 Hercules Dev Team + * Copyright (C) 2018-2020 Andrei Karas (4144) * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -4300,7 +4300,11 @@ packetLen(0x0af8, 11) packetLen(0x0af9, 6) // Packet: 0x0afa +#if PACKETVER >= 20191204 +packetLen(0x0afa, 58) +#elif PACKETVER >= 20190109 packetLen(0x0afa, 54) +#endif // Packet: 0x0afb packetLen(0x0afb, -1) @@ -4624,7 +4628,9 @@ packetLen(0x0b3e, -1) #endif // Packet: 0x0b3f -#if PACKETVER >= 20191016 +#if PACKETVER >= 20191224 +packetLen(0x0b3f, 64) +#elif PACKETVER >= 20191016 packetLen(0x0b3f, 63) #elif PACKETVER >= 20190724 packetLen(0x0b3f, 64) @@ -4636,33 +4642,43 @@ packetLen(0x0b40, -1) #endif // Packet: 0x0b41 -#if PACKETVER >= 20191016 +#if PACKETVER >= 20191224 +packetLen(0x0b41, 70) +#elif PACKETVER >= 20191016 packetLen(0x0b41, 69) #elif PACKETVER >= 20190724 packetLen(0x0b41, 41) #endif // Packet: 0x0b42 -#if PACKETVER >= 20191016 +#if PACKETVER >= 20191224 +packetLen(0x0b42, 62) +#elif PACKETVER >= 20191016 packetLen(0x0b42, 61) #elif PACKETVER >= 20190724 packetLen(0x0b42, 30) #endif // Packet: 0x0b43 -#if PACKETVER >= 20190724 +#if PACKETVER >= 20191224 +packetLen(0x0b43, 48) +#elif PACKETVER >= 20190724 packetLen(0x0b43, 47) #endif // Packet: 0x0b44 -#if PACKETVER >= 20191016 +#if PACKETVER >= 20191224 +packetLen(0x0b44, 58) +#elif PACKETVER >= 20191016 packetLen(0x0b44, 57) #elif PACKETVER >= 20190724 packetLen(0x0b44, 32) #endif // Packet: 0x0b45 -#if PACKETVER >= 20191016 +#if PACKETVER >= 20191224 +packetLen(0x0b45, 58) +#elif PACKETVER >= 20191016 packetLen(0x0b45, 57) #elif PACKETVER >= 20190724 packetLen(0x0b45, 32) @@ -4849,14 +4865,53 @@ packetLen(0x0b65, -1) #endif // Packet: 0x0b66 -#if PACKETVER >= 20191106 +#if PACKETVER >= 20191224 +packetLen(0x0b66, 26) +#elif PACKETVER >= 20191106 packetLen(0x0b66, 25) #endif // Packet: 0x0b67 -#if PACKETVER >= 20191106 +#if PACKETVER >= 20191224 +packetLen(0x0b67, 33) +#elif PACKETVER >= 20191106 packetLen(0x0b67, 32) #endif +// Packet: 0x0b68 +#if PACKETVER >= 20191120 +packetLen(0x0b68, 12) +#endif + +// Packet: 0x0b69 +#if PACKETVER >= 20191127 +packetLen(0x0b69, 18) +#endif + +// Packet: 0x0b6a +#if PACKETVER >= 20191204 +packetLen(0x0b6a, -1) +#endif + +// Packet: 0x0b6b +#if PACKETVER >= 20191218 +packetLen(0x0b6b, 14) +#endif + +// Packet: 0x0b6c +#if PACKETVER >= 20191218 +packetLen(0x0b6c, 12) +#endif + +// Packet: 0x0b6d +#if PACKETVER >= 20191224 +packetLen(0x0b6d, 6) +#endif + +// Packet: 0x0b6e +#if PACKETVER >= 20191224 +packetLen(0x0b6e, 14) +#endif + #endif /* COMMON_PACKETS2019_LEN_RE_H */ diff --git a/src/common/packets/packets2019_len_zero.h b/src/common/packets/packets2019_len_zero.h index ab3403eb6..226de51ac 100644 --- a/src/common/packets/packets2019_len_zero.h +++ b/src/common/packets/packets2019_len_zero.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2018-2019 Hercules Dev Team - * Copyright (C) 2018-2019 Andrei Karas (4144) + * Copyright (C) 2018-2020 Hercules Dev Team + * Copyright (C) 2018-2020 Andrei Karas (4144) * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -4294,7 +4294,11 @@ packetLen(0x0af8, 11) packetLen(0x0af9, 6) // Packet: 0x0afa +#if PACKETVER >= 20191204 +packetLen(0x0afa, 58) +#elif PACKETVER >= 20190116 packetLen(0x0afa, 54) +#endif // Packet: 0x0afb packetLen(0x0afb, -1) @@ -4604,7 +4608,9 @@ packetLen(0x0b3e, -1) #endif // Packet: 0x0b3f -#if PACKETVER >= 20191008 +#if PACKETVER >= 20191224 +packetLen(0x0b3f, 64) +#elif PACKETVER >= 20191008 packetLen(0x0b3f, 63) #elif PACKETVER >= 20190724 packetLen(0x0b3f, 64) @@ -4616,33 +4622,43 @@ packetLen(0x0b40, -1) #endif // Packet: 0x0b41 -#if PACKETVER >= 20191008 +#if PACKETVER >= 20191224 +packetLen(0x0b41, 70) +#elif PACKETVER >= 20191008 packetLen(0x0b41, 69) #elif PACKETVER >= 20190724 packetLen(0x0b41, 41) #endif // Packet: 0x0b42 -#if PACKETVER >= 20191008 +#if PACKETVER >= 20191224 +packetLen(0x0b42, 62) +#elif PACKETVER >= 20191008 packetLen(0x0b42, 61) #elif PACKETVER >= 20190724 packetLen(0x0b42, 30) #endif // Packet: 0x0b43 -#if PACKETVER >= 20190724 +#if PACKETVER >= 20191224 +packetLen(0x0b43, 48) +#elif PACKETVER >= 20190724 packetLen(0x0b43, 47) #endif // Packet: 0x0b44 -#if PACKETVER >= 20191008 +#if PACKETVER >= 20191224 +packetLen(0x0b44, 58) +#elif PACKETVER >= 20191008 packetLen(0x0b44, 57) #elif PACKETVER >= 20190724 packetLen(0x0b44, 32) #endif // Packet: 0x0b45 -#if PACKETVER >= 20191008 +#if PACKETVER >= 20191224 +packetLen(0x0b45, 58) +#elif PACKETVER >= 20191008 packetLen(0x0b45, 57) #elif PACKETVER >= 20190724 packetLen(0x0b45, 32) @@ -4821,14 +4837,53 @@ packetLen(0x0b65, -1) #endif // Packet: 0x0b66 -#if PACKETVER >= 20191106 +#if PACKETVER >= 20191224 +packetLen(0x0b66, 26) +#elif PACKETVER >= 20191106 packetLen(0x0b66, 25) #endif // Packet: 0x0b67 -#if PACKETVER >= 20191106 +#if PACKETVER >= 20191224 +packetLen(0x0b67, 33) +#elif PACKETVER >= 20191106 packetLen(0x0b67, 32) #endif +// Packet: 0x0b68 +#if PACKETVER >= 20191127 +packetLen(0x0b68, 12) +#endif + +// Packet: 0x0b69 +#if PACKETVER >= 20191127 +packetLen(0x0b69, 18) +#endif + +// Packet: 0x0b6a +#if PACKETVER >= 20191204 +packetLen(0x0b6a, -1) +#endif + +// Packet: 0x0b6b +#if PACKETVER >= 20191224 +packetLen(0x0b6b, 14) +#endif + +// Packet: 0x0b6c +#if PACKETVER >= 20191224 +packetLen(0x0b6c, 12) +#endif + +// Packet: 0x0b6d +#if PACKETVER >= 20191224 +packetLen(0x0b6d, 6) +#endif + +// Packet: 0x0b6e +#if PACKETVER >= 20191224 +packetLen(0x0b6e, 14) +#endif + #endif /* COMMON_PACKETS2019_LEN_ZERO_H */ diff --git a/src/common/packets/packets2020_len_main.h b/src/common/packets/packets2020_len_main.h new file mode 100644 index 000000000..a85cddb29 --- /dev/null +++ b/src/common/packets/packets2020_len_main.h @@ -0,0 +1,4615 @@ +/** + * This file is part of Hercules. + * http://herc.ws - http://github.com/HerculesWS/Hercules + * + * Copyright (C) 2018-2020 Hercules Dev Team + * Copyright (C) 2018-2020 Andrei Karas (4144) + * + * 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/>. + */ + +#ifndef COMMON_PACKETS2020_LEN_MAIN_H +#define COMMON_PACKETS2020_LEN_MAIN_H + +/* This file is autogenerated, please do not commit manual changes */ + +// Packet: 0x0064 +packetLen(0x0064, 55) + +// Packet: 0x0065 +packetLen(0x0065, 17) + +// Packet: 0x0066 +packetLen(0x0066, 3) + +// Packet: 0x0067 +packetLen(0x0067, 37) + +// Packet: 0x0068 +packetLen(0x0068, 46) + +// Packet: 0x0069 +packetLen(0x0069, -1) + +// Packet: 0x006a +packetLen(0x006a, 23) + +// Packet: 0x006b +packetLen(0x006b, -1) + +// Packet: 0x006c +packetLen(0x006c, 3) + +// Packet: 0x006d +packetLen(0x006d, 157) + +// Packet: 0x006e +packetLen(0x006e, 3) + +// Packet: 0x006f +packetLen(0x006f, 2) + +// Packet: 0x0070 +packetLen(0x0070, 3) + +// Packet: 0x0071 +packetLen(0x0071, 28) + +// Packet: 0x0072 +packetLen(0x0072, 22) + +// Packet: 0x0073 +packetLen(0x0073, 11) + +// Packet: 0x0074 +packetLen(0x0074, 3) + +// Packet: 0x0075 +packetLen(0x0075, -1) + +// Packet: 0x0076 +packetLen(0x0076, 9) + +// Packet: 0x0077 +packetLen(0x0077, 5) + +// Packet: 0x0078 +packetLen(0x0078, 55) + +// Packet: 0x0079 +packetLen(0x0079, 53) + +// Packet: 0x007a +packetLen(0x007a, 58) + +// Packet: 0x007b +packetLen(0x007b, 60) + +// Packet: 0x007c +packetLen(0x007c, 44) + +// Packet: 0x007d +packetLen(0x007d, 2) + +// Packet: 0x007e +packetLen(0x007e, 46) + +// Packet: 0x007f +packetLen(0x007f, 6) + +// Packet: 0x0080 +packetLen(0x0080, 7) + +// Packet: 0x0081 +packetLen(0x0081, 3) + +// Packet: 0x0082 +packetLen(0x0082, 2) + +// Packet: 0x0083 +packetLen(0x0083, 2) + +// Packet: 0x0084 +packetLen(0x0084, 2) + +// Packet: 0x0085 +packetLen(0x0085, 10) + +// Packet: 0x0086 +packetLen(0x0086, 16) + +// Packet: 0x0087 +packetLen(0x0087, 12) + +// Packet: 0x0088 +packetLen(0x0088, 10) + +// Packet: 0x0089 +packetLen(0x0089, 11) + +// Packet: 0x008a +packetLen(0x008a, 29) + +// Packet: 0x008b +packetLen(0x008b, 23) + +// Packet: 0x008c +packetLen(0x008c, 14) + +// Packet: 0x008d +packetLen(0x008d, -1) + +// Packet: 0x008e +packetLen(0x008e, -1) + +// Packet: 0x0090 +packetLen(0x0090, 7) + +// Packet: 0x0091 +packetLen(0x0091, 22) + +// Packet: 0x0092 +packetLen(0x0092, 28) + +// Packet: 0x0093 +packetLen(0x0093, 2) + +// Packet: 0x0094 +packetLen(0x0094, 19) + +// Packet: 0x0095 +packetLen(0x0095, 30) + +// Packet: 0x0096 +packetLen(0x0096, -1) + +// Packet: 0x0097 +packetLen(0x0097, -1) + +// Packet: 0x0098 +packetLen(0x0098, 3) + +// Packet: 0x0099 +packetLen(0x0099, -1) + +// Packet: 0x009a +packetLen(0x009a, -1) + +// Packet: 0x009b +packetLen(0x009b, 34) + +// Packet: 0x009c +packetLen(0x009c, 9) + +// Packet: 0x009d +packetLen(0x009d, 19) + +// Packet: 0x009e +packetLen(0x009e, 19) + +// Packet: 0x009f +packetLen(0x009f, 20) + +// Packet: 0x00a0 +packetLen(0x00a0, 33) + +// Packet: 0x00a1 +packetLen(0x00a1, 6) + +// Packet: 0x00a2 +packetLen(0x00a2, 14) + +// Packet: 0x00a3 +packetLen(0x00a3, -1) + +// Packet: 0x00a4 +packetLen(0x00a4, -1) + +// Packet: 0x00a5 +packetLen(0x00a5, -1) + +// Packet: 0x00a6 +packetLen(0x00a6, -1) + +// Packet: 0x00a7 +packetLen(0x00a7, 9) + +// Packet: 0x00a8 +packetLen(0x00a8, 7) + +// Packet: 0x00a9 +packetLen(0x00a9, 6) + +// Packet: 0x00aa +packetLen(0x00aa, 9) + +// Packet: 0x00ab +packetLen(0x00ab, 4) + +// Packet: 0x00ac +packetLen(0x00ac, 7) + +// Packet: 0x00ae +packetLen(0x00ae, -1) + +// Packet: 0x00af +packetLen(0x00af, 6) + +// Packet: 0x00b0 +packetLen(0x00b0, 8) + +// Packet: 0x00b1 +packetLen(0x00b1, 8) + +// Packet: 0x00b2 +packetLen(0x00b2, 3) + +// Packet: 0x00b3 +packetLen(0x00b3, 3) + +// Packet: 0x00b4 +packetLen(0x00b4, -1) + +// Packet: 0x00b5 +packetLen(0x00b5, 6) + +// Packet: 0x00b6 +packetLen(0x00b6, 6) + +// Packet: 0x00b7 +packetLen(0x00b7, -1) + +// Packet: 0x00b8 +packetLen(0x00b8, 7) + +// Packet: 0x00b9 +packetLen(0x00b9, 6) + +// Packet: 0x00ba +packetLen(0x00ba, 2) + +// Packet: 0x00bb +packetLen(0x00bb, 5) + +// Packet: 0x00bc +packetLen(0x00bc, 6) + +// Packet: 0x00bd +packetLen(0x00bd, 44) + +// Packet: 0x00be +packetLen(0x00be, 5) + +// Packet: 0x00bf +packetLen(0x00bf, 3) + +// Packet: 0x00c0 +packetLen(0x00c0, 7) + +// Packet: 0x00c1 +packetLen(0x00c1, 2) + +// Packet: 0x00c2 +packetLen(0x00c2, 6) + +// Packet: 0x00c3 +packetLen(0x00c3, 8) + +// Packet: 0x00c4 +packetLen(0x00c4, 6) + +// Packet: 0x00c5 +packetLen(0x00c5, 7) + +// Packet: 0x00c6 +packetLen(0x00c6, -1) + +// Packet: 0x00c7 +packetLen(0x00c7, -1) + +// Packet: 0x00c8 +packetLen(0x00c8, -1) + +// Packet: 0x00c9 +packetLen(0x00c9, -1) + +// Packet: 0x00ca +packetLen(0x00ca, 3) + +// Packet: 0x00cb +packetLen(0x00cb, 3) + +// Packet: 0x00cc +packetLen(0x00cc, 6) + +// Packet: 0x00cd +packetLen(0x00cd, 3) + +// Packet: 0x00ce +packetLen(0x00ce, 2) + +// Packet: 0x00cf +packetLen(0x00cf, 27) + +// Packet: 0x00d0 +packetLen(0x00d0, 3) + +// Packet: 0x00d1 +packetLen(0x00d1, 4) + +// Packet: 0x00d2 +packetLen(0x00d2, 4) + +// Packet: 0x00d3 +packetLen(0x00d3, 2) + +// Packet: 0x00d4 +packetLen(0x00d4, -1) + +// Packet: 0x00d5 +packetLen(0x00d5, -1) + +// Packet: 0x00d6 +packetLen(0x00d6, 3) + +// Packet: 0x00d7 +packetLen(0x00d7, -1) + +// Packet: 0x00d8 +packetLen(0x00d8, 6) + +// Packet: 0x00d9 +packetLen(0x00d9, 14) + +// Packet: 0x00da +packetLen(0x00da, 3) + +// Packet: 0x00db +packetLen(0x00db, -1) + +// Packet: 0x00dc +packetLen(0x00dc, 28) + +// Packet: 0x00dd +packetLen(0x00dd, 29) + +// Packet: 0x00de +packetLen(0x00de, -1) + +// Packet: 0x00df +packetLen(0x00df, -1) + +// Packet: 0x00e0 +packetLen(0x00e0, 30) + +// Packet: 0x00e1 +packetLen(0x00e1, 30) + +// Packet: 0x00e2 +packetLen(0x00e2, 26) + +// Packet: 0x00e3 +packetLen(0x00e3, 2) + +// Packet: 0x00e4 +packetLen(0x00e4, 6) + +// Packet: 0x00e5 +packetLen(0x00e5, 26) + +// Packet: 0x00e6 +packetLen(0x00e6, 3) + +// Packet: 0x00e7 +packetLen(0x00e7, 3) + +// Packet: 0x00e8 +packetLen(0x00e8, 8) + +// Packet: 0x00e9 +packetLen(0x00e9, 29) + +// Packet: 0x00ea +packetLen(0x00ea, 5) + +// Packet: 0x00eb +packetLen(0x00eb, 2) + +// Packet: 0x00ec +packetLen(0x00ec, 3) + +// Packet: 0x00ed +packetLen(0x00ed, 2) + +// Packet: 0x00ee +packetLen(0x00ee, 2) + +// Packet: 0x00ef +packetLen(0x00ef, 2) + +// Packet: 0x00f0 +packetLen(0x00f0, 3) + +// Packet: 0x00f1 +packetLen(0x00f1, 2) + +// Packet: 0x00f2 +packetLen(0x00f2, 6) + +// Packet: 0x00f3 +packetLen(0x00f3, -1) + +// Packet: 0x00f4 +packetLen(0x00f4, 31) + +// Packet: 0x00f5 +packetLen(0x00f5, 11) + +// Packet: 0x00f6 +packetLen(0x00f6, 8) + +// Packet: 0x00f7 +packetLen(0x00f7, 17) + +// Packet: 0x00f8 +packetLen(0x00f8, 2) + +// Packet: 0x00f9 +packetLen(0x00f9, 26) + +// Packet: 0x00fa +packetLen(0x00fa, 3) + +// Packet: 0x00fb +packetLen(0x00fb, -1) + +// Packet: 0x00fc +packetLen(0x00fc, 6) + +// Packet: 0x00fd +packetLen(0x00fd, 27) + +// Packet: 0x00fe +packetLen(0x00fe, 30) + +// Packet: 0x00ff +packetLen(0x00ff, 10) + +// Packet: 0x0100 +packetLen(0x0100, 2) + +// Packet: 0x0101 +packetLen(0x0101, 6) + +// Packet: 0x0102 +packetLen(0x0102, 6) + +// Packet: 0x0103 +packetLen(0x0103, 30) + +// Packet: 0x0104 +packetLen(0x0104, 79) + +// Packet: 0x0105 +packetLen(0x0105, 31) + +// Packet: 0x0106 +packetLen(0x0106, 10) + +// Packet: 0x0107 +packetLen(0x0107, 10) + +// Packet: 0x0108 +packetLen(0x0108, -1) + +// Packet: 0x0109 +packetLen(0x0109, -1) + +// Packet: 0x010a +packetLen(0x010a, 6) + +// Packet: 0x010b +packetLen(0x010b, 6) + +// Packet: 0x010c +packetLen(0x010c, 6) + +// Packet: 0x010d +packetLen(0x010d, 2) + +// Packet: 0x010e +packetLen(0x010e, 11) + +// Packet: 0x010f +packetLen(0x010f, -1) + +// Packet: 0x0110 +packetLen(0x0110, 14) + +// Packet: 0x0111 +packetLen(0x0111, 39) + +// Packet: 0x0112 +packetLen(0x0112, 4) + +// Packet: 0x0113 +packetLen(0x0113, 25) + +// Packet: 0x0114 +packetLen(0x0114, 31) + +// Packet: 0x0115 +packetLen(0x0115, 35) + +// Packet: 0x0116 +packetLen(0x0116, 17) + +// Packet: 0x0117 +packetLen(0x0117, 18) + +// Packet: 0x0118 +packetLen(0x0118, 2) + +// Packet: 0x0119 +packetLen(0x0119, 13) + +// Packet: 0x011a +packetLen(0x011a, 15) + +// Packet: 0x011b +packetLen(0x011b, 20) + +// Packet: 0x011c +packetLen(0x011c, 68) + +// Packet: 0x011d +packetLen(0x011d, 2) + +// Packet: 0x011e +packetLen(0x011e, 3) + +// Packet: 0x011f +packetLen(0x011f, 16) + +// Packet: 0x0120 +packetLen(0x0120, 6) + +// Packet: 0x0121 +packetLen(0x0121, 14) + +// Packet: 0x0122 +packetLen(0x0122, -1) + +// Packet: 0x0123 +packetLen(0x0123, -1) + +// Packet: 0x0124 +packetLen(0x0124, 31) + +// Packet: 0x0125 +packetLen(0x0125, 8) + +// Packet: 0x0126 +packetLen(0x0126, 8) + +// Packet: 0x0127 +packetLen(0x0127, 8) + +// Packet: 0x0128 +packetLen(0x0128, 8) + +// Packet: 0x0129 +packetLen(0x0129, 8) + +// Packet: 0x012a +packetLen(0x012a, 2) + +// Packet: 0x012b +packetLen(0x012b, 2) + +// Packet: 0x012c +packetLen(0x012c, 3) + +// Packet: 0x012d +packetLen(0x012d, 4) + +// Packet: 0x012e +packetLen(0x012e, 2) + +// Packet: 0x012f +packetLen(0x012f, -1) + +// Packet: 0x0130 +packetLen(0x0130, 6) + +// Packet: 0x0131 +packetLen(0x0131, 86) + +// Packet: 0x0132 +packetLen(0x0132, 6) + +// Packet: 0x0133 +packetLen(0x0133, -1) + +// Packet: 0x0134 +packetLen(0x0134, -1) + +// Packet: 0x0135 +packetLen(0x0135, 7) + +// Packet: 0x0136 +packetLen(0x0136, -1) + +// Packet: 0x0137 +packetLen(0x0137, 6) + +// Packet: 0x0138 +packetLen(0x0138, 3) + +// Packet: 0x0139 +packetLen(0x0139, 16) + +// Packet: 0x013a +packetLen(0x013a, 4) + +// Packet: 0x013b +packetLen(0x013b, 4) + +// Packet: 0x013c +packetLen(0x013c, 4) + +// Packet: 0x013d +packetLen(0x013d, 6) + +// Packet: 0x013e +packetLen(0x013e, 24) + +// Packet: 0x013f +packetLen(0x013f, 26) + +// Packet: 0x0140 +packetLen(0x0140, 22) + +// Packet: 0x0141 +packetLen(0x0141, 14) + +// Packet: 0x0142 +packetLen(0x0142, 6) + +// Packet: 0x0143 +packetLen(0x0143, 10) + +// Packet: 0x0144 +packetLen(0x0144, 23) + +// Packet: 0x0145 +packetLen(0x0145, 19) + +// Packet: 0x0146 +packetLen(0x0146, 6) + +// Packet: 0x0147 +packetLen(0x0147, 39) + +// Packet: 0x0148 +packetLen(0x0148, 8) + +// Packet: 0x0149 +packetLen(0x0149, 9) + +// Packet: 0x014a +packetLen(0x014a, 6) + +// Packet: 0x014b +packetLen(0x014b, 27) + +// Packet: 0x014c +packetLen(0x014c, -1) + +// Packet: 0x014d +packetLen(0x014d, 2) + +// Packet: 0x014e +packetLen(0x014e, 6) + +// Packet: 0x014f +packetLen(0x014f, 6) + +// Packet: 0x0150 +packetLen(0x0150, 110) + +// Packet: 0x0151 +packetLen(0x0151, 6) + +// Packet: 0x0152 +packetLen(0x0152, -1) + +// Packet: 0x0153 +packetLen(0x0153, -1) + +// Packet: 0x0154 +packetLen(0x0154, -1) + +// Packet: 0x0155 +packetLen(0x0155, -1) + +// Packet: 0x0156 +packetLen(0x0156, -1) + +// Packet: 0x0157 +packetLen(0x0157, 6) + +// Packet: 0x0159 +packetLen(0x0159, 54) + +// Packet: 0x015a +packetLen(0x015a, 66) + +// Packet: 0x015b +packetLen(0x015b, 54) + +// Packet: 0x015c +packetLen(0x015c, 90) + +// Packet: 0x015d +packetLen(0x015d, 42) + +// Packet: 0x015e +packetLen(0x015e, 6) + +// Packet: 0x015f +packetLen(0x015f, 42) + +// Packet: 0x0160 +packetLen(0x0160, -1) + +// Packet: 0x0161 +packetLen(0x0161, -1) + +// Packet: 0x0162 +packetLen(0x0162, -1) + +// Packet: 0x0163 +packetLen(0x0163, -1) + +// Packet: 0x0164 +packetLen(0x0164, -1) + +// Packet: 0x0165 +packetLen(0x0165, 30) + +// Packet: 0x0166 +packetLen(0x0166, -1) + +// Packet: 0x0167 +packetLen(0x0167, 3) + +// Packet: 0x0168 +packetLen(0x0168, 14) + +// Packet: 0x0169 +packetLen(0x0169, 3) + +// Packet: 0x016a +packetLen(0x016a, 30) + +// Packet: 0x016b +packetLen(0x016b, 10) + +// Packet: 0x016c +packetLen(0x016c, 43) + +// Packet: 0x016d +packetLen(0x016d, 14) + +// Packet: 0x016e +packetLen(0x016e, 186) + +// Packet: 0x016f +packetLen(0x016f, 182) + +// Packet: 0x0170 +packetLen(0x0170, 14) + +// Packet: 0x0171 +packetLen(0x0171, 30) + +// Packet: 0x0172 +packetLen(0x0172, 10) + +// Packet: 0x0173 +packetLen(0x0173, 3) + +// Packet: 0x0174 +packetLen(0x0174, -1) + +// Packet: 0x0175 +packetLen(0x0175, 6) + +// Packet: 0x0176 +packetLen(0x0176, 106) + +// Packet: 0x0177 +packetLen(0x0177, -1) + +// Packet: 0x0178 +packetLen(0x0178, 4) + +// Packet: 0x0179 +packetLen(0x0179, 5) + +// Packet: 0x017a +packetLen(0x017a, 4) + +// Packet: 0x017b +packetLen(0x017b, -1) + +// Packet: 0x017c +packetLen(0x017c, 6) + +// Packet: 0x017d +packetLen(0x017d, 7) + +// Packet: 0x017e +packetLen(0x017e, -1) + +// Packet: 0x017f +packetLen(0x017f, -1) + +// Packet: 0x0180 +packetLen(0x0180, 6) + +// Packet: 0x0181 +packetLen(0x0181, 3) + +// Packet: 0x0182 +packetLen(0x0182, 106) + +// Packet: 0x0183 +packetLen(0x0183, 10) + +// Packet: 0x0184 +packetLen(0x0184, 10) + +// Packet: 0x0185 +packetLen(0x0185, 34) + +// Packet: 0x0187 +packetLen(0x0187, 6) + +// Packet: 0x0188 +packetLen(0x0188, 8) + +// Packet: 0x0189 +packetLen(0x0189, 4) + +// Packet: 0x018a +packetLen(0x018a, 4) + +// Packet: 0x018b +packetLen(0x018b, 4) + +// Packet: 0x018c +packetLen(0x018c, 29) + +// Packet: 0x018d +packetLen(0x018d, -1) + +// Packet: 0x018e +packetLen(0x018e, 18) + +// Packet: 0x018f +packetLen(0x018f, 8) + +// Packet: 0x0190 +packetLen(0x0190, 23) + +// Packet: 0x0191 +packetLen(0x0191, 27) + +// Packet: 0x0192 +packetLen(0x0192, 24) + +// Packet: 0x0193 +packetLen(0x0193, 2) + +// Packet: 0x0194 +packetLen(0x0194, 30) + +// Packet: 0x0195 +packetLen(0x0195, 102) + +// Packet: 0x0196 +packetLen(0x0196, 9) + +// Packet: 0x0197 +packetLen(0x0197, 4) + +// Packet: 0x0198 +packetLen(0x0198, 8) + +// Packet: 0x0199 +packetLen(0x0199, 4) + +// Packet: 0x019a +packetLen(0x019a, 14) + +// Packet: 0x019b +packetLen(0x019b, 10) + +// Packet: 0x019c +packetLen(0x019c, -1) + +// Packet: 0x019d +packetLen(0x019d, 6) + +// Packet: 0x019e +packetLen(0x019e, 2) + +// Packet: 0x019f +packetLen(0x019f, 6) + +// Packet: 0x01a0 +packetLen(0x01a0, 3) + +// Packet: 0x01a1 +packetLen(0x01a1, 3) + +// Packet: 0x01a2 +packetLen(0x01a2, 37) + +// Packet: 0x01a3 +packetLen(0x01a3, 7) + +// Packet: 0x01a4 +packetLen(0x01a4, 11) + +// Packet: 0x01a5 +packetLen(0x01a5, 26) + +// Packet: 0x01a6 +packetLen(0x01a6, -1) + +// Packet: 0x01a7 +packetLen(0x01a7, 4) + +// Packet: 0x01a8 +packetLen(0x01a8, 4) + +// Packet: 0x01a9 +packetLen(0x01a9, 6) + +// Packet: 0x01aa +packetLen(0x01aa, 10) + +// Packet: 0x01ab +packetLen(0x01ab, 12) + +// Packet: 0x01ac +packetLen(0x01ac, 6) + +// Packet: 0x01ad +packetLen(0x01ad, -1) + +// Packet: 0x01ae +packetLen(0x01ae, 6) + +// Packet: 0x01af +packetLen(0x01af, 4) + +// Packet: 0x01b0 +packetLen(0x01b0, 11) + +// Packet: 0x01b1 +packetLen(0x01b1, 7) + +// Packet: 0x01b2 +packetLen(0x01b2, -1) + +// Packet: 0x01b3 +packetLen(0x01b3, 67) + +// Packet: 0x01b4 +packetLen(0x01b4, 12) + +// Packet: 0x01b5 +packetLen(0x01b5, 18) + +// Packet: 0x01b6 +packetLen(0x01b6, 114) + +// Packet: 0x01b7 +packetLen(0x01b7, 6) + +// Packet: 0x01b8 +packetLen(0x01b8, 3) + +// Packet: 0x01b9 +packetLen(0x01b9, 6) + +// Packet: 0x01ba +packetLen(0x01ba, 26) + +// Packet: 0x01bb +packetLen(0x01bb, 26) + +// Packet: 0x01bc +packetLen(0x01bc, 26) + +// Packet: 0x01bd +packetLen(0x01bd, 26) + +// Packet: 0x01be +packetLen(0x01be, 2) + +// Packet: 0x01bf +packetLen(0x01bf, 3) + +// Packet: 0x01c0 +packetLen(0x01c0, 2) + +// Packet: 0x01c1 +packetLen(0x01c1, 14) + +// Packet: 0x01c2 +packetLen(0x01c2, 10) + +// Packet: 0x01c3 +packetLen(0x01c3, -1) + +// Packet: 0x01c4 +packetLen(0x01c4, 32) + +// Packet: 0x01c5 +packetLen(0x01c5, 32) + +// Packet: 0x01c6 +packetLen(0x01c6, 4) + +// Packet: 0x01c7 +packetLen(0x01c7, 2) + +// Packet: 0x01c8 +packetLen(0x01c8, 15) + +// Packet: 0x01c9 +packetLen(0x01c9, 97) + +// Packet: 0x01ca +packetLen(0x01ca, 3) + +// Packet: 0x01cb +packetLen(0x01cb, 9) + +// Packet: 0x01cc +packetLen(0x01cc, 9) + +// Packet: 0x01cd +packetLen(0x01cd, 30) + +// Packet: 0x01ce +packetLen(0x01ce, 6) + +// Packet: 0x01cf +packetLen(0x01cf, 28) + +// Packet: 0x01d0 +packetLen(0x01d0, 8) + +// Packet: 0x01d1 +packetLen(0x01d1, 14) + +// Packet: 0x01d2 +packetLen(0x01d2, 10) + +// Packet: 0x01d3 +packetLen(0x01d3, 35) + +// Packet: 0x01d4 +packetLen(0x01d4, 6) + +// Packet: 0x01d5 +packetLen(0x01d5, -1) + +// Packet: 0x01d6 +packetLen(0x01d6, 4) + +// Packet: 0x01d7 +packetLen(0x01d7, 15) + +// Packet: 0x01d8 +packetLen(0x01d8, 58) + +// Packet: 0x01d9 +packetLen(0x01d9, 57) + +// Packet: 0x01da +packetLen(0x01da, 64) + +// Packet: 0x01db +packetLen(0x01db, 2) + +// Packet: 0x01dc +packetLen(0x01dc, -1) + +// Packet: 0x01dd +packetLen(0x01dd, 47) + +// Packet: 0x01de +packetLen(0x01de, 33) + +// Packet: 0x01df +packetLen(0x01df, 6) + +// Packet: 0x01e0 +packetLen(0x01e0, 30) + +// Packet: 0x01e1 +packetLen(0x01e1, 8) + +// Packet: 0x01e2 +packetLen(0x01e2, 34) + +// Packet: 0x01e3 +packetLen(0x01e3, 14) + +// Packet: 0x01e4 +packetLen(0x01e4, 2) + +// Packet: 0x01e5 +packetLen(0x01e5, 6) + +// Packet: 0x01e6 +packetLen(0x01e6, 26) + +// Packet: 0x01e7 +packetLen(0x01e7, 2) + +// Packet: 0x01e8 +packetLen(0x01e8, 28) + +// Packet: 0x01e9 +packetLen(0x01e9, 81) + +// Packet: 0x01ea +packetLen(0x01ea, 6) + +// Packet: 0x01eb +packetLen(0x01eb, 10) + +// Packet: 0x01ec +packetLen(0x01ec, 26) + +// Packet: 0x01ed +packetLen(0x01ed, 2) + +// Packet: 0x01ee +packetLen(0x01ee, -1) + +// Packet: 0x01ef +packetLen(0x01ef, -1) + +// Packet: 0x01f0 +packetLen(0x01f0, -1) + +// Packet: 0x01f1 +packetLen(0x01f1, -1) + +// Packet: 0x01f2 +packetLen(0x01f2, 20) + +// Packet: 0x01f3 +packetLen(0x01f3, 10) + +// Packet: 0x01f4 +packetLen(0x01f4, 32) + +// Packet: 0x01f5 +packetLen(0x01f5, 9) + +// Packet: 0x01f6 +packetLen(0x01f6, 34) + +// Packet: 0x01f7 +packetLen(0x01f7, 14) + +// Packet: 0x01f8 +packetLen(0x01f8, 2) + +// Packet: 0x01f9 +packetLen(0x01f9, 6) + +// Packet: 0x01fa +packetLen(0x01fa, 48) + +// Packet: 0x01fb +packetLen(0x01fb, 56) + +// Packet: 0x01fc +packetLen(0x01fc, -1) + +// Packet: 0x01fd +packetLen(0x01fd, 25) + +// Packet: 0x01fe +packetLen(0x01fe, 5) + +// Packet: 0x01ff +packetLen(0x01ff, 10) + +// Packet: 0x0200 +packetLen(0x0200, 26) + +// Packet: 0x0201 +packetLen(0x0201, -1) + +// Packet: 0x0202 +packetLen(0x0202, 26) + +// Packet: 0x0203 +packetLen(0x0203, 10) + +// Packet: 0x0204 +packetLen(0x0204, 18) + +// Packet: 0x0205 +packetLen(0x0205, 26) + +// Packet: 0x0206 +packetLen(0x0206, 35) + +// Packet: 0x0207 +packetLen(0x0207, 34) + +// Packet: 0x0208 +packetLen(0x0208, 14) + +// Packet: 0x0209 +packetLen(0x0209, 36) + +// Packet: 0x020a +packetLen(0x020a, 10) + +// Packet: 0x020d +packetLen(0x020d, -1) + +// Packet: 0x020e +packetLen(0x020e, 32) + +// Packet: 0x0212 +packetLen(0x0212, 26) + +// Packet: 0x0213 +packetLen(0x0213, 26) + +// Packet: 0x0214 +packetLen(0x0214, 42) + +// Packet: 0x0215 +packetLen(0x0215, 6) + +// Packet: 0x0216 +packetLen(0x0216, 6) + +// Packet: 0x0217 +packetLen(0x0217, 2) + +// Packet: 0x0218 +packetLen(0x0218, 2) + +// Packet: 0x0219 +packetLen(0x0219, 282) + +// Packet: 0x021a +packetLen(0x021a, 282) + +// Packet: 0x021b +packetLen(0x021b, 10) + +// Packet: 0x021c +packetLen(0x021c, 10) + +// Packet: 0x021d +packetLen(0x021d, 6) + +// Packet: 0x021e +packetLen(0x021e, 6) + +// Packet: 0x021f +packetLen(0x021f, 66) + +// Packet: 0x0220 +packetLen(0x0220, 10) + +// Packet: 0x0221 +packetLen(0x0221, -1) + +// Packet: 0x0222 +packetLen(0x0222, 6) + +// Packet: 0x0223 +packetLen(0x0223, 10) + +// Packet: 0x0224 +packetLen(0x0224, 10) + +// Packet: 0x0225 +packetLen(0x0225, 2) + +// Packet: 0x0226 +packetLen(0x0226, 282) + +// Packet: 0x0227 +packetLen(0x0227, 18) + +// Packet: 0x0228 +packetLen(0x0228, 18) + +// Packet: 0x0229 +packetLen(0x0229, 15) + +// Packet: 0x022a +packetLen(0x022a, 62) + +// Packet: 0x022b +packetLen(0x022b, 61) + +// Packet: 0x022c +packetLen(0x022c, 69) + +// Packet: 0x022d +packetLen(0x022d, 5) + +// Packet: 0x022e +packetLen(0x022e, 73) + +// Packet: 0x022f +packetLen(0x022f, 7) + +// Packet: 0x0230 +packetLen(0x0230, 12) + +// Packet: 0x0231 +packetLen(0x0231, 26) + +// Packet: 0x0232 +packetLen(0x0232, 9) + +// Packet: 0x0233 +packetLen(0x0233, 11) + +// Packet: 0x0234 +packetLen(0x0234, 6) + +// Packet: 0x0235 +packetLen(0x0235, -1) + +// Packet: 0x0236 +packetLen(0x0236, 10) + +// Packet: 0x0237 +packetLen(0x0237, 2) + +// Packet: 0x0238 +packetLen(0x0238, 282) + +// Packet: 0x0239 +packetLen(0x0239, 11) + +// Packet: 0x023a +packetLen(0x023a, 4) + +// Packet: 0x023b +packetLen(0x023b, 36) + +// Packet: 0x023c +packetLen(0x023c, 6) + +// Packet: 0x023d +packetLen(0x023d, 6) + +// Packet: 0x023e +packetLen(0x023e, 8) + +// Packet: 0x023f +packetLen(0x023f, 2) + +// Packet: 0x0240 +packetLen(0x0240, -1) + +// Packet: 0x0241 +packetLen(0x0241, 6) + +// Packet: 0x0242 +packetLen(0x0242, -1) + +// Packet: 0x0243 +packetLen(0x0243, 6) + +// Packet: 0x0244 +packetLen(0x0244, 6) + +// Packet: 0x0245 +packetLen(0x0245, 3) + +// Packet: 0x0246 +packetLen(0x0246, 4) + +// Packet: 0x0247 +packetLen(0x0247, 8) + +// Packet: 0x0248 +packetLen(0x0248, -1) + +// Packet: 0x0249 +packetLen(0x0249, 3) + +// Packet: 0x024a +packetLen(0x024a, 70) + +// Packet: 0x024b +packetLen(0x024b, 4) + +// Packet: 0x024c +packetLen(0x024c, 8) + +// Packet: 0x024d +packetLen(0x024d, 12) + +// Packet: 0x024e +packetLen(0x024e, 6) + +// Packet: 0x024f +packetLen(0x024f, 10) + +// Packet: 0x0250 +packetLen(0x0250, 3) + +// Packet: 0x0251 +packetLen(0x0251, 34) + +// Packet: 0x0252 +packetLen(0x0252, -1) + +// Packet: 0x0253 +packetLen(0x0253, 3) + +// Packet: 0x0254 +packetLen(0x0254, 3) + +// Packet: 0x0255 +packetLen(0x0255, 5) + +// Packet: 0x0256 +packetLen(0x0256, 5) + +// Packet: 0x0257 +packetLen(0x0257, 8) + +// Packet: 0x0258 +packetLen(0x0258, 2) + +// Packet: 0x0259 +packetLen(0x0259, 3) + +// Packet: 0x025a +packetLen(0x025a, -1) + +// Packet: 0x025b +packetLen(0x025b, 8) + +// Packet: 0x025c +packetLen(0x025c, 4) + +// Packet: 0x025d +packetLen(0x025d, 6) + +// Packet: 0x025e +packetLen(0x025e, 4) + +// Packet: 0x025f +packetLen(0x025f, 6) + +// Packet: 0x0260 +packetLen(0x0260, 6) + +// Packet: 0x0261 +packetLen(0x0261, 11) + +// Packet: 0x0262 +packetLen(0x0262, 11) + +// Packet: 0x0263 +packetLen(0x0263, 11) + +// Packet: 0x0264 +packetLen(0x0264, 20) + +// Packet: 0x0265 +packetLen(0x0265, 20) + +// Packet: 0x0266 +packetLen(0x0266, 30) + +// Packet: 0x0267 +packetLen(0x0267, 4) + +// Packet: 0x0268 +packetLen(0x0268, 4) + +// Packet: 0x0269 +packetLen(0x0269, 4) + +// Packet: 0x026a +packetLen(0x026a, 4) + +// Packet: 0x026b +packetLen(0x026b, 4) + +// Packet: 0x026c +packetLen(0x026c, 4) + +// Packet: 0x026d +packetLen(0x026d, 4) + +// Packet: 0x026f +packetLen(0x026f, 2) + +// Packet: 0x0270 +packetLen(0x0270, 2) + +// Packet: 0x0271 +packetLen(0x0271, 40) + +// Packet: 0x0272 +packetLen(0x0272, 44) + +// Packet: 0x0273 +packetLen(0x0273, 30) + +// Packet: 0x0274 +packetLen(0x0274, 8) + +// Packet: 0x0275 +packetLen(0x0275, 37) + +// Packet: 0x0276 +packetLen(0x0276, -1) + +// Packet: 0x0277 +packetLen(0x0277, 84) + +// Packet: 0x0278 +packetLen(0x0278, 2) + +// Packet: 0x0279 +packetLen(0x0279, 2) + +// Packet: 0x027a +packetLen(0x027a, -1) + +// Packet: 0x027b +packetLen(0x027b, 14) + +// Packet: 0x027c +packetLen(0x027c, 60) + +// Packet: 0x027d +packetLen(0x027d, 62) + +// Packet: 0x027e +packetLen(0x027e, -1) + +// Packet: 0x027f +packetLen(0x027f, 8) + +// Packet: 0x0280 +packetLen(0x0280, 12) + +// Packet: 0x0281 +packetLen(0x0281, 4) + +// Packet: 0x0282 +packetLen(0x0282, 284) + +// Packet: 0x0283 +packetLen(0x0283, 6) + +// Packet: 0x0284 +packetLen(0x0284, 14) + +// Packet: 0x0285 +packetLen(0x0285, 6) + +// Packet: 0x0286 +packetLen(0x0286, 4) + +// Packet: 0x0287 +packetLen(0x0287, -1) + +// Packet: 0x0288 +packetLen(0x0288, -1) + +// Packet: 0x0289 +packetLen(0x0289, 12) + +// Packet: 0x028a +packetLen(0x028a, 18) + +// Packet: 0x028b +packetLen(0x028b, -1) + +// Packet: 0x028c +packetLen(0x028c, 46) + +// Packet: 0x028d +packetLen(0x028d, 34) + +// Packet: 0x028e +packetLen(0x028e, 4) + +// Packet: 0x028f +packetLen(0x028f, 6) + +// Packet: 0x0290 +packetLen(0x0290, 4) + +// Packet: 0x0291 +packetLen(0x0291, 4) + +// Packet: 0x0292 +packetLen(0x0292, 2) + +// Packet: 0x0293 +packetLen(0x0293, 70) + +// Packet: 0x0294 +packetLen(0x0294, 10) + +// Packet: 0x0295 +packetLen(0x0295, -1) + +// Packet: 0x0296 +packetLen(0x0296, -1) + +// Packet: 0x0297 +packetLen(0x0297, -1) + +// Packet: 0x0298 +packetLen(0x0298, 10) + +// Packet: 0x0299 +packetLen(0x0299, 8) + +// Packet: 0x029a +packetLen(0x029a, 37) + +// Packet: 0x029b +packetLen(0x029b, 80) + +// Packet: 0x029c +packetLen(0x029c, 66) + +// Packet: 0x029d +packetLen(0x029d, -1) + +// Packet: 0x029e +packetLen(0x029e, 11) + +// Packet: 0x029f +packetLen(0x029f, 3) + +// Packet: 0x02a2 +packetLen(0x02a2, 8) + +// Packet: 0x02a5 +packetLen(0x02a5, 8) + +// Packet: 0x02a6 +packetLen(0x02a6, -1) + +// Packet: 0x02a7 +packetLen(0x02a7, -1) + +// Packet: 0x02aa +packetLen(0x02aa, 4) + +// Packet: 0x02ab +packetLen(0x02ab, 36) + +// Packet: 0x02ac +packetLen(0x02ac, 6) + +// Packet: 0x02ad +packetLen(0x02ad, 8) + +// Packet: 0x02b0 +packetLen(0x02b0, 85) + +// Packet: 0x02b1 +packetLen(0x02b1, -1) + +// Packet: 0x02b2 +packetLen(0x02b2, -1) + +// Packet: 0x02b3 +packetLen(0x02b3, 107) + +// Packet: 0x02b4 +packetLen(0x02b4, 6) + +// Packet: 0x02b5 +packetLen(0x02b5, -1) + +// Packet: 0x02b6 +packetLen(0x02b6, 7) + +// Packet: 0x02b7 +packetLen(0x02b7, 7) + +// Packet: 0x02b8 +packetLen(0x02b8, 32) + +// Packet: 0x02b9 +packetLen(0x02b9, 191) + +// Packet: 0x02ba +packetLen(0x02ba, 11) + +// Packet: 0x02bb +packetLen(0x02bb, 8) + +// Packet: 0x02bc +packetLen(0x02bc, 6) + +// Packet: 0x02c1 +packetLen(0x02c1, -1) + +// Packet: 0x02c2 +packetLen(0x02c2, -1) + +// Packet: 0x02c4 +packetLen(0x02c4, 26) + +// Packet: 0x02c5 +packetLen(0x02c5, 30) + +// Packet: 0x02c6 +packetLen(0x02c6, 30) + +// Packet: 0x02c7 +packetLen(0x02c7, 7) + +// Packet: 0x02c8 +packetLen(0x02c8, 3) + +// Packet: 0x02c9 +packetLen(0x02c9, 3) + +// Packet: 0x02ca +packetLen(0x02ca, 3) + +// Packet: 0x02cb +packetLen(0x02cb, 65) + +// Packet: 0x02cc +packetLen(0x02cc, 4) + +// Packet: 0x02cd +packetLen(0x02cd, 71) + +// Packet: 0x02ce +packetLen(0x02ce, 10) + +// Packet: 0x02cf +packetLen(0x02cf, 6) + +// Packet: 0x02d0 +packetLen(0x02d0, -1) + +// Packet: 0x02d1 +packetLen(0x02d1, -1) + +// Packet: 0x02d2 +packetLen(0x02d2, -1) + +// Packet: 0x02d3 +packetLen(0x02d3, 4) + +// Packet: 0x02d4 +packetLen(0x02d4, 39) + +// Packet: 0x02d5 +packetLen(0x02d5, 2) + +// Packet: 0x02d6 +packetLen(0x02d6, 6) + +// Packet: 0x02d7 +packetLen(0x02d7, -1) + +// Packet: 0x02d8 +packetLen(0x02d8, 10) + +// Packet: 0x02d9 +packetLen(0x02d9, 10) + +// Packet: 0x02da +packetLen(0x02da, 3) + +// Packet: 0x02db +packetLen(0x02db, -1) + +// Packet: 0x02dc +packetLen(0x02dc, -1) + +// Packet: 0x02dd +packetLen(0x02dd, 32) + +// Packet: 0x02de +packetLen(0x02de, 6) + +// Packet: 0x02df +packetLen(0x02df, 36) + +// Packet: 0x02e0 +packetLen(0x02e0, 34) + +// Packet: 0x02e1 +packetLen(0x02e1, 33) + +// Packet: 0x02e2 +packetLen(0x02e2, 20) + +// Packet: 0x02e3 +packetLen(0x02e3, 22) + +// Packet: 0x02e4 +packetLen(0x02e4, 11) + +// Packet: 0x02e5 +packetLen(0x02e5, 9) + +// Packet: 0x02e6 +packetLen(0x02e6, 6) + +// Packet: 0x02e7 +packetLen(0x02e7, -1) + +// Packet: 0x02e8 +packetLen(0x02e8, -1) + +// Packet: 0x02e9 +packetLen(0x02e9, -1) + +// Packet: 0x02ea +packetLen(0x02ea, -1) + +// Packet: 0x02eb +packetLen(0x02eb, 13) + +// Packet: 0x02ec +packetLen(0x02ec, 71) + +// Packet: 0x02ed +packetLen(0x02ed, 63) + +// Packet: 0x02ee +packetLen(0x02ee, 64) + +// Packet: 0x02ef +packetLen(0x02ef, 8) + +// Packet: 0x02f0 +packetLen(0x02f0, 10) + +// Packet: 0x02f1 +packetLen(0x02f1, 2) + +// Packet: 0x02f2 +packetLen(0x02f2, 2) + +// Packet: 0x02f3 +packetLen(0x02f3, -1) + +// Packet: 0x02f4 +packetLen(0x02f4, 3) + +// Packet: 0x02f5 +packetLen(0x02f5, 7) + +// Packet: 0x02f6 +packetLen(0x02f6, 7) + +// Packet: 0x035c +packetLen(0x035c, 2) + +// Packet: 0x035d +packetLen(0x035d, -1) + +// Packet: 0x035e +packetLen(0x035e, 2) + +// Packet: 0x035f +packetLen(0x035f, 5) + +// Packet: 0x0360 +packetLen(0x0360, 6) + +// Packet: 0x0361 +packetLen(0x0361, 5) + +// Packet: 0x0362 +packetLen(0x0362, 6) + +// Packet: 0x0363 +packetLen(0x0363, 6) + +// Packet: 0x0364 +packetLen(0x0364, 8) + +// Packet: 0x0365 +packetLen(0x0365, 8) + +// Packet: 0x0366 +packetLen(0x0366, 10) + +// Packet: 0x0367 +packetLen(0x0367, 31) + +// Packet: 0x0368 +packetLen(0x0368, 6) + +// Packet: 0x0369 +packetLen(0x0369, 6) + +// Packet: 0x03dd +packetLen(0x03dd, 18) + +// Packet: 0x03de +packetLen(0x03de, 18) + +// Packet: 0x0436 +packetLen(0x0436, 19) + +// Packet: 0x0437 +packetLen(0x0437, 7) + +// Packet: 0x0438 +packetLen(0x0438, 10) + +// Packet: 0x0439 +packetLen(0x0439, 8) + +// Packet: 0x043d +packetLen(0x043d, 8) + +// Packet: 0x043e +packetLen(0x043e, -1) + +// Packet: 0x043f +packetLen(0x043f, 25) + +// Packet: 0x0440 +packetLen(0x0440, 10) + +// Packet: 0x0441 +packetLen(0x0441, 4) + +// Packet: 0x0442 +packetLen(0x0442, -1) + +// Packet: 0x0443 +packetLen(0x0443, 8) + +// Packet: 0x0444 +packetLen(0x0444, -1) + +// Packet: 0x0445 +packetLen(0x0445, 12) + +// Packet: 0x0446 +packetLen(0x0446, 14) + +// Packet: 0x0447 +packetLen(0x0447, 2) + +// Packet: 0x0448 +packetLen(0x0448, -1) + +// Packet: 0x0449 +packetLen(0x0449, 4) + +// Packet: 0x044a +packetLen(0x044a, 6) + +// Packet: 0x044b +packetLen(0x044b, 2) + +// Packet: 0x07d7 +packetLen(0x07d7, 8) + +// Packet: 0x07d8 +packetLen(0x07d8, 8) + +// Packet: 0x07d9 +packetLen(0x07d9, 268) + +// Packet: 0x07da +packetLen(0x07da, 6) + +// Packet: 0x07db +packetLen(0x07db, 8) + +// Packet: 0x07dc +packetLen(0x07dc, 6) + +// Packet: 0x07dd +packetLen(0x07dd, 54) + +// Packet: 0x07de +packetLen(0x07de, 30) + +// Packet: 0x07df +packetLen(0x07df, 54) + +// Packet: 0x07e0 +packetLen(0x07e0, 58) + +// Packet: 0x07e1 +packetLen(0x07e1, 15) + +// Packet: 0x07e2 +packetLen(0x07e2, 8) + +// Packet: 0x07e3 +packetLen(0x07e3, 6) + +// Packet: 0x07e4 +packetLen(0x07e4, -1) + +// Packet: 0x07e5 +packetLen(0x07e5, 4) + +// Packet: 0x07e6 +packetLen(0x07e6, 8) + +// Packet: 0x07e7 +packetLen(0x07e7, 32) + +// Packet: 0x07e8 +packetLen(0x07e8, -1) + +// Packet: 0x07e9 +packetLen(0x07e9, 5) + +// Packet: 0x07ea +packetLen(0x07ea, 2) + +// Packet: 0x07eb +packetLen(0x07eb, -1) + +// Packet: 0x07ec +packetLen(0x07ec, 8) + +// Packet: 0x07ed +packetLen(0x07ed, 10) + +// Packet: 0x07ee +packetLen(0x07ee, 6) + +// Packet: 0x07ef +packetLen(0x07ef, 8) + +// Packet: 0x07f0 +packetLen(0x07f0, 6) + +// Packet: 0x07f1 +packetLen(0x07f1, 18) + +// Packet: 0x07f2 +packetLen(0x07f2, 8) + +// Packet: 0x07f3 +packetLen(0x07f3, 6) + +// Packet: 0x07f4 +packetLen(0x07f4, 3) + +// Packet: 0x07f5 +packetLen(0x07f5, 6) + +// Packet: 0x07f6 +packetLen(0x07f6, 14) + +// Packet: 0x07f7 +packetLen(0x07f7, -1) + +// Packet: 0x07f8 +packetLen(0x07f8, -1) + +// Packet: 0x07f9 +packetLen(0x07f9, -1) + +// Packet: 0x07fa +packetLen(0x07fa, 8) + +// Packet: 0x07fb +packetLen(0x07fb, 25) + +// Packet: 0x07fc +packetLen(0x07fc, 10) + +// Packet: 0x07fd +packetLen(0x07fd, -1) + +// Packet: 0x07fe +packetLen(0x07fe, 26) + +// Packet: 0x0800 +packetLen(0x0800, -1) + +// Packet: 0x0801 +packetLen(0x0801, -1) + +// Packet: 0x0802 +packetLen(0x0802, 18) + +// Packet: 0x0803 +packetLen(0x0803, 4) + +// Packet: 0x0804 +packetLen(0x0804, 14) + +// Packet: 0x0805 +packetLen(0x0805, -1) + +// Packet: 0x0806 +packetLen(0x0806, 2) + +// Packet: 0x0807 +packetLen(0x0807, 4) + +// Packet: 0x0808 +packetLen(0x0808, 14) + +// Packet: 0x0809 +packetLen(0x0809, 50) + +// Packet: 0x080a +packetLen(0x080a, 18) + +// Packet: 0x080b +packetLen(0x080b, 6) + +// Packet: 0x080c +packetLen(0x080c, 2) + +// Packet: 0x080d +packetLen(0x080d, 3) + +// Packet: 0x080e +packetLen(0x080e, 14) + +// Packet: 0x080f +packetLen(0x080f, 30) + +// Packet: 0x0810 +packetLen(0x0810, 3) + +// Packet: 0x0811 +packetLen(0x0811, -1) + +// Packet: 0x0812 +packetLen(0x0812, 8) + +// Packet: 0x0813 +packetLen(0x0813, -1) + +// Packet: 0x0814 +packetLen(0x0814, 86) + +// Packet: 0x0815 +packetLen(0x0815, 2) + +// Packet: 0x0816 +packetLen(0x0816, 6) + +// Packet: 0x0817 +packetLen(0x0817, 6) + +// Packet: 0x0818 +packetLen(0x0818, -1) + +// Packet: 0x0819 +packetLen(0x0819, -1) + +// Packet: 0x081a +packetLen(0x081a, 4) + +// Packet: 0x081b +packetLen(0x081b, 12) + +// Packet: 0x081c +packetLen(0x081c, 10) + +// Packet: 0x081d +packetLen(0x081d, 22) + +// Packet: 0x081e +packetLen(0x081e, 8) + +// Packet: 0x081f +packetLen(0x081f, -1) + +// Packet: 0x0820 +packetLen(0x0820, 11) + +// Packet: 0x0821 +packetLen(0x0821, 2) + +// Packet: 0x0822 +packetLen(0x0822, 9) + +// Packet: 0x0823 +packetLen(0x0823, -1) + +// Packet: 0x0824 +packetLen(0x0824, 8) + +// Packet: 0x0825 +packetLen(0x0825, -1) + +// Packet: 0x0827 +packetLen(0x0827, 6) + +// Packet: 0x0828 +packetLen(0x0828, 14) + +// Packet: 0x0829 +packetLen(0x0829, 12) + +// Packet: 0x082a +packetLen(0x082a, 10) + +// Packet: 0x082b +packetLen(0x082b, 6) + +// Packet: 0x082c +packetLen(0x082c, 10) + +// Packet: 0x082d +packetLen(0x082d, -1) + +// Packet: 0x0835 +packetLen(0x0835, -1) + +// Packet: 0x0836 +packetLen(0x0836, -1) + +// Packet: 0x0837 +packetLen(0x0837, 3) + +// Packet: 0x0838 +packetLen(0x0838, 2) + +// Packet: 0x0839 +packetLen(0x0839, 66) + +// Packet: 0x083a +packetLen(0x083a, 5) + +// Packet: 0x083b +packetLen(0x083b, 2) + +// Packet: 0x083c +packetLen(0x083c, 14) + +// Packet: 0x083d +packetLen(0x083d, 6) + +// Packet: 0x083e +packetLen(0x083e, 26) + +// Packet: 0x0840 +packetLen(0x0840, -1) + +// Packet: 0x0841 +packetLen(0x0841, 4) + +// Packet: 0x0842 +packetLen(0x0842, 6) + +// Packet: 0x0843 +packetLen(0x0843, 6) + +// Packet: 0x0844 +packetLen(0x0844, 2) + +// Packet: 0x0845 +packetLen(0x0845, 10) + +// Packet: 0x0846 +packetLen(0x0846, 4) + +// Packet: 0x0847 +packetLen(0x0847, -1) + +// Packet: 0x0848 +packetLen(0x0848, -1) + +// Packet: 0x0849 +packetLen(0x0849, 16) + +// Packet: 0x084a +packetLen(0x084a, 2) + +// Packet: 0x084b +packetLen(0x084b, 21) + +// Packet: 0x084c +packetLen(0x084c, 10) + +// Packet: 0x084d +packetLen(0x084d, 10) + +// Packet: 0x084e +packetLen(0x084e, 5) + +// Packet: 0x084f +packetLen(0x084f, 6) + +// Packet: 0x0850 +packetLen(0x0850, 7) + +// Packet: 0x0851 +packetLen(0x0851, -1) + +// Packet: 0x0852 +packetLen(0x0852, 2) + +// Packet: 0x0853 +packetLen(0x0853, -1) + +// Packet: 0x0854 +packetLen(0x0854, -1) + +// Packet: 0x0855 +packetLen(0x0855, 6) + +// Packet: 0x0856 +packetLen(0x0856, -1) + +// Packet: 0x0857 +packetLen(0x0857, -1) + +// Packet: 0x0858 +packetLen(0x0858, -1) + +// Packet: 0x0859 +packetLen(0x0859, -1) + +// Packet: 0x085a +packetLen(0x085a, 2) + +// Packet: 0x085b +packetLen(0x085b, 2) + +// Packet: 0x085c +packetLen(0x085c, 2) + +// Packet: 0x085d +packetLen(0x085d, 2) + +// Packet: 0x085e +packetLen(0x085e, 2) + +// Packet: 0x085f +packetLen(0x085f, 2) + +// Packet: 0x0860 +packetLen(0x0860, 2) + +// Packet: 0x0861 +packetLen(0x0861, 2) + +// Packet: 0x0862 +packetLen(0x0862, 2) + +// Packet: 0x0863 +packetLen(0x0863, 2) + +// Packet: 0x0864 +packetLen(0x0864, 2) + +// Packet: 0x0865 +packetLen(0x0865, 2) + +// Packet: 0x0866 +packetLen(0x0866, 2) + +// Packet: 0x0867 +packetLen(0x0867, 2) + +// Packet: 0x0868 +packetLen(0x0868, 2) + +// Packet: 0x0869 +packetLen(0x0869, 2) + +// Packet: 0x086a +packetLen(0x086a, 2) + +// Packet: 0x086b +packetLen(0x086b, 2) + +// Packet: 0x086c +packetLen(0x086c, 2) + +// Packet: 0x086d +packetLen(0x086d, 2) + +// Packet: 0x086e +packetLen(0x086e, 2) + +// Packet: 0x086f +packetLen(0x086f, 2) + +// Packet: 0x0870 +packetLen(0x0870, 2) + +// Packet: 0x0871 +packetLen(0x0871, 2) + +// Packet: 0x0872 +packetLen(0x0872, 2) + +// Packet: 0x0873 +packetLen(0x0873, 2) + +// Packet: 0x0874 +packetLen(0x0874, 2) + +// Packet: 0x0875 +packetLen(0x0875, 2) + +// Packet: 0x0876 +packetLen(0x0876, 2) + +// Packet: 0x0877 +packetLen(0x0877, 2) + +// Packet: 0x0878 +packetLen(0x0878, 2) + +// Packet: 0x0879 +packetLen(0x0879, 2) + +// Packet: 0x087a +packetLen(0x087a, 2) + +// Packet: 0x087b +packetLen(0x087b, 2) + +// Packet: 0x087c +packetLen(0x087c, 2) + +// Packet: 0x087d +packetLen(0x087d, 2) + +// Packet: 0x087e +packetLen(0x087e, 2) + +// Packet: 0x087f +packetLen(0x087f, 2) + +// Packet: 0x0880 +packetLen(0x0880, 2) + +// Packet: 0x0881 +packetLen(0x0881, 2) + +// Packet: 0x0882 +packetLen(0x0882, 2) + +// Packet: 0x0883 +packetLen(0x0883, 2) + +// Packet: 0x0884 +packetLen(0x0884, 2) + +// Packet: 0x0885 +packetLen(0x0885, 2) + +// Packet: 0x0886 +packetLen(0x0886, 2) + +// Packet: 0x0887 +packetLen(0x0887, 2) + +// Packet: 0x0888 +packetLen(0x0888, 2) + +// Packet: 0x0889 +packetLen(0x0889, 2) + +// Packet: 0x088a +packetLen(0x088a, 2) + +// Packet: 0x088b +packetLen(0x088b, 2) + +// Packet: 0x088c +packetLen(0x088c, 2) + +// Packet: 0x088d +packetLen(0x088d, 2) + +// Packet: 0x088e +packetLen(0x088e, 2) + +// Packet: 0x088f +packetLen(0x088f, 2) + +// Packet: 0x0890 +packetLen(0x0890, 2) + +// Packet: 0x0891 +packetLen(0x0891, 2) + +// Packet: 0x0892 +packetLen(0x0892, 2) + +// Packet: 0x0893 +packetLen(0x0893, 2) + +// Packet: 0x0894 +packetLen(0x0894, 2) + +// Packet: 0x0895 +packetLen(0x0895, 2) + +// Packet: 0x0896 +packetLen(0x0896, 2) + +// Packet: 0x0897 +packetLen(0x0897, 2) + +// Packet: 0x0898 +packetLen(0x0898, 2) + +// Packet: 0x0899 +packetLen(0x0899, 2) + +// Packet: 0x089a +packetLen(0x089a, 2) + +// Packet: 0x089b +packetLen(0x089b, 2) + +// Packet: 0x089c +packetLen(0x089c, 2) + +// Packet: 0x089d +packetLen(0x089d, 2) + +// Packet: 0x089e +packetLen(0x089e, 2) + +// Packet: 0x089f +packetLen(0x089f, 2) + +// Packet: 0x08a0 +packetLen(0x08a0, 2) + +// Packet: 0x08a1 +packetLen(0x08a1, 2) + +// Packet: 0x08a2 +packetLen(0x08a2, 2) + +// Packet: 0x08a3 +packetLen(0x08a3, 2) + +// Packet: 0x08a4 +packetLen(0x08a4, 2) + +// Packet: 0x08a5 +packetLen(0x08a5, 2) + +// Packet: 0x08a6 +packetLen(0x08a6, 2) + +// Packet: 0x08a7 +packetLen(0x08a7, 2) + +// Packet: 0x08a8 +packetLen(0x08a8, 2) + +// Packet: 0x08a9 +packetLen(0x08a9, 2) + +// Packet: 0x08aa +packetLen(0x08aa, 2) + +// Packet: 0x08ab +packetLen(0x08ab, 2) + +// Packet: 0x08ac +packetLen(0x08ac, 2) + +// Packet: 0x08ad +packetLen(0x08ad, 2) + +// Packet: 0x08af +packetLen(0x08af, 10) + +// Packet: 0x08b0 +packetLen(0x08b0, 17) + +// Packet: 0x08b1 +packetLen(0x08b1, -1) + +// Packet: 0x08b2 +packetLen(0x08b2, -1) + +// Packet: 0x08b3 +packetLen(0x08b3, -1) + +// Packet: 0x08b4 +packetLen(0x08b4, 2) + +// Packet: 0x08b5 +packetLen(0x08b5, 6) + +// Packet: 0x08b6 +packetLen(0x08b6, 3) + +// Packet: 0x08b8 +packetLen(0x08b8, 10) + +// Packet: 0x08b9 +packetLen(0x08b9, 12) + +// Packet: 0x08ba +packetLen(0x08ba, 10) + +// Packet: 0x08bb +packetLen(0x08bb, 8) + +// Packet: 0x08bc +packetLen(0x08bc, 10) + +// Packet: 0x08bd +packetLen(0x08bd, 8) + +// Packet: 0x08be +packetLen(0x08be, 14) + +// Packet: 0x08bf +packetLen(0x08bf, 8) + +// Packet: 0x08c0 +packetLen(0x08c0, -1) + +// Packet: 0x08c1 +packetLen(0x08c1, 2) + +// Packet: 0x08c2 +packetLen(0x08c2, 2) + +// Packet: 0x08c3 +packetLen(0x08c3, 10) + +// Packet: 0x08c4 +packetLen(0x08c4, 8) + +// Packet: 0x08c5 +packetLen(0x08c5, 6) + +// Packet: 0x08c6 +packetLen(0x08c6, 4) + +// Packet: 0x08c7 +packetLen(0x08c7, -1) + +// Packet: 0x08c8 +packetLen(0x08c8, 34) + +// Packet: 0x08c9 +packetLen(0x08c9, 2) + +// Packet: 0x08ca +packetLen(0x08ca, -1) + +// Packet: 0x08cb +packetLen(0x08cb, -1) + +// Packet: 0x08cc +packetLen(0x08cc, 109) + +// Packet: 0x08cd +packetLen(0x08cd, 10) + +// Packet: 0x08ce +packetLen(0x08ce, 2) + +// Packet: 0x08cf +packetLen(0x08cf, 10) + +// Packet: 0x08d0 +packetLen(0x08d0, 9) + +// Packet: 0x08d1 +packetLen(0x08d1, 7) + +// Packet: 0x08d2 +packetLen(0x08d2, 10) + +// Packet: 0x08d3 +packetLen(0x08d3, 10) + +// Packet: 0x08d4 +packetLen(0x08d4, 8) + +// Packet: 0x08d5 +packetLen(0x08d5, -1) + +// Packet: 0x08d6 +packetLen(0x08d6, 6) + +// Packet: 0x08d7 +packetLen(0x08d7, 28) + +// Packet: 0x08d8 +packetLen(0x08d8, 27) + +// Packet: 0x08d9 +packetLen(0x08d9, 30) + +// Packet: 0x08da +packetLen(0x08da, 26) + +// Packet: 0x08db +packetLen(0x08db, 27) + +// Packet: 0x08dc +packetLen(0x08dc, 26) + +// Packet: 0x08dd +packetLen(0x08dd, 27) + +// Packet: 0x08de +packetLen(0x08de, 27) + +// Packet: 0x08df +packetLen(0x08df, 50) + +// Packet: 0x08e0 +packetLen(0x08e0, 51) + +// Packet: 0x08e1 +packetLen(0x08e1, 51) + +// Packet: 0x08e2 +packetLen(0x08e2, 27) + +// Packet: 0x08e3 +packetLen(0x08e3, 157) + +// Packet: 0x08e4 +packetLen(0x08e4, 6) + +// Packet: 0x08fc +packetLen(0x08fc, 30) + +// Packet: 0x08fd +packetLen(0x08fd, 6) + +// Packet: 0x08fe +packetLen(0x08fe, -1) + +// Packet: 0x08ff +packetLen(0x08ff, 24) + +// Packet: 0x0900 +packetLen(0x0900, -1) + +// Packet: 0x0901 +packetLen(0x0901, -1) + +// Packet: 0x0902 +packetLen(0x0902, -1) + +// Packet: 0x0903 +packetLen(0x0903, -1) + +// Packet: 0x0904 +packetLen(0x0904, -1) + +// Packet: 0x0905 +packetLen(0x0905, -1) + +// Packet: 0x0906 +packetLen(0x0906, -1) + +// Packet: 0x0907 +packetLen(0x0907, 5) + +// Packet: 0x0908 +packetLen(0x0908, 5) + +// Packet: 0x090a +packetLen(0x090a, 26) + +// Packet: 0x090d +packetLen(0x090d, -1) + +// Packet: 0x090e +packetLen(0x090e, 2) + +// Packet: 0x090f +packetLen(0x090f, -1) + +// Packet: 0x0910 +packetLen(0x0910, 10) + +// Packet: 0x0911 +packetLen(0x0911, 30) + +// Packet: 0x0912 +packetLen(0x0912, 10) + +// Packet: 0x0913 +packetLen(0x0913, 30) + +// Packet: 0x0914 +packetLen(0x0914, -1) + +// Packet: 0x0915 +packetLen(0x0915, -1) + +// Packet: 0x0916 +packetLen(0x0916, 26) + +// Packet: 0x0917 +packetLen(0x0917, 2) + +// Packet: 0x0918 +packetLen(0x0918, 2) + +// Packet: 0x0919 +packetLen(0x0919, 2) + +// Packet: 0x091a +packetLen(0x091a, 2) + +// Packet: 0x091b +packetLen(0x091b, 2) + +// Packet: 0x091c +packetLen(0x091c, 2) + +// Packet: 0x091d +packetLen(0x091d, 2) + +// Packet: 0x091e +packetLen(0x091e, 2) + +// Packet: 0x091f +packetLen(0x091f, 2) + +// Packet: 0x0920 +packetLen(0x0920, 2) + +// Packet: 0x0921 +packetLen(0x0921, 2) + +// Packet: 0x0922 +packetLen(0x0922, 2) + +// Packet: 0x0923 +packetLen(0x0923, 2) + +// Packet: 0x0924 +packetLen(0x0924, 2) + +// Packet: 0x0925 +packetLen(0x0925, 2) + +// Packet: 0x0926 +packetLen(0x0926, 2) + +// Packet: 0x0927 +packetLen(0x0927, 2) + +// Packet: 0x0928 +packetLen(0x0928, 2) + +// Packet: 0x0929 +packetLen(0x0929, 2) + +// Packet: 0x092a +packetLen(0x092a, 2) + +// Packet: 0x092b +packetLen(0x092b, 2) + +// Packet: 0x092c +packetLen(0x092c, 2) + +// Packet: 0x092d +packetLen(0x092d, 2) + +// Packet: 0x092e +packetLen(0x092e, 2) + +// Packet: 0x092f +packetLen(0x092f, 2) + +// Packet: 0x0930 +packetLen(0x0930, 2) + +// Packet: 0x0931 +packetLen(0x0931, 2) + +// Packet: 0x0932 +packetLen(0x0932, 2) + +// Packet: 0x0933 +packetLen(0x0933, 2) + +// Packet: 0x0934 +packetLen(0x0934, 2) + +// Packet: 0x0935 +packetLen(0x0935, 2) + +// Packet: 0x0936 +packetLen(0x0936, 2) + +// Packet: 0x0937 +packetLen(0x0937, 2) + +// Packet: 0x0938 +packetLen(0x0938, 2) + +// Packet: 0x0939 +packetLen(0x0939, 2) + +// Packet: 0x093a +packetLen(0x093a, 2) + +// Packet: 0x093b +packetLen(0x093b, 2) + +// Packet: 0x093c +packetLen(0x093c, 2) + +// Packet: 0x093d +packetLen(0x093d, 2) + +// Packet: 0x093e +packetLen(0x093e, 2) + +// Packet: 0x093f +packetLen(0x093f, 2) + +// Packet: 0x0940 +packetLen(0x0940, 2) + +// Packet: 0x0941 +packetLen(0x0941, 2) + +// Packet: 0x0942 +packetLen(0x0942, 2) + +// Packet: 0x0943 +packetLen(0x0943, 2) + +// Packet: 0x0944 +packetLen(0x0944, 2) + +// Packet: 0x0945 +packetLen(0x0945, 2) + +// Packet: 0x0946 +packetLen(0x0946, 2) + +// Packet: 0x0947 +packetLen(0x0947, 2) + +// Packet: 0x0948 +packetLen(0x0948, 2) + +// Packet: 0x0949 +packetLen(0x0949, 2) + +// Packet: 0x094a +packetLen(0x094a, 2) + +// Packet: 0x094b +packetLen(0x094b, 2) + +// Packet: 0x094c +packetLen(0x094c, 2) + +// Packet: 0x094d +packetLen(0x094d, 2) + +// Packet: 0x094e +packetLen(0x094e, 2) + +// Packet: 0x094f +packetLen(0x094f, 2) + +// Packet: 0x0950 +packetLen(0x0950, 2) + +// Packet: 0x0951 +packetLen(0x0951, 2) + +// Packet: 0x0952 +packetLen(0x0952, 2) + +// Packet: 0x0953 +packetLen(0x0953, 2) + +// Packet: 0x0954 +packetLen(0x0954, 2) + +// Packet: 0x0955 +packetLen(0x0955, 2) + +// Packet: 0x0956 +packetLen(0x0956, 2) + +// Packet: 0x0957 +packetLen(0x0957, 2) + +// Packet: 0x0958 +packetLen(0x0958, 2) + +// Packet: 0x0959 +packetLen(0x0959, 2) + +// Packet: 0x095a +packetLen(0x095a, 2) + +// Packet: 0x095b +packetLen(0x095b, 2) + +// Packet: 0x095c +packetLen(0x095c, 2) + +// Packet: 0x095d +packetLen(0x095d, 2) + +// Packet: 0x095e +packetLen(0x095e, 2) + +// Packet: 0x095f +packetLen(0x095f, 2) + +// Packet: 0x0960 +packetLen(0x0960, 2) + +// Packet: 0x0961 +packetLen(0x0961, 2) + +// Packet: 0x0962 +packetLen(0x0962, 2) + +// Packet: 0x0963 +packetLen(0x0963, 2) + +// Packet: 0x0964 +packetLen(0x0964, 2) + +// Packet: 0x0965 +packetLen(0x0965, 2) + +// Packet: 0x0966 +packetLen(0x0966, 2) + +// Packet: 0x0967 +packetLen(0x0967, 2) + +// Packet: 0x0968 +packetLen(0x0968, 2) + +// Packet: 0x0969 +packetLen(0x0969, 2) + +// Packet: 0x096a +packetLen(0x096a, 2) + +// Packet: 0x096b +packetLen(0x096b, 4) + +// Packet: 0x096c +packetLen(0x096c, 6) + +// Packet: 0x096d +packetLen(0x096d, -1) + +// Packet: 0x096e +packetLen(0x096e, -1) + +// Packet: 0x096f +packetLen(0x096f, 7) + +// Packet: 0x0970 +packetLen(0x0970, 31) + +// Packet: 0x0971 +packetLen(0x0971, 6) + +// Packet: 0x0972 +packetLen(0x0972, -1) + +// Packet: 0x0973 +packetLen(0x0973, 7) + +// Packet: 0x0974 +packetLen(0x0974, 2) + +// Packet: 0x0975 +packetLen(0x0975, -1) + +// Packet: 0x0976 +packetLen(0x0976, -1) + +// Packet: 0x0977 +packetLen(0x0977, 14) + +// Packet: 0x0978 +packetLen(0x0978, 6) + +// Packet: 0x0979 +packetLen(0x0979, 50) + +// Packet: 0x097a +packetLen(0x097a, -1) + +// Packet: 0x097b +packetLen(0x097b, -1) + +// Packet: 0x097c +packetLen(0x097c, 4) + +// Packet: 0x097d +packetLen(0x097d, 288) + +// Packet: 0x097e +packetLen(0x097e, 12) + +// Packet: 0x097f +packetLen(0x097f, -1) + +// Packet: 0x0980 +packetLen(0x0980, 7) + +// Packet: 0x0981 +packetLen(0x0981, -1) + +// Packet: 0x0982 +packetLen(0x0982, 7) + +// Packet: 0x0983 +packetLen(0x0983, 29) + +// Packet: 0x0984 +packetLen(0x0984, 28) + +// Packet: 0x0985 +packetLen(0x0985, -1) + +// Packet: 0x0986 +packetLen(0x0986, 10) + +// Packet: 0x0987 +packetLen(0x0987, -1) + +// Packet: 0x0988 +packetLen(0x0988, 6) + +// Packet: 0x0989 +packetLen(0x0989, 2) + +// Packet: 0x098a +packetLen(0x098a, -1) + +// Packet: 0x098b +packetLen(0x098b, 2) + +// Packet: 0x098c +packetLen(0x098c, 4) + +// Packet: 0x098d +packetLen(0x098d, -1) + +// Packet: 0x098e +packetLen(0x098e, -1) + +// Packet: 0x098f +packetLen(0x098f, -1) + +// Packet: 0x0990 +packetLen(0x0990, 41) + +// Packet: 0x0991 +packetLen(0x0991, -1) + +// Packet: 0x0992 +packetLen(0x0992, -1) + +// Packet: 0x0993 +packetLen(0x0993, -1) + +// Packet: 0x0994 +packetLen(0x0994, -1) + +// Packet: 0x0995 +packetLen(0x0995, -1) + +// Packet: 0x0996 +packetLen(0x0996, -1) + +// Packet: 0x0997 +packetLen(0x0997, -1) + +// Packet: 0x0998 +packetLen(0x0998, 8) + +// Packet: 0x0999 +packetLen(0x0999, 11) + +// Packet: 0x099a +packetLen(0x099a, 9) + +// Packet: 0x099b +packetLen(0x099b, 8) + +// Packet: 0x099c +packetLen(0x099c, 6) + +// Packet: 0x099d +packetLen(0x099d, -1) + +// Packet: 0x099e +packetLen(0x099e, 12) + +// Packet: 0x099f +packetLen(0x099f, -1) + +// Packet: 0x09a0 +packetLen(0x09a0, 6) + +// Packet: 0x09a1 +packetLen(0x09a1, 2) + +// Packet: 0x09a2 +packetLen(0x09a2, 6) + +// Packet: 0x09a3 +packetLen(0x09a3, -1) + +// Packet: 0x09a4 +packetLen(0x09a4, 18) + +// Packet: 0x09a5 +packetLen(0x09a5, 7) + +// Packet: 0x09a6 +packetLen(0x09a6, 12) + +// Packet: 0x09a7 +packetLen(0x09a7, 10) + +// Packet: 0x09a8 +packetLen(0x09a8, 16) + +// Packet: 0x09a9 +packetLen(0x09a9, 10) + +// Packet: 0x09aa +packetLen(0x09aa, 16) + +// Packet: 0x09ab +packetLen(0x09ab, 6) + +// Packet: 0x09ac +packetLen(0x09ac, -1) + +// Packet: 0x09ad +packetLen(0x09ad, 12) + +// Packet: 0x09ae +packetLen(0x09ae, 19) + +// Packet: 0x09af +packetLen(0x09af, 4) + +// Packet: 0x09b0 +packetLen(0x09b0, 10) + +// Packet: 0x09b1 +packetLen(0x09b1, 4) + +// Packet: 0x09b2 +packetLen(0x09b2, 10) + +// Packet: 0x09b3 +packetLen(0x09b3, 6) + +// Packet: 0x09b4 +packetLen(0x09b4, 6) + +// Packet: 0x09b5 +packetLen(0x09b5, 2) + +// Packet: 0x09b6 +packetLen(0x09b6, 6) + +// Packet: 0x09b7 +packetLen(0x09b7, 4) + +// Packet: 0x09b8 +packetLen(0x09b8, 6) + +// Packet: 0x09b9 +packetLen(0x09b9, 4) + +// Packet: 0x09ba +packetLen(0x09ba, 2) + +// Packet: 0x09bb +packetLen(0x09bb, 6) + +// Packet: 0x09bc +packetLen(0x09bc, 6) + +// Packet: 0x09bd +packetLen(0x09bd, 2) + +// Packet: 0x09be +packetLen(0x09be, 2) + +// Packet: 0x09bf +packetLen(0x09bf, 4) + +// Packet: 0x09c1 +packetLen(0x09c1, 10) + +// Packet: 0x09c2 +packetLen(0x09c2, -1) + +// Packet: 0x09c3 +packetLen(0x09c3, 10) + +// Packet: 0x09c4 +packetLen(0x09c4, 10) + +// Packet: 0x09c5 +packetLen(0x09c5, 1042) + +// Packet: 0x09c6 +packetLen(0x09c6, -1) + +// Packet: 0x09c7 +packetLen(0x09c7, 18) + +// Packet: 0x09c8 +packetLen(0x09c8, -1) + +// Packet: 0x09c9 +packetLen(0x09c9, -1) + +// Packet: 0x09ca +packetLen(0x09ca, -1) + +// Packet: 0x09cb +packetLen(0x09cb, 17) + +// Packet: 0x09cc +packetLen(0x09cc, -1) + +// Packet: 0x09cd +packetLen(0x09cd, 8) + +// Packet: 0x09ce +packetLen(0x09ce, 102) + +// Packet: 0x09cf +packetLen(0x09cf, -1) + +// Packet: 0x09d0 +packetLen(0x09d0, -1) + +// Packet: 0x09d1 +packetLen(0x09d1, 14) + +// Packet: 0x09d2 +packetLen(0x09d2, -1) + +// Packet: 0x09d3 +packetLen(0x09d3, -1) + +// Packet: 0x09d4 +packetLen(0x09d4, 2) + +// Packet: 0x09d5 +packetLen(0x09d5, -1) + +// Packet: 0x09d6 +packetLen(0x09d6, -1) + +// Packet: 0x09d7 +packetLen(0x09d7, -1) + +// Packet: 0x09d8 +packetLen(0x09d8, 2) + +// Packet: 0x09d9 +packetLen(0x09d9, 4) + +// Packet: 0x09da +packetLen(0x09da, -1) + +// Packet: 0x09db +packetLen(0x09db, -1) + +// Packet: 0x09dc +packetLen(0x09dc, -1) + +// Packet: 0x09dd +packetLen(0x09dd, -1) + +// Packet: 0x09de +packetLen(0x09de, -1) + +// Packet: 0x09df +packetLen(0x09df, 7) + +// Packet: 0x09e0 +packetLen(0x09e0, -1) + +// Packet: 0x09e1 +packetLen(0x09e1, 8) + +// Packet: 0x09e2 +packetLen(0x09e2, 8) + +// Packet: 0x09e3 +packetLen(0x09e3, 8) + +// Packet: 0x09e4 +packetLen(0x09e4, 8) + +// Packet: 0x09e5 +packetLen(0x09e5, 18) + +// Packet: 0x09e6 +packetLen(0x09e6, 24) + +// Packet: 0x09e7 +packetLen(0x09e7, 3) + +// Packet: 0x09e8 +packetLen(0x09e8, 11) + +// Packet: 0x09e9 +packetLen(0x09e9, 2) + +// Packet: 0x09ea +packetLen(0x09ea, 11) + +// Packet: 0x09eb +packetLen(0x09eb, -1) + +// Packet: 0x09ec +packetLen(0x09ec, -1) + +// Packet: 0x09ed +packetLen(0x09ed, 3) + +// Packet: 0x09ee +packetLen(0x09ee, 11) + +// Packet: 0x09ef +packetLen(0x09ef, 11) + +// Packet: 0x09f0 +packetLen(0x09f0, -1) + +// Packet: 0x09f1 +packetLen(0x09f1, 11) + +// Packet: 0x09f2 +packetLen(0x09f2, 12) + +// Packet: 0x09f3 +packetLen(0x09f3, 11) + +// Packet: 0x09f4 +packetLen(0x09f4, 12) + +// Packet: 0x09f5 +packetLen(0x09f5, 11) + +// Packet: 0x09f6 +packetLen(0x09f6, 11) + +// Packet: 0x09f7 +packetLen(0x09f7, 77) + +// Packet: 0x09f8 +packetLen(0x09f8, -1) + +// Packet: 0x09f9 +packetLen(0x09f9, 143) + +// Packet: 0x09fa +packetLen(0x09fa, -1) + +// Packet: 0x09fb +packetLen(0x09fb, -1) + +// Packet: 0x09fc +packetLen(0x09fc, 6) + +// Packet: 0x09fd +packetLen(0x09fd, -1) + +// Packet: 0x09fe +packetLen(0x09fe, -1) + +// Packet: 0x09ff +packetLen(0x09ff, -1) + +// Packet: 0x0a00 +packetLen(0x0a00, 269) + +// Packet: 0x0a01 +packetLen(0x0a01, 3) + +// Packet: 0x0a02 +packetLen(0x0a02, 4) + +// Packet: 0x0a03 +packetLen(0x0a03, 2) + +// Packet: 0x0a04 +packetLen(0x0a04, 6) + +// Packet: 0x0a05 +packetLen(0x0a05, 63) + +// Packet: 0x0a06 +packetLen(0x0a06, 6) + +// Packet: 0x0a07 +packetLen(0x0a07, 9) + +// Packet: 0x0a08 +packetLen(0x0a08, 26) + +// Packet: 0x0a09 +packetLen(0x0a09, 55) + +// Packet: 0x0a0a +packetLen(0x0a0a, 57) + +// Packet: 0x0a0b +packetLen(0x0a0b, 57) + +// Packet: 0x0a0c +packetLen(0x0a0c, 66) + +// Packet: 0x0a0d +packetLen(0x0a0d, -1) + +// Packet: 0x0a0e +packetLen(0x0a0e, 14) + +// Packet: 0x0a0f +packetLen(0x0a0f, -1) + +// Packet: 0x0a10 +packetLen(0x0a10, -1) + +// Packet: 0x0a11 +packetLen(0x0a11, -1) + +// Packet: 0x0a12 +packetLen(0x0a12, 27) + +// Packet: 0x0a13 +packetLen(0x0a13, 26) + +// Packet: 0x0a14 +packetLen(0x0a14, 10) + +// Packet: 0x0a15 +packetLen(0x0a15, 12) + +// Packet: 0x0a16 +packetLen(0x0a16, 26) + +// Packet: 0x0a17 +packetLen(0x0a17, 6) + +// Packet: 0x0a18 +packetLen(0x0a18, 14) + +// Packet: 0x0a19 +packetLen(0x0a19, 2) + +// Packet: 0x0a1a +packetLen(0x0a1a, 25) + +// Packet: 0x0a1b +packetLen(0x0a1b, 2) + +// Packet: 0x0a1c +packetLen(0x0a1c, -1) + +// Packet: 0x0a1d +packetLen(0x0a1d, 2) + +// Packet: 0x0a1e +packetLen(0x0a1e, 3) + +// Packet: 0x0a1f +packetLen(0x0a1f, 2) + +// Packet: 0x0a20 +packetLen(0x0a20, 23) + +// Packet: 0x0a21 +packetLen(0x0a21, 3) + +// Packet: 0x0a22 +packetLen(0x0a22, 7) + +// Packet: 0x0a23 +packetLen(0x0a23, -1) + +// Packet: 0x0a24 +packetLen(0x0a24, 66) + +// Packet: 0x0a25 +packetLen(0x0a25, 6) + +// Packet: 0x0a26 +packetLen(0x0a26, 7) + +// Packet: 0x0a27 +packetLen(0x0a27, 8) + +// Packet: 0x0a28 +packetLen(0x0a28, 3) + +// Packet: 0x0a29 +packetLen(0x0a29, 6) + +// Packet: 0x0a2a +packetLen(0x0a2a, 6) + +// Packet: 0x0a2b +packetLen(0x0a2b, 14) + +// Packet: 0x0a2c +packetLen(0x0a2c, 12) + +// Packet: 0x0a2d +packetLen(0x0a2d, -1) + +// Packet: 0x0a2e +packetLen(0x0a2e, 6) + +// Packet: 0x0a2f +packetLen(0x0a2f, 7) + +// Packet: 0x0a30 +packetLen(0x0a30, 106) + +// Packet: 0x0a31 +packetLen(0x0a31, -1) + +// Packet: 0x0a32 +packetLen(0x0a32, 2) + +// Packet: 0x0a33 +packetLen(0x0a33, 7) + +// Packet: 0x0a34 +packetLen(0x0a34, 6) + +// Packet: 0x0a35 +packetLen(0x0a35, 4) + +// Packet: 0x0a36 +packetLen(0x0a36, 7) + +// Packet: 0x0a37 +packetLen(0x0a37, 69) + +// Packet: 0x0a38 +packetLen(0x0a38, 3) + +// Packet: 0x0a39 +packetLen(0x0a39, 36) + +// Packet: 0x0a3a +packetLen(0x0a3a, 12) + +// Packet: 0x0a3b +packetLen(0x0a3b, -1) + +// Packet: 0x0a3c +packetLen(0x0a3c, -1) + +// Packet: 0x0a3d +packetLen(0x0a3d, 20) + +// Packet: 0x0a3e +packetLen(0x0a3e, -1) + +// Packet: 0x0a3f +packetLen(0x0a3f, 11) + +// Packet: 0x0a40 +packetLen(0x0a40, 11) + +// Packet: 0x0a41 +packetLen(0x0a41, 18) + +// Packet: 0x0a42 +packetLen(0x0a42, 43) + +// Packet: 0x0a43 +packetLen(0x0a43, 85) + +// Packet: 0x0a44 +packetLen(0x0a44, -1) + +// Packet: 0x0a46 +packetLen(0x0a46, 14) + +// Packet: 0x0a47 +packetLen(0x0a47, 3) + +// Packet: 0x0a48 +packetLen(0x0a48, 2) + +// Packet: 0x0a49 +packetLen(0x0a49, 22) + +// Packet: 0x0a4a +packetLen(0x0a4a, 6) + +// Packet: 0x0a4b +packetLen(0x0a4b, 22) + +// Packet: 0x0a4c +packetLen(0x0a4c, 28) + +// Packet: 0x0a4d +packetLen(0x0a4d, -1) + +// Packet: 0x0a4e +packetLen(0x0a4e, 6) + +// Packet: 0x0a4f +packetLen(0x0a4f, -1) + +// Packet: 0x0a50 +packetLen(0x0a50, 4) + +// Packet: 0x0a51 +packetLen(0x0a51, 34) + +// Packet: 0x0a52 +packetLen(0x0a52, 20) + +// Packet: 0x0a53 +packetLen(0x0a53, 10) + +// Packet: 0x0a54 +packetLen(0x0a54, -1) + +// Packet: 0x0a55 +packetLen(0x0a55, 2) + +// Packet: 0x0a56 +packetLen(0x0a56, 6) + +// Packet: 0x0a57 +packetLen(0x0a57, 6) + +// Packet: 0x0a58 +packetLen(0x0a58, 8) + +// Packet: 0x0a59 +packetLen(0x0a59, -1) + +// Packet: 0x0a5a +packetLen(0x0a5a, 2) + +// Packet: 0x0a5b +packetLen(0x0a5b, 7) + +// Packet: 0x0a5c +packetLen(0x0a5c, 18) + +// Packet: 0x0a5d +packetLen(0x0a5d, 6) + +// Packet: 0x0a68 +packetLen(0x0a68, 3) + +// Packet: 0x0a69 +packetLen(0x0a69, 6) + +// Packet: 0x0a6a +packetLen(0x0a6a, 12) + +// Packet: 0x0a6b +packetLen(0x0a6b, -1) + +// Packet: 0x0a6c +packetLen(0x0a6c, 7) + +// Packet: 0x0a6d +packetLen(0x0a6d, -1) + +// Packet: 0x0a6e +packetLen(0x0a6e, -1) + +// Packet: 0x0a6f +packetLen(0x0a6f, -1) + +// Packet: 0x0a70 +packetLen(0x0a70, 2) + +// Packet: 0x0a71 +packetLen(0x0a71, -1) + +// Packet: 0x0a72 +packetLen(0x0a72, 61) + +// Packet: 0x0a73 +packetLen(0x0a73, 2) + +// Packet: 0x0a74 +packetLen(0x0a74, 8) + +// Packet: 0x0a76 +packetLen(0x0a76, 80) + +// Packet: 0x0a77 +packetLen(0x0a77, 15) + +// Packet: 0x0a78 +packetLen(0x0a78, 15) + +// Packet: 0x0a79 +packetLen(0x0a79, -1) + +// Packet: 0x0a7b +packetLen(0x0a7b, -1) + +// Packet: 0x0a7c +packetLen(0x0a7c, -1) + +// Packet: 0x0a7d +packetLen(0x0a7d, -1) + +// Packet: 0x0a7e +packetLen(0x0a7e, -1) + +// Packet: 0x0a7f +packetLen(0x0a7f, -1) + +// Packet: 0x0a80 +packetLen(0x0a80, 6) + +// Packet: 0x0a81 +packetLen(0x0a81, 4) + +// Packet: 0x0a82 +packetLen(0x0a82, 46) + +// Packet: 0x0a83 +packetLen(0x0a83, 46) + +// Packet: 0x0a84 +packetLen(0x0a84, 94) + +// Packet: 0x0a85 +packetLen(0x0a85, 82) + +// Packet: 0x0a86 +packetLen(0x0a86, -1) + +// Packet: 0x0a87 +packetLen(0x0a87, -1) + +// Packet: 0x0a88 +packetLen(0x0a88, 2) + +// Packet: 0x0a89 +packetLen(0x0a89, 61) + +// Packet: 0x0a8a +packetLen(0x0a8a, 6) + +// Packet: 0x0a8b +packetLen(0x0a8b, 2) + +// Packet: 0x0a8c +packetLen(0x0a8c, 2) + +// Packet: 0x0a8d +packetLen(0x0a8d, -1) + +// Packet: 0x0a8e +packetLen(0x0a8e, 2) + +// Packet: 0x0a8f +packetLen(0x0a8f, 2) + +// Packet: 0x0a90 +packetLen(0x0a90, 3) + +// Packet: 0x0a91 +packetLen(0x0a91, -1) + +// Packet: 0x0a92 +packetLen(0x0a92, -1) + +// Packet: 0x0a93 +packetLen(0x0a93, 3) + +// Packet: 0x0a94 +packetLen(0x0a94, 2) + +// Packet: 0x0a95 +packetLen(0x0a95, 4) + +// Packet: 0x0a96 +packetLen(0x0a96, 61) + +// Packet: 0x0a97 +packetLen(0x0a97, 8) + +// Packet: 0x0a98 +packetLen(0x0a98, 10) + +// Packet: 0x0a99 +packetLen(0x0a99, 4) + +// Packet: 0x0a9a +packetLen(0x0a9a, 10) + +// Packet: 0x0a9b +packetLen(0x0a9b, -1) + +// Packet: 0x0a9c +packetLen(0x0a9c, 2) + +// Packet: 0x0a9d +packetLen(0x0a9d, 4) + +// Packet: 0x0a9e +packetLen(0x0a9e, 2) + +// Packet: 0x0a9f +packetLen(0x0a9f, 2) + +// Packet: 0x0aa0 +packetLen(0x0aa0, 2) + +// Packet: 0x0aa1 +packetLen(0x0aa1, 4) + +// Packet: 0x0aa2 +packetLen(0x0aa2, -1) + +// Packet: 0x0aa3 +packetLen(0x0aa3, 9) + +// Packet: 0x0aa4 +packetLen(0x0aa4, 2) + +// Packet: 0x0aa5 +packetLen(0x0aa5, -1) + +// Packet: 0x0aa6 +packetLen(0x0aa6, 36) + +// Packet: 0x0aa7 +packetLen(0x0aa7, 6) + +// Packet: 0x0aa8 +packetLen(0x0aa8, 5) + +// Packet: 0x0aa9 +packetLen(0x0aa9, -1) + +// Packet: 0x0aaa +packetLen(0x0aaa, -1) + +// Packet: 0x0aab +packetLen(0x0aab, -1) + +// Packet: 0x0aac +packetLen(0x0aac, 69) + +// Packet: 0x0aad +packetLen(0x0aad, 51) + +// Packet: 0x0aae +packetLen(0x0aae, 2) + +// Packet: 0x0aaf +packetLen(0x0aaf, 6) + +// Packet: 0x0ab0 +packetLen(0x0ab0, 6) + +// Packet: 0x0ab1 +packetLen(0x0ab1, 14) + +// Packet: 0x0ab2 +packetLen(0x0ab2, 7) + +// Packet: 0x0ab3 +packetLen(0x0ab3, 19) + +// Packet: 0x0ab4 +packetLen(0x0ab4, 6) + +// Packet: 0x0ab5 +packetLen(0x0ab5, 2) + +// Packet: 0x0ab6 +packetLen(0x0ab6, 8) + +// Packet: 0x0ab7 +packetLen(0x0ab7, 4) + +// Packet: 0x0ab8 +packetLen(0x0ab8, 2) + +// Packet: 0x0ab9 +packetLen(0x0ab9, 47) + +// Packet: 0x0aba +packetLen(0x0aba, 2) + +// Packet: 0x0abb +packetLen(0x0abb, 2) + +// Packet: 0x0abc +packetLen(0x0abc, -1) + +// Packet: 0x0abd +packetLen(0x0abd, 10) + +// Packet: 0x0abe +packetLen(0x0abe, -1) + +// Packet: 0x0abf +packetLen(0x0abf, -1) + +// Packet: 0x0ac0 +packetLen(0x0ac0, 26) + +// Packet: 0x0ac1 +packetLen(0x0ac1, 26) + +// Packet: 0x0ac2 +packetLen(0x0ac2, -1) + +// Packet: 0x0ac3 +packetLen(0x0ac3, 2) + +// Packet: 0x0ac4 +packetLen(0x0ac4, -1) + +// Packet: 0x0ac5 +packetLen(0x0ac5, 156) + +// Packet: 0x0ac6 +packetLen(0x0ac6, 156) + +// Packet: 0x0ac7 +packetLen(0x0ac7, 156) + +// Packet: 0x0ac8 +packetLen(0x0ac8, 2) + +// Packet: 0x0ac9 +packetLen(0x0ac9, -1) + +// Packet: 0x0aca +packetLen(0x0aca, 3) + +// Packet: 0x0acb +packetLen(0x0acb, 12) + +// Packet: 0x0acc +packetLen(0x0acc, 18) + +// Packet: 0x0acd +packetLen(0x0acd, 23) + +// Packet: 0x0ace +packetLen(0x0ace, 4) + +// Packet: 0x0acf +packetLen(0x0acf, 68) + +// Packet: 0x0ad0 +packetLen(0x0ad0, 11) + +// Packet: 0x0ad1 +packetLen(0x0ad1, -1) + +// Packet: 0x0ad2 +packetLen(0x0ad2, 30) + +// Packet: 0x0ad3 +packetLen(0x0ad3, -1) + +// Packet: 0x0ad4 +packetLen(0x0ad4, -1) + +// Packet: 0x0ad5 +packetLen(0x0ad5, 2) + +// Packet: 0x0ad6 +packetLen(0x0ad6, 2) + +// Packet: 0x0ad7 +packetLen(0x0ad7, 8) + +// Packet: 0x0ad8 +packetLen(0x0ad8, 8) + +// Packet: 0x0ad9 +packetLen(0x0ad9, -1) + +// Packet: 0x0ada +packetLen(0x0ada, 32) + +// Packet: 0x0adb +packetLen(0x0adb, -1) + +// Packet: 0x0adc +packetLen(0x0adc, 6) + +// Packet: 0x0add +packetLen(0x0add, 24) + +// Packet: 0x0ade +packetLen(0x0ade, 6) + +// Packet: 0x0adf +packetLen(0x0adf, 58) + +// Packet: 0x0ae0 +packetLen(0x0ae0, 30) + +// Packet: 0x0ae1 +packetLen(0x0ae1, 28) + +// Packet: 0x0ae2 +packetLen(0x0ae2, 7) + +// Packet: 0x0ae3 +packetLen(0x0ae3, -1) + +// Packet: 0x0ae4 +packetLen(0x0ae4, 89) + +// Packet: 0x0ae5 +packetLen(0x0ae5, -1) + +// Packet: 0x0ae6 +packetLen(0x0ae6, 10) + +// Packet: 0x0ae7 +packetLen(0x0ae7, 38) + +// Packet: 0x0ae8 +packetLen(0x0ae8, 2) + +// Packet: 0x0ae9 +packetLen(0x0ae9, 13) + +// Packet: 0x0aec +packetLen(0x0aec, 2) + +// Packet: 0x0aed +packetLen(0x0aed, 2) + +// Packet: 0x0aee +packetLen(0x0aee, 2) + +// Packet: 0x0aef +packetLen(0x0aef, 2) + +// Packet: 0x0af0 +packetLen(0x0af0, 10) + +// Packet: 0x0af2 +packetLen(0x0af2, 40) + +// Packet: 0x0af3 +packetLen(0x0af3, -1) + +// Packet: 0x0af4 +packetLen(0x0af4, 11) + +// Packet: 0x0af5 +packetLen(0x0af5, 3) + +// Packet: 0x0af6 +packetLen(0x0af6, 88) + +// Packet: 0x0af7 +packetLen(0x0af7, 32) + +// Packet: 0x0af8 +packetLen(0x0af8, 11) + +// Packet: 0x0af9 +packetLen(0x0af9, 6) + +// Packet: 0x0afa +packetLen(0x0afa, 58) + +// Packet: 0x0afb +packetLen(0x0afb, -1) + +// Packet: 0x0afc +packetLen(0x0afc, 16) + +// Packet: 0x0afd +packetLen(0x0afd, -1) + +// Packet: 0x0afe +packetLen(0x0afe, -1) + +// Packet: 0x0aff +packetLen(0x0aff, -1) + +// Packet: 0x0b00 +packetLen(0x0b00, 8) + +// Packet: 0x0b01 +packetLen(0x0b01, 56) + +// Packet: 0x0b02 +packetLen(0x0b02, 26) + +// Packet: 0x0b03 +packetLen(0x0b03, -1) + +// Packet: 0x0b04 +packetLen(0x0b04, 90) + +// Packet: 0x0b05 +packetLen(0x0b05, 63) + +// Packet: 0x0b07 +packetLen(0x0b07, -1) + +// Packet: 0x0b08 +packetLen(0x0b08, -1) + +// Packet: 0x0b09 +packetLen(0x0b09, -1) + +// Packet: 0x0b0a +packetLen(0x0b0a, -1) + +// Packet: 0x0b0b +packetLen(0x0b0b, 4) + +// Packet: 0x0b0c +packetLen(0x0b0c, 155) + +// Packet: 0x0b0d +packetLen(0x0b0d, 10) + +// Packet: 0x0b0e +packetLen(0x0b0e, -1) + +// Packet: 0x0b0f +packetLen(0x0b0f, -1) + +// Packet: 0x0b10 +packetLen(0x0b10, 10) + +// Packet: 0x0b11 +packetLen(0x0b11, 4) + +// Packet: 0x0b12 +packetLen(0x0b12, 2) + +// Packet: 0x0b13 +packetLen(0x0b13, 48) + +// Packet: 0x0b14 +packetLen(0x0b14, 2) + +// Packet: 0x0b15 +packetLen(0x0b15, 7) + +// Packet: 0x0b16 +packetLen(0x0b16, 2) + +// Packet: 0x0b17 +packetLen(0x0b17, 3) + +// Packet: 0x0b18 +packetLen(0x0b18, 4) + +// Packet: 0x0b19 +packetLen(0x0b19, 2) + +// Packet: 0x0b1a +packetLen(0x0b1a, 29) + +// Packet: 0x0b1b +packetLen(0x0b1b, 2) + +// Packet: 0x0b1c +packetLen(0x0b1c, 2) + +// Packet: 0x0b1d +packetLen(0x0b1d, 2) + +// Packet: 0x0b1e +packetLen(0x0b1e, 14) + +// Packet: 0x0b1f +packetLen(0x0b1f, 14) + +// Packet: 0x0b20 +packetLen(0x0b20, 271) + +// Packet: 0x0b21 +packetLen(0x0b21, 13) + +// Packet: 0x0b22 +packetLen(0x0b22, 5) + +// Packet: 0x0b23 +packetLen(0x0b23, 6) + +// Packet: 0x0b24 +packetLen(0x0b24, 6) + +// Packet: 0x0b25 +packetLen(0x0b25, 6) + +// Packet: 0x0b27 +packetLen(0x0b27, -1) + +// Packet: 0x0b28 +packetLen(0x0b28, 3) + +// Packet: 0x0b2b +packetLen(0x0b2b, 11) + +// Packet: 0x0b2c +packetLen(0x0b2c, 3) + +// Packet: 0x0b2d +packetLen(0x0b2d, 11) + +// Packet: 0x0b2e +packetLen(0x0b2e, 4) + +// Packet: 0x0b2f +packetLen(0x0b2f, 73) + +// Packet: 0x0b30 +packetLen(0x0b30, -1) + +// Packet: 0x0b31 +packetLen(0x0b31, 17) + +// Packet: 0x0b32 +packetLen(0x0b32, -1) + +// Packet: 0x0b33 +packetLen(0x0b33, 17) + +// Packet: 0x0b34 +packetLen(0x0b34, 50) + +// Packet: 0x0b35 +packetLen(0x0b35, 3) + +// Packet: 0x0b36 +packetLen(0x0b36, -1) + +// Packet: 0x0b37 +packetLen(0x0b37, -1) + +// Packet: 0x0b39 +packetLen(0x0b39, -1) + +// Packet: 0x0b3c +packetLen(0x0b3c, 4) + +// Packet: 0x0b3d +packetLen(0x0b3d, -1) + +// Packet: 0x0b3e +packetLen(0x0b3e, -1) + +// Packet: 0x0b3f +packetLen(0x0b3f, 64) + +// Packet: 0x0b40 +packetLen(0x0b40, -1) + +// Packet: 0x0b41 +packetLen(0x0b41, 70) + +// Packet: 0x0b42 +packetLen(0x0b42, 62) + +// Packet: 0x0b43 +packetLen(0x0b43, 48) + +// Packet: 0x0b44 +packetLen(0x0b44, 58) + +// Packet: 0x0b45 +packetLen(0x0b45, 58) + +// Packet: 0x0b46 +packetLen(0x0b46, 10) + +// Packet: 0x0b47 +packetLen(0x0b47, 14) + +// Packet: 0x0b48 +packetLen(0x0b48, 18) + +// Packet: 0x0b49 +packetLen(0x0b49, 4) + +// Packet: 0x0b4a +packetLen(0x0b4a, 6) + +// Packet: 0x0b4b +packetLen(0x0b4b, 4) + +// Packet: 0x0b4c +packetLen(0x0b4c, 2) + +// Packet: 0x0b4d +packetLen(0x0b4d, -1) + +// Packet: 0x0b4e +packetLen(0x0b4e, -1) + +// Packet: 0x0b4f +packetLen(0x0b4f, 2) + +// Packet: 0x0b50 +packetLen(0x0b50, 2) + +// Packet: 0x0b51 +packetLen(0x0b51, 2) + +// Packet: 0x0b52 +packetLen(0x0b52, 2) + +// Packet: 0x0b53 +packetLen(0x0b53, 52) + +// Packet: 0x0b54 +packetLen(0x0b54, 8) + +// Packet: 0x0b55 +packetLen(0x0b55, -1) + +// Packet: 0x0b56 +packetLen(0x0b56, -1) + +// Packet: 0x0b57 +packetLen(0x0b57, -1) + +// Packet: 0x0b58 +packetLen(0x0b58, 2) + +// Packet: 0x0b59 +packetLen(0x0b59, 4) + +// Packet: 0x0b5a +packetLen(0x0b5a, -1) + +// Packet: 0x0b5b +packetLen(0x0b5b, 14) + +// Packet: 0x0b5c +packetLen(0x0b5c, 2) + +// Packet: 0x0b5d +packetLen(0x0b5d, 10) + +// Packet: 0x0b5e +packetLen(0x0b5e, 33) + +// Packet: 0x0b5f +packetLen(0x0b5f, -1) + +// Packet: 0x0b60 +packetLen(0x0b60, -1) + +// Packet: 0x0b61 +packetLen(0x0b61, -1) + +// Packet: 0x0b62 +packetLen(0x0b62, -1) + +// Packet: 0x0b63 +packetLen(0x0b63, -1) + +// Packet: 0x0b64 +packetLen(0x0b64, -1) + +// Packet: 0x0b65 +packetLen(0x0b65, -1) + +// Packet: 0x0b66 +packetLen(0x0b66, 26) + +// Packet: 0x0b67 +packetLen(0x0b67, 33) + +// Packet: 0x0b68 +packetLen(0x0b68, 12) + +// Packet: 0x0b69 +packetLen(0x0b69, 18) + +// Packet: 0x0b6a +packetLen(0x0b6a, -1) + +// Packet: 0x0b6b +packetLen(0x0b6b, 14) + +// Packet: 0x0b6c +packetLen(0x0b6c, 12) + +// Packet: 0x0b6d +packetLen(0x0b6d, 6) + +// Packet: 0x0b6e +packetLen(0x0b6e, 14) + + +#endif /* COMMON_PACKETS2020_LEN_MAIN_H */ diff --git a/src/common/packets/packets2020_len_re.h b/src/common/packets/packets2020_len_re.h new file mode 100644 index 000000000..6e72cbb7d --- /dev/null +++ b/src/common/packets/packets2020_len_re.h @@ -0,0 +1,4621 @@ +/** + * This file is part of Hercules. + * http://herc.ws - http://github.com/HerculesWS/Hercules + * + * Copyright (C) 2018-2020 Hercules Dev Team + * Copyright (C) 2018-2020 Andrei Karas (4144) + * + * 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/>. + */ + +#ifndef COMMON_PACKETS2020_LEN_RE_H +#define COMMON_PACKETS2020_LEN_RE_H + +/* This file is autogenerated, please do not commit manual changes */ + +// Packet: 0x0064 +packetLen(0x0064, 55) + +// Packet: 0x0065 +packetLen(0x0065, 17) + +// Packet: 0x0066 +packetLen(0x0066, 3) + +// Packet: 0x0067 +packetLen(0x0067, 37) + +// Packet: 0x0068 +packetLen(0x0068, 46) + +// Packet: 0x0069 +packetLen(0x0069, -1) + +// Packet: 0x006a +packetLen(0x006a, 23) + +// Packet: 0x006b +packetLen(0x006b, -1) + +// Packet: 0x006c +packetLen(0x006c, 3) + +// Packet: 0x006d +packetLen(0x006d, 157) + +// Packet: 0x006e +packetLen(0x006e, 3) + +// Packet: 0x006f +packetLen(0x006f, 2) + +// Packet: 0x0070 +packetLen(0x0070, 3) + +// Packet: 0x0071 +packetLen(0x0071, 28) + +// Packet: 0x0072 +packetLen(0x0072, 22) + +// Packet: 0x0073 +packetLen(0x0073, 11) + +// Packet: 0x0074 +packetLen(0x0074, 3) + +// Packet: 0x0075 +packetLen(0x0075, -1) + +// Packet: 0x0076 +packetLen(0x0076, 9) + +// Packet: 0x0077 +packetLen(0x0077, 5) + +// Packet: 0x0078 +packetLen(0x0078, 55) + +// Packet: 0x0079 +packetLen(0x0079, 53) + +// Packet: 0x007a +packetLen(0x007a, 58) + +// Packet: 0x007b +packetLen(0x007b, 60) + +// Packet: 0x007c +packetLen(0x007c, 44) + +// Packet: 0x007d +packetLen(0x007d, 2) + +// Packet: 0x007e +packetLen(0x007e, 46) + +// Packet: 0x007f +packetLen(0x007f, 6) + +// Packet: 0x0080 +packetLen(0x0080, 7) + +// Packet: 0x0081 +packetLen(0x0081, 3) + +// Packet: 0x0082 +packetLen(0x0082, 2) + +// Packet: 0x0083 +packetLen(0x0083, 2) + +// Packet: 0x0084 +packetLen(0x0084, 2) + +// Packet: 0x0085 +packetLen(0x0085, 10) + +// Packet: 0x0086 +packetLen(0x0086, 16) + +// Packet: 0x0087 +packetLen(0x0087, 12) + +// Packet: 0x0088 +packetLen(0x0088, 10) + +// Packet: 0x0089 +packetLen(0x0089, 11) + +// Packet: 0x008a +packetLen(0x008a, 29) + +// Packet: 0x008b +packetLen(0x008b, 23) + +// Packet: 0x008c +packetLen(0x008c, 14) + +// Packet: 0x008d +packetLen(0x008d, -1) + +// Packet: 0x008e +packetLen(0x008e, -1) + +// Packet: 0x0090 +packetLen(0x0090, 7) + +// Packet: 0x0091 +packetLen(0x0091, 22) + +// Packet: 0x0092 +packetLen(0x0092, 28) + +// Packet: 0x0093 +packetLen(0x0093, 2) + +// Packet: 0x0094 +packetLen(0x0094, 19) + +// Packet: 0x0095 +packetLen(0x0095, 30) + +// Packet: 0x0096 +packetLen(0x0096, -1) + +// Packet: 0x0097 +packetLen(0x0097, -1) + +// Packet: 0x0098 +packetLen(0x0098, 3) + +// Packet: 0x0099 +packetLen(0x0099, -1) + +// Packet: 0x009a +packetLen(0x009a, -1) + +// Packet: 0x009b +packetLen(0x009b, 34) + +// Packet: 0x009c +packetLen(0x009c, 9) + +// Packet: 0x009d +packetLen(0x009d, 19) + +// Packet: 0x009e +packetLen(0x009e, 19) + +// Packet: 0x009f +packetLen(0x009f, 20) + +// Packet: 0x00a0 +packetLen(0x00a0, 33) + +// Packet: 0x00a1 +packetLen(0x00a1, 6) + +// Packet: 0x00a2 +packetLen(0x00a2, 14) + +// Packet: 0x00a3 +packetLen(0x00a3, -1) + +// Packet: 0x00a4 +packetLen(0x00a4, -1) + +// Packet: 0x00a5 +packetLen(0x00a5, -1) + +// Packet: 0x00a6 +packetLen(0x00a6, -1) + +// Packet: 0x00a7 +packetLen(0x00a7, 9) + +// Packet: 0x00a8 +packetLen(0x00a8, 7) + +// Packet: 0x00a9 +packetLen(0x00a9, 6) + +// Packet: 0x00aa +packetLen(0x00aa, 9) + +// Packet: 0x00ab +packetLen(0x00ab, 4) + +// Packet: 0x00ac +packetLen(0x00ac, 7) + +// Packet: 0x00ae +packetLen(0x00ae, -1) + +// Packet: 0x00af +packetLen(0x00af, 6) + +// Packet: 0x00b0 +packetLen(0x00b0, 8) + +// Packet: 0x00b1 +packetLen(0x00b1, 8) + +// Packet: 0x00b2 +packetLen(0x00b2, 3) + +// Packet: 0x00b3 +packetLen(0x00b3, 3) + +// Packet: 0x00b4 +packetLen(0x00b4, -1) + +// Packet: 0x00b5 +packetLen(0x00b5, 6) + +// Packet: 0x00b6 +packetLen(0x00b6, 6) + +// Packet: 0x00b7 +packetLen(0x00b7, -1) + +// Packet: 0x00b8 +packetLen(0x00b8, 7) + +// Packet: 0x00b9 +packetLen(0x00b9, 6) + +// Packet: 0x00ba +packetLen(0x00ba, 2) + +// Packet: 0x00bb +packetLen(0x00bb, 5) + +// Packet: 0x00bc +packetLen(0x00bc, 6) + +// Packet: 0x00bd +packetLen(0x00bd, 44) + +// Packet: 0x00be +packetLen(0x00be, 5) + +// Packet: 0x00bf +packetLen(0x00bf, 3) + +// Packet: 0x00c0 +packetLen(0x00c0, 7) + +// Packet: 0x00c1 +packetLen(0x00c1, 2) + +// Packet: 0x00c2 +packetLen(0x00c2, 6) + +// Packet: 0x00c3 +packetLen(0x00c3, 8) + +// Packet: 0x00c4 +packetLen(0x00c4, 6) + +// Packet: 0x00c5 +packetLen(0x00c5, 7) + +// Packet: 0x00c6 +packetLen(0x00c6, -1) + +// Packet: 0x00c7 +packetLen(0x00c7, -1) + +// Packet: 0x00c8 +packetLen(0x00c8, -1) + +// Packet: 0x00c9 +packetLen(0x00c9, -1) + +// Packet: 0x00ca +packetLen(0x00ca, 3) + +// Packet: 0x00cb +packetLen(0x00cb, 3) + +// Packet: 0x00cc +packetLen(0x00cc, 6) + +// Packet: 0x00cd +packetLen(0x00cd, 3) + +// Packet: 0x00ce +packetLen(0x00ce, 2) + +// Packet: 0x00cf +packetLen(0x00cf, 27) + +// Packet: 0x00d0 +packetLen(0x00d0, 3) + +// Packet: 0x00d1 +packetLen(0x00d1, 4) + +// Packet: 0x00d2 +packetLen(0x00d2, 4) + +// Packet: 0x00d3 +packetLen(0x00d3, 2) + +// Packet: 0x00d4 +packetLen(0x00d4, -1) + +// Packet: 0x00d5 +packetLen(0x00d5, -1) + +// Packet: 0x00d6 +packetLen(0x00d6, 3) + +// Packet: 0x00d7 +packetLen(0x00d7, -1) + +// Packet: 0x00d8 +packetLen(0x00d8, 6) + +// Packet: 0x00d9 +packetLen(0x00d9, 14) + +// Packet: 0x00da +packetLen(0x00da, 3) + +// Packet: 0x00db +packetLen(0x00db, -1) + +// Packet: 0x00dc +packetLen(0x00dc, 28) + +// Packet: 0x00dd +packetLen(0x00dd, 29) + +// Packet: 0x00de +packetLen(0x00de, -1) + +// Packet: 0x00df +packetLen(0x00df, -1) + +// Packet: 0x00e0 +packetLen(0x00e0, 30) + +// Packet: 0x00e1 +packetLen(0x00e1, 30) + +// Packet: 0x00e2 +packetLen(0x00e2, 26) + +// Packet: 0x00e3 +packetLen(0x00e3, 2) + +// Packet: 0x00e4 +packetLen(0x00e4, 6) + +// Packet: 0x00e5 +packetLen(0x00e5, 26) + +// Packet: 0x00e6 +packetLen(0x00e6, 3) + +// Packet: 0x00e7 +packetLen(0x00e7, 3) + +// Packet: 0x00e8 +packetLen(0x00e8, 8) + +// Packet: 0x00e9 +packetLen(0x00e9, 29) + +// Packet: 0x00ea +packetLen(0x00ea, 5) + +// Packet: 0x00eb +packetLen(0x00eb, 2) + +// Packet: 0x00ec +packetLen(0x00ec, 3) + +// Packet: 0x00ed +packetLen(0x00ed, 2) + +// Packet: 0x00ee +packetLen(0x00ee, 2) + +// Packet: 0x00ef +packetLen(0x00ef, 2) + +// Packet: 0x00f0 +packetLen(0x00f0, 3) + +// Packet: 0x00f1 +packetLen(0x00f1, 2) + +// Packet: 0x00f2 +packetLen(0x00f2, 6) + +// Packet: 0x00f3 +packetLen(0x00f3, -1) + +// Packet: 0x00f4 +packetLen(0x00f4, 31) + +// Packet: 0x00f5 +packetLen(0x00f5, 11) + +// Packet: 0x00f6 +packetLen(0x00f6, 8) + +// Packet: 0x00f7 +packetLen(0x00f7, 17) + +// Packet: 0x00f8 +packetLen(0x00f8, 2) + +// Packet: 0x00f9 +packetLen(0x00f9, 26) + +// Packet: 0x00fa +packetLen(0x00fa, 3) + +// Packet: 0x00fb +packetLen(0x00fb, -1) + +// Packet: 0x00fc +packetLen(0x00fc, 6) + +// Packet: 0x00fd +packetLen(0x00fd, 27) + +// Packet: 0x00fe +packetLen(0x00fe, 30) + +// Packet: 0x00ff +packetLen(0x00ff, 10) + +// Packet: 0x0100 +packetLen(0x0100, 2) + +// Packet: 0x0101 +packetLen(0x0101, 6) + +// Packet: 0x0102 +packetLen(0x0102, 6) + +// Packet: 0x0103 +packetLen(0x0103, 30) + +// Packet: 0x0104 +packetLen(0x0104, 79) + +// Packet: 0x0105 +packetLen(0x0105, 31) + +// Packet: 0x0106 +packetLen(0x0106, 10) + +// Packet: 0x0107 +packetLen(0x0107, 10) + +// Packet: 0x0108 +packetLen(0x0108, -1) + +// Packet: 0x0109 +packetLen(0x0109, -1) + +// Packet: 0x010a +packetLen(0x010a, 6) + +// Packet: 0x010b +packetLen(0x010b, 6) + +// Packet: 0x010c +packetLen(0x010c, 6) + +// Packet: 0x010d +packetLen(0x010d, 2) + +// Packet: 0x010e +packetLen(0x010e, 11) + +// Packet: 0x010f +packetLen(0x010f, -1) + +// Packet: 0x0110 +packetLen(0x0110, 14) + +// Packet: 0x0111 +packetLen(0x0111, 39) + +// Packet: 0x0112 +packetLen(0x0112, 4) + +// Packet: 0x0113 +packetLen(0x0113, 25) + +// Packet: 0x0114 +packetLen(0x0114, 31) + +// Packet: 0x0115 +packetLen(0x0115, 35) + +// Packet: 0x0116 +packetLen(0x0116, 17) + +// Packet: 0x0117 +packetLen(0x0117, 18) + +// Packet: 0x0118 +packetLen(0x0118, 2) + +// Packet: 0x0119 +packetLen(0x0119, 13) + +// Packet: 0x011a +packetLen(0x011a, 15) + +// Packet: 0x011b +packetLen(0x011b, 20) + +// Packet: 0x011c +packetLen(0x011c, 68) + +// Packet: 0x011d +packetLen(0x011d, 2) + +// Packet: 0x011e +packetLen(0x011e, 3) + +// Packet: 0x011f +packetLen(0x011f, 16) + +// Packet: 0x0120 +packetLen(0x0120, 6) + +// Packet: 0x0121 +packetLen(0x0121, 14) + +// Packet: 0x0122 +packetLen(0x0122, -1) + +// Packet: 0x0123 +packetLen(0x0123, -1) + +// Packet: 0x0124 +packetLen(0x0124, 31) + +// Packet: 0x0125 +packetLen(0x0125, 8) + +// Packet: 0x0126 +packetLen(0x0126, 8) + +// Packet: 0x0127 +packetLen(0x0127, 8) + +// Packet: 0x0128 +packetLen(0x0128, 8) + +// Packet: 0x0129 +packetLen(0x0129, 8) + +// Packet: 0x012a +packetLen(0x012a, 2) + +// Packet: 0x012b +packetLen(0x012b, 2) + +// Packet: 0x012c +packetLen(0x012c, 3) + +// Packet: 0x012d +packetLen(0x012d, 4) + +// Packet: 0x012e +packetLen(0x012e, 2) + +// Packet: 0x012f +packetLen(0x012f, -1) + +// Packet: 0x0130 +packetLen(0x0130, 6) + +// Packet: 0x0131 +packetLen(0x0131, 86) + +// Packet: 0x0132 +packetLen(0x0132, 6) + +// Packet: 0x0133 +packetLen(0x0133, -1) + +// Packet: 0x0134 +packetLen(0x0134, -1) + +// Packet: 0x0135 +packetLen(0x0135, 7) + +// Packet: 0x0136 +packetLen(0x0136, -1) + +// Packet: 0x0137 +packetLen(0x0137, 6) + +// Packet: 0x0138 +packetLen(0x0138, 3) + +// Packet: 0x0139 +packetLen(0x0139, 16) + +// Packet: 0x013a +packetLen(0x013a, 4) + +// Packet: 0x013b +packetLen(0x013b, 4) + +// Packet: 0x013c +packetLen(0x013c, 4) + +// Packet: 0x013d +packetLen(0x013d, 6) + +// Packet: 0x013e +packetLen(0x013e, 24) + +// Packet: 0x013f +packetLen(0x013f, 26) + +// Packet: 0x0140 +packetLen(0x0140, 22) + +// Packet: 0x0141 +packetLen(0x0141, 14) + +// Packet: 0x0142 +packetLen(0x0142, 6) + +// Packet: 0x0143 +packetLen(0x0143, 10) + +// Packet: 0x0144 +packetLen(0x0144, 23) + +// Packet: 0x0145 +packetLen(0x0145, 19) + +// Packet: 0x0146 +packetLen(0x0146, 6) + +// Packet: 0x0147 +packetLen(0x0147, 39) + +// Packet: 0x0148 +packetLen(0x0148, 8) + +// Packet: 0x0149 +packetLen(0x0149, 9) + +// Packet: 0x014a +packetLen(0x014a, 6) + +// Packet: 0x014b +packetLen(0x014b, 27) + +// Packet: 0x014c +packetLen(0x014c, -1) + +// Packet: 0x014d +packetLen(0x014d, 2) + +// Packet: 0x014e +packetLen(0x014e, 6) + +// Packet: 0x014f +packetLen(0x014f, 6) + +// Packet: 0x0150 +packetLen(0x0150, 110) + +// Packet: 0x0151 +packetLen(0x0151, 6) + +// Packet: 0x0152 +packetLen(0x0152, -1) + +// Packet: 0x0153 +packetLen(0x0153, -1) + +// Packet: 0x0154 +packetLen(0x0154, -1) + +// Packet: 0x0155 +packetLen(0x0155, -1) + +// Packet: 0x0156 +packetLen(0x0156, -1) + +// Packet: 0x0157 +packetLen(0x0157, 6) + +// Packet: 0x0159 +packetLen(0x0159, 54) + +// Packet: 0x015a +packetLen(0x015a, 66) + +// Packet: 0x015b +packetLen(0x015b, 54) + +// Packet: 0x015c +packetLen(0x015c, 90) + +// Packet: 0x015d +packetLen(0x015d, 42) + +// Packet: 0x015e +packetLen(0x015e, 6) + +// Packet: 0x015f +packetLen(0x015f, 42) + +// Packet: 0x0160 +packetLen(0x0160, -1) + +// Packet: 0x0161 +packetLen(0x0161, -1) + +// Packet: 0x0162 +packetLen(0x0162, -1) + +// Packet: 0x0163 +packetLen(0x0163, -1) + +// Packet: 0x0164 +packetLen(0x0164, -1) + +// Packet: 0x0165 +packetLen(0x0165, 30) + +// Packet: 0x0166 +packetLen(0x0166, -1) + +// Packet: 0x0167 +packetLen(0x0167, 3) + +// Packet: 0x0168 +packetLen(0x0168, 14) + +// Packet: 0x0169 +packetLen(0x0169, 3) + +// Packet: 0x016a +packetLen(0x016a, 30) + +// Packet: 0x016b +packetLen(0x016b, 10) + +// Packet: 0x016c +packetLen(0x016c, 43) + +// Packet: 0x016d +packetLen(0x016d, 14) + +// Packet: 0x016e +packetLen(0x016e, 186) + +// Packet: 0x016f +packetLen(0x016f, 182) + +// Packet: 0x0170 +packetLen(0x0170, 14) + +// Packet: 0x0171 +packetLen(0x0171, 30) + +// Packet: 0x0172 +packetLen(0x0172, 10) + +// Packet: 0x0173 +packetLen(0x0173, 3) + +// Packet: 0x0174 +packetLen(0x0174, -1) + +// Packet: 0x0175 +packetLen(0x0175, 6) + +// Packet: 0x0176 +packetLen(0x0176, 106) + +// Packet: 0x0177 +packetLen(0x0177, -1) + +// Packet: 0x0178 +packetLen(0x0178, 4) + +// Packet: 0x0179 +packetLen(0x0179, 5) + +// Packet: 0x017a +packetLen(0x017a, 4) + +// Packet: 0x017b +packetLen(0x017b, -1) + +// Packet: 0x017c +packetLen(0x017c, 6) + +// Packet: 0x017d +packetLen(0x017d, 7) + +// Packet: 0x017e +packetLen(0x017e, -1) + +// Packet: 0x017f +packetLen(0x017f, -1) + +// Packet: 0x0180 +packetLen(0x0180, 6) + +// Packet: 0x0181 +packetLen(0x0181, 3) + +// Packet: 0x0182 +packetLen(0x0182, 106) + +// Packet: 0x0183 +packetLen(0x0183, 10) + +// Packet: 0x0184 +packetLen(0x0184, 10) + +// Packet: 0x0185 +packetLen(0x0185, 34) + +// Packet: 0x0187 +packetLen(0x0187, 6) + +// Packet: 0x0188 +packetLen(0x0188, 8) + +// Packet: 0x0189 +packetLen(0x0189, 4) + +// Packet: 0x018a +packetLen(0x018a, 4) + +// Packet: 0x018b +packetLen(0x018b, 4) + +// Packet: 0x018c +packetLen(0x018c, 29) + +// Packet: 0x018d +packetLen(0x018d, -1) + +// Packet: 0x018e +packetLen(0x018e, 18) + +// Packet: 0x018f +packetLen(0x018f, 8) + +// Packet: 0x0190 +packetLen(0x0190, 23) + +// Packet: 0x0191 +packetLen(0x0191, 27) + +// Packet: 0x0192 +packetLen(0x0192, 24) + +// Packet: 0x0193 +packetLen(0x0193, 2) + +// Packet: 0x0194 +packetLen(0x0194, 30) + +// Packet: 0x0195 +packetLen(0x0195, 102) + +// Packet: 0x0196 +packetLen(0x0196, 9) + +// Packet: 0x0197 +packetLen(0x0197, 4) + +// Packet: 0x0198 +packetLen(0x0198, 8) + +// Packet: 0x0199 +packetLen(0x0199, 4) + +// Packet: 0x019a +packetLen(0x019a, 14) + +// Packet: 0x019b +packetLen(0x019b, 10) + +// Packet: 0x019c +packetLen(0x019c, -1) + +// Packet: 0x019d +packetLen(0x019d, 6) + +// Packet: 0x019e +packetLen(0x019e, 2) + +// Packet: 0x019f +packetLen(0x019f, 6) + +// Packet: 0x01a0 +packetLen(0x01a0, 3) + +// Packet: 0x01a1 +packetLen(0x01a1, 3) + +// Packet: 0x01a2 +packetLen(0x01a2, 37) + +// Packet: 0x01a3 +packetLen(0x01a3, 7) + +// Packet: 0x01a4 +packetLen(0x01a4, 11) + +// Packet: 0x01a5 +packetLen(0x01a5, 26) + +// Packet: 0x01a6 +packetLen(0x01a6, -1) + +// Packet: 0x01a7 +packetLen(0x01a7, 4) + +// Packet: 0x01a8 +packetLen(0x01a8, 4) + +// Packet: 0x01a9 +packetLen(0x01a9, 6) + +// Packet: 0x01aa +packetLen(0x01aa, 10) + +// Packet: 0x01ab +packetLen(0x01ab, 12) + +// Packet: 0x01ac +packetLen(0x01ac, 6) + +// Packet: 0x01ad +packetLen(0x01ad, -1) + +// Packet: 0x01ae +packetLen(0x01ae, 6) + +// Packet: 0x01af +packetLen(0x01af, 4) + +// Packet: 0x01b0 +packetLen(0x01b0, 11) + +// Packet: 0x01b1 +packetLen(0x01b1, 7) + +// Packet: 0x01b2 +packetLen(0x01b2, -1) + +// Packet: 0x01b3 +packetLen(0x01b3, 67) + +// Packet: 0x01b4 +packetLen(0x01b4, 12) + +// Packet: 0x01b5 +packetLen(0x01b5, 18) + +// Packet: 0x01b6 +packetLen(0x01b6, 114) + +// Packet: 0x01b7 +packetLen(0x01b7, 6) + +// Packet: 0x01b8 +packetLen(0x01b8, 3) + +// Packet: 0x01b9 +packetLen(0x01b9, 6) + +// Packet: 0x01ba +packetLen(0x01ba, 26) + +// Packet: 0x01bb +packetLen(0x01bb, 26) + +// Packet: 0x01bc +packetLen(0x01bc, 26) + +// Packet: 0x01bd +packetLen(0x01bd, 26) + +// Packet: 0x01be +packetLen(0x01be, 2) + +// Packet: 0x01bf +packetLen(0x01bf, 3) + +// Packet: 0x01c0 +packetLen(0x01c0, 2) + +// Packet: 0x01c1 +packetLen(0x01c1, 14) + +// Packet: 0x01c2 +packetLen(0x01c2, 10) + +// Packet: 0x01c3 +packetLen(0x01c3, -1) + +// Packet: 0x01c4 +packetLen(0x01c4, 32) + +// Packet: 0x01c5 +packetLen(0x01c5, 32) + +// Packet: 0x01c6 +packetLen(0x01c6, 4) + +// Packet: 0x01c7 +packetLen(0x01c7, 2) + +// Packet: 0x01c8 +packetLen(0x01c8, 15) + +// Packet: 0x01c9 +packetLen(0x01c9, 97) + +// Packet: 0x01ca +packetLen(0x01ca, 3) + +// Packet: 0x01cb +packetLen(0x01cb, 9) + +// Packet: 0x01cc +packetLen(0x01cc, 9) + +// Packet: 0x01cd +packetLen(0x01cd, 30) + +// Packet: 0x01ce +packetLen(0x01ce, 6) + +// Packet: 0x01cf +packetLen(0x01cf, 28) + +// Packet: 0x01d0 +packetLen(0x01d0, 8) + +// Packet: 0x01d1 +packetLen(0x01d1, 14) + +// Packet: 0x01d2 +packetLen(0x01d2, 10) + +// Packet: 0x01d3 +packetLen(0x01d3, 35) + +// Packet: 0x01d4 +packetLen(0x01d4, 6) + +// Packet: 0x01d5 +packetLen(0x01d5, -1) + +// Packet: 0x01d6 +packetLen(0x01d6, 4) + +// Packet: 0x01d7 +packetLen(0x01d7, 15) + +// Packet: 0x01d8 +packetLen(0x01d8, 58) + +// Packet: 0x01d9 +packetLen(0x01d9, 57) + +// Packet: 0x01da +packetLen(0x01da, 64) + +// Packet: 0x01db +packetLen(0x01db, 2) + +// Packet: 0x01dc +packetLen(0x01dc, -1) + +// Packet: 0x01dd +packetLen(0x01dd, 47) + +// Packet: 0x01de +packetLen(0x01de, 33) + +// Packet: 0x01df +packetLen(0x01df, 6) + +// Packet: 0x01e0 +packetLen(0x01e0, 30) + +// Packet: 0x01e1 +packetLen(0x01e1, 8) + +// Packet: 0x01e2 +packetLen(0x01e2, 34) + +// Packet: 0x01e3 +packetLen(0x01e3, 14) + +// Packet: 0x01e4 +packetLen(0x01e4, 2) + +// Packet: 0x01e5 +packetLen(0x01e5, 6) + +// Packet: 0x01e6 +packetLen(0x01e6, 26) + +// Packet: 0x01e7 +packetLen(0x01e7, 2) + +// Packet: 0x01e8 +packetLen(0x01e8, 28) + +// Packet: 0x01e9 +packetLen(0x01e9, 81) + +// Packet: 0x01ea +packetLen(0x01ea, 6) + +// Packet: 0x01eb +packetLen(0x01eb, 10) + +// Packet: 0x01ec +packetLen(0x01ec, 26) + +// Packet: 0x01ed +packetLen(0x01ed, 2) + +// Packet: 0x01ee +packetLen(0x01ee, -1) + +// Packet: 0x01ef +packetLen(0x01ef, -1) + +// Packet: 0x01f0 +packetLen(0x01f0, -1) + +// Packet: 0x01f1 +packetLen(0x01f1, -1) + +// Packet: 0x01f2 +packetLen(0x01f2, 20) + +// Packet: 0x01f3 +packetLen(0x01f3, 10) + +// Packet: 0x01f4 +packetLen(0x01f4, 32) + +// Packet: 0x01f5 +packetLen(0x01f5, 9) + +// Packet: 0x01f6 +packetLen(0x01f6, 34) + +// Packet: 0x01f7 +packetLen(0x01f7, 14) + +// Packet: 0x01f8 +packetLen(0x01f8, 2) + +// Packet: 0x01f9 +packetLen(0x01f9, 6) + +// Packet: 0x01fa +packetLen(0x01fa, 48) + +// Packet: 0x01fb +packetLen(0x01fb, 56) + +// Packet: 0x01fc +packetLen(0x01fc, -1) + +// Packet: 0x01fd +packetLen(0x01fd, 25) + +// Packet: 0x01fe +packetLen(0x01fe, 5) + +// Packet: 0x01ff +packetLen(0x01ff, 10) + +// Packet: 0x0200 +packetLen(0x0200, 26) + +// Packet: 0x0201 +packetLen(0x0201, -1) + +// Packet: 0x0202 +packetLen(0x0202, 26) + +// Packet: 0x0203 +packetLen(0x0203, 10) + +// Packet: 0x0204 +packetLen(0x0204, 18) + +// Packet: 0x0205 +packetLen(0x0205, 26) + +// Packet: 0x0206 +packetLen(0x0206, 35) + +// Packet: 0x0207 +packetLen(0x0207, 34) + +// Packet: 0x0208 +packetLen(0x0208, 14) + +// Packet: 0x0209 +packetLen(0x0209, 36) + +// Packet: 0x020a +packetLen(0x020a, 10) + +// Packet: 0x020d +packetLen(0x020d, -1) + +// Packet: 0x020e +packetLen(0x020e, 32) + +// Packet: 0x020f +packetLen(0x020f, 10) + +// Packet: 0x0210 +packetLen(0x0210, 22) + +// Packet: 0x0212 +packetLen(0x0212, 26) + +// Packet: 0x0213 +packetLen(0x0213, 26) + +// Packet: 0x0214 +packetLen(0x0214, 42) + +// Packet: 0x0215 +packetLen(0x0215, 6) + +// Packet: 0x0216 +packetLen(0x0216, 6) + +// Packet: 0x0217 +packetLen(0x0217, 2) + +// Packet: 0x0218 +packetLen(0x0218, 2) + +// Packet: 0x0219 +packetLen(0x0219, 282) + +// Packet: 0x021a +packetLen(0x021a, 282) + +// Packet: 0x021b +packetLen(0x021b, 10) + +// Packet: 0x021c +packetLen(0x021c, 10) + +// Packet: 0x021d +packetLen(0x021d, 6) + +// Packet: 0x021e +packetLen(0x021e, 6) + +// Packet: 0x021f +packetLen(0x021f, 66) + +// Packet: 0x0220 +packetLen(0x0220, 10) + +// Packet: 0x0221 +packetLen(0x0221, -1) + +// Packet: 0x0222 +packetLen(0x0222, 6) + +// Packet: 0x0223 +packetLen(0x0223, 10) + +// Packet: 0x0224 +packetLen(0x0224, 10) + +// Packet: 0x0225 +packetLen(0x0225, 2) + +// Packet: 0x0226 +packetLen(0x0226, 282) + +// Packet: 0x0227 +packetLen(0x0227, 18) + +// Packet: 0x0228 +packetLen(0x0228, 18) + +// Packet: 0x0229 +packetLen(0x0229, 15) + +// Packet: 0x022a +packetLen(0x022a, 62) + +// Packet: 0x022b +packetLen(0x022b, 61) + +// Packet: 0x022c +packetLen(0x022c, 69) + +// Packet: 0x022d +packetLen(0x022d, 5) + +// Packet: 0x022e +packetLen(0x022e, 73) + +// Packet: 0x022f +packetLen(0x022f, 7) + +// Packet: 0x0230 +packetLen(0x0230, 12) + +// Packet: 0x0231 +packetLen(0x0231, 26) + +// Packet: 0x0232 +packetLen(0x0232, 9) + +// Packet: 0x0233 +packetLen(0x0233, 11) + +// Packet: 0x0234 +packetLen(0x0234, 6) + +// Packet: 0x0235 +packetLen(0x0235, -1) + +// Packet: 0x0236 +packetLen(0x0236, 10) + +// Packet: 0x0237 +packetLen(0x0237, 2) + +// Packet: 0x0238 +packetLen(0x0238, 282) + +// Packet: 0x0239 +packetLen(0x0239, 11) + +// Packet: 0x023a +packetLen(0x023a, 4) + +// Packet: 0x023b +packetLen(0x023b, 36) + +// Packet: 0x023c +packetLen(0x023c, 6) + +// Packet: 0x023d +packetLen(0x023d, 6) + +// Packet: 0x023e +packetLen(0x023e, 8) + +// Packet: 0x023f +packetLen(0x023f, 2) + +// Packet: 0x0240 +packetLen(0x0240, -1) + +// Packet: 0x0241 +packetLen(0x0241, 6) + +// Packet: 0x0242 +packetLen(0x0242, -1) + +// Packet: 0x0243 +packetLen(0x0243, 6) + +// Packet: 0x0244 +packetLen(0x0244, 6) + +// Packet: 0x0245 +packetLen(0x0245, 3) + +// Packet: 0x0246 +packetLen(0x0246, 4) + +// Packet: 0x0247 +packetLen(0x0247, 8) + +// Packet: 0x0248 +packetLen(0x0248, -1) + +// Packet: 0x0249 +packetLen(0x0249, 3) + +// Packet: 0x024a +packetLen(0x024a, 70) + +// Packet: 0x024b +packetLen(0x024b, 4) + +// Packet: 0x024c +packetLen(0x024c, 8) + +// Packet: 0x024d +packetLen(0x024d, 12) + +// Packet: 0x024e +packetLen(0x024e, 6) + +// Packet: 0x024f +packetLen(0x024f, 10) + +// Packet: 0x0250 +packetLen(0x0250, 3) + +// Packet: 0x0251 +packetLen(0x0251, 34) + +// Packet: 0x0252 +packetLen(0x0252, -1) + +// Packet: 0x0253 +packetLen(0x0253, 3) + +// Packet: 0x0254 +packetLen(0x0254, 3) + +// Packet: 0x0255 +packetLen(0x0255, 5) + +// Packet: 0x0256 +packetLen(0x0256, 5) + +// Packet: 0x0257 +packetLen(0x0257, 8) + +// Packet: 0x0258 +packetLen(0x0258, 2) + +// Packet: 0x0259 +packetLen(0x0259, 3) + +// Packet: 0x025a +packetLen(0x025a, -1) + +// Packet: 0x025b +packetLen(0x025b, 8) + +// Packet: 0x025c +packetLen(0x025c, 4) + +// Packet: 0x025d +packetLen(0x025d, 6) + +// Packet: 0x025e +packetLen(0x025e, 4) + +// Packet: 0x025f +packetLen(0x025f, 6) + +// Packet: 0x0260 +packetLen(0x0260, 6) + +// Packet: 0x0261 +packetLen(0x0261, 11) + +// Packet: 0x0262 +packetLen(0x0262, 11) + +// Packet: 0x0263 +packetLen(0x0263, 11) + +// Packet: 0x0264 +packetLen(0x0264, 20) + +// Packet: 0x0265 +packetLen(0x0265, 20) + +// Packet: 0x0266 +packetLen(0x0266, 30) + +// Packet: 0x0267 +packetLen(0x0267, 4) + +// Packet: 0x0268 +packetLen(0x0268, 4) + +// Packet: 0x0269 +packetLen(0x0269, 4) + +// Packet: 0x026a +packetLen(0x026a, 4) + +// Packet: 0x026b +packetLen(0x026b, 4) + +// Packet: 0x026c +packetLen(0x026c, 4) + +// Packet: 0x026d +packetLen(0x026d, 4) + +// Packet: 0x026f +packetLen(0x026f, 2) + +// Packet: 0x0270 +packetLen(0x0270, 2) + +// Packet: 0x0271 +packetLen(0x0271, 40) + +// Packet: 0x0272 +packetLen(0x0272, 44) + +// Packet: 0x0273 +packetLen(0x0273, 30) + +// Packet: 0x0274 +packetLen(0x0274, 8) + +// Packet: 0x0275 +packetLen(0x0275, 37) + +// Packet: 0x0276 +packetLen(0x0276, -1) + +// Packet: 0x0277 +packetLen(0x0277, 84) + +// Packet: 0x0278 +packetLen(0x0278, 2) + +// Packet: 0x0279 +packetLen(0x0279, 2) + +// Packet: 0x027a +packetLen(0x027a, -1) + +// Packet: 0x027b +packetLen(0x027b, 14) + +// Packet: 0x027c +packetLen(0x027c, 60) + +// Packet: 0x027d +packetLen(0x027d, 62) + +// Packet: 0x027e +packetLen(0x027e, -1) + +// Packet: 0x027f +packetLen(0x027f, 8) + +// Packet: 0x0280 +packetLen(0x0280, 12) + +// Packet: 0x0281 +packetLen(0x0281, 4) + +// Packet: 0x0282 +packetLen(0x0282, 284) + +// Packet: 0x0283 +packetLen(0x0283, 6) + +// Packet: 0x0284 +packetLen(0x0284, 14) + +// Packet: 0x0285 +packetLen(0x0285, 6) + +// Packet: 0x0286 +packetLen(0x0286, 4) + +// Packet: 0x0287 +packetLen(0x0287, -1) + +// Packet: 0x0288 +packetLen(0x0288, -1) + +// Packet: 0x0289 +packetLen(0x0289, 12) + +// Packet: 0x028a +packetLen(0x028a, 18) + +// Packet: 0x028b +packetLen(0x028b, -1) + +// Packet: 0x028c +packetLen(0x028c, 46) + +// Packet: 0x028d +packetLen(0x028d, 34) + +// Packet: 0x028e +packetLen(0x028e, 4) + +// Packet: 0x028f +packetLen(0x028f, 6) + +// Packet: 0x0290 +packetLen(0x0290, 4) + +// Packet: 0x0291 +packetLen(0x0291, 4) + +// Packet: 0x0292 +packetLen(0x0292, 2) + +// Packet: 0x0293 +packetLen(0x0293, 70) + +// Packet: 0x0294 +packetLen(0x0294, 10) + +// Packet: 0x0295 +packetLen(0x0295, -1) + +// Packet: 0x0296 +packetLen(0x0296, -1) + +// Packet: 0x0297 +packetLen(0x0297, -1) + +// Packet: 0x0298 +packetLen(0x0298, 10) + +// Packet: 0x0299 +packetLen(0x0299, 8) + +// Packet: 0x029a +packetLen(0x029a, 37) + +// Packet: 0x029b +packetLen(0x029b, 80) + +// Packet: 0x029c +packetLen(0x029c, 66) + +// Packet: 0x029d +packetLen(0x029d, -1) + +// Packet: 0x029e +packetLen(0x029e, 11) + +// Packet: 0x029f +packetLen(0x029f, 3) + +// Packet: 0x02a2 +packetLen(0x02a2, 8) + +// Packet: 0x02a5 +packetLen(0x02a5, 8) + +// Packet: 0x02a6 +packetLen(0x02a6, -1) + +// Packet: 0x02a7 +packetLen(0x02a7, -1) + +// Packet: 0x02aa +packetLen(0x02aa, 4) + +// Packet: 0x02ab +packetLen(0x02ab, 36) + +// Packet: 0x02ac +packetLen(0x02ac, 6) + +// Packet: 0x02ad +packetLen(0x02ad, 8) + +// Packet: 0x02b0 +packetLen(0x02b0, 85) + +// Packet: 0x02b1 +packetLen(0x02b1, -1) + +// Packet: 0x02b2 +packetLen(0x02b2, -1) + +// Packet: 0x02b3 +packetLen(0x02b3, 107) + +// Packet: 0x02b4 +packetLen(0x02b4, 6) + +// Packet: 0x02b5 +packetLen(0x02b5, -1) + +// Packet: 0x02b6 +packetLen(0x02b6, 7) + +// Packet: 0x02b7 +packetLen(0x02b7, 7) + +// Packet: 0x02b8 +packetLen(0x02b8, 32) + +// Packet: 0x02b9 +packetLen(0x02b9, 191) + +// Packet: 0x02ba +packetLen(0x02ba, 11) + +// Packet: 0x02bb +packetLen(0x02bb, 8) + +// Packet: 0x02bc +packetLen(0x02bc, 6) + +// Packet: 0x02c1 +packetLen(0x02c1, -1) + +// Packet: 0x02c2 +packetLen(0x02c2, -1) + +// Packet: 0x02c4 +packetLen(0x02c4, 26) + +// Packet: 0x02c5 +packetLen(0x02c5, 30) + +// Packet: 0x02c6 +packetLen(0x02c6, 30) + +// Packet: 0x02c7 +packetLen(0x02c7, 7) + +// Packet: 0x02c8 +packetLen(0x02c8, 3) + +// Packet: 0x02c9 +packetLen(0x02c9, 3) + +// Packet: 0x02ca +packetLen(0x02ca, 3) + +// Packet: 0x02cb +packetLen(0x02cb, 65) + +// Packet: 0x02cc +packetLen(0x02cc, 4) + +// Packet: 0x02cd +packetLen(0x02cd, 71) + +// Packet: 0x02ce +packetLen(0x02ce, 10) + +// Packet: 0x02cf +packetLen(0x02cf, 6) + +// Packet: 0x02d0 +packetLen(0x02d0, -1) + +// Packet: 0x02d1 +packetLen(0x02d1, -1) + +// Packet: 0x02d2 +packetLen(0x02d2, -1) + +// Packet: 0x02d3 +packetLen(0x02d3, 4) + +// Packet: 0x02d4 +packetLen(0x02d4, 39) + +// Packet: 0x02d5 +packetLen(0x02d5, 2) + +// Packet: 0x02d6 +packetLen(0x02d6, 6) + +// Packet: 0x02d7 +packetLen(0x02d7, -1) + +// Packet: 0x02d8 +packetLen(0x02d8, 10) + +// Packet: 0x02d9 +packetLen(0x02d9, 10) + +// Packet: 0x02da +packetLen(0x02da, 3) + +// Packet: 0x02db +packetLen(0x02db, -1) + +// Packet: 0x02dc +packetLen(0x02dc, -1) + +// Packet: 0x02dd +packetLen(0x02dd, 32) + +// Packet: 0x02de +packetLen(0x02de, 6) + +// Packet: 0x02df +packetLen(0x02df, 36) + +// Packet: 0x02e0 +packetLen(0x02e0, 34) + +// Packet: 0x02e1 +packetLen(0x02e1, 33) + +// Packet: 0x02e2 +packetLen(0x02e2, 20) + +// Packet: 0x02e3 +packetLen(0x02e3, 22) + +// Packet: 0x02e4 +packetLen(0x02e4, 11) + +// Packet: 0x02e5 +packetLen(0x02e5, 9) + +// Packet: 0x02e6 +packetLen(0x02e6, 6) + +// Packet: 0x02e7 +packetLen(0x02e7, -1) + +// Packet: 0x02e8 +packetLen(0x02e8, -1) + +// Packet: 0x02e9 +packetLen(0x02e9, -1) + +// Packet: 0x02ea +packetLen(0x02ea, -1) + +// Packet: 0x02eb +packetLen(0x02eb, 13) + +// Packet: 0x02ec +packetLen(0x02ec, 71) + +// Packet: 0x02ed +packetLen(0x02ed, 63) + +// Packet: 0x02ee +packetLen(0x02ee, 64) + +// Packet: 0x02ef +packetLen(0x02ef, 8) + +// Packet: 0x02f0 +packetLen(0x02f0, 10) + +// Packet: 0x02f1 +packetLen(0x02f1, 2) + +// Packet: 0x02f2 +packetLen(0x02f2, 2) + +// Packet: 0x02f3 +packetLen(0x02f3, -1) + +// Packet: 0x02f4 +packetLen(0x02f4, 3) + +// Packet: 0x02f5 +packetLen(0x02f5, 7) + +// Packet: 0x02f6 +packetLen(0x02f6, 7) + +// Packet: 0x035c +packetLen(0x035c, 2) + +// Packet: 0x035d +packetLen(0x035d, -1) + +// Packet: 0x035e +packetLen(0x035e, 2) + +// Packet: 0x035f +packetLen(0x035f, 5) + +// Packet: 0x0360 +packetLen(0x0360, 6) + +// Packet: 0x0361 +packetLen(0x0361, 5) + +// Packet: 0x0362 +packetLen(0x0362, 6) + +// Packet: 0x0363 +packetLen(0x0363, 6) + +// Packet: 0x0364 +packetLen(0x0364, 8) + +// Packet: 0x0365 +packetLen(0x0365, 8) + +// Packet: 0x0366 +packetLen(0x0366, 10) + +// Packet: 0x0367 +packetLen(0x0367, 31) + +// Packet: 0x0368 +packetLen(0x0368, 6) + +// Packet: 0x0369 +packetLen(0x0369, 6) + +// Packet: 0x03dd +packetLen(0x03dd, 18) + +// Packet: 0x03de +packetLen(0x03de, 18) + +// Packet: 0x0436 +packetLen(0x0436, 19) + +// Packet: 0x0437 +packetLen(0x0437, 7) + +// Packet: 0x0438 +packetLen(0x0438, 10) + +// Packet: 0x0439 +packetLen(0x0439, 8) + +// Packet: 0x043d +packetLen(0x043d, 8) + +// Packet: 0x043e +packetLen(0x043e, -1) + +// Packet: 0x043f +packetLen(0x043f, 25) + +// Packet: 0x0440 +packetLen(0x0440, 10) + +// Packet: 0x0441 +packetLen(0x0441, 4) + +// Packet: 0x0442 +packetLen(0x0442, -1) + +// Packet: 0x0443 +packetLen(0x0443, 8) + +// Packet: 0x0444 +packetLen(0x0444, -1) + +// Packet: 0x0445 +packetLen(0x0445, 12) + +// Packet: 0x0446 +packetLen(0x0446, 14) + +// Packet: 0x0447 +packetLen(0x0447, 2) + +// Packet: 0x0448 +packetLen(0x0448, -1) + +// Packet: 0x0449 +packetLen(0x0449, 4) + +// Packet: 0x044a +packetLen(0x044a, 6) + +// Packet: 0x044b +packetLen(0x044b, 2) + +// Packet: 0x07d7 +packetLen(0x07d7, 8) + +// Packet: 0x07d8 +packetLen(0x07d8, 8) + +// Packet: 0x07d9 +packetLen(0x07d9, 268) + +// Packet: 0x07da +packetLen(0x07da, 6) + +// Packet: 0x07db +packetLen(0x07db, 8) + +// Packet: 0x07dc +packetLen(0x07dc, 6) + +// Packet: 0x07dd +packetLen(0x07dd, 54) + +// Packet: 0x07de +packetLen(0x07de, 30) + +// Packet: 0x07df +packetLen(0x07df, 54) + +// Packet: 0x07e0 +packetLen(0x07e0, 58) + +// Packet: 0x07e1 +packetLen(0x07e1, 15) + +// Packet: 0x07e2 +packetLen(0x07e2, 8) + +// Packet: 0x07e3 +packetLen(0x07e3, 6) + +// Packet: 0x07e4 +packetLen(0x07e4, -1) + +// Packet: 0x07e5 +packetLen(0x07e5, 4) + +// Packet: 0x07e6 +packetLen(0x07e6, 8) + +// Packet: 0x07e7 +packetLen(0x07e7, 32) + +// Packet: 0x07e8 +packetLen(0x07e8, -1) + +// Packet: 0x07e9 +packetLen(0x07e9, 5) + +// Packet: 0x07ea +packetLen(0x07ea, 2) + +// Packet: 0x07eb +packetLen(0x07eb, -1) + +// Packet: 0x07ec +packetLen(0x07ec, 8) + +// Packet: 0x07ed +packetLen(0x07ed, 10) + +// Packet: 0x07ee +packetLen(0x07ee, 6) + +// Packet: 0x07ef +packetLen(0x07ef, 8) + +// Packet: 0x07f0 +packetLen(0x07f0, 6) + +// Packet: 0x07f1 +packetLen(0x07f1, 18) + +// Packet: 0x07f2 +packetLen(0x07f2, 8) + +// Packet: 0x07f3 +packetLen(0x07f3, 6) + +// Packet: 0x07f4 +packetLen(0x07f4, 3) + +// Packet: 0x07f5 +packetLen(0x07f5, 6) + +// Packet: 0x07f6 +packetLen(0x07f6, 14) + +// Packet: 0x07f7 +packetLen(0x07f7, -1) + +// Packet: 0x07f8 +packetLen(0x07f8, -1) + +// Packet: 0x07f9 +packetLen(0x07f9, -1) + +// Packet: 0x07fa +packetLen(0x07fa, 8) + +// Packet: 0x07fb +packetLen(0x07fb, 25) + +// Packet: 0x07fc +packetLen(0x07fc, 10) + +// Packet: 0x07fd +packetLen(0x07fd, -1) + +// Packet: 0x07fe +packetLen(0x07fe, 26) + +// Packet: 0x0800 +packetLen(0x0800, -1) + +// Packet: 0x0801 +packetLen(0x0801, -1) + +// Packet: 0x0802 +packetLen(0x0802, 18) + +// Packet: 0x0803 +packetLen(0x0803, 4) + +// Packet: 0x0804 +packetLen(0x0804, 14) + +// Packet: 0x0805 +packetLen(0x0805, -1) + +// Packet: 0x0806 +packetLen(0x0806, 2) + +// Packet: 0x0807 +packetLen(0x0807, 4) + +// Packet: 0x0808 +packetLen(0x0808, 14) + +// Packet: 0x0809 +packetLen(0x0809, 50) + +// Packet: 0x080a +packetLen(0x080a, 18) + +// Packet: 0x080b +packetLen(0x080b, 6) + +// Packet: 0x080c +packetLen(0x080c, 2) + +// Packet: 0x080d +packetLen(0x080d, 3) + +// Packet: 0x080e +packetLen(0x080e, 14) + +// Packet: 0x080f +packetLen(0x080f, 30) + +// Packet: 0x0810 +packetLen(0x0810, 3) + +// Packet: 0x0811 +packetLen(0x0811, -1) + +// Packet: 0x0812 +packetLen(0x0812, 8) + +// Packet: 0x0813 +packetLen(0x0813, -1) + +// Packet: 0x0814 +packetLen(0x0814, 86) + +// Packet: 0x0815 +packetLen(0x0815, 2) + +// Packet: 0x0816 +packetLen(0x0816, 6) + +// Packet: 0x0817 +packetLen(0x0817, 6) + +// Packet: 0x0818 +packetLen(0x0818, -1) + +// Packet: 0x0819 +packetLen(0x0819, -1) + +// Packet: 0x081a +packetLen(0x081a, 4) + +// Packet: 0x081b +packetLen(0x081b, 12) + +// Packet: 0x081c +packetLen(0x081c, 10) + +// Packet: 0x081d +packetLen(0x081d, 22) + +// Packet: 0x081e +packetLen(0x081e, 8) + +// Packet: 0x081f +packetLen(0x081f, -1) + +// Packet: 0x0820 +packetLen(0x0820, 11) + +// Packet: 0x0821 +packetLen(0x0821, 2) + +// Packet: 0x0822 +packetLen(0x0822, 9) + +// Packet: 0x0823 +packetLen(0x0823, -1) + +// Packet: 0x0824 +packetLen(0x0824, 8) + +// Packet: 0x0825 +packetLen(0x0825, -1) + +// Packet: 0x0827 +packetLen(0x0827, 6) + +// Packet: 0x0828 +packetLen(0x0828, 14) + +// Packet: 0x0829 +packetLen(0x0829, 12) + +// Packet: 0x082a +packetLen(0x082a, 10) + +// Packet: 0x082b +packetLen(0x082b, 6) + +// Packet: 0x082c +packetLen(0x082c, 10) + +// Packet: 0x082d +packetLen(0x082d, -1) + +// Packet: 0x0835 +packetLen(0x0835, -1) + +// Packet: 0x0836 +packetLen(0x0836, -1) + +// Packet: 0x0837 +packetLen(0x0837, 3) + +// Packet: 0x0838 +packetLen(0x0838, 2) + +// Packet: 0x0839 +packetLen(0x0839, 66) + +// Packet: 0x083a +packetLen(0x083a, 5) + +// Packet: 0x083b +packetLen(0x083b, 2) + +// Packet: 0x083c +packetLen(0x083c, 14) + +// Packet: 0x083d +packetLen(0x083d, 6) + +// Packet: 0x083e +packetLen(0x083e, 26) + +// Packet: 0x0840 +packetLen(0x0840, -1) + +// Packet: 0x0841 +packetLen(0x0841, 4) + +// Packet: 0x0842 +packetLen(0x0842, 6) + +// Packet: 0x0843 +packetLen(0x0843, 6) + +// Packet: 0x0844 +packetLen(0x0844, 2) + +// Packet: 0x0845 +packetLen(0x0845, 10) + +// Packet: 0x0846 +packetLen(0x0846, 4) + +// Packet: 0x0847 +packetLen(0x0847, -1) + +// Packet: 0x0848 +packetLen(0x0848, -1) + +// Packet: 0x0849 +packetLen(0x0849, 16) + +// Packet: 0x084a +packetLen(0x084a, 2) + +// Packet: 0x084b +packetLen(0x084b, 21) + +// Packet: 0x084c +packetLen(0x084c, 10) + +// Packet: 0x084d +packetLen(0x084d, 10) + +// Packet: 0x084e +packetLen(0x084e, 5) + +// Packet: 0x084f +packetLen(0x084f, 6) + +// Packet: 0x0850 +packetLen(0x0850, 7) + +// Packet: 0x0851 +packetLen(0x0851, -1) + +// Packet: 0x0852 +packetLen(0x0852, 2) + +// Packet: 0x0853 +packetLen(0x0853, -1) + +// Packet: 0x0854 +packetLen(0x0854, -1) + +// Packet: 0x0855 +packetLen(0x0855, 6) + +// Packet: 0x0856 +packetLen(0x0856, -1) + +// Packet: 0x0857 +packetLen(0x0857, -1) + +// Packet: 0x0858 +packetLen(0x0858, -1) + +// Packet: 0x0859 +packetLen(0x0859, -1) + +// Packet: 0x085a +packetLen(0x085a, 2) + +// Packet: 0x085b +packetLen(0x085b, 2) + +// Packet: 0x085c +packetLen(0x085c, 2) + +// Packet: 0x085d +packetLen(0x085d, 2) + +// Packet: 0x085e +packetLen(0x085e, 2) + +// Packet: 0x085f +packetLen(0x085f, 2) + +// Packet: 0x0860 +packetLen(0x0860, 2) + +// Packet: 0x0861 +packetLen(0x0861, 2) + +// Packet: 0x0862 +packetLen(0x0862, 2) + +// Packet: 0x0863 +packetLen(0x0863, 2) + +// Packet: 0x0864 +packetLen(0x0864, 2) + +// Packet: 0x0865 +packetLen(0x0865, 2) + +// Packet: 0x0866 +packetLen(0x0866, 2) + +// Packet: 0x0867 +packetLen(0x0867, 2) + +// Packet: 0x0868 +packetLen(0x0868, 2) + +// Packet: 0x0869 +packetLen(0x0869, 2) + +// Packet: 0x086a +packetLen(0x086a, 2) + +// Packet: 0x086b +packetLen(0x086b, 2) + +// Packet: 0x086c +packetLen(0x086c, 2) + +// Packet: 0x086d +packetLen(0x086d, 2) + +// Packet: 0x086e +packetLen(0x086e, 2) + +// Packet: 0x086f +packetLen(0x086f, 2) + +// Packet: 0x0870 +packetLen(0x0870, 2) + +// Packet: 0x0871 +packetLen(0x0871, 2) + +// Packet: 0x0872 +packetLen(0x0872, 2) + +// Packet: 0x0873 +packetLen(0x0873, 2) + +// Packet: 0x0874 +packetLen(0x0874, 2) + +// Packet: 0x0875 +packetLen(0x0875, 2) + +// Packet: 0x0876 +packetLen(0x0876, 2) + +// Packet: 0x0877 +packetLen(0x0877, 2) + +// Packet: 0x0878 +packetLen(0x0878, 2) + +// Packet: 0x0879 +packetLen(0x0879, 2) + +// Packet: 0x087a +packetLen(0x087a, 2) + +// Packet: 0x087b +packetLen(0x087b, 2) + +// Packet: 0x087c +packetLen(0x087c, 2) + +// Packet: 0x087d +packetLen(0x087d, 2) + +// Packet: 0x087e +packetLen(0x087e, 2) + +// Packet: 0x087f +packetLen(0x087f, 2) + +// Packet: 0x0880 +packetLen(0x0880, 2) + +// Packet: 0x0881 +packetLen(0x0881, 2) + +// Packet: 0x0882 +packetLen(0x0882, 2) + +// Packet: 0x0883 +packetLen(0x0883, 2) + +// Packet: 0x0884 +packetLen(0x0884, 2) + +// Packet: 0x0885 +packetLen(0x0885, 2) + +// Packet: 0x0886 +packetLen(0x0886, 2) + +// Packet: 0x0887 +packetLen(0x0887, 2) + +// Packet: 0x0888 +packetLen(0x0888, 2) + +// Packet: 0x0889 +packetLen(0x0889, 2) + +// Packet: 0x088a +packetLen(0x088a, 2) + +// Packet: 0x088b +packetLen(0x088b, 2) + +// Packet: 0x088c +packetLen(0x088c, 2) + +// Packet: 0x088d +packetLen(0x088d, 2) + +// Packet: 0x088e +packetLen(0x088e, 2) + +// Packet: 0x088f +packetLen(0x088f, 2) + +// Packet: 0x0890 +packetLen(0x0890, 2) + +// Packet: 0x0891 +packetLen(0x0891, 2) + +// Packet: 0x0892 +packetLen(0x0892, 2) + +// Packet: 0x0893 +packetLen(0x0893, 2) + +// Packet: 0x0894 +packetLen(0x0894, 2) + +// Packet: 0x0895 +packetLen(0x0895, 2) + +// Packet: 0x0896 +packetLen(0x0896, 2) + +// Packet: 0x0897 +packetLen(0x0897, 2) + +// Packet: 0x0898 +packetLen(0x0898, 2) + +// Packet: 0x0899 +packetLen(0x0899, 2) + +// Packet: 0x089a +packetLen(0x089a, 2) + +// Packet: 0x089b +packetLen(0x089b, 2) + +// Packet: 0x089c +packetLen(0x089c, 2) + +// Packet: 0x089d +packetLen(0x089d, 2) + +// Packet: 0x089e +packetLen(0x089e, 2) + +// Packet: 0x089f +packetLen(0x089f, 2) + +// Packet: 0x08a0 +packetLen(0x08a0, 2) + +// Packet: 0x08a1 +packetLen(0x08a1, 2) + +// Packet: 0x08a2 +packetLen(0x08a2, 2) + +// Packet: 0x08a3 +packetLen(0x08a3, 2) + +// Packet: 0x08a4 +packetLen(0x08a4, 2) + +// Packet: 0x08a5 +packetLen(0x08a5, 2) + +// Packet: 0x08a6 +packetLen(0x08a6, 2) + +// Packet: 0x08a7 +packetLen(0x08a7, 2) + +// Packet: 0x08a8 +packetLen(0x08a8, 2) + +// Packet: 0x08a9 +packetLen(0x08a9, 2) + +// Packet: 0x08aa +packetLen(0x08aa, 2) + +// Packet: 0x08ab +packetLen(0x08ab, 2) + +// Packet: 0x08ac +packetLen(0x08ac, 2) + +// Packet: 0x08ad +packetLen(0x08ad, 2) + +// Packet: 0x08af +packetLen(0x08af, 10) + +// Packet: 0x08b0 +packetLen(0x08b0, 17) + +// Packet: 0x08b1 +packetLen(0x08b1, -1) + +// Packet: 0x08b2 +packetLen(0x08b2, -1) + +// Packet: 0x08b3 +packetLen(0x08b3, -1) + +// Packet: 0x08b4 +packetLen(0x08b4, 2) + +// Packet: 0x08b5 +packetLen(0x08b5, 6) + +// Packet: 0x08b6 +packetLen(0x08b6, 3) + +// Packet: 0x08b8 +packetLen(0x08b8, 10) + +// Packet: 0x08b9 +packetLen(0x08b9, 12) + +// Packet: 0x08ba +packetLen(0x08ba, 10) + +// Packet: 0x08bb +packetLen(0x08bb, 8) + +// Packet: 0x08bc +packetLen(0x08bc, 10) + +// Packet: 0x08bd +packetLen(0x08bd, 8) + +// Packet: 0x08be +packetLen(0x08be, 14) + +// Packet: 0x08bf +packetLen(0x08bf, 8) + +// Packet: 0x08c0 +packetLen(0x08c0, -1) + +// Packet: 0x08c1 +packetLen(0x08c1, 2) + +// Packet: 0x08c2 +packetLen(0x08c2, 2) + +// Packet: 0x08c3 +packetLen(0x08c3, 10) + +// Packet: 0x08c4 +packetLen(0x08c4, 8) + +// Packet: 0x08c5 +packetLen(0x08c5, 6) + +// Packet: 0x08c6 +packetLen(0x08c6, 4) + +// Packet: 0x08c7 +packetLen(0x08c7, -1) + +// Packet: 0x08c8 +packetLen(0x08c8, 34) + +// Packet: 0x08c9 +packetLen(0x08c9, 2) + +// Packet: 0x08ca +packetLen(0x08ca, -1) + +// Packet: 0x08cb +packetLen(0x08cb, -1) + +// Packet: 0x08cc +packetLen(0x08cc, 109) + +// Packet: 0x08cd +packetLen(0x08cd, 10) + +// Packet: 0x08ce +packetLen(0x08ce, 2) + +// Packet: 0x08cf +packetLen(0x08cf, 10) + +// Packet: 0x08d0 +packetLen(0x08d0, 9) + +// Packet: 0x08d1 +packetLen(0x08d1, 7) + +// Packet: 0x08d2 +packetLen(0x08d2, 10) + +// Packet: 0x08d3 +packetLen(0x08d3, 10) + +// Packet: 0x08d4 +packetLen(0x08d4, 8) + +// Packet: 0x08d5 +packetLen(0x08d5, -1) + +// Packet: 0x08d6 +packetLen(0x08d6, 6) + +// Packet: 0x08d7 +packetLen(0x08d7, 28) + +// Packet: 0x08d8 +packetLen(0x08d8, 27) + +// Packet: 0x08d9 +packetLen(0x08d9, 30) + +// Packet: 0x08da +packetLen(0x08da, 26) + +// Packet: 0x08db +packetLen(0x08db, 27) + +// Packet: 0x08dc +packetLen(0x08dc, 26) + +// Packet: 0x08dd +packetLen(0x08dd, 27) + +// Packet: 0x08de +packetLen(0x08de, 27) + +// Packet: 0x08df +packetLen(0x08df, 50) + +// Packet: 0x08e0 +packetLen(0x08e0, 51) + +// Packet: 0x08e1 +packetLen(0x08e1, 51) + +// Packet: 0x08e2 +packetLen(0x08e2, 27) + +// Packet: 0x08e3 +packetLen(0x08e3, 157) + +// Packet: 0x08e4 +packetLen(0x08e4, 6) + +// Packet: 0x08fc +packetLen(0x08fc, 30) + +// Packet: 0x08fd +packetLen(0x08fd, 6) + +// Packet: 0x08fe +packetLen(0x08fe, -1) + +// Packet: 0x08ff +packetLen(0x08ff, 24) + +// Packet: 0x0900 +packetLen(0x0900, -1) + +// Packet: 0x0901 +packetLen(0x0901, -1) + +// Packet: 0x0902 +packetLen(0x0902, -1) + +// Packet: 0x0903 +packetLen(0x0903, -1) + +// Packet: 0x0904 +packetLen(0x0904, -1) + +// Packet: 0x0905 +packetLen(0x0905, -1) + +// Packet: 0x0906 +packetLen(0x0906, -1) + +// Packet: 0x0907 +packetLen(0x0907, 5) + +// Packet: 0x0908 +packetLen(0x0908, 5) + +// Packet: 0x090a +packetLen(0x090a, 26) + +// Packet: 0x090d +packetLen(0x090d, -1) + +// Packet: 0x090e +packetLen(0x090e, 2) + +// Packet: 0x090f +packetLen(0x090f, -1) + +// Packet: 0x0910 +packetLen(0x0910, 10) + +// Packet: 0x0911 +packetLen(0x0911, 30) + +// Packet: 0x0912 +packetLen(0x0912, 10) + +// Packet: 0x0913 +packetLen(0x0913, 30) + +// Packet: 0x0914 +packetLen(0x0914, -1) + +// Packet: 0x0915 +packetLen(0x0915, -1) + +// Packet: 0x0916 +packetLen(0x0916, 26) + +// Packet: 0x0917 +packetLen(0x0917, 2) + +// Packet: 0x0918 +packetLen(0x0918, 2) + +// Packet: 0x0919 +packetLen(0x0919, 2) + +// Packet: 0x091a +packetLen(0x091a, 2) + +// Packet: 0x091b +packetLen(0x091b, 2) + +// Packet: 0x091c +packetLen(0x091c, 2) + +// Packet: 0x091d +packetLen(0x091d, 2) + +// Packet: 0x091e +packetLen(0x091e, 2) + +// Packet: 0x091f +packetLen(0x091f, 2) + +// Packet: 0x0920 +packetLen(0x0920, 2) + +// Packet: 0x0921 +packetLen(0x0921, 2) + +// Packet: 0x0922 +packetLen(0x0922, 2) + +// Packet: 0x0923 +packetLen(0x0923, 2) + +// Packet: 0x0924 +packetLen(0x0924, 2) + +// Packet: 0x0925 +packetLen(0x0925, 2) + +// Packet: 0x0926 +packetLen(0x0926, 2) + +// Packet: 0x0927 +packetLen(0x0927, 2) + +// Packet: 0x0928 +packetLen(0x0928, 2) + +// Packet: 0x0929 +packetLen(0x0929, 2) + +// Packet: 0x092a +packetLen(0x092a, 2) + +// Packet: 0x092b +packetLen(0x092b, 2) + +// Packet: 0x092c +packetLen(0x092c, 2) + +// Packet: 0x092d +packetLen(0x092d, 2) + +// Packet: 0x092e +packetLen(0x092e, 2) + +// Packet: 0x092f +packetLen(0x092f, 2) + +// Packet: 0x0930 +packetLen(0x0930, 2) + +// Packet: 0x0931 +packetLen(0x0931, 2) + +// Packet: 0x0932 +packetLen(0x0932, 2) + +// Packet: 0x0933 +packetLen(0x0933, 2) + +// Packet: 0x0934 +packetLen(0x0934, 2) + +// Packet: 0x0935 +packetLen(0x0935, 2) + +// Packet: 0x0936 +packetLen(0x0936, 2) + +// Packet: 0x0937 +packetLen(0x0937, 2) + +// Packet: 0x0938 +packetLen(0x0938, 2) + +// Packet: 0x0939 +packetLen(0x0939, 2) + +// Packet: 0x093a +packetLen(0x093a, 2) + +// Packet: 0x093b +packetLen(0x093b, 2) + +// Packet: 0x093c +packetLen(0x093c, 2) + +// Packet: 0x093d +packetLen(0x093d, 2) + +// Packet: 0x093e +packetLen(0x093e, 2) + +// Packet: 0x093f +packetLen(0x093f, 2) + +// Packet: 0x0940 +packetLen(0x0940, 2) + +// Packet: 0x0941 +packetLen(0x0941, 2) + +// Packet: 0x0942 +packetLen(0x0942, 2) + +// Packet: 0x0943 +packetLen(0x0943, 2) + +// Packet: 0x0944 +packetLen(0x0944, 2) + +// Packet: 0x0945 +packetLen(0x0945, 2) + +// Packet: 0x0946 +packetLen(0x0946, 2) + +// Packet: 0x0947 +packetLen(0x0947, 2) + +// Packet: 0x0948 +packetLen(0x0948, 2) + +// Packet: 0x0949 +packetLen(0x0949, 2) + +// Packet: 0x094a +packetLen(0x094a, 2) + +// Packet: 0x094b +packetLen(0x094b, 2) + +// Packet: 0x094c +packetLen(0x094c, 2) + +// Packet: 0x094d +packetLen(0x094d, 2) + +// Packet: 0x094e +packetLen(0x094e, 2) + +// Packet: 0x094f +packetLen(0x094f, 2) + +// Packet: 0x0950 +packetLen(0x0950, 2) + +// Packet: 0x0951 +packetLen(0x0951, 2) + +// Packet: 0x0952 +packetLen(0x0952, 2) + +// Packet: 0x0953 +packetLen(0x0953, 2) + +// Packet: 0x0954 +packetLen(0x0954, 2) + +// Packet: 0x0955 +packetLen(0x0955, 2) + +// Packet: 0x0956 +packetLen(0x0956, 2) + +// Packet: 0x0957 +packetLen(0x0957, 2) + +// Packet: 0x0958 +packetLen(0x0958, 2) + +// Packet: 0x0959 +packetLen(0x0959, 2) + +// Packet: 0x095a +packetLen(0x095a, 2) + +// Packet: 0x095b +packetLen(0x095b, 2) + +// Packet: 0x095c +packetLen(0x095c, 2) + +// Packet: 0x095d +packetLen(0x095d, 2) + +// Packet: 0x095e +packetLen(0x095e, 2) + +// Packet: 0x095f +packetLen(0x095f, 2) + +// Packet: 0x0960 +packetLen(0x0960, 2) + +// Packet: 0x0961 +packetLen(0x0961, 2) + +// Packet: 0x0962 +packetLen(0x0962, 2) + +// Packet: 0x0963 +packetLen(0x0963, 2) + +// Packet: 0x0964 +packetLen(0x0964, 2) + +// Packet: 0x0965 +packetLen(0x0965, 2) + +// Packet: 0x0966 +packetLen(0x0966, 2) + +// Packet: 0x0967 +packetLen(0x0967, 2) + +// Packet: 0x0968 +packetLen(0x0968, 2) + +// Packet: 0x0969 +packetLen(0x0969, 2) + +// Packet: 0x096a +packetLen(0x096a, 2) + +// Packet: 0x096b +packetLen(0x096b, 4) + +// Packet: 0x096c +packetLen(0x096c, 6) + +// Packet: 0x096d +packetLen(0x096d, -1) + +// Packet: 0x096e +packetLen(0x096e, -1) + +// Packet: 0x096f +packetLen(0x096f, 7) + +// Packet: 0x0970 +packetLen(0x0970, 31) + +// Packet: 0x0971 +packetLen(0x0971, 6) + +// Packet: 0x0972 +packetLen(0x0972, -1) + +// Packet: 0x0973 +packetLen(0x0973, 7) + +// Packet: 0x0974 +packetLen(0x0974, 2) + +// Packet: 0x0975 +packetLen(0x0975, -1) + +// Packet: 0x0976 +packetLen(0x0976, -1) + +// Packet: 0x0977 +packetLen(0x0977, 14) + +// Packet: 0x0978 +packetLen(0x0978, 6) + +// Packet: 0x0979 +packetLen(0x0979, 50) + +// Packet: 0x097a +packetLen(0x097a, -1) + +// Packet: 0x097b +packetLen(0x097b, -1) + +// Packet: 0x097c +packetLen(0x097c, 4) + +// Packet: 0x097d +packetLen(0x097d, 288) + +// Packet: 0x097e +packetLen(0x097e, 12) + +// Packet: 0x097f +packetLen(0x097f, -1) + +// Packet: 0x0980 +packetLen(0x0980, 7) + +// Packet: 0x0981 +packetLen(0x0981, -1) + +// Packet: 0x0982 +packetLen(0x0982, 7) + +// Packet: 0x0983 +packetLen(0x0983, 29) + +// Packet: 0x0984 +packetLen(0x0984, 28) + +// Packet: 0x0985 +packetLen(0x0985, -1) + +// Packet: 0x0986 +packetLen(0x0986, 10) + +// Packet: 0x0987 +packetLen(0x0987, -1) + +// Packet: 0x0988 +packetLen(0x0988, 6) + +// Packet: 0x0989 +packetLen(0x0989, 2) + +// Packet: 0x098a +packetLen(0x098a, -1) + +// Packet: 0x098b +packetLen(0x098b, 2) + +// Packet: 0x098c +packetLen(0x098c, 4) + +// Packet: 0x098d +packetLen(0x098d, -1) + +// Packet: 0x098e +packetLen(0x098e, -1) + +// Packet: 0x098f +packetLen(0x098f, -1) + +// Packet: 0x0990 +packetLen(0x0990, 41) + +// Packet: 0x0991 +packetLen(0x0991, -1) + +// Packet: 0x0992 +packetLen(0x0992, -1) + +// Packet: 0x0993 +packetLen(0x0993, -1) + +// Packet: 0x0994 +packetLen(0x0994, -1) + +// Packet: 0x0995 +packetLen(0x0995, -1) + +// Packet: 0x0996 +packetLen(0x0996, -1) + +// Packet: 0x0997 +packetLen(0x0997, -1) + +// Packet: 0x0998 +packetLen(0x0998, 8) + +// Packet: 0x0999 +packetLen(0x0999, 11) + +// Packet: 0x099a +packetLen(0x099a, 9) + +// Packet: 0x099b +packetLen(0x099b, 8) + +// Packet: 0x099c +packetLen(0x099c, 6) + +// Packet: 0x099d +packetLen(0x099d, -1) + +// Packet: 0x099e +packetLen(0x099e, 12) + +// Packet: 0x099f +packetLen(0x099f, -1) + +// Packet: 0x09a0 +packetLen(0x09a0, 6) + +// Packet: 0x09a1 +packetLen(0x09a1, 2) + +// Packet: 0x09a2 +packetLen(0x09a2, 6) + +// Packet: 0x09a3 +packetLen(0x09a3, -1) + +// Packet: 0x09a4 +packetLen(0x09a4, 18) + +// Packet: 0x09a5 +packetLen(0x09a5, 7) + +// Packet: 0x09a6 +packetLen(0x09a6, 12) + +// Packet: 0x09a7 +packetLen(0x09a7, 10) + +// Packet: 0x09a8 +packetLen(0x09a8, 16) + +// Packet: 0x09a9 +packetLen(0x09a9, 10) + +// Packet: 0x09aa +packetLen(0x09aa, 16) + +// Packet: 0x09ab +packetLen(0x09ab, 6) + +// Packet: 0x09ac +packetLen(0x09ac, -1) + +// Packet: 0x09ad +packetLen(0x09ad, 12) + +// Packet: 0x09ae +packetLen(0x09ae, 19) + +// Packet: 0x09af +packetLen(0x09af, 4) + +// Packet: 0x09b0 +packetLen(0x09b0, 10) + +// Packet: 0x09b1 +packetLen(0x09b1, 4) + +// Packet: 0x09b2 +packetLen(0x09b2, 10) + +// Packet: 0x09b3 +packetLen(0x09b3, 6) + +// Packet: 0x09b4 +packetLen(0x09b4, 6) + +// Packet: 0x09b5 +packetLen(0x09b5, 2) + +// Packet: 0x09b6 +packetLen(0x09b6, 6) + +// Packet: 0x09b7 +packetLen(0x09b7, 4) + +// Packet: 0x09b8 +packetLen(0x09b8, 6) + +// Packet: 0x09b9 +packetLen(0x09b9, 4) + +// Packet: 0x09ba +packetLen(0x09ba, 2) + +// Packet: 0x09bb +packetLen(0x09bb, 6) + +// Packet: 0x09bc +packetLen(0x09bc, 6) + +// Packet: 0x09bd +packetLen(0x09bd, 2) + +// Packet: 0x09be +packetLen(0x09be, 2) + +// Packet: 0x09bf +packetLen(0x09bf, 4) + +// Packet: 0x09c1 +packetLen(0x09c1, 10) + +// Packet: 0x09c2 +packetLen(0x09c2, -1) + +// Packet: 0x09c3 +packetLen(0x09c3, 10) + +// Packet: 0x09c4 +packetLen(0x09c4, 10) + +// Packet: 0x09c5 +packetLen(0x09c5, 1042) + +// Packet: 0x09c6 +packetLen(0x09c6, -1) + +// Packet: 0x09c7 +packetLen(0x09c7, 18) + +// Packet: 0x09c8 +packetLen(0x09c8, -1) + +// Packet: 0x09c9 +packetLen(0x09c9, -1) + +// Packet: 0x09ca +packetLen(0x09ca, -1) + +// Packet: 0x09cb +packetLen(0x09cb, 17) + +// Packet: 0x09cc +packetLen(0x09cc, -1) + +// Packet: 0x09cd +packetLen(0x09cd, 8) + +// Packet: 0x09ce +packetLen(0x09ce, 102) + +// Packet: 0x09cf +packetLen(0x09cf, -1) + +// Packet: 0x09d0 +packetLen(0x09d0, -1) + +// Packet: 0x09d1 +packetLen(0x09d1, 14) + +// Packet: 0x09d2 +packetLen(0x09d2, -1) + +// Packet: 0x09d3 +packetLen(0x09d3, -1) + +// Packet: 0x09d4 +packetLen(0x09d4, 2) + +// Packet: 0x09d5 +packetLen(0x09d5, -1) + +// Packet: 0x09d6 +packetLen(0x09d6, -1) + +// Packet: 0x09d7 +packetLen(0x09d7, -1) + +// Packet: 0x09d8 +packetLen(0x09d8, 2) + +// Packet: 0x09d9 +packetLen(0x09d9, 4) + +// Packet: 0x09da +packetLen(0x09da, -1) + +// Packet: 0x09db +packetLen(0x09db, -1) + +// Packet: 0x09dc +packetLen(0x09dc, -1) + +// Packet: 0x09dd +packetLen(0x09dd, -1) + +// Packet: 0x09de +packetLen(0x09de, -1) + +// Packet: 0x09df +packetLen(0x09df, 7) + +// Packet: 0x09e0 +packetLen(0x09e0, -1) + +// Packet: 0x09e1 +packetLen(0x09e1, 8) + +// Packet: 0x09e2 +packetLen(0x09e2, 8) + +// Packet: 0x09e3 +packetLen(0x09e3, 8) + +// Packet: 0x09e4 +packetLen(0x09e4, 8) + +// Packet: 0x09e5 +packetLen(0x09e5, 18) + +// Packet: 0x09e6 +packetLen(0x09e6, 24) + +// Packet: 0x09e7 +packetLen(0x09e7, 3) + +// Packet: 0x09e8 +packetLen(0x09e8, 11) + +// Packet: 0x09e9 +packetLen(0x09e9, 2) + +// Packet: 0x09ea +packetLen(0x09ea, 11) + +// Packet: 0x09eb +packetLen(0x09eb, -1) + +// Packet: 0x09ec +packetLen(0x09ec, -1) + +// Packet: 0x09ed +packetLen(0x09ed, 3) + +// Packet: 0x09ee +packetLen(0x09ee, 11) + +// Packet: 0x09ef +packetLen(0x09ef, 11) + +// Packet: 0x09f0 +packetLen(0x09f0, -1) + +// Packet: 0x09f1 +packetLen(0x09f1, 11) + +// Packet: 0x09f2 +packetLen(0x09f2, 12) + +// Packet: 0x09f3 +packetLen(0x09f3, 11) + +// Packet: 0x09f4 +packetLen(0x09f4, 12) + +// Packet: 0x09f5 +packetLen(0x09f5, 11) + +// Packet: 0x09f6 +packetLen(0x09f6, 11) + +// Packet: 0x09f7 +packetLen(0x09f7, 77) + +// Packet: 0x09f8 +packetLen(0x09f8, -1) + +// Packet: 0x09f9 +packetLen(0x09f9, 143) + +// Packet: 0x09fa +packetLen(0x09fa, -1) + +// Packet: 0x09fb +packetLen(0x09fb, -1) + +// Packet: 0x09fc +packetLen(0x09fc, 6) + +// Packet: 0x09fd +packetLen(0x09fd, -1) + +// Packet: 0x09fe +packetLen(0x09fe, -1) + +// Packet: 0x09ff +packetLen(0x09ff, -1) + +// Packet: 0x0a00 +packetLen(0x0a00, 269) + +// Packet: 0x0a01 +packetLen(0x0a01, 3) + +// Packet: 0x0a02 +packetLen(0x0a02, 4) + +// Packet: 0x0a03 +packetLen(0x0a03, 2) + +// Packet: 0x0a04 +packetLen(0x0a04, 6) + +// Packet: 0x0a05 +packetLen(0x0a05, 63) + +// Packet: 0x0a06 +packetLen(0x0a06, 6) + +// Packet: 0x0a07 +packetLen(0x0a07, 9) + +// Packet: 0x0a08 +packetLen(0x0a08, 26) + +// Packet: 0x0a09 +packetLen(0x0a09, 55) + +// Packet: 0x0a0a +packetLen(0x0a0a, 57) + +// Packet: 0x0a0b +packetLen(0x0a0b, 57) + +// Packet: 0x0a0c +packetLen(0x0a0c, 66) + +// Packet: 0x0a0d +packetLen(0x0a0d, -1) + +// Packet: 0x0a0e +packetLen(0x0a0e, 14) + +// Packet: 0x0a0f +packetLen(0x0a0f, -1) + +// Packet: 0x0a10 +packetLen(0x0a10, -1) + +// Packet: 0x0a11 +packetLen(0x0a11, -1) + +// Packet: 0x0a12 +packetLen(0x0a12, 27) + +// Packet: 0x0a13 +packetLen(0x0a13, 26) + +// Packet: 0x0a14 +packetLen(0x0a14, 10) + +// Packet: 0x0a15 +packetLen(0x0a15, 12) + +// Packet: 0x0a16 +packetLen(0x0a16, 26) + +// Packet: 0x0a17 +packetLen(0x0a17, 6) + +// Packet: 0x0a18 +packetLen(0x0a18, 14) + +// Packet: 0x0a19 +packetLen(0x0a19, 2) + +// Packet: 0x0a1a +packetLen(0x0a1a, 25) + +// Packet: 0x0a1b +packetLen(0x0a1b, 2) + +// Packet: 0x0a1c +packetLen(0x0a1c, -1) + +// Packet: 0x0a1d +packetLen(0x0a1d, 2) + +// Packet: 0x0a1e +packetLen(0x0a1e, 3) + +// Packet: 0x0a1f +packetLen(0x0a1f, 2) + +// Packet: 0x0a20 +packetLen(0x0a20, 23) + +// Packet: 0x0a21 +packetLen(0x0a21, 3) + +// Packet: 0x0a22 +packetLen(0x0a22, 7) + +// Packet: 0x0a23 +packetLen(0x0a23, -1) + +// Packet: 0x0a24 +packetLen(0x0a24, 66) + +// Packet: 0x0a25 +packetLen(0x0a25, 6) + +// Packet: 0x0a26 +packetLen(0x0a26, 7) + +// Packet: 0x0a27 +packetLen(0x0a27, 8) + +// Packet: 0x0a28 +packetLen(0x0a28, 3) + +// Packet: 0x0a29 +packetLen(0x0a29, 6) + +// Packet: 0x0a2a +packetLen(0x0a2a, 6) + +// Packet: 0x0a2b +packetLen(0x0a2b, 14) + +// Packet: 0x0a2c +packetLen(0x0a2c, 12) + +// Packet: 0x0a2d +packetLen(0x0a2d, -1) + +// Packet: 0x0a2e +packetLen(0x0a2e, 6) + +// Packet: 0x0a2f +packetLen(0x0a2f, 7) + +// Packet: 0x0a30 +packetLen(0x0a30, 106) + +// Packet: 0x0a31 +packetLen(0x0a31, -1) + +// Packet: 0x0a32 +packetLen(0x0a32, 2) + +// Packet: 0x0a33 +packetLen(0x0a33, 7) + +// Packet: 0x0a34 +packetLen(0x0a34, 6) + +// Packet: 0x0a35 +packetLen(0x0a35, 4) + +// Packet: 0x0a36 +packetLen(0x0a36, 7) + +// Packet: 0x0a37 +packetLen(0x0a37, 69) + +// Packet: 0x0a38 +packetLen(0x0a38, 3) + +// Packet: 0x0a39 +packetLen(0x0a39, 36) + +// Packet: 0x0a3a +packetLen(0x0a3a, 12) + +// Packet: 0x0a3b +packetLen(0x0a3b, -1) + +// Packet: 0x0a3c +packetLen(0x0a3c, -1) + +// Packet: 0x0a3d +packetLen(0x0a3d, 20) + +// Packet: 0x0a3e +packetLen(0x0a3e, -1) + +// Packet: 0x0a3f +packetLen(0x0a3f, 11) + +// Packet: 0x0a40 +packetLen(0x0a40, 11) + +// Packet: 0x0a41 +packetLen(0x0a41, 18) + +// Packet: 0x0a42 +packetLen(0x0a42, 43) + +// Packet: 0x0a43 +packetLen(0x0a43, 85) + +// Packet: 0x0a44 +packetLen(0x0a44, -1) + +// Packet: 0x0a46 +packetLen(0x0a46, 14) + +// Packet: 0x0a47 +packetLen(0x0a47, 3) + +// Packet: 0x0a48 +packetLen(0x0a48, 2) + +// Packet: 0x0a49 +packetLen(0x0a49, 22) + +// Packet: 0x0a4a +packetLen(0x0a4a, 6) + +// Packet: 0x0a4b +packetLen(0x0a4b, 22) + +// Packet: 0x0a4c +packetLen(0x0a4c, 28) + +// Packet: 0x0a4d +packetLen(0x0a4d, -1) + +// Packet: 0x0a4e +packetLen(0x0a4e, 6) + +// Packet: 0x0a4f +packetLen(0x0a4f, -1) + +// Packet: 0x0a50 +packetLen(0x0a50, 4) + +// Packet: 0x0a51 +packetLen(0x0a51, 34) + +// Packet: 0x0a52 +packetLen(0x0a52, 20) + +// Packet: 0x0a53 +packetLen(0x0a53, 10) + +// Packet: 0x0a54 +packetLen(0x0a54, -1) + +// Packet: 0x0a55 +packetLen(0x0a55, 2) + +// Packet: 0x0a56 +packetLen(0x0a56, 6) + +// Packet: 0x0a57 +packetLen(0x0a57, 6) + +// Packet: 0x0a58 +packetLen(0x0a58, 8) + +// Packet: 0x0a59 +packetLen(0x0a59, -1) + +// Packet: 0x0a5a +packetLen(0x0a5a, 2) + +// Packet: 0x0a5b +packetLen(0x0a5b, 7) + +// Packet: 0x0a5c +packetLen(0x0a5c, 18) + +// Packet: 0x0a5d +packetLen(0x0a5d, 6) + +// Packet: 0x0a68 +packetLen(0x0a68, 3) + +// Packet: 0x0a69 +packetLen(0x0a69, 6) + +// Packet: 0x0a6a +packetLen(0x0a6a, 12) + +// Packet: 0x0a6b +packetLen(0x0a6b, -1) + +// Packet: 0x0a6c +packetLen(0x0a6c, 7) + +// Packet: 0x0a6d +packetLen(0x0a6d, -1) + +// Packet: 0x0a6e +packetLen(0x0a6e, -1) + +// Packet: 0x0a6f +packetLen(0x0a6f, -1) + +// Packet: 0x0a70 +packetLen(0x0a70, 2) + +// Packet: 0x0a71 +packetLen(0x0a71, -1) + +// Packet: 0x0a72 +packetLen(0x0a72, 61) + +// Packet: 0x0a73 +packetLen(0x0a73, 2) + +// Packet: 0x0a74 +packetLen(0x0a74, 8) + +// Packet: 0x0a76 +packetLen(0x0a76, 80) + +// Packet: 0x0a77 +packetLen(0x0a77, 15) + +// Packet: 0x0a78 +packetLen(0x0a78, 15) + +// Packet: 0x0a79 +packetLen(0x0a79, -1) + +// Packet: 0x0a7b +packetLen(0x0a7b, -1) + +// Packet: 0x0a7c +packetLen(0x0a7c, -1) + +// Packet: 0x0a7d +packetLen(0x0a7d, -1) + +// Packet: 0x0a7e +packetLen(0x0a7e, -1) + +// Packet: 0x0a7f +packetLen(0x0a7f, -1) + +// Packet: 0x0a80 +packetLen(0x0a80, 6) + +// Packet: 0x0a81 +packetLen(0x0a81, 4) + +// Packet: 0x0a82 +packetLen(0x0a82, 46) + +// Packet: 0x0a83 +packetLen(0x0a83, 46) + +// Packet: 0x0a84 +packetLen(0x0a84, 94) + +// Packet: 0x0a85 +packetLen(0x0a85, 82) + +// Packet: 0x0a86 +packetLen(0x0a86, -1) + +// Packet: 0x0a87 +packetLen(0x0a87, -1) + +// Packet: 0x0a88 +packetLen(0x0a88, 2) + +// Packet: 0x0a89 +packetLen(0x0a89, 61) + +// Packet: 0x0a8a +packetLen(0x0a8a, 6) + +// Packet: 0x0a8b +packetLen(0x0a8b, 2) + +// Packet: 0x0a8c +packetLen(0x0a8c, 2) + +// Packet: 0x0a8d +packetLen(0x0a8d, -1) + +// Packet: 0x0a8e +packetLen(0x0a8e, 2) + +// Packet: 0x0a8f +packetLen(0x0a8f, 2) + +// Packet: 0x0a90 +packetLen(0x0a90, 3) + +// Packet: 0x0a91 +packetLen(0x0a91, -1) + +// Packet: 0x0a92 +packetLen(0x0a92, -1) + +// Packet: 0x0a93 +packetLen(0x0a93, 3) + +// Packet: 0x0a94 +packetLen(0x0a94, 2) + +// Packet: 0x0a95 +packetLen(0x0a95, 4) + +// Packet: 0x0a96 +packetLen(0x0a96, 61) + +// Packet: 0x0a97 +packetLen(0x0a97, 8) + +// Packet: 0x0a98 +packetLen(0x0a98, 10) + +// Packet: 0x0a99 +packetLen(0x0a99, 4) + +// Packet: 0x0a9a +packetLen(0x0a9a, 10) + +// Packet: 0x0a9b +packetLen(0x0a9b, -1) + +// Packet: 0x0a9c +packetLen(0x0a9c, 2) + +// Packet: 0x0a9d +packetLen(0x0a9d, 4) + +// Packet: 0x0a9e +packetLen(0x0a9e, 2) + +// Packet: 0x0a9f +packetLen(0x0a9f, 2) + +// Packet: 0x0aa0 +packetLen(0x0aa0, 2) + +// Packet: 0x0aa1 +packetLen(0x0aa1, 4) + +// Packet: 0x0aa2 +packetLen(0x0aa2, -1) + +// Packet: 0x0aa3 +packetLen(0x0aa3, 9) + +// Packet: 0x0aa4 +packetLen(0x0aa4, 2) + +// Packet: 0x0aa5 +packetLen(0x0aa5, -1) + +// Packet: 0x0aa6 +packetLen(0x0aa6, 36) + +// Packet: 0x0aa7 +packetLen(0x0aa7, 6) + +// Packet: 0x0aa8 +packetLen(0x0aa8, 5) + +// Packet: 0x0aa9 +packetLen(0x0aa9, -1) + +// Packet: 0x0aaa +packetLen(0x0aaa, -1) + +// Packet: 0x0aab +packetLen(0x0aab, -1) + +// Packet: 0x0aac +packetLen(0x0aac, 69) + +// Packet: 0x0aad +packetLen(0x0aad, 51) + +// Packet: 0x0aae +packetLen(0x0aae, 2) + +// Packet: 0x0aaf +packetLen(0x0aaf, 6) + +// Packet: 0x0ab0 +packetLen(0x0ab0, 6) + +// Packet: 0x0ab1 +packetLen(0x0ab1, 14) + +// Packet: 0x0ab2 +packetLen(0x0ab2, 7) + +// Packet: 0x0ab3 +packetLen(0x0ab3, 19) + +// Packet: 0x0ab4 +packetLen(0x0ab4, 6) + +// Packet: 0x0ab5 +packetLen(0x0ab5, 2) + +// Packet: 0x0ab6 +packetLen(0x0ab6, 8) + +// Packet: 0x0ab7 +packetLen(0x0ab7, 4) + +// Packet: 0x0ab8 +packetLen(0x0ab8, 2) + +// Packet: 0x0ab9 +packetLen(0x0ab9, 47) + +// Packet: 0x0aba +packetLen(0x0aba, 2) + +// Packet: 0x0abb +packetLen(0x0abb, 2) + +// Packet: 0x0abc +packetLen(0x0abc, -1) + +// Packet: 0x0abd +packetLen(0x0abd, 10) + +// Packet: 0x0abe +packetLen(0x0abe, -1) + +// Packet: 0x0abf +packetLen(0x0abf, -1) + +// Packet: 0x0ac0 +packetLen(0x0ac0, 26) + +// Packet: 0x0ac1 +packetLen(0x0ac1, 26) + +// Packet: 0x0ac2 +packetLen(0x0ac2, -1) + +// Packet: 0x0ac3 +packetLen(0x0ac3, 2) + +// Packet: 0x0ac4 +packetLen(0x0ac4, -1) + +// Packet: 0x0ac5 +packetLen(0x0ac5, 156) + +// Packet: 0x0ac6 +packetLen(0x0ac6, 156) + +// Packet: 0x0ac7 +packetLen(0x0ac7, 156) + +// Packet: 0x0ac8 +packetLen(0x0ac8, 2) + +// Packet: 0x0ac9 +packetLen(0x0ac9, -1) + +// Packet: 0x0aca +packetLen(0x0aca, 3) + +// Packet: 0x0acb +packetLen(0x0acb, 12) + +// Packet: 0x0acc +packetLen(0x0acc, 18) + +// Packet: 0x0acd +packetLen(0x0acd, 23) + +// Packet: 0x0ace +packetLen(0x0ace, 4) + +// Packet: 0x0acf +packetLen(0x0acf, 68) + +// Packet: 0x0ad0 +packetLen(0x0ad0, 11) + +// Packet: 0x0ad1 +packetLen(0x0ad1, -1) + +// Packet: 0x0ad2 +packetLen(0x0ad2, 30) + +// Packet: 0x0ad3 +packetLen(0x0ad3, -1) + +// Packet: 0x0ad4 +packetLen(0x0ad4, -1) + +// Packet: 0x0ad5 +packetLen(0x0ad5, 2) + +// Packet: 0x0ad6 +packetLen(0x0ad6, 2) + +// Packet: 0x0ad7 +packetLen(0x0ad7, 8) + +// Packet: 0x0ad8 +packetLen(0x0ad8, 8) + +// Packet: 0x0ad9 +packetLen(0x0ad9, -1) + +// Packet: 0x0ada +packetLen(0x0ada, 32) + +// Packet: 0x0adb +packetLen(0x0adb, -1) + +// Packet: 0x0adc +packetLen(0x0adc, 6) + +// Packet: 0x0add +packetLen(0x0add, 24) + +// Packet: 0x0ade +packetLen(0x0ade, 6) + +// Packet: 0x0adf +packetLen(0x0adf, 58) + +// Packet: 0x0ae0 +packetLen(0x0ae0, 30) + +// Packet: 0x0ae1 +packetLen(0x0ae1, 28) + +// Packet: 0x0ae2 +packetLen(0x0ae2, 7) + +// Packet: 0x0ae3 +packetLen(0x0ae3, -1) + +// Packet: 0x0ae4 +packetLen(0x0ae4, 89) + +// Packet: 0x0ae5 +packetLen(0x0ae5, -1) + +// Packet: 0x0ae6 +packetLen(0x0ae6, 10) + +// Packet: 0x0ae7 +packetLen(0x0ae7, 38) + +// Packet: 0x0ae8 +packetLen(0x0ae8, 2) + +// Packet: 0x0ae9 +packetLen(0x0ae9, 13) + +// Packet: 0x0aec +packetLen(0x0aec, 2) + +// Packet: 0x0aed +packetLen(0x0aed, 2) + +// Packet: 0x0aee +packetLen(0x0aee, 2) + +// Packet: 0x0aef +packetLen(0x0aef, 2) + +// Packet: 0x0af0 +packetLen(0x0af0, 10) + +// Packet: 0x0af2 +packetLen(0x0af2, 40) + +// Packet: 0x0af3 +packetLen(0x0af3, -1) + +// Packet: 0x0af4 +packetLen(0x0af4, 11) + +// Packet: 0x0af5 +packetLen(0x0af5, 3) + +// Packet: 0x0af6 +packetLen(0x0af6, 88) + +// Packet: 0x0af7 +packetLen(0x0af7, 32) + +// Packet: 0x0af8 +packetLen(0x0af8, 11) + +// Packet: 0x0af9 +packetLen(0x0af9, 6) + +// Packet: 0x0afa +packetLen(0x0afa, 58) + +// Packet: 0x0afb +packetLen(0x0afb, -1) + +// Packet: 0x0afc +packetLen(0x0afc, 16) + +// Packet: 0x0afd +packetLen(0x0afd, -1) + +// Packet: 0x0afe +packetLen(0x0afe, -1) + +// Packet: 0x0aff +packetLen(0x0aff, -1) + +// Packet: 0x0b00 +packetLen(0x0b00, 8) + +// Packet: 0x0b01 +packetLen(0x0b01, 56) + +// Packet: 0x0b02 +packetLen(0x0b02, 26) + +// Packet: 0x0b03 +packetLen(0x0b03, -1) + +// Packet: 0x0b04 +packetLen(0x0b04, 90) + +// Packet: 0x0b05 +packetLen(0x0b05, 63) + +// Packet: 0x0b07 +packetLen(0x0b07, -1) + +// Packet: 0x0b08 +packetLen(0x0b08, -1) + +// Packet: 0x0b09 +packetLen(0x0b09, -1) + +// Packet: 0x0b0a +packetLen(0x0b0a, -1) + +// Packet: 0x0b0b +packetLen(0x0b0b, 4) + +// Packet: 0x0b0c +packetLen(0x0b0c, 155) + +// Packet: 0x0b0d +packetLen(0x0b0d, 10) + +// Packet: 0x0b0e +packetLen(0x0b0e, -1) + +// Packet: 0x0b0f +packetLen(0x0b0f, -1) + +// Packet: 0x0b10 +packetLen(0x0b10, 10) + +// Packet: 0x0b11 +packetLen(0x0b11, 4) + +// Packet: 0x0b12 +packetLen(0x0b12, 2) + +// Packet: 0x0b13 +packetLen(0x0b13, 48) + +// Packet: 0x0b14 +packetLen(0x0b14, 2) + +// Packet: 0x0b15 +packetLen(0x0b15, 7) + +// Packet: 0x0b16 +packetLen(0x0b16, 2) + +// Packet: 0x0b17 +packetLen(0x0b17, 3) + +// Packet: 0x0b18 +packetLen(0x0b18, 4) + +// Packet: 0x0b19 +packetLen(0x0b19, 2) + +// Packet: 0x0b1a +packetLen(0x0b1a, 29) + +// Packet: 0x0b1b +packetLen(0x0b1b, 2) + +// Packet: 0x0b1c +packetLen(0x0b1c, 2) + +// Packet: 0x0b1d +packetLen(0x0b1d, 2) + +// Packet: 0x0b1e +packetLen(0x0b1e, 14) + +// Packet: 0x0b1f +packetLen(0x0b1f, 14) + +// Packet: 0x0b20 +packetLen(0x0b20, 271) + +// Packet: 0x0b21 +packetLen(0x0b21, 13) + +// Packet: 0x0b22 +packetLen(0x0b22, 5) + +// Packet: 0x0b23 +packetLen(0x0b23, 6) + +// Packet: 0x0b24 +packetLen(0x0b24, 6) + +// Packet: 0x0b25 +packetLen(0x0b25, 6) + +// Packet: 0x0b27 +packetLen(0x0b27, -1) + +// Packet: 0x0b28 +packetLen(0x0b28, 3) + +// Packet: 0x0b2b +packetLen(0x0b2b, 11) + +// Packet: 0x0b2c +packetLen(0x0b2c, 3) + +// Packet: 0x0b2d +packetLen(0x0b2d, 11) + +// Packet: 0x0b2e +packetLen(0x0b2e, 4) + +// Packet: 0x0b2f +packetLen(0x0b2f, 73) + +// Packet: 0x0b30 +packetLen(0x0b30, -1) + +// Packet: 0x0b31 +packetLen(0x0b31, 17) + +// Packet: 0x0b32 +packetLen(0x0b32, -1) + +// Packet: 0x0b33 +packetLen(0x0b33, 17) + +// Packet: 0x0b34 +packetLen(0x0b34, 50) + +// Packet: 0x0b35 +packetLen(0x0b35, 3) + +// Packet: 0x0b36 +packetLen(0x0b36, -1) + +// Packet: 0x0b37 +packetLen(0x0b37, -1) + +// Packet: 0x0b39 +packetLen(0x0b39, -1) + +// Packet: 0x0b3c +packetLen(0x0b3c, 4) + +// Packet: 0x0b3d +packetLen(0x0b3d, -1) + +// Packet: 0x0b3e +packetLen(0x0b3e, -1) + +// Packet: 0x0b3f +packetLen(0x0b3f, 64) + +// Packet: 0x0b40 +packetLen(0x0b40, -1) + +// Packet: 0x0b41 +packetLen(0x0b41, 70) + +// Packet: 0x0b42 +packetLen(0x0b42, 62) + +// Packet: 0x0b43 +packetLen(0x0b43, 48) + +// Packet: 0x0b44 +packetLen(0x0b44, 58) + +// Packet: 0x0b45 +packetLen(0x0b45, 58) + +// Packet: 0x0b46 +packetLen(0x0b46, 10) + +// Packet: 0x0b47 +packetLen(0x0b47, 14) + +// Packet: 0x0b48 +packetLen(0x0b48, 18) + +// Packet: 0x0b49 +packetLen(0x0b49, 4) + +// Packet: 0x0b4a +packetLen(0x0b4a, 6) + +// Packet: 0x0b4b +packetLen(0x0b4b, 4) + +// Packet: 0x0b4c +packetLen(0x0b4c, 2) + +// Packet: 0x0b4d +packetLen(0x0b4d, -1) + +// Packet: 0x0b4e +packetLen(0x0b4e, -1) + +// Packet: 0x0b4f +packetLen(0x0b4f, 2) + +// Packet: 0x0b50 +packetLen(0x0b50, 2) + +// Packet: 0x0b51 +packetLen(0x0b51, 2) + +// Packet: 0x0b52 +packetLen(0x0b52, 2) + +// Packet: 0x0b53 +packetLen(0x0b53, 52) + +// Packet: 0x0b54 +packetLen(0x0b54, 8) + +// Packet: 0x0b55 +packetLen(0x0b55, -1) + +// Packet: 0x0b56 +packetLen(0x0b56, -1) + +// Packet: 0x0b57 +packetLen(0x0b57, -1) + +// Packet: 0x0b58 +packetLen(0x0b58, 2) + +// Packet: 0x0b59 +packetLen(0x0b59, 4) + +// Packet: 0x0b5a +packetLen(0x0b5a, -1) + +// Packet: 0x0b5b +packetLen(0x0b5b, 14) + +// Packet: 0x0b5c +packetLen(0x0b5c, 2) + +// Packet: 0x0b5d +packetLen(0x0b5d, 10) + +// Packet: 0x0b5e +packetLen(0x0b5e, 33) + +// Packet: 0x0b5f +packetLen(0x0b5f, -1) + +// Packet: 0x0b60 +packetLen(0x0b60, -1) + +// Packet: 0x0b61 +packetLen(0x0b61, -1) + +// Packet: 0x0b62 +packetLen(0x0b62, -1) + +// Packet: 0x0b63 +packetLen(0x0b63, -1) + +// Packet: 0x0b64 +packetLen(0x0b64, -1) + +// Packet: 0x0b65 +packetLen(0x0b65, -1) + +// Packet: 0x0b66 +packetLen(0x0b66, 26) + +// Packet: 0x0b67 +packetLen(0x0b67, 33) + +// Packet: 0x0b68 +packetLen(0x0b68, 12) + +// Packet: 0x0b69 +packetLen(0x0b69, 18) + +// Packet: 0x0b6a +packetLen(0x0b6a, -1) + +// Packet: 0x0b6b +packetLen(0x0b6b, 14) + +// Packet: 0x0b6c +packetLen(0x0b6c, 12) + +// Packet: 0x0b6d +packetLen(0x0b6d, 6) + +// Packet: 0x0b6e +packetLen(0x0b6e, 14) + + +#endif /* COMMON_PACKETS2020_LEN_RE_H */ diff --git a/src/common/packets/packets_len_ad.h b/src/common/packets/packets_len_ad.h index adfe65a76..60382a8b8 100644 --- a/src/common/packets/packets_len_ad.h +++ b/src/common/packets/packets_len_ad.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2019 Hercules Dev Team - * Copyright (C) 2019 Andrei Karas (4144) + * Copyright (C) 2019-2020 Hercules Dev Team + * Copyright (C) 2019-2020 Andrei Karas (4144) * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/common/packets/packets_len_main.h b/src/common/packets/packets_len_main.h index 49711994d..365b0af6f 100644 --- a/src/common/packets/packets_len_main.h +++ b/src/common/packets/packets_len_main.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2019 Hercules Dev Team - * Copyright (C) 2019 Andrei Karas (4144) + * Copyright (C) 2018-2020 Hercules Dev Team + * Copyright (C) 2018-2020 Andrei Karas (4144) * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -24,7 +24,9 @@ /* This file is autogenerated, please do not commit manual changes */ -#if PACKETVER >= 20190000 +#if PACKETVER >= 20200000 +#include "common/packets/packets2020_len_main.h" +#elif PACKETVER >= 20190000 #include "common/packets/packets2019_len_main.h" #elif PACKETVER >= 20180000 #include "common/packets/packets2018_len_main.h" diff --git a/src/common/packets/packets_len_re.h b/src/common/packets/packets_len_re.h index 506a1ef80..302381722 100644 --- a/src/common/packets/packets_len_re.h +++ b/src/common/packets/packets_len_re.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2019 Hercules Dev Team - * Copyright (C) 2019 Andrei Karas (4144) + * Copyright (C) 2018-2020 Hercules Dev Team + * Copyright (C) 2018-2020 Andrei Karas (4144) * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -24,7 +24,9 @@ /* This file is autogenerated, please do not commit manual changes */ -#if PACKETVER >= 20190000 +#if PACKETVER >= 20200000 +#include "common/packets/packets2020_len_re.h" +#elif PACKETVER >= 20190000 #include "common/packets/packets2019_len_re.h" #elif PACKETVER >= 20180000 #include "common/packets/packets2018_len_re.h" diff --git a/src/common/packets/packets_len_sak.h b/src/common/packets/packets_len_sak.h index e359ae1d2..1a39b2fcf 100644 --- a/src/common/packets/packets_len_sak.h +++ b/src/common/packets/packets_len_sak.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2019 Hercules Dev Team - * Copyright (C) 2019 Andrei Karas (4144) + * Copyright (C) 2019-2020 Hercules Dev Team + * Copyright (C) 2019-2020 Andrei Karas (4144) * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/common/packets/packets_len_zero.h b/src/common/packets/packets_len_zero.h index 10295cac2..1385c80ee 100644 --- a/src/common/packets/packets_len_zero.h +++ b/src/common/packets/packets_len_zero.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2018-2019 Hercules Dev Team - * Copyright (C) 2018-2019 Andrei Karas (4144) + * Copyright (C) 2018-2020 Hercules Dev Team + * Copyright (C) 2018-2020 Andrei Karas (4144) * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/common/packets_len.h b/src/common/packets_len.h index 02f63ae0d..f0ec0273f 100644 --- a/src/common/packets_len.h +++ b/src/common/packets_len.h @@ -2,7 +2,7 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team + * Copyright (C) 2012-2020 Hercules Dev Team * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/common/packetsstatic_len.h b/src/common/packetsstatic_len.h index 730516c27..79aad47bc 100644 --- a/src/common/packetsstatic_len.h +++ b/src/common/packetsstatic_len.h @@ -2,7 +2,7 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2013-2018 Hercules Dev Team + * Copyright (C) 2013-2020 Hercules Dev Team * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -32,6 +32,10 @@ #define DEFINE_PACKET_ID(name, id) \ enum { HEADER_##name = id }; +#define CHECK_PACKET_HEADER(name, id) \ + STATIC_ASSERT((int32)(PACKET_LEN_##id) == -1 || sizeof(struct PACKET_##name) == \ + (size_t)PACKET_LEN_##id, "Wrong size PACKET_"#name); \ + #define packetLen(id, len) PACKET_LEN_##id = (len), enum packet_lengths { #include "common/packets_len.h" diff --git a/src/common/random.c b/src/common/random.c index 9bbe4f86c..263c541b9 100644 --- a/src/common/random.c +++ b/src/common/random.c @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/common/random.h b/src/common/random.h index 70f019678..acfa36166 100644 --- a/src/common/random.h +++ b/src/common/random.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/common/showmsg.c b/src/common/showmsg.c index 32d1e7610..11ba80158 100644 --- a/src/common/showmsg.c +++ b/src/common/showmsg.c @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/common/showmsg.h b/src/common/showmsg.h index ace155ee8..e5bca564e 100644 --- a/src/common/showmsg.h +++ b/src/common/showmsg.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/common/socket.c b/src/common/socket.c index 8ee4f06e2..74d54dde8 100644 --- a/src/common/socket.c +++ b/src/common/socket.c @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/common/socket.h b/src/common/socket.h index b20b0b07e..5bb0762a8 100644 --- a/src/common/socket.h +++ b/src/common/socket.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/common/spinlock.h b/src/common/spinlock.h index 97818ef82..f011d703e 100644 --- a/src/common/spinlock.h +++ b/src/common/spinlock.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) rAthena Project (www.rathena.org) + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) rAthena Project (www.rathena.org) * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/common/sql.c b/src/common/sql.c index 0b5b7fa07..bd00619eb 100644 --- a/src/common/sql.c +++ b/src/common/sql.c @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -94,6 +94,9 @@ static struct Sql *Sql_Malloc(void) { my_bool reconnect = 1; mysql_options(&self->handle, MYSQL_OPT_RECONNECT, &reconnect); +#ifdef WIN32 + mysql_optionsv(&self->handle, MYSQL_PLUGIN_DIR, MARIADB_PLUGINDIR); +#endif } return self; } diff --git a/src/common/sql.h b/src/common/sql.h index 147b56c0c..73e437957 100644 --- a/src/common/sql.h +++ b/src/common/sql.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/common/strlib.c b/src/common/strlib.c index ddb1eb78a..deccbc119 100644 --- a/src/common/strlib.c +++ b/src/common/strlib.c @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/common/strlib.h b/src/common/strlib.h index 006bbd14b..3aabc7287 100644 --- a/src/common/strlib.h +++ b/src/common/strlib.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/common/sysinfo.c b/src/common/sysinfo.c index e3977f440..9791c8369 100644 --- a/src/common/sysinfo.c +++ b/src/common/sysinfo.c @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2013-2019 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2013-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/common/sysinfo.h b/src/common/sysinfo.h index 2a391bfa4..d81a1c6e8 100644 --- a/src/common/sysinfo.h +++ b/src/common/sysinfo.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2013-2015 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2013-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/common/thread.c b/src/common/thread.c index 605153011..1b7e351e3 100644 --- a/src/common/thread.c +++ b/src/common/thread.c @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) rAthena Project (www.rathena.org) + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) rAthena Project (www.rathena.org) * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/common/thread.h b/src/common/thread.h index 3f1b8d022..1aba44c15 100644 --- a/src/common/thread.h +++ b/src/common/thread.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) rAthena Project (www.rathena.org) + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) rAthena Project (www.rathena.org) * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/common/timer.c b/src/common/timer.c index d5f9c83d1..107bfc54e 100644 --- a/src/common/timer.c +++ b/src/common/timer.c @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/common/timer.h b/src/common/timer.h index 85edd611b..6f60ea804 100644 --- a/src/common/timer.h +++ b/src/common/timer.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/common/utils.c b/src/common/utils.c index 238ebe65d..48ce539b6 100644 --- a/src/common/utils.c +++ b/src/common/utils.c @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/common/utils.h b/src/common/utils.h index 81234c843..a0590db7f 100644 --- a/src/common/utils.h +++ b/src/common/utils.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/common/winapi.h b/src/common/winapi.h index 5dc46d615..e9a42fd65 100644 --- a/src/common/winapi.h +++ b/src/common/winapi.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/config/classes/general.h b/src/config/classes/general.h index ad42fefb4..d1a8b0a16 100644 --- a/src/config/classes/general.h +++ b/src/config/classes/general.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/config/const.h b/src/config/const.h index df8c07b67..45e98e3f8 100644 --- a/src/config/const.h +++ b/src/config/const.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/config/core.h b/src/config/core.h index a22d47324..b091e6dee 100644 --- a/src/config/core.h +++ b/src/config/core.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/config/renewal.h b/src/config/renewal.h index 6c45abc0e..3163a4134 100644 --- a/src/config/renewal.h +++ b/src/config/renewal.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/config/secure.h b/src/config/secure.h index f262852e4..fd05b4a49 100644 --- a/src/config/secure.h +++ b/src/config/secure.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/login/HPMlogin.c b/src/login/HPMlogin.c index 304db5501..ac891f515 100644 --- a/src/login/HPMlogin.c +++ b/src/login/HPMlogin.c @@ -2,7 +2,7 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2014-2018 Hercules Dev Team + * Copyright (C) 2014-2020 Hercules Dev Team * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/login/HPMlogin.h b/src/login/HPMlogin.h index e16edb6b8..1530b9fdc 100644 --- a/src/login/HPMlogin.h +++ b/src/login/HPMlogin.h @@ -2,7 +2,7 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2014-2018 Hercules Dev Team + * Copyright (C) 2014-2020 Hercules Dev Team * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/login/Makefile.in b/src/login/Makefile.in index 5e0a04a81..464b33e56 100644 --- a/src/login/Makefile.in +++ b/src/login/Makefile.in @@ -1,8 +1,8 @@ # This file is part of Hercules. # http://herc.ws - http://github.com/HerculesWS/Hercules # -# Copyright (C) 2012-2018 Hercules Dev Team -# Copyright (C) Athena Dev Teams +# Copyright (C) 2012-2020 Hercules Dev Team +# Copyright (C) Athena Dev Teams # # Hercules is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/src/login/account.c b/src/login/account.c index 783cf85ea..3632c257a 100644 --- a/src/login/account.c +++ b/src/login/account.c @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/login/account.h b/src/login/account.h index 312bb85c5..712b91ed6 100644 --- a/src/login/account.h +++ b/src/login/account.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/login/ipban.c b/src/login/ipban.c index 32ee1a19b..e5bf853d6 100644 --- a/src/login/ipban.c +++ b/src/login/ipban.c @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/login/ipban.h b/src/login/ipban.h index ac502b50d..87b48135f 100644 --- a/src/login/ipban.h +++ b/src/login/ipban.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/login/lclif.c b/src/login/lclif.c index 97871922d..f99011de9 100644 --- a/src/login/lclif.c +++ b/src/login/lclif.c @@ -2,7 +2,7 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2016 Hercules Dev Team + * Copyright (C) 2016-2020 Hercules Dev Team * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/login/lclif.h b/src/login/lclif.h index 26c061367..2abcb8455 100644 --- a/src/login/lclif.h +++ b/src/login/lclif.h @@ -2,7 +2,7 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2016 Hercules Dev Team + * Copyright (C) 2016-2020 Hercules Dev Team * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/login/lclif.p.h b/src/login/lclif.p.h index cc9805ea8..72abe34ae 100644 --- a/src/login/lclif.p.h +++ b/src/login/lclif.p.h @@ -2,7 +2,7 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2016 Hercules Dev Team + * Copyright (C) 2016-2020 Hercules Dev Team * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/login/login.c b/src/login/login.c index 580f79ebb..4201a8b4e 100644 --- a/src/login/login.c +++ b/src/login/login.c @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/login/login.h b/src/login/login.h index 7f74057c6..0f5a87b9e 100644 --- a/src/login/login.h +++ b/src/login/login.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/login/loginlog.c b/src/login/loginlog.c index 19f269ab5..2589c9a1c 100644 --- a/src/login/loginlog.c +++ b/src/login/loginlog.c @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/login/loginlog.h b/src/login/loginlog.h index 0fcbae568..eb683da53 100644 --- a/src/login/loginlog.h +++ b/src/login/loginlog.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/login/packets_ac_struct.h b/src/login/packets_ac_struct.h index c9fb04f26..bdd31308a 100644 --- a/src/login/packets_ac_struct.h +++ b/src/login/packets_ac_struct.h @@ -2,7 +2,7 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2016-2018 Hercules Dev Team + * Copyright (C) 2016-2020 Hercules Dev Team * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/login/packets_ca_struct.h b/src/login/packets_ca_struct.h index 0828c7293..6b9360086 100644 --- a/src/login/packets_ca_struct.h +++ b/src/login/packets_ca_struct.h @@ -2,7 +2,7 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2016-2018 Hercules Dev Team + * Copyright (C) 2016-2020 Hercules Dev Team * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/map/HPMmap.c b/src/map/HPMmap.c index e89f47c12..42c7b3c5f 100644 --- a/src/map/HPMmap.c +++ b/src/map/HPMmap.c @@ -2,7 +2,7 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2013-2015 Hercules Dev Team + * Copyright (C) 2013-2020 Hercules Dev Team * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/map/HPMmap.h b/src/map/HPMmap.h index a9d2a454e..52ab36cce 100644 --- a/src/map/HPMmap.h +++ b/src/map/HPMmap.h @@ -2,7 +2,7 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2013-2015 Hercules Dev Team + * Copyright (C) 2013-2020 Hercules Dev Team * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/map/Makefile.in b/src/map/Makefile.in index f851de756..6dbebb5ad 100644 --- a/src/map/Makefile.in +++ b/src/map/Makefile.in @@ -1,8 +1,8 @@ # This file is part of Hercules. # http://herc.ws - http://github.com/HerculesWS/Hercules # -# Copyright (C) 2012-2018 Hercules Dev Team -# Copyright (C) Athena Dev Teams +# Copyright (C) 2012-2020 Hercules Dev Team +# Copyright (C) Athena Dev Teams # # Hercules is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/src/map/achievement.c b/src/map/achievement.c index 5215526a9..e6a9ae3be 100644 --- a/src/map/achievement.c +++ b/src/map/achievement.c @@ -2,7 +2,7 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * -* Copyright (C) 2017 Hercules Dev Team +* Copyright (C) 2017-2020 Hercules Dev Team * Copyright (C) Smokexyz * Copyright (C) Dastgir * diff --git a/src/map/achievement.h b/src/map/achievement.h index de5eaa060..dd80f7a23 100644 --- a/src/map/achievement.h +++ b/src/map/achievement.h @@ -2,7 +2,7 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * -* Copyright (C) 2018 Hercules Dev Team +* Copyright (C) 2018-2020 Hercules Dev Team * Copyright (C) Smokexyz * * Hercules is free software: you can redistribute it and/or modify diff --git a/src/map/atcommand.c b/src/map/atcommand.c index 3684c1d9f..3cd26079d 100644 --- a/src/map/atcommand.c +++ b/src/map/atcommand.c @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -8300,6 +8300,15 @@ ACMD(feelreset) return true; } +// Reset hatred targets [Wolfie] +ACMD(hatereset) +{ + pc->resethate(sd); + clif->message(fd, msg_fd(fd, 979)); // Reset 'Hatred' targets. + + return true; +} + /*========================================== * AUCTION SYSTEM *------------------------------------------*/ @@ -10201,6 +10210,7 @@ static void atcommand_basecommands(void) ACMD_DEF(homshuffle), ACMD_DEF(showmobs), ACMD_DEF(feelreset), + ACMD_DEF(hatereset), ACMD_DEF(auction), ACMD_DEF(mail), ACMD_DEF2("noks", ksprotection), diff --git a/src/map/atcommand.h b/src/map/atcommand.h index f1da2760a..f3b1be51b 100644 --- a/src/map/atcommand.h +++ b/src/map/atcommand.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/map/battle.c b/src/map/battle.c index 2b1b34d1a..0b88f17c9 100644 --- a/src/map/battle.c +++ b/src/map/battle.c @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -4661,13 +4661,17 @@ static struct Damage battle_calc_weapon_attack(struct block_list *src, struct bl { short cri = sstatus->cri; if (sd != NULL) { + // Racial crit bonuses are affected by katar's crit bonus. + if (battle_config.show_katar_crit_bonus && sd->weapontype == W_KATAR) + cri += sd->critaddrace[tstatus->race] * 2; + else + cri += sd->critaddrace[tstatus->race]; + // if show_katar_crit_bonus is enabled, it already done the calculation in status.c if (!battle_config.show_katar_crit_bonus && sd->weapontype == W_KATAR) { cri <<= 1; } - cri+= sd->critaddrace[tstatus->race]; - if (flag.arrow) { cri += sd->bonus.arrow_cri; } diff --git a/src/map/battle.h b/src/map/battle.h index dd6265b1e..2e710f7f8 100644 --- a/src/map/battle.h +++ b/src/map/battle.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/map/battleground.c b/src/map/battleground.c index e0d2e8003..7a9d54266 100644 --- a/src/map/battleground.c +++ b/src/map/battleground.c @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/map/battleground.h b/src/map/battleground.h index 4f6e5507e..b567dddd4 100644 --- a/src/map/battleground.h +++ b/src/map/battleground.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/map/buyingstore.c b/src/map/buyingstore.c index 8cac65775..2c2fc13ae 100644 --- a/src/map/buyingstore.c +++ b/src/map/buyingstore.c @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/map/buyingstore.h b/src/map/buyingstore.h index 63762f321..a35167fbc 100644 --- a/src/map/buyingstore.h +++ b/src/map/buyingstore.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/map/channel.c b/src/map/channel.c index c87e425eb..43e903fc9 100644 --- a/src/map/channel.c +++ b/src/map/channel.c @@ -2,7 +2,7 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2013-2015 Hercules Dev Team + * Copyright (C) 2013-2020 Hercules Dev Team * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/map/channel.h b/src/map/channel.h index c56227c66..8f91b0777 100644 --- a/src/map/channel.h +++ b/src/map/channel.h @@ -2,7 +2,7 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2013-2015 Hercules Dev Team + * Copyright (C) 2013-2020 Hercules Dev Team * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/map/chat.c b/src/map/chat.c index b650ff029..097fbdca4 100644 --- a/src/map/chat.c +++ b/src/map/chat.c @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/map/chat.h b/src/map/chat.h index 9bea51a82..6c571c62e 100644 --- a/src/map/chat.h +++ b/src/map/chat.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/map/chrif.c b/src/map/chrif.c index ddc106d0c..b131907e0 100644 --- a/src/map/chrif.c +++ b/src/map/chrif.c @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/map/chrif.h b/src/map/chrif.h index 78910d24b..e2e82c6cb 100644 --- a/src/map/chrif.h +++ b/src/map/chrif.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/map/clan.c b/src/map/clan.c index 3d5c70eb1..041ba1d6d 100644 --- a/src/map/clan.c +++ b/src/map/clan.c @@ -2,7 +2,7 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2017 Hercules Dev Team + * Copyright (C) 2017-2020 Hercules Dev Team * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/map/clan.h b/src/map/clan.h index 15ed52680..95ea8565c 100644 --- a/src/map/clan.h +++ b/src/map/clan.h @@ -2,7 +2,7 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2017 Hercules Dev Team + * Copyright (C) 2017-2020 Hercules Dev Team * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/map/clif.c b/src/map/clif.c index b9ca44dec..3dff01523 100644 --- a/src/map/clif.c +++ b/src/map/clif.c @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -9087,21 +9087,44 @@ static void clif_specialeffect_single(struct block_list *bl, int type, int fd) /// @see doc/effect_list.txt /// num data: /// effect-dependent value -static void clif_specialeffect_value(struct block_list *bl, int effect_id, int num, send_target target) -{ - uint8 buf[14]; - - WBUFW(buf,0) = 0x284; - WBUFL(buf,2) = bl->id; - WBUFL(buf,6) = effect_id; - WBUFL(buf,10) = num; +static void clif_specialeffect_value(struct block_list *bl, int effect_id, uint64 num, send_target target) +{ +#if PACKETVER_MAIN_NUM >= 20060911 || PACKETVER_AD_NUM >= 20060911 || PACKETVER_SAK_NUM >= 20060911 || defined(PACKETVER_RE) || defined(PACKETVER_ZERO) + struct PACKET_ZC_NOTIFY_EFFECT3 packet; + packet.packetType = HEADER_ZC_NOTIFY_EFFECT3; + packet.aid = bl->id; + packet.effectId = effect_id; +#if PACKETVER >= 20191127 + packet.num = num; +#else + packet.num = (uint32)num; +#endif - clif->send(buf, packet_len(0x284), bl, target); + clif->send(&packet, sizeof(struct PACKET_ZC_NOTIFY_EFFECT3), bl, target); if (clif->isdisguised(bl)) { - WBUFL(buf,2) = -bl->id; - clif->send(buf, packet_len(0x284), bl, SELF); + packet.aid = -bl->id; + clif->send(&packet, sizeof(struct PACKET_ZC_NOTIFY_EFFECT3), bl, SELF); } +#endif +} + +static void clif_specialeffect_value_single(struct block_list *bl, int effect_id, uint64 num, int fd) +{ +#if PACKETVER_MAIN_NUM >= 20060911 || defined(PACKETVER_RE) || defined(PACKETVER_ZERO) + WFIFOHEAD(fd, sizeof(struct PACKET_ZC_NOTIFY_EFFECT3)); + + struct PACKET_ZC_NOTIFY_EFFECT3 *packet = WFIFOP(fd, 0); + packet->packetType = HEADER_ZC_NOTIFY_EFFECT3; + packet->aid = bl->id; + packet->effectId = effect_id; +#if PACKETVER >= 20191127 + packet->num = num; +#else + packet->num = (uint32)num; +#endif + WFIFOSET(fd, sizeof(struct PACKET_ZC_NOTIFY_EFFECT3)); +#endif } /// Remove special effects (ZC_REMOVE_EFFECT). @@ -9315,6 +9338,8 @@ static void clif_refresh(struct map_session_data *sd) mail->clear(sd); + clif->loadConfirm(sd); + if (clif->isdisguised(&sd->bl)) {/* refresh-da */ short disguise = sd->disguise; pc->disguise(sd, -1); @@ -11442,7 +11467,9 @@ static void clif_parse_ActionRequest_sub(struct map_session_data *sd, int action { struct npc_data *nd = map->id2nd(target_id); if (nd != NULL) { - npc->click(sd, nd); + if (sd->block_action.npc == 0) { // *pcblock script command + npc->click(sd, nd); + } return; } @@ -11917,7 +11944,7 @@ static void clif_parse_NpcClicked(int fd, struct map_session_data *sd) clif->clearunit_area(&sd->bl,CLR_DEAD); return; } - if (sd->npc_id || sd->state.workinprogress & 2) { + if (sd->npc_id > 0 || (sd->state.workinprogress & 2) == 2 || sd->block_action.npc == 1) { // *pcblock script command #if PACKETVER >= 20110308 clif->msgtable(sd, MSG_BUSY); #else @@ -16864,7 +16891,7 @@ static void clif_parse_Mail_getattach(int fd, struct map_session_data *sd) if( sd->mail.inbox.msg[i].zeny < 1 && (sd->mail.inbox.msg[i].item.nameid < 1 || sd->mail.inbox.msg[i].item.amount < 1) ) return; - if( sd->mail.inbox.msg[i].zeny + sd->status.zeny > MAX_ZENY ) { + if( sd->mail.inbox.msg[i].zeny > MAX_ZENY - sd->status.zeny ) { clif->mail_getattachment(fd, 1); return; } @@ -19957,32 +19984,65 @@ static void clif_parse_dull(int fd, struct map_session_data *sd) return; } -static void clif_parse_CashShopOpen(int fd, struct map_session_data *sd) __attribute__((nonnull (2))); -static void clif_parse_CashShopOpen(int fd, struct map_session_data *sd) +static void clif_parse_cashShopOpen1(int fd, struct map_session_data *sd) __attribute__((nonnull (2))); +static void clif_parse_cashShopOpen1(int fd, struct map_session_data *sd) { if (sd->state.trading || pc_isdead(sd) || pc_isvending(sd)) return; if (map->list[sd->bl.m].flag.nocashshop) { - clif->messagecolor_self(fd, COLOR_RED, msg_fd(fd,1489)); //Cash Shop is disabled in this map + clif->messagecolor_self(fd, COLOR_RED, msg_fd(fd, 1489)); //Cash Shop is disabled in this map return; } - WFIFOHEAD(fd, 10); - WFIFOW(fd, 0) = 0x845; - WFIFOL(fd, 2) = sd->cashPoints; //[Ryuuzaki] - switched positions to reflect proper values - WFIFOL(fd, 6) = sd->kafraPoints; - WFIFOSET(fd, 10); + clif->cashShopOpen(fd, sd, 0); } -static void clif_parse_CashShopClose(int fd, struct map_session_data *sd) __attribute__((nonnull (2))); -static void clif_parse_CashShopClose(int fd, struct map_session_data *sd) +static void clif_parse_cashShopLimitedReq(int fd, struct map_session_data *sd) __attribute__((nonnull (2))); +static void clif_parse_cashShopLimitedReq(int fd, struct map_session_data *sd) +{ +} + +static void clif_parse_cashShopOpen2(int fd, struct map_session_data *sd) __attribute__((nonnull (2))); +static void clif_parse_cashShopOpen2(int fd, struct map_session_data *sd) +{ + if (sd->state.trading != 0 || pc_isdead(sd) || pc_isvending(sd)) + return; + + if (map->list[sd->bl.m].flag.nocashshop != 0) { + clif->messagecolor_self(fd, COLOR_RED, msg_fd(fd, 1489)); //Cash Shop is disabled in this map + return; + } + +#if PACKETVER >= 20191224 + const struct PACKET_CZ_SE_CASHSHOP_OPEN2 *p = RFIFOP(fd, 0); + clif->cashShopOpen(fd, sd, p->tab); +#endif +} + +static void clif_cashShopOpen(int fd, struct map_session_data *sd, int tab) +{ +#if PACKETVER_MAIN_NUM >= 20101123 || PACKETVER_RE_NUM >= 20120328 || PACKETVER_ZERO_NUM >= defined(PACKETVER_ZERO) + WFIFOHEAD(fd, sizeof(struct PACKET_ZC_SE_CASHSHOP_OPEN)); + struct PACKET_ZC_SE_CASHSHOP_OPEN *p = WFIFOP(fd, 0); + p->packetType = HEADER_ZC_SE_CASHSHOP_OPEN; + p->cashPoints = sd->cashPoints; //[Ryuuzaki] - switched positions to reflect proper values + p->kafraPoints = sd->kafraPoints; +#if PACKETVER_ZERO_NUM >= 20191224 + p->tab = tab; +#endif + WFIFOSET(fd, sizeof(struct PACKET_ZC_SE_CASHSHOP_OPEN)); +#endif +} + +static void clif_parse_cashShopClose(int fd, struct map_session_data *sd) __attribute__((nonnull (2))); +static void clif_parse_cashShopClose(int fd, struct map_session_data *sd) { /* TODO apply some state tracking */ } -static void clif_parse_CashShopSchedule(int fd, struct map_session_data *sd) __attribute__((nonnull (2))); -static void clif_parse_CashShopSchedule(int fd, struct map_session_data *sd) +static void clif_parse_cashShopSchedule(int fd, struct map_session_data *sd) __attribute__((nonnull (2))); +static void clif_parse_cashShopSchedule(int fd, struct map_session_data *sd) { if (sd->state.trading || pc_isdead(sd) || pc_isvending(sd)) return; @@ -20021,8 +20081,8 @@ void clif_cashShopSchedule(int fd, struct map_session_data *sd) } /// R 0848 <len>.W <limit>.W <kafra pay>.L (<item id>.L <amount>.L <tab>.W)* -static void clif_parse_CashShopBuy(int fd, struct map_session_data *sd) __attribute__((nonnull (2))); -static void clif_parse_CashShopBuy(int fd, struct map_session_data *sd) +static void clif_parse_cashShopBuy(int fd, struct map_session_data *sd) __attribute__((nonnull (2))); +static void clif_parse_cashShopBuy(int fd, struct map_session_data *sd) { if (sd->state.trading || pc_isdead(sd) || pc_isvending(sd)) return; @@ -20081,7 +20141,7 @@ static void clif_parse_CashShopBuy(int fd, struct map_session_data *sd) ret = pc->paycash(sd, clif->cs.data[tab][j]->price * qty, kafra_pay);// [Ryuuzaki] //changed Kafrapoints calculation. [Normynator] if (ret < 0) { - ShowError("clif_parse_CashShopBuy: The return from pc->paycash was negative which is not allowed.\n"); + ShowError("clif_parse_cashShopBuy: The return from pc->paycash was negative which is not allowed.\n"); break; //This should never happen. } kafra_pay = ret; @@ -20141,9 +20201,9 @@ static void clif_cashShopBuyAck(int fd, struct map_session_data *sd, int itemId, #endif } -static void clif_parse_CashShopReqTab(int fd, struct map_session_data *sd) __attribute__((nonnull (2))); +static void clif_parse_cashShopReqTab(int fd, struct map_session_data *sd) __attribute__((nonnull (2))); /* [Ind/Hercules] */ -static void clif_parse_CashShopReqTab(int fd, struct map_session_data *sd) +static void clif_parse_cashShopReqTab(int fd, struct map_session_data *sd) { // [4144] packet exists only in 2011 and was dropped after #if PACKETVER >= 20110222 && PACKETVER < 20120000 @@ -20218,12 +20278,15 @@ static void clif_status_change2(struct block_list *bl, int tid, enum send_target static void clif_partytickack(struct map_session_data *sd, bool flag) { +#if PACKETVER_MAIN_NUM >= 20070911 || defined(PACKETVER_RE) || PACKETVER_AD_NUM >= 20070911 || PACKETVER_SAK_NUM >= 20070904 || defined(PACKETVER_ZERO) nullpo_retv(sd); - WFIFOHEAD(sd->fd, packet_len(0x2c9)); - WFIFOW(sd->fd, 0) = 0x2c9; - WFIFOB(sd->fd, 2) = flag; - WFIFOSET(sd->fd, packet_len(0x2c9)); + WFIFOHEAD(sd->fd, sizeof(struct PACKET_ZC_PARTY_CONFIG)); + struct PACKET_ZC_PARTY_CONFIG *p = WFIFOP(sd->fd, 0); + p->packetType = HEADER_ZC_PARTY_CONFIG; + p->denyPartyInvites = flag; + WFIFOSET(sd->fd, sizeof(struct PACKET_ZC_PARTY_CONFIG)); +#endif } static void clif_ShowScript(struct block_list *bl, const char *message, enum send_target target) @@ -24064,6 +24127,7 @@ void clif_defaults(void) clif->specialeffect = clif_specialeffect; clif->specialeffect_single = clif_specialeffect_single; clif->specialeffect_value = clif_specialeffect_value; + clif->specialeffect_value_single = clif_specialeffect_value_single; clif->removeSpecialEffect = clif_removeSpecialEffect; clif->removeSpecialEffect_single = clif_removeSpecialEffect_single; clif->millenniumshield = clif_millenniumshield; @@ -24587,12 +24651,15 @@ void clif_defaults(void) clif->pBGQueueRevokeReq = clif_parse_bgqueue_revoke_req; clif->pBGQueueBattleBeginAck = clif_parse_bgqueue_battlebegin_ack; /* RagExe Cash Shop [Ind/Hercules] */ - clif->pCashShopOpen = clif_parse_CashShopOpen; - clif->pCashShopClose = clif_parse_CashShopClose; - clif->pCashShopReqTab = clif_parse_CashShopReqTab; - clif->pCashShopSchedule = clif_parse_CashShopSchedule; - clif->pCashShopBuy = clif_parse_CashShopBuy; + clif->pCashShopOpen1 = clif_parse_cashShopOpen1; + clif->pCashShopOpen2 = clif_parse_cashShopOpen2; + clif->pCashShopLimitedReq = clif_parse_cashShopLimitedReq; + clif->pCashShopClose = clif_parse_cashShopClose; + clif->pCashShopReqTab = clif_parse_cashShopReqTab; + clif->pCashShopSchedule = clif_parse_cashShopSchedule; + clif->pCashShopBuy = clif_parse_cashShopBuy; clif->cashShopBuyAck = clif_cashShopBuyAck; + clif->cashShopOpen = clif_cashShopOpen; /* */ clif->pPartyTick = clif_parse_PartyTick; clif->pGuildInvite2 = clif_parse_GuildInvite2; diff --git a/src/map/clif.h b/src/map/clif.h index 27f1060ff..b61772bba 100644 --- a/src/map/clif.h +++ b/src/map/clif.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -1030,7 +1030,8 @@ struct clif_interface { void (*weather) (int16 m); void (*specialeffect) (struct block_list* bl, int type, enum send_target target); void (*specialeffect_single) (struct block_list* bl, int type, int fd); - void (*specialeffect_value) (struct block_list* bl, int effect_id, int num, send_target target); + void (*specialeffect_value) (struct block_list* bl, int effect_id, uint64 num, send_target target); + void (*specialeffect_value_single) (struct block_list *bl, int effect_id, uint64 num, int fd); void (*removeSpecialEffect) (struct block_list *bl, int effectId, enum send_target target); void (*removeSpecialEffect_single) (struct block_list *bl, int effectId, struct block_list *targetBl); void (*millenniumshield) (struct block_list *bl, short shields ); @@ -1547,7 +1548,9 @@ struct clif_interface { void (*pBGQueueRevokeReq) (int fd, struct map_session_data *sd); void (*pBGQueueBattleBeginAck) (int fd, struct map_session_data *sd); /* RagExe Cash Shop [Ind/Hercules] */ - void (*pCashShopOpen) (int fd, struct map_session_data *sd); + void (*pCashShopOpen1) (int fd, struct map_session_data *sd); + void (*pCashShopOpen2) (int fd, struct map_session_data *sd); + void (*pCashShopLimitedReq) (int fd, struct map_session_data *sd); void (*pCashShopClose) (int fd, struct map_session_data *sd); void (*pCashShopReqTab) (int fd, struct map_session_data *sd); void (*pCashShopSchedule) (int fd, struct map_session_data *sd); @@ -1555,6 +1558,7 @@ struct clif_interface { void (*pPartyTick) (int fd, struct map_session_data *sd); void (*pGuildInvite2) (int fd, struct map_session_data *sd); void (*cashShopBuyAck) (int fd, struct map_session_data *sd, int itemId, enum CASH_SHOP_BUY_RESULT result); + void (*cashShopOpen) (int fd, struct map_session_data *sd, int tab); /* Group Search System Update */ void (*pPartyBookingAddFilter) (int fd, struct map_session_data *sd); void (*pPartyBookingSubFilter) (int fd, struct map_session_data *sd); diff --git a/src/map/date.c b/src/map/date.c index 8060db458..9db7155ab 100644 --- a/src/map/date.c +++ b/src/map/date.c @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/map/date.h b/src/map/date.h index c5fe56d5f..1673b8c6d 100644 --- a/src/map/date.h +++ b/src/map/date.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/map/duel.c b/src/map/duel.c index c2c24e37b..dca040f83 100644 --- a/src/map/duel.c +++ b/src/map/duel.c @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/map/duel.h b/src/map/duel.h index facb09ff9..4e8985b96 100644 --- a/src/map/duel.h +++ b/src/map/duel.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/map/elemental.c b/src/map/elemental.c index b7bd5c090..1c1d98634 100644 --- a/src/map/elemental.c +++ b/src/map/elemental.c @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/map/elemental.h b/src/map/elemental.h index 0c6b4ec27..71c991268 100644 --- a/src/map/elemental.h +++ b/src/map/elemental.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/map/guild.c b/src/map/guild.c index 2fcbe02e7..f344878e1 100644 --- a/src/map/guild.c +++ b/src/map/guild.c @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/map/guild.h b/src/map/guild.h index 5a14b8a34..82582a864 100644 --- a/src/map/guild.h +++ b/src/map/guild.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/map/homunculus.c b/src/map/homunculus.c index fbb94334c..189cf29e4 100644 --- a/src/map/homunculus.c +++ b/src/map/homunculus.c @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/map/homunculus.h b/src/map/homunculus.h index 2914a26cc..c12629f46 100644 --- a/src/map/homunculus.h +++ b/src/map/homunculus.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/map/instance.c b/src/map/instance.c index e87cc03bb..90f2217b1 100644 --- a/src/map/instance.c +++ b/src/map/instance.c @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/map/instance.h b/src/map/instance.h index 91928bf40..8206902c1 100644 --- a/src/map/instance.h +++ b/src/map/instance.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/map/intif.c b/src/map/intif.c index 5a62f9644..a420b7204 100644 --- a/src/map/intif.c +++ b/src/map/intif.c @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/map/intif.h b/src/map/intif.h index ffac4a1c9..c397eda7d 100644 --- a/src/map/intif.h +++ b/src/map/intif.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/map/irc-bot.c b/src/map/irc-bot.c index a0c7276a9..bc9cb6ad1 100644 --- a/src/map/irc-bot.c +++ b/src/map/irc-bot.c @@ -2,7 +2,7 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2013-2015 Hercules Dev Team + * Copyright (C) 2013-2020 Hercules Dev Team * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/map/irc-bot.h b/src/map/irc-bot.h index 54f462e35..66880f427 100644 --- a/src/map/irc-bot.h +++ b/src/map/irc-bot.h @@ -2,7 +2,7 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2013-2015 Hercules Dev Team + * Copyright (C) 2013-2020 Hercules Dev Team * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/map/itemdb.c b/src/map/itemdb.c index 5dc3d9317..2b8200c06 100644 --- a/src/map/itemdb.c +++ b/src/map/itemdb.c @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -1552,6 +1552,11 @@ static void itemdb_read_chains(void) else itemdb->chain_cache[ECC_SIEGFRIED] = i; + if (!script->get_constant("ITMCHAIN_NEO_INSURANCE", &i)) + ShowWarning("itemdb_read_chains: failed to find 'ITMCHAIN_NEO_INSURANCE' chain to link to cache!\n"); + else + itemdb->chain_cache[ECC_NEO_INSURANCE] = i; + ShowStatus("Done reading '"CL_WHITE"%d"CL_RESET"' entries in '"CL_WHITE"%s"CL_RESET"'.\n", count, config_filename); } diff --git a/src/map/itemdb.h b/src/map/itemdb.h index 14ead7707..d2592af4e 100644 --- a/src/map/itemdb.h +++ b/src/map/itemdb.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -359,6 +359,7 @@ enum geneticist_item_list { enum e_chain_cache { ECC_ORE, ECC_SIEGFRIED, + ECC_NEO_INSURANCE, /* */ ECC_MAX, }; diff --git a/src/map/log.c b/src/map/log.c index 45335b16a..61679089b 100644 --- a/src/map/log.c +++ b/src/map/log.c @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/map/log.h b/src/map/log.h index 5035e9526..3f9a80e36 100644 --- a/src/map/log.h +++ b/src/map/log.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/map/mail.c b/src/map/mail.c index 0a6603a45..a1176e8fc 100644 --- a/src/map/mail.c +++ b/src/map/mail.c @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/map/mail.h b/src/map/mail.h index 9aeb46120..6281890c0 100644 --- a/src/map/mail.h +++ b/src/map/mail.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/map/map.c b/src/map/map.c index 8d60d1672..afdc2ed41 100644 --- a/src/map/map.c +++ b/src/map/map.c @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -3769,8 +3769,29 @@ static int map_waterheight(char *mapname) // read & convert fn rsw = grfio_read(fn); if (rsw) { + if (memcmp(rsw, "GRSW", 4) != 0) { + ShowWarning("Failed to find water level for %s (%s)\n", mapname, fn); + aFree(rsw); + return NO_WATER; + } + int major_version = rsw[4]; + int minor_version = rsw[5]; + if (major_version > 2 || (major_version == 2 && minor_version > 2)) { + ShowWarning("Failed to find water level for %s (%s)\n", mapname, fn); + aFree(rsw); + return NO_WATER; + } + if (major_version < 1 || (major_version == 1 && minor_version <= 4)) { + ShowWarning("Failed to find water level for %s (%s)\n", mapname, fn); + aFree(rsw); + return NO_WATER; + } + int offset = 166; + if (major_version == 2 && minor_version >= 2) { + offset = 167; + } //Load water height from file - int wh = (int) *(float*)(rsw+166); + int wh = (int)*(float*)(rsw + offset); aFree(rsw); return wh; } diff --git a/src/map/map.h b/src/map/map.h index 6b360e1bc..78f1a3c89 100644 --- a/src/map/map.h +++ b/src/map/map.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/map/mapdefines.h b/src/map/mapdefines.h index 348ca98fd..f5a8149d4 100644 --- a/src/map/mapdefines.h +++ b/src/map/mapdefines.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/map/mapreg.h b/src/map/mapreg.h index 4a9fd9e97..b3b89e1b2 100644 --- a/src/map/mapreg.h +++ b/src/map/mapreg.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/map/mapreg_sql.c b/src/map/mapreg_sql.c index 516be56cb..741505e17 100644 --- a/src/map/mapreg_sql.c +++ b/src/map/mapreg_sql.c @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/map/mercenary.c b/src/map/mercenary.c index 918701c9d..00fdcae9f 100644 --- a/src/map/mercenary.c +++ b/src/map/mercenary.c @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/map/mercenary.h b/src/map/mercenary.h index 65e8d5338..bd28729c5 100644 --- a/src/map/mercenary.h +++ b/src/map/mercenary.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/map/messages.h b/src/map/messages.h index 5bfd476a2..adf5bc7e0 100644 --- a/src/map/messages.h +++ b/src/map/messages.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2016 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/map/messages_ad.h b/src/map/messages_ad.h index e0a4e5c98..9a3ada406 100644 --- a/src/map/messages_ad.h +++ b/src/map/messages_ad.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2013-2019 Hercules Dev Team - * Copyright (C) 2018-2019 Andrei Karas (4144) + * Copyright (C) 2013-2020 Hercules Dev Team + * Copyright (C) 2018-2020 Andrei Karas (4144) * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/map/messages_main.h b/src/map/messages_main.h index eb33b41ad..b2b67f08c 100644 --- a/src/map/messages_main.h +++ b/src/map/messages_main.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2013-2019 Hercules Dev Team - * Copyright (C) 2018-2019 Andrei Karas (4144) + * Copyright (C) 2013-2020 Hercules Dev Team + * Copyright (C) 2018-2020 Andrei Karas (4144) * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -24,7 +24,7 @@ /* This file is autogenerated, please do not commit manual changes -Latest version: 20191113 +Latest version: 20200108 */ enum clif_messages { @@ -1240,9 +1240,11 @@ Cart Items [Alt+W] Basic Information */ MSG_BASICINFOWND = 0xee, -/*20031028 to latest +/*20031028 to 20191204 이무기로는 이스킬을 사용할수 없습니다. The skill cannot be used with this weapon. +20191211 to latest +현재 무기로는 스킬을 사용할 수 없습니다. */ MSG_USESKILL_FAIL_NOT_SUITABLE_WEAPON = 0xef, /*20031028 to latest @@ -7261,9 +7263,11 @@ The Memorial Dungeon's entry time limit expired; it has been destroyed. The Memorial Dungeon has been removed. */ MSG_MEMORIAL_DUN_DESTROY_REQUEST = 0x544, -/*20070918 to latest +/*20070918 to 20191218 메모리얼 던전에 시스템 오류가 발생하였습니다. 정상적인 게임 진행을 위해 재접속을 해주십시오. A system error has occurred in the Memorial Dungeon. Please relog in to the game to continue playing. +20191224 to latest +메모리얼 던전에 통신 장애가 발생하였습니다. 정상적인 게임 진행을 위해 잠시 후, 재접속을 해주십시오. */ MSG_MEMORIAL_DUN_ERROR = 0x545, /*20070918 to latest @@ -20440,92 +20444,143 @@ MOTP 입력 시간이 초과되었습니다. 처음부터 다시 로그인해주 모험가 중개소 등록 */ MSG_ID_D1C = 0xd1c, -/*20171108 to latest +/*20171108 to 20191120 모집 중단 +20191127 to latest +모험가 중개소 등록하기 */ MSG_ID_D1D = 0xd1d, -/*20171108 to latest +/*20171108 to 20191120 모험가 중개소 설정 +20191127 to latest +모집 중단 */ MSG_ID_D1E = 0xd1e, -/*20171108 to latest +/*20171108 to 20191120 전 지역 +20191127 to latest +메모 +Note */ MSG_ID_D1F = 0xd1f, -/*20171108 to latest +/*20171108 to 20191120 직접기재 +20191127 to latest +퀘스트 +Quest */ MSG_ID_D20 = 0xd20, -/*20171108 to latest +/*20171108 to 20191120 검사계열 +20191127 to latest +필드 */ MSG_ID_D21 = 0xd21, -/*20171108 to latest +/*20171108 to 20191120 법사계열 +20191127 to latest +던전 +Dungeon */ MSG_ID_D22 = 0xd22, -/*20171108 to latest +/*20171108 to 20191120 궁수계열 +20191127 to latest +MD */ MSG_ID_D23 = 0xd23, -/*20171108 to latest +/*20171108 to 20191120 복사계열 +20191127 to latest +낙원단 */ MSG_ID_D24 = 0xd24, -/*20171108 to latest +/*20171108 to 20191120 상인계열 +20191127 to latest +기타 +Other */ MSG_ID_D25 = 0xd25, -/*20171108 to latest +/*20171108 to 20191120 도둑계열 +20191127 to latest +검색 +Search */ MSG_ID_D26 = 0xd26, -/*20171108 to latest +/*20171108 to 20191120 태권계열 +20191127 to latest +초기화 */ MSG_ID_D27 = 0xd27, -/*20171108 to latest +/*20171108 to 20191120 닌자계열 +20191127 to latest +파티가입신청 */ MSG_ID_D28 = 0xd28, -/*20171108 to latest +/*20171108 to 20191120 건슬링거계열 +20191127 to latest +목적 */ MSG_ID_D29 = 0xd29, -/*20171108 to latest +/*20171108 to 20191120 도람족계열 +20191127 to latest +※욕설, 현거래등 운영 규칙에 위배되는 목적으로 사용 시 처벌 받을 수 있습니다. */ MSG_ID_D2A = 0xd2a, -/*20171108 to latest +/*20171108 to 20191120 지역명 +20191127 to latest +등록하기 +Register */ MSG_ID_D2B = 0xd2b, -/*20171108 to latest +/*20171108 to 20191120 지역명 검색 +20191127 to latest +사용할 수 없는 단어가 포함되어 있습니다. */ MSG_ID_D2C = 0xd2c, -/*20171108 to latest +/*20171108 to 20191120 가입 요청하기 +20191127 to latest +파티가입 */ MSG_ID_D2D = 0xd2d, -/*20171108 to latest +/*20171108 to 20191120 신고하기 +20191127 to latest +1:1대화 */ MSG_ID_D2E = 0xd2e, -/*20171108 to latest +/*20171108 to 20191120 파티 모집 중단 +20191127 to latest +모집 중지 */ MSG_ID_D2F = 0xd2f, -/*20171108 to latest +/*20171108 to 20191120 지역명을 입력해주세요. +20191127 to latest +수정하기 */ MSG_ID_D30 = 0xd30, -/*20171108 to latest +/*20171108 to 20191120 지역 +20191127 to latest +전체 +All */ MSG_ID_D31 = 0xd31, -/*20171108 to latest +/*20171108 to 20191120 전 직업 +20191127 to latest +[%s] 님이 파티가입을 신청했습니다. */ MSG_ID_D32 = 0xd32, /*20171108 to latest @@ -20698,12 +20753,17 @@ Password 회원가입 */ MSG_ID_D56 = 0xd56, -/*20171122 to latest +/*20171122 to 20191120 노비스계열 +20191127 to latest +파티장 +Leader */ MSG_ID_D57 = 0xd57, -/*20171122 to latest +/*20171122 to 20191120 슈퍼노비스계열 +20191127 to latest +파티에 가입할 수 있는 레벨이 아닙니다. */ MSG_ID_D58 = 0xd58, /*20171122 to latest @@ -20716,12 +20776,16 @@ Password MSG_ID_D5A = 0xd5a, /*20171122 to 20180328 직업을 한 개 이상 선택해주세요. -20180404 to latest +20180404 to 20191120 모집을 희망하는 파티원의 직업을 한 개 이상 선택해 주세요. +20191127 to latest +검색내용입력 */ MSG_ID_D5B = 0xd5b, -/*20171122 to latest +/*20171122 to 20191127 지역명을 두 글자 이상 입력해주세요. +20191204 to latest +탱커 */ MSG_ID_D5C = 0xd5c, /*20171122 to latest @@ -20812,8 +20876,10 @@ Password 불량 단어가 포함된 이름은 검색할 수 없습니다. */ MSG_ID_D71 = 0xd71, -/*20171213 to latest +/*20171213 to 20191127 파티 마스터가 요청을 받을 수 없는 맵에 있습니다. +20191204 to latest +파티 마스터가 요청을 받을 수 없는 상태입니다. */ MSG_ID_D72 = 0xd72, /*20171213 to latest @@ -20822,8 +20888,10 @@ Password MSG_ID_D73 = 0xd73, /*20171213 to 20180328 님의 파티요청입니다. -20180404 to latest +20180404 to 20191127 님의 파티 가입 요청입니다. +20191204 to latest +딜러 */ MSG_ID_D74 = 0xd74, #endif @@ -21038,8 +21106,10 @@ Enter 4 english words and 2 chinese words The guild tax rate can't be set to more than 50%. */ MSG_ID_D9E = 0xd9e, -/*20180404 to latest +/*20180404 to 20191204 파티 가입 요청을 보냈습니다. +20191211 to latest +파티가 모험가 중개소에 등록되어, 파티장을 변경 할 수 없습니다. */ MSG_ID_D9F = 0xd9f, /*20180404 to latest @@ -21054,8 +21124,10 @@ The guild tax rate can't be set to more than 50%. 거절 */ MSG_ID_DA2 = 0xda2, -/*20180404 to latest +/*20180404 to 20191127 설정 권한은 파티장에게 있습니다. +20191204 to latest +힐러 */ MSG_ID_DA3 = 0xda3, /*20180404 to latest @@ -21114,8 +21186,10 @@ The guild tax rate can't be set to more than 50%. 파티 가입 요청 */ MSG_ID_DB1 = 0xdb1, -/*20180404 to latest +/*20180404 to 20191120 파티장이 아닌 경우, 모험가 중개소에 파티를 등록할 수 없습니다. +20191127 to latest +파티장이 아닌 경우 모험가 중개소에 파티를 등록할 수 없습니다. */ MSG_ID_DB2 = 0xdb2, /*20180404 to 20180404 @@ -21126,8 +21200,11 @@ The guild tax rate can't be set to more than 50%. MSG_ID_DB3 = 0xdb3, #endif #if PACKETVER >= 20180418 -/*20180418 to latest +/*20180418 to 20191127 존재하지 않는 파티 글입니다. +20191204 to latest +보조 +Support */ MSG_ID_DB4 = 0xdb4, /*20180418 to 20180418 @@ -21168,16 +21245,20 @@ Zoom Out 기능을 해제합니다 (Off) 파티장인 경우, 가입 요청을 할 수 없습니다. */ MSG_ID_DBB = 0xdbb, -/*20180418 to latest +/*20180418 to 20191211 모험가 중개소에 등록 중입니다. 잠시만 기다려 주세요. +20191218 to latest +파티 가입 최대 레벨은 최소 레벨 설정보다 높아야 합니다. */ MSG_ID_DBC = 0xdbc, /*20180418 to latest 더 이상 직업을 선택할 수 없습니다. */ MSG_ID_DBD = 0xdbd, -/*20180418 to latest +/*20180418 to 20191120 게임 중 해당 유저의 가입 요청을 받지 않습니다. +20191127 to latest +게임 중 해당 유저의 가입 요청을 받지 않습니다.(클라이언트 종료 전까지 유효) */ MSG_ID_DBE = 0xdbe, #endif @@ -22149,8 +22230,10 @@ VTC 인증에 실패하였습니다. 가나다 정렬 */ MSG_ID_E8A = 0xe8a, -/*20191113 to latest +/*20191113 to 20191224 기본 결과물은 %s %d개 이나, 낮은 확률로 최대 %d개까지 생성될 수 있습니다. +20200108 to latest +※[%s] %d~%d개 제작 */ MSG_ID_E8B = 0xe8b, /*20191113 to latest @@ -22162,6 +22245,225 @@ VTC 인증에 실패하였습니다. */ MSG_ID_E8D = 0xe8d, #endif +#if PACKETVER >= 20191127 +/*20191127 to latest +공격력 및 특성 공격력이 증가되었습니다. +*/ + MSG_ID_E8E = 0xe8e, +/*20191127 to latest +강인한 신념 효과가 해제되었습니다. +*/ + MSG_ID_E8F = 0xe8f, +/*20191127 to latest +HP 및 물리 저항력이 증가되었습니다. +*/ + MSG_ID_E90 = 0xe90, +/*20191127 to latest +굳건한 신념 효과가 해제되었습니다. +*/ + MSG_ID_E91 = 0xe91, +/*20191127 to latest +공격 속도 및 유도 공격 확률이 증가되었습니다. +*/ + MSG_ID_E92 = 0xe92, +/*20191127 to latest +신실한 신념 효과가 해제되었습니다. +*/ + MSG_ID_E93 = 0xe93, +/*20191127 to latest +POW, CRT 및 CON 이 증가되었습니다. +*/ + MSG_ID_E94 = 0xe94, +/*20191127 to latest +베네딕툼 효과가 해제되었습니다. +*/ + MSG_ID_E95 = 0xe95, +/*20191127 to latest +SPL, WIS 및 CRT 가 증가되었습니다. +*/ + MSG_ID_E96 = 0xe96, +/*20191127 to latest +렐리지오 효과가 해제되었습니다. +*/ + MSG_ID_E97 = 0xe97, +/*20191127 to latest +특성 공격력 및 특성 마법 공격력이 증가되었습니다. +*/ + MSG_ID_E98 = 0xe98, +/*20191127 to latest +콤페텐티아 효과가 해제되었습니다. +*/ + MSG_ID_E99 = 0xe99, +/*20191127 to latest +크리티컬 데미지 비율이 증가되었습니다. +*/ + MSG_ID_E9A = 0xe9a, +/*20191127 to latest +프레센스 아치에스 효과가 해제되었습니다. +*/ + MSG_ID_E9B = 0xe9b, +/*20191127 to latest +물리 저항력 무시 효과가 부여되었습니다. +*/ + MSG_ID_E9C = 0xe9c, +/*20191127 to latest +아르구투스 텔룸 효과가 해제되었습니다. +*/ + MSG_ID_E9D = 0xe9d, +/*20191127 to latest +마법 저항력 무시 효과가 부여되었습니다. +*/ + MSG_ID_E9E = 0xe9e, +/*20191127 to latest +아르구투스 비타 효과가 해제되었습니다. +*/ + MSG_ID_E9F = 0xe9f, +/*20191127 to latest +Num: %d/%d Weight: %d/%d +*/ + MSG_ID_EA0 = 0xea0, +#endif +#if PACKETVER >= 20191204 +/*20191204 to latest +서번트 웨폰 효과가 해제되었습니다. +*/ + MSG_ID_EA1 = 0xea1, +/*20191204 to latest +챠징 피어스 효과가 해제되었습니다. +*/ + MSG_ID_EA2 = 0xea2, +/*20191204 to latest +비고르 효과가 해제되었습니다. +*/ + MSG_ID_EA3 = 0xea3, +/*20191204 to latest +공격력이 증가하고, 방어력이 감소되었습니다. +*/ + MSG_ID_EA4 = 0xea4, +/*20191204 to latest +어택 스탠스 효과가 해제되었습니다. +*/ + MSG_ID_EA5 = 0xea5, +/*20191204 to latest +방어력이 증가하고, 공격력이 감소되었습니다. +*/ + MSG_ID_EA6 = 0xea6, +/*20191204 to latest +가드 스탠스 효과가 해제되었습니다. +*/ + MSG_ID_EA7 = 0xea7, +/*20191204 to latest +배리어가 부여되었습니다. +*/ + MSG_ID_EA8 = 0xea8, +/*20191204 to latest +가디언 쉴드 효과가 해제되었습니다. +*/ + MSG_ID_EA9 = 0xea9, +/*20191204 to latest +헌신 효과로 받는 데미지가 감소되었습니다. +*/ + MSG_ID_EAA = 0xeaa, +/*20191204 to latest +리바운드 쉴드 효과가 해제되었습니다. +*/ + MSG_ID_EAB = 0xeab, +/*20191204 to latest +성속성 마법 데미지와 암/불사속성 내성이 증가되었습니다. +*/ + MSG_ID_EAC = 0xeac, +/*20191204 to latest +홀리 쉴드 효과가 해제되었습니다. +*/ + MSG_ID_EAD = 0xead, +/*20191204 to latest +즉시 부활 효과가 부여되었습니다. +*/ + MSG_ID_EAE = 0xeae, +/*20191204 to latest +얼티메이트 세크리파이스 효과가 해제되었습니다. +*/ + MSG_ID_EAF = 0xeaf, +/*20191204 to latest +특정 스킬의 효능이 변경되었습니다. +*/ + MSG_ID_EB0 = 0xeb0, +/*20191204 to latest +클라이막스 효과가 해제되었습니다. +*/ + MSG_ID_EB1 = 0xeb1, +/*20191204 to latest +특정 스킬의 효능이 변경되었습니다. +*/ + MSG_ID_EB2 = 0xeb2, +/*20191204 to latest +쉐도우 익시드 효과가 해제되었습니다. +*/ + MSG_ID_EB3 = 0xeb3, +/*20191204 to latest +물리 저항력 무시 효과가 부여되었습니다. +*/ + MSG_ID_EB4 = 0xeb4, +/*20191204 to latest +포텐트 베넘 효과가 해제되었습니다. +*/ + MSG_ID_EB5 = 0xeb5, +/*20191204 to latest +매 공격 시, 일정 확률로 대상이 받는 데미지를 증가시킵니다. +*/ + MSG_ID_EB6 = 0xeb6, +/*20191204 to latest +인챈팅 쉐도우 효과가 해제되었습니다. +*/ + MSG_ID_EB7 = 0xeb7, +#endif +#if PACKETVER >= 20191211 +/*20191211 to latest +토벌 카운트 On +*/ + MSG_ID_EB8 = 0xeb8, +/*20191211 to latest +토벌 카운트 Off +*/ + MSG_ID_EB9 = 0xeb9, +/*20191211 to latest +대상의 AP가 최대치입니다 +*/ + MSG_ID_EBA = 0xeba, +/*20191211 to latest + ^ff0000본 아이템을 구매 후 7일 이내에는 청약 철회가 가능합니다. 다만, 7일이 지났거나 아이템을 개봉하시면 청약 철회 대상에서 제외 됩니다.또한 구매시 사용된 무료캐시는 청약철회시 반환되지 않습니다.일부(이벤트) 아이템의 경우 이벤트 종료 시 삭제될 수 있으며, 아이템 설명 내 기재된 삭제기간을 확인해 주시기 바랍니다.^000000 정말로 아이템을 구매하시겠습니까? 구매하실 경우 %d캐시가 차감됩니다. +*/ + MSG_ID_EBB = 0xebb, +/*20191211 to latest + ^ff0000본 아이템을 구매 후 7일 이내에는 청약 철회가 가능합니다. 다만, 7일이 지났거나 아이템을 개봉하시면 청약 철회 대상에서 제외 됩니다.또한 구매시 사용된 무료캐시는 청약철회시 반환되지 않습니다.일부(이벤트) 아이템의 경우 이벤트 종료 시 삭제될 수 있으며, 아이템 설명 내 기재된 삭제기간을 확인해 주시기 바랍니다.^000000 정말로 아이템을 구매하시겠습니까? 구매하실 경우 일반 %d캐시, 무료 %d캐시가 차감됩니다. +*/ + MSG_ID_EBC = 0xebc, +#endif +#if PACKETVER >= 20191218 +/*20191218 to latest +서번트 웨폰 %d개가 필요합니다. +*/ + MSG_ID_EBD = 0xebd, +/*20191218 to latest +https://member.gnjoy.com.tw/billing.aspx +*/ + MSG_ID_EBE = 0xebe, +#endif +#if PACKETVER >= 20200108 +/*20200108 to latest +역순 정렬 +*/ + MSG_ID_EBF = 0xebf, +/*20200108 to latest +검색 내용 입력 +*/ + MSG_ID_EC0 = 0xec0, +/*20200108 to latest +검색 +Search +*/ + MSG_ID_EC1 = 0xec1, +#endif }; #endif /* MAP_MESSAGES_MAIN_H */ diff --git a/src/map/messages_re.h b/src/map/messages_re.h index dd01e1576..8cb3b6624 100644 --- a/src/map/messages_re.h +++ b/src/map/messages_re.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2013-2019 Hercules Dev Team - * Copyright (C) 2018-2019 Andrei Karas (4144) + * Copyright (C) 2013-2020 Hercules Dev Team + * Copyright (C) 2018-2020 Andrei Karas (4144) * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -24,7 +24,7 @@ /* This file is autogenerated, please do not commit manual changes -Latest version: 20191113 +Latest version: 20200108 */ enum clif_messages { @@ -1231,9 +1231,11 @@ Cart Items [Alt+W] Basic Information */ MSG_BASICINFOWND = 0xee, -/*20080827 to latest +/*20080827 to 20191204 이무기로는 이스킬을 사용할수 없습니다. The skill cannot be used with this weapon. +20191211 to latest +현재 무기로는 스킬을 사용할 수 없습니다. */ MSG_USESKILL_FAIL_NOT_SUITABLE_WEAPON = 0xef, /*20080827 to latest @@ -6778,9 +6780,11 @@ The Memorial Dungeon's entry time limit expired; it has been destroyed. The Memorial Dungeon has been removed. */ MSG_MEMORIAL_DUN_DESTROY_REQUEST = 0x544, -/*20080827 to latest +/*20080827 to 20191218 메모리얼 던전에 시스템 오류가 발생하였습니다. 정상적인 게임 진행을 위해 재접속을 해주십시오. A system error has occurred in the Memorial Dungeon. Please relog in to the game to continue playing. +20191224 to latest +메모리얼 던전에 통신 장애가 발생하였습니다. 정상적인 게임 진행을 위해 잠시 후, 재접속을 해주십시오. */ MSG_MEMORIAL_DUN_ERROR = 0x545, /*20080827 to latest @@ -19919,92 +19923,143 @@ MOTP 입력 시간이 초과되었습니다. 처음부터 다시 로그인해주 모험가 중개소 등록 */ MSG_ID_D1C = 0xd1c, -/*20171108 to latest +/*20171108 to 20191120 모집 중단 +20191127 to latest +모험가 중개소 등록하기 */ MSG_ID_D1D = 0xd1d, -/*20171108 to latest +/*20171108 to 20191120 모험가 중개소 설정 +20191127 to latest +모집 중단 */ MSG_ID_D1E = 0xd1e, -/*20171108 to latest +/*20171108 to 20191120 전 지역 +20191127 to latest +메모 +Note */ MSG_ID_D1F = 0xd1f, -/*20171108 to latest +/*20171108 to 20191120 직접기재 +20191127 to latest +퀘스트 +Quest */ MSG_ID_D20 = 0xd20, -/*20171108 to latest +/*20171108 to 20191120 검사계열 +20191127 to latest +필드 */ MSG_ID_D21 = 0xd21, -/*20171108 to latest +/*20171108 to 20191120 법사계열 +20191127 to latest +던전 +Dungeon */ MSG_ID_D22 = 0xd22, -/*20171108 to latest +/*20171108 to 20191120 궁수계열 +20191127 to latest +MD */ MSG_ID_D23 = 0xd23, -/*20171108 to latest +/*20171108 to 20191120 복사계열 +20191127 to latest +낙원단 */ MSG_ID_D24 = 0xd24, -/*20171108 to latest +/*20171108 to 20191120 상인계열 +20191127 to latest +기타 +Other */ MSG_ID_D25 = 0xd25, -/*20171108 to latest +/*20171108 to 20191120 도둑계열 +20191127 to latest +검색 +Search */ MSG_ID_D26 = 0xd26, -/*20171108 to latest +/*20171108 to 20191120 태권계열 +20191127 to latest +초기화 */ MSG_ID_D27 = 0xd27, -/*20171108 to latest +/*20171108 to 20191120 닌자계열 +20191127 to latest +파티가입신청 */ MSG_ID_D28 = 0xd28, -/*20171108 to latest +/*20171108 to 20191120 건슬링거계열 +20191127 to latest +목적 */ MSG_ID_D29 = 0xd29, -/*20171108 to latest +/*20171108 to 20191120 도람족계열 +20191127 to latest +※욕설, 현거래등 운영 규칙에 위배되는 목적으로 사용 시 처벌 받을 수 있습니다. */ MSG_ID_D2A = 0xd2a, -/*20171108 to latest +/*20171108 to 20191120 지역명 +20191127 to latest +등록하기 +Register */ MSG_ID_D2B = 0xd2b, -/*20171108 to latest +/*20171108 to 20191120 지역명 검색 +20191127 to latest +사용할 수 없는 단어가 포함되어 있습니다. */ MSG_ID_D2C = 0xd2c, -/*20171108 to latest +/*20171108 to 20191120 가입 요청하기 +20191127 to latest +파티가입 */ MSG_ID_D2D = 0xd2d, -/*20171108 to latest +/*20171108 to 20191120 신고하기 +20191127 to latest +1:1대화 */ MSG_ID_D2E = 0xd2e, -/*20171108 to latest +/*20171108 to 20191120 파티 모집 중단 +20191127 to latest +모집 중지 */ MSG_ID_D2F = 0xd2f, -/*20171108 to latest +/*20171108 to 20191120 지역명을 입력해주세요. +20191127 to latest +수정하기 */ MSG_ID_D30 = 0xd30, -/*20171108 to latest +/*20171108 to 20191120 지역 +20191127 to latest +전체 +All */ MSG_ID_D31 = 0xd31, -/*20171108 to latest +/*20171108 to 20191120 전 직업 +20191127 to latest +[%s] 님이 파티가입을 신청했습니다. */ MSG_ID_D32 = 0xd32, /*20171108 to latest @@ -20177,12 +20232,17 @@ Password 회원가입 */ MSG_ID_D56 = 0xd56, -/*20171122 to latest +/*20171122 to 20191120 노비스계열 +20191127 to latest +파티장 +Leader */ MSG_ID_D57 = 0xd57, -/*20171122 to latest +/*20171122 to 20191120 슈퍼노비스계열 +20191127 to latest +파티에 가입할 수 있는 레벨이 아닙니다. */ MSG_ID_D58 = 0xd58, /*20171122 to latest @@ -20195,12 +20255,16 @@ Password MSG_ID_D5A = 0xd5a, /*20171122 to 20180328 직업을 한 개 이상 선택해주세요. -20180404 to latest +20180404 to 20191120 모집을 희망하는 파티원의 직업을 한 개 이상 선택해 주세요. +20191127 to latest +검색내용입력 */ MSG_ID_D5B = 0xd5b, -/*20171122 to latest +/*20171122 to 20191127 지역명을 두 글자 이상 입력해주세요. +20191204 to latest +탱커 */ MSG_ID_D5C = 0xd5c, /*20171122 to latest @@ -20291,8 +20355,10 @@ Password 불량 단어가 포함된 이름은 검색할 수 없습니다. */ MSG_ID_D71 = 0xd71, -/*20171213 to latest +/*20171213 to 20191127 파티 마스터가 요청을 받을 수 없는 맵에 있습니다. +20191204 to latest +파티 마스터가 요청을 받을 수 없는 상태입니다. */ MSG_ID_D72 = 0xd72, /*20171213 to latest @@ -20301,8 +20367,10 @@ Password MSG_ID_D73 = 0xd73, /*20171213 to 20180328 님의 파티요청입니다. -20180404 to latest +20180404 to 20191127 님의 파티 가입 요청입니다. +20191204 to latest +딜러 */ MSG_ID_D74 = 0xd74, #endif @@ -20517,8 +20585,10 @@ Enter 4 english words and 2 chinese words The guild tax rate can't be set to more than 50%. */ MSG_ID_D9E = 0xd9e, -/*20180404 to latest +/*20180404 to 20191204 파티 가입 요청을 보냈습니다. +20191211 to latest +파티가 모험가 중개소에 등록되어, 파티장을 변경 할 수 없습니다. */ MSG_ID_D9F = 0xd9f, /*20180404 to latest @@ -20533,8 +20603,10 @@ The guild tax rate can't be set to more than 50%. 거절 */ MSG_ID_DA2 = 0xda2, -/*20180404 to latest +/*20180404 to 20191127 설정 권한은 파티장에게 있습니다. +20191204 to latest +힐러 */ MSG_ID_DA3 = 0xda3, /*20180404 to latest @@ -20593,8 +20665,10 @@ The guild tax rate can't be set to more than 50%. 파티 가입 요청 */ MSG_ID_DB1 = 0xdb1, -/*20180404 to latest +/*20180404 to 20191120 파티장이 아닌 경우, 모험가 중개소에 파티를 등록할 수 없습니다. +20191127 to latest +파티장이 아닌 경우 모험가 중개소에 파티를 등록할 수 없습니다. */ MSG_ID_DB2 = 0xdb2, /*20180404 to 20180404 @@ -20605,8 +20679,11 @@ The guild tax rate can't be set to more than 50%. MSG_ID_DB3 = 0xdb3, #endif #if PACKETVER >= 20180418 -/*20180418 to latest +/*20180418 to 20191127 존재하지 않는 파티 글입니다. +20191204 to latest +보조 +Support */ MSG_ID_DB4 = 0xdb4, /*20180418 to 20180418 @@ -20647,16 +20724,20 @@ Zoom Out 기능을 해제합니다 (Off) 파티장인 경우, 가입 요청을 할 수 없습니다. */ MSG_ID_DBB = 0xdbb, -/*20180418 to latest +/*20180418 to 20191204 모험가 중개소에 등록 중입니다. 잠시만 기다려 주세요. +20191211 to latest +파티 가입 최대 레벨은 최소 레벨 설정보다 높아야 합니다. */ MSG_ID_DBC = 0xdbc, /*20180418 to latest 더 이상 직업을 선택할 수 없습니다. */ MSG_ID_DBD = 0xdbd, -/*20180418 to latest +/*20180418 to 20191120 게임 중 해당 유저의 가입 요청을 받지 않습니다. +20191127 to latest +게임 중 해당 유저의 가입 요청을 받지 않습니다.(클라이언트 종료 전까지 유효) */ MSG_ID_DBE = 0xdbe, #endif @@ -21626,8 +21707,10 @@ VTC 인증에 실패하였습니다. 가나다 정렬 */ MSG_ID_E8A = 0xe8a, -/*20191113 to latest +/*20191113 to 20191224 기본 결과물은 %s %d개 이나, 낮은 확률로 최대 %d개까지 생성될 수 있습니다. +20200108 to latest +※[%s] %d~%d개 제작 */ MSG_ID_E8B = 0xe8b, /*20191113 to latest @@ -21639,6 +21722,225 @@ VTC 인증에 실패하였습니다. */ MSG_ID_E8D = 0xe8d, #endif +#if PACKETVER >= 20191127 +/*20191127 to latest +공격력 및 특성 공격력이 증가되었습니다. +*/ + MSG_ID_E8E = 0xe8e, +/*20191127 to latest +강인한 신념 효과가 해제되었습니다. +*/ + MSG_ID_E8F = 0xe8f, +/*20191127 to latest +HP 및 물리 저항력이 증가되었습니다. +*/ + MSG_ID_E90 = 0xe90, +/*20191127 to latest +굳건한 신념 효과가 해제되었습니다. +*/ + MSG_ID_E91 = 0xe91, +/*20191127 to latest +공격 속도 및 유도 공격 확률이 증가되었습니다. +*/ + MSG_ID_E92 = 0xe92, +/*20191127 to latest +신실한 신념 효과가 해제되었습니다. +*/ + MSG_ID_E93 = 0xe93, +/*20191127 to latest +POW, CRT 및 CON 이 증가되었습니다. +*/ + MSG_ID_E94 = 0xe94, +/*20191127 to latest +베네딕툼 효과가 해제되었습니다. +*/ + MSG_ID_E95 = 0xe95, +/*20191127 to latest +SPL, WIS 및 CRT 가 증가되었습니다. +*/ + MSG_ID_E96 = 0xe96, +/*20191127 to latest +렐리지오 효과가 해제되었습니다. +*/ + MSG_ID_E97 = 0xe97, +/*20191127 to latest +특성 공격력 및 특성 마법 공격력이 증가되었습니다. +*/ + MSG_ID_E98 = 0xe98, +/*20191127 to latest +콤페텐티아 효과가 해제되었습니다. +*/ + MSG_ID_E99 = 0xe99, +/*20191127 to latest +크리티컬 데미지 비율이 증가되었습니다. +*/ + MSG_ID_E9A = 0xe9a, +/*20191127 to latest +프레센스 아치에스 효과가 해제되었습니다. +*/ + MSG_ID_E9B = 0xe9b, +/*20191127 to latest +물리 저항력 무시 효과가 부여되었습니다. +*/ + MSG_ID_E9C = 0xe9c, +/*20191127 to latest +아르구투스 텔룸 효과가 해제되었습니다. +*/ + MSG_ID_E9D = 0xe9d, +/*20191127 to latest +마법 저항력 무시 효과가 부여되었습니다. +*/ + MSG_ID_E9E = 0xe9e, +/*20191127 to latest +아르구투스 비타 효과가 해제되었습니다. +*/ + MSG_ID_E9F = 0xe9f, +/*20191127 to latest +Num: %d/%d Weight: %d/%d +*/ + MSG_ID_EA0 = 0xea0, +#endif +#if PACKETVER >= 20191204 +/*20191204 to latest +서번트 웨폰 효과가 해제되었습니다. +*/ + MSG_ID_EA1 = 0xea1, +/*20191204 to latest +챠징 피어스 효과가 해제되었습니다. +*/ + MSG_ID_EA2 = 0xea2, +/*20191204 to latest +비고르 효과가 해제되었습니다. +*/ + MSG_ID_EA3 = 0xea3, +/*20191204 to latest +공격력이 증가하고, 방어력이 감소되었습니다. +*/ + MSG_ID_EA4 = 0xea4, +/*20191204 to latest +어택 스탠스 효과가 해제되었습니다. +*/ + MSG_ID_EA5 = 0xea5, +/*20191204 to latest +방어력이 증가하고, 공격력이 감소되었습니다. +*/ + MSG_ID_EA6 = 0xea6, +/*20191204 to latest +가드 스탠스 효과가 해제되었습니다. +*/ + MSG_ID_EA7 = 0xea7, +/*20191204 to latest +배리어가 부여되었습니다. +*/ + MSG_ID_EA8 = 0xea8, +/*20191204 to latest +가디언 쉴드 효과가 해제되었습니다. +*/ + MSG_ID_EA9 = 0xea9, +/*20191204 to latest +헌신 효과로 받는 데미지가 감소되었습니다. +*/ + MSG_ID_EAA = 0xeaa, +/*20191204 to latest +리바운드 쉴드 효과가 해제되었습니다. +*/ + MSG_ID_EAB = 0xeab, +/*20191204 to latest +성속성 마법 데미지와 암/불사속성 내성이 증가되었습니다. +*/ + MSG_ID_EAC = 0xeac, +/*20191204 to latest +홀리 쉴드 효과가 해제되었습니다. +*/ + MSG_ID_EAD = 0xead, +/*20191204 to latest +즉시 부활 효과가 부여되었습니다. +*/ + MSG_ID_EAE = 0xeae, +/*20191204 to latest +얼티메이트 세크리파이스 효과가 해제되었습니다. +*/ + MSG_ID_EAF = 0xeaf, +/*20191204 to latest +특정 스킬의 효능이 변경되었습니다. +*/ + MSG_ID_EB0 = 0xeb0, +/*20191204 to latest +클라이막스 효과가 해제되었습니다. +*/ + MSG_ID_EB1 = 0xeb1, +/*20191204 to latest +특정 스킬의 효능이 변경되었습니다. +*/ + MSG_ID_EB2 = 0xeb2, +/*20191204 to latest +쉐도우 익시드 효과가 해제되었습니다. +*/ + MSG_ID_EB3 = 0xeb3, +/*20191204 to latest +물리 저항력 무시 효과가 부여되었습니다. +*/ + MSG_ID_EB4 = 0xeb4, +/*20191204 to latest +포텐트 베넘 효과가 해제되었습니다. +*/ + MSG_ID_EB5 = 0xeb5, +/*20191204 to latest +매 공격 시, 일정 확률로 대상이 받는 데미지를 증가시킵니다. +*/ + MSG_ID_EB6 = 0xeb6, +/*20191204 to latest +인챈팅 쉐도우 효과가 해제되었습니다. +*/ + MSG_ID_EB7 = 0xeb7, +#endif +#if PACKETVER >= 20191211 +/*20191211 to latest +토벌 카운트 On +*/ + MSG_ID_EB8 = 0xeb8, +/*20191211 to latest +토벌 카운트 Off +*/ + MSG_ID_EB9 = 0xeb9, +/*20191211 to latest +대상의 AP가 최대치입니다 +*/ + MSG_ID_EBA = 0xeba, +/*20191211 to latest + ^ff0000본 아이템을 구매 후 7일 이내에는 청약 철회가 가능합니다. 다만, 7일이 지났거나 아이템을 개봉하시면 청약 철회 대상에서 제외 됩니다.또한 구매시 사용된 무료캐시는 청약철회시 반환되지 않습니다.일부(이벤트) 아이템의 경우 이벤트 종료 시 삭제될 수 있으며, 아이템 설명 내 기재된 삭제기간을 확인해 주시기 바랍니다.^000000 정말로 아이템을 구매하시겠습니까? 구매하실 경우 %d캐시가 차감됩니다. +*/ + MSG_ID_EBB = 0xebb, +/*20191211 to latest + ^ff0000본 아이템을 구매 후 7일 이내에는 청약 철회가 가능합니다. 다만, 7일이 지났거나 아이템을 개봉하시면 청약 철회 대상에서 제외 됩니다.또한 구매시 사용된 무료캐시는 청약철회시 반환되지 않습니다.일부(이벤트) 아이템의 경우 이벤트 종료 시 삭제될 수 있으며, 아이템 설명 내 기재된 삭제기간을 확인해 주시기 바랍니다.^000000 정말로 아이템을 구매하시겠습니까? 구매하실 경우 일반 %d캐시, 무료 %d캐시가 차감됩니다. +*/ + MSG_ID_EBC = 0xebc, +#endif +#if PACKETVER >= 20191218 +/*20191218 to latest +서번트 웨폰 %d개가 필요합니다. +*/ + MSG_ID_EBD = 0xebd, +/*20191218 to latest +https://member.gnjoy.com.tw/billing.aspx +*/ + MSG_ID_EBE = 0xebe, +#endif +#if PACKETVER >= 20200108 +/*20200108 to latest +역순 정렬 +*/ + MSG_ID_EBF = 0xebf, +/*20200108 to latest +검색 내용 입력 +*/ + MSG_ID_EC0 = 0xec0, +/*20200108 to latest +검색 +Search +*/ + MSG_ID_EC1 = 0xec1, +#endif }; #endif /* MAP_MESSAGES_RE_H */ diff --git a/src/map/messages_sak.h b/src/map/messages_sak.h index 2c7bfd661..723f1f1f4 100644 --- a/src/map/messages_sak.h +++ b/src/map/messages_sak.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2013-2019 Hercules Dev Team - * Copyright (C) 2018-2019 Andrei Karas (4144) + * Copyright (C) 2013-2020 Hercules Dev Team + * Copyright (C) 2018-2020 Andrei Karas (4144) * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/map/messages_zero.h b/src/map/messages_zero.h index 0f0511c60..18aed7d5b 100644 --- a/src/map/messages_zero.h +++ b/src/map/messages_zero.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2013-2019 Hercules Dev Team - * Copyright (C) 2018-2019 Andrei Karas (4144) + * Copyright (C) 2013-2020 Hercules Dev Team + * Copyright (C) 2018-2020 Andrei Karas (4144) * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -24,7 +24,7 @@ /* This file is autogenerated, please do not commit manual changes -Latest version: 20191113 +Latest version: 20191224 */ enum clif_messages { @@ -1227,9 +1227,11 @@ Cart Items [Alt+W] Basic Information */ MSG_BASICINFOWND = 0xee, -/*20171018 to latest +/*20171018 to 20191204 이무기로는 이스킬을 사용할수 없습니다. The skill cannot be used with this weapon. +20191211 to latest +현재 무기로는 스킬을 사용할 수 없습니다. */ MSG_USESKILL_FAIL_NOT_SUITABLE_WEAPON = 0xef, /*20171018 to latest @@ -16542,92 +16544,143 @@ MOTP 입력 시간이 초과되었습니다. 처음부터 다시 로그인해주 모험가 중개소 등록 */ MSG_ID_D1C = 0xd1c, -/*20171031 to latest +/*20171031 to 20191113 모집 중단 +20191127 to latest +모험가 중개소 등록하기 */ MSG_ID_D1D = 0xd1d, -/*20171031 to latest +/*20171031 to 20191113 모험가 중개소 설정 +20191127 to latest +모집 중단 */ MSG_ID_D1E = 0xd1e, -/*20171031 to latest +/*20171031 to 20191113 전 지역 +20191127 to latest +메모 +Note */ MSG_ID_D1F = 0xd1f, -/*20171031 to latest +/*20171031 to 20191113 직접기재 +20191127 to latest +퀘스트 +Quest */ MSG_ID_D20 = 0xd20, -/*20171031 to latest +/*20171031 to 20191113 검사계열 +20191127 to latest +필드 */ MSG_ID_D21 = 0xd21, -/*20171031 to latest +/*20171031 to 20191113 법사계열 +20191127 to latest +던전 +Dungeon */ MSG_ID_D22 = 0xd22, -/*20171031 to latest +/*20171031 to 20191113 궁수계열 +20191127 to latest +MD */ MSG_ID_D23 = 0xd23, -/*20171031 to latest +/*20171031 to 20191113 복사계열 +20191127 to latest +낙원단 */ MSG_ID_D24 = 0xd24, -/*20171031 to latest +/*20171031 to 20191113 상인계열 +20191127 to latest +기타 +Other */ MSG_ID_D25 = 0xd25, -/*20171031 to latest +/*20171031 to 20191113 도둑계열 +20191127 to latest +검색 +Search */ MSG_ID_D26 = 0xd26, -/*20171031 to latest +/*20171031 to 20191113 태권계열 +20191127 to latest +초기화 */ MSG_ID_D27 = 0xd27, -/*20171031 to latest +/*20171031 to 20191113 닌자계열 +20191127 to latest +파티가입신청 */ MSG_ID_D28 = 0xd28, -/*20171031 to latest +/*20171031 to 20191113 건슬링거계열 +20191127 to latest +목적 */ MSG_ID_D29 = 0xd29, -/*20171031 to latest +/*20171031 to 20191113 도람족계열 +20191127 to latest +※욕설, 현거래등 운영 규칙에 위배되는 목적으로 사용 시 처벌 받을 수 있습니다. */ MSG_ID_D2A = 0xd2a, -/*20171031 to latest +/*20171031 to 20191113 지역명 +20191127 to latest +등록하기 +Register */ MSG_ID_D2B = 0xd2b, -/*20171031 to latest +/*20171031 to 20191113 지역명 검색 +20191127 to latest +사용할 수 없는 단어가 포함되어 있습니다. */ MSG_ID_D2C = 0xd2c, -/*20171031 to latest +/*20171031 to 20191113 가입 요청하기 +20191127 to latest +파티가입 */ MSG_ID_D2D = 0xd2d, -/*20171031 to latest +/*20171031 to 20191113 신고하기 +20191127 to latest +1:1대화 */ MSG_ID_D2E = 0xd2e, -/*20171031 to latest +/*20171031 to 20191113 파티 모집 중단 +20191127 to latest +모집 중지 */ MSG_ID_D2F = 0xd2f, -/*20171031 to latest +/*20171031 to 20191113 지역명을 입력해주세요. +20191127 to latest +수정하기 */ MSG_ID_D30 = 0xd30, -/*20171031 to latest +/*20171031 to 20191113 지역 +20191127 to latest +전체 +All */ MSG_ID_D31 = 0xd31, -/*20171031 to latest +/*20171031 to 20191113 전 직업 +20191127 to latest +[%s] 님이 파티가입을 신청했습니다. */ MSG_ID_D32 = 0xd32, #endif @@ -16802,12 +16855,17 @@ Password 회원가입 */ MSG_ID_D56 = 0xd56, -/*20171115 to latest +/*20171115 to 20191113 노비스계열 +20191127 to latest +파티장 +Leader */ MSG_ID_D57 = 0xd57, -/*20171115 to latest +/*20171115 to 20191113 슈퍼노비스계열 +20191127 to latest +파티에 가입할 수 있는 레벨이 아닙니다. */ MSG_ID_D58 = 0xd58, /*20171115 to latest @@ -16820,12 +16878,16 @@ Password MSG_ID_D5A = 0xd5a, /*20171115 to 20180321 직업을 한 개 이상 선택해주세요. -20180328 to latest +20180328 to 20191113 모집을 희망하는 파티원의 직업을 한 개 이상 선택해 주세요. +20191127 to latest +검색내용입력 */ MSG_ID_D5B = 0xd5b, -/*20171115 to latest +/*20171115 to 20191127 지역명을 두 글자 이상 입력해주세요. +20191204 to latest +탱커 */ MSG_ID_D5C = 0xd5c, /*20171115 to latest @@ -16924,8 +16986,10 @@ Password 불량 단어가 포함된 이름은 검색할 수 없습니다. */ MSG_ID_D71 = 0xd71, -/*20171213 to latest +/*20171213 to 20191127 파티 마스터가 요청을 받을 수 없는 맵에 있습니다. +20191204 to latest +파티 마스터가 요청을 받을 수 없는 상태입니다. */ MSG_ID_D72 = 0xd72, /*20171213 to latest @@ -16934,8 +16998,10 @@ Password MSG_ID_D73 = 0xd73, /*20171213 to 20180321 님의 파티요청입니다. -20180328 to latest +20180328 to 20191127 님의 파티 가입 요청입니다. +20191204 to latest +딜러 */ MSG_ID_D74 = 0xd74, /*20171213 to latest @@ -17148,8 +17214,10 @@ Enter 4 english words and 2 chinese words The guild tax rate can't be set to more than 50%. */ MSG_ID_D9E = 0xd9e, -/*20180328 to latest +/*20180328 to 20191204 파티 가입 요청을 보냈습니다. +20191211 to latest +파티가 모험가 중개소에 등록되어, 파티장을 변경 할 수 없습니다. */ MSG_ID_D9F = 0xd9f, /*20180328 to latest @@ -17164,8 +17232,10 @@ The guild tax rate can't be set to more than 50%. 거절 */ MSG_ID_DA2 = 0xda2, -/*20180328 to latest +/*20180328 to 20191127 설정 권한은 파티장에게 있습니다. +20191204 to latest +힐러 */ MSG_ID_DA3 = 0xda3, /*20180328 to latest @@ -17226,16 +17296,21 @@ The guild tax rate can't be set to more than 50%. 파티 가입 요청 */ MSG_ID_DB1 = 0xdb1, -/*20180411 to latest +/*20180411 to 20191113 파티장이 아닌 경우, 모험가 중개소에 파티를 등록할 수 없습니다. +20191127 to latest +파티장이 아닌 경우 모험가 중개소에 파티를 등록할 수 없습니다. */ MSG_ID_DB2 = 0xdb2, /*20180411 to latest 파티 모집을 중단할 수 없습니다. */ MSG_ID_DB3 = 0xdb3, -/*20180411 to latest +/*20180411 to 20191127 존재하지 않는 파티 글입니다. +20191204 to latest +보조 +Support */ MSG_ID_DB4 = 0xdb4, #endif @@ -17268,16 +17343,20 @@ Zoom Out 기능을 해제합니다 (Off) 파티장인 경우, 가입 요청을 할 수 없습니다. */ MSG_ID_DBB = 0xdbb, -/*20180425 to latest +/*20180425 to 20191211 모험가 중개소에 등록 중입니다. 잠시만 기다려 주세요. +20191224 to latest +파티 가입 최대 레벨은 최소 레벨 설정보다 높아야 합니다. */ MSG_ID_DBC = 0xdbc, /*20180425 to latest 더 이상 직업을 선택할 수 없습니다. */ MSG_ID_DBD = 0xdbd, -/*20180425 to latest +/*20180425 to 20191113 게임 중 해당 유저의 가입 요청을 받지 않습니다. +20191127 to latest +게임 중 해당 유저의 가입 요청을 받지 않습니다.(클라이언트 종료 전까지 유효) */ MSG_ID_DBE = 0xdbe, /*20180425 to latest @@ -18253,6 +18332,210 @@ VTC 인증에 실패하였습니다. */ MSG_ID_E8D = 0xe8d, #endif +#if PACKETVER >= 20191127 +/*20191127 to latest +공격력 및 특성 공격력이 증가되었습니다. +*/ + MSG_ID_E8E = 0xe8e, +/*20191127 to latest +강인한 신념 효과가 해제되었습니다. +*/ + MSG_ID_E8F = 0xe8f, +/*20191127 to latest +HP 및 물리 저항력이 증가되었습니다. +*/ + MSG_ID_E90 = 0xe90, +/*20191127 to latest +굳건한 신념 효과가 해제되었습니다. +*/ + MSG_ID_E91 = 0xe91, +/*20191127 to latest +공격 속도 및 유도 공격 확률이 증가되었습니다. +*/ + MSG_ID_E92 = 0xe92, +/*20191127 to latest +신실한 신념 효과가 해제되었습니다. +*/ + MSG_ID_E93 = 0xe93, +/*20191127 to latest +POW, CRT 및 CON 이 증가되었습니다. +*/ + MSG_ID_E94 = 0xe94, +/*20191127 to latest +베네딕툼 효과가 해제되었습니다. +*/ + MSG_ID_E95 = 0xe95, +/*20191127 to latest +SPL, WIS 및 CRT 가 증가되었습니다. +*/ + MSG_ID_E96 = 0xe96, +/*20191127 to latest +렐리지오 효과가 해제되었습니다. +*/ + MSG_ID_E97 = 0xe97, +/*20191127 to latest +특성 공격력 및 특성 마법 공격력이 증가되었습니다. +*/ + MSG_ID_E98 = 0xe98, +/*20191127 to latest +콤페텐티아 효과가 해제되었습니다. +*/ + MSG_ID_E99 = 0xe99, +/*20191127 to latest +크리티컬 데미지 비율이 증가되었습니다. +*/ + MSG_ID_E9A = 0xe9a, +/*20191127 to latest +프레센스 아치에스 효과가 해제되었습니다. +*/ + MSG_ID_E9B = 0xe9b, +/*20191127 to latest +물리 저항력 무시 효과가 부여되었습니다. +*/ + MSG_ID_E9C = 0xe9c, +/*20191127 to latest +아르구투스 텔룸 효과가 해제되었습니다. +*/ + MSG_ID_E9D = 0xe9d, +/*20191127 to latest +마법 저항력 무시 효과가 부여되었습니다. +*/ + MSG_ID_E9E = 0xe9e, +/*20191127 to latest +아르구투스 비타 효과가 해제되었습니다. +*/ + MSG_ID_E9F = 0xe9f, +/*20191127 to latest +Num: %d/%d Weight: %d/%d +*/ + MSG_ID_EA0 = 0xea0, +#endif +#if PACKETVER >= 20191204 +/*20191204 to latest +서번트 웨폰 효과가 해제되었습니다. +*/ + MSG_ID_EA1 = 0xea1, +/*20191204 to latest +챠징 피어스 효과가 해제되었습니다. +*/ + MSG_ID_EA2 = 0xea2, +/*20191204 to latest +비고르 효과가 해제되었습니다. +*/ + MSG_ID_EA3 = 0xea3, +/*20191204 to latest +공격력이 증가하고, 방어력이 감소되었습니다. +*/ + MSG_ID_EA4 = 0xea4, +/*20191204 to latest +어택 스탠스 효과가 해제되었습니다. +*/ + MSG_ID_EA5 = 0xea5, +/*20191204 to latest +방어력이 증가하고, 공격력이 감소되었습니다. +*/ + MSG_ID_EA6 = 0xea6, +/*20191204 to latest +가드 스탠스 효과가 해제되었습니다. +*/ + MSG_ID_EA7 = 0xea7, +/*20191204 to latest +배리어가 부여되었습니다. +*/ + MSG_ID_EA8 = 0xea8, +/*20191204 to latest +가디언 쉴드 효과가 해제되었습니다. +*/ + MSG_ID_EA9 = 0xea9, +/*20191204 to latest +헌신 효과로 받는 데미지가 감소되었습니다. +*/ + MSG_ID_EAA = 0xeaa, +/*20191204 to latest +리바운드 쉴드 효과가 해제되었습니다. +*/ + MSG_ID_EAB = 0xeab, +/*20191204 to latest +성속성 마법 데미지와 암/불사속성 내성이 증가되었습니다. +*/ + MSG_ID_EAC = 0xeac, +/*20191204 to latest +홀리 쉴드 효과가 해제되었습니다. +*/ + MSG_ID_EAD = 0xead, +/*20191204 to latest +즉시 부활 효과가 부여되었습니다. +*/ + MSG_ID_EAE = 0xeae, +/*20191204 to latest +얼티메이트 세크리파이스 효과가 해제되었습니다. +*/ + MSG_ID_EAF = 0xeaf, +/*20191204 to latest +특정 스킬의 효능이 변경되었습니다. +*/ + MSG_ID_EB0 = 0xeb0, +/*20191204 to latest +클라이막스 효과가 해제되었습니다. +*/ + MSG_ID_EB1 = 0xeb1, +/*20191204 to latest +특정 스킬의 효능이 변경되었습니다. +*/ + MSG_ID_EB2 = 0xeb2, +/*20191204 to latest +쉐도우 익시드 효과가 해제되었습니다. +*/ + MSG_ID_EB3 = 0xeb3, +/*20191204 to latest +물리 저항력 무시 효과가 부여되었습니다. +*/ + MSG_ID_EB4 = 0xeb4, +/*20191204 to latest +포텐트 베넘 효과가 해제되었습니다. +*/ + MSG_ID_EB5 = 0xeb5, +/*20191204 to latest +매 공격 시, 일정 확률로 대상이 받는 데미지를 증가시킵니다. +*/ + MSG_ID_EB6 = 0xeb6, +/*20191204 to latest +인챈팅 쉐도우 효과가 해제되었습니다. +*/ + MSG_ID_EB7 = 0xeb7, +/*20191204 to latest +토벌 카운트 On +*/ + MSG_ID_EB8 = 0xeb8, +/*20191204 to latest +토벌 카운트 Off +*/ + MSG_ID_EB9 = 0xeb9, +#endif +#if PACKETVER >= 20191211 +/*20191211 to latest +대상의 AP가 최대치입니다 +*/ + MSG_ID_EBA = 0xeba, +/*20191211 to latest + ^ff0000본 아이템을 구매 후 7일 이내에는 청약 철회가 가능합니다. 다만, 7일이 지났거나 아이템을 개봉하시면 청약 철회 대상에서 제외 됩니다.또한 구매시 사용된 무료캐시는 청약철회시 반환되지 않습니다.일부(이벤트) 아이템의 경우 이벤트 종료 시 삭제될 수 있으며, 아이템 설명 내 기재된 삭제기간을 확인해 주시기 바랍니다.^000000 정말로 아이템을 구매하시겠습니까? 구매하실 경우 %d캐시가 차감됩니다. +*/ + MSG_ID_EBB = 0xebb, +/*20191211 to latest + ^ff0000본 아이템을 구매 후 7일 이내에는 청약 철회가 가능합니다. 다만, 7일이 지났거나 아이템을 개봉하시면 청약 철회 대상에서 제외 됩니다.또한 구매시 사용된 무료캐시는 청약철회시 반환되지 않습니다.일부(이벤트) 아이템의 경우 이벤트 종료 시 삭제될 수 있으며, 아이템 설명 내 기재된 삭제기간을 확인해 주시기 바랍니다.^000000 정말로 아이템을 구매하시겠습니까? 구매하실 경우 일반 %d캐시, 무료 %d캐시가 차감됩니다. +*/ + MSG_ID_EBC = 0xebc, +#endif +#if PACKETVER >= 20191224 +/*20191224 to latest +서번트 웨폰 %d개가 필요합니다. +*/ + MSG_ID_EBD = 0xebd, +/*20191224 to latest +https://member.gnjoy.com.tw/billing.aspx +*/ + MSG_ID_EBE = 0xebe, +#endif }; #endif /* MAP_MESSAGES_ZERO_H */ diff --git a/src/map/mob.c b/src/map/mob.c index dce084a23..4b74abc8f 100644 --- a/src/map/mob.c +++ b/src/map/mob.c @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -4178,6 +4178,50 @@ static void mob_read_db_stats_sub(struct mob_db *entry, struct config_setting_t } /** + * Processes the view data for a mob_db entry. + * + * @param[in,out] entry The destination mob_db entry, already initialized + * (mob_id, status.mode are expected to be already set). + * @param[in] t The libconfig entry. + */ +static void mob_read_db_viewdata_sub(struct mob_db *entry, struct config_setting_t *t) +{ + nullpo_retv(entry); + nullpo_retv(t); + + struct config_setting_t *it; + int i32; + + if ((it = libconfig->setting_get_member(t, "SpriteId")) != NULL) + entry->vd.class = libconfig->setting_get_int(it); + if ((it = libconfig->setting_get_member(t, "WeaponId")) != NULL) + entry->vd.weapon = libconfig->setting_get_int(it); + if ((it = libconfig->setting_get_member(t, "ShieldId")) != NULL) + entry->vd.shield = libconfig->setting_get_int(it); + if ((it = libconfig->setting_get_member(t, "RobeId")) != NULL) + entry->vd.robe = libconfig->setting_get_int(it); + if ((it = libconfig->setting_get_member(t, "HeadTopId")) != NULL) + entry->vd.head_top = libconfig->setting_get_int(it); + if ((it = libconfig->setting_get_member(t, "HeadMidId")) != NULL) + entry->vd.head_mid = libconfig->setting_get_int(it); + if ((it = libconfig->setting_get_member(t, "HeadLowId")) != NULL) + entry->vd.head_bottom = libconfig->setting_get_int(it); + if ((it = libconfig->setting_get_member(t, "HairStyleId")) != NULL) + entry->vd.hair_style = libconfig->setting_get_int(it); + if ((it = libconfig->setting_get_member(t, "BodyStyleId")) != NULL) + entry->vd.body_style = libconfig->setting_get_int(it); + if ((it = libconfig->setting_get_member(t, "HairColorId")) != NULL) + entry->vd.hair_color = libconfig->setting_get_uint16(it); + if ((it = libconfig->setting_get_member(t, "BodyColorId")) != NULL) + entry->vd.cloth_color = libconfig->setting_get_uint16(it); + if (mob->lookup_const(t, "Gender", &i32) && i32 >= 0) { + entry->vd.sex = (char)i32; + } + if ((it = libconfig->setting_get_member(t, "Options")) != NULL) + entry->option = libconfig->setting_get_int(it) &~ (OPTION_HIDE | OPTION_CLOAK | OPTION_INVISIBLE); +} + +/** * Processes the mode for a mob_db entry. * * @param[in] entry The destination mob_db entry, already initialized. @@ -4657,6 +4701,22 @@ static int mob_read_db_sub(struct config_setting_t *mobt, int n, const char *sou * AegisName: (chance, "Option Drop Group") * ... * } + * DamageTakenRate: damage taken rate + * ViewData: { + * SpriteId: sprite id + * WeaponId: weapon id + * ShieldId: shield id + * RobeId: garment id + * HeadTopId: top headgear id + * HeadMidId: middle headgear id + * HeadLowId: lower headgear id + * HairStyleId: hair style id + * BodyStyleId: clothes id + * HairColorId: hair color id + * BodyColorId: clothes color id + * Gender: gender + * Options: options + * } */ if (!libconfig->setting_lookup_int(mobt, "Id", &i32)) { @@ -4886,6 +4946,12 @@ static int mob_read_db_sub(struct config_setting_t *mobt, int n, const char *sou md.dmg_taken_rate = 100; } + if ((t = libconfig->setting_get_member(mobt, "ViewData"))) { + if (config_setting_is_group(t)) { + mob->read_db_viewdata_sub(&md, t); + } + } + mob->read_db_additional_fields(&md, mobt, n, source); return mob->db_validate_entry(&md, n, source); @@ -5021,46 +5087,15 @@ static void mob_name_constants(void) #endif // ENABLE_CASE_CHECK } -/*========================================== - * MOB display graphic change data reading - *------------------------------------------*/ -static bool mob_readdb_mobavail(char *str[], int columns, int current) +static void mob_mobavail_removal_notice(void) { - int class_, view_class; - - nullpo_retr(false, str); - class_=atoi(str[0]); - - if(mob->db(class_) == mob->dummy) { - // invalid class (probably undefined in db) - ShowWarning("mob_readdb_mobavail: Unknown mob id %d.\n", class_); - return false; - } - - view_class = atoi(str[1]); + char filepath[256]; - memset(&mob->db_data[class_]->vd, 0, sizeof(struct view_data)); - mob->db_data[class_]->vd.class = view_class; + safesnprintf(filepath, sizeof(filepath), "%s/mob_avail.txt", map->db_path); - //Player sprites - if (pc->db_checkid(view_class) && columns == 12) { - mob->db_data[class_]->vd.sex=atoi(str[2]); - mob->db_data[class_]->vd.hair_style=atoi(str[3]); - mob->db_data[class_]->vd.hair_color=atoi(str[4]); - mob->db_data[class_]->vd.weapon=atoi(str[5]); - mob->db_data[class_]->vd.shield=atoi(str[6]); - mob->db_data[class_]->vd.head_top=atoi(str[7]); - mob->db_data[class_]->vd.head_mid=atoi(str[8]); - mob->db_data[class_]->vd.head_bottom=atoi(str[9]); - mob->db_data[class_]->option=atoi(str[10])&~(OPTION_HIDE|OPTION_CLOAK|OPTION_INVISIBLE); - mob->db_data[class_]->vd.cloth_color=atoi(str[11]); // Monster player dye option - Valaris + if (exists(filepath)) { + ShowError("mob_mobavail_removal_notice: the usage of mob_avail.txt is no longer supported, move your data using tools/mobavailconverter.py and delete the database file to suspend this message.\n"); } - else if(columns==3) - mob->db_data[class_]->vd.head_bottom=atoi(str[2]); // mob equipment [Valaris] - else if( columns != 2 ) - return false; - - return true; } /*========================================== @@ -5578,7 +5613,7 @@ static void mob_load(bool minimal) mob->readchatdb(); mob->readdb(); mob->readskilldb(); - sv->readdb(map->db_path, "mob_avail.txt", ',', 2, 12, -1, mob->readdb_mobavail); + mob->mobavail_removal_notice(); mob->read_randommonster(); sv->readdb(map->db_path, DBPATH"mob_race2_db.txt", ',', 2, 20, -1, mob->readdb_race2); } @@ -5900,8 +5935,9 @@ void mob_defaults(void) mob->read_db_mode_sub = mob_read_db_mode_sub; mob->read_db_drops_option = mob_read_db_drops_option; mob->read_db_stats_sub = mob_read_db_stats_sub; + mob->read_db_viewdata_sub = mob_read_db_viewdata_sub; mob->name_constants = mob_name_constants; - mob->readdb_mobavail = mob_readdb_mobavail; + mob->mobavail_removal_notice = mob_mobavail_removal_notice; mob->read_randommonster = mob_read_randommonster; mob->parse_row_chatdb = mob_parse_row_chatdb; mob->readchatdb = mob_readchatdb; diff --git a/src/map/mob.h b/src/map/mob.h index 6c3aa938b..8fd16f191 100644 --- a/src/map/mob.h +++ b/src/map/mob.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -589,8 +589,9 @@ struct mob_interface { uint32 (*read_db_mode_sub) (struct mob_db *entry, struct config_setting_t *t); struct optdrop_group *(*read_db_drops_option) (struct mob_db *entry, const char *item_name, struct config_setting_t *drop, int *drop_rate); void (*read_db_stats_sub) (struct mob_db *entry, struct config_setting_t *t); + void (*read_db_viewdata_sub) (struct mob_db *entry, struct config_setting_t *t); void (*name_constants) (void); - bool (*readdb_mobavail) (char *str[], int columns, int current); + void (*mobavail_removal_notice) (void); int (*read_randommonster) (void); bool (*parse_row_chatdb) (char **str, const char *source, int line, int *last_msg_id); void (*readchatdb) (void); diff --git a/src/map/npc.c b/src/map/npc.c index 868b8711a..cc588e52c 100644 --- a/src/map/npc.c +++ b/src/map/npc.c @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/map/npc.h b/src/map/npc.h index 5ff63532d..c5f44f0e0 100644 --- a/src/map/npc.h +++ b/src/map/npc.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/map/npc_chat.c b/src/map/npc_chat.c index 92393122e..0ca84cff4 100644 --- a/src/map/npc_chat.c +++ b/src/map/npc_chat.c @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/map/packets.h b/src/map/packets.h index 326f41791..90b9beeb7 100644 --- a/src/map/packets.h +++ b/src/map/packets.h @@ -2,7 +2,7 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2013-2015 Hercules Dev Team + * Copyright (C) 2013-2020 Hercules Dev Team * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -726,6 +726,11 @@ packet(0x96e,clif->ackmergeitems); packet(0x0843,clif->pGMRemove2,2); #endif +// all versions +#if PACKETVER >= 20100824 + packet(0x0844,clif->pCashShopOpen1); +#endif + //2010-11-24aRagexeRE #if PACKETVER >= 20101124 packet(0x0288,clif->pcashshop_buy,4,8); @@ -776,7 +781,6 @@ packet(0x96e,clif->ackmergeitems); //2011-07-18aRagexe (Thanks to Yommy!) #if PACKETVER >= 20110718 // shuffle packets not added - packet(0x0844,clif->pCashShopOpen,2);/* tell server cashshop window is being open */ packet(0x084a,clif->pCashShopClose,2);/* tell server cashshop window is being closed */ packet(0x0846,clif->pCashShopReqTab,2); packet(0x0848,clif->pCashShopBuy,2); @@ -1975,4 +1979,12 @@ packet(0x96e,clif->ackmergeitems); packet(0x0b35,clif->pReqGearOff); #endif +#if PACKETVER >= 20190724 + packet(0x0b4c,clif->pCashShopLimitedReq); +#endif + +#if PACKETVER >= 20191224 + packet(0x0b6d,clif->pCashShopOpen2); +#endif + #endif /* MAP_PACKETS_H */ diff --git a/src/map/packets_keys_main.h b/src/map/packets_keys_main.h index 34f4255fc..1d5f96ee9 100644 --- a/src/map/packets_keys_main.h +++ b/src/map/packets_keys_main.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2013-2019 Hercules Dev Team - * Copyright (C) 2018-2019 Andrei Karas (4144) + * Copyright (C) 2013-2020 Hercules Dev Team + * Copyright (C) 2018-2020 Andrei Karas (4144) * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -37,7 +37,7 @@ packetKeys(0x49357d72,0x22c370a1,0x5f836591); #endif -// 2010-11-23aRagexeRE, 2010-11-24aRagexeRE, 2010-11-24bRagexeRE, 2010-11-25aRagexeRE, 2010-11-26aRagexeRE, 2010-11-30aRagexeRE, 2010-12-07aRagexeRE, 2010-12-14aRagexeRE, 2010-12-21aRagexeRE, 2010-12-23aRagexeRE, 2010-12-28aRagexeRE, 2011-01-04aRagexeRE, 2011-01-05aRagexeRE, 2011-01-11aRagexeRE, 2011-01-18aRagexeRE, 2011-01-25aRagexeRE, 2011-01-26aRagexeRE, 2011-01-26bRagexeRE, 2011-01-31aRagexeRE, 2011-01-31bRagexeRE, 2011-01-31cRagexeRE, 2011-02-08aRagexeRE, 2011-02-15aRagexeRE, 2011-02-22aRagexeRE, 2011-02-23aRagexeRE, 2011-02-23bRagexeRE, 2011-02-24aRagexeRE, 2011-02-25aRagexeRE, 2011-02-28aRagexeRE, 2011-03-08aRagexeRE, 2011-03-09aRagexeRE, 2011-03-09bRagexeRE, 2011-03-09cRagexeRE, 2011-03-09dRagexeRE, 2011-03-15aRagexeRE, 2011-03-22aRagexeRE, 2011-03-29aRagexeRE, 2011-03-30aRagexeRE, 2011-03-30cRagexeRE, 2011-04-05aRagexeRE, 2011-04-12aRagexeRE, 2011-04-19aRagexeRE, 2011-04-20aRagexeRE, 2011-04-26aRagexeRE, 2011-04-27aRagexeRE, 2011-05-03aRagexeRE, 2011-05-11aRagexeRE, 2011-05-17bRagexeRE, 2011-05-24aRagexeRE, 2011-05-26aRagexeRE, 2011-05-31aRagexeRE, 2011-06-07aRagexeRE, 2011-06-08aRagexeRE, 2011-06-08bRagexeRE, 2011-06-08cRagexeRE, 2011-06-09aRagexeRE, 2011-06-14bRagexeRE, 2011-06-22aRagexeRE, 2011-06-28aRagexeRE, 2011-07-06aRagexeRE, 2011-07-13aRagexeRE, 2011-07-13bRagexeRE, 2011-07-13cRagexeRE, 2011-07-19aRagexeRE, 2011-07-26aRagexeRE, 2011-08-03aRagexeRE, 2011-08-03bRagexeRE, 2011-08-10aRagexeRE, 2013-12-23aRagexeRE, 2014-05-08aRagexe, 2014-05-08aRagexeRE, 2014-06-11eRagexe, 2015-02-25hRagexe, 2018-03-15aRagexe, 2018-03-21aRagexe, 2018-03-21aRagexeRE, 2018-03-28bRagexe, 2018-03-28bRagexeRE, 2018-04-04bRagexe, 2018-04-04cRagexeRE, 2018-04-18aRagexe, 2018-04-18bRagexeRE, 2018-04-25cRagexe, 2018-04-25cRagexeRE, 2018-05-02bRagexe, 2018-05-02bRagexeRE, 2018-05-02dRagexeRE, 2018-05-09aRagexe, 2018-05-16cRagexe, 2018-05-16cRagexeRE, 2018-05-23aRagexe, 2018-05-23aRagexeRE, 2018-05-30aRagexe, 2018-05-30bRagexeRE, 2018-05-30cRagexeRE, 2018-06-05bRagexe, 2018-06-05bRagexeRE, 2018-06-12aRagexeRE, 2018-06-12bRagexeRE, 2018-06-20cRagexe, 2018-06-20dRagexeRE, 2018-06-20eRagexe, 2018-06-20eRagexeRE, 2018-06-21aRagexe, 2018-06-21aRagexeRE, 2018-07-04aRagexe, 2018-07-04aRagexeRE, 2018-07-11aRagexeRE, 2018-07-18bRagexe, 2018-07-18bRagexeRE, 2018-07-18bRagexeRE1, 2018-07-18cRagexe, 2018-07-18cRagexeRE, 2018-08-01cRagexe, 2018-08-01cRagexeRE, 2018-08-08bRagexe, 2018-08-08bRagexeRE, 2018-08-22cRagexe, 2018-08-22cRagexeRE, 2018-08-29aRagexe, 2018-08-29aRagexeRE, 2018-08-29bRagexeRE, 2018-08-31aRagexe, 2018-09-12dRagexe, 2018-09-12dRagexeRE, 2018-09-19aRagexe, 2018-09-19aRagexeRE, 2018-10-02aRagexe, 2018-10-02aRagexeRE, 2018-10-02bRagexe, 2018-10-02bRagexeRE, 2018-10-17_02aRagexe, 2018-10-17_02aRagexeRE, 2018-10-17_03aRagexe, 2018-10-17_03aRagexeRE, 2018-10-17bRagexe, 2018-10-17bRagexeRE, 2018-10-24bRagexe, 2018-10-31aRagexe, 2018-10-31bRagexe, 2018-10-31cRagexeRE, 2018-11-07aRagexe, 2018-11-07aRagexeRE, 2018-11-14cRagexe, 2018-11-14cRagexeRE, 2018-11-14dRagexe, 2018-11-14dRagexeRE, 2018-11-21bRagexe, 2018-11-21cRagexeRE, 2018-11-28aRagexe, 2018-11-28aRagexeRE, 2018-11-28bRagexe, 2018-11-28cRagexe, 2018-12-05aRagexe, 2018-12-05bRagexeRE, 2018-12-12aRagexe, 2018-12-12aRagexeRE, 2018-12-12bRagexe, 2018-12-12bRagexeRE, 2018-12-19bRagexe, 2018-12-19bRagexeRE, 2018-12-26aRagexe, 2018-12-26aRagexeRE, 2019-01-09aRagexe, 2019-01-09bRagexeRE, 2019-01-16bRagexe, 2019-01-16bRagexeRE, 2019-01-16cRagexe, 2019-01-16cRagexeRE, 2019-01-23dRagexe, 2019-01-23dRagexeRE, 2019-02-13IRagexeRE, 2019-02-13bRagexe, 2019-02-13eRagexe, 2019-02-20aRagexeRE, 2019-02-27aRagexe, 2019-02-27bRagexeRE, 2019-02-28aRagexe, 2019-02-28aRagexeRE, 2019-03-06bRagexe, 2019-03-06bRagexeRE, 2019-03-06cRagexe, 2019-03-06cRagexeRE, 2019-03-13aRagexe, 2019-03-20aRagexe, 2019-03-20aRagexeRE, 2019-03-22aRagexe, 2019-03-22aRagexeRE, 2019-03-27bRagexe, 2019-03-27bRagexeRE, 2019-04-03aRagexe, 2019-04-03bRagexeRE, 2019-04-03cRagexeRE, 2019-04-17aRagexe, 2019-04-17cRagexeRE, 2019-04-18aRagexe, 2019-04-18aRagexeRE, 2019-05-08cRagexe, 2019-05-08dRagexeRE, 2019-05-08eRagexeRE, 2019-05-22bRagexe, 2019-05-22bRagexeRE, 2019-05-22cRagexe, 2019-05-22cRagexeRE, 2019-05-23aRagexe, 2019-05-29aRagexe, 2019-05-29bRagexeRE, 2019-05-29cRagexe, 2019-05-29cRagexeRE, 2019-05-30aRagexe, 2019-05-30aRagexeRE, 2019-06-05JRagexeRE, 2019-06-05KRagexe, 2019-06-05LRagexeRE, 2019-06-05fRagexe, 2019-06-05hRagexeRE, 2019-06-19bRagexe, 2019-06-19cRagexeRE, 2019-06-19eRagexe, 2019-06-19hRagexe, 2019-06-26bRagexeRE, 2019-07-03aRagexe, 2019-07-03bRagexeRE, 2019-07-17aRagexe, 2019-07-17cRagexeRE, 2019-07-17dRagexe, 2019-07-17dRagexeRE, 2019-07-24aRagexe, 2019-07-24bRagexeRE, 2019-07-31bRagexe, 2019-07-31bRagexeRE, 2019-08-02aRagexe, 2019-08-02aRagexeRE, 2019-08-07aRagexe, 2019-08-07dRagexeRE, 2019-08-21aRagexe, 2019-08-21cRagexeRE, 2019-08-21dRagexeRE, 2019-08-28aRagexe, 2019-08-28aRagexeRE, 2019-09-04aRagexe, 2019-09-04bRagexe, 2019-09-04bRagexeRE, 2019-09-18bRagexe, 2019-09-18cRagexeRE, 2019-09-25aRagexe, 2019-09-25aRagexeRE, 2019-09-25bRagexe, 2019-09-25bRagexeRE, 2019-10-02bRagexeRE, 2019-10-02cRagexe, 2019-10-02dRagexe, 2019-10-02dRagexeRE, 2019-10-02dRagexeRE_2, 2019-10-16fRagexe, 2019-10-16fRagexeRE, 2019-10-16gRagexe, 2019-10-16gRagexeRE, 2019-10-18aRagexe, 2019-10-23aRagexe, 2019-10-23aRagexeRE, 2019-10-30bRagexeRE, 2019-10-30cRagexe, 2019-11-06aRagexe, 2019-11-06bRagexeRE, 2019-11-07aRagexe, 2019-11-07aRagexeRE, 2019-11-13cRagexe, 2019-11-13eRagexe, 2019-11-13eRagexeRE +// 2010-11-23aRagexeRE, 2010-11-24aRagexeRE, 2010-11-24bRagexeRE, 2010-11-25aRagexeRE, 2010-11-26aRagexeRE, 2010-11-30aRagexeRE, 2010-12-07aRagexeRE, 2010-12-14aRagexeRE, 2010-12-21aRagexeRE, 2010-12-23aRagexeRE, 2010-12-28aRagexeRE, 2011-01-04aRagexeRE, 2011-01-05aRagexeRE, 2011-01-11aRagexeRE, 2011-01-18aRagexeRE, 2011-01-25aRagexeRE, 2011-01-26aRagexeRE, 2011-01-26bRagexeRE, 2011-01-31aRagexeRE, 2011-01-31bRagexeRE, 2011-01-31cRagexeRE, 2011-02-08aRagexeRE, 2011-02-15aRagexeRE, 2011-02-22aRagexeRE, 2011-02-23aRagexeRE, 2011-02-23bRagexeRE, 2011-02-24aRagexeRE, 2011-02-25aRagexeRE, 2011-02-28aRagexeRE, 2011-03-08aRagexeRE, 2011-03-09aRagexeRE, 2011-03-09bRagexeRE, 2011-03-09cRagexeRE, 2011-03-09dRagexeRE, 2011-03-15aRagexeRE, 2011-03-22aRagexeRE, 2011-03-29aRagexeRE, 2011-03-30aRagexeRE, 2011-03-30cRagexeRE, 2011-04-05aRagexeRE, 2011-04-12aRagexeRE, 2011-04-19aRagexeRE, 2011-04-20aRagexeRE, 2011-04-26aRagexeRE, 2011-04-27aRagexeRE, 2011-05-03aRagexeRE, 2011-05-11aRagexeRE, 2011-05-17bRagexeRE, 2011-05-24aRagexeRE, 2011-05-26aRagexeRE, 2011-05-31aRagexeRE, 2011-06-07aRagexeRE, 2011-06-08aRagexeRE, 2011-06-08bRagexeRE, 2011-06-08cRagexeRE, 2011-06-09aRagexeRE, 2011-06-14bRagexeRE, 2011-06-22aRagexeRE, 2011-06-28aRagexeRE, 2011-07-06aRagexeRE, 2011-07-13aRagexeRE, 2011-07-13bRagexeRE, 2011-07-13cRagexeRE, 2011-07-19aRagexeRE, 2011-07-26aRagexeRE, 2011-08-03aRagexeRE, 2011-08-03bRagexeRE, 2011-08-10aRagexeRE, 2013-12-23aRagexeRE, 2014-05-08aRagexe, 2014-05-08aRagexeRE, 2014-06-11eRagexe, 2015-02-25hRagexe, 2018-03-15aRagexe, 2018-03-21aRagexe, 2018-03-21aRagexeRE, 2018-03-28bRagexe, 2018-03-28bRagexeRE, 2018-04-04bRagexe, 2018-04-04cRagexeRE, 2018-04-18aRagexe, 2018-04-18bRagexeRE, 2018-04-25cRagexe, 2018-04-25cRagexeRE, 2018-05-02bRagexe, 2018-05-02bRagexeRE, 2018-05-02dRagexeRE, 2018-05-09aRagexe, 2018-05-16cRagexe, 2018-05-16cRagexeRE, 2018-05-23aRagexe, 2018-05-23aRagexeRE, 2018-05-30aRagexe, 2018-05-30bRagexeRE, 2018-05-30cRagexeRE, 2018-06-05bRagexe, 2018-06-05bRagexeRE, 2018-06-12aRagexeRE, 2018-06-12bRagexeRE, 2018-06-20cRagexe, 2018-06-20dRagexeRE, 2018-06-20eRagexe, 2018-06-20eRagexeRE, 2018-06-21aRagexe, 2018-06-21aRagexeRE, 2018-07-04aRagexe, 2018-07-04aRagexeRE, 2018-07-11aRagexeRE, 2018-07-18bRagexe, 2018-07-18bRagexeRE, 2018-07-18bRagexeRE1, 2018-07-18cRagexe, 2018-07-18cRagexeRE, 2018-08-01cRagexe, 2018-08-01cRagexeRE, 2018-08-08bRagexe, 2018-08-08bRagexeRE, 2018-08-22cRagexe, 2018-08-22cRagexeRE, 2018-08-29aRagexe, 2018-08-29aRagexeRE, 2018-08-29bRagexeRE, 2018-08-31aRagexe, 2018-09-12dRagexe, 2018-09-12dRagexeRE, 2018-09-19aRagexe, 2018-09-19aRagexeRE, 2018-10-02aRagexe, 2018-10-02aRagexeRE, 2018-10-02bRagexe, 2018-10-02bRagexeRE, 2018-10-17_02aRagexe, 2018-10-17_02aRagexeRE, 2018-10-17_03aRagexe, 2018-10-17_03aRagexeRE, 2018-10-17bRagexe, 2018-10-17bRagexeRE, 2018-10-24bRagexe, 2018-10-31aRagexe, 2018-10-31bRagexe, 2018-10-31cRagexeRE, 2018-11-07aRagexe, 2018-11-07aRagexeRE, 2018-11-14cRagexe, 2018-11-14cRagexeRE, 2018-11-14dRagexe, 2018-11-14dRagexeRE, 2018-11-21bRagexe, 2018-11-21cRagexeRE, 2018-11-28aRagexe, 2018-11-28aRagexeRE, 2018-11-28bRagexe, 2018-11-28cRagexe, 2018-12-05aRagexe, 2018-12-05bRagexeRE, 2018-12-12aRagexe, 2018-12-12aRagexeRE, 2018-12-12bRagexe, 2018-12-12bRagexeRE, 2018-12-19bRagexe, 2018-12-19bRagexeRE, 2018-12-26aRagexe, 2018-12-26aRagexeRE, 2019-01-09aRagexe, 2019-01-09bRagexeRE, 2019-01-16bRagexe, 2019-01-16bRagexeRE, 2019-01-16cRagexe, 2019-01-16cRagexeRE, 2019-01-23dRagexe, 2019-01-23dRagexeRE, 2019-02-13IRagexeRE, 2019-02-13bRagexe, 2019-02-13eRagexe, 2019-02-20aRagexeRE, 2019-02-27aRagexe, 2019-02-27bRagexeRE, 2019-02-28aRagexe, 2019-02-28aRagexeRE, 2019-03-06bRagexe, 2019-03-06bRagexeRE, 2019-03-06cRagexe, 2019-03-06cRagexeRE, 2019-03-13aRagexe, 2019-03-20aRagexe, 2019-03-20aRagexeRE, 2019-03-22aRagexe, 2019-03-22aRagexeRE, 2019-03-27bRagexe, 2019-03-27bRagexeRE, 2019-04-03aRagexe, 2019-04-03bRagexeRE, 2019-04-03cRagexeRE, 2019-04-17aRagexe, 2019-04-17cRagexeRE, 2019-04-18aRagexe, 2019-04-18aRagexeRE, 2019-05-08cRagexe, 2019-05-08dRagexeRE, 2019-05-08eRagexeRE, 2019-05-22bRagexe, 2019-05-22bRagexeRE, 2019-05-22cRagexe, 2019-05-22cRagexeRE, 2019-05-23aRagexe, 2019-05-29aRagexe, 2019-05-29bRagexeRE, 2019-05-29cRagexe, 2019-05-29cRagexeRE, 2019-05-30aRagexe, 2019-05-30aRagexeRE, 2019-06-05JRagexeRE, 2019-06-05KRagexe, 2019-06-05LRagexeRE, 2019-06-05fRagexe, 2019-06-05hRagexeRE, 2019-06-19bRagexe, 2019-06-19cRagexeRE, 2019-06-19eRagexe, 2019-06-19hRagexe, 2019-06-26bRagexeRE, 2019-07-03aRagexe, 2019-07-03bRagexeRE, 2019-07-17aRagexe, 2019-07-17cRagexeRE, 2019-07-17dRagexe, 2019-07-17dRagexeRE, 2019-07-24aRagexe, 2019-07-24bRagexeRE, 2019-07-31bRagexe, 2019-07-31bRagexeRE, 2019-08-02aRagexe, 2019-08-02aRagexeRE, 2019-08-07aRagexe, 2019-08-07dRagexeRE, 2019-08-21aRagexe, 2019-08-21cRagexeRE, 2019-08-21dRagexeRE, 2019-08-28aRagexe, 2019-08-28aRagexeRE, 2019-09-04aRagexe, 2019-09-04bRagexe, 2019-09-04bRagexeRE, 2019-09-18bRagexe, 2019-09-18cRagexeRE, 2019-09-25aRagexe, 2019-09-25aRagexeRE, 2019-09-25bRagexe, 2019-09-25bRagexeRE, 2019-10-02bRagexeRE, 2019-10-02cRagexe, 2019-10-02dRagexe, 2019-10-02dRagexeRE, 2019-10-02dRagexeRE_2, 2019-10-16fRagexe, 2019-10-16fRagexeRE, 2019-10-16gRagexe, 2019-10-16gRagexeRE, 2019-10-18aRagexe, 2019-10-23aRagexe, 2019-10-23aRagexeRE, 2019-10-30bRagexeRE, 2019-10-30cRagexe, 2019-11-06aRagexe, 2019-11-06bRagexeRE, 2019-11-07aRagexe, 2019-11-07aRagexeRE, 2019-11-13cRagexe, 2019-11-13eRagexe, 2019-11-13eRagexeRE, 2019-11-20aRagexe, 2019-11-20cRagexeRE, 2019-11-20dRagexe, 2019-11-27aRagexe, 2019-11-27aRagexeRE, 2019-11-27bRagexe, 2019-12-04aRagexe, 2019-12-04aRagexeRE, 2019-12-04bRagexe, 2019-12-04bRagexeRE, 2019-12-04cRagexeRE, 2019-12-11aRagexe, 2019-12-11fRagexeRE, 2019-12-18bRagexe, 2019-12-18bRagexeRE, 2019-12-24aRagexe, 2019-12-24aRagexeRE, 2019-12-24bRagexe, 2019-12-24bRagexeRE, 2020-01-08aRagexe, 2020-01-08bRagexeRE #if PACKETVER == 20101123 || \ PACKETVER == 20101124 || \ PACKETVER == 20101125 || \ @@ -174,7 +174,14 @@ PACKETVER == 20191030 || \ PACKETVER == 20191106 || \ PACKETVER == 20191107 || \ - PACKETVER >= 20191113 + PACKETVER == 20191113 || \ + PACKETVER == 20191120 || \ + PACKETVER == 20191127 || \ + PACKETVER == 20191204 || \ + PACKETVER == 20191211 || \ + PACKETVER == 20191218 || \ + PACKETVER == 20191224 || \ + PACKETVER >= 20200108 packetKeys(0x00000000,0x00000000,0x00000000); #endif diff --git a/src/map/packets_keys_zero.h b/src/map/packets_keys_zero.h index b398f1894..d4c96beca 100644 --- a/src/map/packets_keys_zero.h +++ b/src/map/packets_keys_zero.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2013-2019 Hercules Dev Team - * Copyright (C) 2018-2019 Andrei Karas (4144) + * Copyright (C) 2013-2020 Hercules Dev Team + * Copyright (C) 2018-2020 Andrei Karas (4144) * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -30,7 +30,7 @@ /* This file is autogenerated, please do not commit manual changes */ -// 2017-10-18aRagexe_zero, 2017-10-19aRagexe_zero, 2017-10-23aRagexe_zero, 2017-10-23bRagexe_zero, 2017-10-23cRagexe_zero, 2017-10-24aRagexe_2_zero, 2017-10-24aRagexe_zero, 2017-10-25bRagexe_zero, 2017-10-27aRagexe_zero, 2017-10-27bRagexe_zero, 2017-10-30aRagexe_zero, 2017-10-31aRagexe_zero, 2017-11-09aRagexe_zero, 2017-11-13aRagexe_zero, 2017-11-13bRagexe_zero, 2018-03-15aRagexe_zero, 2018-03-21aRagexe_zero, 2018-03-21bRagexe_zero, 2018-03-28_1aRagexe_zero, 2018-03-28cRagexe_zero, 2018-04-11aRagexe_zero, 2018-04-25_3aRagexe_zero, 2018-05-09_3aRagexe_zero, 2018-05-23aRagexe_zero, 2018-06-05bRagexe_zero, 2018-06-05cRagexe_zero, 2018-06-27aRagexe_zero, 2018-07-03aRagexe_zero, 2018-07-11_2aRagexe_zero, 2018-07-25_2aRagexe_zero, 2018-08-01aRagexe_zero, 2018-08-08_2aRagexe_zero, 2018-08-22aRagexe_zero, 2018-08-29aRagexe_zero, 2018-09-05aRagexe_zero, 2018-09-12aRagexe_zero, 2018-09-19aRagexe_zero, 2018-09-28aRagexe_zero, 2018-10-10_2aRagexe_zero, 2018-10-24_2aRagexe_zero, 2018-11-14aRagexe_zero, 2018-11-20aRagexe_zero, 2018-11-28aRagexe_zero, 2018-12-12aRagexe_zero, 2018-12-19aRagexe_zero, 2018-12-26_2aRagexe_zero, 2019-01-16_2aRagexe_zero, 2019-01-17_1aRagexe_zero, 2019-01-30_2aRagexe_zero, 2019-02-13aRagexe_zero, 2019-02-20aRagexe_zero, 2019-02-27aRagexe_zero, 2019-03-13aRagexe_zero, 2019-03-27_2aRagexe_zero, 2019-03-27_3aRagexe_zero, 2019-04-03aRagexe_zero, 2019-04-10bRagexe_zero, 2019-04-24aRagexe_zero, 2019-05-02aRagexe_zero, 2019-05-08_2aRagexe_zero, 2019-05-08aRagexe_zero, 2019-05-15aRagexe_zero, 2019-05-29aRagexe_zero, 2019-05-30aRagexe_zero, 2019-06-05_2aRagexe_zero, 2019-06-26_2aRagexe_zero, 2019-06-26_3aRagexe_zero, 2019-07-09aRagexe_zero, 2019-07-10_3aRagexe_zero, 2019-07-17aRagexe_zero, 2019-07-24aRagexe_zero, 2019-08-14_3aRagexe_zero, 2019-08-28_2aRagexe_zero, 2019-08-28_3aRagexe_zero, 2019-09-11aRagexe_zero, 2019-09-18_2aRagexe_zero, 2019-09-18aRagexe_zero, 2019-09-25_3aRagexe_zero, 2019-09-25_5aRagexe_zero, 2019-10-08_2aRagexe_zero, 2019-10-23_2aRagexe_zero, 2019-11-06aRagexe_zero, 2019-11-13aRagexe_zero +// 2017-10-18aRagexe_zero, 2017-10-19aRagexe_zero, 2017-10-23aRagexe_zero, 2017-10-23bRagexe_zero, 2017-10-23cRagexe_zero, 2017-10-24aRagexe_2_zero, 2017-10-24aRagexe_zero, 2017-10-25bRagexe_zero, 2017-10-27aRagexe_zero, 2017-10-27bRagexe_zero, 2017-10-30aRagexe_zero, 2017-10-31aRagexe_zero, 2017-11-09aRagexe_zero, 2017-11-13aRagexe_zero, 2017-11-13bRagexe_zero, 2018-03-15aRagexe_zero, 2018-03-21aRagexe_zero, 2018-03-21bRagexe_zero, 2018-03-28_1aRagexe_zero, 2018-03-28cRagexe_zero, 2018-04-11aRagexe_zero, 2018-04-25_3aRagexe_zero, 2018-05-09_3aRagexe_zero, 2018-05-23aRagexe_zero, 2018-06-05bRagexe_zero, 2018-06-05cRagexe_zero, 2018-06-27aRagexe_zero, 2018-07-03aRagexe_zero, 2018-07-11_2aRagexe_zero, 2018-07-25_2aRagexe_zero, 2018-08-01aRagexe_zero, 2018-08-08_2aRagexe_zero, 2018-08-22aRagexe_zero, 2018-08-29aRagexe_zero, 2018-09-05aRagexe_zero, 2018-09-12aRagexe_zero, 2018-09-19aRagexe_zero, 2018-09-28aRagexe_zero, 2018-10-10_2aRagexe_zero, 2018-10-24_2aRagexe_zero, 2018-11-14aRagexe_zero, 2018-11-20aRagexe_zero, 2018-11-28aRagexe_zero, 2018-12-12aRagexe_zero, 2018-12-19aRagexe_zero, 2018-12-26_2aRagexe_zero, 2019-01-16_2aRagexe_zero, 2019-01-17_1aRagexe_zero, 2019-01-30_2aRagexe_zero, 2019-02-13aRagexe_zero, 2019-02-20aRagexe_zero, 2019-02-27aRagexe_zero, 2019-03-13aRagexe_zero, 2019-03-27_2aRagexe_zero, 2019-03-27_3aRagexe_zero, 2019-04-03aRagexe_zero, 2019-04-10bRagexe_zero, 2019-04-24aRagexe_zero, 2019-05-02aRagexe_zero, 2019-05-08_2aRagexe_zero, 2019-05-08aRagexe_zero, 2019-05-15aRagexe_zero, 2019-05-29aRagexe_zero, 2019-05-30aRagexe_zero, 2019-06-05_2aRagexe_zero, 2019-06-26_2aRagexe_zero, 2019-06-26_3aRagexe_zero, 2019-07-09aRagexe_zero, 2019-07-10_3aRagexe_zero, 2019-07-17aRagexe_zero, 2019-07-24aRagexe_zero, 2019-08-14_3aRagexe_zero, 2019-08-28_2aRagexe_zero, 2019-08-28_3aRagexe_zero, 2019-09-11aRagexe_zero, 2019-09-18_2aRagexe_zero, 2019-09-18aRagexe_zero, 2019-09-25_3aRagexe_zero, 2019-09-25_5aRagexe_zero, 2019-10-08_2aRagexe_zero, 2019-10-23_2aRagexe_zero, 2019-11-06aRagexe_zero, 2019-11-13aRagexe_zero, 2019-11-27_2aRagexe_zero, 2019-11-27aRagexe_zero, 2019-12-04aRagexe_zero, 2019-12-11_2aRagexe_zero, 2019-12-24_4aRagexe_zero, 2019-12-24_5aRagexe_zero #if PACKETVER == 20171018 || \ PACKETVER == 20171019 || \ PACKETVER == 20171023 || \ @@ -99,7 +99,11 @@ PACKETVER == 20191008 || \ PACKETVER == 20191023 || \ PACKETVER == 20191106 || \ - PACKETVER >= 20191113 + PACKETVER == 20191113 || \ + PACKETVER == 20191127 || \ + PACKETVER == 20191204 || \ + PACKETVER == 20191211 || \ + PACKETVER >= 20191224 packetKeys(0x00000000,0x00000000,0x00000000); #endif diff --git a/src/map/packets_shuffle_main.h b/src/map/packets_shuffle_main.h index 9b82f25d8..83a9107f2 100644 --- a/src/map/packets_shuffle_main.h +++ b/src/map/packets_shuffle_main.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2013-2019 Hercules Dev Team - * Copyright (C) 2018-2019 Andrei Karas (4144) + * Copyright (C) 2013-2020 Hercules Dev Team + * Copyright (C) 2018-2020 Andrei Karas (4144) * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -9794,7 +9794,7 @@ packet(0x083c,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 14 #endif -// 2019-09-04aRagexe, 2019-09-04bRagexe, 2019-09-18bRagexe, 2019-09-25aRagexe, 2019-09-25bRagexe, 2019-10-02cRagexe, 2019-10-02dRagexe, 2019-10-16fRagexe, 2019-10-16gRagexe, 2019-10-18aRagexe, 2019-10-23aRagexe, 2019-10-30cRagexe, 2019-11-06aRagexe, 2019-11-07aRagexe, 2019-11-13cRagexe, 2019-11-13eRagexe +// 2019-09-04aRagexe, 2019-09-04bRagexe, 2019-09-18bRagexe, 2019-09-25aRagexe, 2019-09-25bRagexe, 2019-10-02cRagexe, 2019-10-02dRagexe, 2019-10-16fRagexe, 2019-10-16gRagexe, 2019-10-18aRagexe, 2019-10-23aRagexe, 2019-10-30cRagexe, 2019-11-06aRagexe, 2019-11-07aRagexe, 2019-11-13cRagexe, 2019-11-13eRagexe, 2019-11-20aRagexe, 2019-11-20dRagexe, 2019-11-27aRagexe, 2019-11-27bRagexe, 2019-12-04aRagexe, 2019-12-04bRagexe, 2019-12-11aRagexe, 2019-12-18bRagexe, 2019-12-24aRagexe, 2019-12-24bRagexe, 2020-01-08aRagexe #if PACKETVER == 20190904 || \ PACKETVER == 20190918 || \ PACKETVER == 20190925 || \ @@ -9805,7 +9805,14 @@ PACKETVER == 20191030 || \ PACKETVER == 20191106 || \ PACKETVER == 20191107 || \ - PACKETVER == 20191113 + PACKETVER == 20191113 || \ + PACKETVER == 20191120 || \ + PACKETVER == 20191127 || \ + PACKETVER == 20191204 || \ + PACKETVER == 20191211 || \ + PACKETVER == 20191218 || \ + PACKETVER == 20191224 || \ + PACKETVER == 20200108 packet(0x0202,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 packet(0x022d,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 packet(0x023b,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 diff --git a/src/map/packets_shuffle_re.h b/src/map/packets_shuffle_re.h index e002a5b84..9c9df85ed 100644 --- a/src/map/packets_shuffle_re.h +++ b/src/map/packets_shuffle_re.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2013-2019 Hercules Dev Team - * Copyright (C) 2018-2019 Andrei Karas (4144) + * Copyright (C) 2013-2020 Hercules Dev Team + * Copyright (C) 2018-2020 Andrei Karas (4144) * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -9744,7 +9744,7 @@ packet(0x083c,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 14 #endif -// 2019-09-04bRagexeRE, 2019-09-18cRagexeRE, 2019-09-25aRagexeRE, 2019-09-25bRagexeRE, 2019-10-02bRagexeRE, 2019-10-02dRagexeRE, 2019-10-02dRagexeRE_2, 2019-10-16fRagexeRE, 2019-10-16gRagexeRE, 2019-10-23aRagexeRE, 2019-10-30bRagexeRE, 2019-11-06bRagexeRE, 2019-11-07aRagexeRE, 2019-11-13eRagexeRE +// 2019-09-04bRagexeRE, 2019-09-18cRagexeRE, 2019-09-25aRagexeRE, 2019-09-25bRagexeRE, 2019-10-02bRagexeRE, 2019-10-02dRagexeRE, 2019-10-02dRagexeRE_2, 2019-10-16fRagexeRE, 2019-10-16gRagexeRE, 2019-10-23aRagexeRE, 2019-10-30bRagexeRE, 2019-11-06bRagexeRE, 2019-11-07aRagexeRE, 2019-11-13eRagexeRE, 2019-11-20cRagexeRE, 2019-11-27aRagexeRE, 2019-12-04aRagexeRE, 2019-12-04bRagexeRE, 2019-12-04cRagexeRE, 2019-12-11fRagexeRE, 2019-12-18bRagexeRE, 2019-12-24aRagexeRE, 2019-12-24bRagexeRE, 2020-01-08bRagexeRE #if PACKETVER == 20190904 || \ PACKETVER == 20190918 || \ PACKETVER == 20190925 || \ @@ -9754,7 +9754,14 @@ PACKETVER == 20191030 || \ PACKETVER == 20191106 || \ PACKETVER == 20191107 || \ - PACKETVER == 20191113 + PACKETVER == 20191113 || \ + PACKETVER == 20191120 || \ + PACKETVER == 20191127 || \ + PACKETVER == 20191204 || \ + PACKETVER == 20191211 || \ + PACKETVER == 20191218 || \ + PACKETVER == 20191224 || \ + PACKETVER == 20200108 packet(0x0202,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 packet(0x022d,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 packet(0x023b,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 diff --git a/src/map/packets_shuffle_zero.h b/src/map/packets_shuffle_zero.h index bb5300024..91b0c1e89 100644 --- a/src/map/packets_shuffle_zero.h +++ b/src/map/packets_shuffle_zero.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2013-2019 Hercules Dev Team - * Copyright (C) 2018-2019 Andrei Karas (4144) + * Copyright (C) 2013-2020 Hercules Dev Team + * Copyright (C) 2018-2020 Andrei Karas (4144) * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -803,7 +803,7 @@ packet(0x083c,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 14 #endif -// 2019-08-28_2aRagexe_zero, 2019-08-28_3aRagexe_zero, 2019-09-11aRagexe_zero, 2019-09-18_2aRagexe_zero, 2019-09-18aRagexe_zero, 2019-09-25_3aRagexe_zero, 2019-09-25_5aRagexe_zero, 2019-10-08_2aRagexe_zero, 2019-10-23_2aRagexe_zero, 2019-11-06aRagexe_zero, 2019-11-13aRagexe_zero +// 2019-08-28_2aRagexe_zero, 2019-08-28_3aRagexe_zero, 2019-09-11aRagexe_zero, 2019-09-18_2aRagexe_zero, 2019-09-18aRagexe_zero, 2019-09-25_3aRagexe_zero, 2019-09-25_5aRagexe_zero, 2019-10-08_2aRagexe_zero, 2019-10-23_2aRagexe_zero, 2019-11-06aRagexe_zero, 2019-11-13aRagexe_zero, 2019-11-27_2aRagexe_zero, 2019-11-27aRagexe_zero, 2019-12-04aRagexe_zero, 2019-12-11_2aRagexe_zero, 2019-12-24_4aRagexe_zero, 2019-12-24_5aRagexe_zero #if PACKETVER == 20190828 || \ PACKETVER == 20190911 || \ PACKETVER == 20190918 || \ @@ -811,7 +811,11 @@ PACKETVER == 20191008 || \ PACKETVER == 20191023 || \ PACKETVER == 20191106 || \ - PACKETVER == 20191113 + PACKETVER == 20191113 || \ + PACKETVER == 20191127 || \ + PACKETVER == 20191204 || \ + PACKETVER == 20191211 || \ + PACKETVER == 20191224 packet(0x0202,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 packet(0x022d,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 packet(0x023b,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 diff --git a/src/map/packets_struct.h b/src/map/packets_struct.h index a7a9e2e63..0fa602ba5 100644 --- a/src/map/packets_struct.h +++ b/src/map/packets_struct.h @@ -2,7 +2,7 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2013-2018 Hercules Dev Team + * Copyright (C) 2013-2020 Hercules Dev Team * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -3729,6 +3729,65 @@ struct PACKET_CZ_REQ_MOUNTOFF { DEFINE_PACKET_HEADER(CZ_REQ_MOUNTOFF, 0x0b35); #endif +// in 3 clients from same version +#if PACKETVER >= 20191127 +struct PACKET_ZC_NOTIFY_EFFECT3 { + int16 packetType; + uint32 aid; + uint32 effectId; + uint64 num; +} __attribute__((packed)); +DEFINE_PACKET_HEADER(ZC_NOTIFY_EFFECT3, 0x0b69); +#elif PACKETVER_MAIN_NUM >= 20060911 || PACKETVER_AD_NUM >= 20060911 || PACKETVER_SAK_NUM >= 20060911 || defined(PACKETVER_RE) || defined(PACKETVER_ZERO) +struct PACKET_ZC_NOTIFY_EFFECT3 { + int16 packetType; + uint32 aid; + uint32 effectId; + uint32 num; +} __attribute__((packed)); +DEFINE_PACKET_HEADER(ZC_NOTIFY_EFFECT3, 0x0284); +#endif + +#if PACKETVER >= 20100824 +struct PACKET_CZ_SE_CASHSHOP_OPEN1 { + int16 packetType; +} __attribute__((packed)); +DEFINE_PACKET_HEADER(CZ_SE_CASHSHOP_OPEN1, 0x0844); +#endif + +#if PACKETVER >= 20191224 +struct PACKET_CZ_SE_CASHSHOP_OPEN2 { + int16 packetType; + uint32 tab; +} __attribute__((packed)); +DEFINE_PACKET_HEADER(CZ_SE_CASHSHOP_OPEN2, 0x0b6d); +#endif + +#if PACKETVER >= 20190724 +struct PACKET_CZ_SE_CASHSHOP_LIMITED_REQ { + int16 packetType; +} __attribute__((packed)); +DEFINE_PACKET_HEADER(CZ_SE_CASHSHOP_LIMITED_REQ, 0x0b4c); +#endif + +#if PACKETVER_ZERO_NUM >= 20191224 +struct PACKET_ZC_SE_CASHSHOP_OPEN { + int16 packetType; + uint32 cashPoints; + uint32 kafraPoints; + uint32 tab; +} __attribute__((packed)); +DEFINE_PACKET_HEADER(ZC_SE_CASHSHOP_OPEN, 0x0b6e); +// for ragexeRE in some version this packet unused [4144] +#elif PACKETVER_MAIN_NUM >= 20101123 || PACKETVER_RE_NUM >= 20120328 || PACKETVER_ZERO_NUM >= defined(PACKETVER_ZERO) +struct PACKET_ZC_SE_CASHSHOP_OPEN { + int16 packetType; + uint32 cashPoints; + uint32 kafraPoints; +} __attribute__((packed)); +DEFINE_PACKET_HEADER(ZC_SE_CASHSHOP_OPEN, 0x0845); +#endif + #if !defined(sun) && (!defined(__NETBSD__) || __NetBSD_Version__ >= 600000000) // NetBSD 5 and Solaris don't like pragma pack but accept the packed attribute #pragma pack(pop) #endif // not NetBSD < 6 / Solaris diff --git a/src/map/party.c b/src/map/party.c index 35ffe5636..7d7f69620 100644 --- a/src/map/party.c +++ b/src/map/party.c @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/map/party.h b/src/map/party.h index 1831da414..c2306b7a8 100644 --- a/src/map/party.h +++ b/src/map/party.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/map/path.c b/src/map/path.c index 16d9b0563..f271e8219 100644 --- a/src/map/path.c +++ b/src/map/path.c @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/map/path.h b/src/map/path.h index 7791a46cf..04072e303 100644 --- a/src/map/path.h +++ b/src/map/path.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/map/pc.c b/src/map/pc.c index 179a4b78a..c4f9d8be0 100644 --- a/src/map/pc.c +++ b/src/map/pc.c @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -8189,6 +8189,7 @@ static int pc_dead(struct map_session_data *sd, struct block_list *src) && pc->isDeathPenaltyJob(sd->job) && !map->list[sd->bl.m].flag.noexppenalty && !map_flag_gvg2(sd->bl.m) && !sd->sc.data[SC_BABY] && !sd->sc.data[SC_CASH_DEATHPENALTY] + && !pc->auto_exp_insurance(sd) ) { if (battle_config.death_penalty_base > 0) { unsigned int base_penalty = 0; @@ -12162,15 +12163,15 @@ static int pc_have_magnifier(struct map_session_data *sd) /** * checks if player have any item that listed in item chain * @param sd map_session_data of Player - * @param chain_id unsigned short of item chain id + * @param chain_cache_id cache id of item chain * @return index of inventory, INDEX_NOT_FOUND if it is not found */ -static int pc_have_item_chain(struct map_session_data *sd, unsigned short chain_id) +static int pc_have_item_chain(struct map_session_data *sd, enum e_chain_cache chain_cache_id) { - if (chain_id >= itemdb->chain_count) { - ShowError("itemdb_chain_item: unknown chain id %d\n", chain_id); - return INDEX_NOT_FOUND; - } + nullpo_retr(INDEX_NOT_FOUND, sd); + Assert_retr(INDEX_NOT_FOUND, chain_cache_id >= ECC_ORE && chain_cache_id < ECC_MAX); + + int chain_id = itemdb->chain_cache[chain_cache_id]; for (int n = 0; n < itemdb->chains[chain_id].qty; n++) { struct item_chain_entry *entry = &itemdb->chains[chain_id].items[n]; @@ -12392,6 +12393,21 @@ static bool pc_expandInventory(struct map_session_data *sd, int adjustSize) return true; } +static bool pc_auto_exp_insurance(struct map_session_data *sd) +{ + nullpo_retr(false, sd); + + int item_position = pc->have_item_chain(sd, ECC_NEO_INSURANCE); + if (item_position == INDEX_NOT_FOUND) + return false; + + pc->delitem(sd, item_position, 1, 0, DELITEM_SKILLUSE, LOG_TYPE_CONSUME); +#if PACKETVER >= 20100914 + clif->msgtable(sd, MSG_NOTIFY_NEO_INSURANCE_ITEM_USE); +#endif + return true; +} + static void do_final_pc(void) { @@ -12798,4 +12814,5 @@ void pc_defaults(void) pc->isDeathPenaltyJob = pc_isDeathPenaltyJob; pc->has_second_costume = pc_has_second_costume; pc->expandInventory = pc_expandInventory; + pc->auto_exp_insurance = pc_auto_exp_insurance; } diff --git a/src/map/pc.h b/src/map/pc.h index 7a42be5be..f4f0044a9 100644 --- a/src/map/pc.h +++ b/src/map/pc.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -635,6 +635,7 @@ END_ZEROED_BLOCK; unsigned immune : 1; unsigned sitstand : 1; unsigned commands : 1; + unsigned npc : 1; } block_action; /* Achievement System */ @@ -1186,7 +1187,7 @@ END_ZEROED_BLOCK; /* End */ void (*update_idle_time) (struct map_session_data* sd, enum e_battle_config_idletime type); int (*have_magnifier) (struct map_session_data *sd); - int (*have_item_chain) (struct map_session_data *sd, unsigned short chain_id); + int (*have_item_chain) (struct map_session_data *sd, enum e_chain_cache chain_cache_id); bool (*process_chat_message) (struct map_session_data *sd, const char *message); int (*wis_message_to_gm) (const char *sender_name, int permission, const char *message); @@ -1196,6 +1197,7 @@ END_ZEROED_BLOCK; /* End */ bool (*isDeathPenaltyJob) (uint16 job); bool (*has_second_costume) (struct map_session_data *sd); bool (*expandInventory) (struct map_session_data *sd, int adjustSize); + bool (*auto_exp_insurance) (struct map_session_data *sd); }; #ifdef HERCULES_CORE diff --git a/src/map/pc_groups.c b/src/map/pc_groups.c index 8d55897b8..9149aa6e4 100644 --- a/src/map/pc_groups.c +++ b/src/map/pc_groups.c @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/map/pc_groups.h b/src/map/pc_groups.h index f3994b9c4..0a8cfce86 100644 --- a/src/map/pc_groups.h +++ b/src/map/pc_groups.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/map/pet.c b/src/map/pet.c index b2b6d96f8..f20de2650 100644 --- a/src/map/pet.c +++ b/src/map/pet.c @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/map/pet.h b/src/map/pet.h index 2508a70a6..e0a5529a6 100644 --- a/src/map/pet.h +++ b/src/map/pet.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/map/quest.c b/src/map/quest.c index 38ac88eea..10ea668a6 100644 --- a/src/map/quest.c +++ b/src/map/quest.c @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/map/quest.h b/src/map/quest.h index d60b9b33c..f83bb7d73 100644 --- a/src/map/quest.h +++ b/src/map/quest.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/map/refine.c b/src/map/refine.c index 29d81c9b8..f6c855cea 100644 --- a/src/map/refine.c +++ b/src/map/refine.c @@ -2,7 +2,7 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * -* Copyright (C) 2019 Hercules Dev Team +* Copyright (C) 2019-2020 Hercules Dev Team * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/map/refine.h b/src/map/refine.h index 410811e06..bb3790a45 100644 --- a/src/map/refine.h +++ b/src/map/refine.h @@ -2,7 +2,7 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * -* Copyright (C) 2019 Hercules Dev Team +* Copyright (C) 2019-2020 Hercules Dev Team * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/map/refine.p.h b/src/map/refine.p.h index 3247d15c9..5dbed2afc 100644 --- a/src/map/refine.p.h +++ b/src/map/refine.p.h @@ -2,7 +2,7 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * -* Copyright (C) 2019 Hercules Dev Team +* Copyright (C) 2019-2020 Hercules Dev Team * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/map/rodex.c b/src/map/rodex.c index 766fdc5ea..1ebed0623 100644 --- a/src/map/rodex.c +++ b/src/map/rodex.c @@ -2,7 +2,7 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2017 Hercules Dev Team + * Copyright (C) 2017-2020 Hercules Dev Team * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/map/rodex.h b/src/map/rodex.h index b6e7ca5b7..6a1621657 100644 --- a/src/map/rodex.h +++ b/src/map/rodex.h @@ -2,7 +2,7 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2017 Hercules Dev Team + * Copyright (C) 2017-2020 Hercules Dev Team * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/map/script.c b/src/map/script.c index 16336b46d..26bd678fe 100644 --- a/src/map/script.c +++ b/src/map/script.c @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -6752,169 +6752,205 @@ static BUILDIN(warpchar) return true; } -/*========================================== - * Warpparty - [Fredzilla] [Paradox924X] [Jedzkie] [Dastgir] - * Syntax: warpparty("<to_mapname>", <x>, <y>, <party_id>, "<from_mapname>", <include_leader>) - * If 'from_mapname' is specified, only the party members on that map will be warped - * If 'include_leader' option is set to false, the leader will be warped too. - *------------------------------------------*/ + +/** + * Warps a party to a specific/random map or save point. + * + * @code{.herc} + * warpparty("<to map name>", <x>, <y>, <party id>{{, <ignore mapflags>}, "<from map name>"{, <include leader>}}); + * @endcode + * + **/ static BUILDIN(warpparty) { - struct map_session_data *sd = NULL; - struct map_session_data *pl_sd; - struct party_data* p; - int type; - int map_index; - int i; - bool include_leader = true; + const int p_id = script_getnum(st, 5); + struct party_data *p = party->search(p_id); + + if (p == NULL) { + ShowError("script:%s: Party not found! (%d)\n", script->getfuncname(st), p_id); + script_pushint(st, 0); + return false; + } + + const char *m_name_to = script_getstr(st, 2); + const int type = (strcmp(m_name_to, "Random") == 0) ? 0 : + (strcmp(m_name_to, "SavePointAll") == 0) ? 1 : + (strcmp(m_name_to, "SavePoint") == 0) ? 2 : + (strcmp(m_name_to, "Leader") == 0) ? 3 : 4; + int map_index = 0; + + if (type == 4 && (map_index = script->mapindexname2id(st, m_name_to)) == 0) { + ShowError("script:%s: Target map not found! (%s)\n", script->getfuncname(st), m_name_to); + script_pushint(st, 0); + return false; + } - const char* str = script_getstr(st, 2); int x = script_getnum(st, 3); int y = script_getnum(st, 4); - int p_id = script_getnum(st, 5); - const char* str2 = NULL; + struct map_session_data *p_sd; - if (script_hasdata(st, 6)) - str2 = script_getstr(st, 6); - if (script_hasdata(st, 7)) - include_leader = script_getnum(st, 7); + if (type == 3) { + int idx; - p = party->search(p_id); + ARR_FIND(0, MAX_PARTY, idx, p->party.member[idx].leader == 1); - if (p == NULL) - return true; + if (idx == MAX_PARTY || (p_sd = p->data[idx].sd) == NULL) { + ShowError("script:%s: Party leader not found!\n", script->getfuncname(st)); + script_pushint(st, 0); + return false; + } - type = (strcmp(str, "Random") == 0) ? 0 - : (strcmp(str, "SavePointAll") == 0) ? 1 - : (strcmp(str, "SavePoint") == 0) ? 2 - : (strcmp(str, "Leader") == 0) ? 3 - : 4; + map_index = p_sd->mapindex; + x = p_sd->bl.x; + y = p_sd->bl.y; + } else if (type == 2) { + struct map_session_data *sd = script->rid2sd(st); - switch (type) { - case 3: - ARR_FIND(0, MAX_PARTY, i, p->party.member[i].leader); - if (i == MAX_PARTY || !p->data[i].sd) // Leader not found / not online - return true; - pl_sd = p->data[i].sd; - map_index = pl_sd->mapindex; - x = pl_sd->bl.x; - y = pl_sd->bl.y; - break; - case 4: - map_index = script->mapindexname2id(st, str); - break; - case 2: - // "SavePoint" uses save point of the currently attached player - if ((sd = script->rid2sd(st)) == NULL) - return true; - /* Fall through */ - default: - map_index = 0; - break; + if (sd == NULL) { + ShowError("script:%s: No character attached for warp to save point!\n", + script->getfuncname(st)); + script_pushint(st, 0); + return false; + } + + map_index = sd->status.save_point.map; + x = sd->status.save_point.x; + y = sd->status.save_point.y; } - for (i = 0; i < MAX_PARTY; i++) { - if (!(pl_sd = p->data[i].sd) || pl_sd->status.party_id != p_id) - continue; + const int offset = (script_hasdata(st, 6) && script_isinttype(st, 6)) ? 1 : 0; + const bool ignore_mapflags = (offset == 1 && script_getnum(st, 6) != 0); + const char *m_name_from = script_hasdata(st, 6 + offset) ? script_getstr(st, 6 + offset) : NULL; + const bool include_leader = script_hasdata(st, 7 + offset) ? script_getnum(st, 7 + offset) : true; + + if (m_name_from != NULL && script->mapindexname2id(st, m_name_from) == 0) { + ShowError("script:%s: Source map not found! (%s)\n", script->getfuncname(st), m_name_from); + script_pushint(st, 0); + return false; + } - if (str2 && strcmp(str2, map->list[pl_sd->bl.m].name) != 0) + for (int i = 0; i < MAX_PARTY; i++) { + if ((p_sd = p->data[i].sd) == NULL || p_sd->status.party_id != p_id || pc_isdead(p_sd)) continue; - if (pc_isdead(pl_sd)) + if (p->party.member[i].online == 0 || (!include_leader && p->party.member[i].leader == 1)) continue; - if (include_leader == false && p->party.member[i].leader) + if (m_name_from != NULL && strcmp(m_name_from, map->list[p_sd->bl.m].name) != 0) continue; - switch( type ) { - case 0: // Random - if (!map->list[pl_sd->bl.m].flag.nowarp) - pc->randomwarp(pl_sd, CLR_TELEPORT); - break; - case 1: // SavePointAll - if (!map->list[pl_sd->bl.m].flag.noreturn) - pc->setpos(pl_sd, pl_sd->status.save_point.map, pl_sd->status.save_point.x, pl_sd->status.save_point.y, CLR_TELEPORT); - break; - case 2: // SavePoint - if (!map->list[pl_sd->bl.m].flag.noreturn) - pc->setpos(pl_sd, sd->status.save_point.map, sd->status.save_point.x, sd->status.save_point.y, CLR_TELEPORT); - break; - case 3: // Leader - case 4: // m,x,y - if (!map->list[pl_sd->bl.m].flag.noreturn && !map->list[pl_sd->bl.m].flag.nowarp) - pc->setpos(pl_sd, map_index, x, y, CLR_TELEPORT); - break; + if (!ignore_mapflags) { + if (((type == 0 || type > 2) && map->list[p_sd->bl.m].flag.nowarp == 1) || + (type > 0 && map->list[p_sd->bl.m].flag.noreturn == 1)) + continue; } + + if (type == 1) { + map_index = p_sd->status.save_point.map; + x = p_sd->status.save_point.x; + y = p_sd->status.save_point.y; + } + + if (type > 0) + pc->setpos(p_sd, map_index, x, y, CLR_TELEPORT); + else + pc->randomwarp(p_sd, CLR_TELEPORT); } + script_pushint(st, 1); return true; } -/*========================================== - * Warpguild - [Fredzilla] - * Syntax: warpguild "mapname",x,y,Guild_ID,{"from_mapname"}; - *------------------------------------------*/ + +/** + * Warps a guild to a specific/random map or save point. + * + * @code{.herc} + * warpguild("<to map name>", <x>, <y>, <guild id>{{, <ignore mapflags>}, "<from map name>"}); + * @endcode + * + **/ static BUILDIN(warpguild) { - struct map_session_data *sd = NULL; - struct guild* g; - int type; - int i; - int16 map_id = -1; + const int g_id = script_getnum(st, 5); + struct guild *g = guild->search(g_id); + + if (g == NULL) { + ShowError("script:%s: Guild not found! (%d)\n", script->getfuncname(st), g_id); + script_pushint(st, 0); + return false; + } - const char *str = script_getstr(st, 2); - int x = script_getnum(st, 3); - int y = script_getnum(st, 4); - int gid = script_getnum(st, 5); + const char *m_name_to = script_getstr(st, 2); + const int type = (strcmp(m_name_to, "Random") == 0) ? 0 : + (strcmp(m_name_to, "SavePointAll") == 0) ? 1 : + (strcmp(m_name_to, "SavePoint") == 0) ? 2 : 3; + int map_index = 0; - if (script_hasdata(st, 6)) { - map_id = map->mapname2mapid(script_getstr(st, 6)); + if (type == 3 && (map_index = script->mapindexname2id(st, m_name_to)) == 0) { + ShowError("script:%s: Target map not found! (%s)\n", script->getfuncname(st), m_name_to); + script_pushint(st, 0); + return false; } - g = guild->search(gid); - if (g == NULL) - return true; + int x = script_getnum(st, 3); + int y = script_getnum(st, 4); - type = (strcmp(str, "Random") == 0) ? 0 - : (strcmp(str, "SavePointAll") == 0) ? 1 - : (strcmp(str, "SavePoint") == 0) ? 2 - : 3; + if (type == 2) { + struct map_session_data *sd = script->rid2sd(st); - if (type == 2 && (sd = script->rid2sd(st)) == NULL) - {// "SavePoint" uses save point of the currently attached player - return true; + if (sd == NULL) { + ShowError("script:%s: No character attached for warp to save point!\n", + script->getfuncname(st)); + script_pushint(st, 0); + return false; + } + + map_index = sd->status.save_point.map; + x = sd->status.save_point.x; + y = sd->status.save_point.y; + } + + const int offset = (script_hasdata(st, 6) && script_isinttype(st, 6)) ? 1 : 0; + const bool ignore_mapflags = (offset == 1 && script_getnum(st, 6) != 0); + const char *m_name_from = script_hasdata(st, 6 + offset) ? script_getstr(st, 6 + offset) : NULL; + + if (m_name_from != NULL && script->mapindexname2id(st, m_name_from) == 0) { + ShowError("script:%s: Source map not found! (%s)\n", script->getfuncname(st), m_name_from); + script_pushint(st, 0); + return false; } - for (i = 0; i < MAX_GUILD; i++) { - if (g->member[i].online && g->member[i].sd != NULL) { - struct map_session_data *pl_sd = g->member[i].sd; + for (int i = 0; i < MAX_GUILD; i++) { + struct map_session_data *g_sd = g->member[i].sd; + + if (g->member[i].online == 0 || g_sd == NULL || g_sd->status.guild_id != g_id || pc_isdead(g_sd)) + continue; - if (map_id >= 0 && map_id != pl_sd->bl.m) + if (m_name_from != NULL && strcmp(m_name_from, map->list[g_sd->bl.m].name) != 0) + continue; + + if (!ignore_mapflags) { + if (((type == 0 || type > 2) && map->list[g_sd->bl.m].flag.nowarp == 1) || + (type > 0 && map->list[g_sd->bl.m].flag.noreturn == 1)) continue; + } - switch (type) - { - case 0: // Random - if (!map->list[pl_sd->bl.m].flag.nowarp) - pc->randomwarp(pl_sd, CLR_TELEPORT); - break; - case 1: // SavePointAll - if (!map->list[pl_sd->bl.m].flag.noreturn) - pc->setpos(pl_sd, pl_sd->status.save_point.map, pl_sd->status.save_point.x, pl_sd->status.save_point.y, CLR_TELEPORT); - break; - case 2: // SavePoint - if (!map->list[pl_sd->bl.m].flag.noreturn) - pc->setpos(pl_sd, sd->status.save_point.map, sd->status.save_point.x, sd->status.save_point.y, CLR_TELEPORT); - break; - case 3: // m,x,y - if (!map->list[pl_sd->bl.m].flag.noreturn && !map->list[pl_sd->bl.m].flag.nowarp) - pc->setpos(pl_sd, script->mapindexname2id(st, str), x, y, CLR_TELEPORT); - break; - } + if (type == 1) { + map_index = g_sd->status.save_point.map; + x = g_sd->status.save_point.x; + y = g_sd->status.save_point.y; } + + if (type > 0) + pc->setpos(g_sd, map_index, x, y, CLR_TELEPORT); + else + pc->randomwarp(g_sd, CLR_TELEPORT); } + script_pushint(st, 1); return true; } + /*========================================== * Force Heal a player (hp and sp) *------------------------------------------*/ @@ -15815,6 +15851,56 @@ static BUILDIN(specialeffect) return true; } +/*========================================== + * Special effects with num [4144] + *------------------------------------------*/ +static BUILDIN(specialeffectnum) +{ + struct block_list *bl = NULL; + int type = script_getnum(st, 2); + int num = script_getnum(st, 3); + int num2 = script_getnum(st, 4); + enum send_target target = AREA; + + if (script_hasdata(st, 5)) { + target = script_getnum(st, 5); + } + + if (script_hasdata(st, 6)) { + if (script_isstringtype(st, 6)) { + struct npc_data *nd = npc->name2id(script_getstr(st, 6)); + if (nd != NULL) { + bl = &nd->bl; + } + } else { + bl = map->id2bl(script_getnum(st, 6)); + } + } else { + bl = map->id2bl(st->oid); + } + + if (bl == NULL) { + return true; + } + + uint64 bigNum = ((uint64)num2) * 0xffffffff + num; + if (target == SELF) { + struct map_session_data *sd; + if (script_hasdata(st, 7)) { + sd = map->id2sd(script_getnum(st, 7)); + } else { + sd = script->rid2sd(st); + } + if (sd != NULL) { + clif->specialeffect_value_single(bl, type, bigNum, sd->fd); + } + } else { + clif->specialeffect_value(bl, type, bigNum, target); + } + + return true; +} + static BUILDIN(specialeffect2) { struct map_session_data *sd; @@ -19076,6 +19162,9 @@ static BUILDIN(setpcblock) if ((type & PCBLOCK_COMMANDS) != 0) sd->block_action.commands = state; + if ((type & PCBLOCK_NPC) != 0) + sd->block_action.npc = state; + return true; } @@ -19113,6 +19202,9 @@ static BUILDIN(checkpcblock) if (sd->block_action.commands != 0) retval |= PCBLOCK_COMMANDS; + if (sd->block_action.npc != 0) + retval |= PCBLOCK_NPC; + script_pushint(st, retval); return true; } @@ -25918,6 +26010,38 @@ static BUILDIN(openlapineddukddakboxui) return true; } +// Reset 'Feeling' maps. +BUILDIN(resetfeel) +{ + struct map_session_data *sd; + + if (script_hasdata(st, 2)) + sd = script->id2sd(st, script_getnum(st, 2)); + else + sd = script->rid2sd(st); + + if (sd != NULL) + pc->resetfeel(sd); + + return true; +} + +// Reset hatred target marks. +BUILDIN(resethate) +{ + struct map_session_data *sd; + + if (script_hasdata(st, 2)) + sd = script->id2sd(st, script_getnum(st, 2)); + else + sd = script->rid2sd(st); + + if (sd != NULL) + pc->resethate(sd); + + return true; +} + /** * Adds a built-in script function. * @@ -26146,8 +26270,8 @@ static void script_parse_builtin(void) BUILDIN_DEF(warp,"sii?"), BUILDIN_DEF(areawarp,"siiiisii??"), BUILDIN_DEF(warpchar,"siii"), // [LuzZza] - BUILDIN_DEF(warpparty,"siii??"), // [Fredzilla] [Paradox924X] [Jedzkie] [Dastgir] - BUILDIN_DEF(warpguild,"siii?"), // [Fredzilla] + BUILDIN_DEF(warpparty,"siii???"), // [Fredzilla] [Paradox924X] [Jedzkie] [Dastgir] + BUILDIN_DEF(warpguild,"siii??"), // [Fredzilla] BUILDIN_DEF(setlook,"ii"), BUILDIN_DEF(changelook,"ii"), // Simulates but don't Store it BUILDIN_DEF2(__setr,"set","rv"), @@ -26299,6 +26423,8 @@ static void script_parse_builtin(void) BUILDIN_DEF(resetlvl,"i"), BUILDIN_DEF(resetstatus,""), BUILDIN_DEF(resetskill,""), + BUILDIN_DEF(resetfeel, "?"), + BUILDIN_DEF(resethate, "?"), BUILDIN_DEF(skillpointcount,""), BUILDIN_DEF(changebase,"i?"), BUILDIN_DEF(changesex,""), @@ -26369,6 +26495,7 @@ static void script_parse_builtin(void) BUILDIN_DEF(skilleffect,"vi"), // skill effect [Celest] BUILDIN_DEF(npcskilleffect,"viii"), // npc skill effect [Valaris] BUILDIN_DEF(specialeffect,"i???"), // npc skill effect [Valaris] + BUILDIN_DEF(specialeffectnum,"iii???"), // npc skill effect with num [4144] BUILDIN_DEF(removespecialeffect,"i???"), BUILDIN_DEF_DEPRECATED(specialeffect2,"i??"), // skill effect on players[Valaris] BUILDIN_DEF(nude,""), // nude command [Valaris] @@ -27177,6 +27304,7 @@ static void script_hardcoded_constants(void) script->set_constant("PCBLOCK_IMMUNE", PCBLOCK_IMMUNE, false, false); script->set_constant("PCBLOCK_SITSTAND", PCBLOCK_SITSTAND, false, false); script->set_constant("PCBLOCK_COMMANDS", PCBLOCK_COMMANDS, false, false); + script->set_constant("PCBLOCK_NPC", PCBLOCK_NPC, false, false); script->constdb_comment("private airship responds"); script->set_constant("P_AIRSHIP_NONE", P_AIRSHIP_NONE, false, false); diff --git a/src/map/script.h b/src/map/script.h index 1cec02b97..d652f2155 100644 --- a/src/map/script.h +++ b/src/map/script.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -529,16 +529,17 @@ enum script_petinfo_types { * Player blocking actions related flags. */ enum pcblock_action_flag { - PCBLOCK_NONE = 0x00, - PCBLOCK_MOVE = 0x01, - PCBLOCK_ATTACK = 0x02, - PCBLOCK_SKILL = 0x04, - PCBLOCK_USEITEM = 0x08, - PCBLOCK_CHAT = 0x10, - PCBLOCK_IMMUNE = 0x20, - PCBLOCK_SITSTAND = 0x40, - PCBLOCK_COMMANDS = 0x80, - PCBLOCK_ALL = 0xFF, + PCBLOCK_NONE = 0x000, + PCBLOCK_MOVE = 0x001, + PCBLOCK_ATTACK = 0x002, + PCBLOCK_SKILL = 0x004, + PCBLOCK_USEITEM = 0x008, + PCBLOCK_CHAT = 0x010, + PCBLOCK_IMMUNE = 0x020, + PCBLOCK_SITSTAND = 0x040, + PCBLOCK_COMMANDS = 0x080, + PCBLOCK_NPC = 0x100, + PCBLOCK_ALL = 0x1FF, }; /** diff --git a/src/map/searchstore.c b/src/map/searchstore.c index c991e38c4..a2f00bb0a 100644 --- a/src/map/searchstore.c +++ b/src/map/searchstore.c @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/map/searchstore.h b/src/map/searchstore.h index 71d562679..83705d4ca 100644 --- a/src/map/searchstore.h +++ b/src/map/searchstore.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/map/skill.c b/src/map/skill.c index 26d5378f6..61db40723 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -8463,7 +8463,7 @@ static int skill_castend_nodamage_id(struct block_list *src, struct block_list * status_fix_damage(src, bl, 1000, 0); clif->damage(src,bl,0,0,1000,0,BDT_NORMAL,0); if( !status->isdead(bl) ) { - int where[] = { EQP_ARMOR, EQP_SHIELD, EQP_HELM, EQP_SHOES, EQP_GARMENT }; + int where[] = {EQP_ARMOR, EQP_SHIELD, EQP_HELM}; skill->break_equip(bl, where[rnd() % ARRAYLENGTH(where)], 10000, BCT_ENEMY); } } @@ -19758,23 +19758,23 @@ static int skill_get_elemental_type(uint16 skill_id, uint16 skill_lv) static void skill_cooldown_save(struct map_session_data *sd) { int i; - struct skill_cd* cd = NULL; + struct skill_cd *cd = NULL; int64 now = 0; - // always check to make sure the session properly exists nullpo_retv(sd); - if( !(cd = idb_get(skill->cd_db, sd->status.char_id)) ) {// no skill cooldown is associated with this character + if ((cd = idb_get(skill->cd_db, sd->status.char_id)) == NULL) return; - } now = timer->gettick(); - // process each individual cooldown associated with the character - for( i = 0; i < cd->cursor; i++ ) { - cd->entry[i]->duration = DIFF_TICK32(cd->entry[i]->started+cd->entry[i]->duration,now); - if( cd->entry[i]->timer != INVALID_TIMER ) { - timer->delete(cd->entry[i]->timer,skill->blockpc_end); + for (i = 0; i < cd->cursor; i++) { + if (battle_config.guild_skill_relog_delay == 1 && cd->entry[i]->skill_id > GD_SKILLBASE && cd->entry[i]->skill_id < GD_MAX) + continue; + + cd->entry[i]->duration = DIFF_TICK32(cd->entry[i]->started + cd->entry[i]->duration, now); + if (cd->entry[i]->timer != INVALID_TIMER) { + timer->delete(cd->entry[i]->timer, skill->blockpc_end); cd->entry[i]->timer = INVALID_TIMER; } } diff --git a/src/map/skill.h b/src/map/skill.h index af9063acf..188a1c927 100644 --- a/src/map/skill.h +++ b/src/map/skill.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/map/status.c b/src/map/status.c index 4821f18d5..3b99b99b8 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -7395,6 +7395,9 @@ static int status_change_start_sub(struct block_list *src, struct block_list *bl //Undead are immune to Freeze/Stone if (undead_flag && !(flag&SCFLAG_NOAVOID)) return 0; + // SC_LEXAETERNA should be removed when applying SC_STONE or SC_FREEZE + if (sc->data[SC_LEXAETERNA] != NULL) + status_change_end(bl, SC_LEXAETERNA, INVALID_TIMER); FALLTHROUGH case SC_SLEEP: case SC_STUN: diff --git a/src/map/status.h b/src/map/status.h index fe99cfba9..ecf27d411 100644 --- a/src/map/status.h +++ b/src/map/status.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/map/storage.c b/src/map/storage.c index 90b620f63..b83bd8489 100644 --- a/src/map/storage.c +++ b/src/map/storage.c @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/map/storage.h b/src/map/storage.h index 5c6152894..7a342efb2 100644 --- a/src/map/storage.h +++ b/src/map/storage.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/map/stylist.c b/src/map/stylist.c index 438302214..8b4180971 100644 --- a/src/map/stylist.c +++ b/src/map/stylist.c @@ -2,7 +2,7 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * -* Copyright (C) 2018-2019 Hercules Dev Team +* Copyright (C) 2018-2020 Hercules Dev Team * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/map/stylist.h b/src/map/stylist.h index 5bedfefc7..1b8e20616 100644 --- a/src/map/stylist.h +++ b/src/map/stylist.h @@ -2,7 +2,7 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2018-2019 Hercules Dev Team + * Copyright (C) 2018-2020 Hercules Dev Team * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/map/trade.c b/src/map/trade.c index ff5c04fc3..e727c3c70 100644 --- a/src/map/trade.c +++ b/src/map/trade.c @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/map/trade.h b/src/map/trade.h index ac732122f..da55f5057 100644 --- a/src/map/trade.h +++ b/src/map/trade.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/map/unit.c b/src/map/unit.c index b9176fa69..482440978 100644 --- a/src/map/unit.c +++ b/src/map/unit.c @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -1932,8 +1932,10 @@ static int unit_attack(struct block_list *src, int target_id, int continuous) if (src->type == BL_PC) { struct map_session_data *sd = BL_UCAST(BL_PC, src); - if( target->type == BL_NPC ) { // monster npcs [Valaris] - npc->click(sd, BL_UCAST(BL_NPC, target)); // submitted by leinsirk10 [Celest] + if (target->type == BL_NPC) { // monster npcs [Valaris] + if (sd->block_action.npc == 0) { // *pcblock script command + npc->click(sd, BL_UCAST(BL_NPC, target)); // submitted by leinsirk10 [Celest] + } return 0; } if( pc_is90overweight(sd) || pc_isridingwug(sd) ) { // overweight or mounted on warg - stop attacking diff --git a/src/map/unit.h b/src/map/unit.h index 3209351e3..5437a172a 100644 --- a/src/map/unit.h +++ b/src/map/unit.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/map/vending.c b/src/map/vending.c index 692f5f378..4fd009025 100644 --- a/src/map/vending.c +++ b/src/map/vending.c @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/map/vending.h b/src/map/vending.h index c994aad3a..fcf80aef0 100644 --- a/src/map/vending.h +++ b/src/map/vending.h @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/plugins/HPMHooking.c b/src/plugins/HPMHooking.c index 8e7ed4823..5af7576d3 100644 --- a/src/plugins/HPMHooking.c +++ b/src/plugins/HPMHooking.c @@ -2,7 +2,7 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2013-2018 Hercules Dev Team + * Copyright (C) 2013-2020 Hercules Dev Team * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/plugins/HPMHooking.h b/src/plugins/HPMHooking.h index f94dccac4..76f12dbad 100644 --- a/src/plugins/HPMHooking.h +++ b/src/plugins/HPMHooking.h @@ -2,7 +2,7 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2016 Hercules Dev Team + * Copyright (C) 2016-2020 Hercules Dev Team * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -41,7 +41,11 @@ struct HPMHooking_core_interface { const char *(*Hooked)(bool *fr); }; #else // ! HERCULES_CORE +#ifdef HERCULES_CORE_HPMI_SKIP +extern struct HPMHooking_interface HPMHooking_s; +#else HPExport struct HPMHooking_interface HPMHooking_s; +#endif #include "HPMHooking/HPMHooking.Defs.inc" diff --git a/src/plugins/HPMHooking/HPMHooking.Defs.inc b/src/plugins/HPMHooking/HPMHooking.Defs.inc index fe72a7e13..1f34dfdd4 100644 --- a/src/plugins/HPMHooking/HPMHooking.Defs.inc +++ b/src/plugins/HPMHooking/HPMHooking.Defs.inc @@ -2,7 +2,7 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2013-2019 Hercules Dev Team + * Copyright (C) 2013-2020 Hercules Dev Team * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -1562,8 +1562,10 @@ typedef void (*HPMHOOK_pre_clif_specialeffect) (struct block_list **bl, int *typ typedef void (*HPMHOOK_post_clif_specialeffect) (struct block_list *bl, int type, enum send_target target); typedef void (*HPMHOOK_pre_clif_specialeffect_single) (struct block_list **bl, int *type, int *fd); typedef void (*HPMHOOK_post_clif_specialeffect_single) (struct block_list *bl, int type, int fd); -typedef void (*HPMHOOK_pre_clif_specialeffect_value) (struct block_list **bl, int *effect_id, int *num, send_target *target); -typedef void (*HPMHOOK_post_clif_specialeffect_value) (struct block_list *bl, int effect_id, int num, send_target target); +typedef void (*HPMHOOK_pre_clif_specialeffect_value) (struct block_list **bl, int *effect_id, uint64 *num, send_target *target); +typedef void (*HPMHOOK_post_clif_specialeffect_value) (struct block_list *bl, int effect_id, uint64 num, send_target target); +typedef void (*HPMHOOK_pre_clif_specialeffect_value_single) (struct block_list **bl, int *effect_id, uint64 *num, int *fd); +typedef void (*HPMHOOK_post_clif_specialeffect_value_single) (struct block_list *bl, int effect_id, uint64 num, int fd); typedef void (*HPMHOOK_pre_clif_removeSpecialEffect) (struct block_list **bl, int *effectId, enum send_target *target); typedef void (*HPMHOOK_post_clif_removeSpecialEffect) (struct block_list *bl, int effectId, enum send_target target); typedef void (*HPMHOOK_pre_clif_removeSpecialEffect_single) (struct block_list **bl, int *effectId, struct block_list **targetBl); @@ -2508,8 +2510,12 @@ typedef void (*HPMHOOK_pre_clif_pBGQueueRevokeReq) (int *fd, struct map_session_ typedef void (*HPMHOOK_post_clif_pBGQueueRevokeReq) (int fd, struct map_session_data *sd); typedef void (*HPMHOOK_pre_clif_pBGQueueBattleBeginAck) (int *fd, struct map_session_data **sd); typedef void (*HPMHOOK_post_clif_pBGQueueBattleBeginAck) (int fd, struct map_session_data *sd); -typedef void (*HPMHOOK_pre_clif_pCashShopOpen) (int *fd, struct map_session_data **sd); -typedef void (*HPMHOOK_post_clif_pCashShopOpen) (int fd, struct map_session_data *sd); +typedef void (*HPMHOOK_pre_clif_pCashShopOpen1) (int *fd, struct map_session_data **sd); +typedef void (*HPMHOOK_post_clif_pCashShopOpen1) (int fd, struct map_session_data *sd); +typedef void (*HPMHOOK_pre_clif_pCashShopOpen2) (int *fd, struct map_session_data **sd); +typedef void (*HPMHOOK_post_clif_pCashShopOpen2) (int fd, struct map_session_data *sd); +typedef void (*HPMHOOK_pre_clif_pCashShopLimitedReq) (int *fd, struct map_session_data **sd); +typedef void (*HPMHOOK_post_clif_pCashShopLimitedReq) (int fd, struct map_session_data *sd); typedef void (*HPMHOOK_pre_clif_pCashShopClose) (int *fd, struct map_session_data **sd); typedef void (*HPMHOOK_post_clif_pCashShopClose) (int fd, struct map_session_data *sd); typedef void (*HPMHOOK_pre_clif_pCashShopReqTab) (int *fd, struct map_session_data **sd); @@ -2524,6 +2530,8 @@ typedef void (*HPMHOOK_pre_clif_pGuildInvite2) (int *fd, struct map_session_data typedef void (*HPMHOOK_post_clif_pGuildInvite2) (int fd, struct map_session_data *sd); typedef void (*HPMHOOK_pre_clif_cashShopBuyAck) (int *fd, struct map_session_data **sd, int *itemId, enum CASH_SHOP_BUY_RESULT *result); typedef void (*HPMHOOK_post_clif_cashShopBuyAck) (int fd, struct map_session_data *sd, int itemId, enum CASH_SHOP_BUY_RESULT result); +typedef void (*HPMHOOK_pre_clif_cashShopOpen) (int *fd, struct map_session_data **sd, int *tab); +typedef void (*HPMHOOK_post_clif_cashShopOpen) (int fd, struct map_session_data *sd, int tab); typedef void (*HPMHOOK_pre_clif_pPartyBookingAddFilter) (int *fd, struct map_session_data **sd); typedef void (*HPMHOOK_post_clif_pPartyBookingAddFilter) (int fd, struct map_session_data *sd); typedef void (*HPMHOOK_pre_clif_pPartyBookingSubFilter) (int *fd, struct map_session_data **sd); @@ -5480,10 +5488,12 @@ typedef struct optdrop_group* (*HPMHOOK_pre_mob_read_db_drops_option) (struct mo typedef struct optdrop_group* (*HPMHOOK_post_mob_read_db_drops_option) (struct optdrop_group* retVal___, struct mob_db *entry, const char *item_name, struct config_setting_t *drop, int *drop_rate); typedef void (*HPMHOOK_pre_mob_read_db_stats_sub) (struct mob_db **entry, struct config_setting_t **t); typedef void (*HPMHOOK_post_mob_read_db_stats_sub) (struct mob_db *entry, struct config_setting_t *t); +typedef void (*HPMHOOK_pre_mob_read_db_viewdata_sub) (struct mob_db **entry, struct config_setting_t **t); +typedef void (*HPMHOOK_post_mob_read_db_viewdata_sub) (struct mob_db *entry, struct config_setting_t *t); typedef void (*HPMHOOK_pre_mob_name_constants) (void); typedef void (*HPMHOOK_post_mob_name_constants) (void); -typedef bool (*HPMHOOK_pre_mob_readdb_mobavail) (char **str[], int *columns, int *current); -typedef bool (*HPMHOOK_post_mob_readdb_mobavail) (bool retVal___, char *str[], int columns, int current); +typedef void (*HPMHOOK_pre_mob_mobavail_removal_notice) (void); +typedef void (*HPMHOOK_post_mob_mobavail_removal_notice) (void); typedef int (*HPMHOOK_pre_mob_read_randommonster) (void); typedef int (*HPMHOOK_post_mob_read_randommonster) (int retVal___); typedef bool (*HPMHOOK_pre_mob_parse_row_chatdb) (char ***str, const char **source, int *line, int **last_msg_id); @@ -6414,8 +6424,8 @@ typedef void (*HPMHOOK_pre_pc_update_idle_time) (struct map_session_data **sd, e typedef void (*HPMHOOK_post_pc_update_idle_time) (struct map_session_data *sd, enum e_battle_config_idletime type); typedef int (*HPMHOOK_pre_pc_have_magnifier) (struct map_session_data **sd); typedef int (*HPMHOOK_post_pc_have_magnifier) (int retVal___, struct map_session_data *sd); -typedef int (*HPMHOOK_pre_pc_have_item_chain) (struct map_session_data **sd, unsigned short *chain_id); -typedef int (*HPMHOOK_post_pc_have_item_chain) (int retVal___, struct map_session_data *sd, unsigned short chain_id); +typedef int (*HPMHOOK_pre_pc_have_item_chain) (struct map_session_data **sd, enum e_chain_cache *chain_cache_id); +typedef int (*HPMHOOK_post_pc_have_item_chain) (int retVal___, struct map_session_data *sd, enum e_chain_cache chain_cache_id); typedef bool (*HPMHOOK_pre_pc_process_chat_message) (struct map_session_data **sd, const char **message); typedef bool (*HPMHOOK_post_pc_process_chat_message) (bool retVal___, struct map_session_data *sd, const char *message); typedef int (*HPMHOOK_pre_pc_wis_message_to_gm) (const char **sender_name, int *permission, const char **message); @@ -6432,6 +6442,8 @@ typedef bool (*HPMHOOK_pre_pc_has_second_costume) (struct map_session_data **sd) typedef bool (*HPMHOOK_post_pc_has_second_costume) (bool retVal___, struct map_session_data *sd); typedef bool (*HPMHOOK_pre_pc_expandInventory) (struct map_session_data **sd, int *adjustSize); typedef bool (*HPMHOOK_post_pc_expandInventory) (bool retVal___, struct map_session_data *sd, int adjustSize); +typedef bool (*HPMHOOK_pre_pc_auto_exp_insurance) (struct map_session_data **sd); +typedef bool (*HPMHOOK_post_pc_auto_exp_insurance) (bool retVal___, struct map_session_data *sd); #endif // MAP_PC_H #ifdef MAP_NPC_H /* libpcre */ typedef pcre* (*HPMHOOK_pre_libpcre_compile) (const char **pattern, int *options, const char ***errptr, int **erroffset, const unsigned char **tableptr); diff --git a/src/plugins/HPMHooking/HPMHooking_char.HPMHooksCore.inc b/src/plugins/HPMHooking/HPMHooking_char.HPMHooksCore.inc index cdba77e09..a9a83511e 100644 --- a/src/plugins/HPMHooking/HPMHooking_char.HPMHooksCore.inc +++ b/src/plugins/HPMHooking/HPMHooking_char.HPMHooksCore.inc @@ -2,7 +2,7 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2013-2019 Hercules Dev Team + * Copyright (C) 2013-2020 Hercules Dev Team * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/plugins/HPMHooking/HPMHooking_char.HookingPoints.inc b/src/plugins/HPMHooking/HPMHooking_char.HookingPoints.inc index a6043756d..7f52ebe46 100644 --- a/src/plugins/HPMHooking/HPMHooking_char.HookingPoints.inc +++ b/src/plugins/HPMHooking/HPMHooking_char.HookingPoints.inc @@ -2,7 +2,7 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2013-2019 Hercules Dev Team + * Copyright (C) 2013-2020 Hercules Dev Team * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/plugins/HPMHooking/HPMHooking_char.Hooks.inc b/src/plugins/HPMHooking/HPMHooking_char.Hooks.inc index b25025b1d..d5297c29c 100644 --- a/src/plugins/HPMHooking/HPMHooking_char.Hooks.inc +++ b/src/plugins/HPMHooking/HPMHooking_char.Hooks.inc @@ -2,7 +2,7 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2013-2019 Hercules Dev Team + * Copyright (C) 2013-2020 Hercules Dev Team * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/plugins/HPMHooking/HPMHooking_char.sources.inc b/src/plugins/HPMHooking/HPMHooking_char.sources.inc index 973f8aff3..7adc65b3c 100644 --- a/src/plugins/HPMHooking/HPMHooking_char.sources.inc +++ b/src/plugins/HPMHooking/HPMHooking_char.sources.inc @@ -2,7 +2,7 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2013-2019 Hercules Dev Team + * Copyright (C) 2013-2020 Hercules Dev Team * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/plugins/HPMHooking/HPMHooking_login.HPMHooksCore.inc b/src/plugins/HPMHooking/HPMHooking_login.HPMHooksCore.inc index 556757d76..c638a1ef6 100644 --- a/src/plugins/HPMHooking/HPMHooking_login.HPMHooksCore.inc +++ b/src/plugins/HPMHooking/HPMHooking_login.HPMHooksCore.inc @@ -2,7 +2,7 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2013-2019 Hercules Dev Team + * Copyright (C) 2013-2020 Hercules Dev Team * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/plugins/HPMHooking/HPMHooking_login.HookingPoints.inc b/src/plugins/HPMHooking/HPMHooking_login.HookingPoints.inc index 65680e072..ef6081f41 100644 --- a/src/plugins/HPMHooking/HPMHooking_login.HookingPoints.inc +++ b/src/plugins/HPMHooking/HPMHooking_login.HookingPoints.inc @@ -2,7 +2,7 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2013-2019 Hercules Dev Team + * Copyright (C) 2013-2020 Hercules Dev Team * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/plugins/HPMHooking/HPMHooking_login.Hooks.inc b/src/plugins/HPMHooking/HPMHooking_login.Hooks.inc index 8f6076e2a..20c709bce 100644 --- a/src/plugins/HPMHooking/HPMHooking_login.Hooks.inc +++ b/src/plugins/HPMHooking/HPMHooking_login.Hooks.inc @@ -2,7 +2,7 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2013-2019 Hercules Dev Team + * Copyright (C) 2013-2020 Hercules Dev Team * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/plugins/HPMHooking/HPMHooking_login.sources.inc b/src/plugins/HPMHooking/HPMHooking_login.sources.inc index 510cb8bc4..8a548bedc 100644 --- a/src/plugins/HPMHooking/HPMHooking_login.sources.inc +++ b/src/plugins/HPMHooking/HPMHooking_login.sources.inc @@ -2,7 +2,7 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2013-2019 Hercules Dev Team + * Copyright (C) 2013-2020 Hercules Dev Team * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc b/src/plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc index 76dfca774..eccf2a277 100644 --- a/src/plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc +++ b/src/plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc @@ -2,7 +2,7 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2013-2019 Hercules Dev Team + * Copyright (C) 2013-2020 Hercules Dev Team * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -1154,6 +1154,8 @@ struct { struct HPMHookPoint *HP_clif_specialeffect_single_post; struct HPMHookPoint *HP_clif_specialeffect_value_pre; struct HPMHookPoint *HP_clif_specialeffect_value_post; + struct HPMHookPoint *HP_clif_specialeffect_value_single_pre; + struct HPMHookPoint *HP_clif_specialeffect_value_single_post; struct HPMHookPoint *HP_clif_removeSpecialEffect_pre; struct HPMHookPoint *HP_clif_removeSpecialEffect_post; struct HPMHookPoint *HP_clif_removeSpecialEffect_single_pre; @@ -2098,8 +2100,12 @@ struct { struct HPMHookPoint *HP_clif_pBGQueueRevokeReq_post; struct HPMHookPoint *HP_clif_pBGQueueBattleBeginAck_pre; struct HPMHookPoint *HP_clif_pBGQueueBattleBeginAck_post; - struct HPMHookPoint *HP_clif_pCashShopOpen_pre; - struct HPMHookPoint *HP_clif_pCashShopOpen_post; + struct HPMHookPoint *HP_clif_pCashShopOpen1_pre; + struct HPMHookPoint *HP_clif_pCashShopOpen1_post; + struct HPMHookPoint *HP_clif_pCashShopOpen2_pre; + struct HPMHookPoint *HP_clif_pCashShopOpen2_post; + struct HPMHookPoint *HP_clif_pCashShopLimitedReq_pre; + struct HPMHookPoint *HP_clif_pCashShopLimitedReq_post; struct HPMHookPoint *HP_clif_pCashShopClose_pre; struct HPMHookPoint *HP_clif_pCashShopClose_post; struct HPMHookPoint *HP_clif_pCashShopReqTab_pre; @@ -2114,6 +2120,8 @@ struct { struct HPMHookPoint *HP_clif_pGuildInvite2_post; struct HPMHookPoint *HP_clif_cashShopBuyAck_pre; struct HPMHookPoint *HP_clif_cashShopBuyAck_post; + struct HPMHookPoint *HP_clif_cashShopOpen_pre; + struct HPMHookPoint *HP_clif_cashShopOpen_post; struct HPMHookPoint *HP_clif_pPartyBookingAddFilter_pre; struct HPMHookPoint *HP_clif_pPartyBookingAddFilter_post; struct HPMHookPoint *HP_clif_pPartyBookingSubFilter_pre; @@ -4082,10 +4090,12 @@ struct { struct HPMHookPoint *HP_mob_read_db_drops_option_post; struct HPMHookPoint *HP_mob_read_db_stats_sub_pre; struct HPMHookPoint *HP_mob_read_db_stats_sub_post; + struct HPMHookPoint *HP_mob_read_db_viewdata_sub_pre; + struct HPMHookPoint *HP_mob_read_db_viewdata_sub_post; struct HPMHookPoint *HP_mob_name_constants_pre; struct HPMHookPoint *HP_mob_name_constants_post; - struct HPMHookPoint *HP_mob_readdb_mobavail_pre; - struct HPMHookPoint *HP_mob_readdb_mobavail_post; + struct HPMHookPoint *HP_mob_mobavail_removal_notice_pre; + struct HPMHookPoint *HP_mob_mobavail_removal_notice_post; struct HPMHookPoint *HP_mob_read_randommonster_pre; struct HPMHookPoint *HP_mob_read_randommonster_post; struct HPMHookPoint *HP_mob_parse_row_chatdb_pre; @@ -5016,6 +5026,8 @@ struct { struct HPMHookPoint *HP_pc_has_second_costume_post; struct HPMHookPoint *HP_pc_expandInventory_pre; struct HPMHookPoint *HP_pc_expandInventory_post; + struct HPMHookPoint *HP_pc_auto_exp_insurance_pre; + struct HPMHookPoint *HP_pc_auto_exp_insurance_post; struct HPMHookPoint *HP_libpcre_compile_pre; struct HPMHookPoint *HP_libpcre_compile_post; struct HPMHookPoint *HP_libpcre_study_pre; @@ -7987,6 +7999,8 @@ struct { int HP_clif_specialeffect_single_post; int HP_clif_specialeffect_value_pre; int HP_clif_specialeffect_value_post; + int HP_clif_specialeffect_value_single_pre; + int HP_clif_specialeffect_value_single_post; int HP_clif_removeSpecialEffect_pre; int HP_clif_removeSpecialEffect_post; int HP_clif_removeSpecialEffect_single_pre; @@ -8931,8 +8945,12 @@ struct { int HP_clif_pBGQueueRevokeReq_post; int HP_clif_pBGQueueBattleBeginAck_pre; int HP_clif_pBGQueueBattleBeginAck_post; - int HP_clif_pCashShopOpen_pre; - int HP_clif_pCashShopOpen_post; + int HP_clif_pCashShopOpen1_pre; + int HP_clif_pCashShopOpen1_post; + int HP_clif_pCashShopOpen2_pre; + int HP_clif_pCashShopOpen2_post; + int HP_clif_pCashShopLimitedReq_pre; + int HP_clif_pCashShopLimitedReq_post; int HP_clif_pCashShopClose_pre; int HP_clif_pCashShopClose_post; int HP_clif_pCashShopReqTab_pre; @@ -8947,6 +8965,8 @@ struct { int HP_clif_pGuildInvite2_post; int HP_clif_cashShopBuyAck_pre; int HP_clif_cashShopBuyAck_post; + int HP_clif_cashShopOpen_pre; + int HP_clif_cashShopOpen_post; int HP_clif_pPartyBookingAddFilter_pre; int HP_clif_pPartyBookingAddFilter_post; int HP_clif_pPartyBookingSubFilter_pre; @@ -10915,10 +10935,12 @@ struct { int HP_mob_read_db_drops_option_post; int HP_mob_read_db_stats_sub_pre; int HP_mob_read_db_stats_sub_post; + int HP_mob_read_db_viewdata_sub_pre; + int HP_mob_read_db_viewdata_sub_post; int HP_mob_name_constants_pre; int HP_mob_name_constants_post; - int HP_mob_readdb_mobavail_pre; - int HP_mob_readdb_mobavail_post; + int HP_mob_mobavail_removal_notice_pre; + int HP_mob_mobavail_removal_notice_post; int HP_mob_read_randommonster_pre; int HP_mob_read_randommonster_post; int HP_mob_parse_row_chatdb_pre; @@ -11849,6 +11871,8 @@ struct { int HP_pc_has_second_costume_post; int HP_pc_expandInventory_pre; int HP_pc_expandInventory_post; + int HP_pc_auto_exp_insurance_pre; + int HP_pc_auto_exp_insurance_post; int HP_libpcre_compile_pre; int HP_libpcre_compile_post; int HP_libpcre_study_pre; diff --git a/src/plugins/HPMHooking/HPMHooking_map.HookingPoints.inc b/src/plugins/HPMHooking/HPMHooking_map.HookingPoints.inc index e7b657082..b8d5f3482 100644 --- a/src/plugins/HPMHooking/HPMHooking_map.HookingPoints.inc +++ b/src/plugins/HPMHooking/HPMHooking_map.HookingPoints.inc @@ -2,7 +2,7 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2013-2019 Hercules Dev Team + * Copyright (C) 2013-2020 Hercules Dev Team * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -601,6 +601,7 @@ struct HookingPointData HookingPoints[] = { { HP_POP(clif->specialeffect, HP_clif_specialeffect) }, { HP_POP(clif->specialeffect_single, HP_clif_specialeffect_single) }, { HP_POP(clif->specialeffect_value, HP_clif_specialeffect_value) }, + { HP_POP(clif->specialeffect_value_single, HP_clif_specialeffect_value_single) }, { HP_POP(clif->removeSpecialEffect, HP_clif_removeSpecialEffect) }, { HP_POP(clif->removeSpecialEffect_single, HP_clif_removeSpecialEffect_single) }, { HP_POP(clif->millenniumshield, HP_clif_millenniumshield) }, @@ -1073,7 +1074,9 @@ struct HookingPointData HookingPoints[] = { { HP_POP(clif->pBGQueueCheckState, HP_clif_pBGQueueCheckState) }, { HP_POP(clif->pBGQueueRevokeReq, HP_clif_pBGQueueRevokeReq) }, { HP_POP(clif->pBGQueueBattleBeginAck, HP_clif_pBGQueueBattleBeginAck) }, - { HP_POP(clif->pCashShopOpen, HP_clif_pCashShopOpen) }, + { HP_POP(clif->pCashShopOpen1, HP_clif_pCashShopOpen1) }, + { HP_POP(clif->pCashShopOpen2, HP_clif_pCashShopOpen2) }, + { HP_POP(clif->pCashShopLimitedReq, HP_clif_pCashShopLimitedReq) }, { HP_POP(clif->pCashShopClose, HP_clif_pCashShopClose) }, { HP_POP(clif->pCashShopReqTab, HP_clif_pCashShopReqTab) }, { HP_POP(clif->pCashShopSchedule, HP_clif_pCashShopSchedule) }, @@ -1081,6 +1084,7 @@ struct HookingPointData HookingPoints[] = { { HP_POP(clif->pPartyTick, HP_clif_pPartyTick) }, { HP_POP(clif->pGuildInvite2, HP_clif_pGuildInvite2) }, { HP_POP(clif->cashShopBuyAck, HP_clif_cashShopBuyAck) }, + { HP_POP(clif->cashShopOpen, HP_clif_cashShopOpen) }, { HP_POP(clif->pPartyBookingAddFilter, HP_clif_pPartyBookingAddFilter) }, { HP_POP(clif->pPartyBookingSubFilter, HP_clif_pPartyBookingSubFilter) }, { HP_POP(clif->pPartyBookingReqVolunteer, HP_clif_pPartyBookingReqVolunteer) }, @@ -2090,8 +2094,9 @@ struct HookingPointData HookingPoints[] = { { HP_POP(mob->read_db_mode_sub, HP_mob_read_db_mode_sub) }, { HP_POP(mob->read_db_drops_option, HP_mob_read_db_drops_option) }, { HP_POP(mob->read_db_stats_sub, HP_mob_read_db_stats_sub) }, + { HP_POP(mob->read_db_viewdata_sub, HP_mob_read_db_viewdata_sub) }, { HP_POP(mob->name_constants, HP_mob_name_constants) }, - { HP_POP(mob->readdb_mobavail, HP_mob_readdb_mobavail) }, + { HP_POP(mob->mobavail_removal_notice, HP_mob_mobavail_removal_notice) }, { HP_POP(mob->read_randommonster, HP_mob_read_randommonster) }, { HP_POP(mob->parse_row_chatdb, HP_mob_parse_row_chatdb) }, { HP_POP(mob->readchatdb, HP_mob_readchatdb) }, @@ -2566,6 +2571,7 @@ struct HookingPointData HookingPoints[] = { { HP_POP(pc->isDeathPenaltyJob, HP_pc_isDeathPenaltyJob) }, { HP_POP(pc->has_second_costume, HP_pc_has_second_costume) }, { HP_POP(pc->expandInventory, HP_pc_expandInventory) }, + { HP_POP(pc->auto_exp_insurance, HP_pc_auto_exp_insurance) }, /* pcre_interface */ { HP_POP(libpcre->compile, HP_libpcre_compile) }, { HP_POP(libpcre->study, HP_libpcre_study) }, diff --git a/src/plugins/HPMHooking/HPMHooking_map.Hooks.inc b/src/plugins/HPMHooking/HPMHooking_map.Hooks.inc index 53d0104e3..e24b00f78 100644 --- a/src/plugins/HPMHooking/HPMHooking_map.Hooks.inc +++ b/src/plugins/HPMHooking/HPMHooking_map.Hooks.inc @@ -2,7 +2,7 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2013-2019 Hercules Dev Team + * Copyright (C) 2013-2020 Hercules Dev Team * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -15028,10 +15028,10 @@ void HP_clif_specialeffect_single(struct block_list *bl, int type, int fd) { } return; } -void HP_clif_specialeffect_value(struct block_list *bl, int effect_id, int num, send_target target) { +void HP_clif_specialeffect_value(struct block_list *bl, int effect_id, uint64 num, send_target target) { int hIndex = 0; if (HPMHooks.count.HP_clif_specialeffect_value_pre > 0) { - void (*preHookFunc) (struct block_list **bl, int *effect_id, int *num, send_target *target); + void (*preHookFunc) (struct block_list **bl, int *effect_id, uint64 *num, send_target *target); *HPMforce_return = false; for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_specialeffect_value_pre; hIndex++) { preHookFunc = HPMHooks.list.HP_clif_specialeffect_value_pre[hIndex].func; @@ -15046,7 +15046,7 @@ void HP_clif_specialeffect_value(struct block_list *bl, int effect_id, int num, HPMHooks.source.clif.specialeffect_value(bl, effect_id, num, target); } if (HPMHooks.count.HP_clif_specialeffect_value_post > 0) { - void (*postHookFunc) (struct block_list *bl, int effect_id, int num, send_target target); + void (*postHookFunc) (struct block_list *bl, int effect_id, uint64 num, send_target target); for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_specialeffect_value_post; hIndex++) { postHookFunc = HPMHooks.list.HP_clif_specialeffect_value_post[hIndex].func; postHookFunc(bl, effect_id, num, target); @@ -15054,6 +15054,32 @@ void HP_clif_specialeffect_value(struct block_list *bl, int effect_id, int num, } return; } +void HP_clif_specialeffect_value_single(struct block_list *bl, int effect_id, uint64 num, int fd) { + int hIndex = 0; + if (HPMHooks.count.HP_clif_specialeffect_value_single_pre > 0) { + void (*preHookFunc) (struct block_list **bl, int *effect_id, uint64 *num, int *fd); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_specialeffect_value_single_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_clif_specialeffect_value_single_pre[hIndex].func; + preHookFunc(&bl, &effect_id, &num, &fd); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.specialeffect_value_single(bl, effect_id, num, fd); + } + if (HPMHooks.count.HP_clif_specialeffect_value_single_post > 0) { + void (*postHookFunc) (struct block_list *bl, int effect_id, uint64 num, int fd); + for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_specialeffect_value_single_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_clif_specialeffect_value_single_post[hIndex].func; + postHookFunc(bl, effect_id, num, fd); + } + } + return; +} void HP_clif_removeSpecialEffect(struct block_list *bl, int effectId, enum send_target target) { int hIndex = 0; if (HPMHooks.count.HP_clif_removeSpecialEffect_pre > 0) { @@ -27344,13 +27370,13 @@ void HP_clif_pBGQueueBattleBeginAck(int fd, struct map_session_data *sd) { } return; } -void HP_clif_pCashShopOpen(int fd, struct map_session_data *sd) { +void HP_clif_pCashShopOpen1(int fd, struct map_session_data *sd) { int hIndex = 0; - if (HPMHooks.count.HP_clif_pCashShopOpen_pre > 0) { + if (HPMHooks.count.HP_clif_pCashShopOpen1_pre > 0) { void (*preHookFunc) (int *fd, struct map_session_data **sd); *HPMforce_return = false; - for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_pCashShopOpen_pre; hIndex++) { - preHookFunc = HPMHooks.list.HP_clif_pCashShopOpen_pre[hIndex].func; + for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_pCashShopOpen1_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_clif_pCashShopOpen1_pre[hIndex].func; preHookFunc(&fd, &sd); } if (*HPMforce_return) { @@ -27359,12 +27385,64 @@ void HP_clif_pCashShopOpen(int fd, struct map_session_data *sd) { } } { - HPMHooks.source.clif.pCashShopOpen(fd, sd); + HPMHooks.source.clif.pCashShopOpen1(fd, sd); } - if (HPMHooks.count.HP_clif_pCashShopOpen_post > 0) { + if (HPMHooks.count.HP_clif_pCashShopOpen1_post > 0) { void (*postHookFunc) (int fd, struct map_session_data *sd); - for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_pCashShopOpen_post; hIndex++) { - postHookFunc = HPMHooks.list.HP_clif_pCashShopOpen_post[hIndex].func; + for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_pCashShopOpen1_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_clif_pCashShopOpen1_post[hIndex].func; + postHookFunc(fd, sd); + } + } + return; +} +void HP_clif_pCashShopOpen2(int fd, struct map_session_data *sd) { + int hIndex = 0; + if (HPMHooks.count.HP_clif_pCashShopOpen2_pre > 0) { + void (*preHookFunc) (int *fd, struct map_session_data **sd); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_pCashShopOpen2_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_clif_pCashShopOpen2_pre[hIndex].func; + preHookFunc(&fd, &sd); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pCashShopOpen2(fd, sd); + } + if (HPMHooks.count.HP_clif_pCashShopOpen2_post > 0) { + void (*postHookFunc) (int fd, struct map_session_data *sd); + for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_pCashShopOpen2_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_clif_pCashShopOpen2_post[hIndex].func; + postHookFunc(fd, sd); + } + } + return; +} +void HP_clif_pCashShopLimitedReq(int fd, struct map_session_data *sd) { + int hIndex = 0; + if (HPMHooks.count.HP_clif_pCashShopLimitedReq_pre > 0) { + void (*preHookFunc) (int *fd, struct map_session_data **sd); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_pCashShopLimitedReq_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_clif_pCashShopLimitedReq_pre[hIndex].func; + preHookFunc(&fd, &sd); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pCashShopLimitedReq(fd, sd); + } + if (HPMHooks.count.HP_clif_pCashShopLimitedReq_post > 0) { + void (*postHookFunc) (int fd, struct map_session_data *sd); + for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_pCashShopLimitedReq_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_clif_pCashShopLimitedReq_post[hIndex].func; postHookFunc(fd, sd); } } @@ -27552,6 +27630,32 @@ void HP_clif_cashShopBuyAck(int fd, struct map_session_data *sd, int itemId, enu } return; } +void HP_clif_cashShopOpen(int fd, struct map_session_data *sd, int tab) { + int hIndex = 0; + if (HPMHooks.count.HP_clif_cashShopOpen_pre > 0) { + void (*preHookFunc) (int *fd, struct map_session_data **sd, int *tab); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_cashShopOpen_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_clif_cashShopOpen_pre[hIndex].func; + preHookFunc(&fd, &sd, &tab); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.cashShopOpen(fd, sd, tab); + } + if (HPMHooks.count.HP_clif_cashShopOpen_post > 0) { + void (*postHookFunc) (int fd, struct map_session_data *sd, int tab); + for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_cashShopOpen_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_clif_cashShopOpen_post[hIndex].func; + postHookFunc(fd, sd, tab); + } + } + return; +} void HP_clif_pPartyBookingAddFilter(int fd, struct map_session_data *sd) { int hIndex = 0; if (HPMHooks.count.HP_clif_pPartyBookingAddFilter_pre > 0) { @@ -54137,6 +54241,32 @@ void HP_mob_read_db_stats_sub(struct mob_db *entry, struct config_setting_t *t) } return; } +void HP_mob_read_db_viewdata_sub(struct mob_db *entry, struct config_setting_t *t) { + int hIndex = 0; + if (HPMHooks.count.HP_mob_read_db_viewdata_sub_pre > 0) { + void (*preHookFunc) (struct mob_db **entry, struct config_setting_t **t); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_mob_read_db_viewdata_sub_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_mob_read_db_viewdata_sub_pre[hIndex].func; + preHookFunc(&entry, &t); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.mob.read_db_viewdata_sub(entry, t); + } + if (HPMHooks.count.HP_mob_read_db_viewdata_sub_post > 0) { + void (*postHookFunc) (struct mob_db *entry, struct config_setting_t *t); + for (hIndex = 0; hIndex < HPMHooks.count.HP_mob_read_db_viewdata_sub_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_mob_read_db_viewdata_sub_post[hIndex].func; + postHookFunc(entry, t); + } + } + return; +} void HP_mob_name_constants(void) { int hIndex = 0; if (HPMHooks.count.HP_mob_name_constants_pre > 0) { @@ -54163,32 +54293,31 @@ void HP_mob_name_constants(void) { } return; } -bool HP_mob_readdb_mobavail(char *str[], int columns, int current) { +void HP_mob_mobavail_removal_notice(void) { int hIndex = 0; - bool retVal___ = false; - if (HPMHooks.count.HP_mob_readdb_mobavail_pre > 0) { - bool (*preHookFunc) (char **str[], int *columns, int *current); + if (HPMHooks.count.HP_mob_mobavail_removal_notice_pre > 0) { + void (*preHookFunc) (void); *HPMforce_return = false; - for (hIndex = 0; hIndex < HPMHooks.count.HP_mob_readdb_mobavail_pre; hIndex++) { - preHookFunc = HPMHooks.list.HP_mob_readdb_mobavail_pre[hIndex].func; - retVal___ = preHookFunc(&str, &columns, ¤t); + for (hIndex = 0; hIndex < HPMHooks.count.HP_mob_mobavail_removal_notice_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_mob_mobavail_removal_notice_pre[hIndex].func; + preHookFunc(); } if (*HPMforce_return) { *HPMforce_return = false; - return retVal___; + return; } } { - retVal___ = HPMHooks.source.mob.readdb_mobavail(str, columns, current); + HPMHooks.source.mob.mobavail_removal_notice(); } - if (HPMHooks.count.HP_mob_readdb_mobavail_post > 0) { - bool (*postHookFunc) (bool retVal___, char *str[], int columns, int current); - for (hIndex = 0; hIndex < HPMHooks.count.HP_mob_readdb_mobavail_post; hIndex++) { - postHookFunc = HPMHooks.list.HP_mob_readdb_mobavail_post[hIndex].func; - retVal___ = postHookFunc(retVal___, str, columns, current); + if (HPMHooks.count.HP_mob_mobavail_removal_notice_post > 0) { + void (*postHookFunc) (void); + for (hIndex = 0; hIndex < HPMHooks.count.HP_mob_mobavail_removal_notice_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_mob_mobavail_removal_notice_post[hIndex].func; + postHookFunc(); } } - return retVal___; + return; } int HP_mob_read_randommonster(void) { int hIndex = 0; @@ -66514,15 +66643,15 @@ int HP_pc_have_magnifier(struct map_session_data *sd) { } return retVal___; } -int HP_pc_have_item_chain(struct map_session_data *sd, unsigned short chain_id) { +int HP_pc_have_item_chain(struct map_session_data *sd, enum e_chain_cache chain_cache_id) { int hIndex = 0; int retVal___ = 0; if (HPMHooks.count.HP_pc_have_item_chain_pre > 0) { - int (*preHookFunc) (struct map_session_data **sd, unsigned short *chain_id); + int (*preHookFunc) (struct map_session_data **sd, enum e_chain_cache *chain_cache_id); *HPMforce_return = false; for (hIndex = 0; hIndex < HPMHooks.count.HP_pc_have_item_chain_pre; hIndex++) { preHookFunc = HPMHooks.list.HP_pc_have_item_chain_pre[hIndex].func; - retVal___ = preHookFunc(&sd, &chain_id); + retVal___ = preHookFunc(&sd, &chain_cache_id); } if (*HPMforce_return) { *HPMforce_return = false; @@ -66530,13 +66659,13 @@ int HP_pc_have_item_chain(struct map_session_data *sd, unsigned short chain_id) } } { - retVal___ = HPMHooks.source.pc.have_item_chain(sd, chain_id); + retVal___ = HPMHooks.source.pc.have_item_chain(sd, chain_cache_id); } if (HPMHooks.count.HP_pc_have_item_chain_post > 0) { - int (*postHookFunc) (int retVal___, struct map_session_data *sd, unsigned short chain_id); + int (*postHookFunc) (int retVal___, struct map_session_data *sd, enum e_chain_cache chain_cache_id); for (hIndex = 0; hIndex < HPMHooks.count.HP_pc_have_item_chain_post; hIndex++) { postHookFunc = HPMHooks.list.HP_pc_have_item_chain_post[hIndex].func; - retVal___ = postHookFunc(retVal___, sd, chain_id); + retVal___ = postHookFunc(retVal___, sd, chain_cache_id); } } return retVal___; @@ -66762,6 +66891,33 @@ bool HP_pc_expandInventory(struct map_session_data *sd, int adjustSize) { } return retVal___; } +bool HP_pc_auto_exp_insurance(struct map_session_data *sd) { + int hIndex = 0; + bool retVal___ = false; + if (HPMHooks.count.HP_pc_auto_exp_insurance_pre > 0) { + bool (*preHookFunc) (struct map_session_data **sd); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_pc_auto_exp_insurance_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_pc_auto_exp_insurance_pre[hIndex].func; + retVal___ = preHookFunc(&sd); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.auto_exp_insurance(sd); + } + if (HPMHooks.count.HP_pc_auto_exp_insurance_post > 0) { + bool (*postHookFunc) (bool retVal___, struct map_session_data *sd); + for (hIndex = 0; hIndex < HPMHooks.count.HP_pc_auto_exp_insurance_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_pc_auto_exp_insurance_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd); + } + } + return retVal___; +} /* pcre_interface */ pcre* HP_libpcre_compile(const char *pattern, int options, const char **errptr, int *erroffset, const unsigned char *tableptr) { int hIndex = 0; diff --git a/src/plugins/HPMHooking/HPMHooking_map.sources.inc b/src/plugins/HPMHooking/HPMHooking_map.sources.inc index 786b60288..e49a6b166 100644 --- a/src/plugins/HPMHooking/HPMHooking_map.sources.inc +++ b/src/plugins/HPMHooking/HPMHooking_map.sources.inc @@ -2,7 +2,7 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2013-2019 Hercules Dev Team + * Copyright (C) 2013-2020 Hercules Dev Team * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/plugins/Makefile.in b/src/plugins/Makefile.in index e90a04f8b..5527ceb2f 100644 --- a/src/plugins/Makefile.in +++ b/src/plugins/Makefile.in @@ -1,7 +1,7 @@ # This file is part of Hercules. # http://herc.ws - http://github.com/HerculesWS/Hercules # -# Copyright (C) 2013-2018 Hercules Dev Team +# Copyright (C) 2013-2020 Hercules Dev Team # # Hercules is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/src/plugins/constdb2doc.c b/src/plugins/constdb2doc.c index ebaf7a833..5d01aa360 100644 --- a/src/plugins/constdb2doc.c +++ b/src/plugins/constdb2doc.c @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2016 Hercules Dev Team - * Copyright (C) 2016 Haru <haru@dotalux.com> + * Copyright (C) 2016-2020 Hercules Dev Team + * Copyright (C) 2016 Haru <haru@dotalux.com> * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/plugins/db2sql.c b/src/plugins/db2sql.c index 159d4e2a6..6ca52a593 100644 --- a/src/plugins/db2sql.c +++ b/src/plugins/db2sql.c @@ -2,7 +2,7 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2013-2018 Hercules Dev Team + * Copyright (C) 2013-2020 Hercules Dev Team * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -104,7 +104,7 @@ void db2sql_fileheader(void) "-- This file is part of Hercules.\n" "-- http://herc.ws - http://github.com/HerculesWS/Hercules\n" "--\n" - "-- Copyright (C) 2013-%d Hercules Dev Team\n" + "-- Copyright (C) 2013-%d Hercules Dev Team\n" "--\n" "-- Hercules is free software: you can redistribute it and/or modify\n" "-- it under the terms of the GNU General Public License as published by\n" diff --git a/src/plugins/dbghelpplug.c b/src/plugins/dbghelpplug.c index b68bb1efc..ab6b5fc76 100644 --- a/src/plugins/dbghelpplug.c +++ b/src/plugins/dbghelpplug.c @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/plugins/generate-translations.c b/src/plugins/generate-translations.c index 14a3c0a4d..7aeae0c96 100644 --- a/src/plugins/generate-translations.c +++ b/src/plugins/generate-translations.c @@ -2,7 +2,7 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2016 Hercules Dev Team + * Copyright (C) 2016-2020 Hercules Dev Team * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -254,7 +254,7 @@ bool translations_enter_file(const char *filepath) "# This file is part of Hercules.\n" "# http://herc.ws - http://github.com/HerculesWS/Hercules\n" "#\n" - "# Copyright (C) 2013-%d Hercules Dev Team\n" + "# Copyright (C) 2013-%d Hercules Dev Team\n" "#\n" "# Hercules is free software: you can redistribute it and/or modify\n" "# it under the terms of the GNU General Public License as published by\n" diff --git a/src/plugins/mapcache.c b/src/plugins/mapcache.c index 5e44492f6..3dc6e3b34 100644 --- a/src/plugins/mapcache.c +++ b/src/plugins/mapcache.c @@ -2,7 +2,7 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * -* Copyright (C) 2013-2015 Hercules Dev Team +* Copyright (C) 2013-2020 Hercules Dev Team * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -281,7 +281,28 @@ bool mapcache_cache_map(const char *mapname) if (rsw == NULL) { water_height = NO_WATER; } else { - water_height = (int)GetFloat(rsw + 166); + if (memcmp(rsw, "GRSW", 4) != 0) { + ShowError("mapcache_cache_map: file %s is not in rsw format\n", filepath); + aFree(rsw); + return false; + } + int major_version = rsw[4]; + int minor_version = rsw[5]; + if (major_version > 2 || (major_version == 2 && minor_version > 2)) { + ShowError("mapcache_cache_map: Unsupported version %d.%d for rsw file %s\n", major_version, minor_version, filepath); + aFree(rsw); + return false; + } + if (major_version < 1 || (major_version == 1 && minor_version <= 4)) { + ShowError("mapcache_cache_map: Unsupported version %d.%d for rsw file %s\n", major_version, minor_version, filepath); + aFree(rsw); + return false; + } + int offset = 166; + if (major_version == 2 && minor_version >= 2) { + offset = 167; + } + water_height = (int)GetFloat(rsw + offset); aFree(rsw); } diff --git a/src/plugins/sample.c b/src/plugins/sample.c index da29bd837..41f9517b5 100644 --- a/src/plugins/sample.c +++ b/src/plugins/sample.c @@ -2,7 +2,7 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2013-2015 Hercules Dev Team + * Copyright (C) 2013-2020 Hercules Dev Team * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/plugins/script_mapquit.c b/src/plugins/script_mapquit.c index b212ce1c6..af53dc00c 100644 --- a/src/plugins/script_mapquit.c +++ b/src/plugins/script_mapquit.c @@ -2,7 +2,7 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2014-2018 Hercules Dev Team + * Copyright (C) 2014-2020 Hercules Dev Team * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/test/Makefile.in b/src/test/Makefile.in index 1bd86608f..8399100f1 100644 --- a/src/test/Makefile.in +++ b/src/test/Makefile.in @@ -1,8 +1,8 @@ # This file is part of Hercules. # http://herc.ws - http://github.com/HerculesWS/Hercules # -# Copyright (C) 2012-2018 Hercules Dev Team -# Copyright (C) Athena Dev Teams +# Copyright (C) 2012-2020 Hercules Dev Team +# Copyright (C) Athena Dev Teams # # Hercules is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/src/test/test_libconfig.c b/src/test/test_libconfig.c index e1a767195..140b86f49 100644 --- a/src/test/test_libconfig.c +++ b/src/test/test_libconfig.c @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2015 Hercules Dev Team - * Copyright (C) 2015 Haru <haru@dotalux.com> + * Copyright (C) 2015-2020 Hercules Dev Team + * Copyright (C) 2015 Haru <haru@dotalux.com> * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/test/test_spinlock.c b/src/test/test_spinlock.c index fc2eed5da..4ceeea7b9 100644 --- a/src/test/test_spinlock.c +++ b/src/test/test_spinlock.c @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2018 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by |