summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJesusaves <cpntb1@ymail.com>2019-10-26 06:54:12 -0300
committerJesusaves <cpntb1@ymail.com>2019-10-26 06:54:12 -0300
commit92a7fb43ede0555d455cb9a09df36f47faeae1d4 (patch)
tree4da1cdbd62c2fd987d33bd5057e0d1d8ff482f05
parent95314603c1c4b1d7aa03e81fd3ce949ac9f291d0 (diff)
parentb388df1b517200d1cfdac18f42e2594d3deb5967 (diff)
downloadserverdata-92a7fb43ede0555d455cb9a09df36f47faeae1d4.tar.gz
serverdata-92a7fb43ede0555d455cb9a09df36f47faeae1d4.tar.bz2
serverdata-92a7fb43ede0555d455cb9a09df36f47faeae1d4.tar.xz
serverdata-92a7fb43ede0555d455cb9a09df36f47faeae1d4.zip
Merge branch 'master' into items
-rw-r--r--conf/atcommand.conf16
-rw-r--r--conf/groups.conf417
-rw-r--r--conf/map/battle/battle.conf6
-rw-r--r--conf/map/battle/client.conf2
-rw-r--r--conf/map/battle/gm.conf2
-rw-r--r--db/re/attr_fix.txt88
-rw-r--r--db/re/item_db.conf2
-rw-r--r--db/re/size_fix.txt6
-rw-r--r--npc/000-1/gugli.txt4
-rw-r--r--npc/000-2-1/arpan.txt4
-rw-r--r--npc/000-2-1/chefgado.txt2
-rw-r--r--npc/000-2-1/peter.txt2
-rw-r--r--npc/001-1/enora.txt2
-rw-r--r--npc/001-1/fexil.txt2
-rw-r--r--npc/001-1/salem.txt2
-rw-r--r--npc/001-2-19/lloyd.txt2
-rw-r--r--npc/001-2-22/peter.txt2
-rw-r--r--npc/001-2-28/plush.txt2
-rw-r--r--npc/001-2-9/janus.txt4
-rw-r--r--npc/008-2-2/melania.txt2
-rw-r--r--npc/008-2-2/melinda.txt6
-rw-r--r--npc/commands/gm.txt41
-rw-r--r--npc/commands/resync.txt2
-rw-r--r--npc/commands/warp.txt16
-rw-r--r--npc/commands/zeny.txt2
-rw-r--r--npc/functions/permissions.txt2
-rw-r--r--npc/scripts.conf1
27 files changed, 408 insertions, 231 deletions
diff --git a/conf/atcommand.conf b/conf/atcommand.conf
index 2241fa74..eede6399 100644
--- a/conf/atcommand.conf
+++ b/conf/atcommand.conf
@@ -11,7 +11,7 @@ charcommand_symbol represents #commands used on other players.
*/
atcommand_symbol : "@"
-charcommand_symbol: "$"
+charcommand_symbol: "#" // We can use $ if this overlaps with ManaPlus
/* Command aliases
You can define aliases for any command. Aliases work just like the original command.
@@ -69,6 +69,20 @@ aliases: {
nolog: {
iteminfo: 1
mobinfo: 1
+ uptime: 1
+ duel: 1
+ accept: 1
+ reject: 1
+ noask: 1
+ time: 1
+ jailtime: 1
+ email: 1
+ rates: 1
+ help: 1
+ commands: 1
+ charcommands: 1
+ refresh: 1
+ // Should we log @hugo and @linus? They're quite spammy
}
/* Commands help file */
diff --git a/conf/groups.conf b/conf/groups.conf
index b22edc8a..610f4d77 100644
--- a/conf/groups.conf
+++ b/conf/groups.conf
@@ -71,6 +71,28 @@ Syntax
------
This config file uses libconfig syntax:
http://www.hyperrealm.com/libconfig/libconfig_manual.html#Configuration-Files
+
+0: Player
+1: Trusted Player
+
+20/21: Support (Trusted Player + Common)
+
+40/41: Developer (Support + DEV)
+
+50/51: Event Coordinator (Support + EVTC)
+
+60/61: Game Master (Support + GM)
+
+80/81: Community Coordinator (Support + DEV + EVTC + GM)
+
+99: Administrator (All Perms)
+
+NYI commands:
+hairstyle and haircolor (use @debug-look)
+snow, sakura, clouds, clouds2, fog, fireworks, leaves, clearweather
+changesex (faulty)
+misceffect (I don't understand)
+
*/
groups: (
@@ -80,12 +102,23 @@ groups: (
level: 0
inherit: ( /*empty list*/ )
commands: {
+ help: true
+ commands: true
duel: true
accept: true
reject: true
+ noask: true // Autoreject duels
leave: true
- whogm: true
email: true
+ request: true
+ time: true
+ jailtime: true
+ rates: true
+ breakguild: true
+ changegm: true
+ // Bugfix-level commands
+ hominfo: true
+ refresh: true
}
permissions: {
/* without this basic permissions regular players could not
@@ -94,58 +127,51 @@ groups: (
can_party: true
}
},
+// ===== Trusted Players and Bots
{
id: 1
- name: "Super Player"
+ name: "Trusted Player"
inherit: ( "Player" ) /* can do everything Players can and more */
- level: 2
+ level: 1
commands: {
- commands: true
- charcommands: true
- help: true
- rates: true
+ // Information Commands
+ whogm: true
uptime: true
- showdelay: true
+ charcommands: true
exp: true
mobinfo: true
iteminfo: true
whodrops: true
- time: true
- jailtime: true
- hominfo: true
homstats: true
- showexp: true
- showzeny: true
whereis: true
- refresh: true
- noask: true
- noks: true
- autoloot: true
- alootid: true
- autoloottype: true
- autotrade: true
- request: true
- go: true
- breakguild: true
- channel: true
tee: true
log: true
+ // Server Spam Limit commands
+ showexp: true
+ showzeny: true
+ showdelay: true
+ // Community Commands
+ channel: true
+ // Convenience Commands
+ autotrade: true
+ // KillSteal commands (???)
+ noks: true
}
+ log_commands: true
permissions: {
show_client_version: true
}
},
+// ===== Support
{
- id: 2
+ id: 20
name: "Support"
- inherit: ( "Super Player" )
- level: 3
+ inherit: ( "Trusted Player" )
+ level: 20
commands: {
+ // Information Commands
version: true
where: [true, true]
- jumpto: true
- hugo: true
- linus: true
who: true
who2: true
who3: true
@@ -153,190 +179,271 @@ groups: (
whomap2: true
whomap3: true
users: true
- mapinfo: true
- gat: true
mobsearch: true
idsearch: true
showmobs: true
skillid: true
- skilltree: true
+ // Movement Commands
+ tonpc: true
+ jumpto: true
+ warp: true
+ jump: true
+ slide: true
+ memo: true
+ save: true
+ load: true
+ hugo: true
+ linus: true
+ // Community Commands
+ broadcast: true
+ localbroadcast: true
+ hidenpc: true
+ shownpc: true
+ stats: [true, true]
+ refresh: [true, true]
+ // Moderation Commands
+ kick: true
+ mute: true
+ unmute: true
+ // Convenience Commands
monsterignore: true
+ autoloot: true
+ alootid: true
+ autoloottype: true
+ storage: true
+ mail: true
+ effect: true
}
log_commands: true
permissions: {
+ send_gm: true
receive_requests: true
view_equipment: true
}
},
{
- id: 3
- name: "Script Manager"
+ id: 21
+ name: "Support (Hidden)"
inherit: ( "Support" )
- level: 4
+ level: 20
commands: {
- tonpc: true
- hidenpc: true
- shownpc: true
+ }
+ log_commands: true
+ permissions: {
+ send_gm: false
+ }
+},
+// ===== Developer
+{
+ id: 40
+ name: "Developer"
+ inherit: ( "Support" )
+ level: 40
+ commands: {
+ npcmove: true
+ day: true
+ night: true
+ gat: true
+ skilltree: true
+ heal: true
+ alive: true
loadnpc: true
unloadnpc: true
- npcmove: true
- addwarp: true
- save: true
+ reloadnpc: true
+ delitem: true
+ refine: true
+ speed: true
+ itemreset: true
+ reset: true
+ mapinfo: true
+ }
+ log_commands: true
+ permissions: {
+ }
+},
+{
+ id: 41
+ name: "Developer (Hidden)"
+ inherit: ( "Developer" )
+ level: 40
+ commands: {
}
log_commands: true
permissions: {
+ send_gm: false
}
},
+// ===== Event Coordinator
{
- id: 4
+ id: 50
name: "Event Coordinator"
inherit: ( "Support" )
- level: 4
+ level: 50
commands: {
- broadcast: true
- localbroadcast: true
- monster: true
- monstersmall: true
- monsterbig: true
- killmonster2: true
- cleanarea: true
+ fakename: true
+ hide: true
+
+ // Community Commands
+ heal: [true, true]
+ alive: [true, true]
+ monster: [true, true]
+ monstersmall: [true, true]
+ monsterbig: [true, true]
+ summon: [true, true]
+ killmonster2: [true, true]
+ cleanarea: [true, true]
cleanmap: true
- item: [true, true]
- item2: [true, true]
- delitem: [true, true]
- itembound: [true, true]
- itembound2: [true, true]
- produce: [true, true]
- refine: [true, true]
- zeny: [true, true]
+ clone: [true, true]
+ slaveclone: [true, true]
+ evilclone: [true, true]
disguise: [true, true]
undisguise: [true, true]
- size: [true, true]
- raise: true
- raisemap: true
- day: true
- night: true
- skillon: true
- skilloff: true
pvpon: true
pvpoff: true
gvgon: true
gvgoff: true
- allowks: true
- refresh: [true, true]
- refreshall: true
- fakename: true
- kill: true
- nuke: [true, true]
- doommap: true
- heal: [true, true]
- alive: [true, true]
- sound: true
- storage: true
- clone: [true, true]
- slaveclone: [true, true]
- evilclone: [true, true]
- repairall: [true, true]
- storeall: true
- itemreset: true
- clearstorage: true
- cleargstorage: true
- jump: [true, true]
- killer: true
- killable: true
- monsterignore: [true, true]
npctalk: true
- mute: true
- mutearea: true
- unmute: true
- speed: [true, true]
}
log_commands: true
permissions: {
}
},
{
- id: 5
- name: "Developer"
- inherit: ( "Support", "Script Manager" )
- level: 4
+ id: 51
+ name: "Event Coordinator (Hidden)"
+ inherit: ( "Event Coordinator" )
+ level: 50
commands: {
- broadcast: true
- localbroadcast: true
- hide: true
- follow: true
- warp: true
- jump: true
- memo: true
- load: true
- recall: true
- slide: [true, true]
- sound: true
}
log_commands: true
permissions: {
+ send_gm: false
}
},
+// ===== Game Master
{
- id: 6
- name: "Patrol"
+ id: 60
+ name: "Game Master"
inherit: ( "Support" )
- level: 4
+ level: 60
commands: {
- kick: true
- jailfor: true
+ blvl: [true, true]
+ jlvl: [true, true]
+ str: [true, true]
+ agi: [true, true]
+ vit: [true, true]
+ int: [true, true]
+ dex: [true, true]
+ luk: [true, true]
+ allstats: true
hide: true
- follow: true
- warp: true
- jump: true
- memo: true
- load: true
+ speed: [true, true]
+ guild: [true, true]
+
+ // Moderation Commands
+ jailfor: true
+ jail: true
+ unjail: true
+ ban: true
+ block: true
+ unban: true
+ delitem: [true, true]
+ mutearea: true
+ reset: [true, true]
+ itemreset: [true, true]
+ dropall: [true, true]
+ storeall: [true, true]
+ accinfo: true
+ storagelist: [true, true]
+ cartlist: [true, true]
+ itemlist: [true, true]
+
+ // Community Commands
+ heal: [true, true]
+ alive: [true, true]
+ slide: [true, true]
+ warp: [true, true]
+ killer: true
+ killable: true
+ pvpon: true
+ pvpoff: true
+ gvgon: true
+ gvgoff: true
+ cvcon: true
+ cvcoff: true
+ killmonster: [true, true]
+ killmonster2: [true, true]
recall: true
+ cleanmap: true
+ nuke: [true, true]
+ skillon: true
+ skilloff: true
+ raisemap: true
+ npctalk: true
+
}
log_commands: true
permissions: {
who_display_aid: true
view_hpmeter: true
+ join_chat: true
+ kick_chat: true
+ hide_session: true
+ hack_info: true
}
},
{
- id: 7
- name: "Officer"
- inherit: ( "Support", "Patrol" )
- level: 5
+ id: 61
+ name: "Game Master (Hidden)"
+ inherit: ( "Game Master" )
+ level: 60
commands: {
- heal: [true, true]
- alive: [true, true]
- ban: true
- block: true
- jail: true
- mute: true
- unmute: true
- storagelist: [true, true]
- cartlist: [true, true]
- itemlist: [true, true]
- stats: [true, true]
}
log_commands: true
permissions: {
- join_chat: true
- kick_chat: true
- hide_session: true
- hack_info: true
- send_gm: true
+ send_gm: false
}
},
+// ===== Community Coordinator (GM/DEV)
{
- id: 8
- name: "Game Master"
- inherit: ( "Event Coordinator", "Officer" )
- level: 6
+ id: 80
+ name: "Community Coordinator"
+ inherit: ( "Support", "Developer", "Event Coordinator", "Game Master" )
+ level: 80
commands: {
- fakename: true
+ addwarp: true
+ refine: [true, true]
+ repairall: [true, true]
+ allowks: true
+ item: [true, true]
+ item2: [true, true]
+ itembound: [true, true]
+ itembound2: [true, true]
+ zeny: [true, true]
+
+ // Community Commands
+ raise: true
+ partyrecall: true
+ guildrecall: true
+ doom: true
+ doommap: true
+ refreshall: true // Use with caution
+ effect: [true, true]
+ marry: [true, true] // Use with caution
+ divorce: true
+
+ // Change status and options
+ displaystatus: [true, true]
+ option: [true, true]
+ partyoption: [true, true]
+
+ // Moderation Commands
+ clearstorage: true
+ cleargstorage: true
recallall: true
- raisemap: [true, true]
- raise: [true, true]
- dropall: true
+ breakguild: [true, true]
+ changeleader: [true, true]
+
}
log_commands: true
permissions: {
@@ -344,10 +451,24 @@ groups: (
}
},
{
+ id: 81
+ name: "Community Coordinator (Hidden)"
+ inherit: ( "Community Coordinator" )
+ level: 80
+ commands: {
+ }
+ log_commands: true
+ permissions: {
+ send_gm: false
+ }
+},
+// ===== Administrator
+// (There isn't a hidden admin yet)
+{
id: 99
name: "Administrator"
level: 99
- inherit: ( "Developer", "Game Master" )
+ inherit: ( "Community Coordinator" )
commands: {
/* not necessary due to all_commands: true */
}
@@ -356,7 +477,7 @@ groups: (
can_trade_bound: false
can_party: true
all_skill: false
- all_equipment: false
+ all_equipment: true
skill_unconditional: false
use_check: true
use_changemaptype: true
diff --git a/conf/map/battle/battle.conf b/conf/map/battle/battle.conf
index eafb5ec9..290e1ee7 100644
--- a/conf/map/battle/battle.conf
+++ b/conf/map/battle/battle.conf
@@ -51,12 +51,12 @@ critical_rate: 100
// or walk animation may be omitted client-side, causing cropped attacks or
// monsters that teleport to you)
// Otherwise, the delay is equal to the 'attack animation' (amotion)
-attack_walk_delay: 15
+attack_walk_delay: 14
// Move-delay adjustment after being hit. (Note 2)
// The 'can't walk' delay after being hit is calculated as a percentage of the damage animation duration.
// NOTE: Only affects the normal delay from a single attack, not the delay added by the multihit_delay option below.
-pc_damage_walk_delay_rate: 20
+pc_damage_walk_delay_rate: 0
damage_walk_delay_rate: 100
// Move-delay adjustment for multi-hitting attacks.
@@ -155,7 +155,7 @@ equip_skill_break_rate: 100
// Do weapon attacks have a attack speed delay before actual damage is applied? (Note 1)
// NOTE: The official setting is true, even thought it degrades performance a bit.
-delay_battle_damage: true
+delay_battle_damage: false
// Are arrows/ammo consumed when used on a bow/gun?
// 0 = No
diff --git a/conf/map/battle/client.conf b/conf/map/battle/client.conf
index e5fb29d9..9a4305f4 100644
--- a/conf/map/battle/client.conf
+++ b/conf/map/battle/client.conf
@@ -40,7 +40,7 @@ packet_obfuscation: 0
// Minimum delay between whisper/global/party/guild messages (in ms)
// Messages that break this threshold are silently omitted.
-min_chat_delay: 0
+min_chat_delay: 20
// Valid range of dyes and styles on the client.
min_hair_style: 0
diff --git a/conf/map/battle/gm.conf b/conf/map/battle/gm.conf
index 782e44db..ea9548f7 100644
--- a/conf/map/battle/gm.conf
+++ b/conf/map/battle/gm.conf
@@ -48,7 +48,7 @@ atcommand_max_stat_bypass: false
// Ban people that try trade dupe.
// Duration of the ban, in minutes (default: 5). To disable the ban, set 0.
-ban_hack_trade: 5
+ban_hack_trade: 0
// requires RENEWAL_DROP to be enabled (src/map/config/renewal.h)
// modifies @mobinfo to display the users' real drop rate as per renewal_drop formula
diff --git a/db/re/attr_fix.txt b/db/re/attr_fix.txt
index 96d6b37d..b79ff7fe 100644
--- a/db/re/attr_fix.txt
+++ b/db/re/attr_fix.txt
@@ -4,53 +4,53 @@
// Column: attacker's weapon element
1,10 // lv1 Attribute table
-//Neut Watr Erth Fire Wind Pois Holy Shdw Gho Und
- 100, 100, 100, 100, 100, 100, 100, 100, 70, 100, // Neutral
- 100, 25, 100, 150, 90, 100, 75, 100, 100, 100, // Water
- 100, 100, 25, 90, 150, 100, 75, 100, 100, 100, // Earth
- 100, 90, 150, 25, 100, 100, 75, 100, 100, 125, // Fire
- 100, 175, 90, 100, 25, 100, 75, 100, 100, 100, // Wind
- 100, 100, 125, 125, 125, 0, 75, 50, 100, -25, // Poison
- 100, 100, 100, 100, 100, 100, 0, 125, 100, 150, // Holy
- 100, 100, 100, 100, 100, 50, 125, 0, 100, -25, // Shadow
- 70, 100, 100, 100, 100, 100, 75, 75, 125, 100, // Ghost
- 100, 100, 100, 100, 100, 50, 100, 0, 100, 0, // Undead
+//Neut Watr Natr Fire NYI NYI Holy Shdw NYI NYI
+ 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, // Neutral
+ 100, 90, 120, 80, 100, 100, 100, 100, 100, 100, // Water
+ 100, 80, 90, 120, 100, 100, 100, 100, 100, 100, // Nature
+ 100, 120, 80, 90, 100, 100, 100, 100, 100, 100, // Fire
+ 100, 100, 100, 100, 90, 100, 100, 100, 100, 100, // UNUSED
+ 100, 100, 100, 100, 100, 90, 100, 100, 100, 100, // UNUSED
+ 100, 100, 100, 100, 100, 100, 90, 120, 100, 100, // Holy
+ 100, 100, 100, 100, 100, 100, 120, 90, 100, 100, // Shadow
+ 100, 100, 100, 100, 100, 100, 100, 100, 90, 100, // UNUSED
+ 100, 100, 100, 100, 100, 100, 100, 100, 100, 90, // UNUSED
2,10 // lv2 Attribute table
-//Neut Watr Erth Fire Wind Pois Holy Shdw Gho Und
- 100, 100, 100, 100, 100, 100, 100, 100, 50, 100, // Neutral
- 100, 0, 100, 175, 80, 100, 50, 75, 100, 100, // Water
- 100, 100, 0, 80, 175, 100, 50, 75, 100, 100, // Earth
- 100, 80, 175, 0, 100, 100, 50, 75, 100, 150, // Fire
- 100, 175, 80, 100, 0, 100, 50, 75, 100, 100, // Wind
- 100, 75, 125, 125, 125, 0, 50, 25, 75, -50, // Poison
- 100, 100, 100, 100, 100, 100, -25, 150, 100, 175, // Holy
- 100, 100, 100, 100, 100, 25, 150, -25, 100, -50, // Shadow
- 50, 75, 75, 75, 75, 75, 50, 50, 150, 125, // Ghost
- 100, 75, 75, 75, 75, 25, 125, 0, 100, 0, // Undead
+//Neut Watr Natr Fire NYI NYI Holy Shdw NYI NYI
+ 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, // Neutral
+ 100, 90, 130, 70, 100, 100, 100, 100, 100, 100, // Water
+ 100, 70, 90, 130, 100, 100, 100, 100, 100, 100, // Nature
+ 100, 130, 70, 90, 100, 100, 100, 100, 100, 100, // Fire
+ 100, 100, 100, 100, 90, 100, 100, 100, 100, 100, // UNUSED
+ 100, 100, 100, 100, 100, 90, 100, 100, 100, 100, // UNUSED
+ 100, 100, 100, 100, 100, 100, 90, 130, 100, 100, // Holy
+ 100, 100, 100, 100, 100, 100, 130, 90, 100, 100, // Shadow
+ 100, 100, 100, 100, 100, 100, 100, 100, 90, 100, // UNUSED
+ 100, 100, 100, 100, 100, 100, 100, 100, 100, 90, // UNUSED
3,10 // lv3 Attribute table
-//Neut Watr Erth Fire Wind Pois Holy Shdw Gho Und
- 100, 100, 100, 100, 100, 100, 100, 100, 0, 100, // Neutral
- 100, -25, 100, 200, 70, 100, 25, 50, 100, 125, // Water
- 100, 100, -25, 70, 200, 100, 25, 50, 100, 100, // Earth
- 100, 70, 200, -25, 100, 100, 25, 50, 100, 175, // Fire
- 100, 200, 70, 100, -25, 100, 25, 50, 100, 100, // Wind
- 100, 50, 100, 100, 100, 0, 25, 0, 50, -75, // Poison
- 100, 100, 100, 100, 100, 125, -50, 175, 100, 200, // Holy
- 100, 100, 100, 100, 100, 0, 175, -50, 100, -75, // Shadow
- 0, 50, 50, 50, 50, 50, 25, 25, 175, 150, // Ghost
- 100, 50, 50, 50, 50, 0, 150, 0, 100, 0, // Undead
+//Neut Watr Natr Fire NYI NYI Holy Shdw NYI NYI
+ 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, // Neutral
+ 100, 90, 140, 60, 100, 100, 100, 100, 100, 100, // Water
+ 100, 60, 90, 140, 100, 100, 100, 100, 100, 100, // Nature
+ 100, 140, 60, 90, 100, 100, 100, 100, 100, 100, // Fire
+ 100, 100, 100, 100, 90, 100, 100, 100, 100, 100, // UNUSED
+ 100, 100, 100, 100, 100, 90, 100, 100, 100, 100, // UNUSED
+ 100, 100, 100, 100, 100, 100, 90, 140, 100, 100, // Holy
+ 100, 100, 100, 100, 100, 100, 140, 90, 100, 100, // Shadow
+ 100, 100, 100, 100, 100, 100, 100, 100, 90, 100, // UNUSED
+ 100, 100, 100, 100, 100, 100, 100, 100, 100, 90, // UNUSED
4,10 // lv4 Attribute table
-//Neut Watr Erth Fire Wind Pois Holy Shdw Gho Und
- 100, 100, 100, 100, 100, 100, 100, 100, 0, 100, // Neutral
- 100, -50, 100, 200, 60, 75, 0, 25, 100, 150, // Water
- 100, 100, -50, 60, 200, 75, 0, 25, 100, 50, // Earth
- 100, 60, 200, -50, 100, 75, 0, 25, 100, 200, // Fire
- 100, 200, 60, 100, -50, 75, 0, 25, 100, 100, // Wind
- 100, 25, 75, 75, 75, 0, 0, -25, 25,-100, // Poison
- 100, 75, 75, 75, 75, 125,-100, 200, 100, 200, // Holy
- 100, 75, 75, 75, 75, -25, 200,-100, 100,-100, // Shadow
- 0, 25, 25, 25, 25, 25, 0, 0, 200, 175, // Ghost
- 100, 25, 25, 25, 25, -25, 175, 0, 100, 0, // Undead
+//Neut Watr Natr Fire NYI NYI Holy Shdw NYI NYI
+ 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, // Neutral
+ 100, 90, 150, 50, 100, 100, 100, 100, 100, 100, // Water
+ 100, 50, 90, 150, 100, 100, 100, 100, 100, 100, // Nature
+ 100, 150, 50, 90, 100, 100, 100, 100, 100, 100, // Fire
+ 100, 100, 100, 100, 90, 100, 100, 100, 100, 100, // UNUSED
+ 100, 100, 100, 100, 100, 90, 100, 100, 100, 100, // UNUSED
+ 100, 100, 100, 100, 100, 100, 90, 150, 100, 100, // Holy
+ 100, 100, 100, 100, 100, 100, 150, 90, 100, 100, // Shadow
+ 100, 100, 100, 100, 100, 100, 100, 100, 90, 100, // UNUSED
+ 100, 100, 100, 100, 100, 100, 100, 100, 100, 90, // UNUSED
diff --git a/db/re/item_db.conf b/db/re/item_db.conf
index 5caa4847..161ef7a5 100644
--- a/db/re/item_db.conf
+++ b/db/re/item_db.conf
@@ -2537,7 +2537,7 @@ item_db: (
Type: "IT_ARMOR"
Buy: 15000
Sell: 900
- Weight:60
+ Weight: 60
Def: 27
Loc: "EQP_SHOES"
WeaponLv: 0
diff --git a/db/re/size_fix.txt b/db/re/size_fix.txt
index e8e3774d..ae5ebdd4 100644
--- a/db/re/size_fix.txt
+++ b/db/re/size_fix.txt
@@ -2,6 +2,6 @@
// Columns: Weapon type, Rows: Target size.
// Unarmed, Knife, 1H Sword, 2H Sword, 1H Spear, 2H Spears, 1H Axe, 2H Axe, Mace, 2H Mace, Staff, Bow, Knuckle, Musical Instrument, Whip, Book, Katar, Revolver, Rifle, Shotgun, Gatling Gun, Grenade Launcher, Fuuma Shuriken, 2H Staff
-100,100, 75, 75, 75, 75, 50, 50, 75, 75,100,100,100, 75, 75,100, 75,100,100,100,100,100, 75,100 // Size: Small
-100, 75,100, 75, 75, 75, 75, 75,100,100,100,100, 75,100,100,100,100,100,100,100,100,100, 75,100 // Size: Medium
-100, 50, 75,100,100,100,100,100,100,100,100, 75, 50, 75, 50, 50, 75,100,100,100,100,100,100,100 // Size: Large
+100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100, 100,100,100,100,100,100,100,100 // Size: Small
+100,100,100,100,100,100,100,100,100,100,100,100, 100,100,100,100,100,100,100,100,100,100,100,100 // Size: Medium
+100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100, 100,100,100,100,100,100,100,100 // Size: Large
diff --git a/npc/000-1/gugli.txt b/npc/000-1/gugli.txt
index dd2e6739..77738a8a 100644
--- a/npc/000-1/gugli.txt
+++ b/npc/000-1/gugli.txt
@@ -150,7 +150,7 @@ L_Couwan:
if (countitem(FishBox) > 0) delitem FishBox, 1;
setq ShipQuests_Couwan, 2;
- Zeny = Zeny + 10;
+ Zeny += 10;
getexp 40, 0;
message strcharinfo(0), l("You receive @@ E!", 10);
@@ -202,7 +202,7 @@ L_TaskDone:
if (countitem(PlushroomBox) == 1) delitem PlushroomBox, 1;
setq ShipQuests_Gugli, 2;
- Zeny = Zeny + 250;
+ Zeny += 250;
getexp 50, 0;
mes "";
diff --git a/npc/000-2-1/arpan.txt b/npc/000-2-1/arpan.txt
index 9b2b9665..98cd05dc 100644
--- a/npc/000-2-1/arpan.txt
+++ b/npc/000-2-1/arpan.txt
@@ -201,7 +201,7 @@ L_WhereOldClothes:
setq ShipQuests_ArpanMoney, 2;
.@q = getq(ShipQuests_Arpan);
- Zeny = Zeny + 10;
+ Zeny += 10;
message strcharinfo(0), l("You receive @@ E!", 10);
goto L_BeforeMenu;
@@ -214,7 +214,7 @@ L_WhereMoney:
setq ShipQuests_ArpanMoney, 2;
.@q = getq(ShipQuests_Arpan);
- Zeny = Zeny + 10;
+ Zeny += 10;
message strcharinfo(0), l("You receive @@ E!", 10);
goto L_BeforeMenu;
diff --git a/npc/000-2-1/chefgado.txt b/npc/000-2-1/chefgado.txt
index 69570fcf..0039e094 100644
--- a/npc/000-2-1/chefgado.txt
+++ b/npc/000-2-1/chefgado.txt
@@ -161,7 +161,7 @@ L_PoisonJulia:
mesq l("The usurper has been punished! This is a great day! Take this reward as a prize for your loyalty to the old commander!");
setq ShipQuests_ChefGado, 4;
- Zeny = Zeny + 200;
+ Zeny += 200;
message strcharinfo(0), l("You receive @@ E!", 200);
inventoryplace Bread, 1;
getitem Bread, 1;
diff --git a/npc/000-2-1/peter.txt b/npc/000-2-1/peter.txt
index eaade56e..060fa660 100644
--- a/npc/000-2-1/peter.txt
+++ b/npc/000-2-1/peter.txt
@@ -285,7 +285,7 @@ OnDone:
default: @peter=750; break;
}
- Zeny = Zeny + @peter;
+ Zeny += @peter;
message strcharinfo(0), l("You receive @@ E!", @peter);
// Some cleanup. Shouldn't cause bugs but it's absence causes a ugly behavior.
diff --git a/npc/001-1/enora.txt b/npc/001-1/enora.txt
index 45e6e551..bf2f7b16 100644
--- a/npc/001-1/enora.txt
+++ b/npc/001-1/enora.txt
@@ -123,7 +123,7 @@
.@zeny_reward = getarg(1);
getexp .@exp_reward, 0;
- Zeny = Zeny + .@zeny_reward;
+ Zeny += .@zeny_reward;
narrator S_LAST_NEXT,
l("You received @@ EXP and @@ E.", .@exp_reward, .@zeny_reward);
diff --git a/npc/001-1/fexil.txt b/npc/001-1/fexil.txt
index 2ea78091..7b612674 100644
--- a/npc/001-1/fexil.txt
+++ b/npc/001-1/fexil.txt
@@ -122,7 +122,7 @@
l("Deal, I offer you @@ E!", .@price);
delitem FluffyFur, .@amount;
- Zeny = Zeny + .@price;
+ Zeny += .@price;
break;
diff --git a/npc/001-1/salem.txt b/npc/001-1/salem.txt
index c8ea3ab8..ceaeda8f 100644
--- a/npc/001-1/salem.txt
+++ b/npc/001-1/salem.txt
@@ -48,7 +48,7 @@
return 3;
}
- Zeny = Zeny - .@price;
+ Zeny -= .@price;
getitem PiouEgg, 1;
ArtisQuests_PiousBought += 1;
mesq l("You take good care of your piou. Remember to feed it every day.");
diff --git a/npc/001-2-19/lloyd.txt b/npc/001-2-19/lloyd.txt
index fc17cc4f..e2f02ec0 100644
--- a/npc/001-2-19/lloyd.txt
+++ b/npc/001-2-19/lloyd.txt
@@ -115,7 +115,7 @@
}
else
{
- Zeny = Zeny - .@price;
+ Zeny -= .@price;
setq ArtisQuests_Lloyd, 1;
speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
l("Perfect!"),
diff --git a/npc/001-2-22/peter.txt b/npc/001-2-22/peter.txt
index 7fefb5f2..85d80bbb 100644
--- a/npc/001-2-22/peter.txt
+++ b/npc/001-2-22/peter.txt
@@ -285,7 +285,7 @@ OnDone:
default: @peter=750; break;
}
- Zeny = Zeny + @peter;
+ Zeny += @peter;
message strcharinfo(0), l("You receive @@ E!", @peter);
// Some cleanup. Shouldn't cause bugs but it's absence causes a ugly behavior.
diff --git a/npc/001-2-28/plush.txt b/npc/001-2-28/plush.txt
index 330258b8..0cba5b2a 100644
--- a/npc/001-2-28/plush.txt
+++ b/npc/001-2-28/plush.txt
@@ -27,7 +27,7 @@
else
{
emotion E_HAPPY;
- Zeny = Zeny - .@price;
+ Zeny -= .@price;
INN_REGISTER = REDPLUSH_INN;
PC_IS_DEAD = false;
diff --git a/npc/001-2-9/janus.txt b/npc/001-2-9/janus.txt
index 616991a6..6d176615 100644
--- a/npc/001-2-9/janus.txt
+++ b/npc/001-2-9/janus.txt
@@ -31,7 +31,7 @@
}
else
{
- Zeny = Zeny - .@party_price;
+ Zeny -= .@party_price;
setq General_Janus, 2;
skill NV_BASIC, 7, 0;
@@ -61,7 +61,7 @@
else
{
inventoryplace GuildCertification, 1;
- Zeny = Zeny - .@guild_price;
+ Zeny -= .@guild_price;
setq General_Janus, 3;
getitem GuildCertification, 1;
diff --git a/npc/008-2-2/melania.txt b/npc/008-2-2/melania.txt
index 57275325..cf02dc90 100644
--- a/npc/008-2-2/melania.txt
+++ b/npc/008-2-2/melania.txt
@@ -89,7 +89,7 @@
else
{
emotion E_HAPPY;
- Zeny = Zeny - .@price;
+ Zeny -= .@price;
INN_REGISTER = .inn;
PC_IS_DEAD = false;
diff --git a/npc/008-2-2/melinda.txt b/npc/008-2-2/melinda.txt
index 86f26e96..17127656 100644
--- a/npc/008-2-2/melinda.txt
+++ b/npc/008-2-2/melinda.txt
@@ -47,7 +47,7 @@ switch (select(l("Sure! [Don't tip]"),
getinventorylist;
if (@inventorylist_count == 100 && countitem("Beer") == 0)
goto L_TooMany;
- set Zeny, Zeny - 90;
+ Zeny -= 90;
getitem Beer, 1;
mes "";
mesn;
@@ -59,7 +59,7 @@ switch (select(l("Sure! [Don't tip]"),
getinventorylist;
if (@inventorylist_count == 100 && countitem("Beer") == 0)
goto L_TooMany;
- set Zeny, Zeny - 95;
+ Zeny -= 95;
getitem "Beer", 1;
mes "";
mesn;
@@ -71,7 +71,7 @@ switch (select(l("Sure! [Don't tip]"),
getinventorylist;
if (@inventorylist_count == 100 && countitem("Beer") == 0)
goto L_TooMany;
- set Zeny, Zeny - 100;
+ Zeny -= 100;
getitem "Beer", 1;
mes "";
mesn;
diff --git a/npc/commands/gm.txt b/npc/commands/gm.txt
new file mode 100644
index 00000000..b402cda8
--- /dev/null
+++ b/npc/commands/gm.txt
@@ -0,0 +1,41 @@
+// @showgm/@hidegm atcommand
+// TEMPORALY hides GM level (or revert it)
+//
+// group lv: 20+
+// group char lv: 99
+// log: False
+//
+// usage:
+// @showgm
+// #showgm "char" <delta>
+//
+
+- script @group 32767,{
+ end;
+
+OnHide:
+ .@gm=getgroupid();
+ if (.@gm < 20) end;
+ if (.@gm % 10 != 0) end;
+ setgroupid(.@gm+1);
+ dispbottom "hidelevel : "+l("Your GM level is now hidden.");
+ end;
+
+OnShow:
+ .@gm=getgroupid();
+ if (.@gm < 20) end;
+ if (.@gm % 10 != 1) end;
+ setgroupid(.@gm-1);
+ dispbottom "showlevel : "+l("Your GM level is now visible.");
+ end;
+
+OnInit:
+ bindatcmd "showgroup", "@group::OnShow", 20, 99, 0;
+ bindatcmd "showgm", "@group::OnShow", 20, 99, 0;
+ bindatcmd "showlevel", "@group::OnShow", 20, 99, 0;
+
+ bindatcmd "hidegroup", "@group::OnHide", 20, 99, 0;
+ bindatcmd "hidegm", "@group::OnHide", 20, 99, 0;
+ bindatcmd "hidelevel", "@group::OnHide", 20, 99, 0;
+ end;
+}
diff --git a/npc/commands/resync.txt b/npc/commands/resync.txt
index 63b2d290..a535a343 100644
--- a/npc/commands/resync.txt
+++ b/npc/commands/resync.txt
@@ -35,6 +35,6 @@ OnCall:
// Anyone can call @resync, but only support and upwards for other players.
// ie. GMs can try to fix lag for other people.
OnInit:
- bindatcmd "resync", "@resync::OnCall", 0, 2, 0;
+ bindatcmd "resync", "@resync::OnCall", 0, 20, 0;
end;
}
diff --git a/npc/commands/warp.txt b/npc/commands/warp.txt
index e4e5c92c..22eeda39 100644
--- a/npc/commands/warp.txt
+++ b/npc/commands/warp.txt
@@ -76,16 +76,16 @@ OnCall:
OnInit:
if (debug > 0)
{
- bindatcmd("w", "@w::OnCall", 0, 2, 0);
- bindatcmd("go", "@w::OnCall", 0, 2, 0);
- bindatcmd("to", "@w::OnCall", 0, 2, 0);
- bindatcmd("warp", "@w::OnCall", 0, 2, 0);
+ bindatcmd("w", "@w::OnCall", 0, 20, 0);
+ bindatcmd("go", "@w::OnCall", 0, 20, 0);
+ bindatcmd("to", "@w::OnCall", 0, 20, 0);
+ bindatcmd("warp", "@w::OnCall", 0, 20, 0);
}
else
{
- bindatcmd("w", "@w::OnCall", 2, 2, 1);
- bindatcmd("go", "@w::OnCall", 2, 2, 1);
- bindatcmd("to", "@w::OnCall", 2, 2, 1);
- bindatcmd("warp", "@w::OnCall", 2, 2, 1);
+ bindatcmd("w", "@w::OnCall", 20, 60, 1);
+ bindatcmd("go", "@w::OnCall", 20, 60, 1);
+ bindatcmd("to", "@w::OnCall", 20, 60, 1);
+ bindatcmd("warp", "@w::OnCall", 20, 60, 1);
}
}
diff --git a/npc/commands/zeny.txt b/npc/commands/zeny.txt
index 77f6d2de..944c1bb9 100644
--- a/npc/commands/zeny.txt
+++ b/npc/commands/zeny.txt
@@ -94,5 +94,5 @@ OnInit:
end;
}
- bindatcmd "esp", "@esp::OnCall", 3, 99, 1;
+ bindatcmd "esp", "@esp::OnCall", 99, 99, 1;
}
diff --git a/npc/functions/permissions.txt b/npc/functions/permissions.txt
index 62e0da6b..96e69fde 100644
--- a/npc/functions/permissions.txt
+++ b/npc/functions/permissions.txt
@@ -31,5 +31,5 @@ function script is_evtc {
// game master
function script is_gm {
return is_admin(getarg(0, getcharid(CHAR_ID_ACCOUNT))) ||
- has_permission("send_gm", getarg(0, getcharid(CHAR_ID_ACCOUNT)));
+ can_use_command("@jail", getarg(0, getcharid(CHAR_ID_ACCOUNT)));
}
diff --git a/npc/scripts.conf b/npc/scripts.conf
index 1106d6e6..8e0d91d9 100644
--- a/npc/scripts.conf
+++ b/npc/scripts.conf
@@ -106,6 +106,7 @@
"npc/items/master_skillbook.txt",
// custom atcommands
+"npc/commands/gm.txt",
"npc/commands/music.txt",
"npc/commands/warp.txt",
"npc/commands/zeny.txt",