Jump to content
  • 0

@go failed


8joax8

Question


  • Group:  Members
  • Topic Count:  4
  • Topics Per Day:  0.00
  • Content Count:  16
  • Reputation:   0
  • Joined:  08/01/13
  • Last Seen:  

I now have a problem, I don't get disconnected anymore but it keeps on failing when I use @go 36.

 

 

atcommand.c

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

	const struct {
		char map[MAP_NAME_LENGTH];
		int x, y;
	} data[] = {
		{ MAP_PRONTERA,      156, 180 ), //  0=Prontera
		{ MAP_MORROC,        156,  93 }, //  1=Morroc
		{ MAP_GEFFEN,        119,  59 }, //  2=Geffen
		{ MAP_PAYON,         162, 233 }, //  3=Payon
		{ MAP_ALBERTA,       117,  57 }, //  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
		{ MAP_NOVICE,         53, 111 }, // 15=Training Grounds
		{ 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
		{ 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_TURBO_ROOM,    100, 115 }, // 36=CERO Mall
	};

	nullpo_retr(-1, sd);

	if( map[sd->bl.m].flag.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) {
		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) {
		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, "turbo_room", 3) == 0) {
		town = 36;
	}

	if (town >= 0 && town < ARRAYLENGTH(data))
	{
		m = map_mapname2mapid(data[town].map);
		if (m >= 0 && map[m].flag.nowarpto && !pc_has_permission(sd, PC_PERM_WARP_ANYWHERE)) {
			clif_displaymessage(fd, msg_txt(sd,247));
			return -1;
		}
		if (sd->bl.m >= 0 && map[sd->bl.m].flag.nowarp && !pc_has_permission(sd, PC_PERM_WARP_ANYWHERE)) {
			clif_displaymessage(fd, msg_txt(sd,248));
			return -1;
		}
		if (pc_setpos(sd, mapindex_name2id(data[town].map), data[town].x, data[town].y, CLR_TELEPORT) == 0) {
			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;
}

 

 

mapindex.h

// Copyright (c) Athena Dev Teams - Licensed under GNU GPL
// For more information, see LICENCE in the main folder

#ifndef _MAPINDEX_H_
#define _MAPINDEX_H_

//File in charge of assigning a numberic ID to each map in existance for space saving when passing map info between servers.
extern char mapindex_cfgfile[80];

#define MAX_MAPINDEX 2000

//Some definitions for the mayor city maps.
#define MAP_PRONTERA "prontera"
#define MAP_GEFFEN "geffen"
#define MAP_MORROC "morocc"
#define MAP_ALBERTA "alberta"
#define MAP_PAYON "payon"
#define MAP_IZLUDE "izlude"
#define MAP_ALDEBARAN "aldebaran"
#define MAP_LUTIE "xmas"
#define MAP_COMODO "comodo"
#define MAP_YUNO "yuno"
#define MAP_AMATSU "amatsu"
#define MAP_GONRYUN "gonryun"
#define MAP_UMBALA "umbala"
#define MAP_NIFLHEIM "niflheim"
#define MAP_LOUYANG "louyang"
#define MAP_JAWAII "jawaii"
#define MAP_AYOTHAYA "ayothaya"
#define MAP_EINBROCH "einbroch"
#define MAP_LIGHTHALZEN "lighthalzen"
#define MAP_EINBECH "einbech"
#define MAP_HUGEL "hugel"
#define MAP_RACHEL "rachel"
#define MAP_VEINS "veins"
#define MAP_JAIL "sec_pri"
#define MAP_NOVICE "new_1-1"
#define MAP_MOSCOVIA "moscovia"
#define MAP_MIDCAMP "mid_camp"
#define MAP_MANUK "manuk"
#define MAP_SPLENDIDE "splendide"
#define MAP_BRASILIS "brasilis"
#define MAP_DICASTES "dicastes01"
#define MAP_MORA "mora"
#define MAP_DEWATA "dewata"
#define MAP_MALANGDO "malangdo"
#define MAP_MALAYA "malaya"
#define MAP_ECLAGE "eclage"
#define MAP_ECLAGE_IN "ecl_in01"
#define MAP_TURBO_ROOM "turbo_room"

// When a map index search fails, return results from what map?
#define MAP_DEFAULT MAP_PRONTERA
#define MAP_DEFAULT_X 150
#define MAP_DEFAULT_Y 150

const char* mapindex_getmapname(const char* string, char* output);
const char* mapindex_getmapname_ext(const char* string, char* output);
unsigned short mapindex_name2id(const char*);
const char* mapindex_id2name(unsigned short);
void mapindex_init(void);
void mapindex_final(void);

int mapindex_addmap(int index, const char* name);
int mapindex_removemap(int index);

#endif /* _MAPINDEX_H_ */

 

help.txt

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

 

 

mapnametable.txt

turbo_room.rsw#CERO Mall#

 

 

and also I'm trying to change the coordinates of @go of different cities but when I save the file, I go out of the game and restart my server, after that, when I go back to the game, the @warp coordinates goes back to default in game.. But the file has the coordinates I edited..

Link to comment
Share on other sites

1 answer to this question

Recommended Posts


  • Group:  Members
  • Topic Count:  32
  • Topics Per Day:  0.01
  • Content Count:  178
  • Reputation:   16
  • Joined:  06/25/12
  • Last Seen:  

 
and also I'm trying to change the coordinates of @go of different cities but when I save the file, I go out of the game and restart my server, after that, when I go back to the game, the @warp coordinates goes back to default in game.. But the file has the coordinates I edited..

 

you forgot to recompile the server. coordinates will apply after recompile

Link to comment
Share on other sites

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.

×
×
  • Create New...