@khaii
have you tried this?
function<tab>script<tab>party_has_duplicate_job<tab>{
set .@party_id, getarg( 0, getcharid(1) );
// Need to have a party.
if ( .@party_id != 1 )
{
return -1;
}
// Loading party members variables
getpartymember getcharid(1),1;
getpartymember getcharid(1),2;
// Keep rid attached.
set .@rid, playerattached();
// Check all members
for ( set .@i,0; .@i<$@partymembercount; set .@i, .@i+1 )
{
// Online user
if ( isloggedin( $@partymemberaid[.@i], $@partymembercid[.@i]) )
{
// Attach the member to access "Class"
attachrid( $@partymemberaid[.@i] );
if ( compare( .@tmp_class$ + "|", "|" + Class + "|" ) )
{
if ( .@rid )
attachrid(.@rid);
else
detachrid;
return 1;
}
set .@tmp_class$, .@tmp_class$ + "|" + Class;
}
// Offline user (use sql)
else
{
set .@sql$, .@sql$ + ( .@sql_i ? "OR " : "" ) "`char_id`='" + $@partymembercid[.@i] + "' ";
set .@sql_i, .@sql_i + 1;
}
}
// SQL for offline users
if ( getstrlen(.@sql$) )
{
// get class from offline members
set .@count, query_sql("SELECT `class` FROM `char` WHERE " + .@sql$, .@class );
// Check the class.
for ( set .@i, 0; .@i<.@count; set .@i, .@i+1 )
{
if ( compare( .@tmp_class$ + "|", "|" + .@class[.@i] + "|" ) )
{
if ( .@rid )
attachrid(.@rid);
else
detachrid;
return 1;
}
set .@tmp_class$, .@tmp_class$ + "|" + .@class[.@i];
}
}
// Restore RID.
if ( .@rid )
attachrid(.@rid);
else
detachrid;
return 0;
}