Jump to content
  • 0

R> Modify @go map list


Question

Posted

Hello Guys,

Could anyone help me on this? I was able to change the warp of @go 0 (will warp to hugel) and @go 22 (will warp to prontera). However, i'm missing the part where to update the map list when player typed the @go command.

 

I followed this 

 

but for this part, i'm not seeing the below script in my src/map/atcommand.c

 

if (!message || !*message || sscanf(message, "%11s", map_name) < 1 || town < 0 || town >= ARRAYLENGTH(data)) {
 clif_displaymessage(fd, msg_txt(38)); // Invalid location number, or name.
 clif_displaymessage(fd, msg_txt(82)); // Please provide a name or number from the list provided:
 clif_displaymessage(fd, " 0=Prontera		 1=Morroc	   2=Geffen");
 clif_displaymessage(fd, " 3=Payon		    4=Alberta	  5=Izlude");
 clif_displaymessage(fd, " 6=Al De Baran	  7=Lutie	    8=Comodo");
 clif_displaymessage(fd, " 9=Yuno			 10=Amatsu	  11=Gonryun");
 clif_displaymessage(fd, " 12=Umbala		  13=Niflheim    14=Louyang");
 clif_displaymessage(fd, " 15=Novice Grounds  16=Prison	  17=Jawaii");
 clif_displaymessage(fd, " 18=Ayothaya	    19=Einbroch    20=Lighthalzen");
 clif_displaymessage(fd, " 21=Einbech		 22=Hugel	   23=Rachel");
 clif_displaymessage(fd, " 24=Veins		   25=Moscovia    26=Brasilis");
 clif_displaymessage(fd, " 27=Manuk		   28=Splendide");
 return -1;
}

the suggestion from this link is also not available on my conf.

 

so when i @go, prontera is still assigned to 0 on text msg.

image.png.4a5af2233b5cb4f73c27c0dc6516b776.png

 

attaching as well the edited version of my @go

atcommand.c

/*==========================================
 * @go [city_number or city_name] - Updated by Harbin
 *------------------------------------------*/
ACMD_FUNC(go)
{
	int i;
	int town;
	char map_name[MAP_NAME_LENGTH];

	const struct {
		char map[MAP_NAME_LENGTH];
		int x, y;
	} data[] = {
		//{ MAP_PRONTERA,    156, 191 }, //  0=Prontera /default
		{ MAP_HUGEL,        96, 145 }, //  0=hugel //
		{ MAP_MORROC,      156,  93 }, //  1=Morroc
		{ MAP_GEFFEN,      119,  59 }, //  2=Geffen
		{ MAP_PAYON,       162, 233 }, //  3=Payon
		{ MAP_ALBERTA,     192, 147 }, //  4=Alberta
#ifdef RENEWAL
		{ MAP_IZLUDE,      128, 146 }, //  5=Izlude (Renewal)
#else
		{ MAP_IZLUDE,      128, 114 }, //  5=Izlude
#endif
		{ MAP_ALDEBARAN,   140, 131 }, //  6=Al de Baran
		{ MAP_LUTIE,       147, 134 }, //  7=Lutie
		{ MAP_COMODO,      209, 143 }, //  8=Comodo
		{ MAP_YUNO,        157,  51 }, //  9=Yuno
		{ MAP_AMATSU,      198,  84 }, // 10=Amatsu
		{ MAP_GONRYUN,     160, 120 }, // 11=Gonryun
		{ MAP_UMBALA,       89, 157 }, // 12=Umbala
		{ MAP_NIFLHEIM,     21, 153 }, // 13=Niflheim
		{ MAP_LOUYANG,     217,  40 }, // 14=Louyang
#ifdef RENEWAL
		{ MAP_NOVICE,       18, 26  }, // 15=Training Grounds (Renewal)
#else
		{ MAP_NOVICE,       53, 111 }, // 15=Training Grounds
#endif
		{ MAP_JAIL,         23,  61 }, // 16=Prison
		{ MAP_JAWAII,      249, 127 }, // 17=Jawaii
		{ MAP_AYOTHAYA,    151, 117 }, // 18=Ayothaya
		{ MAP_EINBROCH,     64, 200 }, // 19=Einbroch
		{ MAP_LIGHTHALZEN, 158,  92 }, // 20=Lighthalzen
		{ MAP_EINBECH,      70,  95 }, // 21=Einbech
		//{ MAP_HUGEL,        96, 145 }, // 22=Hugel //default changed to pront
		{ MAP_PRONTERA,    156, 191 }, // 22=Prontera
		{ MAP_RACHEL,      130, 110 }, // 23=Rachel
		{ MAP_VEINS,       216, 123 }, // 24=Veins
		{ MAP_MOSCOVIA,    223, 184 }, // 25=Moscovia
		{ MAP_MIDCAMP,     180, 240 }, // 26=Midgard Camp
		{ MAP_MANUK,       282, 138 }, // 27=Manuk
		{ MAP_SPLENDIDE,   201, 147 }, // 28=Splendide
		{ MAP_BRASILIS,    182, 239 }, // 29=Brasilis
		{ MAP_DICASTES,    198, 187 }, // 30=El Dicastes
		{ MAP_MORA,         44, 151 }, // 31=Mora
		{ MAP_DEWATA,      200, 180 }, // 32=Dewata
		{ MAP_MALANGDO,    140, 114 }, // 33=Malangdo Island
		{ MAP_MALAYA,      242, 211 }, // 34=Malaya Port
		{ MAP_ECLAGE,      110,  39 }, // 35=Eclage
		{ MAP_LASAGNA,     193, 182 }, // 36=Lasagna
	};

	nullpo_retr(-1, sd);

	if( map_getmapflag(sd->bl.m, MF_NOGO) && !pc_has_permission(sd, PC_PERM_WARP_ANYWHERE) ) {
		clif_displaymessage(sd->fd,msg_txt(sd,995)); // You cannot use @go on this map.
		return 0;
	}

	memset(map_name, '\0', sizeof(map_name));
	memset(atcmd_output, '\0', sizeof(atcmd_output));

	// get the number
	town = atoi(message);

	if (!message || !*message || sscanf(message, "%11s", map_name) < 1 || town < 0 || town >= ARRAYLENGTH(data))
	{// no value matched so send the list of locations
		const char* text;

		// attempt to find the text help string
		text = atcommand_help_string( command );

		clif_displaymessage(fd, msg_txt(sd,38)); // Invalid location number, or name.

		if( text )
		{// send the text to the client
			clif_displaymessage( fd, text );
		}

		return -1;
	}

	// get possible name of the city
	map_name[MAP_NAME_LENGTH-1] = '\0';
	for (i = 0; map_name[i]; i++)
		map_name[i] = TOLOWER(map_name[i]);
	// try to identify the map name
	//if (strncmp(map_name, "prontera", 3) == 0) { //budekzkie default
	if (strncmp(map_name, "hugel", 3) == 0) {
		town = 0;
	} else if (strncmp(map_name, "morocc", 4) == 0 ||
	           strncmp(map_name, "morroc", 4) == 0) {
		town = 1;
	} else if (strncmp(map_name, "geffen", 3) == 0) {
		town = 2;
	} else if (strncmp(map_name, "payon", 3) == 0) {
		town = 3;
	} else if (strncmp(map_name, "alberta", 3) == 0) {
		town = 4;
	} else if (strncmp(map_name, "izlude", 3) == 0) {
		town = 5;
	} else if (strncmp(map_name, "aldebaran", 3) == 0) {
		town = 6;
	} else if (strncmp(map_name, "lutie", 3) == 0 ||
	           strcmp(map_name,  "christmas") == 0 ||
	           strncmp(map_name, "xmas", 3) == 0 ||
	           strncmp(map_name, "x-mas", 3) == 0) {
		town = 7;
	} else if (strncmp(map_name, "comodo", 3) == 0) {
		town = 8;
	} else if (strncmp(map_name, "juno", 3) == 0 ||
	           strncmp(map_name, "yuno", 3) == 0) {
		town = 9;
	} else if (strncmp(map_name, "amatsu", 3) == 0) {
		town = 10;
	} else if (strncmp(map_name, "kunlun", 3) == 0 ||
	           strncmp(map_name, "gonryun", 3) == 0) {
		town = 11;
	} else if (strncmp(map_name, "umbala", 3) == 0) {
		town = 12;
	} else if (strncmp(map_name, "niflheim", 3) == 0) {
		town = 13;
	} else if (strncmp(map_name, "louyang", 3) == 0) {
		town = 14;
	} else if (strncmp(map_name, "new_1-1", 3) == 0 ||
	           strncmp(map_name, "startpoint", 3) == 0 ||
	           strncmp(map_name, "beginning", 3) == 0) {
		town = 15;
	} else if (strncmp(map_name, "sec_pri", 3) == 0 ||
	           strncmp(map_name, "prison", 3) == 0 ||
	           strncmp(map_name, "jail", 3) == 0) {
		town = 16;
	} else if (strncmp(map_name, "jawaii", 3) == 0) {
		town = 17;
	} else if (strncmp(map_name, "ayothaya", 3) == 0) {
		town = 18;
	} else if (strncmp(map_name, "einbroch", 5) == 0) {
		town = 19;
	} else if (strncmp(map_name, "lighthalzen", 3) == 0) {
		town = 20;
	} else if (strncmp(map_name, "einbech", 5) == 0) {
		town = 21;
//	} else if (strncmp(map_name, "hugel", 3) == 0) { //default change to pront
	} else if (strncmp(map_name, "prontera", 3) == 0) { 
		town = 22;
	} else if (strncmp(map_name, "rachel", 3) == 0) {
		town = 23;
	} else if (strncmp(map_name, "veins", 3) == 0) {
		town = 24;
	} else if (strncmp(map_name, "moscovia", 3) == 0) {
		town = 25;
	} else if (strncmp(map_name, "mid_camp", 3) == 0) {
		town = 26;
	} else if (strncmp(map_name, "manuk", 3) == 0) {
		town = 27;
	} else if (strncmp(map_name, "splendide", 3) == 0) {
		town = 28;
	} else if (strncmp(map_name, "brasilis", 3) == 0) {
		town = 29;
	} else if (strncmp(map_name, "dicastes01", 3) == 0) {
		town = 30;
	} else if (strcmp(map_name,  "mora") == 0) {
		town = 31;
	} else if (strncmp(map_name, "dewata", 3) == 0) {
		town = 32;
	} else if (strncmp(map_name, "malangdo", 5) == 0) {
		town = 33;
	} else if (strncmp(map_name, "malaya", 5) == 0) {
		town = 34;
	} else if (strncmp(map_name, "eclage", 3) == 0) {
		town = 35;
	} else if (strncmp(map_name, "lasagna", 2) == 0) {
		town = 36;
	}
	

	if (town >= 0 && town < ARRAYLENGTH(data))
	{
		int16 m = map_mapname2mapid(data[town].map);
		if (m >= 0 && map_getmapflag(m, MF_NOWARPTO) && !pc_has_permission(sd, PC_PERM_WARP_ANYWHERE)) {
			clif_displaymessage(fd, msg_txt(sd,247)); // You are not authorized to warp to this map.
			return -1;
		}
		if (sd->bl.m >= 0 && map_getmapflag(sd->bl.m, MF_NOWARP) && !pc_has_permission(sd, PC_PERM_WARP_ANYWHERE)) {
			clif_displaymessage(fd, msg_txt(sd,248)); // You are not authorized to warp from your current map.
			return -1;
		}
		if (pc_setpos(sd, mapindex_name2id(data[town].map), data[town].x, data[town].y, CLR_TELEPORT) == SETPOS_OK) {
			clif_displaymessage(fd, msg_txt(sd,0)); // Warped.
		} else {
			clif_displaymessage(fd, msg_txt(sd,1)); // Map not found.
			return -1;
		}
	} else { // if you arrive here, you have an error in town variable when reading of names
		clif_displaymessage(fd, msg_txt(sd,38)); // Invalid location number or name.
		return -1;
	}
	


	return 0;
}

 

 

2 answers to this question

Recommended Posts

  • 0
Posted

The text you're looking for is in your conf folder: https://github.com/rathena/rathena/blob/master/conf/atcommands.yml#L167

  - Command: go
    Help: |
      Params: <city name|number>
      Warps you to a city.
      -3: (Memo point 2)  14: louyang         31: mora
      -2: (Memo point 1)  15: start point     32: dewata
      -1: (Memo point 0)  16: prison/jail     33: malangdo island
       0: prontera              17: jawaii             34: malaya port
       1: morocc                18: ayothaya       35: eclage
       2: geffen                  19: einbroch       36: lasagna
       3: payon                  20: lighthalzen
       4: alberta                 21: einbech
       5: izlude                   22: hugel
       6: aldebaran           23: rachel
       7: xmas (lutie)        24: veins
       8: comodo               25: moscovia
       9: yuno                     26: midgard camp
      10: amatsu               27: manuk
      11: gonryun              28: splendide
      12: umbala               29: brasilis
      13: niflheim              30: el dicastes

 

  • 0
Posted
8 minutes ago, Akkarin said:

The text you're looking for is in your conf folder: https://github.com/rathena/rathena/blob/master/conf/atcommands.yml#L167

  - Command: go
    Help: |
      Params: <city name|number>
      Warps you to a city.
      -3: (Memo point 2)  14: louyang         31: mora
      -2: (Memo point 1)  15: start point     32: dewata
      -1: (Memo point 0)  16: prison/jail     33: malangdo island
       0: prontera              17: jawaii             34: malaya port
       1: morocc                18: ayothaya       35: eclage
       2: geffen                  19: einbroch       36: lasagna
       3: payon                  20: lighthalzen
       4: alberta                 21: einbech
       5: izlude                   22: hugel
       6: aldebaran           23: rachel
       7: xmas (lutie)        24: veins
       8: comodo               25: moscovia
       9: yuno                     26: midgard camp
      10: amatsu               27: manuk
      11: gonryun              28: splendide
      12: umbala               29: brasilis
      13: niflheim              30: el dicastes

 

great! Thanks.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...