viewing paste Unknown #38603 | Text

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
//===== Custom Script ===========================================================
//= Promotional Codes
//===== By: =====================================================================
//= Arzzzae
//===== Current Version: ========================================================
//= 1.0 Arzzzae
//= 2.3 Haikenz / Thor
//===== Compatible With: ========================================================
//= Latest svn
//===== Description: ============================================================
//= Adds 2 custom atcommands. @claim for players to claim
//= promotional code created by Game Masters. @code is for
//= administrators to add/view/delete promotional codes.
//===== Additional Comments: ====================================================
//= 1.0 - Initial Release.
//= 2.0 - SQL Table with confirmed and close Code
//= 2.1 - Code can be used only from one Player or every Account once time.
//= 2.2 - Code can store Text from 4-10 length.
//= 2.3 - Corrigido e Traduzido para o brA
//===============================================================================
//SQL for DBmain
/*
DROP TABLE IF EXISTS `reward_codes`;
CREATE TABLE IF NOT EXISTS `reward_codes` (
  `code` VARCHAR(10) NOT NULL DEFAULT '',
  `nameid` INT(11) UNSIGNED NOT NULL DEFAULT '0',
  `item_name` VARCHAR(45) NOT NULL DEFAULT '',
  `amount` SMALLINT(6) UNSIGNED NOT NULL DEFAULT '0',
  `time_created` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
  `redeem_time` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
  `account_id` INT(11) UNSIGNED NOT NULL DEFAULT '0',
  `confirmed` INT(11) UNSIGNED NOT NULL DEFAULT '0',
  PRIMARY KEY (`code`)
) ENGINE=MYISAM;
*/
// SQL for DBlog
/*
DROP TABLE IF EXISTS `rewardlogs`;
CREATE TABLE `rewardlogs` (
`account_id` INT( 10 ) NOT NULL ,
`code` VARCHAR( 10 ) NOT NULL
) ENGINE = InnoDB;
*/
//===============================================================================
 
-       script  promoclaim      -1,{
 
OnInit:
        bindatcmd "codigo",strnpcinfo(3)+"::OnClaim";
        bindatcmd "code",strnpcinfo(3)+"::OnEditCode",99,0;
        end;
       
OnClaim:
        mes "^FF0000 Digite o código promocional.";
        input .@pc$;
        close2;
 
                if ( query_sql("SELECT nameid,amount FROM `reward_codes` WHERE `code`='"+escape_sql(.@pc$)+"'", .@item,.@amt) == 0) {
                        dispbottom "Código promocional inválido.";
                        end;
                        }                              
                        else if (query_sql("SELECT code,confirmed FROM `reward_codes` WHERE `code`='"+escape_sql(.@pc$)+"' AND `confirmed`='1'")) {
                        dispbottom "Este código promocional já foi usado.";
                        end;
                        }
                        else if (query_logsql("SELECT account_id,code FROM `rewardlogs` WHERE `account_id`='"+getcharid(3)+"' AND `code`='"+escape_sql(.@pc$)+"'")) {
                        dispbottom "Você já usou este código promocional.";
                        end;
                        }
                        else if (query_sql("SELECT code,confirmed FROM `reward_codes` WHERE `code`='"+escape_sql(.@pc$)+"' AND `confirmed` >= '2'")) {
                        getitem .@item,.@amt;
                        dispbottom "Código promocional ativado com sucesso.";
                        query_sql("update `reward_codes` SET `redeem_time`=NOW(),`account_id`='"+getcharid(3)+"', `confirmed` = `confirmed` + 1 WHERE `code`='"+escape_sql(.@pc$)+"'");
                        query_logsql("INSERT INTO `rewardlogs` (code,account_id) VALUES ('"+.@pc$+"', "+getcharid(3)+")");
                        end;
                        }                      
                        else {
                        getitem .@item,.@amt;
                        dispbottom "Código promocional ativado com sucesso.";
                        query_sql( "UPDATE `reward_codes` SET `redeem_time`=NOW(),`account_id`='"+getcharid(3)+"',`confirmed`='1' WHERE `code` = " +escape_sql(.@pc$) );
                        query_logsql("INSERT INTO `rewardlogs` (code,account_id) VALUES ('"+.@pc$+"', "+getcharid(3)+")");
                        end;
                        }
                               
OnEditCode:
        menu "Configurar um novo código promocional",ncode,"Ver códigos existentes",vcode,"Excluir códigos existentes",dcode,"Cancelar",cancel;
       
ncode:
               
        set .@clengthmin,4; //Promotional Code Length
        set .@clengthmax,10; //Promotional Code Length
               
                input .@pcode$;
                        if (getstrlen(.@pcode$) < .@clengthmin) {
                                dispbottom "Os códigos devem ter 4 caracteres no mínimo.";
                                end;
                                }
                        if (getstrlen(.@pcode$) > .@clengthmax) {
                                dispbottom "Os códigos não podem ter mais de 10 caracteres.";
                                end;
                                }
                        mes "Inserir ^FF0000"+.@pcode$+"^000000 como novo código.";
                        mes "Você tem certeza?";
                        next;
                        if(select("Sim:Não, obrigado")==2) close;
                        query_sql ("SELECT COUNT(code) FROM `reward_codes` WHERE `code`='"+escape_sql(.@pcode$)+"'", .@pcode_exists);
                        if (.@pcode_exists) {
                                dispbottom "Desculpe, esse código já existe.";
                                end;
                        }
                        mes "Digite o ID item da recompensa, para os jogadores que introduziram o código.";
                        input .@reward;
                        next;
                        if (.@reward == 0) {
                                dispbottom "Desculpe, o ID do item é inválido.";
                                close;
                        }
                        set .@iname$, getitemname(.@reward);
                        mes "Número de item ^FF0000"+.@reward+"^000000";
                        mes "é equivalente a ^FF0000"+.@iname$+"^000000.";
                        mes "Você tem certeza?";
                        next;
                        if(select("Sim:Não, obrigado")==2) close;
                        mes "Quantidade: ^FF0000"+.@iname$+"^000000.?";
                        input .@amount;
                        next;
                        if (.@amount == 0) {
                                dispbottom "Desculpe, esse é um número de valor inválido.";
                                close;
                        }
                       
                        mes "Você tem certeza?";
                        next;
                        if(select("Sim:Não, obrigado")==2) close;        
                        query_sql ("INSERT INTO `reward_codes` (code,nameid,item_name,amount,time_created,redeem_time,account_id,confirmed) VALUES ('"+.@pcode$+"', "+.@reward+", '"+.@iname$+"', "+.@amount+", NOW(), '0000-00-00 00:00:00', '0', '0')");
                        next;
                        mes "Código para mais de 1 uso?";
                        if(select("Sim:Não")==2) close;
                        dispbottom "Código promocional ^FF0000"+.@pcode$+" ^000000está ativado e a recompensa é ^FF0000"+.@amount+" "+.@iname$+".";
                        query_sql( "UPDATE `reward_codes` SET `confirmed` = '2' WHERE `code`='"+escape_sql(.@pcode$)+"'");
                        close;
       
vcode:
 
                set .@nb, query_sql("SELECT code, item_name, amount, confirmed FROM `reward_codes` ORDER BY time_created DESC LIMIT 20", .@code$, .@nid$, .@amount, .@conf);  
 
                        if (.@nb == 0) {
                        dispbottom "Nenhum código existente.";
                        end;
                        }
                        dispbottom "============================================";
                        dispbottom "===========  CÓDIGOS EXISTENTES  ===========";
                        dispbottom " 0: Aberto     1: Fechado     2: Grátis     ";
                        dispbottom "============================================";
                        for(set .@i,0; .@i < .@nb; set .@i,.@i+1)
                        dispbottom ""+.@code$[.@i]+" (  Reward: "+.@amount[.@i]+" "+.@nid$[.@i]+" ) Used: "+.@conf[.@i]+" ";
                        dispbottom "============================================";
                        end;
                       
dcode:
                input .@dcode$;
                        query_sql ("SELECT COUNT(code) FROM `reward_codes` WHERE `code`='"+escape_sql(.@dcode$)+"'", .@pcode_exists);
                        if (.@pcode_exists) {
                                mes "Deseja excluir esse código?";
                                next;
                                if(select("Sim:Não, obrigado")==2) close;
                               
                                query_sql ("DELETE FROM `reward_codes` WHERE `code`='"+escape_sql(.@dcode$)+"'");
                                dispbottom "Código promocional excluído com êxito.";
                                close;
                        }
                        dispbottom "Código promocional não encontrado.";
                        end;
       
cancel:
                close;
}
Viewed 647 times, submitted by unknown.