SphereServer BugTracker - SphereServer
View Issue Details
0001982SphereServerexecutable - genericpublic18-06-11 15:2424-06-11 01:46
babidi 
 
normalmajoralways
closedno change required 
20-09-2009, 0.56b Prerelease 
 
Not Available
None
None
1468
0001982: f_onaccount_login ARGO can't be used
i remember that argo was introduced to permite sending a sysmessage to client to give a reason of why is not permited to login

but now it does not work

[FUNCTION f_onaccount_login]
ARGO.SYSMESSAGE LOGIN NOT PERMITED FOR YOU!
return 1
No tags attached.
Issue History
18-06-11 15:24babidiNew Issue
18-06-11 16:49MirravinNote Added: 0001121
18-06-11 17:17babidiNote Added: 0001124
19-06-11 02:19MrSugarCubeNote Added: 0001131
19-06-11 02:29babidiNote Added: 0001132
24-06-11 01:46MrSugarCubeStatusnew => closed
24-06-11 01:46MrSugarCubeResolutionopen => no change required

Notes
(0001121)
Mirravin   
18-06-11 16:49   
It is because ARGO is a client, but not a character. So character-based functions don't work with it.
(0001124)
babidi   
18-06-11 17:17   
is there no reason to have argo if can't be used

i remember it was put there because of message when reject login

like onchar_create
src.sysmessage doesn't work
but
argo.sysmessage works
(0001131)
MrSugarCube   
19-06-11 02:19   
ARGO.SYSMESSAGE works fine in f_onaccount_login. The problem is that returning 1 indicates that the connection should be closed, and Sphere will only wait long enough to send high-priority packets before terminating a connection.

You could try ARGO.FLUSH after the SYSMESSAGE, which should improve the chances of the packet being sent.
(0001132)
babidi   
19-06-11 02:29   
you're right

i solved this way

if (<argn1> == 3)
    ARGO.SYSMESSAGE @021 LOGIN NON ALLOWED!
    ARGO.FLUSH
elif (<argn1> == 4)
    return 1
endif