Simple say, this .diff files are updated version of f****** s***** out-of-date Harmony Manual Install .patch files for rAthena that was provided only until Server_rAthena_r17484.patch by g***** Harmony that doesn't give any support anymore. Files (Were made for 3.3.11 & 3.3.12)
Harmony-rA-20141119-9f8af95a.diff
Harmony-rA-20150322-d951fab8.diff
Harmony-rA-20150411-994aba68.diff
Harmony-rA-20150707-a5b85c92.diff
harmony-fix-rA.diff (This diff, for little changes in src/map/harmony.c & src/map/harmony.h. Just patch it manually)
Compiled with no error in Windows 7 by MSVS 2010 and GCC in Centos 6.6
- script DualControl -1,{
OnInit:
bindatcmd "test",strnpcinfo(3)+"::OnAtcommand";// create @test command for the sample
.whiteList$ = "2000000,2000001,2000002,2000003";
end;
OnAtcommand:
.@query_result = query_sql("SELECT login.account_id FROM login LEFT JOIN `char` ON login.account_id=`char`.account_id WHERE "+
"login.last_ip=(SELECT last_ip FROM login WHERE account_id="+getcharid(3)+") AND `char`.online=1 and account_id != "+ getcharid(3), .@account_id;
if ( .@query_result > 0 && compare( .whiteList$,getcharid(3) +"" ) == 0 )// not in the list
dispbottom "there is "+ .@query_result +" people with the same ip than you";
end;
}
I don't know about your .L[3], and it looks like that Kurofly has answered your second question?
setarray .M1,1,2,3;
setarray .M2,4,5,6;
setarray .M3,7,8,9;
for (.@e = 0; .@e<4; .@e++) {
set .@r,rand(1,.L[3]);
set .@s[.@e],getd(".M"+.@r+"["+rand(getarraysize(getd(".M"+.@r)))+"]";
}
for(.@e = 0; .@e<4; .@e++){
set .@r,rand(1,.L[3]);
set .@s[.@e],getd(".M" +.@r+"["+.@r+"]");
}
always inside
For the other one you can't use the whole array as an argument.
I think I heard somewhere that you can pass player array variables in functions but I never tried it
So you have two choices:
Either you use a @var[] array and then use it in your function
Or you pass the name of the array to your function so that it can get the variables using getvariableofnpc() and getd()
note that you'l have to give your array lenght to your function
for example :
- script YourNPCName -1,{
callfunc "YourFuncName",".myarrayname",getarraysize(.myarrayname);
}
function script YourFuncName {
for (.@i = 0 ; .@i < getarg(1) ; .@i++)
debugmes "val "+.@i+" : "+getvariableofnpc(getd(getarg(0)+"["+.@i+"]"),"YourNPCName");
return;
}