Kuroyama
New member
- Messages
- 128
- Points
- 0
This script is no dual on the same map using last_unique_id of gepard.
The problem is, it's having variable error. Need to refine the script, anyone?
The problem is, it's having variable error. Need to refine the script, anyone?
Code:
- script dual_client -1,{
OnInit:
setarray .@map$[0], "prt_fild08","prt_fild01"; // yours maps no dual
for ( .@i = 0; .@i < getarraysize( .@map$ ); .@i++ ) {
if ( !getmapflag( .@map$[.@i], mf_loadevent ) ) {
setmapflag .@map$[.@i], mf_loadevent;
}
}
.map_list$ = implode( .@map$, "|" );
.@count = query_sql( "select `login`.`last_unique_id`, `char`.`name`, `char`.`char_id` from `login` left join `char` on `char`.`account_id`=`login`.`account_id` where `char`.`online`=1", .@last_uid$, .@name$, .@char_id );
for ( .@i = 0; .@i < .@count; .@i++ ) {
getmapxy .@map$, .@x, .@y, 0, .@name$[.@i];
if ( !compare( .map_list$, .@map$ ) ) continue;
.@size = 0;
.@variable$ = ".uid_"+ .@last_uid$[.@i] +"$";
if ( getd( .@variable$ ) != "" ) {
.@size = getarraysize( getd( .@variable$ ) );
for ( .@j = 0; .@j < .@size; .@j++ ) {
getmapxy .@map2$, .@x, .@y, 0, getd( .@variable$ +"["+ .@j +"]" );
if ( .@map$ == .@map2$ ) {
warpchar "SavePoint",0,0, .@char_id[.@i];
message .@name$[.@i], "No dual account on this map.";
break;
}
}
}
if ( .@j == .@size ) {
setd .@variable$ +"["+ .@size +"]", .@name$[.@i];
}
}
end;
OnPCLoadMapEvent:
if ( !compare( .map_list$, strcharinfo(3) ) ) end;
.@map$ = strcharinfo(3);
.@myname$ = strcharinfo(0);
.@variable$ = ".uid_"+ get_unique_id() +"$";
.@size = getarraysize( getd( .@variable$ ) );
for ( .@j = 0; .@j < .@size; .@j++ ) {
if ( .@myname$ == getd( .@variable$ +"["+ .@j +"]" ) ) {
.@is_in = 1;
continue;
}
getmapxy .@map2$, .@x, .@y, 0, getd( .@variable$ +"["+ .@j +"]" );
.@compare = compare( .map_list$, .@map2$ );
if ( !.@compare ) {
.@tmp$ = .@variable$ +"["+ .@j +"]";
deletearray getd( .@tmp$ ), 1;
.@size--;
}
else if ( .@map$ == .@map2$ ) {
warpchar "SavePoint",0,0, getcharid(0);
message .@myname$, "No dual account on this map.";
end;
}
}
if ( !.@is_in ) {
setd .@variable$ +"["+ .@size +"]", .@myname$;
}
end;
}
