Jump to content

JulioFortunato

Members
  • Posts

    20
  • Joined

  • Last visited

Posts posted by JulioFortunato

  1. Hi there! ?

    How can I create a custom item box that gives the player a random item, like Old Blue Box?

    I've found some topics but they seem to be for and old file structure of rAthena. It'd be nice to have an up-to-date tutorial.

     

    I've also found this topic, that uses a script function to get the items, but i'd like to give each item a custom chance of being gotten.

     

    Can someone help me with this?

    --------------------------- EDIT ---------------------------

    Just got this working, a moderator can close this topic, please.

  2. Hi everyone!

    I've just enabled rAthena's native VIP system and let the default values for base/job experience and item drop rates bonuses (50). Experience bonuses seems to be working fine, but item drop is "decreasing" to VIP players.

     

    Let's take the Poring Card as an example, this is the result of @mi 1002 for a normal player (0.50%):

    0K0QA99.jpg

     

    And this is the result for a VIP player (0.30%):

    S81RByc.jpg

     

    It seems to be decreasing and I don't know why.

     

    This is my current drops.conf file

    // The rate the common items are dropped (Items that are in the ETC tab, besides card)
    item_rate_common: 1000
    item_rate_common_boss: 1000
    item_rate_common_mvp: 1000
    item_drop_common_min: 1
    item_drop_common_max: 10000
    
    // The rate healing items are dropped (items that restore HP or SP)
    item_rate_heal: 1000
    item_rate_heal_boss: 1000
    item_rate_heal_mvp: 1000
    item_drop_heal_min: 1
    item_drop_heal_max: 10000
    
    // The rate at which usable items (in the item tab) other then healing items are dropped.
    item_rate_use: 1000
    item_rate_use_boss: 1000
    item_rate_use_mvp: 1000
    item_drop_use_min: 1
    item_drop_use_max: 10000
    
    // The rate at which equipment is dropped.
    item_rate_equip: 1000
    item_rate_equip_boss: 1000
    item_rate_equip_mvp: 1000
    item_drop_equip_min: 1
    item_drop_equip_max: 10000
    
    // The rate at which cards are dropped
    item_rate_card: 5000
    item_rate_card_boss: 500
    item_rate_card_mvp: 200
    item_drop_card_min: 1
    item_drop_card_max: 10000
    
    // The rate adjustment for the MVP items that the MVP gets directly in their inventory
    // Mode: 0 - official order, 1 - random order, 2 - all items
    item_rate_mvp: 1000
    item_drop_mvp_min: 1
    item_drop_mvp_max: 10000
    item_drop_mvp_mode: 0
    
    // The rate adjustment for card-granted item drops.
    item_rate_adddrop: 1000
    item_drop_add_min: 1
    item_drop_add_max: 10000
    
    // Rate adjustment for Treasure Box drops (these override all other modifiers)
    item_rate_treasure: 1000
    item_drop_treasure_min: 1
    item_drop_treasure_max: 10000

     

    And these are my VIP settings on player.conf file:

    //===================================
    // VIP system
    //===================================
    // Storage slot increase. Setting to 0 will disable.
    // Give more storage slots above the MIN_STORAGE limit.
    // Note: MIN_STORAGE + vip_storage_increase cannot exceed MAX_STORAGE.
    // Default: 300
    vip_storage_increase: 300
    
    // Base experience rate increase. Setting to 0 will disable. (Note 2)
    // Default: 50 (em porcentagem)
    vip_base_exp_increase: 20
    
    // Job experience rate increase. Setting to 0 will disable. (Note 2)
    // Default: 50 (em porcentagem)
    vip_job_exp_increase: 20
    
    // Experience penalty rate multiplier for VIP accounts.
    // Default: 100 (100 = 1% penalty)
    vip_exp_penalty_base: 100
    vip_exp_penalty_job: 100
    
    // Zeny penalty for VIP accounts.
    // Zeny loss only happens if the player dies from another player.
    // Default: 0 (100 = 1% penalty)
    vip_zeny_penalty: 0
    
    // Battle Manual experience increase. Setting to 0 will disable.
    // - Regular/Thick Battle Manual: 50+(50/X) = 75%
    // - HE Battle Manual: 100+(100/X) = 150%
    // - Battle Manual x3: 200+(200/X) = 300%
    // Note: X is the config value.
    // Default: 2
    vip_bm_increase: 0
    
    // Item drop increase. Setting to 0 will disable.
    // Note: 50 = 50% item_drop increase.
    // For item_rate = 200: 200 * 50 / 100 = 100 bonus rate added to the 200 base giving total rate of 300.
    // Default: 50
    vip_drop_increase: 20
    
    // Gemstone requirement.
    // Can the VIP Group ignore Gemstone requirement for skills?
    // 0 = Disable
    // 1 = Behave like Mistress Card
    // 2 = Remove all gemstone requirements (default)
    vip_gemstone: 0
    
    // Will display rate information (EXP, Drop, and Death penalty message)? (Note 1)
    vip_disp_rate: no

     

    Does anyone know what is wrong with this?

     

    Thanks! ❤️

  3. Boa tarde, pessoal


     


    Estou com um dúvida em relação às loading screens.


     


    Tenho algumas loading screens próprias do meu servidor porém, entre elas, ainda aparecem as loading screens oficiais do bRO.


     


    Como fazer para que as oficiais não apareçam mais? Devo adicionar mais?


     


    Obrigado desde já! ^^


  4. você define a matriz como  items

     

    //----------------------------------------------------

    // 5.1 Items Shop Loyalty

    // - <Item_ID>, <qtd_pontos> {<item_id>, <qtd_pontos>, ...};

    setarray. items [0],  12208,  150,  14592,  150,  12103,  250;

    //----------------------------------------------------

     

     

     

    mas você estiver usando  itens

     

    copyarray. items [0], getvariableofnpc, getarraysize (getvariableofnpc (items, "loyalty # controller").) (items [0], "loyalty # controller".);

     

    // Adcionando the items the store

    for(set .@i, 0; .@i < getarraysize(.itens); set .@i, .@i + 2) 

    npcshopadditem "loyalty #  shop1",. items [.i ,.] items [.i + 1];

     

    end;

     

     

    e

     

    Citar

     

    OnBuyItem :

     

    for(set .@i, 0; .@i < getarraysize(.itens); set .@i, .@i + 2) {

     

    verificar também se há outras coisas

     

    ENGLISH TRANSLATION:

     

    you set the array as items

    //----------------------------------------------------

    // 5.1 Items Shop Loyalty

    // - <Item_id>, <qtd_pontos> {<item_id>, <qtd_pontos>, ...};

    setarray. items [0],  12208,  150,  14592,  150,  12103,  250;

    //----------------------------------------------------

     

     

    but you are using itens

     

    copyarray . itens [ 0 ], getvariableofnpc (. itens [ 0 ], "loyalty#controller" ), getarraysize ( getvariableofnpc (. itens , "loyalty#controller" ));

     

    // Adcionando the items the store

    for(set .@i, 0; .@i < getarraysize(.itens); set .@i, .@i + 2) 

    npcshopadditem "loyalty #  shop1",. items [.i ,.] items [.i + 1];

     

    end;

    and

     

    OnBuyItem :

     

    for(set .@i, 0; .@i < getarraysize(.itens); set .@i, .@i + 2) {

     

     

    also check for other things

    I hate translating..

     

    No, there isn't this difference between "items" and "itens" on my script.

     

    Maybe this happened to you because of the translation :(

  5. Boa tarde, pessoal

     

    Estou usando este sistema de fidelidade em meu servidor:

    /*
    	        __           __           
    	 /     /  )_/    '  (  _ _ ' _/ _ 
    	(__.  (__/ /()/)/  __)( / //)/_)  
    							  /       
    	
    	Cronus, bRA & rA.
    	Description: Sistema de Fidelidade
    	Author: Leandro Otoni
    	Pedido: Biju, Ryuho e mais. '-'
    	Version: 1.0
    	
    	Changelog:	
    	1.0 Criação do NPC [L.Otoni]
    
    */
    //=========================================
    //	SQL
    //	-	Copiar e colar no PhpMyAdmin
    /*=========================================
    
    	ALTER TABLE `login` 
    	ADD `loyalty_minute` INT NOT NULL DEFAULT '0' , 
    	ADD `loyalty_points` INT NOT NULL DEFAULT '0' ;
    
    */
    
    // Quando player logar começa a contagem de tempo online.
    // A cada hora ele ganha 1 ponto
    // Premiações extras a cada meta completa
    // A contagem é salva por conta
    -	script	loyalty#controller	-1,{ OnInit:
    //====================================================
    //	Configurações Sistema Fidelidade
    //====================================================
    //----------------------------------------------------
    //	1.	Quantidade de pontos de fidelidade por hora
    	set .pontos, 1;			// Padrão: 1 ponto por hora
    //----------------------------------------------------
    //	2.	Permitir contagem de pontos em @at/Vending?
    //	-	(0) Não permitir, (1) Permitir
    	set .vending, 0;		// Padrão: (0) Não permitir
    //----------------------------------------------------
    //	3.	Utilizar Cash ao inves de Pontos de Fidelidade?
    //	-	Caso ativado atribuirá a quantidade de pontos 
    //		p/hora ao comando @cash, sendo assim a cada 1h
    //		online o player recebe X de cash (rops).
    //	-	(0) Não permitir, (1) Permitir
    	set .cash, 0;			// Padrão: (0) Desativado
    //----------------------------------------------------
    //	4.	Ativa sistema de conquistas?
    //	-	Pontos extra para cada conquista alcançada
    //	-	(0) Desativar, (1) Ativar
    	set .achievement, 1;	// Padrão: (1) Ativar
    //----------------------------------------------------
    //	5.	Ativar Loja Itens Fidelidade
    //	-	(0) Desativar, (1) Ativar
    	set .shop, 1;			// Padrão: (1) Ativar
    //----------------------------------------------------
    //	5.1	Itens Loja Fidelidade
    //	-	<item_id>,<qtd_pontos>{<item_id>,<qtd_pontos>,...};
    	setarray .itens[0], 12208, 150, 14592, 150, 12103, 250;
    //----------------------------------------------------
    //====================================================
    //	Conquistas
    //====================================================
    //	<n° horas>,<quantidade pontos>;
    //	6,5; 6 horas = 5 pontos.
    //	Deixar ( apenas no ultimo
    	setarray .achievements[0],	6, 5,
    								12, 20,
    								24, 80,
    								48, 320,
    								96, 1280,
    								192, 5120,
    								384, 20480,
    								768, 81920; // Ultimo
    
    //====================================================
    //	IMPORTANTE: Não Alterar as linhas abaixo
    //====================================================									
    donpcevent "loyalty#agent::OnInit"; end; // Carregando Loja
    //----------------------------------------------------
    //	Contagem de minutos/pontos
    OnPCLoginEvent:
    	while(1)
    	{
    		sleep2 60000; // 1 minuto
    		if(!checkvending() || .vending)
    		{
    			query_sql("UPDATE `login` SET `loyalty_minute` = `loyalty_minute` + '1' WHERE `account_id` = '"+getcharid(3)+"'");
    			query_sql("SELECT `loyalty_minute` FROM `login` WHERE account_id = '"+getcharid(3)+"'",.@minuto);
    			if( !(.@minuto%60) )
    			{
    				if( .cash )
    				{
    					atcommand "@cash " + .pontos + "";
    					dispbottom "Você acaba de receber "+.pontos+" ponto(s) de fidelidade";
    				}
    				else query_sql("UPDATE `login` SET `loyalty_points` = `loyalty_points` + '"+.pontos+"' WHERE `account_id` = '"+getcharid(3)+"'");
    				
    				if( .achievement )
    				{
    					for(set .@i, 0; .@i < getarraysize(.achievements); set .@i, .@i + 2)
    						if( .achievements[.@i] == ( .@minuto / 60 ) ) {
    							if( .cash )
    							{
    								atcommand "@cash " + .achievements[.@i+1];
    								dispbottom "Você acaba de receber "+.pontos+" ponto(s) de fidelidade";
    							}
    							else query_sql("UPDATE `login` SET `loyalty_points` = `loyalty_points` + "+.achievements[.@i+1]+" WHERE account_id = '"+getcharid(3)+"'");
    							announce "[Sistema de Fidelidade]: Conquista obtida, "+.achievements[.@i]+"h online, parabéns! Receba "+.achievements[.@i+1]+" Pontos de "+(.cash? "Cash" : "Fidelidade"),bc_self,0xBF5EFF;
    						}
    				}
    			}
    		}
    	}
    end;
    }
    
    -	script	loyalty#agent	-1,{ 
    	query_sql ("SELECT `loyalty_minute` / 60 , `loyalty_minute`, `loyalty_points` FROM `login` WHERE account_id = '"+getcharid(3)+"'",.@hora,.@minuto, @loyalty);
    	set .npc$, "^6F34C2[Sistema de Fidelidade]^000000";
    	mes .npc$;
    	mes "Seja bem vind"+(Sex?"o":"a")+" ^ff0000"+strcharinfo(0)+"^000000!";
    	mes "Tempo de Jogo: ^ff0000"+.@hora+" hora"+(.@hora > 1? "s" : "")+" e "+(.@minuto%60)+" minuto"+(.@minuto > 1? "s" : "")+"^000000.";
    	mes "Pontos de Fidelidade: ^6F34C2"+ @loyalty + "^000000";
    	mes "^F7AD00- Você pode acumular Pontos de Fidelidade permanecendo on-line.^000000";
    	mes "^3487C2- Você pode resgartar diversos prêmios com Pontos de Fidelidade.^000000";
    	next;
    	switch(select("Sair"+( getvariableofnpc(.shop, "loyalty#controller") ? ":Resgatar Itens" : ":" )+( getvariableofnpc(.achievement, "loyalty#controller") ? ":Premiações Extras" : "" )))
    	{
    		case 1: { mes .npc$; mes "Tudo bem, tenha um bom dia."; close; }
    		case 2: { mes .npc$; mes "É pra já, olha só os itens incríveis que temos em nossa lojinha. ^^"; close2; /*openshop("loyalty#shop");*/ goto OnShop; end; }
    		case 3:
    			mes .npc$;
    			mes "Premiação Padrão";
    			mes "^ff0000Por Hora:^000000 1 Ponto de Fidelidade.";
    			mes " ";
    			mes "Premiações Extras: " + ( .@hora < getelementofarray(getvariableofnpc(.achievements, "loyalty#controller"), (getarraysize(getvariableofnpc(.achievements,"loyalty#controller")) - 2 )) ? "^ff0000Incompleto!":"^00B0EFCompleto!") + "^000000";
    			
    			for(set .@i, 0; .@i < getarraysize(.achievement); set .@i, .@i + 2)
    			{
    				mes ( .@hora < .achievement[.@i] ? "^ff0000" + .achievement[.@i] + "h^000000: " : "^999999" + .achievement[.@i] + ": ")  + .achievement[.@i+1] + " Pontos de "+(getvariableofnpc(.cash,"loyalty#controller")? "Cash" : "Fidelidade")+".";
    			}
    			next;
    			mes .npc$;
    			mes "Continue juntando Pontos de Fidelidade e troque por itens incríveis aqui comigo. ^^";
    			mes "Tenha um bom jogo e nos vemos por aí!";
    			close;
    	}
    	
    OnShop:
    	callshop "loyalty#shop1",1;
    	npcshopattach "loyalty#shop1";
    end;
    OnBuyItem:
     
    for(set .@i, 0; .@i < getarraysize(.itens); set .@i, .@i + 2) {
    for(set .@d,0; .@d<getarraysize(@bought_nameid); set .@d,.@d+1) {
    if(@bought_nameid[.@d]==.itens[.@i]) {
    set  @price, .itens[.@i+1];
    if(@loyalty < @price*@bought_quantity[.@d]) 
    {
    mes .npc$;
    mes "^F05754Me desculpe, mas você não tem pontos de Fidelidade o sufuciente!^000000";
    mes " ";
    mes "Pontos de Fidelidade: ^6F34C2"+ @loyalty + "^000000";
    mes "Preço do Item: ^ff0000"+ @price*@bought_quantity[.@d]+"^000000";
    mes "^ff0000A sua compra foi cancelada!^000000";
    close;
    end;
    }
     
    query_sql("UPDATE `login` SET `loyalty_points` = `loyalty_points` - '"+@price*@bought_quantity[.@d]+"' WHERE `account_id` = '"+getcharid(3)+"'");
    dispbottom "Você gastou "+@price*@bought_quantity[.@d]+" ponto(s) de fidelidade e agora possui "+(@loyalty - @price*@bought_quantity[.@d])+" ponto(s)";
    getitem @bought_nameid[.@d],@bought_quantity[.@d]; end;
    }
    }
    }
    
    // Carregando Confs
    OnInit:
    	npcshopdelitem "loyalty#shop1",501; // Removendo o item necessario para a criação da loja
    	copyarray .achievement[0], getvariableofnpc(.achievements[0],"loyalty#controller"),getarraysize(getvariableofnpc(.achievements,"loyalty#controller"));
    	copyarray .itens[0], getvariableofnpc(.itens[0],"loyalty#controller"),getarraysize(getvariableofnpc(.itens,"loyalty#controller"));
    	
    	// Adcionando os itens a loja
    	for(set .@i, 0; .@i < getarraysize(.itens); set .@i, .@i + 2) 
    		npcshopadditem "loyalty#shop1", .itens[.@i],.itens[.@i+1];
    end;
    }
    //=================================================================
    //	IMPORTANTE: Não apagar/alterar essa linha
    //=================================================================
    -	shop	loyalty#shop1	-1,501:50
    //-----------------------------------------------------------------
    
    /*
    	Duplicates
    */
    prontera,143,178,5	duplicate(loyalty#agent)	Sapo da Fidelidade#prt	614
    
    /* Fim do NPC */
    

     

    Porém, ao selecionar a opção de Resgatar Prêmios, a loja de itens se abre vazia, em branco.

    Os itens configurados no array no início do arquivo não são carregados na loja.

     

    Alguém pode me ajudar, por favor?

    Obrigado! ^^

  6. Good evening, friends

     

    I'm with a problem with guild names in my server. The players's position is appearing where the guild name should be.

     

    How it is:

    Position

    Player Name

     

     

    The correct way must be:

    Player Name

    Guild Name [Position]

     

    Here is the screenshot to help you

    k6GGxJo.jpg

     

    Thanks in advance

    I just find the problem.

     

    /showname was enabled.

×
×
  • Create New...