Jump to content

d706109

Members
  • Posts

    4
  • Joined

  • Last visited

Posts posted by d706109

  1. Hi Guys,

    I made a Freebies, using the Mac address script by Brian but I am having errors and couldn't find a way to make it smoothly.

    Please refer to my attachment, I would gladly appreciate any help.

     

    prontera,160,187,4    script    Freedom-RO for Freebies    123,{
        function get_MAC_variable;
        function set_MAC_variable;
        query_sql "SELECT last_mac FROM login WHERE account_id="+ getcharid(3), @my_MAC$;
        
        if (get_MAC_variable("$#lockout") > 0) {
            mes "I already gave items to someone from your MAC address.";
        } else {
            if (!checkweight(909,1)) {
                mes "You are overweight or carrying too many items.";
            } else {
                mes "[Hello, so you left your previous server?]";
                mes "[Here in Freedom-RO, all of the Game Masters went on being a normal player as well.]";
                mes "[That's why we know that new players should have item of what they needed.]";
                mes "[ It is up to you to decide as to what server you will be staying, we're just here serving you and promising that we can be successful]";
                mes "[I can give you a free gift based on your future job.]";
                mes "[Please choose the correct item for the future job]";
        next;
        if(!#Freebie) {
            mes "Select one:";
            next;
            switch(select("Lord Knight:High Wizard:Sniper:Champion:Creator:Assasin Cross:Paladin:Priest:Star Gladiator:Gunslinger:Clown")) {
                case 1:
                getitem2 30000,1,2,7,0,0,0,0,0;
                getitem2 30001,1,2,7,0,0,0,0,0;
                getitem2 30002,1,2,7,0,0,0,0,0;
                getitem2 30003,1,2,7,0,0,0,0,0;
                getitem2 1505,1,1,7,0,0,0,0,0;
                getitem 2830,2;
                getitem 2462,1;
                getitem 2831,2;
                getitem 30005,1;
                getitem 30007,1;
                getitem 30008,1;
                getitem 674,10;//Item for Lord Knight
                    set #Freebie, 1;
                    warp "prontera", 150, 150;
                    savepoint "prontera", 150, 150;
                    end;
                case 2:
                getitem2 30000,1,2,7,0,0,0,0,0;
                getitem2 30001,1,2,7,0,0,0,0,0;
                getitem2 30002,1,2,7,0,0,0,0,0;
                getitem2 30003,1,2,7,0,0,0,0,0;
                getitem2 1505,1,1,7,0,0,0,0,0;
                getitem 2830,2;
                getitem 2462,1;
                getitem 2831,2;
                getitem 30005,1;
                getitem 30007,1;
                getitem 30008,1;
                getitem 674,10;//Item for High Wizard
                    set #Freebie, 1;
                    warp "prontera", 150, 150;
                    savepoint "prontera", 150, 150;
                    end;
                case 3:
                getitem2 30000,1,2,7,0,0,0,0,0;
                getitem2 30001,1,2,7,0,0,0,0,0;
                getitem2 30002,1,2,7,0,0,0,0,0;
                getitem2 30003,1,2,7,0,0,0,0,0;
                getitem2 1505,1,1,7,0,0,0,0,0;
                getitem 2830,2;
                getitem 2462,1;
                getitem 2831,2;
                getitem 30005,1;
                getitem 30007,1;
                getitem 30008,1;
                getitem 674,10;//Item for Sniper
                    set #Freebie, 1;
                    warp "prontera", 150, 150;
                    savepoint "prontera", 150, 150;
                    end;
                case 4:
                getitem2 30000,1,2,7,0,0,0,0,0;
                getitem2 30001,1,2,7,0,0,0,0,0;
                getitem2 30002,1,2,7,0,0,0,0,0;
                getitem2 30003,1,2,7,0,0,0,0,0;
                getitem2 1505,1,1,7,0,0,0,0,0;
                getitem 2830,2;
                getitem 2462,1;
                getitem 2831,2;
                getitem 30005,1;
                getitem 30007,1;
                getitem 30008,1;
                getitem 674,10;//Item for Champion
                    set #Freebie, 1;
                    warp "prontera", 150, 150;
                    savepoint "prontera", 150, 150;
                    break;
                case 5:
                getitem2 30000,1,2,7,0,0,0,0,0;
                getitem2 30001,1,2,7,0,0,0,0,0;
                getitem2 30002,1,2,7,0,0,0,0,0;
                getitem2 30003,1,2,7,0,0,0,0,0;
                getitem2 1505,1,1,7,0,0,0,0,0;
                getitem 2830,2;
                getitem 2462,1;
                getitem 2831,2;
                getitem 30005,1;
                getitem 30007,1;
                getitem 30008,1;
                getitem 674,10;//Item for Creator
                    set #Freebie, 1;
                    warp "prontera", 150, 150;
                    savepoint "prontera", 150, 150;
                    end;    
                case 6:
                getitem2 30000,1,2,7,0,0,0,0,0;
                getitem2 30001,1,2,7,0,0,0,0,0;
                getitem2 30002,1,2,7,0,0,0,0,0;
                getitem2 30003,1,2,7,0,0,0,0,0;
                getitem2 1505,1,1,7,0,0,0,0,0;
                getitem 2830,2;
                getitem 2462,1;
                getitem 2831,2;
                getitem 30005,1;
                getitem 30007,1;
                getitem 30008,1;
                getitem 674,10;//Item for Assasin Cross
                    set #Freebie, 1;
                    warp "prontera", 150, 150;
                    savepoint "prontera", 150, 150;
                case 7:
                    getitem 13758,1;
                    getitem 969,20;
                    getitem 1108,1;
                    getitem 2104,1;
                    getitem 4043,4;//Item for Paladin
                    set #Freebie, 1;
                    warp "prontera", 150, 150;
                    savepoint "prontera", 150, 150;
                case 8:
                getitem2 30000,1,2,7,0,0,0,0,0;
                getitem2 30001,1,2,7,0,0,0,0,0;
                getitem2 30002,1,2,7,0,0,0,0,0;
                getitem2 30003,1,2,7,0,0,0,0,0;
                getitem2 1505,1,1,7,0,0,0,0,0;
                getitem 2830,2;
                getitem 2462,1;
                getitem 2831,2;
                getitem 30005,1;
                getitem 30007,1;
                getitem 30008,1;
                getitem 674,10;//Item for Priest
                    set #Freebie, 1;
                    warp "prontera", 150, 150;
                    savepoint "prontera", 150, 150;
                case 9:
                getitem2 30000,1,2,7,0,0,0,0,0;
                getitem2 30001,1,2,7,0,0,0,0,0;
                getitem2 30002,1,2,7,0,0,0,0,0;
                getitem2 30003,1,2,7,0,0,0,0,0;
                getitem2 1505,1,1,7,0,0,0,0,0;
                getitem 2830,2;
                getitem 2462,1;
                getitem 2831,2;
                getitem 30005,1;
                getitem 30007,1;
                getitem 30008,1;
                getitem 674,10;//Item for Star Gladiator
                    set #Freebie, 1;
                    warp "prontera", 150, 150;
                    savepoint "prontera", 150, 150;
                case 10:
                getitem2 30000,1,2,7,0,0,0,0,0;
                getitem2 30001,1,2,7,0,0,0,0,0;
                getitem2 30002,1,2,7,0,0,0,0,0;
                getitem2 30003,1,2,7,0,0,0,0,0;
                getitem2 1505,1,1,7,0,0,0,0,0;
                getitem 2830,2;
                getitem 2462,1;
                getitem 2831,2;
                getitem 30005,1;
                getitem 30007,1;
                getitem 30008,1;
                getitem 674,10;//Item for Gunslinger
                    set #Freebie, 1;
                    warp "prontera", 150, 150;
                    savepoint "prontera", 150, 150;
                    end;
                case 11:
                getitem2 30000,1,2,7,0,0,0,0,0;
                getitem2 30001,1,2,7,0,0,0,0,0;
                getitem2 30002,1,2,7,0,0,0,0,0;
                getitem2 30003,1,2,7,0,0,0,0,0;
                getitem2 1505,1,1,7,0,0,0,0,0;
                getitem 2830,2;
                getitem 2462,1;
                getitem 2831,2;
                getitem 30005,1;
                getitem 30007,1;
                getitem 30008,1;
                getitem 674,10;//Item for Clown
                    set #Freebie, 1;
                    warp "prontera", 150, 150;
                    savepoint "prontera", 150, 150;
                    end;
                    
                }
                close;
        }
       mes "[ROFL! Are you kidding me right now Bro?]";
       mes "You already received your freebies!";
       close;
     
        OnInit:
        waitingroom "Get your freebies here ! ",0;
        end;
    }
     
        function get_MAC_variable {
            // $#variable = MAC variable
            set .@varname$, strtolower(getarg(0, "null"));
            set .@is_string, (charat(.@varname$, getstrlen(.@varname$)-1) == "$");
            if (query_sql("SELECT `value` FROM `mac_reg_value` WHERE `mac`='"+ @my_MAC$ +"' AND `str`='"+ escape_sql(.@varname$) +"'", .@value$)) {
                return (.@is_string ? .@value$ : atoi(.@value$));
            } else {
                return (.@is_string ? "" : 0);
            }
        }
        
        function set_MAC_variable {
            set .@varname$, strtolower(getarg(0, "null"));
            set .@is_string, (charat(.@varname$, getstrlen(.@varname$)-1) == "$");
            set .@value$, getarg(1, (.@is_string ? "" : 0));
            // trim the trailing "$" so name validation is easier
            if (.@is_string) set .@varname$, substr(.@varname$, 0,getstrlen(.@varname$) -1);
            
            // validate variable name
            if (.@varname$ == "null") {
                debugmes "set_MAC_variable - missing variable name";
                end;
            } else if (getstrlen(.@varname$) < 3 || substr(.@varname$,0,1) != "$#" ) {
                debugmes "set_MAC_variable - MAC variables must start with $#";
                end;
            }
            for (set .@i,2; .@i < getstrlen(.@varname$); set .@i,.@i+1) {
                if (compare("abcdefghijklmnopqrstuvwxyz0123456789_", substr(.@varname$, .@i,.@i)) == 0) {
                    debugmes "set_MAC_variable - variable names can only contain '_' and alphanumeric characters";
                    end;
                }
            }
            
            // re-add the trailing "$"
            if (.@is_string) set .@varname$, .@varname$ + "$";
            
            // check max lengths
            if (getstrlen(.@varname$) > 255) {
                debugmes "set_MAC_variable - variable name longer than 255 characters";
                end;
            }
            if (.@is_string && getstrlen(.@value$) > 255) {
                debugmes "set_MAC_variable - string value longer than 255 characters";
                end;
            } else if (!.@is_string && getstrlen(.@value$) > 9) {
                query_sql "SELECT ('"+ escape_sql(.@value$) +"' BETWEEN -2147483648 AND 2147483647)", .@valid_int;
                if (!.@valid_int) {
                    debugmes "set_MAC_variable - integer overflow detected";
                    end;
                }
            }
            
            if ((.@is_string && .@value$=="") || (!.@is_string && .@value$=="0")) {
                // value of "" or 0 --> delete variable
                query_sql "DELETE FROM `mac_reg_value` WHERE `mac`='"+ @my_MAC$ +"' AND `str`='"+ escape_sql(.@varname$) +"'";
            } else {
                // store the variable!!
                query_sql "REPLACE INTO `mac_reg_value` (`mac`,`str`,`value`) VALUES ('"+@my_MAC$+"', '"+ escape_sql(.@varname$) +"', '"+ (.@is_string ? escape_sql(.@value$) : atoi(.@value$)) +"')";
            }
            return;
        }
    }
    
×
×
  • Create New...