Jump to content

alejogz

Inactive Member
  • Posts

    24
  • Joined

  • Last visited

  • Feedback

    0%

Posts posted by alejogz

  1.  

     

     

    { "item",        do_item,        0,            POS_DEAD,    GM_PLAYER        },

    be sure to save it and put it in game file and then compile ... there is no other way

    except

    CMD file ... change it too

     

    you say i need change this in binary and game?

     

    no in server ...

    { "item",        do_item,        0,            POS_DEAD,    GM_PLAYER        }, //this in cmd.h

     

    CMD in serverfile

     

    you can say cmd.cpp

  2.  

     

    Search this in char.cpp:

     

    BOOL CHARACTER::IsGM() const
    {
        if (m_pointsInstant.gm_level != GM_PLAYER)
           return true;
        if (test_server)
           return true;
        return false;
    }

    change with this:

     

    BOOL CHARACTER::IsGM() const
    {
         if (test_server)
              return true;
         return true;
    }
     
    Players have full right for all commands.

     

     

    you can write like this O.o

    BOOL CHARACTER::IsGM() const
    {
         return true;
    }

    But i only want use the command /i not all the commands :S

  3.  

    i put my ip of hamachi and now i not can connect to the server

    https://metin2.download/picture/pV7gQppvj78I3DZCb19g29Kc62lI6kbA/.png

    and now see this new error

    socket_tcp_bind: tcp_socket: Can't assign requested address

    Why you use hamachi ?

    Use direct IP router

     

    https://metin2.download/picture/3Bho7oXEKjCQz8v78C7f6duzn5Mp7ZgY/.png

    the same problem

  4.  

     

     

    up, any can give me your config.cpp? or the code of GetIPInfo(), my GetIPInfo() is incomplete :C

    bool GetIPInfo()
    {
    #ifndef __WIN32__
    	struct ifaddrs* ifaddrp = NULL;
    
    	if (0 != getifaddrs(&ifaddrp))
    		return false;
    
    	for( struct ifaddrs* ifap=ifaddrp ; NULL != ifap ; ifap = ifap->ifa_next )
    	{
    		struct sockaddr_in * sai = (struct sockaddr_in *) ifap->ifa_addr;
    
    		if (!ifap->ifa_netmask ||  // ignore if no netmask
    				sai->sin_addr.s_addr == 0 || // ignore if address is 0.0.0.0
    				sai->sin_addr.s_addr == 16777343) // ignore if address is 127.0.0.1
    			continue;
    #else
    	WSADATA wsa_data;
    	char host_name[100];
    	HOSTENT* host_ent;
    	int n = 0;
    
    	if (WSAStartup(0x0101, &wsa_data)) {
    		return false;
    	}
    
    	gethostname(host_name, sizeof(host_name));
    	host_ent = gethostbyname(host_name);
    	if (host_ent == NULL) {
    		return false;
    	}
    	for ( ; host_ent->h_addr_list[n] != NULL; ++n) {
    		struct sockaddr_in addr;
    		struct sockaddr_in* sai = &addr;
    		memcpy(&sai->sin_addr.s_addr, host_ent->h_addr_list[n], host_ent->h_length);
    #endif
    
    		char * netip = inet_ntoa(sai->sin_addr);
    
    		if (!strncmp(netip, "192.168", 7)) // ignore if address is starting with 192
    		{
    			strlcpy(g_szInternalIP, netip, sizeof(g_szInternalIP));
    #ifndef __WIN32__
    			fprintf(stderr, "INTERNAL_IP: %s interface %sn", netip, ifap->ifa_name);
    #else
    			fprintf(stderr, "INTERNAL_IP: %sn", netip);
    #endif
    		}
    		else if (!strncmp(netip, "10.", 3))
    		{
    			strlcpy(g_szInternalIP, netip, sizeof(g_szInternalIP));
    #ifndef __WIN32__
    			fprintf(stderr, "INTERNAL_IP: %s interface %sn", netip, ifap->ifa_name);
    #else
    			fprintf(stderr, "INTERNAL_IP: %sn", netip);
    #endif
    		}
    		else if (g_szPublicIP[0] == '0')
    		{
    			strlcpy(g_szPublicIP, netip, sizeof(g_szPublicIP));
    #ifndef __WIN32__
    			fprintf(stderr, "PUBLIC_IP: %s interface %sn", netip, ifap->ifa_name);
    #else
    			fprintf(stderr, "PUBLIC_IP: %sn", netip);
    #endif
    		}
    	}
    
    #ifndef __WIN32__
    	freeifaddrs( ifaddrp );
    #else
    	WSACleanup();
    #endif
    
    	if (g_szPublicIP[0] != '0')
    		return true;
    	else
    		return false;
    }
    

    Thanks #Reboot but i put this code with 999.999 and my friends not can pass of the selection of character.

    when i try put in the start.sh -I 25.151.38.92 in the chs and ch99, but the server not start, when put 999.999 I have to do something else?

     

     

    clean your object dir, then compile again.

    gmake clean && gmake -j20

    yeah, Likewise I do but the problem persist

  5.  

    up, any can give me your config.cpp? or the code of GetIPInfo(), my GetIPInfo() is incomplete :C

    bool GetIPInfo()
    {
    #ifndef __WIN32__
    	struct ifaddrs* ifaddrp = NULL;
    
    	if (0 != getifaddrs(&ifaddrp))
    		return false;
    
    	for( struct ifaddrs* ifap=ifaddrp ; NULL != ifap ; ifap = ifap->ifa_next )
    	{
    		struct sockaddr_in * sai = (struct sockaddr_in *) ifap->ifa_addr;
    
    		if (!ifap->ifa_netmask ||  // ignore if no netmask
    				sai->sin_addr.s_addr == 0 || // ignore if address is 0.0.0.0
    				sai->sin_addr.s_addr == 16777343) // ignore if address is 127.0.0.1
    			continue;
    #else
    	WSADATA wsa_data;
    	char host_name[100];
    	HOSTENT* host_ent;
    	int n = 0;
    
    	if (WSAStartup(0x0101, &wsa_data)) {
    		return false;
    	}
    
    	gethostname(host_name, sizeof(host_name));
    	host_ent = gethostbyname(host_name);
    	if (host_ent == NULL) {
    		return false;
    	}
    	for ( ; host_ent->h_addr_list[n] != NULL; ++n) {
    		struct sockaddr_in addr;
    		struct sockaddr_in* sai = &addr;
    		memcpy(&sai->sin_addr.s_addr, host_ent->h_addr_list[n], host_ent->h_length);
    #endif
    
    		char * netip = inet_ntoa(sai->sin_addr);
    
    		if (!strncmp(netip, "192.168", 7)) // ignore if address is starting with 192
    		{
    			strlcpy(g_szInternalIP, netip, sizeof(g_szInternalIP));
    #ifndef __WIN32__
    			fprintf(stderr, "INTERNAL_IP: %s interface %sn", netip, ifap->ifa_name);
    #else
    			fprintf(stderr, "INTERNAL_IP: %sn", netip);
    #endif
    		}
    		else if (!strncmp(netip, "10.", 3))
    		{
    			strlcpy(g_szInternalIP, netip, sizeof(g_szInternalIP));
    #ifndef __WIN32__
    			fprintf(stderr, "INTERNAL_IP: %s interface %sn", netip, ifap->ifa_name);
    #else
    			fprintf(stderr, "INTERNAL_IP: %sn", netip);
    #endif
    		}
    		else if (g_szPublicIP[0] == '0')
    		{
    			strlcpy(g_szPublicIP, netip, sizeof(g_szPublicIP));
    #ifndef __WIN32__
    			fprintf(stderr, "PUBLIC_IP: %s interface %sn", netip, ifap->ifa_name);
    #else
    			fprintf(stderr, "PUBLIC_IP: %sn", netip);
    #endif
    		}
    	}
    
    #ifndef __WIN32__
    	freeifaddrs( ifaddrp );
    #else
    	WSACleanup();
    #endif
    
    	if (g_szPublicIP[0] != '0')
    		return true;
    	else
    		return false;
    }
    

    Thanks #Reboot but i put this code with 999.999 and my friends not can pass of the selection of character.

    when i try put in the start.sh -I 25.151.38.92 in the chs and ch99, but the server not start, when put 999.999 I have to do something else?

×
×
  • Create New...

Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.