Changeset 427
- Timestamp:
- 07/06/08 23:45:25 (2 years ago)
- Files:
-
- core3devel/MMOCoreORB/bin/config.lua (modified) (1 diff)
- core3devel/MMOCoreORB/bin/scripts/creatures/creatureObjects.lua (modified) (1 diff)
- core3devel/MMOCoreORB/bin/scripts/creatures/objects/creatures/battleDroidDWB.lua (added)
- core3devel/MMOCoreORB/bin/scripts/creatures/objects/creatures/blackSunAssassinDWB.lua (added)
- core3devel/MMOCoreORB/bin/scripts/creatures/objects/creatures/blackSunHenchmanDWB.lua (added)
- core3devel/MMOCoreORB/bin/scripts/creatures/objects/creatures/blackSunThugDWB.lua (added)
- core3devel/MMOCoreORB/bin/scripts/creatures/objects/creatures/deathWatchBloodguardDWB.lua (added)
- core3devel/MMOCoreORB/bin/scripts/creatures/objects/creatures/deathWatchGhostDWB.lua (added)
- core3devel/MMOCoreORB/bin/scripts/creatures/objects/creatures/deathWatchOverlordDWB.lua (added)
- core3devel/MMOCoreORB/bin/scripts/creatures/objects/creatures/deathWatchWraithDWB.lua (added)
- core3devel/MMOCoreORB/bin/scripts/creatures/objects/creatures/engineerDWB.lua (added)
- core3devel/MMOCoreORB/bin/scripts/creatures/objects/creatures/mineRatDWB.lua (added)
- core3devel/MMOCoreORB/bin/scripts/creatures/objects/creatures/minerDWB.lua (added)
- core3devel/MMOCoreORB/bin/scripts/creatures/objects/creatures/superBattleDroidDWB.lua (added)
- core3devel/MMOCoreORB/bin/scripts/creatures/objects/creatures/technicianDWB.lua (added)
- core3devel/MMOCoreORB/bin/scripts/creatures/objects/creatures/tuskenCaptain.lua (modified) (1 diff)
- core3devel/MMOCoreORB/bin/scripts/creatures/objects/creatures/tuskenEliteGuard.lua (modified) (1 diff)
- core3devel/MMOCoreORB/bin/scripts/creatures/objects/creatures/tuskenExecutioner.lua (modified) (1 diff)
- core3devel/MMOCoreORB/bin/scripts/creatures/objects/creatures/tuskenKing.lua (modified) (1 diff)
- core3devel/MMOCoreORB/bin/scripts/creatures/objects/creatures/tuskenObserver.lua (modified) (1 diff)
- core3devel/MMOCoreORB/bin/scripts/creatures/objects/creatures/tuskenRaider.lua (modified) (1 diff)
- core3devel/MMOCoreORB/bin/scripts/creatures/objects/creatures/tuskenSniper.lua (modified) (1 diff)
- core3devel/MMOCoreORB/bin/scripts/creatures/objects/creatures/tuskenWarlord.lua (modified) (1 diff)
- core3devel/MMOCoreORB/bin/scripts/creatures/objects/creatures/tuskenWarrior.lua (modified) (1 diff)
- core3devel/MMOCoreORB/bin/scripts/creatures/objects/creatures/tuskenWitchDoctor.lua (modified) (1 diff)
- core3devel/MMOCoreORB/bin/scripts/creatures/objects/creatures/twilekSlave.lua (added)
- core3devel/MMOCoreORB/bin/scripts/creatures/spawns.lua (modified) (1 diff)
- core3devel/MMOCoreORB/bin/scripts/creatures/spawns/endor (added)
- core3devel/MMOCoreORB/bin/scripts/creatures/spawns/endor/deathWatchBunker.lua (added)
- core3devel/MMOCoreORB/bin/scripts/skills/creatureSkills/dwbAttacks.lua (added)
- core3devel/MMOCoreORB/bin/scripts/skills/creatureSkills/dwbMeleeAttacks.lua (added)
- core3devel/MMOCoreORB/bin/scripts/skills/creatureSkills/dwbSBDAttacks.lua (added)
- core3devel/MMOCoreORB/bin/scripts/skills/creatureSkills/mineRatAttacks.lua (added)
- core3devel/MMOCoreORB/bin/scripts/skills/skills.lua (modified) (1 diff)
- core3devel/MMOCoreORB/build/unix/Makefile (modified) (4 diffs)
- core3devel/MMOCoreORB/build/unix/config.log (modified) (7 diffs)
- core3devel/MMOCoreORB/build/unix/config.status (modified) (3 diffs)
- core3devel/MMOCoreORB/src/server/zone/objects/creature/CreatureImplementation.cpp (modified) (85 diffs)
- core3devel/MMOCoreORB/src/server/zone/objects/player/Player.cpp (modified) (1 diff)
- core3devel/MMOCoreORB/src/server/zone/objects/player/PlayerObject.cpp (modified) (1 diff)
- core3devel/MMOCoreORB/src/server/zone/objects/static/firework/FireworkWorld.cpp (modified) (1 diff)
- core3devel/MMOCoreORB/src/server/zone/objects/tangible/firework/Firework.cpp (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
core3devel/MMOCoreORB/bin/config.lua
r365 r427 50 50 51 51 52 DBHost = "1 27.0.0.1"52 DBHost = "192.168.1.180" 53 53 DBPort = 3306 54 DBName = "swgemu "55 DBUser = " swgemu"56 DBPass = " 123456"54 DBName = "swgemu2" 55 DBUser = "root" 56 DBPass = "351windsor" 57 57 58 58 LoginPort = 44453 core3devel/MMOCoreORB/bin/scripts/creatures/creatureObjects.lua
r392 r427 206 206 207 207 ---------------------------------------------------- 208 209 -- Death Watch Bunker 210 211 RunCreatureFile("objects/creatures/battleDroidDWB.lua") 212 RunCreatureFile("objects/creatures/blackSunThugDWB.lua") 213 RunCreatureFile("objects/creatures/blackSunHenchmanDWB.lua") 214 RunCreatureFile("objects/creatures/blackSunAssassinDWB.lua") 215 RunCreatureFile("objects/creatures/deathWatchGhostDWB.lua") 216 RunCreatureFile("objects/creatures/deathWatchBloodguardDWB.lua") 217 RunCreatureFile("objects/creatures/deathWatchWraithDWB.lua") 218 RunCreatureFile("objects/creatures/superBattleDroidDWB.lua") 219 RunCreatureFile("objects/creatures/mineRatDWB.lua") 220 RunCreatureFile("objects/creatures/technicianDWB.lua") 221 RunCreatureFile("objects/creatures/minerDWB.lua") 222 RunCreatureFile("objects/creatures/engineerDWB.lua") 223 RunCreatureFile("objects/creatures/deathWatchOverlordDWB.lua") 224 225 226 --- lulz 227 228 RunCreatureFile("objects/creatures/twilekSlave.lua") core3devel/MMOCoreORB/bin/scripts/creatures/objects/creatures/tuskenCaptain.lua
r387 r427 50 50 level = 120, 51 51 52 combatFlags = ATTACKABLE_FLAG + ENEMY_FLAG ,52 combatFlags = ATTACKABLE_FLAG + ENEMY_FLAG + AGGRESSIVE_FLAG, 53 53 54 54 health = 80000, core3devel/MMOCoreORB/bin/scripts/creatures/objects/creatures/tuskenEliteGuard.lua
r352 r427 50 50 level = 44, 51 51 52 combatFlags = ATTACKABLE_FLAG + ENEMY_FLAG ,52 combatFlags = ATTACKABLE_FLAG + ENEMY_FLAG + AGGRESSIVE_FLAG, 53 53 54 54 health= 6500, core3devel/MMOCoreORB/bin/scripts/creatures/objects/creatures/tuskenExecutioner.lua
r381 r427 50 50 level = 263, 51 51 52 combatFlags = ATTACKABLE_FLAG + ENEMY_FLAG ,52 combatFlags = ATTACKABLE_FLAG + ENEMY_FLAG + AGGRESSIVE_FLAG, 53 53 54 54 health = 290000, core3devel/MMOCoreORB/bin/scripts/creatures/objects/creatures/tuskenKing.lua
r381 r427 50 50 level = 150, 51 51 52 combatFlags = ATTACKABLE_FLAG + ENEMY_FLAG ,52 combatFlags = ATTACKABLE_FLAG + ENEMY_FLAG + AGGRESSIVE_FLAG, 53 53 54 54 health = 120000, core3devel/MMOCoreORB/bin/scripts/creatures/objects/creatures/tuskenObserver.lua
r381 r427 50 50 level = 227, 51 51 52 combatFlags = ATTACKABLE_FLAG + ENEMY_FLAG ,52 combatFlags = ATTACKABLE_FLAG + ENEMY_FLAG + AGGRESSIVE_FLAG, 53 53 54 54 health = 230765, core3devel/MMOCoreORB/bin/scripts/creatures/objects/creatures/tuskenRaider.lua
r381 r427 50 50 level = 65, 51 51 52 combatFlags = ATTACKABLE_FLAG + ENEMY_FLAG ,52 combatFlags = ATTACKABLE_FLAG + ENEMY_FLAG + AGGRESSIVE_FLAG, 53 53 54 54 health = 10400, core3devel/MMOCoreORB/bin/scripts/creatures/objects/creatures/tuskenSniper.lua
r352 r427 50 50 level = 22, 51 51 52 combatFlags = ATTACKABLE_FLAG + ENEMY_FLAG ,52 combatFlags = ATTACKABLE_FLAG + ENEMY_FLAG + AGGRESSIVE_FLAG, 53 53 54 54 health = 2400, core3devel/MMOCoreORB/bin/scripts/creatures/objects/creatures/tuskenWarlord.lua
r352 r427 50 50 level = 62, 51 51 52 combatFlags = ATTACKABLE_FLAG + ENEMY_FLAG ,52 combatFlags = ATTACKABLE_FLAG + ENEMY_FLAG + AGGRESSIVE_FLAG, 53 53 54 54 health = 78000, core3devel/MMOCoreORB/bin/scripts/creatures/objects/creatures/tuskenWarrior.lua
r381 r427 50 50 level = 80, 51 51 52 combatFlags = ATTACKABLE_FLAG + ENEMY_FLAG ,52 combatFlags = ATTACKABLE_FLAG + ENEMY_FLAG + AGGRESSIVE_FLAG, 53 53 54 54 health= 8500, core3devel/MMOCoreORB/bin/scripts/creatures/objects/creatures/tuskenWitchDoctor.lua
r352 r427 50 50 level = 202, 51 51 52 combatFlags = ATTACKABLE_FLAG + ENEMY_FLAG ,52 combatFlags = ATTACKABLE_FLAG + ENEMY_FLAG + AGGRESSIVE_FLAG, 53 53 54 54 health = 178000, core3devel/MMOCoreORB/bin/scripts/creatures/spawns.lua
r392 r427 58 58 RunCreatureFile("spawns/corellia/lordNyaxCult.lua") 59 59 RunCreatureFile("spawns/corellia/rogueCorsec.lua") 60 61 -- Endor 62 RunCreatureFile("spawns/endor/deathWatchBunker.lua") core3devel/MMOCoreORB/bin/scripts/skills/skills.lua
r392 r427 116 116 RunSkillsFile("creatureSkills/afarathuAttacks.lua") 117 117 RunSkillsFile("creatureSkills/drallAttacks.lua") 118 RunSkillsFile("creatureSkills/dwbAttacks.lua") 119 RunSkillsFile("creatureSkills/mineRatAttacks.lua") 120 RunSkillsFile("creatureSkills/dwbSBDAttacks.lua") 121 RunSkillsFile("creatureSkills/dwbMeleeAttacks.lua") core3devel/MMOCoreORB/build/unix/Makefile
r411 r427 117 117 distuninstallcheck_listfiles = find . -type f -print 118 118 distcleancheck_listfiles = find . -type f -print 119 ACLOCAL = ${SHELL} / home/Administrator/workspace/MMOCoreORB/build/unix/config/missing --run aclocal-1.10120 AMTAR = ${SHELL} / home/Administrator/workspace/MMOCoreORB/build/unix/config/missing --run tar121 AUTOCONF = ${SHELL} / home/Administrator/workspace/MMOCoreORB/build/unix/config/missing --run autoconf122 AUTOHEADER = ${SHELL} / home/Administrator/workspace/MMOCoreORB/build/unix/config/missing --run autoheader123 AUTOMAKE = ${SHELL} / home/Administrator/workspace/MMOCoreORB/build/unix/config/missing --run automake-1.10119 ACLOCAL = ${SHELL} /cygdrive/c/workspace2/MMOCoreORB2/build/unix/config/missing --run aclocal-1.10 120 AMTAR = ${SHELL} /cygdrive/c/workspace2/MMOCoreORB2/build/unix/config/missing --run tar 121 AUTOCONF = ${SHELL} /cygdrive/c/workspace2/MMOCoreORB2/build/unix/config/missing --run autoconf 122 AUTOHEADER = ${SHELL} /cygdrive/c/workspace2/MMOCoreORB2/build/unix/config/missing --run autoheader 123 AUTOMAKE = ${SHELL} /cygdrive/c/workspace2/MMOCoreORB2/build/unix/config/missing --run automake-1.10 124 124 AWK = gawk 125 125 CFLAGS = … … 144 144 LIBS = 145 145 LTLIBOBJS = 146 MAKEINFO = ${SHELL} / home/Administrator/workspace/MMOCoreORB/build/unix/config/missing --run makeinfo146 MAKEINFO = ${SHELL} /cygdrive/c/workspace2/MMOCoreORB2/build/unix/config/missing --run makeinfo 147 147 MKDIR_P = /usr/bin/mkdir -p 148 148 OBJEXT = o … … 163 163 USER_LIBS_PATH = /usr/local/lib 164 164 VERSION = 1.0 165 abs_builddir = / home/Administrator/workspace/MMOCoreORB/build/unix166 abs_srcdir = / home/Administrator/workspace/MMOCoreORB/build/unix/../..167 abs_top_builddir = / home/Administrator/workspace/MMOCoreORB/build/unix168 abs_top_srcdir = / home/Administrator/workspace/MMOCoreORB/build/unix/../..165 abs_builddir = /cygdrive/c/workspace2/MMOCoreORB2/build/unix 166 abs_srcdir = /cygdrive/c/workspace2/MMOCoreORB2/build/unix/../.. 167 abs_top_builddir = /cygdrive/c/workspace2/MMOCoreORB2/build/unix 168 abs_top_srcdir = /cygdrive/c/workspace2/MMOCoreORB2/build/unix/../.. 169 169 ac_ct_CXX = g++ 170 170 am__include = include … … 193 193 includedir = ${prefix}/include 194 194 infodir = ${datarootdir}/info 195 install_sh = $(SHELL) / home/Administrator/workspace/MMOCoreORB/build/unix/config/install-sh195 install_sh = $(SHELL) /cygdrive/c/workspace2/MMOCoreORB2/build/unix/config/install-sh 196 196 libdir = ${exec_prefix}/lib 197 197 libexecdir = ${exec_prefix}/libexec core3devel/MMOCoreORB/build/unix/config.log
r411 r427 11 11 ## --------- ## 12 12 13 hostname = joe-a3bbb575c6b13 hostname = Kyle-PC 14 14 uname -m = i686 15 15 uname -r = 1.5.25(0.156/4/2) 16 uname -s = CYGWIN_NT- 5.117 uname -v = 2008-0 3-05 19:2716 uname -s = CYGWIN_NT-6.0-WOW64 17 uname -v = 2008-04-17 12:11 18 18 19 19 /usr/bin/uname -p = unknown … … 28 28 /bin/universe = unknown 29 29 30 PATH: /usr/local/bin 30 PATH: /cygdrive/c/Program Files (x86)/Java/jre1.6.0_06/bin/client 31 PATH: /cygdrive/c/Program Files (x86)/Java/jre1.6.0_06/bin 32 PATH: /cygdrive/c/Windows/system32 33 PATH: /cygdrive/c/Windows 34 PATH: /cygdrive/c/Windows/System32/Wbem 31 35 PATH: /usr/bin 32 PATH: /bin 33 PATH: /usr/X11R6/bin 34 PATH: /cygdrive/c/WINDOWS/system32 35 PATH: /cygdrive/c/WINDOWS 36 PATH: /cygdrive/c/WINDOWS/System32/Wbem 37 PATH: /cygdrive/c/Program Files/Microsoft SQL Server/90/Tools/binn/ 38 PATH: /usr/bin 39 PATH: /cygdrive/c/Program Files/MySQL/MySQL Server 5.0/bin 40 PATH: /usr/lib/lapack 36 PATH: /cygdrive/c/Program Files (x86)/Microsoft SQL Server/90/Tools/binn/ 41 37 42 38 … … 130 126 $ ./config.status 131 127 132 on joe-a3bbb575c6b128 on Kyle-PC 133 129 134 130 config.status:651: creating Makefile … … 144 140 ac_cv_build=i686-pc-cygwin 145 141 ac_cv_cxx_compiler_gnu=yes 142 ac_cv_env_build_alias_set= 143 ac_cv_env_build_alias_value= 146 144 ac_cv_env_CCC_set= 147 145 ac_cv_env_CCC_value= 148 146 ac_cv_env_CPPFLAGS_set= 149 147 ac_cv_env_CPPFLAGS_value= 148 ac_cv_env_CXX_set= 149 ac_cv_env_CXX_value= 150 150 ac_cv_env_CXXFLAGS_set= 151 151 ac_cv_env_CXXFLAGS_value= 152 ac_cv_env_ CXX_set=153 ac_cv_env_ CXX_value=152 ac_cv_env_host_alias_set= 153 ac_cv_env_host_alias_value= 154 154 ac_cv_env_LDFLAGS_set= 155 155 ac_cv_env_LDFLAGS_value= 156 156 ac_cv_env_LIBS_set= 157 157 ac_cv_env_LIBS_value= 158 ac_cv_env_build_alias_set=159 ac_cv_env_build_alias_value=160 ac_cv_env_host_alias_set=161 ac_cv_env_host_alias_value=162 158 ac_cv_env_target_alias_set= 163 159 ac_cv_env_target_alias_value= … … 167 163 ac_cv_path_install='/usr/bin/install -c' 168 164 ac_cv_path_mkdir=/usr/bin/mkdir 169 ac_cv_prog_AWK=gawk170 165 ac_cv_prog_ac_ct_CXX=g++ 171 166 ac_cv_prog_ac_ct_RANLIB=ranlib 167 ac_cv_prog_AWK=gawk 172 168 ac_cv_prog_cxx_g=yes 173 169 ac_cv_prog_make_make_set=yes … … 179 175 ## ----------------- ## 180 176 181 ACLOCAL='${SHELL} /home/Administrator/workspace/MMOCoreORB/build/unix/config/missing --run aclocal-1.10'182 AMDEPBACKSLASH='\'183 AMDEP_FALSE='#'184 AMDEP_TRUE=''185 AMTAR='${SHELL} /home/Administrator/workspace/MMOCoreORB/build/unix/config/missing --run tar'186 AUTOCONF='${SHELL} /home/Administrator/workspace/MMOCoreORB/build/unix/config/missing --run autoconf'187 AUTOHEADER='${SHELL} /home/Administrator/workspace/MMOCoreORB/build/unix/config/missing --run autoheader'188 AUTOMAKE='${SHELL} /home/Administrator/workspace/MMOCoreORB/build/unix/config/missing --run automake-1.10'189 AWK='gawk'190 CFLAGS=''191 CPPFLAGS=''192 CXX='g++'193 CXXDEPMODE='depmode=gcc3'194 CXXFLAGS=' '195 CYGPATH_W='cygpath -w'196 DEFS='-DHAVE_CONFIG_H'197 DEPDIR='.deps'198 ECHO_C=''199 ECHO_N='-n'200 ECHO_T=''201 EXEEXT='.exe'202 INSTALL_DATA='${INSTALL} -m 644'203 INSTALL_PROGRAM='${INSTALL}'204 INSTALL_SCRIPT='${INSTALL}'205 INSTALL_STRIP_PROGRAM='$(install_sh) -c -s'206 LDFLAGS=''207 LIBOBJS=''208 LIBS=''209 LTLIBOBJS=''210 MAKEINFO='${SHELL} /home/Administrator/workspace/MMOCoreORB/build/unix/config/missing --run makeinfo'211 OBJEXT='o'212 PACKAGE='core3'213 PACKAGE_BUGREPORT=''214 PACKAGE_NAME='core3'215 PACKAGE_STRING='core3 1.0'216 PACKAGE_TARNAME='core3'217 PACKAGE_VERSION='1.0'218 PATH_SEPARATOR=':'219 RANLIB='ranlib'220 SET_MAKE=''221 SHELL='/bin/sh'222 STRIP=''223 SYSTEM_INCLUDES=''224 SYSTEM_LIBS='-lpthread -lwsock32'225 USER_INCLUDES_PATH='/usr/local/include'226 USER_LIBS_PATH='/usr/local/lib'227 VERSION='1.0'228 177 ac_ct_CXX='g++' 178 ACLOCAL='${SHELL} /cygdrive/c/workspace2/MMOCoreORB2/build/unix/config/missing --run aclocal-1.10' 229 179 am__fastdepCXX_FALSE='#' 230 180 am__fastdepCXX_TRUE='' … … 235 185 am__tar='${AMTAR} chof - "$$tardir"' 236 186 am__untar='${AMTAR} xf -' 187 AMDEP_FALSE='#' 188 AMDEP_TRUE='' 189 AMDEPBACKSLASH='\' 190 AMTAR='${SHELL} /cygdrive/c/workspace2/MMOCoreORB2/build/unix/config/missing --run tar' 191 AUTOCONF='${SHELL} /cygdrive/c/workspace2/MMOCoreORB2/build/unix/config/missing --run autoconf' 192 AUTOHEADER='${SHELL} /cygdrive/c/workspace2/MMOCoreORB2/build/unix/config/missing --run autoheader' 193 AUTOMAKE='${SHELL} /cygdrive/c/workspace2/MMOCoreORB2/build/unix/config/missing --run automake-1.10' 194 AWK='gawk' 237 195 bindir='${exec_prefix}/bin' 238 build='i686-pc-cygwin'239 196 build_alias='' 240 197 build_cpu='i686' 241 198 build_os='cygwin' 242 199 build_vendor='pc' 200 build='i686-pc-cygwin' 201 CFLAGS='' 202 CPPFLAGS='' 203 CXX='g++' 204 CXXDEPMODE='depmode=gcc3' 205 CXXFLAGS=' ' 206 CYGPATH_W='cygpath -w' 243 207 datadir='${datarootdir}' 244 208 datarootdir='${prefix}/share' 209 DEFS='-DHAVE_CONFIG_H' 210 DEPDIR='.deps' 245 211 docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' 246 212 dvidir='${docdir}' 213 ECHO_C='' 214 ECHO_N='-n' 215 ECHO_T='' 247 216 exec_prefix='${prefix}' 248 host='i686-pc-cygwin'217 EXEEXT='.exe' 249 218 host_alias='' 250 219 host_cpu='i686' 251 220 host_os='cygwin' 252 221 host_vendor='pc' 222 host='i686-pc-cygwin' 253 223 htmldir='${docdir}' 254 224 includedir='${prefix}/include' 255 225 infodir='${datarootdir}/info' 256 install_sh='$(SHELL) /home/Administrator/workspace/MMOCoreORB/build/unix/config/install-sh' 226 INSTALL_DATA='${INSTALL} -m 644' 227 INSTALL_PROGRAM='${INSTALL}' 228 INSTALL_SCRIPT='${INSTALL}' 229 install_sh='$(SHELL) /cygdrive/c/workspace2/MMOCoreORB2/build/unix/config/install-sh' 230 INSTALL_STRIP_PROGRAM='$(install_sh) -c -s' 231 LDFLAGS='' 257 232 libdir='${exec_prefix}/lib' 258 233 libexecdir='${exec_prefix}/libexec' 234 LIBOBJS='' 235 LIBS='' 259 236 localedir='${datarootdir}/locale' 260 237 localstatedir='${prefix}/var' 238 LTLIBOBJS='' 239 MAKEINFO='${SHELL} /cygdrive/c/workspace2/MMOCoreORB2/build/unix/config/missing --run makeinfo' 261 240 mandir='${datarootdir}/man' 262 241 mkdir_p='/usr/bin/mkdir -p' 242 OBJEXT='o' 263 243 oldincludedir='/usr/include' 244 PACKAGE_BUGREPORT='' 245 PACKAGE_NAME='core3' 246 PACKAGE_STRING='core3 1.0' 247 PACKAGE_TARNAME='core3' 248 PACKAGE_VERSION='1.0' 249 PACKAGE='core3' 250 PATH_SEPARATOR=':' 264 251 pdfdir='${docdir}' 265 252 prefix='/usr/local' 266 253 program_transform_name='s,x,x,' 267 254 psdir='${docdir}' 255 RANLIB='ranlib' 268 256 sbindir='${exec_prefix}/sbin' 257 SET_MAKE='' 269 258 sharedstatedir='${prefix}/com' 259 SHELL='/bin/sh' 260 STRIP='' 270 261 sysconfdir='${prefix}/etc' 271 target='i686-pc-cygwin' 262 SYSTEM_INCLUDES='' 263 SYSTEM_LIBS='-lpthread -lwsock32' 272 264 target_alias='' 273 265 target_cpu='i686' 274 266 target_os='cygwin' 275 267 target_vendor='pc' 268 target='i686-pc-cygwin' 269 USER_INCLUDES_PATH='/usr/local/include' 270 USER_LIBS_PATH='/usr/local/lib' 271 VERSION='1.0' 276 272 277 273 ## ----------- ## core3devel/MMOCoreORB/build/unix/config.status
r411 r427 342 342 gives unlimited permission to copy, distribute and modify it." 343 343 344 ac_pwd='/ home/Administrator/workspace/MMOCoreORB/build/unix'344 ac_pwd='/cygdrive/c/workspace2/MMOCoreORB2/build/unix' 345 345 srcdir='../..' 346 346 INSTALL='/usr/bin/install -c' … … 553 553 s,@PACKAGE@,|#_!!_#|core3,g 554 554 s,@VERSION@,|#_!!_#|1.0,g 555 s,@ACLOCAL@,|#_!!_#|${SHELL} / home/Administrator/workspace/MMOCoreORB/build/unix/config/missing --run aclocal-1.10,g556 s,@AUTOCONF@,|#_!!_#|${SHELL} / home/Administrator/workspace/MMOCoreORB/build/unix/config/missing --run autoconf,g557 s,@AUTOMAKE@,|#_!!_#|${SHELL} / home/Administrator/workspace/MMOCoreORB/build/unix/config/missing --run automake-1.10,g558 s,@AUTOHEADER@,|#_!!_#|${SHELL} / home/Administrator/workspace/MMOCoreORB/build/unix/config/missing --run autoheader,g559 s,@MAKEINFO@,|#_!!_#|${SHELL} / home/Administrator/workspace/MMOCoreORB/build/unix/config/missing --run makeinfo,g560 s,@install_sh@,|#_!!_#|$(SHELL) / home/Administrator/workspace/MMOCoreORB/build/unix/config/install-sh,g555 s,@ACLOCAL@,|#_!!_#|${SHELL} /cygdrive/c/workspace2/MMOCoreORB2/build/unix/config/missing --run aclocal-1.10,g 556 s,@AUTOCONF@,|#_!!_#|${SHELL} /cygdrive/c/workspace2/MMOCoreORB2/build/unix/config/missing --run autoconf,g 557 s,@AUTOMAKE@,|#_!!_#|${SHELL} /cygdrive/c/workspace2/MMOCoreORB2/build/unix/config/missing --run automake-1.10,g 558 s,@AUTOHEADER@,|#_!!_#|${SHELL} /cygdrive/c/workspace2/MMOCoreORB2/build/unix/config/missing --run autoheader,g 559 s,@MAKEINFO@,|#_!!_#|${SHELL} /cygdrive/c/workspace2/MMOCoreORB2/build/unix/config/missing --run makeinfo,g 560 s,@install_sh@,|#_!!_#|$(SHELL) /cygdrive/c/workspace2/MMOCoreORB2/build/unix/config/install-sh,g 561 561 s,@STRIP@,|#_!!_#|,g 562 562 s,@INSTALL_STRIP_PROGRAM@,|#_!!_#|$(install_sh) -c -s,g … … 565 565 s,@SET_MAKE@,|#_!!_#|,g 566 566 s,@am__leading_dot@,|#_!!_#|.,g 567 s,@AMTAR@,|#_!!_#|${SHELL} / home/Administrator/workspace/MMOCoreORB/build/unix/config/missing --run tar,g567 s,@AMTAR@,|#_!!_#|${SHELL} /cygdrive/c/workspace2/MMOCoreORB2/build/unix/config/missing --run tar,g 568 568 s,@am__tar@,|#_!!_#|${AMTAR} chof - "$$tardir",g 569 569 s,@am__untar@,|#_!!_#|${AMTAR} xf -,g core3devel/MMOCoreORB/src/server/zone/objects/creature/CreatureImplementation.cpp
r425 r427 1 1 /* 2 2 Copyright (C) 2007 <SWGEmu> 3 3 4 4 This File is part of Core3. 5 6 This program is free software; you can redistribute 7 it and/or modify it under the terms of the GNU Lesser 5 6 This program is free software; you can redistribute 7 it and/or modify it under the terms of the GNU Lesser 8 8 General Public License as published by the Free Software 9 Foundation; either version 2 of the License, 9 Foundation; either version 2 of the License, 10 10 or (at your option) any later version. 11 12 This program is distributed in the hope that it will be useful, 13 but WITHOUT ANY WARRANTY; without even the implied warranty of 14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 11 12 This program is distributed in the hope that it will be useful, 13 but WITHOUT ANY WARRANTY; without even the implied warranty of 14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 15 15 See the GNU Lesser General Public License for 16 16 more details. 17 18 You should have received a copy of the GNU Lesser General 17 18 You should have received a copy of the GNU Lesser General 19 19 Public License along with this program; if not, write to 20 20 the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 21 22 Linking Engine3 statically or dynamically with other modules 23 is making a combined work based on Engine3. 24 Thus, the terms and conditions of the GNU Lesser General Public License 21 22 Linking Engine3 statically or dynamically with other modules 23 is making a combined work based on Engine3. 24 Thus, the terms and conditions of the GNU Lesser General Public License 25 25 cover the whole combination. 26 27 In addition, as a special exception, the copyright holders of Engine3 28 give you permission to combine Engine3 program with free software 29 programs or libraries that are released under the GNU LGPL and with 30 code included in the standard release of Core3 under the GNU LGPL 31 license (or modified versions of such code, with unchanged license). 32 You may copy and distribute such a system following the terms of the 33 GNU LGPL for Engine3 and the licenses of the other code concerned, 34 provided that you include the source code of that other code when 26 27 In addition, as a special exception, the copyright holders of Engine3 28 give you permission to combine Engine3 program with free software 29 programs or libraries that are released under the GNU LGPL and with 30 code included in the standard release of Core3 under the GNU LGPL 31 license (or modified versions of such code, with unchanged license). 32 You may copy and distribute such a system following the terms of the 33 GNU LGPL for Engine3 and the licenses of the other code concerned, 34 provided that you include the source code of that other code when 35 35 and as the GNU LGPL requires distribution of source code. 36 37 Note that people who make modified versions of Engine3 are not obligated 38 to grant this special exception for their modified versions; 39 it is their choice whether to do so. The GNU Lesser General Public License 40 gives permission to release a modified version without this exception; 41 this exception also makes it possible to release a modified version 36 37 Note that people who make modified versions of Engine3 are not obligated 38 to grant this special exception for their modified versions; 39 it is their choice whether to do so. The GNU Lesser General Public License 40 gives permission to release a modified version without this exception; 41 this exception also makes it possible to release a modified version 42 42 which carries forward this exception. 43 43 */ … … 48 48 #include "../../packets.h" 49 49 50 #include "../tangible/Inventory.h" 51 #include "../tangible/Container.h" 50 #include "../tangible/Inventory.h" 51 #include "../tangible/Container.h" 52 52 53 53 #include "../terrain/Terrain.h" … … 74 74 objectID = oid; 75 75 type = CREATURE; 76 76 77 77 baseID = oid; 78 78 79 79 stfName = "mob/creature_names"; 80 80 81 81 creatureGroup = group; 82 82 83 83 setKeeping(true); 84 84 … … 89 89 if (nextPosition != NULL) { 90 90 delete nextPosition; 91 91 92 92 nextPosition = NULL; 93 93 } 94 94 95 95 if (spawnPosition != NULL) { 96 96 delete spawnPosition; 97 97 98 98 spawnPosition = NULL; 99 99 } … … 113 113 // constants 114 114 itemShift = 100; 115 115 116 116 activityCount = 0; 117 117 highestMadeDamage = 0; 118 118 119 119 respawnTimer = 60; 120 120 121 121 lair = NULL; 122 122 123 123 level = 250; 124 124 125 125 nextPosition = new PatrolPoint(); 126 126 127 127 spawnPosition = new PatrolPoint(); 128 128 129 129 randomizeRespawn = false; 130 130 131 131 actualSpeed = 0.f; 132 132 133 133 movementCounter = 0; 134 134 … … 136 136 aggroedCreature = NULL; 137 137 willAggro = false; 138 138 139 139 lootCreated = false; 140 140 141 141 setObjectKeeping(true); 142 142 143 143 stringstream logname; 144 144 logname << "NPC = 0x" << hex << objectID; 145 145 146 146 setLockName(logname.str()); 147 147 148 148 setLoggingName(logname.str()); 149 149 150 150 setLogging(false); 151 151 setGlobalLogging(true); … … 180 180 if (stun == 100) 181 181 alm->insertAttribute("cat_armor_special_protection.armor_eff_stun", "100%"); 182 182 183 183 if (blast == 100) 184 184 alm->insertAttribute("cat_armor_special_protection.armor_eff_blast", "100%"); … … 202 202 alm->insertAttribute("cat_armor_effectiveness.armor_eff_kinetic", txt.str()); 203 203 } 204 204 205 205 if (energy > 0 && energy < 100) { 206 206 stringstream txt; … … 208 208 alm->insertAttribute("cat_armor_effectiveness.armor_eff_energy", txt.str()); 209 209 } 210 210 211 211 if (electricity > 0 && electricity < 100) { 212 212 stringstream txt; … … 214 214 alm->insertAttribute("cat_armor_effectiveness.armor_eff_elemental_electrical", txt.str()); 215 215 } 216 216 217 217 if (stun > 0 && stun < 100) { 218 218 stringstream txt; … … 220 220 alm->insertAttribute("cat_armor_effectiveness.armor_eff_stun", txt.str()); 221 221 } 222 222 223 223 if (blast > 0 && blast < 100) { 224 224 stringstream txt; … … 226 226 alm->insertAttribute("cat_armor_effectiveness.armor_eff_blast", txt.str()); 227 227 } 228 228 229 229 if (heat > 0 && heat < 100) { 230 230 stringstream txt; … … 232 232 alm->insertAttribute("cat_armor_effectiveness.armor_eff_elemental_heat", txt.str()); 233 233 } 234 234 235 235 if (cold > 0 && cold < 100) { 236 236 stringstream txt; … … 238 238 alm->insertAttribute("cat_armor_effectiveness.armor_eff_elemental_cold", txt.str()); 239 239 } 240 240 241 241 if (acid > 0 && acid < 100) { 242 242 stringstream txt; … … 244 244 alm->insertAttribute("cat_armor_effectiveness.armor_eff_elemental_acid", txt.str()); 245 245 } 246 246 247 247 if (lightSaber > 0 && lightSaber < 100) { 248 248 stringstream txt; … … 283 283 void CreatureImplementation::reload() { 284 284 creatureManager->respawnCreature(_this); 285 285 286 286 resetState(); 287 287 288 288 insertToZone(zone); 289 289 290 290 info("creature respawned"); 291 291 } … … 295 295 296 296 clearTarget(); 297 297 298 298 clearLootItems(); 299 299 300 300 resetPatrolPoints(false); 301 301 … … 304 304 305 305 creatureManager->despawnCreature(_this); 306 306 307 307 setPosition(spawnPosition->getPositionX(), spawnPosition->getPositionZ(), spawnPosition->getPositionY()); 308 308 309 309 uint64 respawnCellID = spawnPosition->getCellID(); 310 310 311 311 if (respawnCellID != 0) 312 312 parent = zone->lookupObject(respawnCellID); 313 313 314 314 info("creature despawned"); 315 315 } … … 318 318 while (!lootContainer->isEmpty()) { 319 319 SceneObject* object = lootContainer->getObject((int)0); 320 320 321 321 lootContainer->removeObject((int)0); 322 322 323 323 object->finalize(); 324 324 } 325 325 326 326 setCashCredits(0); 327 327 328 328 lootCreated = false; 329 329 } … … 331 331 void CreatureImplementation::loadItems() { 332 332 inventory = new Inventory(_this); 333 333 334 334 lootContainer = new CreatureInventory(_this); 335 335 336 336 Weapon* weapon = NULL; 337 337 338 338 if (objectCRC == 0x738E0B1F) { //Zealot of Lord Nyax + Diciple of Lord Nyax 339 339 weapon = new CarbineRangedWeapon(_this, "object/weapon/ranged/carbine/shared_carbine_laser.iff", unicode("a Laser Carbine"), "carbine_laser", true); … … 342 342 weapon->setAttackSpeed(1.5); 343 343 weapon->setDamageType(WeaponImplementation::ENERGY); 344 weapon->setArmorPiercing(WeaponImplementation::MEDIUM); 345 } 346 else if (objectCRC == 0xE275ECBB || objectCRC == 0xE275ECBB || objectCRC == 0xA1048F8A || objectCRC == 0xD084273F || objectCRC == 0x7477AB80) { 344 weapon->setArmorPiercing(WeaponImplementation::MEDIUM); 345 } 346 else if (objectCRC == 0xE275ECBB || objectCRC == 0xE275ECBB || objectCRC == 0xA1048F8A || objectCRC == 0xD084273F || objectCRC == 0x7477AB80) { 347 347 //Imperial GeneralMajor // Imperial General // Imperial High Colonel / Imperial Surface Marshall // Imperial Major 348 348 weapon = new PistolRangedWeapon(_this, "object/weapon/ranged/pistol/shared_pistol_dl44.iff", unicode("a DL-44 Pistol"), "pistol_dl44", true); … … 351 351 weapon->setAttackSpeed(2.5); 352 352 weapon->setDamageType(WeaponImplementation::ENERGY); 353 weapon->setArmorPiercing(WeaponImplementation::LIGHT); 353 weapon->setArmorPiercing(WeaponImplementation::LIGHT); 354 354 setImperial(); 355 355 } … … 362 362 weapon->setArmorPiercing(WeaponImplementation::LIGHT); 363 363 setImperial(); 364 } 364 } 365 365 else if (objectCRC == 0x4E38DA33) { //Dark trooper 366 366 //we assign but do not equip the weapon! We just need the line "setImperial" - but without an assigned weapon we will crash (Farmer John, 04. June 2008) … … 372 372 weapon->setArmorPiercing(WeaponImplementation::LIGHT); 373 373 setImperial(); 374 } 375 else if (objectCRC == 0xFCA399 || objectCRC == 0x1BCAE981 || 376 objectCRC == 0x75A7387A || objectCRC == 0xEF5997EB || 377 objectCRC == 0xFCA399 || objectCRC == 0xE0B389E5 || 374 } 375 else if (objectCRC == 0xFCA399 || objectCRC == 0x1BCAE981 || 376 objectCRC == 0x75A7387A || objectCRC == 0xEF5997EB || 377 objectCRC == 0xFCA399 || objectCRC == 0xE0B389E5 || 378 378 objectCRC == 0xFECB7C04 || objectCRC == 0xD96A33B7) { //Corsecs (also used for Rogue Corsecs!) 379 379 weapon = new PistolRangedWeapon(_this, "object/weapon/ranged/pistol/shared_pistol_cdef_corsec.iff", unicode("Corsec CDEF Pistol"), "pistol_cdef_corsec", true); … … 383 383 weapon->setDamageType(WeaponImplementation::ENERGY); 384 384 weapon->setArmorPiercing(WeaponImplementation::LIGHT); 385 } 385 } 386 386 else if (objectCRC == 0xFECDC4DE || objectCRC == 0x7EDC1419) { // AT AT / AT ST 387 387 weapon = new RifleRangedWeapon(_this,"object/weapon/ranged/vehicle/shared_vehicle_atst_ranged.iff", unicode("Imperial Cannon"), "vehicle_atst_ranged"); 388 weapon->setAttackSpeed(1.5f); 388 weapon->setAttackSpeed(1.5f); 389 389 setImperial(); 390 390 } 391 391 else if (objectCRC == 0x8C70914) { 392 weapon = new OneHandedJediWeapon(_this, 393 "object/weapon/melee/sword/crafted_saber/shared_sword_lightsaber_one_handed_s4_gen4.iff", 392 weapon = new OneHandedJediWeapon(_this, 393 "object/weapon/melee/sword/crafted_saber/shared_sword_lightsaber_one_handed_s4_gen4.iff", 394 394 unicode("Darth Saber"), "sword_lightsaber_one_handed_s4_gen4", true); 395 395 weapon->setDamageType(WeaponImplementation::LIGHTSABER); 396 396 weapon->setArmorPiercing(WeaponImplementation::NONE); 397 397 } else if (objectCRC == 0x2B0C220E || objectCRC == 0x476794EB || objectCRC == 0x4A889CCF || 398 objectCRC == 0x6D029623 || objectCRC == 0x4A48B6CC || objectCRC == 0x1527DF01) { 399 // low level SMC, Rebel General 398 objectCRC == 0x6D029623 || objectCRC == 0x4A48B6CC || objectCRC == 0x1527DF01) { 399 // low level SMC, Rebel General 400 400 switch (System::random(1)) { 401 401 case 0 : … … 408 408 break; 409 409 case 1 : 410 weapon = new OneHandedMeleeWeapon(_this, 410 weapon = new OneHandedMeleeWeapon(_this, 411 411 "object/weapon/melee/baton/shared_baton_stun.iff", unicode("a Stun Baton"), "baton_stun", true); 412 412 weapon->setMinDamage(175 + level); … … 425 425 weapon->setDamageType(WeaponImplementation::ENERGY); 426 426 weapon->setArmorPiercing(WeaponImplementation::LIGHT); 427 427 428 428 } else if (objectCRC ==0x148D60AA) { 429 429 //melee tusken raider … … 435 435 weapon->setArmorPiercing(WeaponImplementation::NONE); 436 436 437 } else if (objectCRC ==0xE21E6148) { 438 //SBD 0xE21E6148 439 weapon = new CarbineRangedWeapon(_this, "object/weapon/ranged/droid/shared_droid_droideka_ranged.iff", unicode("a SBD"), "droideka_ranged", true); 440 weapon->setMinDamage(600 + level); 441 weapon->setMaxDamage(1300 + level); 442 weapon->setAttackSpeed(1.5); 443 weapon->setDamageType(WeaponImplementation::ENERGY); 444 weapon->setArmorPiercing(WeaponImplementation::MEDIUM); 445 446 } else if (objectCRC ==0xD3C915F9 || objectCRC ==0xB8270A11) { 447 //Death Watch Wraith // Ghosts 448 weapon = new RifleRangedWeapon(_this, "object/weapon/ranged/rifle/shared_rifle_tenloss_dxr6_disruptor_loot.iff", unicode("a Dxr6_Disrupter"), "rifle_dxr6", true); 449 weapon->setMinDamage(500 + level); 450 weapon->setMaxDamage(800 + level); 451 weapon->setAttackSpeed(1.5); 452 weapon->setDamageType(WeaponImplementation::ENERGY); 453 weapon->setArmorPiercing(WeaponImplementation::MEDIUM); 454 455 } else if (objectCRC ==0xD83D2DEC || objectCRC ==0x730E66DF || objectCRC ==0xAD30C613) { 456 //Black Sun Henchmen Assassin Thug 457 weapon = new RifleRangedWeapon(_this, "object/weapon/ranged/rifle/shared_rifle_tenloss_dxr6_disruptor_loot.iff", unicode("a Dxr6_Disrupter"), "rifle_dxr6", true); 458 weapon->setMinDamage(400 + level); 459 weapon->setMaxDamage(600 + level); 460 weapon->setAttackSpeed(1.5); 461 weapon->setDamageType(WeaponImplementation::ENERGY); 462 weapon->setArmorPiercing(WeaponImplementation::MEDIUM); 463 464 } else if (objectCRC ==0x79BC6EB3) { 465 //Battle Droid 466 weapon = new CarbineRangedWeapon(_this, "object/weapon/ranged/carbine/shared_carbine_elite.iff", unicode("a E5_Carbine"), "carbine_elite", true); 467 weapon->setMinDamage(400 + level); 468 weapon->setMaxDamage(600 + level); 469 weapon->setAttackSpeed(1.5); 470 weapon->setDamageType(WeaponImplementation::ENERGY); 471 weapon->setArmorPiercing(WeaponImplementation::MEDIUM); 472 473 } else if (objectCRC ==0xC3DE9EF6) { 474 //Death Watch Blood Guards 475 weapon = new OneHandedMeleeWeapon(_this, "object/weapon/melee/baton/shared_baton_stun.iff", unicode("a Stun_Baton"), "baton_stun", true); 476 weapon->setMinDamage(440 + level); 477 weapon->setMaxDamage(600 + level); 478 weapon->setAttackSpeed(2); 479 weapon->setDamageType(WeaponImplementation::STUN); 480 weapon->setArmorPiercing(WeaponImplementation::MEDIUM); 481 482 } else if (objectCRC ==0x320DD865) { 483 //Death Watch Overlord 484 weapon = new OneHandedMeleeWeapon(_this, "object/weapon/melee/baton/shared_baton_stun.iff", unicode("a Stun_Baton"), "baton_stun", true); 485 weapon->setMinDamage(1850 + level); 486 weapon->setMaxDamage(2250 + level); 487 weapon->setAttackSpeed(3); 488 weapon->setDamageType(WeaponImplementation::STUN); 489 weapon->setArmorPiercing(WeaponImplementation::HEAVY); 490 491 } else if (objectCRC ==0xEA0D8178 || objectCRC ==0x42DB151E || objectCRC ==0xD5A733A8) { 492 //DWB Miners 493 weapon = new PistolRangedWeapon(_this, "object/weapon/ranged/pistol/shared_pistol_cdef.iff", unicode("a CDEF_Pistol"), "pistol_cdef", true); 494 weapon->setMinDamage(100 + level); 495 weapon->setMaxDamage(175 + level); 496 weapon->setAttackSpeed(2.5); 497 weapon->setDamageType(WeaponImplementation::ENERGY); 498 weapon->setArmorPiercing(WeaponImplementation::LIGHT); 499 437 500 } else if (objectCRC == 0x6BABDCC0 || objectCRC == 0x35F5AD39 || objectCRC == 0x113E9DB3 || 438 501 objectCRC == 0x6050E92E || objectCRC == 0x46ABF8A1 || objectCRC == 0x71F874) { … … 440 503 switch (System::random(1)) { 441 504 case 0 : 442 weapon = new PolearmMeleeWeapon(_this, 505 weapon = new PolearmMeleeWeapon(_this, 443 506 "object/weapon/melee/polearm/shared_lance_vibrolance.iff", unicode("a Vibrolance"), "lance_vibrolance", true); 444 507 weapon->setMinDamage(250 + level); … … 449 512 break; 450 513 case 1 : 451 weapon = new PolearmMeleeWeapon(_this, 514 weapon = new PolearmMeleeWeapon(_this, 452 515 "object/weapon/melee/polearm/shared_polearm_vibro_axe.iff", unicode("a Long Vibro Axe"), "lance_vibro_axe", true); 453 516 weapon->setMinDamage(250 + level); … … 459 522 } 460 523 461 } else if (objectCRC == 0xD84925C2 || objectCRC == 0x90D8EBF8 || objectCRC == 0x1FA893FD || objectCRC == 0x2E831404 || 462 objectCRC == 0x2D98A9B3) { 463 // low level NS 524 } else if (objectCRC == 0xD84925C2 || objectCRC == 0x90D8EBF8 || objectCRC == 0x1FA893FD || objectCRC == 0x2E831404 || 525 objectCRC == 0x2D98A9B3) { 526 // low level NS 464 527 switch (System::random(1)) { 465 528 case 0 : 466 weapon = new OneHandedMeleeWeapon(_this, 529 weapon = new OneHandedMeleeWeapon(_this, 467 530 "object/weapon/melee/baton/shared_baton_gaderiffi.iff", unicode("a Gaderiffi"), "baton_gaderiffi", true); 468 531 weapon->setMinDamage(175 + level); … … 473 536 break; 474 537 case 1 : 475 weapon = new OneHandedMeleeWeapon(_this, 538 weapon = new OneHandedMeleeWeapon(_this, 476 539 "object/weapon/melee/baton/shared_baton_stun.iff", unicode("a Stun Baton"), "baton_stun", true); 477 540 weapon->setMinDamage(175 + level); … … 481 544 weapon->setArmorPiercing(WeaponImplementation::NONE); 482 545 break; 483 } 484 485 } else if (objectCRC == 0xF0663601 || objectCRC == 0xAC722907 || objectCRC == 0x889ADF8D || objectCRC == 0xC4E5A41E || 546 } 547 548 } else if (objectCRC == 0xF0663601 || objectCRC == 0xAC722907 || objectCRC == 0x889ADF8D || objectCRC == 0xC4E5A41E || 486 549 objectCRC == 0x44F934A9) { 487 550 // High Level NS 488 551 switch (System::random(1)) { 489 552 case 0 : 490 weapon = new PolearmMeleeWeapon(_this, 553 weapon = new PolearmMeleeWeapon(_this, 491 554 "object/weapon/melee/polearm/shared_lance_vibrolance.iff", unicode("a Vibrolance"), "lance_vibrolance", true); 492 555 weapon->setMinDamage(250 + level); … … 497 560 break; 498 561 case 1 : 499 weapon = new PolearmMeleeWeapon(_this, 562 weapon = new PolearmMeleeWeapon(_this, 500 563 "object/weapon/melee/polearm/shared_polearm_vibro_axe.iff", unicode("a Long Vibro Axe"), "lance_vibro_axe", true); 501 564 weapon->setMinDamage(250 + level); … … 506 569 break; 507 570 } 508 } else if (objectCRC == 0xC5A39C12 || objectCRC == 0x5CECC950) { 509 //Hutt Hideout 510 weapon = new OneHandedMeleeWeapon(_this, 511 "object/weapon/melee/baton/shared_baton_stun.iff", unicode("a Stun Baton"), "baton_stun", true); 512 weapon->setMinDamage(175 + level); 513 weapon->setMaxDamage(250 + level); 514 weapon->setAttackSpeed(1.5); 515 weapon->setDamageType(WeaponImplementation::STUN); 516 weapon->setArmorPiercing(WeaponImplementation::NONE); 517 } else if (objectCRC == 0x3517D918) { 518 //Gamorrean Guard 519 weapon = new PolearmMeleeWeapon(_this, 520 "object/weapon/melee/polearm/shared_polearm_vibro_axe.iff", unicode("a Long Vibro Axe"), "lance_vibro_axe", true); 521 weapon->setMinDamage(250 + level); 522 weapon->setMaxDamage(450 + level); 523 weapon->setAttackSpeed(1.5); 524 weapon->setDamageType(WeaponImplementation::KINETIC); 525 weapon->setArmorPiercing(WeaponImplementation::MEDIUM); 526 } else if (objectCRC == 0xAA197516) { 571 } else if (objectCRC == 0xC5A39C12 || objectCRC == 0x5CECC950) { 572 //Hutt Hideout 573 weapon = new OneHandedMeleeWeapon(_this, 574 "object/weapon/melee/baton/shared_baton_stun.iff", unicode("a Stun Baton"), "baton_stun", true); 575 weapon->setMinDamage(175 + level); 576 weapon->setMaxDamage(250 + level); 577 weapon->setAttackSpeed(1.5); 578 weapon->setDamageType(WeaponImplementation::STUN); 579 weapon->setArmorPiercing(WeaponImplementation::NONE); 580 } else if (objectCRC == 0x3517D918) { 581 //Gamorrean Guard 582 weapon = new PolearmMeleeWeapon(_this, 583 "object/weapon/melee/polearm/shared_polearm_vibro_axe.iff", unicode("a Long Vibro Axe"), "lance_vibro_axe", true); 584 weapon->setMinDamage(250 + level); 585 weapon->setMaxDamage(450 + level); 586 weapon->setAttackSpeed(1.5); 587 weapon->setDamageType(WeaponImplementation::KINETIC); 588 weapon->setArmorPiercing(WeaponImplementation::MEDIUM); 589 } else if (objectCRC == 0xAA197516) { 527 590 // NS Queen 528 591 switch (System::random(1)) { 529 592 case 0 : 530 weapon = new OneHandedMeleeWeapon(_this, 593 weapon = new OneHandedMeleeWeapon(_this, 531 594 "object/weapon/melee/baton/shared_baton_gaderiffi.iff", unicode("a Gaderiffi"), "baton_gaderiffi", true); 532 595 weapon->setMinDamage(800 + level); … … 537 600 break; 538 601 case 1 : 539 weapon = new OneHandedMeleeWeapon(_this, 602 weapon = new OneHandedMeleeWeapon(_this, 540 603 "object/weapon/melee/baton/shared_baton_stun.iff", unicode("a Stun Baton"), "baton_stun", true); 541 604 weapon->setMinDamage(900 + level); … … 546 609 break; 547 610 } 548 } else if (objectCRC == 0x9242B53A || objectCRC == 0x49551DAD || objectCRC == 0x587A20 || 549 objectCRC == 0xFBBB5134 || objectCRC == 0xB2B636B9 || objectCRC == 0x69A19E2E) { 550 // Sennex Cave 611 } else if (objectCRC == 0x9242B53A || objectCRC == 0x49551DAD || objectCRC == 0x587A20 || 612 objectCRC == 0xFBBB5134 || objectCRC == 0xB2B636B9 || objectCRC == 0x69A19E2E) { 613 // Sennex Cave 551 614 switch (System::random(1)) { 552 615 case 0 : 553 weapon = new PolearmMeleeWeapon(_this, 616 weapon = new PolearmMeleeWeapon(_this, 554 617 "object/weapon/melee/polearm/shared_polearm_vibro_axe.iff", unicode("a Long Vibro Axe"), "lance_vibro_axe", true); 555 618 weapon->setMinDamage(250 + level); … … 560 623 break; 561 624 case 1 : 562 weapon = new TwoHandedMeleeWeapon(_this, 625 weapon = new TwoHandedMeleeWeapon(_this, 563 626 "object/weapon/melee/axe/shared_axe_vibroaxe.iff", unicode("a Vibro Axe"), "axe_vibro", true); 564 627 weapon->setMinDamage(200 + level); … … 567 630 weapon->setDamageType(WeaponImplementation::KINETIC); 568 631 weapon->setArmorPiercing(WeaponImplementation::MEDIUM); 569 break; 632 break; 570 633 } 571 634 } else if (objectCRC == 0xFB872285) { // lord nyax 572 weapon = new CarbineRangedWeapon(_this, 635 weapon = new CarbineRangedWeapon(_this, 573 636 "object/weapon/ranged/carbine/shared_carbine_e11.iff", unicode("a e11 Carbine"), "carbine_e11", true); 574 637 weapon->setMinDamage(550); … … 594 657 try { 595 658 zone->lock(); 596 659 597 660 zone->registerObject(_this); 598 661 599 662 if (parent != NULL) { 600 663 BuildingObject* building = (BuildingObject*)parent->getParent(); 601 664 602 665 insertToBuilding(building); 603 666 604 667 building->notifyInsertToZone(_this); 605 } else { 668 } else { 606 669 zone->insert(this); 607 670 zone->inRange(this, 128); 608 671 } 609 672 610 673 zone->unlock(); 611 674 } catch (...) { … … 644 707 void CreatureImplementation::updateZone(bool lightUpdate, bool sendPackets) { 645 708 bool insert = false; 646 709 647 710 try { 648 711 zone->lock(); 649 712 650 713 if (parent != NULL && parent->isCell()) { 651 714 CellObject* cell = (CellObject*)parent; … … 661 724 else 662 725 zone->update(this); 663 726 664 727 zone->inRange(this, 128); 665 728 … … 737 800 void CreatureImplementation::updateCreaturePosition(bool lightUpdate) { 738 801 ++movementCounter; 739 802 740 803 for (int i = 0; i < inRangeObjectCount(); ++i) { 741 804 SceneObject* obj = (SceneObject*) (((SceneObjectImplementation*) getInRangeObject(i))->_getStub()); … … 766 829 void CreatureImplementation::removeFromZone(bool doLock) { 767 830 deagro(); 768 831 769 832 try { 770 833 if (zone == NULL || !isInQuadTree()) 771 834 return; 772 835 773 836 zone->lock(doLock); 774 837 775 838 if (parent != NULL && parent->isCell()) { 776 839 CellObject* cell = (CellObject*) parent; … … 783 846 for (int i = 0; i < inRangeObjectCount(); ++i) { 784 847 QuadTreeEntry* obj = getInRangeObject(i); 785 848 786 849 if (obj != this) 787 850 obj->removeInRangeObject(this); … … 789 852 790 853 removeInRangeObjects(); 791 854 792 855 zone->deleteObject(objectID); 793 856 … … 827 890 if (obj == this) 828 891 return; 829 892 830 893 if (!isCreature() || aggroedCreature != NULL || isInCombat()) { 831 894 return; 832 895 } 833 896 834 897 835 898 SceneObject* scno = (SceneObject*) (((SceneObjectImplementation*) obj)->_getStub()); 836 899 837 900 if (scno == targetObject) { 838 901 return; … … 882 945 try { 883 946 wlock(); 884 947 885 948 if (!checkState() || zone == NULL) { 886 949 unlock(); 887 950 return false; 888 951 } 889 952 890 953 bool needMoreActivity = false; 891 954 … … 894 957 } else if (doRandomMovement) { 895 958 doRandomMovement = false; 896 959 897 960 addRandomPatrolPoint(32 + System::random(64), false); 898 961 } 899 962 900 963 needMoreActivity |= doMovement(); 901 964 902 965 if (aggroedCreature != NULL) { 903 966 if (!aggroedCreature->isAttackable()) … … 907 970 } else if (isInCombat()) 908 971 clearCombatState(); 909 972 910 973 needMoreActivity |= doRecovery(); 911 974 912 975 if (needMoreActivity && zone != NULL) { 913 976 info("queuing more activities"); 914 977 915 978 creatureManager->queueActivity(this); 916 979 } else { … … 918 981 deagro(); 919 982 } 920 983 921 984 unlock(); 922 985 } catch (Exception& e) { … … 930 993 unlock(); 931 994 } 932 933 return true; 995 996 return true; 934 997 } 935 998 … … 942 1005 if (isDead() && isInActiveState()) { 943 1006 info("queing despawn"); 944 1007 945 1008 deagro(); 946 1009 947 1010 creatureState = DESPAWNING; 948 1011 949 1012 creatureManager->queueActivity(this, 120000); 950 1013 951 1014 return false; 952 1015 } else if (isDeSpawning()) { 953 1016 deagro(); 954 1017 955 1018 creatureState = RESPAWNING; 956 1019 957 1020 unload(); 958 1021 if(respawnTimer > 0) { // 0 is do not respawn … … 960 1023 msg << "respawning creature with " << respawnTimer << "s timer"; 961 1024 info(msg); 962 1025 963 1026 creatureManager->queueActivity(this, respawnTimer * 1000); 964 1027 } … … 969 1032 return false; 970 1033 } 971 1034 972 1035 return true; 973 1036 974 1037 } 975 1038 976 1039 void CreatureImplementation::resetState() { 977 1040 zone = creatureManager->getZone(); 978 1041 979 1042 creatureState = ACTIVE; 980 1043 postureState = UPRIGHT_POSTURE; … … 983 1046 action = actionMax; 984 1047 mind = mindMax; 985 1048 986 1049 healthWounds = 0; 987 1050 actionWounds = 0; 988 1051 mindWounds = 0; 989 1052 990 1053 damageMap.removeAll(); 991 1054 defenderList.removeAll(); 992 1055 993 1056 clearStates(); 994 1057 995 1058 aggroedCreature = NULL; 996 1059 997 1060 clearLootItems(); 998 1061 999 1062 resetPatrolPoints(false); 1000 1063 … … 1009 1072 1010 1073 ++movementCounter; 1011 1074 1012 1075 if (point == NULL) { 1013 1076 if (parent != NULL) … … 1017 1080 } else { 1018 1081 if (point->getCellID() != 0) 1019 msg = new UpdateTransformWithParentMessage(_this, point->getPositionX(), point->getPositionZ(), point->getPositionY(), point->getCellID()); 1082 msg = new UpdateTransformWithParentMessage(_this, point->getPositionX(), point->getPositionZ(), point->getPositionY(), point->getCellID()); 1020 1083 else 1021 1084 msg = new UpdateTransformMessage(_this, point->getPositionX(), point->getPositionZ(), point->getPositionY()); 1022 1085 } 1023 1086 1024 1087 broadcastMessage(msg); 1025 1088 } … … 1030 1093 1031 1094 stringstream reachedPosition; 1032 reachedPosition << "(" << positionX << ", " << positionY << ")"; 1095 reachedPosition << "(" << positionX << ", " << positionY << ")"; 1033 1096 info("reached " + reachedPosition.str()); 1034 1097 … … 1053 1116 if (actualSpeed != 0) 1054 1117 setNextPosition(); 1055 1118 1056 1119 if (isKnockedDown()) 1057 1120 return true; 1058 1121 1059 1122 if (isKneeled()) 1060 1123 doStandUp(); … … 1062 1125 float waypointX, waypointY, waypointZ; 1063 1126 uint64 cellID = 0; 1064 1127 1065 1128 float maxSpeed = speed; 1066 1129 … … 1070 1133 waypointY = aggroedCreature->getPositionY(); 1071 1134 cellID = aggroedCreature->getParentID(); 1072 1135 1073 1136 } else if (!patrolPoints.isEmpty()) { 1074 1137 PatrolPoint* waypoint = patrolPoints.get(0); 1075 1138 1076 1139 waypointX = waypoint->getPositionX(); 1077 1140 waypointZ = positionZ; 1078 1141 waypointY = waypoint->getPositionY(); 1079 1142 1080 1143 cellID = waypoint->getCellID(); 1081 1144 } else 1082 1145 return false; 1083 1146 1084 1147 if (cellID != 0) { 1085 1148 SceneObject* obj = zone->lookupObject(cellID); … … 1088 1151 cellID = 0; 1089 1152 } 1090 1091 float dx = waypointX - positionX; 1153 1154 float dx = waypointX - positionX; 1092 1155 float dy = waypointY - positionY; 1093 1156 1094 1157 float dist = sqrt(dx * dx + dy * dy); 1095 1158 float directionangle = atan2(dy, dx); 1096 1159 1097 1160 float maxDistance = 5; 1098 1161 1099 1162 if (weaponObject != NULL) 1100 1163 maxDistance = weaponObject->getMaxRange(); 1101 1164 1102 1165 if (dist < maxDistance) { 1103 1166 info("reached destintaion"); 1104 1167 1105 1168 if (aggroedCreature == NULL) 1106 1169 resetPatrolPoints(false); 1107 1170 1108 1171 actualSpeed = 0; 1109 1172 1110 1173 checkNewAngle(directionangle); 1111 1174 1112 1175 return false; 1113 1176 } 1114 1177 1115 1178 float newPositionX, newPositionZ, newPositionY; 1116 1179 1117 1180 newPositionZ = waypointZ; 1118 1181 … … 1121 1184 else 1122 1185 actualSpeed = maxSpeed; 1123 1186 1124 1187 if (((parent != NULL) && (cellID == 0)) || (parent == NULL && cellID != 0)) { 1125 1188 newPositionX = waypointX; … … 1136 1199 angleMsg << "angle = " << directionangle * 180 / M_PI << " (" << dx << "," << dy << ")\n"; 1137 1200 info(angleMsg.str());*/ 1138 1201 1139 1202 setRadialDirection(M_PI / 2 - directionangle); 1140 1203 1141 1204 stringstream position; 1142 position << "(" << newPositionX << ", " << newPositionY << ")"; 1205 position << "(" << newPositionX << ", " << newPositionY << ")"; 1143 1206 info("moving to " + position.str()); 1144 1207 1145 1208 broadcastNextPositionUpdate(nextPosition); 1146 1209 1147 1210 return true; 1148 1211 } … … 1164 1227 1165 1228 aggroedCreature = target; 1166 1229 1167 1230 updateTarget(target); 1168 1231 … … 1176 1239 bool CreatureImplementation::attack(CreatureObject* target) { 1177 1240 info("attacking target"); 1178 1241 1179 1242 if (target == NULL || target == _this || !target->isPlayer()) 1180 1243 return false; … … 1185 1248 return false; 1186 1249 } 1187 1250 1188 1251 if (!isInRange(target, 70)) { 1189 if (((parent != NULL) && (nextPosition->getCellID() == 0)) 1252 if (((parent != NULL) && (nextPosition->getCellID() == 0)) 1190 1253 || (parent == NULL && nextPosition->getCellID() != 0)) 1191 1254 return true; … … 1201 1264 return true; 1202 1265 } 1203 1266 1204 1267 CombatManager* combatManager = server->getCombatManager(); 1205 1268 1206 1269 int skills = creatureSkills.size(); 1207 1270 1208 1271 Skill* skill = NULL; 1209 1272 1210 1273 if (skills == 0) 1211 1274 return false; … … 1214 1277 skill = creatureSkills.get(rand); 1215 1278 } 1216 1279 1217 1280 if (skill == NULL) 1218 1281 return false; 1219 1282 1220 1283 uint32 actionCRC = skill->getNameCRC(); 1221 1284 1222 1285 //updateTarget(target->getObjectID()); 1223 1286 … … 1237 1300 action->setSkill(skill); 1238 1301 action->setTarget(target); 1239 1302 1240 1303 combatManager->handleAction(action); 1241 1304 delete action; 1242 1305 1243 1306 if (target->isIncapacitated() || target->isDead()) { 1244 1307 deagro(); 1245 1308 return false; 1246 1309 } 1247 1310 1248 1311 lastCombatAction.update(); 1249 1312 1250 1313 float delay = skill->getSpeedRatio(); 1251 1314 1252 1315 if (weaponObject != NULL) 1253 1316 delay = delay * weaponObject->getAttackSpeed(); 1254 1317 1255 1318 nextAttackDelay.update(); 1256 1319 nextAttackDelay.addMiliTime((uint64)(delay * 1000)); … … 1264 1327 msg << "deaggroed (0x" << hex << aggroedCreature->getObjectID() << dec << ")"; 1265 1328 info(msg); 1266 1329 1267 1330 if (aggroedCreature->isDead() || aggroedCreature->isIncapacitated()) 1268 1331 doIncapAnimation(); 1269 1332 1270 1333 aggroedCreature = NULL; 1271 1334 } … … 1276 1339 1277 1340 void CreatureImplementation::activateRecovery() { 1278 if (zone != NULL && !isActive()) 1341 if (zone != NULL && !isActive()) 1279 1342 creatureManager->queueActivity(this); 1280 1343 } … … 1283 1346 if ((++activityCount) % 3 == 0) { 1284 1347 //info("activating recovery"); 1285 1348 1286 1349 if (hasStates()) 1287 1350 doStatesRecovery(); 1288 1351 1289 1352 calculateHAMregen(); 1290 1353 1291 1354 if ((activityCount) % 6 == 0) 1292 1355 highestMadeDamage = 0; 1293 } 1294 1356 } 1357 1295 1358 if (isOnFullHealth() && !hasStates()) { 1296 1359 highestMadeDamage = 0; … … 1298 1361 return false; 1299 1362 } 1300 1363 1301 1364 return true; 1302 1365 } … … 1336 1399 default: 1337 1400 doAnimation("rude"); 1338 break; 1401 break; 1339 1402 } 1340 1403 } … … 1352 1415 if (isStunned() && stunRecoveryTime.isPast()) 1353 1416 clearState(STUNNED_STATE); 1354 1417 1355 1418 if (isIntimidated() && intimidateRecoveryTime.isPast()) 1356 1419 clearState(INTIMIDATED_STATE); 1357 1420 1358 1421 if (isPoisoned()) { 1359 1422 if (poisonRecoveryTime.isPast()) … … 1361 1424 else doPoisonTick(); 1362 1425 } 1363 1426 1364 1427 if (isDiseased()) { 1365 1428 if (diseasedRecoveryTime.isPast()) … … 1367 1430 else doDiseaseTick(); 1368 1431 } 1369 1432 1370 1433 if (isOnFire()) { 1371 1434 if (fireRecoveryTime.isPast()) … … 1373 1436 else doFireTick(); 1374 1437 } 1375 1438 1376 1439 if (isBleeding()) { 1377 1440 if (bleedingRecoveryTime.isPast()) … … 1385 1448 void CreatureImplementation::queueRespawn() { 1386 1449 creatureState = RESPAWNING; 1387 1450 1388 1451 stringstream msg; 1389 1452 msg << "respawning creature with " << respawnTimer << "s timer"; 1390 1453 info(msg); 1391 1454 1392 1455 removeFromQueue(); 1393 1456 1394 1457 creatureManager->queueActivity(this, respawnTimer * 1000); 1395 1458 } … … 1398 1461 try { 1399 1462 wlock(doLock); 1400 1463 1401 1464 patrolPoints.add(0, cord); 1402 1465 1403 1466 if (!isActive()) 1404 1467 creatureManager->queueActivity(this); 1405 1468 1406 1469 unlock(doLock); 1407 1470 } catch (...) { … … 1414 1477 try { 1415 1478 wlock(doLock); 1416 1479 1417 1480 while (!patrolPoints.isEmpty()) { 1418 1481 PatrolPoint* point = patrolPoints.remove(0); 1419 1482 1420 1483 delete point; 1421 1484 } 1422 1485 1423 1486 //patrolPoints.removeAll(); 1424 1487 1425 1488 unlock(doLock); 1426 1489 } catch (...) { … … 1441 1504 try { 1442 1505 wlock(doLock); 1443 1506 1444 1507 patrolPoints.add(cord); 1445 1508 1446 1509 if (!isActive()) 1447 1510 creatureManager->queueActivity(this); 1448 1511 1449 1512 unlock(doLock); 1450 1513 } catch (...) { … … 1457 1520 float angle = (45 + System::random(200)) / 3.14; 1458 1521 float distance = radius + System::random((int) radius); 1459 1460 float newPositionX = positionX + cos(angle) * distance; 1461 float newPositionY = positionY + sin(angle) * distance; 1462 1522 1523 float newPositionX = positionX + cos(angle) * distance; 1524 float newPositionY = positionY + sin(angle) * distance; 1525 1463 1526 PatrolPoint* cord = new PatrolPoint(newPositionX, positionZ, newPositionY, getParentID()); 1464 1527 1465 1528 addPatrolPoint(cord, doLock); 1466 1529 } core3devel/MMOCoreORB/src/server/zone/objects/player/Player.cpp
r421 r427 4540 4540 } 4541 4541 4542 4543 core3devel/MMOCoreORB/src/server/zone/objects/player/PlayerObject.cpp
r421 r427 1059 1059 } 1060 1060 1061 1062 core3devel/MMOCoreORB/src/server/zone/objects/static/firework/FireworkWorld.cpp
r416 r427 139 139 } 140 140 141 core3devel/MMOCoreORB/src/server/zone/objects/tangible/firework/Firework.cpp
r416 r427 115 115 } 116 116 117