[wpdev-commits] xmlscripts/scripts/skills __init__.py,1.6,1.7 mining.py,1.5,1.6
Brought to you by:
rip,
thiagocorrea
|
From: <co...@us...> - 2003-11-15 20:55:19
|
Update of /cvsroot/wpdev/xmlscripts/scripts/skills
In directory sc8-pr-cvs1:/tmp/cvs-serv4929/scripts/skills
Modified Files:
__init__.py mining.py
Log Message:
AntiMacroCheck implemented
Index: __init__.py
===================================================================
RCS file: /cvsroot/wpdev/xmlscripts/scripts/skills/__init__.py,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** __init__.py 3 Oct 2003 16:21:10 -0000 1.6
--- __init__.py 15 Nov 2003 20:55:13 -0000 1.7
***************
*** 108,112 ****
! def checkskill( char, skillid, chance ):
if char.dead:
return OOPS
--- 108,112 ----
! def checkskill( char, targetobject, skillid, chance ):
if char.dead:
return OOPS
***************
*** 128,132 ****
gainchance = 0.01
! if gainchance >= whrandom.random() or skillvalue < 100:
skillgain( char, skillid )
--- 128,133 ----
gainchance = 0.01
! #If you lucky and antimacro is agree so let's gain this skill
! if ( gainchance >= whrandom.random() and antimacrocheck( char, skillid, targetobject ) ) or skillvalue < 100:
skillgain( char, skillid )
***************
*** 168,172 ****
- char.update()
return OK
--- 169,172 ----
***************
*** 181,191 ****
if stat == STRENGTH:
char.strength = char.strength + 1
- char.updatestats()
elif stat == DEXTERITY:
char.dexterity = char.dexterity + 1
- char.updatestats()
elif stat == INTELLIGENCE:
char.intelligence = char.intelligence + 1
- char.updatestats()
return OK
--- 181,188 ----
***************
*** 199,200 ****
--- 196,216 ----
def totalstats( char ):
return char.strength + char.dexterity + char.intelligence
+
+ def antimacrocheck( char, skillid, object ):
+ #Get or set antimacro tag: "AM" + SERIAL = COUNT
+ tagname = "AMAC" + str( char.serial ) + " " + str( skillid )
+ if object.hastag( tagname ):
+ count = object.gettag( tagname )
+ object.settag( tagname, count + 1 )
+ if count <= ANTIMACROALLOWANCE:
+ return OK
+ elif count > ANTIMACROALLOWANCE + 1:
+ return OOPS
+ else:
+ object.addtimer( ANTIMACRODELAY, "wolfpack.utilities.cleartag", [char, tagname] )
+ return OOPS
+ else:
+ object.settag( tagname, 1 )
+ return OK
+
+
Index: mining.py
===================================================================
RCS file: /cvsroot/wpdev/xmlscripts/scripts/skills/mining.py,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** mining.py 3 Oct 2003 16:21:10 -0000 1.5
--- mining.py 15 Nov 2003 20:55:13 -0000 1.6
***************
*** 34,86 ****
def mining( char, pos, tool ):
! socket = char.socket
!
! if char.hastag( 'mining_gem' ):
! veingem = wolfpack.finditem( char.gettag( 'mining_gem' ) )
! if not veingem:
! veingem = getvein( socket, pos )
! if not veingem:
! char.deltag( 'mining_gem' )
! return OOPS
! else:
! veingem = getvein( socket, pos )
! if not veingem:
! return OOPS
! else:
! char.settag( 'mining_gem', veingem.serial )
!
! if char.distanceto( veingem ) > MINING_MAX_DISTANCE:
! veingem = getvein( socket, pos )
!
! if not veingem:
! return OOPS
!
! if not veingem.hastag( 'resname' ) or not veingem.hastag( 'resourcecount' ):
! return OOPS
!
! resname = veingem.gettag( 'resname' ) # Sometimes mutated in colored ore and back
! resourcecount = veingem.gettag( 'resourcecount' )
! reqskill = oretable[ resname ][ REQSKILL ]
!
! success = 0
! char.addtimer( 1400, "skills.mining.effecttimer", [oresound] )
char.settag( 'is_mining', servertime() + miningdelay )
char.turnto( pos )
char.action( 11 )
- # Are you skilled enough ? And here is ore ?
- if resourcecount > 2 and char.skill[ MINING ] > reqskill:
- # Anyway you haven't 100% chance to get something :)
- if char.skill[ MINING ] > reqskill:
- if whrandom.randint( oretable[ resname ][ MINSKILL ], oretable[ resname ][ MAXSKILL ] ) < char.skill[ MINING ]:
- if whrandom.random() < 0.9:
- success = 1
- skills.successharvest( char, veingem, oretable, resname, 1 ) # 1 - amount of ore
- skills.checkskill( char, MINING, 0 )
-
- if success == 0:
- socket.clilocmessage( 501869, "", GRAY, NORMAL ) # You loosen some rocks but fail to find any usable ore.
-
- char.deltag('nowmining')
return OK
--- 34,42 ----
def mining( char, pos, tool ):
! char.addtimer( 1300, "skills.mining.domining", [oresound,tool,pos] )
char.settag( 'is_mining', servertime() + miningdelay )
char.turnto( pos )
char.action( 11 )
return OK
***************
*** 153,157 ****
#Sound effect
! def effecttimer( char, args ):
char.soundeffect( args[0] )
return OK
--- 109,162 ----
#Sound effect
! def domining( char, args ):
char.soundeffect( args[0] )
+ tool = args[1]
+ pos = args[2]
+ socket = char.socket
+
+ if char.hastag( 'mining_gem' ):
+ veingem = wolfpack.finditem( char.gettag( 'mining_gem' ) )
+ if not veingem:
+ veingem = getvein( socket, pos )
+ if not veingem:
+ char.deltag( 'mining_gem' )
+ return OOPS
+ else:
+ veingem = getvein( socket, pos )
+ if not veingem:
+ return OOPS
+ else:
+ char.settag( 'mining_gem', veingem.serial )
+
+ if char.distanceto( veingem ) > MINING_MAX_DISTANCE:
+ veingem = getvein( socket, pos )
+
+ if not veingem:
+ return OOPS
+
+ if not veingem.hastag( 'resname' ) or not veingem.hastag( 'resourcecount' ):
+ return OOPS
+
+ resname = veingem.gettag( 'resname' ) # Sometimes mutated in colored ore and back
+ resourcecount = veingem.gettag( 'resourcecount' )
+ reqskill = oretable[ resname ][ REQSKILL ]
+
+ success = 0
+ char.update()
+ char.updatestats()
+
+ # Are you skilled enough ? And here is ore ?
+ if resourcecount > 2 and ( char.skill[ MINING ] >= reqskill or char.skill[ MINING ] <= 100 ):
+ skills.checkskill( char, veingem, MINING, 0 )
+ if whrandom.random() > 0.7:
+ skills.successharvest( char, veingem, oretable, resname, 1 ) # 1 - amount of ore
+ success = 1
+
+
+
+ if success == 0:
+ socket.clilocmessage( 501869, "", GRAY, NORMAL ) # You loosen some rocks but fail to find any usable ore.
+
+ char.deltag('nowmining')
+
return OK
|