- Implemented "item_nouse.txt" to prevent players from using items under certain flags (which are pre-determined). Thanks to Muad_Dib for providing the item list for this db.

- Updated Portuguese translation.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@17308 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
momacabu 2013-05-02 00:15:34 +00:00
parent ad11dd689a
commit 88ffdd2e3d
5 changed files with 216 additions and 5 deletions

View File

@ -1419,10 +1419,10 @@
// @channel
1404: %s falhou.
1405: O nome do Canal deve começar com '#'.
1406: O tamanho do Canal deve ter entre 3 e %d caracteres.
1407: O Canal '%s' não está disponível.
1408: A senha do Canal não pode conter espaços.
1405: O nome do canal deve começar com '#'.
1406: O tamanho do canal deve ter entre 3 e %d caracteres.
1407: O canal '%s' não está disponível.
1408: A senha do canal não pode conter espaços.
1409: - #%s (%d usuários)
1410: ---- Canais Públicos ----
1411: Cor '%s' desconhecida.
@ -1450,6 +1450,47 @@
1433: O seu chat global foi desunido do canal '#%s'.
1434: Você já está no canal '%s'.
1435: Você agora está no canal '#%s' para '%s'.
1436: A senha do canal não pode exceder %d caracteres.
1437: O jogador '%s' está banido do canal '%s'.
1438: Você está banido do canal '%s'.
1439: O canal '%s' não possui jogadores banidos.
1440: O jogador '%s' não está banido neste canal.
1441: O jogador '%s' está desbanido do canal '%s'.
1442: Removido todos os jogadores banidos do canal '%s'.
1443: ---- '#%s' ~ Lista de Banidos:
1444: ---- Cores Disponíveis ----
1445: - %s
1446: Você precisa digitar uma opção.
1447: Opção do canal '%s' desconhecida.
1448: O canal '%s' foi deletado.
1449: A opção '%s' já está habilitada (use '@channel setopt %s 0' para desabilitá-la).
1450: A opção '%s' está habilitada para o canal '%s'.
1451: O valor '%d' para a opção '%s' está fora dos limites (de 0 até 10).
1452: A opção '%s' está habilitada para o canal '%s' em %d segundos.
1453: A opção '%s' está desabilitada para o canal '%s'.
//1454 livre
1455: Você está digitando muito rápido!
1456: * %s ban <#nome_do_canal> <jogador>
1457: -- Bane o jogador especificado do canal.
1458: * %s banlist <#nome_do_canal>
1459: -- Lista todos os jogadores banidos do canal.
1460: * %s unban <#nome_do_canal> <jogador>
1461: -- Desbane o jogador especificado do canal.
1462: * %s setopt <#nome_do_canal> <opção> <valor>
1463: -- Define uma opção e valor para o canal.
1464: Banimento falhou para o jogador '%s'.
1465: O jogador '%s' já está banido neste canal.
1466: Entre com o número de segundos (0-10) para a opção '%s'.
1467: * %s unbanall <#nome_do_canal>
1468: -- Remove todos os banimentos do canal.
1469: * %s delete <#nome_do_canal>
1470: -- Destrói o canal.
1471: * %s list mine
1472: -- Lista todos os canais que você tenha participado.
1473: * %s join <#nome_do_canal> <senha_do_canal>
1474: -- Entra em um canal.
1475: ---- Meus Canais ----
1476: Você ainda não está em nenhum canal.
//Custom translations
//import: conf/msg_conf/import/map_msg_por_conf.txt

132
db/item_nouse.txt Normal file
View File

@ -0,0 +1,132 @@
// Item Usage Restriction Configuration File
// Defines if an item cannot be used under certain circumstances
// Syntax: <item_id>, <flag>, <group_id_override>
// flag:
// 1 = Cannot use item while sitting
// X = more to come soon [TODO]
// group_id_override: group id necessary to override this setting
619,1,100 // Unripe_Apple
620,1,100 // Orange_Juice
621,1,100 // Bitter_Herb
622,1,100 // Rainbow_Carrot
623,1,100 // Earthworm_The_Dude
624,1,100 // Rotten_Fish
625,1,100 // Lusty_Iron
626,1,100 // Monster_Juice
627,1,100 // Sweet_Milk
628,1,100 // Well_Dried_Bone
629,1,100 // Singing_Flower
630,1,100 // Dew_Laden_Moss
631,1,100 // Deadly_Noxious_Herb
632,1,100 // Fatty_Chubby_Earthworm
633,1,100 // Baked_Yam
634,1,100 // Tropical_Banana
635,1,100 // Horror_Of_Tribe
636,1,100 // No_Recipient
637,1,100 // Old_Broom
638,1,100 // Silver_Knife_Of_Chaste
639,1,100 // Armlet_Of_Obedience
640,1,100 // Shining_Stone
641,1,100 // Contracts_In_Shadow
642,1,100 // Book_Of_Devil
659,1,100 // Heart_Of_Her
660,1,100 // Prohibition_Red_Candle
661,1,100 // Sway_Apron
686,1,100 // Earth_Scroll_1_3
687,1,100 // Earth_Scroll_1_5
688,1,100 // Cold_Scroll_1_3
689,1,100 // Cold_Scroll_1_5
690,1,100 // Fire_Scroll_1_3
691,1,100 // Fire_Scroll_1_5
692,1,100 // Wind_Scroll_1_3
693,1,100 // Wind_Scroll_1_5
694,1,100 // Ghost_Scroll_1_3
695,1,100 // Ghost_Scroll_1_5
696,1,100 // Fire_Scroll_2_1
697,1,100 // Fire_Scroll_2_5
698,1,100 // Fire_Scroll_3_1
699,1,100 // Fire_Scroll_3_5
700,1,100 // Cold_Scroll_2_1
11702,1,100 // Moon_Cookie
12000,1,100 // Cold_Scroll_2_5
12001,1,100 // Holy_Scroll_1_3
12002,1,100 // Holy_Scroll_1_5
12027,1,100 // Giggling_Box
12028,1,100 // Box_Of_Thunder
12029,1,100 // Gloomy_Box
12030,1,100 // Box_Of_Grudge
12031,1,100 // Sleepy_Box
12032,1,100 // Box_Of_Storm
12033,1,100 // Box_Of_Sunlight
12034,1,100 // Painting_Box
12215,1,100 // Blessing_10_Scroll
12216,1,100 // Inc_Agi_10_Scroll
12217,1,100 // Aspersio_5_Scroll
12218,1,100 // Assumptio_5_Scroll
12219,1,100 // Wind_Walk_10_Scroll
12220,1,100 // Adrenaline_Scroll
12225,1,100 // Sweet_Candy_Striper
12235,1,100 // Strawberry_Choco
12236,1,100 // Choco_Tart
12237,1,100 // Choco_Lump
12290,1,100 // Mysterious_Can
12291,1,100 // Mysterious_PET_Bottle
12310,1,100 // Spray_Of_Flowers
12311,1,100 // Large_Spray_Of_Flowers
12313,1,100 // Protection_Of_Angel
12323,1,100 // N_Fly_Wing
12324,1,100 // N_Butterfly_Wing
12325,1,100 // N_Magnifier
12340,1,100 // Mysterious_Rice_Powder
12347,1,100 // Acorn_Jelly
12350,1,100 // Angeling_Potion
12358,1,100 // Fan_Of_Wind
12359,1,100 // Very_Soft_Plant
12360,1,100 // Very_Red_Juice
12361,1,100 // Delicious_Shaved_Ice
12362,1,100 // Kuloren
12363,1,100 // Fit_Pipe
12364,1,100 // Staff_Of_Leader
12365,1,100 // Charming_Lotus
12366,1,100 // Gril_Doll
12367,1,100 // Luxury_Whisky_Bottle
12368,1,100 // Splendid_Mirror
12369,1,100 // Oilpalm_Coconut
12370,1,100 // Gril's_Naivety
12371,1,100 // Magical_Lithography
12372,1,100 // Hell_Contract
12373,1,100 // Boy's_Naivety
12374,1,100 // Flaming_Ice
12376,1,100 // Mysterious_Can2
12377,1,100 // Mysterious_PET_Bottle2
12388,1,100 // Runstone_Crush
12389,1,100 // Runstone_Storm
12390,1,100 // Runstone_Millennium
12396,1,100 // Fools_Day_Box
12397,1,100 // Fools_Day_Box2
12415,1,100 // Siege_Teleport_Scroll2
12473,1,100 // RWC_Parti_Box
12474,1,100 // RWC_Final_Comp_Box
12706,1,100 // Lucky_Cookie01
12707,1,100 // Lucky_Cookie02
12708,1,100 // Lucky_Cookie03
12725,1,100 // Runstone_Nosiege
12726,1,100 // Runstone_Rhydo
12727,1,100 // Runstone_Verkana
12728,1,100 // Runstone_Isia
12729,1,100 // Runstone_Asir
12730,1,100 // Runstone_Urj
12731,1,100 // Runstone_Turisus
12732,1,100 // Runstone_Pertz
12733,1,100 // Runstone_Hagalas
14521,1,100 // Repair_Scroll
14529,1,100 // Greed_Scroll
14532,1,100 // Battle_Manual25
14587,1,100 // Repair_Scroll_
14591,1,100 // Siege_Teleport_Scroll
14592,1,100 // Job_Manual50
14593,1,100 // Magic_Power_Scroll
14594,1,100 // Quagmire_Scroll
14599,1,100 // Greed_Scroll_C
14606,1,100 // Job_Manual25

View File

@ -738,6 +738,31 @@ static bool itemdb_read_buyingstore(char* fields[], int columns, int current)
return true;
}
/*******************************************
** Item usage restriction (item_nouse.txt)
********************************************/
static bool itemdb_read_nouse(char* fields[], int columns, int current)
{// <nameid>,<flag>,<override>
int nameid, flag, override;
struct item_data* id;
nameid = atoi(fields[0]);
if( ( id = itemdb_exists(nameid) ) == NULL ) {
ShowWarning("itemdb_read_nouse: Invalid item id %d.\n", nameid);
return false;
}
flag = atoi(fields[1]);
override = atoi(fields[2]);
id->item_usage.flag = flag;
id->item_usage.override = override;
return true;
}
/**
* @return: amount of retrieved entries.
**/
@ -1316,7 +1341,8 @@ static void itemdb_read(void) {
sv_readdb(db_path, "item_delay.txt", ',', 2, 2, -1, &itemdb_read_itemdelay);
sv_readdb(db_path, "item_stack.txt", ',', 3, 3, -1, &itemdb_read_stack);
sv_readdb(db_path, DBPATH"item_buyingstore.txt", ',', 1, 1, -1, &itemdb_read_buyingstore);
sv_readdb(db_path, "item_nouse.txt", ',', 3, 3, -1, &itemdb_read_nouse);
itemdb_uid_load();
}

View File

@ -69,6 +69,10 @@ enum {
ITEMID_SPECIAL_COOLER,
} mecha_item_list;
enum {
NOUSE_SITTING = 0x01,
} item_nouse_list;
//The only item group required by the code to be known. See const.txt for the full list.
#define IG_FINDINGORE 6
#define IG_POTION 37
@ -138,6 +142,10 @@ struct item_data {
unsigned int storage:1;
unsigned int guildstorage:1;
} stack;
struct {// used by item_nouse.txt
unsigned int flag;
unsigned short override;
} item_usage;
short gm_lv_trade_override; //GM-level to override trade_restriction
/* bugreport:309 */
struct item_combo **combos;

View File

@ -4107,6 +4107,10 @@ int pc_isUseitem(struct map_session_data *sd,int n)
return 0;
if( !item->script ) //if it has no script, you can't really consume it!
return 0;
if( (item->item_usage.flag&NOUSE_SITTING) && (pc_issit(sd) == 1) && (pc_get_group_level(sd) < item->item_usage.override) ) {
return 0; // You cannot use this item while sitting.
}
switch( nameid ) //@TODO, lot oh harcoded nameid here
{