// .----------------------------------------------------------.
// . SoulBlaker Scripts Apresenta: .
// . ___________________ .
// . / _____/\______ \ .
// . \_____ \ | | _/ .
// . / \ | | \ .
// . /_______ / |______ / .
// . \/ \/ .
// . [ Cronus Advanced Scripts ] .
// . v1.0 .
// .----------------------------------------------------------.
// ; http://cronus-emulator.com/forum/index.php?showuser=3261 ;
// .----------------------------------------------------------.
// . Script: .
// . Kafra Staff de CashAdmin .
// .----------------------------------------------------------.
// . Por: SoulBlaker Compátivel: Cronus SQL versão: 1.0 .
// .----------------------------------------------------------.
// . Descrição: .
// . Adiciona/Remove Pontos dos Jogadores InGame, sem preci- .
// . do Jogador estiver Online. .
// . .
// . Se o Registro de váriavel não existir, o npc mesmo cria,.
// . OBS: Recomendável utilizar sempre primeiramente o .
// . Comando de Cash no Jogador antes de manusear no .
// . NPC. .
// . .
// . Adiciona/Remove ou Muda Preços dos Itens do CashShop. .
// .----------------------------------------------------------.
// . Changelog da Versão: .
// . - 1.0 Iniciado o NPC. [SoulBlaker] .
// *----------------------------------------------------------*
/*
#
# Table structure for table `kafra_cashadmin`
# Version: 1.0 by SoulBlaker
#
DROP TABLE IF EXISTS `kafra_cashadmin`;
CREATE TABLE `kafra_cashadmin` (
`id` smallint(5) unsigned NOT NULL default '0',
`name` varchar(50) NOT NULL default '',
`price` mediumint(10) unsigned default NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM;
*/
prontera,168,187,4 script Kafra Staff#cashs1 117,{
function Query;
function RelodDataBase;
cutin "kafra_01",2;
if( GetGmLevel() < 99 )
{
mes "^0000CD[ Kafra Staff ]^000000";
mes "Hello ^FF0000" + StrCharInfo(0) + "^000000,";
mes "What do you want?";
next;
Switch( Select("- Check points","- Open CashShop","- Cancel" ) )
{
case 1:
set .@Result, Query("Select",GetCharId(3));
mes "^0000CD[ Kafra Staff ]^000000";
mes "You got a total amount of: ^FF0000" + .@Result + " points^000000.";
break;
case 2:
mes "^0000CD[ Kafra Staff ]^000000";
mes "Good shopping!";
close2;
callcashshop "Kafra Staff#cashs2";
cutin "",255;
end;
case 3:
mes "^0000CD[ Kafra Staff ]^000000";
mes "Very well then.";
break;
}
}
else {
mes "^0000CD[ Kafra Staff ]^000000";
mes "Welcome admin,";
mes "what do you want?";
next;
Switch( Select("- Check points","- Add or Remove points","- Add or Remove Items from shop","- Open CashShop","- Cancel") )
{
case 1:
mes "^0000CD[ Kafra Staff ]^000000";
mes "Please, insert the Account ID that you want to check.";
next;
input .@AccountID;
set .@Consult$, Query("Check",.@AccountID);
if( .@Consult$ == "" )
{
mes "^0000CD[ Kafra Staff ]^000000";
mes "It doesn't exists!";
}
else {
set .@Result,Query("Select",.@AccountID);
mes "^0000CD[ Kafra Staff ]^000000";
mes "^FF0000Account:^000000 "+.@AccountID;
mes " ";
mes "^FF0000Total amount:^000000 "+.@Result;
}
break;
case 2:
mes "^0000CD[ Kafra Staff ]^000000";
mes "Please, insert the Account ID";
next;
input .@AccountID;
set .@Consult$, Query("Check",.@AccountID);
if( .@Consult$ == "" )
{
mes "^0000CD[ Kafra Staff ]^000000";
mes "It doesn't exists!";
mes " ";
mes "^FF0000Make sure that you have added some cash manually to it first!";
mes "Or you can add a register right now^000000";
mes " ";
mes "Do you want to proceed?";
next;
if( Select("- Yes","- Cancel") == 1 )
{
Query("Create",.@AccountID);
set .@Again,Query("Select",.@AccountID);
if( .@Again )
{
// it is not going to happen, so I'm not going to translate xD
mes "^0000CD[ Kafra Staff ]^000000";
mes "Houve algum erro ao Registrar a Conta " + .@AccountID + ".";
mes " ";
mes "Por favor, reporte ao criador do Script 'SoulBlaker'.";
debugmes "Erro ao Registrar a Conta " + .@AccountID + " na tabela de registro de váriaveis global, reporte ao membro '[SoulBlaker]' do fórum eAthena.";
}
else {
mes "^0000CD[ Kafra Staff ]^000000";
mes "Very well, Account ^FF0000" + .@AccountID + "^000000 registered with success.";
}
}
else {
mes "^0000CD[ Kafra Staff ]^000000";
mes "blablabla not needed xD";
}
}
else {
set .@Result, Query("Select",.@AccountID);
mes "^0000CD[ Kafra Staff ]^000000";
mes "Insert the amount of points that you want to Add or Remove";
mes " ";
mes "^FF0000Current amount: " + .@Result + "^000000.";
mes " ";
next;
input .@Amount;
if( .@Amount == 0 )
{
mes "^0000CD[ Kafra Staff ]^000000";
mes "You need to insert a value higher than zero.";
}
else {
mes "^0000CD[ Kafra Staff ]^000000";
mes "Do you want to remove or add those points?";
next;
set .@Type,Select("- Add.","- Remove.");
mes "^0000CD[ Kafra Staff ]^000000";
if( .@Type == 1 )
mes "Would you like to add ^FF0000" + .@Amount + "^000000 points?";
else
mes "Would you like to remove ^FF0000" + .@Amount + "^000000 points?";
mes " ";
mes "^FF0000Current amount:^000000 " + .@Result + ".";
mes " ";
if( .@Type == 1 )
{
set .@Amount, .@Result + .@Amount;
mes "^FF0000Amount after:^000000 " + .@Amount + ".";
}
else {
set .@Amount, .@Result - .@Amount;
mes "^FF0000Amount after:^000000 " + .@Amount + ".";
}
next;
if( Select("- Confirm.","- Cancel") == 1 )
{
Query("Update",.@AccountID,.@Amount);
set .@Status,Query("Select",.@AccountID);
if( .@Type == 1 && .@Status != .@Amount )
{
mes "^0000CD[ Kafra Staff ]^000000";
mes "Me desculpe, mais não foi possível creditar desta conta.";
}
else if( .@Type == 2 && .@Status != .@Amount )
{
mes "^0000CD[ Kafra Staff ]^000000";
mes "Me desculpe, mais não foi possível remover créditos desta conta.";
}
else {
mes "^0000CD[ Kafra Staff ]^000000";
if( .@Type == 1 )
mes "Success!";
else
mes "Success!";
}
}
else {
mes "^0000CD[ Kafra Staff ]^000000";
mes "Very well then.";
}
}
}
break;
case 3:
mes "^0000CD[ Kafra Staff ]^000000";
mes "Muito bem, o que deseja fazer?";
next;
set .@Choose, Select("- Adicionar Itens no CashShop.","- Remover Itens no CashShop.","- Mudar Preço de um Item.","- Ver Informações de Itens no CashShop.");
if( .@Choose == 4 )
{
Query_SQL("SELECT `id`, `name`, `price` FROM `kafra_cashadmin`", .@Consult, .@Name$, .@Price);
for( set .@i,0; .@i < GetArraySize(.@Consult); set .@i, .@i + 1 )
{
mes "^0000FFID:^000000 " + .@Consult[.@i];
mes "^0000FFNome:^000000 " + .@Name$[.@i];
mes "^0000FFPreço:^000000 " + .@Price[.@i];
mes "------------------";
mes " ";
}
}
else {
mes "^0000CD[ Kafra Staff ]^000000";
mes "Muito bem, digite o id do item";
if( .@Choose == 1 )
mes "Que deseja Adicionar.";
else if( .@Choose == 2 )
mes "Que deseja Remover.";
else if( .@Choose == 3 )
mes "Que deseja Mudar o Preço.";
next;
input .@ID;
if( .@Choose == 1 || .@Choose == 3 )
{
mes "^0000CD[ Kafra Staff ]^000000";
mes "Muito bem, digite o preço do Item.";
next;
input .@Price;
}
if( .@Choose == 1 && Query("GetItem",.@ID) )
{
mes "^0000CD[ Kafra Staff ]^000000";
mes "Me desculpe, mais existe um item com";
mes "esta ID no CashShop, você deve remover";
mes "ou editar seus preços para continuar.";
}
else if( ( .@Choose == 2 || .@Choose == 3 ) && !Query("GetItem",.@ID) )
{
mes "^0000CD[ Kafra Staff ]^000000";
mes "Me desculpe, mais não existe um item";
mes "com esta ID no CashShop.";
}
else {
mes "^0000CD[ Kafra Staff ]^000000";
if( .@Choose == 1 )
mes "Tem certeza que Deseja Adicionar este item do CashShop?";
else if( .@Choose == 2 )
mes "Tem certeza que Deseja Remover este item do CashShop?";
else if( .@Choose == 3 )
mes "Tem certeza que Deseja Mudaro Preço deste item do CashShop?";
next;
if( Select("- Yes.","- No") == 1 )
RelodDataBase(.@Choose,.@ID,.@Price);
}
}
break;
case 4:
mes "^0000CD[ Kafra Staff ]^000000";
mes "Good shopping!";
close2;
callcashshop "Kafra Staff#cashs2";
cutin "",255;
end;
case 5:
mes "^0000CD[ Kafra Staff ]^000000";
mes "I'll be there.";
break;
}
}
close2;
cutin "",255;
end;
OnInit:
// InitWaitingRoom Event
waitingroom "Assistente do CashShop",0;
// InitDB Merchant
npccashshopdelitem "Kafra Staff#cashs2",501;
Query_SQL("SELECT `id`, `price` FROM `kafra_cashadmin`",.@ID,.@Price);
for( set .@i,0; .@i < GetArraySize(.@ID); set .@i, .@i + 1 )
npccashshopadditem "Kafra Staff#cashs2",.@ID[.@i],.@Price[.@i];
end;
// ReloadDB Merchant
function RelodDataBase {
if( GetArg(0) == 1 )
{
Query("SetItem",GetArg(1),GetArg(2));
if( Query("GetItem",GetArg(1)) )
{
debugmes "AID: " + GetCharID(3) + ", CID: " + GetCharID(0) + ", adicionou o item ID " + GetArg(1) + " pelo preço " + GetArg(2) + " no Kafra CashShop Admin.";
npccashshopadditem "Kafra Staff#cashs2",GetArg(1),GetArg(2);
dispbottom "Added!";
}
else {
debugmes "AID: " + GetCharID(3) + ", CID: " + GetCharID(0) + ", tentou adicionar o item ID " + GetArg(1) + " pelo preço " + GetArg(2) + " no Kafra CashShop Admin, mais sua tentativa falhou.";
dispbottom "Error while adding!";
}
}
else if( GetArg(0) == 2 )
{
Query("DelItem",GetArg(1));
if( !Query("GetItem",GetArg(1)) )
{
debugmes "AID: " + GetCharID(3) + ", CID: " + GetCharID(0) + ", removeu o item ID " + GetArg(1) + " do Kafra CashShop Admin.";
npccashshopdelitem "Kafra Staff#cashs2",GetArg(1);
dispbottom "Removed!";
}
else {
debugmes "AID: " + GetCharID(3) + ", CID: " + GetCharID(0) + ", removeu o item ID " + GetArg(1) + " do Kafra CashShop Admin, mais sua tentativa falhou.";
dispbottom "Error while removing!";
}
}
else if( GetArg(0) == 3 )
{
Query("ReplacePrice",GetArg(1),GetArg(2));
if( Query("GetPriceInfo",GetArg(1)) == GetArg(2) )
{
debugmes "AID: " + GetCharID(3) + ", CID: " + GetCharID(0) + ", mudou o preço do Item ID " + GetArg(1) + " para " + GetArg(2) + " no Kafra CashShop Admin.";
npccashshopdelitem "Kafra Staff#cashs2",GetArg(1);
npccashshopadditem "Kafra Staff#cashs2",GetArg(1),GetArg(2);
dispbottom "Editado com sucesso, reiniciando item... posto no final da lista de compras.";
}
else {
debugmes "AID: " + GetCharID(3) + ", CID: " + GetCharID(0) + ", tried to change the price of Item ID " + GetArg(1) + " to " + GetArg(2) + " in the Kafra CashShop Admin, but failed.";
dispbottom "Error while editing item.";
}
}
return;
}
// Query Result
function Query {
if( GetArg(0) == "Select" )
{
Query_SQL "SELECT `value` FROM `global_reg_value` WHERE `str`='#CASHPOINTS' AND `account_id`='"+ GetArg(1) +"'", .@Consult;
return (.@Consult);
}
else if( GetArg(0) == "Update" )
{
Query_SQL "UPDATE `global_reg_value` SET `value`="+ GetArg(2) +" WHERE `str`='#CASHPOINTS' AND `account_id`='"+ GetArg(1) +"'";
return;
}
else if( GetArg(0) == "Create" )
{
Query_Sql "INSERT INTO `global_reg_value` VALUES (0, '#CASHPOINTS', 0, 2, " + GetArg(1) + ")";
return;
}
else if( GetArg(0) == "Check" )
{
Query_SQL "SELECT `str` FROM `global_reg_value` WHERE `account_id`='" + GetArg(1) + "'", .@Return$;
return .@Return$;
}
else if( GetArg(0) == "SetItem" )
{
Query_SQL "INSERT INTO `kafra_cashadmin` VALUES (" + GetArg(1) + ", '" + GetItemName(GetArg(1)) + "', " + GetArg(2) + ")";
return;
}
else if( GetArg(0) == "ReplacePrice" )
{
Query_SQL "UPDATE `kafra_cashadmin` SET `price`="+ GetArg(2) +" WHERE `id`='"+ GetArg(1) +"'";
return;
}
else if( GetArg(0) == "DelItem" )
{
Query_SQL "DELETE FROM `kafra_cashadmin` WHERE `id`='"+ GetArg(1) +"'";
return;
}
else if( GetArg(0) == "GetItem" )
{
Query_SQL "SELECT `id` FROM `kafra_cashadmin` WHERE `id`='"+ GetArg(1) +"'",.@Consult;
return (.@Consult);
}
else if( GetArg(0) == "GetPriceInfo" )
{
Query_SQL("SELECT `price` FROM `kafra_cashadmin` WHERE `id`='" + GetArg(1) +"'",.@Consult);
return (.@Consult);
}
else return 0;
}
}
// Floating CashShop
- cashshop Kafra Staff#cashs2 -1,501:10