Nero Posted February 26, 2018 Posted February 26, 2018 How can i restrict them from getting reward in this script: - script guild_vs1s2 -1,{ OnAgitEnd: callsub( L_reward,0, "guild_vs1" ); end; OnAgitEnd2: callsub( L_reward,1, "guild_vs1" ); end; L_reward: .@type = getarg( 0,0 ); .@map$ = getarg( 1,"" ); if ( .@type == 0) { // woe fe setarray .@item_master, 30206,2; setarray .@item_member, 30206,1; } else { // woe se setarray .@item_master, 30206,2; setarray .@item_member, 30206,1; } .@item_master_size = getarraysize( .@item_master ) - 1; .@item_member_size = getarraysize( .@item_member ) - 1; if ( .@map$ != "" ) { .@gid = getcastledata( .@map$,1 ); if ( .@gid > 0 ) { getguildmember .@gid,1; getguildmember .@gid,2; .@master_id = getcharid( 3, getguildmaster( .@gid ) ); while ( .@i < $@guildmembercount ) { .@x = 0; if ( isloggedin( $@guildmemberaid[.@i],$@guildmembercid[.@i] ) ) { if ( $@guildmemberaid[.@i] == .@master_id ) { while ( .@x < .@item_master_size ) { getitem .@item_master[.@x],.@item_master[.@x+1],$@guildmemberaid[.@i]; .@x += 2; } } else { while ( .@x < .@item_member_size ) { getitem .@item_member[.@x],.@item_member[.@x+1],$@guildmemberaid[.@i]; .@x += 2; } } } .@i++; } } } return; } Where to put this one if( ( checkvending() == 2 && !.autotrade ) ? Quote
0 Keitenai Posted February 26, 2018 Posted February 26, 2018 (edited) while ( .@x < .@item_master_size ) { if ( CheckVending() ) end; getitem .@item_master[.@x],.@item_master[.@x+1],$@guildmemberaid[.@i]; .@x += 2; } Edited February 26, 2018 by Keitenai 1 Quote
0 Keitenai Posted February 26, 2018 Posted February 26, 2018 1 minute ago, Nero said: Wow thanks!!! Fast answer! you need to do thesame with members if ( CheckVending() ) end; getitem .@item_member[.@x],.@item_member[.@x+1],$@guildmemberaid[.@i]; 1 Quote
0 Nero Posted February 26, 2018 Author Posted February 26, 2018 (edited) Hmm i got some problem. No error on script but members doesnt receive the reward. even if the player is not in vend/autotrade Edited February 26, 2018 by Nero Quote
0 hendra814 Posted February 26, 2018 Posted February 26, 2018 3 hours ago, Nero said: Hmm i got some problem. No error on script but members doesnt receive the reward. even if the player is not in vend/autotrade try like this while ( .@x < .@item_master_size ) { if ( CheckVending() ){ end; } getitem .@item_master[.@x],.@item_master[.@x+1],$@guildmemberaid[.@i]; .@x += 2; } Quote
0 Nero Posted February 26, 2018 Author Posted February 26, 2018 1 hour ago, hendra814 said: try like this while ( .@x < .@item_master_size ) { if ( CheckVending() ){ end; } getitem .@item_master[.@x],.@item_master[.@x+1],$@guildmemberaid[.@i]; .@x += 2; } - script guild_vs1s2 -1,{ OnAgitEnd: callsub( L_reward,0, "guild_vs1" ); end; OnAgitEnd2: callsub( L_reward,1, "guild_vs1" ); end; L_reward: .@type = getarg( 0,0 ); .@map$ = getarg( 1,"" ); if ( .@type == 0) { // woe fe setarray .@item_master, 30206,2; setarray .@item_member, 30206,1; } else { // woe se setarray .@item_master, 30206,2; setarray .@item_member, 30206,1; } .@item_master_size = getarraysize( .@item_master ) - 1; .@item_member_size = getarraysize( .@item_member ) - 1; if ( .@map$ != "" ) { .@gid = getcastledata( .@map$,1 ); if ( .@gid > 0 ) { getguildmember .@gid,1; getguildmember .@gid,2; .@master_id = getcharid( 3, getguildmaster( .@gid ) ); while ( .@i < $@guildmembercount ) { .@x = 0; if ( isloggedin( $@guildmemberaid[.@i],$@guildmembercid[.@i] ) ) { if ( $@guildmemberaid[.@i] == .@master_id ) { while ( .@x < .@item_master_size ) { getitem .@item_master[.@x],.@item_master[.@x+1],$@guildmemberaid[.@i]; .@x += 2; } } else { while ( .@x < .@item_member_size ) { if ( CheckVending() ){ end; } getitem .@item_member[.@x],.@item_member[.@x+1],$@guildmemberaid[.@i]; .@x += 2; } } } .@i++; } } } return; } Still not getting anything. Quote
0 Keitenai Posted March 2, 2018 Posted March 2, 2018 (edited) try this @Nero: - script guild_vs1s2 -1,{ OnAgitEnd: callsub( L_reward,0, "guild_vs1" ); end; OnAgitEnd2: callsub( L_reward,1, "guild_vs1" ); end; L_reward: .@type = getarg( 0,0 ); .@map$ = getarg( 1,"" ); if ( .@type == 0) { // woe fe setarray .@item_master, 30206,2; setarray .@item_member, 30206,1; } else { // woe se setarray .@item_master, 30206,2; setarray .@item_member, 30206,1; } .@item_master_size = getarraysize( .@item_master ) - 1; .@item_member_size = getarraysize( .@item_member ) - 1; if ( .@map$ != "" ) { .@gid = getcastledata( .@map$,1 ); if ( .@gid > 0 ) { getguildmember .@gid,1; getguildmember .@gid,2; .@master_id = getcharid( 3, getguildmaster( .@gid ) ); while ( .@i < $@guildmembercount ) { .@x = 0; if ( isloggedin( $@guildmemberaid[.@i],$@guildmembercid[.@i] ) ) { if ( $@guildmemberaid[.@i] == .@master_id ) { while ( .@x < .@item_master_size ) { if(!checkvending(strcharinfo(0,$@guildmembercid[.@i]))) getitem .@item_master[.@x],.@item_master[.@x+1],$@guildmemberaid[.@i]; .@x += 2; } } else { while ( .@x < .@item_member_size ) { if(!checkvending(strcharinfo(0,$@guildmembercid[.@i]))) getitem .@item_member[.@x],.@item_member[.@x+1],$@guildmemberaid[.@i]; .@x += 2; } } } .@i++; } } } return; } Edited March 2, 2018 by Keitenai Quote
0 Nero Posted March 6, 2018 Author Posted March 6, 2018 On 3/2/2018 at 7:44 PM, Keitenai said: try this @Nero: - script guild_vs1s2 -1,{ OnAgitEnd: callsub( L_reward,0, "guild_vs1" ); end; OnAgitEnd2: callsub( L_reward,1, "guild_vs1" ); end; L_reward: .@type = getarg( 0,0 ); .@map$ = getarg( 1,"" ); if ( .@type == 0) { // woe fe setarray .@item_master, 30206,2; setarray .@item_member, 30206,1; } else { // woe se setarray .@item_master, 30206,2; setarray .@item_member, 30206,1; } .@item_master_size = getarraysize( .@item_master ) - 1; .@item_member_size = getarraysize( .@item_member ) - 1; if ( .@map$ != "" ) { .@gid = getcastledata( .@map$,1 ); if ( .@gid > 0 ) { getguildmember .@gid,1; getguildmember .@gid,2; .@master_id = getcharid( 3, getguildmaster( .@gid ) ); while ( .@i < $@guildmembercount ) { .@x = 0; if ( isloggedin( $@guildmemberaid[.@i],$@guildmembercid[.@i] ) ) { if ( $@guildmemberaid[.@i] == .@master_id ) { while ( .@x < .@item_master_size ) { if(!checkvending(strcharinfo(0,$@guildmembercid[.@i]))) getitem .@item_master[.@x],.@item_master[.@x+1],$@guildmemberaid[.@i]; .@x += 2; } } else { while ( .@x < .@item_member_size ) { if(!checkvending(strcharinfo(0,$@guildmembercid[.@i]))) getitem .@item_member[.@x],.@item_member[.@x+1],$@guildmemberaid[.@i]; .@x += 2; } } } .@i++; } } } return; } Im having error in this one [Error]: script error in file 'npc/rage/koe.txt' line 158 column 39 parse_callfunc: expected ')' to close argument list 155: if ( isloggedin( $@guildmemberaid[.@i],$@guildmembercid[.@i] ) ) { 156: if ( $@guildmemberaid[.@i] == .@master_id ) { 157: while ( .@x < .@item_master_size ) { * 158: if(!checkvending(strcharinfo(0,$@guildmembercid[.@i]))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ 159: getitem .@item_master[.@x],.@item_master[.@x+1],$@guildmemberaid[.@i]; 160: .@x += 2; 161: } if(!checkvending(strcharinfo(0,$@guildmembercid Quote
0 Keitenai Posted March 12, 2018 Posted March 12, 2018 (edited) 1 hour ago, Nero said: Nid help everyone Check your whole script. i'm not getting your error upon testing. Try making a separate txt file for the "guild_vs1s2" script so that you can trace where exactly is your missing ")" Edited March 12, 2018 by Keitenai Quote
0 Emistry Posted April 5, 2018 Posted April 5, 2018 in Herc it use 3 parameters https://github.com/HerculesWS/Hercules/blob/stable/doc/script_commands.txt#L2376-L2384 *strcharinfo(<type>{, <default value>{, <GID>}}) This function will return either the name, party name or guild name for the invoking character. Whatever it returns is determined by type. (0) PC_NAME - Character's name. (1) PC_PARTY - The name of the party they're in if any. (2) PC_GUILD - The name of the guild they're in if any. (3) PC_MAP - The name of the map the character is in. (4) PC_CLAN - The name of the clan they're in if any. Quote
Question
Nero
How can i restrict them from getting reward in this script:
- script guild_vs1s2 -1,{ OnAgitEnd: callsub( L_reward,0, "guild_vs1" ); end; OnAgitEnd2: callsub( L_reward,1, "guild_vs1" ); end; L_reward: .@type = getarg( 0,0 ); .@map$ = getarg( 1,"" ); if ( .@type == 0) { // woe fe setarray .@item_master, 30206,2; setarray .@item_member, 30206,1; } else { // woe se setarray .@item_master, 30206,2; setarray .@item_member, 30206,1; } .@item_master_size = getarraysize( .@item_master ) - 1; .@item_member_size = getarraysize( .@item_member ) - 1; if ( .@map$ != "" ) { .@gid = getcastledata( .@map$,1 ); if ( .@gid > 0 ) { getguildmember .@gid,1; getguildmember .@gid,2; .@master_id = getcharid( 3, getguildmaster( .@gid ) ); while ( .@i < $@guildmembercount ) { .@x = 0; if ( isloggedin( $@guildmemberaid[.@i],$@guildmembercid[.@i] ) ) { if ( $@guildmemberaid[.@i] == .@master_id ) { while ( .@x < .@item_master_size ) { getitem .@item_master[.@x],.@item_master[.@x+1],$@guildmemberaid[.@i]; .@x += 2; } } else { while ( .@x < .@item_member_size ) { getitem .@item_member[.@x],.@item_member[.@x+1],$@guildmemberaid[.@i]; .@x += 2; } } } .@i++; } } } return; }
Where to put this one if( ( checkvending() == 2 && !.autotrade ) ?
11 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.