Well 1st of all i got a problem where i enter the server-then made a character in wow, and then shutting down the server, later on when i start up the server again i find that my characters are deleted, if anyone has a solution to this, it would be great xD
Also my second problem is about changing the experience rate in WoW, and yes i have read the ' WoW - Dev FAQ by jeeter, and in this thread it directs me 2 download a word document where it says =
First thing that you do is go to your Scripts folder in your WoWEmu directory. Next, double click on the file Startup.tcl
Once it's open, go to down to where it says this:
set base_xp [expr {(100.0*($killer_level-1))+50.0**]
set xp $base_xp
[ the problem is that i cant find any of those things and im wondering if any of you guys who know this type of stuff could figure it out for me ><
(this is my startup.tcl documents content)
---------------------------------------------------------------------------
# Global defines
#
# system-wide default configuration variables
#
variable DEBUG 0
variable VERBOSE 1
variable LANG default
#
# namespace eval ::StartTCL
#
# startup namespace and variable definitions
#
namespace eval ::StartTCL {
variable NAME "StartTCL"
variable VERSION "0.9.2"
variable AUTHOR "Lazarus Long & Spirit"
variable HEADER "$NAME v$VERSION\tGNU LGPL V2.1 (c) by $AUTHOR"
variable timeup [ clock seconds ]
variable basedir "scripts"
variable scriptsdirs {**
variable scripts {**
variable levels
array set levels {
a 100
b 200
c 300
n 500
z 999
**
variable libcount 0
variable tclcount 0
variable tbccount 0
variable errors ""
variable packages
variable loading_index 0
variable use_conf_file 1
variable conf_file "$basedir/conf/start-tcl.conf"
# default configuration variables
variable SKIP_DUPES 0
variable SCRIPTS_DIR "$basedir/tcl"
**
#
# namespace eval ::WoWEmu
# namespace eval ::WoWEmu::Commands
# namespace eval ::AI
# namespace eval ::SpellEffects
#
# TCL API namespaces initialization
#
namespace eval ::WoWEmu {**
namespace eval ::WoWEmu::Commands {**
namespace eval ::AI {**
namespace eval ::SpellEffects {**
#
# namespace eval ::Custom
#
# Custom namespace initialization
#
namespace eval ::Custom {**
#
# Default configuration variables
#
#
# for the WoWEmu namespace
#
namespace eval ::WoWEmu {
variable GM_NODAMAGE 1
variable MAX_LEVEL 60
variable MAX_DISTANCE 100000
variable MAX_LEVEL_DIFF 5
variable XP_RATES {1.0 2.0 2.5 3.0 1.5**
variable MOB_LOG 0
variable MAX_DAMAGE_REDUCTION 0.75
variable ALLOW_RESURRECT_PLAYERS 1
variable ALLOW_PLAYER_DISMOUNT 1
variable BROADCAST_WITH_NAME 0
variable LOG_GM 1
**
#
# for the AI namespace
#
namespace eval ::AI {
variable GM_NOAGGRO 1
variable BASE_AGGRO_DIST 20
variable MIN_AGGRO_DIST 5
variable MAX_AGGRO_DIST 30
variable UNAGGRO_DIST 40
variable MELEE_SPELL_CASTING 1
variable HUMANOID_SAY 1
**
#
# proc ::StartTCL::SortFolders { list **
#
# procedure to order a list of folders according to StartTCL rules.
#
proc ::StartTCL::SortFolders { list ** {
return [ lsort -dictionary -increasing $list ]
**
#
# proc ::StartTCL::SortFiles { list **
#
# procedure to order a list of files according to StartTCL rules.
#
proc ::StartTCL::SortFiles { list ** {
variable levels
set result {**
foreach file $list {
set handle [ open $file ]
set level "n"
set pair {**
while { ! [ eof $handle ] ** {
if { ! [ gets $handle line ] ** {
continue
**
set line [ string trim $line ]
if { [ string length $line ] && [ expr { ! ( ! [ string first "#" $line ] ) ** ] ** {
break
**
set line [ string trim [ string trim [ string trim [ string trim $line \# ] ] \# ] ]
if { [ regexp -nocase {start-?tcl *:** $line ] ** {
set level [ string tolower [ string trim [ lindex [ split $line : ] 1 ] ] ]
break
**
**
close $handle
if { [ string length $level ] == 3 && [ string is digit $level ] ** {
** elseif { ! ( ! [ llength [ array names levels $level ] ] ) ** {
set level $levels($level)
** else {
set level $levels(n)
**
lappend pair $level $file
lappend result $pair
**
set result [ lsort -dictionary -increasing -index 1 $result ]
for { set i 1 ** { $i < [ llength $result ] ** { incr i ** {
if { [ expr { [ string tolower [ string range [ lindex $result [ expr { $i - 1 ** ] 1 ] 0 [ expr { [ string last . [ lindex $result [ expr { $i - 1 ** ] 1 ] ] - 1 ** ] ] ] eq [ string tolower [ string range [ lindex $result $i 1 ] 0 [ expr { [ string last . [ lindex $result $i 1 ] ] - 1 ** ] ] ] ** ] ** {
if { $::StartTCL::SKIP_DUPES ** {
set result [ lreplace $result $i $i ]
incr i -1
** else {
if { $::VERBOSE ** {
puts "[ ::Custom::LogPrefix ]WARNING!\n[ ::Custom::LogPrefix ]WARNING! Found \[[ lindex $result [ expr { $i - 1 ** ] 1 ]\] and \[[ lindex $result $i 1 ]\],\n[ ::Custom::LogPrefix ]WARNING! this may indicate a duplicate script and render unexpected errors!\n[ ::Custom::LogPrefix ]WARNING!"
**
**
**
**
set list {**
foreach pair [ lsort -dictionary -increasing -index 0 $result ] {
foreach { order file ** $pair {
lappend list $file
**
**
unset result
return $list
**
#
# proc ::StartTCL::Provide { name args **
#
# procedure to simulate the provide facility of the package command
#
proc ::StartTCL::Provide { args ** {
variable packages
if { $args == "" ** {
set name [ namespace tail [ uplevel namespace current ] ]
if { $name != "" ** {
if { [ info exists ::${name**::VERSION ] ** {
set version [ set ::${name**::VERSION ]
** else {
set version 0
**
return [ set packages($name) $version ]
**
**
foreach { name version ** [ join $args ] {
if { $name == "" ** {
continue
**
if { $version == "" ** {
set version 0
**
set packages($name) $version
**
**
#
# proc ::StartTCL::Require { name args **
#
# procedure to simulate the require facility of the package command
#
proc ::StartTCL::Require { args ** {
variable packages
if { ! [ string first [ lindex $args 0 ] "-exact" ] ** {
set exact 1
set args [ lrange $args 1 end ]
** else {
set exact 0
**
foreach { name version ** [ join $args ] {
if { $name == "" ** {
continue
**
if { $version == "" ** {
set version 0
**
if { [ info exists packages($name) ] ** {
if { $exact && $packages($name) != $version || $packages($name) < $version ** {
return -code 1 "Script $name v$version required but got v$packages($name)."
**
continue
**
if { $::VERBOSE && $::DEBUG ** {
puts "[ ::Custom::LogPrefix ]\[[ info script ]\] (loading delayed)"
**
::StartTCL::LoadScripts $name $version
if { [ info exists packages($name) ] ** {
if { $exact && $packages($name) != $version || $packages($name) < $version ** {
return -code 1 "Script $name v$version required but got v$packages($name)."
**
continue
**
return -code 1 "Script $name v$version required but it could not be found."
**
return -code 0
**
#
# proc ::StartTCL::LoadScripts { name version **
#
# procedure to load the scripts (Script files processing)
#
proc ::StartTCL::LoadScripts { {name ""** {version 0** ** {
variable packages
variable scripts
variable loading_index
while { $loading_index < [ llength $scripts ] ** {
set current_index $loading_index
set script [ lindex $scripts $current_index ]
incr loading_index
if { $::DEBUG ** {
uplevel "#0" source \{$script\**
if { [ string match -nocase [ lindex [ split $script . ] end ] tcl ] ** {
incr ::StartTCL::tclcount
** else {
incr ::StartTCL::tbccount
**
if { $::VERBOSE ** {
puts "[ ::Custom::LogPrefix ]\[$script\] loaded"
**
** else {
if { [ catch { uplevel "#0" source \{$script\** ** ] ** {
if { $::VERBOSE ** {
puts "[ ::Custom::LogPrefix ]\[$script\] *** LOADING FAILED ***"
**
append ::StartTCL::errors "\n[ ::Custom::LogPrefix ]Failed to load the script \[$script\]: $::errorInfo"
** else {
if { [ string match -nocase [ lindex [ split $script . ] end ] tcl ] ** {
incr ::StartTCL::tclcount
** else {
incr ::StartTCL::tbccount
**
if { $::VERBOSE ** {
puts "[ ::Custom::LogPrefix ]\[$script\] loaded"
**
if { $name != "" ** {
if { [ info exists packages($name) ] ** {
if { $packages($name) < $version ** { return -code 1 "$name v$version required but got v$packages($name)" **
return -code 0
**
**
**
**
**
return -code 0
**
#
# Early definitions of some Custom procedures
#
#
# proc ::Custom::ReadConf { file **
#
# procedure to read a given configuration file and return a list of list with
# the format {section {key value****.
#
proc ::Custom::ReadConf { file ** {
if { ! [ file exists $file ] ** {
return
**
set conf {**
set section {**
set data {**
set hconfig [ open $file ]
while { [ gets $hconfig line ] >= 0 ** {
set line [ ::Custom::DropNoise $line ]
if { [ string index $line 0 ] == "\[" ** {
if { [ llength $data ] ** {
lappend conf $section $data
**
set data {**
set section [ lindex [ split $line {[]** ] 1 ]
** else {
set line [ split $line "=" ]
set key [ string trim [ lindex $line 0 ] ]
if { [ string is false $key ] ** {
continue
**
set value [ string trim [ lindex $line 1 ] ]
if { [ string index $value 0 ] == "\"" ** {
set value [ string trim [ lindex [ split $value "\"" ] 1 ] ]
**
lappend data $key $value
**
**
close $hconfig
if { [ llength $data ] ** {
lappend conf $section $data
**
return $conf
**
#
# proc ::Custom::DropNoise { string { comment_tags {\# //** ** **
#
# procedure to discard comment chars and white space from a given string.
#
proc ::Custom::DropNoise { string { comment_tags {\# //** ** ** {
foreach tag $comment_tags {
set pos [ string first $tag $string ]
if { $pos >= 0 ** {
set string [ string range $string 0 [ expr { $pos - 1 ** ] ]
**
**
return [ string trim $string ]
**
#
# proc ::Custom::LogPrefix { **
#
# procedure to return a standard WoWEmu console prefix entry.
#
proc ::Custom::LogPrefix { ** {
return "[ clock format [ clock seconds ] -format %k:%M:%S ]:M:"
**
namespace eval ::StartTCL {
#
# Loading variables from configuration file
#
if { $::StartTCL::use_conf_file ** {
foreach { section data ** [ ::Custom::ReadConf $::StartTCL::conf_file ] {
if { [ string match -nocase $section "Global" ] ** {
set section ::
** else {
foreach ns [ namespace children :: ] {
if { [ string tolower $ns ] == [ string tolower "::$section" ] ** {
set section $ns
unset ns
break
**
**
**
if { ! [ namespace exists $section ] ** { continue **
foreach { key value ** $data {
set ${section**::[ string toupper $key ] $value
**
**
**
**
#
# Header
#
if { $::VERBOSE ** {
puts "[ ::Custom::LogPrefix ]\n[ ::Custom::LogPrefix ]\t$::StartTCL::HEADER\n[ ::Custom::LogPrefix ]"
**
#
# Helper libraries (DLLs)
#
if { $::VERBOSE ** {
puts "[ ::Custom::LogPrefix ]Loading helper libraries (DLLs)"
**
foreach dir [ ::StartTCL::SortFolders [ glob -nocomplain -type d lib/* ] ] {
if { $::VERBOSE ** {
puts "[ ::Custom::LogPrefix ]Processing folder \[$dir\]"
**
if { $::DEBUG ** {
source $dir/pkgIndex.tcl
incr ::StartTCL::libcount
** else {
if { [ catch { source $dir/pkgIndex.tcl ** ] ** {
append ::StartTCL::errors "\n[ ::Custom::LogPrefix ] Failed to process the loader script in \[$dir\]: $errorInfo"
** else {
incr ::StartTCL::libcount
**
**
**
#
# Second level scripts
#
if { $::VERBOSE ** {
puts "[ ::Custom::LogPrefix ]Loading second level scripts"
**
#
# Script files acquiring
#
lappend ::StartTCL::scriptdirs $::StartTCL::SCRIPTS_DIR
foreach dir [ glob -nocomplain -type d $::StartTCL::SCRIPTS_DIR/* ] {
lappend ::StartTCL::scriptdirs $dir
**
foreach dir $::StartTCL::scriptdirs {
foreach script [ glob -nocomplain "$dir/*.tcl" "$dir/*.tbc" ] {
lappend ::StartTCL::scripts $script
**
**
#
# Script files processing
#
set ::StartTCL::scripts [ ::StartTCL::SortFiles $::StartTCL::scripts ]
::StartTCL::LoadScripts
#
# Done
#
if { $::StartTCL::errors != "" ** {
return "ERROR(S): $::StartTCL::errors"
** else {
if { $::VERBOSE ** {
return "Startup sequence done.\n[ ::Custom::LogPrefix ]\n[ ::Custom::LogPrefix ]Loaded:\n[ ::Custom::LogPrefix ]\t$::StartTCL::libcount helper libraries\n[ ::Custom::LogPrefix ]\t$::StartTCL::tclcount TCL scripts\n[ ::Custom::LogPrefix ]\t$::StartTCL::tbccount pre-compiled (TBC) scripts\n[ ::Custom::LogPrefix ]"
** else {
return "Startup sequence done (TCL count: $::StartTCL::tclcount, TBC count: $::StartTCL::tbccount)."
**
**
-------------------------------------------------------------------------------
if any of you could go through this and find out where the experience rate is
it would be a great help to me :)


Reply With Quote


