viewing paste Unknown #50058 | C

Posted on the
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269
// Copyrights Notice
// ========================================================
// This work is licensed under the Creative Commons Attribution-NonCommercial 4.0 International License.
// To view a copy of this license, visit http://creativecommons.org/licenses/by-nc/4.0/.
// ========================================================
// Introduction
// ========================================================
// Copyrights 2015-2020 Jordan Lacandula All rights reserved
// ========================================================
// Script: Guild Package Giver/Redeemer NPC
// ========================================================
// Programmer: Jordan Lacandula
// Website: For more info, visit http://jordanlacandula.tk/
// ========================================================
// Bug Report/Job Request
// ========================================================
// Email: jordanlacandula@hotmail.com
// Skype: jordan.lacandula
// ========================================================
// Features/Includes
// ========================================================
// SQL Database Support
// used table names `gpack_code` and `guild_package`
// Duplicate IP Checking (also supports same IP, see below)
// Account Checking
// Online Status Checker
// Easy to change Package items for guild master
// Easy to change Package items for guild member
// Minimum Guild members Checking (default: 8)
// ========================================================
// Multiple IP ( Use gpack code to bypass IP Checking )
// ========================================================
// End Introduction
// ========================================================
 
prontera,155,178,5      script  Guild Master    421,{
 
 
        if( getgmlevel() == 99 ){
                set .c_length,10;
                setarray .g_code$[0],"A","B","C","D","E","F","G","H","I","J","K","L",                           "M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","0","1","2","3","4","5","6","7","8","9";
                mes "What can i do for you Sire?";
                switch(select("Nothing:View Code List:^FF0000 Add Package Code^000000")){
                case 1:
                        break;
                case 2:
                        query_sql("SELECT `guild_id`, `gcode`,`status` FROM `gpack_code` ORDER BY `status` DESC",.@glist,.@codeview$,.@stts);
                        dispbottom "Status | GPack Code";
                        for(set @ei,0; @ei < getarraysize(.@codeview$); set @ei,@ei + 1){
                                query_sql("SELECT `name` FROM `guild` WHERE `guild_id` = '"+.@glist[@ei]+"'",.@gn$);
                                dispbottom ""+.@stts[@ei]+" | "+.@codeview$[@ei]+"  |  "+.@gn$+"";
                        }
                        close;
                        break;
                case 3:
                        next;
                        mes "Creating New Code for Guild: ";
                        input .@rguild$;
                        set .@cr,query_sql("SELECT `guild_id` FROM `guild` WHERE `name` = '"+.@rguild$+"'",.@g);
                        if(.@cr <= 0){
                                mes "^FF0000 Guild Not Found!^000000";
                                close;
                        }
 
                        for(set @i, 0; @i< .c_length; set @i, @i+1)
                        {
                                set @random_char, rand(0,(getarraysize(.g_code$)-1));
                                set @new_code$, @new_code$ + .g_code$[@random_char];
                        }
                        query_sql "INSERT INTO `gpack_code` (`guild_id`, `gcode`, `status`) VALUES ('"+.@g+"', '"+@new_code$+"', '0')";
                        set @new_code$, "";
                        next;
                        mes "Added Code for Guild";
                        mes "^FF0000 "+.@rguild$+"^000000";
                        close;
                        break;
                }
                mes "Proceeding to Player View";
                next;
        }
 
        set .@hascode,0;
        set .@code$,"null";
        setarray .@gmaster[0],607,1,504,1; //gmaster pack
        setarray .@gmember[0],607,10,504,1;     //gmember pack
       
        if(getcharid(2) == 0){
                mes "you're not member of a guild";
                close;
        }
        query_sql("SELECT `master` FROM `guild` WHERE `guild_id` = '"+getcharid(2)+"'",.@gid$);
 
        if(.@gid$ != strcharinfo(0)){
                mes "Only Guild Masters can claim the packages";
                close;
        }
 
        mes "^FF0000 Guild Package^000000";
        mes "Greetings ^FF0000 "+strcharinfo(0)+"^000000";
        mes "Master of the Guild^FF0000 "+strcharinfo(2)+"^000000.";
        next;
        mes "Do you have code?";
        switch(select("No:Yes")){
        case 1:
                break;
        case 2:
                input .@code$;
                mes "Verifying Code";
                mes "Please Wait....";
 
                set .@csr,query_sql("SELECT `gcode` FROM `gpack_code` WHERE `gcode` = '"+.@code$+"'");
                if ( .@csr <= 0 ){
                        next;
                        mes "^FF0000 Invalid Code^000000";
                        mes "Codes are Case-Sensitive, Please make sure of it.";
                        close;
                }
 
                query_sql("SELECT `status` FROM `gpack_code` WHERE `gcode` = '"+.@code$+"'",.@used);
                if( .@used != 0 ){
                        mes "Guild Package code has been used already";
                        close;
                }
 
                set .@hascode,1;
                break;
        }
        next;
               
        mes "Do you wish to claim your ^FF0000 Guild Package^000000 ?";
        switch(select("No:Yes")){
        case 1:
                close;
                break;
        case 2:
                next;
                mes "^FF0000 CLAIM GUILD PACKAGE^000000 ";
                mes "Master will receive the following:";
                for ( set .@i, 0; .@i < getarraysize(.@gmaster); set .@i, .@i + 2 )
                mes .@gmaster[.@i+1] + " x " + getitemname(.@gmaster[.@i]);
                next;
                mes "^FF0000 CLAIM GUILD PACKAGE^000000 ";
                mes "Members will receive the following:";
                for ( set .@i, 0; .@i < getarraysize(.@gmember); set .@i, .@i + 2 )
                mes .@gmember[.@i+1] + " x " + getitemname(.@gmember[.@i]);
                next;
                mes "[^FF0000 Warning^000000 ]";
                mes "Every one in your Guild can only claim Once regarding of their IP.";
                mes "Only Online characters can claim a Guld Package";
                mes "No special treatments if characters go offline while in process of claiming";
                next;
                mes "^FF0000 NOTE:^000000 You can only claim once.";
                mes "^FF0000 NOTE:^000000 All members should be online.";
                mes "^FF0000 NOTE:^000000 Make sure everyone have lots of Space in their inventory.";
                next;
                mes "^FF0000 CLAIM GUILD PACKAGE^000000 ";
                mes "Claim now?";
                switch(select("No:Yes")){
                case 1:
                        close;
                        break;
                case 2:
                        next;
                        set .@mm,3;     //required minimum members
                        setarray .@claimerlist$[0],"null";
                        set .@resultcount,query_sql("SELECT `name` FROM `guild_member` WHERE `guild_id` = '"+getcharid(2)+"'",.@claimerlist$);
                        if( .@resultcount < .@mm ){
                                mes "Should have Total of "+.@mm +" members.";
                                close;
                                break;
                        }
 
                // enforce IP check when code is not available
                if( .@hascode == 0 ){
                        setarray .@iplist$[0],"null";
                        // same ip check
                        for( set .@i,0; .@i < .@resultcount; set .@i,.@i+1 ){
                                query_sql("SELECT `account_id` FROM `char` WHERE `name` = '"+.@claimerlist$[.@i]+"'",.@z);
                                query_sql("SELECT `last_ip` FROM `login` WHERE `account_id` = '"+.@z+"'",.@il$);
                                //check for duplicates
                                for( set .@j,0; .@j < .@i; set .@j,.@j+1 ){
                                        if( .@il$ == .@iplist$[.@j] ){
                                                mes "^FF0000 Duplicate IP Address^000000";
                                                mes "^FF0000 NOTE:^000000 Each player should have different IP address";
                                                mes "If you should not see this, Please report to admin";
                                                close;
                                        }
                                }
                                //add to list
                                setarray .@iplist$[.@i],.@il$;
                        }
                }
                        for( set .@i,0; .@i < .@resultcount; set .@i,.@i+1 ){
                                //account check
                                query_sql("SELECT `account_id` FROM `char` WHERE `name` = '"+.@claimerlist$[.@i]+"'",.@x);
                                set .@haspack,query_sql("SELECT FROM `guild_package` WHERE `acc_id` = '"+.@x+"'");
                                //ip check
                                query_sql("SELECT `last_ip` FROM `login` WHERE `account_id` = '"+.@x+"'",.@xx);
                                set .@haspack,query_sql("SELECT FROM `guild_package` WHERE `claim_ip` = '"+.@xx+"'");
                                //character name check
                                set .@haspack3,query_sql("SELECT `char_name` FROM `guild_package` WHERE `char_name` = '"+.@claimerlist$[.@i]+"'");
                                if(.@haspack > 0 || .@haspack2 > 0 || .@haspack3 > 0){
                                        mes "One or more in your member(s) has already received the package.";
                                        close;
                                        break;
                                }
                        }
 
                        // TODOs: check if master and all members are online
                        set .@onlinechk,query_sql("SELECT `name` FROM `guild_member` WHERE `guild_id` = '"+getcharid(2)+"' AND `online` = 0");
                        if( .@onlinechk > 0 ){
                                mes "Make sure all members are online";
                                close;
                                break;
                        }
 
                        for ( set .@j,0; .@j < .@resultcount; set .@j,.@j+1 ){
                                if( .@claimerlist$[.@j] == strcharinfo(0)){
                                        for ( set .@i, 0; .@i < getarraysize(.@gmaster); set .@i, .@i + 2 )
                                        getitem .@gmaster[.@i], .@gmaster[.@i+1];
                                }else{
                                        for ( set .@i, 0; .@i < getarraysize(.@gmember); set .@i, .@i + 2 )
                                        atcommand "#item "+.@claimerlist$[.@j]+" "+.@gmember[.@i]+" "+.@gmember[.@i+1]+"";
                                }
                                set .@acid,"null";
                                query_sql("SELECT `account_id` FROM `guild_member` WHERE `name` = '"+.@claimerlist$[.@j]+"'",.@acid);
                                query_sql("SELECT `last_ip` FROM `login` WHERE `account_id` = '"+.@acid+"'",.@c_ip$);
                                query_sql("SELECT `last_mac` FROM `login` WHERE `account_id` = '"+.@acid+"'",.@c_mac$);
                                query_sql("SELECT `last_cpu` FROM `login` WHERE `account_id` = '"+.@acid+"'",.@c_cpu$);
                                query_sql("SELECT `last_motherboard` FROM `login` WHERE `account_id` = '"+.@acid+"'",.@c_mb$);
                                query_sql("SELECT `char_id` FROM `char` WHERE `name` = '"+.@claimerlist$[.@j]+"'",.@mem_id);
 
                                query_sql "INSERT INTO `guild_package` (`acc_id`, `char_id`, `char_name`, `guild_id`, `guild_name`, `guild_master`, `claim_ip`, `claim_mac`, `claim_cpu`, `claim_motherboard`) VALUES ('"+.@acid+"','"+.@mem_id+"','"+.@claimerlist$[.@j]+"','"+getcharid(2)+"','"+strcharinfo(2)+"','"+strcharinfo(0)+"','"+.@c_ip$+"','"+.@c_mac$+"','"+.@c_cpu$+"','"+.@c_mb$+"')";
                        }
                       
                        next;
                        mes "Package has been Distributed.";
                        close2;
                        query_sql("UPDATE `gpack_code` SET `guild_id` = '"+getcharid(2)+"', `status` = '1' WHERE `gcode` = '"+.@code$+"'");
                        announce "The Guild "+strcharinfo(2)+" has Signed Up for war",BC_ALL,0xFF0000;
                        break;
                }
                break;
        }
        switch(rand(1,4)){
        case 1:
                npctalk "Hey you noob, your turn";
                sleep 1000;
                npctalk "Oh you're not noob? Then prove it in WOE";
                break;
        case 2:
                npctalk "Next!";
                break;
        case 3:
                npctalk "NEXT NEXT NEXT, Move Faster";
                break;
        case 4:
                npctalk "No more? Good.";
        }
       
        OnInit:
                waitingroom "Claim Guild Package Here",0;
 
                query_sql "CREATE TABLE IF NOT EXISTS `guild_package` ( `acc_id` INT NOT NULL UNIQUE, `char_id` INT NOT NULL, `char_name` TEXT NOT NULL, `guild_id` INT NOT NULL, `guild_name` TEXT NOT NULL, `guild_master` TEXT NOT NULL, `claim_ip` TEXT NOT NULL, `claim_mac` TEXT NOT NULL, `claim_cpu` TEXT NOT NULL, `claim_motherboard` TEXT NOT NULL ) ENGINE=MyISAM";
 
                query_sql "CREATE TABLE IF NOT EXISTS `gpack_code` (`guild_id` INT NOT NULL, `gcode` VARCHAR(10) NOT NULL, `status` INT NOT NULL ) ENGINE=MyISAM";
        end;
}
 
Viewed 1693 times, submitted by Begin.