Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //===== Entregador de Itens ====================================
- //= Criado por: Mitsuke (Kero no brAthena)
- //= Créditos: Vianna (Cronus) por ajudar no isloggedin e atoi.
- //===== Descrição: =============================================
- //= Entregador de itens fácil de se utilizar, com funções
- //= práticas como ver todos os characters da conta e escolher em um menu.
- //= Entrega itens para jogadores online ou offline.
- //= (Máximo 127 itens por entrega, pois utiliza arrays e for)
- //==============================================================
- que_avan01.gat,31,41,4 script Entregador de Itens 700,{
- function exit;
- //===== Configuração ===========================================
- //= Nível de GM para utilizar o entregador.
- set .@level,60;
- //= Itens que não poderão ser enviados através do NPC. (Máximo 127)
- setarray .@proibidos[0], 501,502,503,504,505;
- //==============================================================
- if(getgmlevel() < .@level) end;
- mes "[Entregador de Itens]";
- mes "Olá "+strcharinfo(0);
- mes "O que deseja fazer?";
- next;
- if(select("Entregar itens:Sair")== 1)
- {
- mes "[Entregador de Itens]";
- mes "Como deseja entregar itens?";
- next;
- callsub LOGINCHAR, select("Digitando a conta:Digitando o nome do jogador");
- mes "[Entregador de Itens]";
- mes "Qual item deseja entregar?";
- next;
- input .@iditem;
- if(.@iditem == 0 || getitemname(.@iditem) == "null") exit "Item inválido.";
- for(set .@i,0; .@i < getarraysize(.@proibidos); set .@i, .@i+1)
- if(.@iditem == .@proibidos[.@i]) exit "Item bloqueado.";
- next;
- mes "[Entregador de Itens]";
- mes "Digite a quantidade.";
- next;
- input .@qtd;
- if(.@qtd == 0) exit "Quantidade inválida.";
- mes "[Entregador de Itens]";
- mes "Char: "+.ids$[2]+" ("+.ids$[1]+")";
- mes "Item: "+getitemname(.@iditem)+" ("+.@iditem+")";
- mes "Quantidade: "+.@qtd;
- next;
- if(select("Confirmar:Cancelar")== 2) exit "Cancelado.";
- if(isloggedin(atoi(.ids$[0]),atoi(.ids$[1])))
- {
- getitem .@iditem,.@qtd,.ids$[0];
- message .ids$[2],"Você recebeu "+.@qtd+" "+getitemname(.@iditem);
- logmes "'"+strcharinfo(0)+"' entregou "+.@qtd+" '"+getitemname(.@iditem)+"' ("+.@iditem+") para o(a) jogador(a) '"+.ids$[2]+"'";
- exit "Item entregue.";
- }
- else
- {
- query_sql "INSERT INTO `entregador` (`char_id`,`itemid`,`itemqtd`) VALUES ('"+.ids$[1]+"','"+.@iditem+"','"+.@qtd+"')";
- logmes "'"+strcharinfo(0)+"' entregou "+.@qtd+" '"+getitemname(.@iditem)+"' ("+.@iditem+") para o(a) jogador(a) '"+.ids$[2]+"'";
- exit "Item entregue.";
- }
- } else close;
- LOGINCHAR:
- if(getarg(0)==1)
- {
- mes "[Entregador de Itens]";
- mes "Digite a conta do usuário.";
- next;
- input .@conta$;
- query_sql "SELECT `account_id` FROM `login` WHERE `userid`='"+.@conta$+"'",.@accid;
- if(.@accid == 0) exit "A conta não existe.";
- query_sql "SELECT `char_id`,`name` FROM `char` WHERE `account_id`='"+.@accid+"'",.@charids,.@nomes$;
- mes "[Entregador de Itens]";
- mes "Escolha um character.";
- next;
- for(set .@i,0; .@i < getarraysize(.@nomes$); set .@i, .@i+1)
- set .@menu$, .@menu$ + .@nomes$[.@i] + ":";
- set .@n, select(.@menu$)-1;
- setarray .ids$[0], .@accid,.@charids[.@n],.@nomes$[.@n];
- return;
- }
- else
- {
- mes "[Entregador de Itens]";
- mes "Digite o character.";
- next;
- input .@char$;
- query_sql "SELECT `char_id`,`account_id`,`name` FROM `char` WHERE `name`='"+.@char$+"'",.@charid,.@accid,.@nome$;
- if(.@charid == 0) exit "O character não existe.";
- setarray .ids$[0], .@accid,.@charid,.@nome$;
- return;
- }
- OnPCLoginEvent:
- query_sql "SELECT `itemid`,`itemqtd` FROM `entregador` WHERE `char_id`='"+getcharid(0)+"'",.@iditem,.@qtditem;
- if(.@iditem == 0) end;
- else
- {
- for(set .@i,0; .@i < getarraysize(.@iditem); set .@i, .@i+1)
- getitem .@iditem[.@i],.@qtditem[.@i];
- query_sql "DELETE FROM `entregador` WHERE `char_id`='"+getcharid(0)+"'";
- end;
- }
- function exit {
- mes "[Entregador de Itens]";
- mes getarg(0);
- close;
- }
- }
Add Comment
Please, Sign In to add comment