SphereCommunity
Sphere crushing (error) - Printable Version

+- SphereCommunity (https://forum.spherecommunity.net)
+-- Forum: Sphere 0.56d (/Forum-Sphere-0-56d)
+--- Forum: Script Help (/Forum-Script-Help)
+--- Thread: Sphere crushing (error) (/Thread-Sphere-crushing-error)



Sphere crushing (error) - Russian - 12-24-2012 06:31 PM

Server periodically is crushing.
-----------------------------------------------
Log:
Code:
01:16:91:'murzilka' commands 'dap'=1
01:16:cd:'gift' commands 'c щя гляну'=1
01:16:DEBUG:__ thread (4080) __ |  # | _____ function _____________ | ticks passed from previous function start ______
01:16:DEBUG:>>         4080     |  0 |               CWorld::OnTick | +0 <-- exception catch point (below is guessed and could be incorrect!)
01:16:DEBUG:>>         4080     |  1 | CTimedFunctionHandler::OnTick | +16
01:16:DEBUG:>>         4080     |  2 |           ProfileData::Start | +187
01:16:CRITICAL:"Access Violation" (0x6955e757), in SUB: CWorld::TimerFunction::Tick()
01:16:DEBUG:__ thread (4080) __ |  # | _____ function _____________ | ticks passed from previous function start ______
01:16:DEBUG:>>         4080     |  0 |              NetworkIn::tick | +0
01:16:DEBUG:>>         4080     |  1 | PacketMovementReq::onReceive | +0
01:16:DEBUG:>>         4080     |  2 | PacketMovementReq::doMovement | +0
01:16:DEBUG:>>         4080     |  3 |       CClient::Event_Walking | +0
01:16:DEBUG:>>         4080     |  4 |         CChar::CanMoveWalkTo | +0 <-- exception catch point (below is guessed and could be incorrect!)
01:16:DEBUG:>>         4080     |  5 |        CChar::CheckValidMove | +0
01:16:DEBUG:>>         4080     |  6 |        CChar::CheckValidMove | +0
01:16:DEBUG:>>         4080     |  7 |        CPointBase::GetRegion | +0
01:16:DEBUG:>>         4080     |  8 |       CSectorBase::GetRegion | +0
01:16:DEBUG:__ thread (4080) __ |  # | _____ function _____________ | ticks passed from previous function start ______
01:16:DEBUG:>>         4080     |  0 |              NetworkIn::tick | +0
01:16:DEBUG:>>         4080     |  1 | PacketMovementReq::onReceive | +31
01:16:DEBUG:>>         4080     |  2 | PacketMovementReq::doMovement | +0
01:16:DEBUG:>>         4080     |  3 |       CClient::Event_Walking | +0
01:16:DEBUG:>>         4080     |  4 |         CChar::CanMoveWalkTo | +0 <-- exception catch point (below is guessed and could be incorrect!)
01:16:DEBUG:>>         4080     |  5 |        CChar::CheckValidMove | +0
01:16:DEBUG:>>         4080     |  6 |        CPointBase::GetRegion | +0
01:16:DEBUG:>>         4080     |  7 |       CSectorBase::GetRegion | +0
01:16:DEBUG:__ thread (4080) __ |  # | _____ function _____________ | ticks passed from previous function start ______
01:16:DEBUG:>>         4080     |  0 |               CWorld::OnTick | +0
01:16:DEBUG:>>         4080     |  1 |              CSector::OnTick | +0
01:16:DEBUG:>>         4080     |  2 |                CChar::OnTick | +0
01:16:DEBUG:>>         4080     |  3 |      CChar::NPC_OnTickAction | +0
01:16:DEBUG:>>         4080     |  4 |        CChar::NPC_Act_Wander | +0
01:16:DEBUG:>>         4080     |  5 |       CChar::NPC_WalkToPoint | +0
01:16:DEBUG:>>         4080     |  6 |         CChar::CanMoveWalkTo | +0 <-- exception catch point (below is guessed and could be incorrect!)
01:16:DEBUG:>>         4080     |  7 |        CChar::CheckValidMove | +0
01:16:DEBUG:>>         4080     |  8 |        CChar::CheckValidMove | +0
01:16:DEBUG:>>         4080     |  9 |       CWorld::GetHeightPoint | +0
01:16:DEBUG:>>         4080     | 10 |       CWorld::GetHeightPoint | +0
01:16:DEBUG:>>         4080     | 11 |       CPointBase::GetRegions | +0
01:16:DEBUG:>>         4080     | 12 |      CSectorBase::GetRegions | +0
01:16:DEBUG:__ thread (4080) __ |  # | _____ function _____________ | ticks passed from previous function start ______
01:16:DEBUG:>>         4080     |  0 |               CWorld::OnTick | +0
01:16:DEBUG:>>         4080     |  1 |              CSector::OnTick | +0
01:16:DEBUG:>>         4080     |  2 |                CChar::OnTick | +0
01:16:DEBUG:>>         4080     |  3 |      CChar::NPC_OnTickAction | +0
01:16:DEBUG:>>         4080     |  4 |        CChar::NPC_Act_Wander | +0
01:16:DEBUG:>>         4080     |  5 |       CChar::NPC_WalkToPoint | +0
01:16:DEBUG:>>         4080     |  6 |         CChar::CanMoveWalkTo | +16 <-- exception catch point (below is guessed and could be incorrect!)
01:16:DEBUG:>>         4080     |  7 |        CChar::CheckValidMove | +0
01:16:DEBUG:>>         4080     |  8 |        CChar::CheckValidMove | +0
01:16:DEBUG:>>         4080     |  9 |       CWorld::GetHeightPoint | +0
01:16:DEBUG:>>         4080     | 10 |       CWorld::GetHeightPoint | +0
01:16:DEBUG:>>         4080     | 11 |       CPointBase::GetRegions | +0
01:16:DEBUG:>>         4080     | 12 |      CSectorBase::GetRegions | +0
01:16:DEBUG:__ thread (4080) __ |  # | _____ function _____________ | ticks passed from previous function start ______
01:16:DEBUG:>>         4080     |  0 |               CWorld::OnTick | +0
01:16:DEBUG:>>         4080     |  1 |              CSector::OnTick | +0
01:16:DEBUG:>>         4080     |  2 |                CChar::OnTick | +47
01:16:DEBUG:>>         4080     |  3 |      CChar::NPC_OnTickAction | +0
01:16:DEBUG:>>         4080     |  4 |        CChar::NPC_Act_Wander | +0
01:16:DEBUG:>>         4080     |  5 |       CChar::NPC_WalkToPoint | +0
01:16:DEBUG:>>         4080     |  6 |         CChar::CanMoveWalkTo | +0 <-- exception catch point (below is guessed and could be incorrect!)
01:16:DEBUG:>>         4080     |  7 |        CChar::CheckValidMove | +0
01:16:DEBUG:>>         4080     |  8 |        CChar::CheckValidMove | +0
01:16:DEBUG:>>         4080     |  9 |       CWorld::GetHeightPoint | +0
01:16:DEBUG:>>         4080     | 10 |       CWorld::GetHeightPoint | +0
01:16:DEBUG:>>         4080     | 11 |       CPointBase::GetRegions | +0
01:16:DEBUG:>>         4080     | 12 |      CSectorBase::GetRegions | +0
01:16:DEBUG:__ thread (4080) __ |  # | _____ function _____________ | ticks passed from previous function start ______
01:16:DEBUG:>>         4080     |  0 |               CWorld::OnTick | +0
01:16:DEBUG:>>         4080     |  1 |              CSector::OnTick | +78
01:16:DEBUG:>>         4080     |  2 |                CChar::OnTick | +0
01:16:DEBUG:>>         4080     |  3 |      CChar::NPC_OnTickAction | +0 <-- exception catch point (below is guessed and could be incorrect!)
01:16:DEBUG:>>         4080     |  4 |          CChar::NPC_Act_Idle | +0
01:16:DEBUG:>>         4080     |  5 |        CChar::NPC_LookAround | +0
01:16:DEBUG:>>         4080     |  6 |        CChar::NPC_LookAtChar | +0
01:16:DEBUG:>>         4080     |  7 |             CChar::CanSeeLOS | +0
01:16:DEBUG:>>         4080     |  8 |             CChar::CanSeeLOS | +0
01:16:DEBUG:>>         4080     |  9 |       CWorld::GetHeightPoint | +0
01:16:DEBUG:>>         4080     | 10 |       CWorld::GetHeightPoint | +0
01:16:DEBUG:>>         4080     | 11 |       CPointBase::GetRegions | +0
01:16:DEBUG:>>         4080     | 12 |      CSectorBase::GetRegions | +0
01:16:DEBUG:'Tunnel slime' [0f9fce]
01:16:DEBUG:__ thread (4080) __ |  # | _____ function _____________ | ticks passed from previous function start ______
01:16:DEBUG:>>         4080     |  0 |               CWorld::OnTick | +0
01:16:DEBUG:>>         4080     |  1 |              CSector::OnTick | +94
01:16:DEBUG:>>         4080     |  2 |                CChar::OnTick | +0
01:16:DEBUG:>>         4080     |  3 |      CChar::NPC_OnTickAction | +0
01:16:DEBUG:>>         4080     |  4 |          CChar::NPC_Act_Idle | +0
01:16:DEBUG:>>         4080     |  5 |        CChar::NPC_LookAround | +0
01:16:DEBUG:>>         4080     |  6 |        CChar::NPC_LookAtChar | +0
01:16:DEBUG:>>         4080     |  7 |             CChar::OnTrigger | +15 <-- exception catch point (below is guessed and could be incorrect!)
01:16:DEBUG:>>         4080     |  8 |                CGFile::Close | +0
01:16:DEBUG:trigger '@NPCLookAtChar' action '77' [034ef1b]
01:16:DEBUG:__ thread (4080) __ |  # | _____ function _____________ | ticks passed from previous function start ______
01:16:DEBUG:>>         4080     |  0 |               CWorld::OnTick | +0
01:16:DEBUG:>>         4080     |  1 |              CSector::OnTick | +94
01:16:DEBUG:>>         4080     |  2 |                CChar::OnTick | +0
01:16:DEBUG:>>         4080     |  3 |      CChar::NPC_OnTickAction | +0
01:16:DEBUG:>>         4080     |  4 |          CChar::NPC_Act_Idle | +0
01:16:DEBUG:>>         4080     |  5 |        CChar::NPC_LookAround | +0
01:16:DEBUG:>>         4080     |  6 |        CChar::NPC_LookAtChar | +31
01:16:DEBUG:>>         4080     |  7 |             CChar::OnTrigger | +0 <-- exception catch point (below is guessed and could be incorrect!)
01:16:DEBUG:>>         4080     |  8 |                CGFile::Close | +0
01:16:DEBUG:trigger '@NPCLookAtChar' action '77' [034ef1b]
01:16:DEBUG:__ thread (4080) __ |  # | _____ function _____________ | ticks passed from previous function start ______
01:16:DEBUG:>>         4080     |  0 |               CWorld::OnTick | +0
-----------------------------------------------
I think that is main information:
1: 4080 | 6 | CChar::CanMoveWalkTo | +16 <-- exception catch point (below is guessed and could be incorrect!)
2: 01:16:DEBUG:trigger '@NPCLookAtChar' action '77' [034ef1b]
3:01:16:DEBUG:'Tunnel slime' [0f9fce]

-----------------------------------------------
1: Sphere ini:
Code:
// Experimental flags
// Flags for options that affect server behaviour and which might affect compatibility
// See the revisions.txt file for more details on this
// EF_DiagonalWalkCheck         = 00000001
// EF_UNICODE                   = 00000002 // No on Linux
// EF_New_Triggers              = 00000008
// EF_Intrinsic_Locals          = 00000020
// EF_Item_Strict_Comparison    = 00000040
// EF_NewPositionChecks         = 00000080 // Do not set while server is running !!!
// EF_WalkCheck                 = 00000100 //Не ставить.
// EF_AllowTelnetPacketFilter   = 00000200 // Enables packet filtering for telnet connections as well
// EF_Script_Profiler           = 00000400
// EF_Size_Optimise             = 00000800
// EF_Minimize_Triggers         = 00001000 // Minimize trigger calls (use only 0.51 triggers)
// EF_DamageTools               = 00002000 // damage tools (and fire @damage on them) while mining or lumberjacking
// EF_PetSlots                = 00004000 // INCOMPLETE YET! DO NOT USE until this warning is removed!
// EF_UsePingServer             = 00008000 // Enable the experimental Ping Server (for showing pings on the server list, uses UDP port 12000)
// EF_NPCAct_Triggers           = 00010000 // Enable @NPCSpecialAction and @NPCAction triggers (mutual exclusive with EF_Minimize_Triggers)
// EF_NetworkOutThread          = 00800000 // Send network data in a separate thread
// EF_Specific                  = 01000000 // Specific behaviour, not completly tested
Experimental=00000001|00000002|00000008|00000080|08000|010000
-----------------------------------------------
2:
Code:
ON=@NPCLOOKATCHAR
IF !(<ISEVENT.E_NPC_ATTACK>)
    IF (<SRC.ISEVENT.E_NPC_ATTACK>)
        IF !(<FLAGS>&STATF_PET)
            IF (<BRAIN>==BRAIN_MONSTER)
            ATTACK <SRC.UID>
            ENDIF
        ENDIF
    ENDIF
ENDIF
-----------------------------------------------
3: Tunnel slime
Code:
[CHARDEF C_TUNNEL_SLIME]
ID=C_SLIME
NAME=Tunnel slime
ARMOR=0
DAM=0
MOVERATE=50

ON=@CREATE
F_NPC_EFFECT
STR=25
DEX=15
INT=0
COLOR=076F
FAME=0
KARMA=-1500
NPC=BRAIN_MONSTER

ON=@DEATH
SERV.NEWITEM=I_specialblood_<EVAL {1 5}>
NEW.COLOR=076F
NEW.P=<EVAL <P.X> + {-1 1}>,<EVAL <P.Y> + {-1 1}>,<P.Z>
NEW.TIMER=<EVAL {4 5}>
SERV.NEWITEM=I_specialblood_<EVAL {1 5}>
NEW.COLOR=076F
NEW.P=<EVAL <P.X> + {-1 1}>,<EVAL <P.Y> + {-1 1}>,<P.Z>
NEW.TIMER=<EVAL {4 5}>
SERV.NEWITEM=I_specialblood_<EVAL {1 5}>
NEW.COLOR=076F
NEW.P=<EVAL <P.X> + {-1 1}>,<EVAL <P.Y> + {-1 1}>,<P.Z>
NEW.TIMER=<EVAL {4 5}>



RE: Sphere crushing (error) - Shaklaban - 12-24-2012 07:53 PM

i never seen this try to add some logs:

PHP Code:
ON=@NPCLOOKATCHAR
serv
.log <baseid> (<name>) looking  to <src.baseid> (<src.name>)
 IF !(<
ISEVENT.E_NPC_ATTACK>)
     IF (<
SRC.ISEVENT.E_NPC_ATTACK>)
         IF !(<
FLAGS>&STATF_PET)
             IF (<
BRAIN>==BRAIN_MONSTER)
             
ATTACK <SRC.UID>
             ENDIF
         ENDIF
     ENDIF
 ENDIF 

if attacking triggers NPCLOOKATCHAR maybe two npcs looking to eachother and creates an infinity loop.


RE: Sphere crushing (error) - Russian - 12-24-2012 10:35 PM

Yeah, may be infinity loop.
If 1 and 3 - ok, i am delete a ON=@NPCLOOKATCHAR Smile


RE: Sphere crushing (error) - Ben - 12-25-2012 12:09 AM

Code:
// Experimental flags
// Flags for options that affect server behaviour and which might affect compatibility
// See the revisions.txt file for more details on this
// EF_DiagonalWalkCheck         = 00000001
// EF_UNICODE                   = 00000002 // No on Linux
// EF_New_Triggers              = 00000008
// EF_Intrinsic_Locals          = 00000020
// EF_Item_Strict_Comparison    = 00000040
// EF_NewPositionChecks         = 00000080 // Do not set while server is running !!!
// EF_WalkCheck                 = 00000100 //Не ставить.
// EF_AllowTelnetPacketFilter   = 00000200 // Enables packet filtering for telnet connections as well
// EF_Script_Profiler           = 00000400
// EF_Size_Optimise             = 00000800
// EF_Minimize_Triggers         = 00001000 // Minimize trigger calls (use only 0.51 triggers)
// EF_DamageTools               = 00002000 // damage tools (and fire @damage on them) while mining or lumberjacking
// EF_PetSlots                = 00004000 // INCOMPLETE YET! DO NOT USE until this warning is removed!
// EF_UsePingServer             = 00008000 // Enable the experimental Ping Server (for showing pings on the server list, uses UDP port 12000)
// EF_NPCAct_Triggers           = 00010000 // Enable @NPCSpecialAction and @NPCAction triggers (mutual exclusive with EF_Minimize_Triggers)
// EF_NetworkOutThread          = 00800000 // Send network data in a separate thread
// EF_Specific                  = 01000000 // Specific behaviour, not completly tested
Experimental=00000001|00000002|00000008|00000080|08000|010000

First of all, you should remove // EF_UNICODE = 00000002.
Then you should add // EF_WalkCheck = 00000100.
Next, check your "gift" command since that's the command that was used just before the error started.