Jump to content

guhx

Members
  • Posts

    27
  • Joined

  • Last visited

Posts posted by guhx

  1. I didn't make any changes to the source. The inventory is not full and the character is not weighed. I think there must be some configuration that changes if, on dying at the same moment that it kills, the drops fall to the ground instead of going to the inventory, but I already searched for everything and found nothing.

  2.  

     

    I have a problem, for example. I use @autoloot, the command works normally, it happens when I kill the monster and at the same time I die, the items fall to the ground instead of coming to my inventory. I don't know what could be causing this ..

  3. All the ports are open
    Chain PREROUTING (policy ACCEPT)
    target     prot opt source               destination
    
    Chain POSTROUTING (policy ACCEPT)
    target     prot opt source               destination
    
    Chain OUTPUT (policy ACCEPT)
    target     prot opt source               destination

     

  4.  

    I am having trouble installing rAFluxCP. The problem is in the connection between my FluxCP (which is hosted on my site) and the database on my server (which is hosted in my VPS). I created a user to access mysql with any user (%), but the error displayed below persists and I do not know how to solve it.

    Error: PDOException
    Message: SQLSTATE[HY000] [2002] Connection refused
    File: /home/bovtikaz/public_html/cp/lib/Flux/Connection.php:81

     

     

  5. Can anyone help me with compiling?
    [rathena4444@woero emulador]$ ./configure
    checking for g++... g++
    checking whether the C++ compiler works... yes
    checking for C++ compiler default output file name... a.out
    checking for suffix of executables...
    checking whether we are cross compiling... no
    checking for suffix of object files... o
    checking whether we are using the GNU C++ compiler... yes
    checking whether g++ accepts -g... yes
    checking how to run the C++ preprocessor... g++ -E
    checking for grep that handles long lines and -e... /bin/grep
    checking for egrep... /bin/grep -E
    checking for ANSI C header files... yes
    checking for sys/types.h... yes
    checking for sys/stat.h... yes
    checking for stdlib.h... yes
    checking for string.h... yes
    checking for memory.h... yes
    checking for strings.h... yes
    checking for inttypes.h... yes
    checking for stdint.h... yes
    checking for unistd.h... yes
    checking minix/config.h usability... no
    checking minix/config.h presence... no
    checking for minix/config.h... no
    checking whether it is safe to define __EXTENSIONS__... yes
    checking whether make sets $(MAKE)... yes
    checking for gcc... gcc
    checking whether we are using the GNU C compiler... yes
    checking whether gcc accepts -g... yes
    checking for gcc option to accept ISO C89... none needed
    checking whether we are using the GNU C++ compiler... (cached) yes
    checking whether g++ accepts -g... (cached) yes
    checking for ar... /opt/rh/devtoolset-7/root/usr/bin/ar
    checking whether byte ordering is bigendian... no
    checking whether gcc produces 32bit code... no
    checking whether gcc supports __thread specifier (TLS)... yes
    checking whether gcc supports -ffat-lto-objects... yes
    checking whether gcc supports -flto -fuse-linker-plugin... yes
    checking whether gcc supports -Wno-unused-parameter... yes
    checking whether gcc can actually use -Wno-unused-parameter... not needed but enabled
    checking whether gcc supports -Wempty-body... yes
    checking whether gcc supports -Wno-switch... yes
    checking whether gcc supports -Wno-missing-field-initializers... yes
    checking whether compiler is clang... no
    checking whether gcc supports -Wno-maybe-uninitialized... yes
    checking whether gcc supports -Wno-clobbered... yes
    checking whether gcc supports -Wshadow... yes
    checking whether gcc can efficiently use -Wshadow... yes
    checking whether gcc supports -fPIC... yes
    checking how to make shared objects... not supported
    configure: compiler is unable to generate shared objects, disabled plugins (optional)
    checking whether gcc supports -fno-strict-aliasing... yes
    checking for setrlimit... yes
    checking for strnlen... yes
    checking for uselocale... yes
    checking for newlocale... yes
    checking for freelocale... yes
    checking for xlocale.h... yes
    checking for library containing inflateEnd... -lz
    checking for zlib.h... yes
    checking for library containing sqrt... none required
    checking for library containing clock_gettime... -lrt
    checking whether CLOCK_MONOTONIC is supported and works... yes
    checking for library containing pthread_create... -lpthread
    checking for library containing pthread_sigmask... none required
    checking for library containing pthread_attr_init... none required
    checking for library containing pthread_attr_setstacksize... none required
    checking for library containing pthread_attr_destroy... none required
    checking for library containing pthread_cancel... none required
    checking for library containing pthread_join... none required
    checking for mysql_config... /usr/bin/mysql_config
    checking for mysql_init in -lmysqlclient... no
    checking mysql.h usability... no
    checking mysql.h presence... no
    checking for mysql.h... no
    checking MySQL library (required)... no
    configure: error: MySQL not found or incompatible
    
    [rathena4444@woero emulador]$ make clean
    make[1]: Entering directory `/home/rathena4444/emulador/src/common'
            CLEAN   common
    make[1]: Leaving directory `/home/rathena4444/emulador/src/common'
    make[1]: Entering directory `/home/rathena4444/emulador/3rdparty/mt19937ar'
            CLEAN   mt19937ar
    make[1]: Leaving directory `/home/rathena4444/emulador/3rdparty/mt19937ar'
    make[1]: Entering directory `/home/rathena4444/emulador/3rdparty/libconfig'
            CLEAN   libconfig
    make[1]: Leaving directory `/home/rathena4444/emulador/3rdparty/libconfig'
    make[1]: Entering directory `/home/rathena4444/emulador/3rdparty/yaml-cpp'
            CLEAN   yaml-cpp
    make[1]: Leaving directory `/home/rathena4444/emulador/3rdparty/yaml-cpp'
    make[1]: Entering directory `/home/rathena4444/emulador/src/login'
            CLEAN   login
    make[1]: Leaving directory `/home/rathena4444/emulador/src/login'
    make[1]: Entering directory `/home/rathena4444/emulador/src/char'
            CLEAN   char
    make[1]: Leaving directory `/home/rathena4444/emulador/src/char'
    make[1]: Entering directory `/home/rathena4444/emulador/src/map'
            CLEAN   map
    make[1]: Leaving directory `/home/rathena4444/emulador/src/map'
    make[1]: Entering directory `/home/rathena4444/emulador/src/tool'
            CLEAN   tool
    make[1]: Leaving directory `/home/rathena4444/emulador/src/tool'
    
    
    [rathena4444@woero emulador]$ make server
    make[1]: Entering directory `/home/rathena4444/emulador/3rdparty/mt19937ar'
            CC      mt19937ar.c
    cc1: error: CPU you selected does not support x86-64 instruction set
    make[1]: *** [mt19937ar.o] Error 1
    make[1]: Leaving directory `/home/rathena4444/emulador/3rdparty/mt19937ar'
    make: *** [mt19937ar] Error 2

     

    @Edit
    My VPS is not installing mariadb, mariadb-devel and mariadb-server
     

    [root@woero ~]# sudo yum install mariadb mariadb-devel mariadb-server git
    Loaded plugins: fastestmirror
    Setting up Install Process
    Loading mirror speeds from cached hostfile
     * base: ewr.edge.kernel.org
     * extras: ewr.edge.kernel.org
     * updates: ewr.edge.kernel.org
    No package mariadb available.
    No package mariadb-devel available.
    No package mariadb-server available.
    Resolving Dependencies
    --> Running transaction check
    ---> Package git.x86_64 0:1.7.1-9.el6_9 will be installed
    --> Processing Dependency: perl-Git = 1.7.1-9.el6_9 for package: git-1.7.1-9.el6_9.x86_64
    --> Processing Dependency: perl(Git) for package: git-1.7.1-9.el6_9.x86_64
    --> Processing Dependency: perl(Error) for package: git-1.7.1-9.el6_9.x86_64
    --> Running transaction check
    ---> Package perl-Error.noarch 1:0.17015-4.el6 will be installed
    ---> Package perl-Git.noarch 0:1.7.1-9.el6_9 will be installed
    --> Finished Dependency Resolution
    
    Dependencies Resolved
    
    ================================================================================
     Package            Arch           Version                   Repository    Size
    ================================================================================
    Installing:
     git                x86_64         1.7.1-9.el6_9             base         4.6 M
    Installing for dependencies:
     perl-Error         noarch         1:0.17015-4.el6           base          29 k
     perl-Git           noarch         1.7.1-9.el6_9             base          29 k
    
    Transaction Summary
    ================================================================================
    Install       3 Package(s)
    
    Total download size: 4.7 M
    Installed size: 15 M
    Is this ok [y/N]: y
    Downloading Packages:
    (1/3): git-1.7.1-9.el6_9.x86_64.rpm                      | 4.6 MB     00:00
    (2/3): perl-Error-0.17015-4.el6.noarch.rpm               |  29 kB     00:00
    (3/3): perl-Git-1.7.1-9.el6_9.noarch.rpm                 |  29 kB     00:00
    --------------------------------------------------------------------------------
    Total                                            31 MB/s | 4.7 MB     00:00
    Running rpm_check_debug
    Running Transaction Test
    Transaction Test Succeeded
    Running Transaction
      Installing : 1:perl-Error-0.17015-4.el6.noarch                            1/3
      Installing : git-1.7.1-9.el6_9.x86_64                                     2/3
      Installing : perl-Git-1.7.1-9.el6_9.noarch                                3/3
      Verifying  : 1:perl-Error-0.17015-4.el6.noarch                            1/3
      Verifying  : git-1.7.1-9.el6_9.x86_64                                     2/3
      Verifying  : perl-Git-1.7.1-9.el6_9.noarch                                3/3
    
    Installed:
      git.x86_64 0:1.7.1-9.el6_9
    
    Dependency Installed:
      perl-Error.noarch 1:0.17015-4.el6       perl-Git.noarch 0:1.7.1-9.el6_9
    
    Complete!

     

  6. Hello, I followed the rathena wiki to install the emulator on CentOS 6, but it did not work.

    Could someone explain to me how I can prepare VPS to install rAthena? I would also like to configure it to access via FTP and also access the database through phpmyadmin

     

     

  7. Hello, I added the @afk command following the guidelines of this topic

    When I type @afk, a loading bar appears as if it were a skill, but it takes too long to load. I would like to know how to do it to be instant, type @afk and be kicked from the server like @at

    atcommand.cpp

    /*==========================================
    * @afk
    *------------------------------------------*/
    ACMD_FUNC(afk) {
     
    	nullpo_retr(-1, sd);
    				
    				if(sd->bl.m == map_mapname2mapid("prontera")) {
    				clif_displaymessage(fd, "@afk is not allowed on this map.");
    				return 0;
    				}
    				
    				if( pc_isdead(sd) ) {
    				clif_displaymessage(fd, "Cannot @afk if you are dead.");
    				return -1;
    				}
    
    				if( map[sd->bl.m].flag.autotrade == battle_config.autotrade_mapflag )
    				{
    
    				if(map[sd->bl.m].flag.pvp  || map[sd->bl.m].flag.gvg){
    				clif_displaymessage(fd, "You may not use the @afk maps PVP or GVG.");
    				return -1;}
    
    						sd->state.autotrade = 1;
    						sd->state.monster_ignore = 1;
    						pc_setsit(sd);
    						skill_sit(sd,1);
    						clif_sitting(&sd->bl);
    						clif_changelook(&sd->bl,LOOK_HEAD_TOP,471);
    						clif_specialeffect(&sd->bl, 234,AREA);                       
    						if( battle_config.afk_timeout )
    						{
    								int timeout = atoi(message);
    								status_change_start(NULL, &sd->bl, SC_AUTOTRADE, 10000,0,0,0,0, ((timeout > 0) ? min(timeout,battle_config.afk_timeout) : battle_config.afk_timeout)*60000,0);
    						}
    						clif_authfail_fd(fd, 15);
    				} else
    						clif_displaymessage(fd, "@afk is not allowed on this map.");
    		return 0;
    }

    battle.cpp

    	{ "afk_timeout",                        &battle_config.afk_timeout,                     0,      0,      INT_MAX,        },

    battle.hpp

    	int afk_timeout;

     

  8. 18 hours ago, hendra814 said:

    try this

      Hide contents
    
    
    prontera,148,189,6	script	Insta-Refiner	907,{
    setarray .@slots[0],2,3,4,5,6,7,8,9,15,16,17,18,19,20;
    for( set .@a,0; .@a < getarraysize(.@slots); set .@a,.@a + 1 ) {
         if( getequipisequiped(.@slots[.@a]) ) {
                      if( .@slots[.@a] == 8 || .@slots[.@a] == 9) {
                           switch( getequipweaponlv(.@slots[.@a]) ) {
                                case 0:
                                     set .@r, 4;
                                     break;
                                default:
                                     set .@r, 8 - getequipweaponlv(.@slots[.@a]);
                                     break;
                                }
                           } else { set .@r, 4; }
    		  set .@refinefix,.@r-getequiprefinerycnt(.@slots[.@a]);
              if(getequiprefinerycnt(.@slots[.@a]) < .@r && getequipisenableref(.@slots[.@a]) ) {
                   for( set .@i,0; .@i < .@refinefix; set .@i,.@i + 1)
    					successrefitem .@slots[.@a];
                   }
          }
          sleep2 100;
    }
    
    }

     

     

    Thank you very much, it worked perfectly
  9. prontera,148,189,6    script    Insta-Refiner    907,{
    setarray .@slots[0],1,2,3,4,5,6,7,8,9,10;
    for( set .@a,0; .@a < getarraysize(.@slots); set .@a,.@a + 1 ) {
         if( getequipisequiped(.@slots[.@a]) ) {
                      if( .@slots[.@a] == 3 || .@slots[.@a] == 4) {
                           switch( getequipweaponlv(.@slots[.@a]) ) {
                                case 0:
                                     set .@r, 4;
                                     break;
                                default:
                                     set .@r, 8 - getequipweaponlv(.@slots[.@a]);
                                     break;
                                }
                           } else { set .@r, 4; }
              set .@refinefix,.@r-getequiprefinerycnt(.@slots[.@a]);
              if(getequiprefinerycnt(.@slots[.@a]) < .@r && getequipisenableref(.@slots[.@a]) ) {
                   for( set .@i,0; .@i < .@refinefix; set .@i,.@i + 1)
                        successrefitem .@slots[.@a];
                   }
          }
          sleep2 100;
    }
    
    }

    I'm with an NPC refiner. It refines up to the maximum level of security with just 1 click.

    The only problem I have with him is that he does not differentiate weapon levels.

    For example, he refines a knife to +4, instead of refining to +7.

    Can someone help me?

  10. Hi, I use gepard on my server, and I wanted to block the same person from accessing the same map with two accounts. I tried to change the last_ip to last_unique_id, but it blocks all people from accessing the map if there is already a person in it.

     

    -	script	dualclientkicker	-1,{
    OnPCLoadMapEvent:
    	set .@charmap$, strcharinfo(3);
    	query_sql("SELECT FIND_IN_SET('"+.@charmap$+"', '"+.maps$+"');",.@q);
    	if(.@charmap$!=.tmp$[(.@q-1)]) end;
    	set .@len, query_sql("SELECT DISTINCT `account_id` FROM `char` WHERE `account_id` IN (SELECT `account_id` FROM `login` WHERE `last_ip` = (SELECT `last_ip` FROM `login` WHERE `account_id`="+getcharid(3)+")) AND `online` <> 0;",.@a);
    	if(.@len-1) {
    		for(set(.@d,0);.@d<.@len;set(.@d,.@d+1)) {
    			getmapxy(.@map$,.@x,.@y,0,rid2name(.@a[.@d]));
    			if(.tmp$[(.@q-1)]==.@map$&&rid2name(.@a[.@d])!=strcharinfo(0)) {
    				dispbottom "Duel accounts not allowed in WOE.";
    				atcommand "@kick "+strcharinfo(0);
    			}
    		}
    	}
    	end;
    	
    OnInit:
    	set        .maps$  ,	"aldeg_cas01,gefg_cas01,payg_cas01,prtg_cas01";
    	explode(   .tmp$   ,    .maps$, ",")                                  ;
    	set        .lens   ,	getarraysize(.tmp$)                           ;
    	for(set .a,0;.a<.lens;set .a,.a+1)
    		setmapflag .tmp$[.a],	mf_loadevent ;
    }

     

  11. On 18/01/2018 at 9:31 AM, Functor said:

    You can change it by using any HEX editor.

    // 2015-11-04aRagexe
    4B51CE change 6A FF 6A 00 50 8D 4D D8 E8 85 B8 B7 FF to 90 90 90 90 90 90 90 90 90 90 90 90 90
    4B5291 change 6A FF 6A 00 50 8D 4D D8 E8 C2 B7 B7 FF to 90 90 90 90 90 90 90 90 90 90 90 90 90
    6FAFB0 change 20 28 00 00 5B 20 54 6F 20 00 00 00 29 20 5D 20 3A 20 to 20 00 00 00 5B 20 54 6F 20 00 00 00 5D 20 3A 20 00 00

    // 2016-02-03aRagexeRE
    4D209E change 6A FF 6A 00 50 8D 4D D8 E8 95 08 B6 FF to 90 90 90 90 90 90 90 90 90 90 90 90 90
    4D2161 change 6A FF 6A 00 50 8D 4D D8 E8 D2 07 B6 FF to 90 90 90 90 90 90 90 90 90 90 90 90 90
    71D994 change 20 28 00 00 5B 20 54 6F 20 00 00 00 29 20 5D 20 3A 20 to 20 00 00 00 5B 20 54 6F 20 00 00 00 5D 20 3A 20 00 00

    Thank you very much, it worked!

  12. 12 hours ago, Najara said:

    Isso tem algo a ver com o uso de uma versão do cliente diferente da versão do cliente que foi esclarecida em seu servidor. 

    Você provavelmente deve se referir a  src / config / packet.h

      I'm using the client 2015-11-04

    The setting is correct: #define PACKETVER 20151104

  13. Em 27/06/2012 às 11:27, Limestone disse:

    Eu tenho um problema, quando o jogador 1 usa @seeghp. A HP do Player 2 é mostrada, mas quando o jogador 2 usa @warp, ou @go, a barra hp desapareceu na tela do jogador 1. Desculpe pelo meu mau inglês.

    Além deste problema já relatado, um outro.
    O HP através de um grupo, você necessita de usar o @refresh para atualizar uma mudança de HP do membro do clã.

    @Edit Sorry, only after post that I saw the post was 2012

  14. My script:

     
    
    // Hidding Slot Enchant NPC
    // Important Note : Item ID 677 Platinum Coin is a special item that allow user to select the Enchant.
    
    prontera,146,61,5	script	Shiriublem	84,{
    	mes "[Shiriublem]";
    	mes "Eu sou um engenheiro que se especializou em encantar armaduras.";
    	next;
    	mes "[Shiriublem]";
    	mes "Encantamentos podem parecer simples, mas é muito mais complicado do que parece.";
    	mes "Se você estiver interessado em meu serviço, avise-me.";
    	next;
    	switch( select( "^4169E1Encantar Arma^000000:Encantar Armadura:^0000FFEncantar Chapéu^000000:^FFA500Encantar Capa/Sapatos^000000:^FF0000Encantar Escudo^000000:^4169E1Encantar Acessório^000000:Informação:Cancelar" ) )
    	{
    		case 1:
    			mes "[Shiriublem]";
    			mes "^FFA500Para encantar sua arma^000000:";
    			mes "a) Eu preciso de emblemas: 50 de bravura, 50 de valor e 50 de guerra.";
    			mes "b) 500.000 Zeny";
    			mes "c) Tipo de encantamento elemental ou racial.";
    			mes "d) ^FF0000Sua arma vai perder refinamento e cartas^000000.";
    			mes "e) Arma deve ser 3 slots ou menos.";
    			next;
    
    			setarray .@Position$[3], "Left hand","Right hand";
    			set .@Menu$,"";
    			for( set .@i, 3; .@i <= 4; set .@i, .@i + 1 )
    			{
    				if( getequipisequiped(.@i) )
    					set .@Menu$, .@Menu$ + .@Position$[.@i] + "-" + "[" + getequipname(.@i) + "]";
    				set .@Menu$, .@Menu$ + ":";
    			}
    
    			set .@Part,select(.@Menu$ + "Cancel") + 2;
    			if( .@Part >= 5 )
    			{
    				mes "[Shiriublem]";
    				mes "Precisa de algum tempo para pensar sobre isso?";
    				mes "Tudo bem, eu posso entender.";
    				close;
    			}
    			if( !getequipisequiped(.@Part) )
    			{
    				mes "[Shiriublem]";
    				mes "Your not wearing anything there...";
    				close;
    			}
    			if( getequipweaponlv(.@Part) == 0 )
    			{
    				mes "[Shiriublem]";
    				mes "Este encantamento só funciona em armas, não em escudos...";
    				close;
    			}
    			set .@Slot0, getequipcardid(.@Part,0);
    			if( .@Slot0 == 255 || .@Slot0 == 254 || .@Slot0 < 0 )
    			{
    				mes "[Shiriublem]";
    				mes "Sinto muito, eu não posso trabalhar em itens forjados.";
    				close;
    			}
    			set .@Item, getequipid(.@Part);
    			if( getitemslots(.@Item) >= 4 )
    			{
    				mes "[Shiriublem]";
    				mes "Sinto muito, eu não posso trabalhar com armas 4 slots.";
    				close;
    			}
    
    			mes "[Shiriublem]";
    			mes "Você quer encantar a sua " + getitemname(.@Item) + "?";
    			mes "O custo deste trabalho é ^0000FF50 Bravura, 50 Valor e 50 Guerra^000000.";
    			next;
    			mes "[Shiriublem]";
    			mes "Se você tem os emblemas, podemos ir em frente com a tentativa de encantamento.";
    			mes "Mas antes disso, devo avisá-lo do risco.";
    			next;
    			mes "[Shiriublem]";
    			mes "Uma vez que a arma receber o encantamento ^FF0000ela vai perder o refinamento e as cartas^000000.";
    			mes "Você ainda quer encantar?";
    			next;
    			if( select("^FF0000Encantar elemental^000000:^0000FFEncantar racial^000000:^FFA500Deixe-me escolher (Platinum Coin)^000000:Cancelar") == 4 )
    			{
    				mes "[Shiriublem]";
    				mes "Precisa de algum tempo para pensar sobre isso?";
    				mes "Tudo bem, eu posso entender.";
    				mes "Basta lembrar que a vida não tem graça se você está sempre jogando no lado seguro ~";
    				close;
    			}
    
    			set .@Type, @menu; // 1 : Elemental | 2 : Racial
    			if( countitem(7828) < 50 || countitem(7829) < 50 || countitem(7773) < 50 || Zeny < 500000 )
    			{
    				mes "[Shiriublem]";
    				mes "Eu gostaria de ir em frente com esta tentativa de encantamento, mas está faltando algumas coisas.";
    				mes "Tem certeza de que você tem os emblemas?";
    				close;
    			}
    
    			set .@Slot0, getequipcardid(.@Part,0);
    			if( !getequipisequiped(.@Part) || !getequipweaponlv(.@Part) || .@Slot0 == 255 || .@Slot0 == 254 || .@Slot0 < 0 || .@Item != getequipid(.@Part) )
    			{
    				mes "[Shiriublem]";
    				mes "This is not the equip we were talking about...";
    				mes "Get out of here!!";
    				close;
    			}
    
    			if( .@Type == 3 && countitem(677) < 1 )
    			{
    				mes "[Shiriublem]";
    				mes "Oh.. ok... e onde está a Platinum Coin?";
    				close;
    			}
    
    			switch( .@Type )
    			{
    			case 1: // Elemental
    				set .@Enchant, 4964 + rand(5);
    				break;
    			case 2: // Racial
    				set .@Enchant, 4969 + rand(10);
    				break;
    			case 3: // Selective
    				set .@Menu$,"";
    				for( set .@i, 4964; .@i <= 4978; set .@i, .@i + 1 )
    					set .@Menu$, .@Menu$ + getitemname(.@i) + ":";
    
    				set .@Enchant, 4963 + select(.@Menu$);
    				delitem 677,1;
    				break;
    			}
    
    			delitem 7828,50;
    			delitem 7829,50;
    			delitem 7773,50;
    			set Zeny, Zeny - 500000;
    
    			//successenchant .@Part,.@Enchant;
    
    			mes "[Shiriublem]";
    			mes "Ótimo, sua arma recebeu ^0000FF" + getitemname(.@Enchant) + "^000000 enchant.";
    			mes "Parece muito bem feito, parabéns!";
    			next;
    			mes "[Shiriublem]";
    			mes "Espero ve-lo novamente!";
    			close;
    		case 2:
    			mes "[Shiriublem]";
    			mes "Você quer encantar a sua armadura?";
    			mes "Lembre-se que este item perderá encantamentos anteriores.";
    			next;
    			if ( select("Tentar encantar","Cancelar") == 2 )
    			{
    				mes "[Shiriublem]";
    				mes "Precisa de algum tempo para pensar sobre isso?";
    				mes "Tudo bem, eu posso entender.";
    				close;
    			}
    			
    			if( !getequipisequiped(2) )
    			{
    				mes "[Shiriublem]";
    				mes "Você não está usando nenhum tipo de armadura...";
    				mes "Eu não posso encantar o seu corpo!";
    				close;
    			}
    			
    			deletearray .@Armor[0],127;
    			setarray .@Armor[0],2358,2307,2309,2314,2316,2321,2325,2327,2330,2332,2334,2335,2341,2344,2346,2348,2350,2337,2386,2311,2318,2319,2320,2308,2310,2315,2317,2322,2324,2326,2331,2333,2336,2342,2345,2347,2349,2351,2364,2365,2374,2375,2387,2389,2391,2390,2376,2377,2378,2379,2380,2381,2382,2394,2395,2396;
    			set .@Item, getequipid(2);
    			
    			for( set .@i, 0; .@i < getarraysize(.@Armor); set .@i, .@i + 1 )
    			{
    				if( .@Armor[.@i] == .@Item )
    					break;
    			}
    
    			if( .@i >= getarraysize(.@Armor) )
    			{
    				mes "[Shiriublem]";
    				mes "Sinto muito, mas eu não posso trabalhar neste armadura.";
    				mes "Se você precisar de informações, basta me perguntar...";
    				close;
    			}
    
    			mes "[Shiriublem]";
    			mes "Você quer encantar a sua " + getitemname(.@Item) + "?";
    			mes "O custo de meu trabalho é 400.000 zeny.";
    			next;
    			mes "[Shiriublem]";
    			mes "Se você tem o valor de taxa de serviço e a armadura, então podemos ir em frente com a tentativa de encatamento.";
    			mes "Mas antes disso, devo avisá-lo do risco.";
    			next;
    			mes "[Shiriublem]";
    			mes "^FF0000Sua armadura vai perder qualquer refinamento e cartas^000000.";
    			mes "Além disso, se a tentativa de encantar falhar, a ^FF0000armadura^000000 será destruída^000000.";
    			mes "Você ainda quer tentar encantar?";
    			next;
    			if ( select("Tentar encantar","Cancelar") == 2 )
    			{
    				mes "[Shiriublem]";
    				mes "Precisa de algum tempo para pensar sobre isso?";
    				mes "Tudo bem, eu posso entender.";
    				close;
    			}
    
    			if( getequipisequiped(2) == 0 || getequipid(2) != .@Item || Zeny < 400000 )
    			{
    				mes "[Shiriublem]";
    				mes "Eu gostaria de ir em frente com esta tentativa de encantamento, mas está faltando algumas coisas.";
    				mes "Tem certeza de que você tem o equipamento e o dinheiro?";
    				close;
    			}
    
    			mes "[Shiriublem]";
    			mes "Certo então, vamos começar o trabalho!";
    			mes "É melhor você começar a rezar para ter um resultado bem-sucedido.";
    			mes "Deixe-me tirar sua armadura...";
    			next;
    			set .@Enchant, 0;
    
    			if( countitem(677) )
    			{
    				mes "[Shiriublem]";
    				mes "Wooo!! Você possui uma Platinum Coin.";
    				mes "Olha, eu posso deixar você escolher +3 Safe Enchant de uma de minhas armaduras.";
    				mes "Se você me der sua aramdura atual e a moeda.";
    				next;
    				if( select("Ok... deixe-me escolher:Não obrigado, pode continuar") == 1 )
    				{
    					set .@Menu$,"";
    					for( set .@i, 0; .@i < 6; set .@i, .@i + 1 )
    						set .@Menu$, .@Menu$ + getitemname(4702 + (.@i * 10)) + ":";
    
    					set .@Enchant, 4702 + ((select(.@Menu$) - 1) * 10);
    					delitem 677,1;
    				}
    			}
    
    			set Zeny, Zeny - 400000;
    
    			if( .@Enchant == 0 )
    			{
    				set .@Rate, rand(50);
    				if( .@Rate < 14 )
    				{ // 14% Break chance
    					failedenchant 2;
    
    					mes "[Shiriublem]";
    					mes "Wah! ...Eu sinto muito, eu falhei.";
    					mes "No entanto, eu sou completamente inocente.";
    					mes "Está é a sua sorte, e ela está destina por Deus?";
    					mes "Não seja tão pessimista, tente da próxima vez.";
    					next;
    					mes "[Shiriublem]";
    					mes "Desejo-lhe boa sorte na próxima vez!";
    					close;
    				}
    				else if( .@Rate < 32 )
    					set .@Enchant, 4700 + (rand(6) * 10); // 18% to become +1 stat
    				else if( .@Rate < 44 )
    					set .@Enchant, 4701 + (rand(6) * 10); // 12% to become +2 stat
    				else
    					set .@Enchant, 4702 + (rand(6) * 10); // 6% to become +3 stat
    			}
    
    			successenchant 2,.@Enchant;
    
    			mes "[Shiriublem]";
    			mes "Ótimo, foi um sucesso.";
    			mes "Sua armadura recebeu o encantamento ^0000FF" + getitemname(.@Enchant) + "^000000.";
    			mes "Foi muito bem feito, parabéns!";
    			next;
    			mes "[Shiriublem]";
    			mes "Desejo ve-lo novamente!";
    			close;
    		case 3:
    			mes "[Shiriublem]";
    			mes "^FFA500Para encantar o chapéu^000000:";
    			mes "a) Eu preciso de Emblemas: 100 de bravura, 100 de valor e 100 de guerra.";
    			mes "b) 500.000 Zeny";
    			mes "c) Se ele já está encantado, exigirá também ^0000FF1 Terra's Bronze Coin^000000.";
    			mes "d) Status é +1 por chance.";
    			mes "e) ^FF0000O chapéu vai perder refinamento e cartas.^000000.";
    			next;
    			if ( select("Tentar encantar","Cancelar") == 2 )
    			{
    				mes "[Shiriublem]";
    				mes "Precisa de algum tempo para pensar sobre isso?";
    				mes "Tudo bem, eu posso entender.";
    				close;
    			}
    			if( !getequipisequiped(1) )
    			{
    				mes "[Shiriublem]";
    				mes "Você não está usando chapéu...";
    				mes "Eu não posso encantar a sua cabeça!";
    				close;
    			}
    			
    			set .@Slot0, getequipcardid(1,0);
    			set .@Slot3, getequipcardid(1,3);
    			set .@NeedCP, 0;
    			
    			if( .@Slot0 == 255 || .@Slot0 == 254 || .@Slot0 < 0 )
    			{
    				mes "[Shiriublem]";
    				mes "I am sorry, i cannot work on Signed items.";
    				close;
    			}
    			
    			if( .@Slot3 != 0 )
    			{
    				set .@NeedCP, 1;
    				mes "[Shiriublem]";
    				mes "Este capacete já está encantando. Além dos emblemas você vai precisar me pagar 1 ^0000FFTerra's Bronze Coin^000000.";
    				next;
    			}
    
    			mes "[Shiriublem]";
    			mes "Você quer encantar o seu " + getitemname(getequipid(1)) + "?";
    			mes "O custo deste trabalho é de ^0000FF100 bravura, 100 valor e 100 guerra^000000.";
    			if( .@NeedCP ) mes "And 1 ^0000FFTerra's Bronze Coin^000000";
    			next;
    			mes "[Shiriublem]";
    			mes "Se você tem os emblemas, podemos ir em frente com a tentativa de encantamento.";
    			mes "Mas antes disso, devo avisá-lo do risco.";
    			next;
    			mes "[Shiriublem]";
    			mes "Uma vez que o chapéu recebe o encantamento, ele não pode mais ser encantado e^FF0000 ele vai perder refinamentos e cartas^000000.";
    			mes "Você ainda quer encantar?";
    			next;
    			if ( select("Tente encantar","Cancelar") == 2 )
    			{
    				mes "Precisa de algum tempo para pensar sobre isso?";
    				mes "Tudo bem, eu posso entender.";
    				close;
    			}
    
    			if( countitem(7828) < 100 || countitem(7829) < 100 || countitem(7773) < 100 || Zeny < 500000 || (.@NeedCP && countitem(8905) < 1) )
    			{
    				mes "[Shiriublem]";
    				mes "Eu gostaria de ir em frente com esta tentativa de encantamento, mas está faltando algumas coisas.";
    				mes "Tem certeza de que você tem os emblemas e o dinheiro?";
    				if( .@NeedCP ) mes "E lembre-se da Terra's Bronze Coin.";
    				close;
    			}
    
    			set .@Slot0, getequipcardid(1,0);
    			set .@Slot3, getequipcardid(1,3);
    
    			if( !getequipisequiped(1) || .@Slot0 == 255 || .@Slot0 == 254 || .@Slot0 < 0 || (.@NeedCP == 0 && .@Slot3 != 0) )
    			{
    				mes "[Shiriublem]";
    				mes "This is not the headgear we were talking about...";
    				mes "Get out of here!!";
    				close;
    			}
    
    			set .@Enchant, 0;
    
    			if( countitem(677) )
    			{
    				mes "[Shiriublem]";
    				mes "Wooo!! Você tem uma Platinum Coin.";
    				mes "Olha, eu posso deixar você escolher o status +1 e o encantamento é seguro em um dos meus chapéis.";
    				mes "Se você me der o seu chapéu e a moeda.";
    				next;
    				if( select("Ok... Vamos encantar:Não obrigado.") == 1 )
    				{
    					set .@Menu$,"";
    					for( set .@i, 0; .@i < 6; set .@i, .@i + 1 )
    						set .@Menu$, .@Menu$ + getitemname(4700 + (.@i * 10)) + ":";
    
    					set .@Enchant, 4700 + ((select(.@Menu$) - 1) * 10);
    					delitem 677,1;
    				}
    			}
    
    			delitem 7828,100;
    			delitem 7829,100;
    			delitem 7773,100;
    			set Zeny, Zeny - 500000;
    			if( .@Enchant == 0 ) set .@Enchant, 4700 + (rand(6) * 10);
    			if( .@NeedCP ) delitem 8905,1;
    			successenchant 1,.@Enchant;
    
    			mes "[Shiriublem]";
    			mes "Ótimo, recebeu ^0000FF" + getitemname(.@Enchant) + "^000000.";
    			mes "Foi muito bem feito, parabéns!";
    			next;
    			mes "[Shiriublem]";
    			mes "Espero ve-lo de novo!";
    			close;
    		case 4:
    			mes "[Shiriublem]";
    			mes "^FFA500Para encantar capa ou sapatos.^000000:";
    			mes "a) 30 Bravura, 30 Valor and 30 Guerra.";
    			mes "b) 200.000 Zeny";
    			mes "c) Os tipos de encantamentos são HP/SP bonus";
    			mes "d) ^FF0000Os equipamentos vão perder refinamentos e cartas^000000.";
    			next;
    			if ( select("Tentar encantar minha capa:Tentar encantar meus sapatos:Cancelar") == 3 )
    			{
    				mes "[Shiriublem]";
    				mes "Precisa de algum tempo para pensar sobre isso?";
    				mes "Tudo bem, eu posso entender.";
    				close;
    			}
    			
    			set .@Equip, 4 + @menu; // Selected option
    			if( !getequipisequiped(.@Equip) )
    			{
    				mes "[Shiriublem]";
    				mes "Você não está usando nada...";
    				mes "Eu não posso encantar seu corpo!";
    				close;
    			}
    
    			set .@Slot0, getequipcardid(.@Equip,0);
    			if( .@Slot0 == 255 || .@Slot0 == 254 || .@Slot0 < 0 )
    			{
    				mes "[Shiriublem]";
    				mes "I am sorry, i cannot work on Signed items.";
    				close;
    			}
    
    			mes "[Shiriublem]";
    			mes "Você quer encantar a sua  " + getitemname(getequipid(.@Equip)) + "?";
    			mes "O custo deste trabalho é ^0000FF30 Bravura, 30 Valor e 30 guerra^000000.";
    			next;
    			mes "[Shiriublem]";
    			mes "Se você tem os emblemas, podemos ir em frente com a tentativa de encantamento.";
    			mes "Mas antes disso, devo avisá-lo do risco.";
    			next;
    			mes "[Shiriublem]";
    			mes "Uma vez que o equipamento recebe o encantamento ^FF0000ele vai perder o refinamento e cartas^000000.";
    			mes "Você ainda quer encantar?";
    			next;
    			if ( select("^FFFF00Encantar com HP^000000:^0000FFEncantar com SP^000000:^FFA500Deixe-me escolher (Platinum Coin)^000000:Cancelar") == 4 )
    			{
    				mes "[Shiriublem]";
    				mes "Precisa de algum tempo para pensar sobre isso?";
    				mes "Tudo bem, eu posso entender.";
    				close;
    			}
    
    			set .@Type, @menu - 1; // 0 : HP | 1 : SP
    			if( countitem(7828) < 30 || countitem(7829) < 30 || countitem(7773) < 30 || Zeny < 200000 )
    			{
    				mes "[Shiriublem]";
    				mes "Eu gostaria de ir em frente com esta tentativa de encantamento, mas está faltando algumas coisas.";
    				mes "Tem certeza de que você tem os emblemas e o dinheiro?";
    				close;
    			}
    
    			set .@Slot0, getequipcardid(.@Equip,0);
    			if( !getequipisequiped(.@Equip) || .@Slot0 == 255 || .@Slot0 == 254 || .@Slot0 < 0 )
    			{
    				mes "[Shiriublem]";
    				mes "This is not the equip we were talking about...";
    				mes "Get out of here!!";
    				close;
    			}
    
    			if( .@Type == 2 && countitem(677) < 1 )
    			{
    				mes "[Shiriublem]";
    				mes "Oh.. ok... and where is the Platinum Coin?";
    				mes "Platinum Coin is the reward for being in the Top 3 Battlegrounds players of the Week.";
    				close;
    			}
    
    			if( .@Type == 2 )
    			{
    				set .@Menu$,"";
    				for( set .@i, 0; .@i < 2; set .@i, .@i + 1 )
    					set .@Menu$, .@Menu$ + getitemname(4996 + (.@i * 3)) + ":";
    
    				set .@Enchant, 4996 + ((select(.@Menu$) - 1) * 3);
    				delitem 677,1;
    			}
    			else
    			{
    				set .@Rate, rand(100);
    				if( .@Rate < 50 )
    					set .@Enchant, 4994 + (.@Type * 3);
    				else if( .@Rate < 85 )
    					set .@Enchant, 4995 + (.@Type * 3);
    				else
    					set .@Enchant, 4996 + (.@Type * 3);
    			}
    
    			delitem 7828,30;
    			delitem 7829,30;
    			delitem 7773,30;
    			set Zeny, Zeny - 200000;
    
    			successenchant .@Equip,.@Enchant;
    
    			mes "[Shiriublem]";
    			mes "Ótimo, seu equipamento recebeu ^0000FF" + getitemname(.@Enchant) + "^000000 enchant.";
    			mes "O encantamento foi muito bem sucedido, parabéns!";
    			next;
    			mes "[Shiriublem]";
    			mes "Espero ve-lo de novo!";
    			close;
    		case 5:
    			mes "[Shiriublem]";
    			mes "^FFA500Para encantar um escudo você precisa:^000000:";
    			mes "a) De 30 Bravura, 30 Valor e 30 Guerra.";
    			mes "b) 200.000 Zeny";
    			mes "c) Os tipos de encantamentos são elemental e racial.";
    			mes "d) ^FF0000O escudo vai perder refinamento e cartas^000000.";
    			next;
    			if ( select("Tentar encantar:Cancelar") == 2 )
    			{
    				mes "[Shiriublem]";
    				mes "Precisa de algum tempo para pensar sobre isso?";
    				mes "Tudo bem, eu posso entender.";
    				close;
    			}
    
    			if( !getequipisequiped(3) )
    			{
    				mes "[Shiriublem]";
    				mes "Você não está usando nada...";
    				mes "Eu não posso encantar suas mãos!";
    				close;
    			}
    			
    			if( getequipweaponlv(3) )
    			{
    				mes "[Shiriublem]";
    				mes "Este encantamento é para escudos, não para armas...";
    				close;
    			}
    
    			set .@Slot0, getequipcardid(3,0);
    			if( .@Slot0 == 255 || .@Slot0 == 254 || .@Slot0 < 0 )
    			{
    				mes "[Shiriublem]";
    				mes "I am sorry, i cannot work on Signed items.";
    				close;
    			}
    
    			mes "[Shiriublem]";
    			mes "Você quer encantar o seu " + getitemname(getequipid(3)) + "?";
    			mes "O custo deste trabalho é de ^0000FF30 Bravura, 30 Valor e 30 Guerra^000000.";
    			next;
    			mes "[Shiriublem]";
    			mes "Se você tem os emblemas, podemos ir em frente com a tentativa de encantamento.";
    			mes "Mas antes disso, devo avisá-lo do risco.";
    			next;
    			mes "[Shiriublem]";
    			mes "Uma vez que o equipamento receber o encantamento ^FF0000ele vai perder o refinamento e cartas^000000.";
    			mes "Você ainda quer encantar?";
    			next;
    			if ( select("^FFFF00Encantar com elemental^000000:^0000FFEncantar com racial^000000:^FFA500Deixe-me escolher (Platinum Coin)^000000:Cancelar") == 4 )
    			{
    				mes "[Shiriublem]";
    				mes "Precisa de algum tempo para pensar sobre isso?";
    				mes "Tudo bem, eu posso entender.";
    				close;
    			}
    
    			set .@Type, @menu; // 1 : Elemental | 2 : Racial
    			if( countitem(7828) < 30 || countitem(7829) < 30 || countitem(7773) < 30 || Zeny < 200000 )
    			{
    				mes "[Shiriublem]";
    				mes "Eu gostaria de ir em frente com esta tentativa de encantamento, mas está faltando algumas coisas.";
    				mes "Tem certeza de que você tem os emblemas?";
    				close;
    			}
    
    			set .@Slot0, getequipcardid(3,0);
    			if( !getequipisequiped(3) || getequipweaponlv(3) || .@Slot0 == 255 || .@Slot0 == 254 || .@Slot0 < 0 )
    			{
    				mes "[Shiriublem]";
    				mes "This is not the equip we were talking about...";
    				mes "Get out of here!!";
    				close;
    			}
    
    			if( .@Type == 3 && countitem(677) < 1 )
    			{
    				mes "[Shiriublem]";
    				mes "Oh.. ok... and where is the Platinum Coin?";
    				mes "Platinum Coin is the reward for being in the Top 3 Battlegrounds players of the Week.";
    				close;
    			}
    
    			switch( .@Type )
    			{
    			case 1: // Elemental
    				set .@Enchant, 4979 + rand(5);
    				break;
    			case 2: // Racial
    				set .@Enchant, 4984 + rand(10);
    				break;
    			case 3: // Selective
    				set .@Menu$,"";
    				for( set .@i, 4979; .@i <= 4993; set .@i, .@i + 1 )
    					set .@Menu$, .@Menu$ + getitemname(.@i) + ":";
    
    				set .@Enchant, 4978 + select(.@Menu$);
    				delitem 677,1;
    				break;
    			}
    
    			delitem 7828,30;
    			delitem 7829,30;
    			delitem 7773,30;
    			set Zeny, Zeny - 200000;
    
    			successenchant 3,.@Enchant;
    
    			mes "[Shiriublem]";
    			mes "Ótimo, seu equipamento recebeu ^0000FF" + getitemname(.@Enchant) + "^000000 enchant.";
    			mes "O trabalho foi muito bem sucedido, parabéns!";
    			next;
    			mes "[Shiriublem]";
    			mes "Espero ve-lo de novo!";
    			close;
    		case 6:
    			mes "[Shiriublem]";
    			mes "^FFA500Para encantar seu acessório^000000:";
    			mes "a) Preciso de 750 Bravura, 750 Valor e 500 Guerra.";
    			mes "b) 1.000.000 Zeny";
    			mes "c) O tipo de encantamento é bonus na capacidade de carga.";
    			mes "d) ^FF0000O acessório perderá cartas^000000.";
    			next;
    
    			setarray .@Position$[7], "Acessório 1","Acessório 2";
    			set .@Menu$,"";
    			for( set .@i, 7; .@i <= 8; set .@i, .@i + 1 )
    			{
    				if( getequipisequiped(.@i) )
    					set .@Menu$, .@Menu$ + .@Position$[.@i] + "-" + "[" + getequipname(.@i) + "]";
    				set .@Menu$, .@Menu$ + ":";
    			}
    
    			set .@Part,select(.@Menu$ + "Cancel") + 6;
    			if( .@Part >= 9 )
    			{
    				mes "[Shiriublem]";
    				mes "Precisa de algum tempo para pensar sobre isso?";
    				mes "Tudo bem, eu posso entender.";
    				close;
    			}
    			if( !getequipisequiped(.@Part) )
    			{
    				mes "[Shiriublem]";
    				mes "Você não está usando nada...";
    				close;
    			}
    
    			set .@Slot0, getequipcardid(.@Part,0);
    			if( .@Slot0 == 255 || .@Slot0 == 254 || .@Slot0 < 0 )
    			{
    				mes "[Shiriublem]";
    				mes "I am sorry, i cannot work on Signed items.";
    				close;
    			}
    
    			set .@Item, getequipid(.@Part);
    
    			mes "[Shiriublem]";
    			mes "Você quer encantar o seu " + getitemname(.@Item) + "?";
    			mes "O custo deste trabalho é de ^0000FF750 Bravura, 750 Valor e 500 Guerra^000000.";
    			next;
    			mes "[Shiriublem]";
    			mes "Se você tem os emblemas, podemos ir em frente com a tentativa de encantamento.";
    			mes "Mas antes disso, devo avisá-lo do risco.";
    			next;
    			mes "[Shiriublem]";
    			mes "Uma vez que o acessório receber o encantamento ^FF0000ele irá perder as cartas^000000.";
    			mes "Você ainda quer encantar?";
    			next;
    			if ( select("^0000FFEncanta-lo^000000:Cancelar") == 2 )
    			{
    				mes "[Shiriublem]";
    				mes "Precisa de algum tempo para pensar sobre isso?";
    				mes "Tudo bem, eu posso entender.";
    				close;
    			}
    
    			if( countitem(7828) < 750 || countitem(7829) < 750 || countitem(7773) < 500 || Zeny < 1000000 )
    			{
    				mes "[Shiriublem]";
    				mes "Eu gostaria de ir em frente com esta tentativa de encantamento, mas está faltando algumas coisas.";
    				mes "Tem certeza de que você tem os emblemas?";
    				close;
    			}
    
    			set .@Slot0, getequipcardid(.@Part,0);
    			if( !getequipisequiped(.@Part) || .@Slot0 == 255 || .@Slot0 == 254 || .@Slot0 < 0 || .@Item != getequipid(.@Part) )
    			{
    				mes "[Shiriublem]";
    				mes "This is not the equip we were talking about...";
    				mes "Get out of here!!";
    				close;
    			}
    
    			delitem 7828,750;
    			delitem 7829,750;
    			delitem 7773,500;
    			set Zeny, Zeny - 1000000;
    			successenchant .@Part,4963;
    
    			mes "[Shiriublem]";
    			mes "Ótimo, você recebeu ^0000FF" + getitemname(4963) + "^000000 enchant.";
    			mes "O trabalho foi muito bem sucedido, parabéns!";
    			next;
    			mes "[Shiriublem]";
    			mes "Espero ve-lo de novo!";
    			close;
    		case 7:
    			mes "[Shiriublem]";
    			mes "Bem, eu realmente não tenho refinado a arte de encantamento.";
    			mes "É tão complicado que eu estaria mentindo se eu dissesse que eu sei de todos os fatores que afetaram o processo.";
    			mes "Ainda assim, eu faço notar algumas tendências...";
    			next;
    			mes "[Shiriublem]";
    			mes "Quando uma armadura for encantada, ela irá mostar um slot especial escondido com uma jóia nele.";
    			mes "Isto irá conceder um status adiciona para a armadura, e com valores diferentes.";
    			next;
    			mes "[Shiriublem]";
    			mes "Você deve saber que a armadura perderá seus refinamentos, cartas e encantamentos anteriores.";
    			mes "E talvez a armadura também, se eu falhar...";
    			next;
    			mes "[Shiriublem]";
    			mes "Você quer saber qual armadura pode ser encantada?.";
    			mes "Diga-me o que você quer explorar nesta lista...";
    			next;
    			deletearray .@Armor[0],127;
    			switch( select( "Armaduras sem slot","Armaduras com slot","Armaduras de elite" ) )
    			{
    				case 1: setarray .@Armor[0],2358,2307,2309,2314,2316,2321,2325,2327,2330,2332,2334,2335,2341,2344,2346,2348,2350,2337,2386; break;
    				case 2: setarray .@Armor[0],2311,2318,2319,2320,2308,2310,2315,2317,2322,2324,2326,2331,2333,2336,2342,2345,2347,2349,2351; break;
    				case 3: setarray .@Armor[0],2364,2365,2374,2375,2387,2389,2391,2390,2376,2377,2378,2379,2380,2381,2382,2394,2395,2396; break;
    			}
    			
    			mes "^0000FF** Lista de armadura **^000000";
    			for( set .@i, 0; .@i < getarraysize(.@Armor); set .@i, .@i + 1 )
    				mes "" + getitemname(.@Armor[.@i]) + "";
    			
    			next;
    			mes "[Shiriublem]";
    			mes "Fale comigo de novo se você quiser encantar sua armadura ou se precisar de masi informações.";
    			close;
    		case 8:
    			mes "[Shiriublem]";
    			mes "Acalme-se aventureiro.";
    			mes "Se você quiser tentar encantar suas armaduras, volte e me avise.";
    			mes "Até~";
    			close;
    	}
    }

     

    When it is loaded, it has an error in the lines:

    *  137 :                        's'uccessenchant .@Part,.@Enchant;

    *  246 :                                        'f'ailedenchant 2;

     

     

    I tried to make some changes in the source to try to solve, but I did not succeed

    Can anyone tell me how to solve this problem?

  15. I tried a number of ways by skill_db , status.c and skill.c and could not block = x

    Does anyone have any idea to block it?

     

    @Edit

     

    I got making the following changes




    case MO_BODYRELOCATION:
    +        if(sd && sd->sc.data[SC_ANKLE] ){
    +           clif_skill_fail(sd,skill_id,0,0);
    +            return 0;
    +        }
    if (unit_movepos(src, x, y, 1, 1)) {
    #if PACKETVER >= 20111005
    clif_snap(src, src->x, src->y);
    #else
    clif_skill_poseffect(src,skill_id,skill_lv,src->x,src->y,tick);
    #endif
    if (sd)
    skill_blockpc_start (sd, MO_EXTREMITYFIST, 2000);
    }
    break;


  16. Okay, i modificated my hashield compilation, solved this compilation error;

     

     

    char.c

     

    GYVRYQG.png

     

     

     

    and char_clif.c

     

    Do0lyC9.png

     

     

    and hashield_char.c

     

    Am0FvlU.png

     

     

     

     

     

    Finish! 

     

     

    My serv work 100% (+150 ON players)

     

     

    sorry my bad english  :-()

    Muito obrigado!! Consegui compilar com sucesso. Agora o que está acontecendo é quando vou logar no jogo através do hashield, na área de login ele fala que a conta não está registrada, sendo que esta.

     

    @English

    Thank you!! I managed to successfully compile. Now what is happening is when I log into the game via hashield in the area of ​​login he says that the account is not registered , and this .

  17. The problem happens when I add the following lines :

     

     

    src/char/char.c

     

    + =  added by me

    char_set_charselect(sd->account_id);
    +hashield_account_connected(sd->account_id);
      src/char/char_clif.c
    cmd = RFIFOW(fd,0);
    switch( cmd ) {
    +case 0x4444: next=hashield_connect(fd); break;case 0x65: next=chclif_parse_reqtoconnect(fd,sd,ipl); break;
    // char select
    case 0x66: next=chclif_parse_charselect(fd,sd,ipl); break;
    // createnewchar
    case 0x970: next=chclif_parse_createnewchar(fd,sd,cmd); break;
    case 0x67: next=chclif_parse_createnewchar(fd,sd,cmd); break;
    // delete char
    case 0x68: next=chclif_parse_delchar(fd,sd,cmd); break; //
    case 0x1fb: next=chclif_parse_delchar(fd,sd,cmd); break; // 2004-04-19aSakexe+ langtype 12 char deletion packet
    // client keep-alive packet (every 12 seconds)
    case 0x187: next=chclif_parse_keepalive(fd); break;
    // char rename
    case 0x8fc: next=chclif_parse_reqrename(fd,sd,cmd); break; //request <date/version?>
    case 0x28d: next=chclif_parse_reqrename(fd,sd,cmd); break; //request <date/version?>
    case 0x28f: next=chclif_parse_ackrename(fd,sd); break; //Confirm change name.
    // captcha
    case 0x7e5: next=chclif_parse_reqcaptcha(fd); break; // captcha code request (not implemented)
    case 0x7e7: next=chclif_parse_chkcaptcha(fd); break; // captcha code check (not implemented)
    // deletion timer request
    case 0x827: next=chclif_parse_char_delete2_req(fd, sd); break;
    // deletion accept request
    case 0x829: next=chclif_parse_char_delete2_accept(fd, sd); break;
    // deletion cancel request
    case 0x82b: next=chclif_parse_char_delete2_cancel(fd, sd); break;
    // login as map-server
    case 0x2af8: chclif_parse_maplogin(fd); return 0; // avoid processing of followup packets here
    #if PACKETVER_SUPPORTS_PINCODE
    //pincode
    case 0x8b8: next=chclif_parse_pincode_check( fd, sd ); break; // checks the entered pin
    case 0x8c5: next=chclif_parse_reqpincode_window(fd,sd); break; // request for PIN window
    case 0x8be: next=chclif_parse_pincode_change( fd, sd ); break; // pincode change request
    case 0x8ba: next=chclif_parse_pincode_setnew( fd, sd ); break; // activate PIN system and set first PIN
    #endif
    // character movement request
    case 0x8d4: next=chclif_parse_moveCharSlot(fd,sd); break;
    case 0x9a1: next=chclif_parse_req_charlist(fd,sd); break;
    
     
     
    After adding these lines , of the following error:
     

     

     

    1>Build started 01/02/2016 21:03:05.

    2>Build started 01/02/2016 21:03:05.
    2>_PrepareForClean:
    2>  Deleting file "login-server\Debug\login-server.lastbuildstate".
    1>_PrepareForClean:
    1>  Deleting file "map-server\Debug\map-server.lastbuildstate".
    4>Build started 01/02/2016 21:03:05.
    3>Build started 01/02/2016 21:03:05.
    3>_PrepareForClean:
    3>  Deleting file "char-server\Debug\char-server.lastbuildstate".
    4>_PrepareForClean:
    4>  Deleting file "mapcache\Debug\mapcache.lastbuildstate".
    3>InitializeBuildStatus:
    3>  Touching "char-server\Debug\char-server.unsuccessfulbuild".
    2>InitializeBuildStatus:
    2>  Creating "login-server\Debug\login-server.unsuccessfulbuild" because "AlwaysCreate" was specified.
    4>InitializeBuildStatus:
    4>  Creating "mapcache\Debug\mapcache.unsuccessfulbuild" because "AlwaysCreate" was specified.
    1>InitializeBuildStatus:
    1>  Creating "map-server\Debug\map-server.unsuccessfulbuild" because "AlwaysCreate" was specified.
    3>ClCompile:
    3>  grammar.c
    3>  libconfig.c
    3>  scanctx.c
    3>  scanner.c
    3>  strbuf.c
    3>  mt19937ar.c
    4>ClCompile:
    4>  core.c
    3>  conf.c
    1>ClCompile:
    1>  grammar.c
    1>  libconfig.c
    2>ClCompile:
    2>  grammar.c
    2>  libconfig.c
    4>  des.c
    4>  grfio.c
    2>  scanctx.c
    4>  malloc.c
    1>  scanctx.c
    2>  scanner.c
    2>  strbuf.c
    1>  scanner.c
    3>  core.c
    4>  showmsg.c
    4>  strlib.c
    2>  mt19937ar.c
    1>  strbuf.c
    2>  conf.c
    4>  utils.c
    3>  db.c
    3>  ers.c
    1>  mt19937ar.c
    3>  malloc.c
    1>  conf.c
    1>  core.c
    2>  mempool.c
    1>  db.c
    4>  mapcache.c
    2>  mutex.c
    1>  des.c
    2>  raconf.c
    3>  mapindex.c
    3>  mempool.c
    3>  mutex.c
    3>  nullpo.c
    1>  ers.c
    1>  grfio.c
    3>  raconf.c
    2>  thread.c
    3>  random.c
    2>  core.c
    2>  db.c
    3>  showmsg.c
    3>  socket.c
    1>  malloc.c
    2>  ers.c
    1>  mapindex.c
    1>  md5calc.c
    1>  mempool.c
    3>  sql.c
    1>  mutex.c
    1>  nullpo.c
    2>  malloc.c
    1>  raconf.c
    3>  strlib.c
    2>  md5calc.c
    2>  nullpo.c
    2>  random.c
    1>  random.c
    3>  thread.c
    1>  showmsg.c
    1>  socket.c
    1>  sql.c
    3>  timer.c
    2>  showmsg.c
    1>  strlib.c
    2>  socket.c
    3>  utils.c
    2>  sql.c
    2>  strlib.c
    3>  msg_conf.c
    2>  timer.c
    1>  thread.c
    2>  utils.c
    3>  cli.c
    2>  msg_conf.c
    1>  timer.c
    3>  char.c
    3>  char_clif.c
    1>  utils.c
    1>  msg_conf.c
    2>  cli.c
    3>  char_cnslif.c
    2>  account.c
    2>  ipban.c
    3>  char_logif.c
    1>  cli.c
    1>  atcommand.c
    3>  char_mapif.c
    3>  int_auction.c
    3>  int_elemental.c
    1>  battle.c
    2>  login.c
    3>  int_guild.c
    2>  loginchrif.c
    2>  loginclif.c
    2>  logincnslif.c
    1>  battleground.c
    1>  buyingstore.c
    2>  loginlog.c
    1>  cashshop.c
    1>  channel.c
    3>c:\users\gustavo\desktop\rathena-master\src\char\char_clif.c(1211): warning C4013: 'hashield_connect' undefined; assuming extern returning int
    1>  chat.c
    1>  chrif.c
    3>  int_homun.c
    3>  int_mail.c
    3>  int_mercenary.c
    3>  int_party.c
    3>  int_pet.c
    3>  int_quest.c
    1>  clif.c
    3>  int_storage.c
    3>  inter.c
    1>  date.c
    1>  duel.c
    1>  elemental.c
    1>  guild.c
    1>  intif.c
    1>  itemdb.c
    1>  log.c
    1>  mail.c
    1>  map.c
    1>  mapreg.c
    1>  homunculus.c
    1>  instance.c
    1>  mercenary.c
    1>  mob.c
    1>  npc.c
    1>  npc_chat.c
    1>  party.c
    1>  path.c
    1>  pc.c
    1>  pc_groups.c
    1>  pet.c
    1>  quest.c
    1>  script.c
    1>  searchstore.c
    4>Manifest:
    4>  Deleting file "mapcache\Debug\mapcache.exe.embed.manifest".
    1>  skill.c
    1>  status.c
    1>  storage.c
    1>  trade.c
    1>  unit.c
    1>  vending.c
    2>Manifest:
    2>  Deleting file "login-server\Debug\login-server.exe.embed.manifest".
    3>char_clif.obj : error LNK2019: unresolved external symbol _hashield_connect referenced in function _chclif_parse
    3>..\char-server.exe : fatal error LNK1120: 1 unresolved externals
    3>
    3>Build FAILED.
    3>
    3>Time Elapsed 00:00:09.38
    4>LinkEmbedManifest:
    4>  mapcache.vcxproj -> C:\Users\Gustavo\Desktop\rathena-master\vcproj-10\..\mapcache.exe
    4>FinalizeBuildStatus:
    4>  Deleting file "mapcache\Debug\mapcache.unsuccessfulbuild".
    4>  Touching "mapcache\Debug\mapcache.lastbuildstate".
    4>
    4>Build succeeded.
    4>
    4>Time Elapsed 00:00:11.08
    1>Manifest:
    1>  Deleting file "map-server\Debug\map-server.exe.embed.manifest".
    2>LinkEmbedManifest:
    2>  login-server.vcxproj -> C:\Users\Gustavo\Desktop\rathena-master\vcproj-10\..\login-server.exe
    2>FinalizeBuildStatus:
    2>  Deleting file "login-server\Debug\login-server.unsuccessfulbuild".
    2>  Touching "login-server\Debug\login-server.lastbuildstate".
    2>
    2>Build succeeded.
    2>
    2>Time Elapsed 00:00:12.19
    1>LinkEmbedManifest:
    1>  map-server.vcxproj -> C:\Users\Gustavo\Desktop\rathena-master\vcproj-10\..\map-server.exe
    1>FinalizeBuildStatus:
    1>  Deleting file "map-server\Debug\map-server.unsuccessfulbuild".
    1>  Touching "map-server\Debug\map-server.lastbuildstate".
    1>
    1>Build succeeded.
    1>
    1>Time Elapsed 00:00:14.77
    ========== Rebuild All: 3 succeeded, 1 failed, 0 skipped ==========

     

     
     

     

×
×
  • Create New...