Nero Posted February 26, 2018 Group: Members Topic Count: 74 Topics Per Day: 0.02 Content Count: 194 Reputation: 2 Joined: 12/18/11 Last Seen: April 8, 2020 Share 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 Link to comment Share on other sites More sharing options...
0 Keitenai Posted February 26, 2018 Group: Members Topic Count: 18 Topics Per Day: 0.00 Content Count: 98 Reputation: 75 Joined: 12/04/14 Last Seen: December 10, 2024 Share 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 Link to comment Share on other sites More sharing options...
0 Nero Posted February 26, 2018 Group: Members Topic Count: 74 Topics Per Day: 0.02 Content Count: 194 Reputation: 2 Joined: 12/18/11 Last Seen: April 8, 2020 Author Share Posted February 26, 2018 Wow thanks!!! Fast answer! Quote Link to comment Share on other sites More sharing options...
0 Keitenai Posted February 26, 2018 Group: Members Topic Count: 18 Topics Per Day: 0.00 Content Count: 98 Reputation: 75 Joined: 12/04/14 Last Seen: December 10, 2024 Share 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 Link to comment Share on other sites More sharing options...
0 Nero Posted February 26, 2018 Group: Members Topic Count: 74 Topics Per Day: 0.02 Content Count: 194 Reputation: 2 Joined: 12/18/11 Last Seen: April 8, 2020 Author Share 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 Link to comment Share on other sites More sharing options...
0 hendra814 Posted February 26, 2018 Group: Members Topic Count: 59 Topics Per Day: 0.01 Content Count: 1281 Reputation: 170 Joined: 06/12/12 Last Seen: 4 hours ago Share 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 Link to comment Share on other sites More sharing options...
0 Nero Posted February 26, 2018 Group: Members Topic Count: 74 Topics Per Day: 0.02 Content Count: 194 Reputation: 2 Joined: 12/18/11 Last Seen: April 8, 2020 Author Share 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 Link to comment Share on other sites More sharing options...
0 Keitenai Posted March 2, 2018 Group: Members Topic Count: 18 Topics Per Day: 0.00 Content Count: 98 Reputation: 75 Joined: 12/04/14 Last Seen: December 10, 2024 Share 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 Link to comment Share on other sites More sharing options...
0 Nero Posted March 6, 2018 Group: Members Topic Count: 74 Topics Per Day: 0.02 Content Count: 194 Reputation: 2 Joined: 12/18/11 Last Seen: April 8, 2020 Author Share 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 Link to comment Share on other sites More sharing options...
0 Nero Posted March 9, 2018 Group: Members Topic Count: 74 Topics Per Day: 0.02 Content Count: 194 Reputation: 2 Joined: 12/18/11 Last Seen: April 8, 2020 Author Share Posted March 9, 2018 up please help Nid help everyone Quote Link to comment Share on other sites More sharing options...
0 Keitenai Posted March 12, 2018 Group: Members Topic Count: 18 Topics Per Day: 0.00 Content Count: 98 Reputation: 75 Joined: 12/04/14 Last Seen: December 10, 2024 Share 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 Link to comment Share on other sites More sharing options...
0 Emistry Posted April 5, 2018 Group: Forum Moderator Topic Count: 93 Topics Per Day: 0.02 Content Count: 10018 Reputation: 2369 Joined: 10/28/11 Last Seen: Sunday at 05:32 PM Share 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 Link to comment Share on other sites More sharing options...
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 ) ?
Link to comment
Share on other sites
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.