Jump to content
  • 0

Question: sec_pri also known as jail


Question

Posted (edited)

how to remove it from @go ? or atleast move it to a different number, some of my players complain that they got stuck at @go 16 which is Prison.. anyone?

Off topic:

im making a custom pet and for the LureID i want it to be instead of an item i want it to be Prof's Skill Abracadabra(The taming one)

Edited by Douche

3 answers to this question

Recommended Posts

Posted

how to remove it from @go ? or atleast move it to a different number, some of my players complain that they got stuck at @go 16 which is Prison.. anyone?

Off topic:

im making a custom pet and for the LureID i want it to be instead of an item i want it to be Prof's Skill Abracadabra(The taming one)

add a nowarpto mapflag to sec_pri. It is easier.

Following what clydelion said, it's a lot more easier to use mapflags for sec_pri. If you're going to move it around in the source, you're gonna need to know what's going on in this code:


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

const struct {
	char map[MAP_NAME_LENGTH];
	int x, y;
} data[] = {
	{ MAP_PRONTERA,    156, 191 }, //  0=Prontera
	{ 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
	{ 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,   197, 176 }, // 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
};

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(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(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", 3) == 0) {
	town = 1;
} else if (strncmp(map_name, "geffen", 3) == 0) {
	town = 2;
} else if (strncmp(map_name, "payon", 3) == 0 ||
           strncmp(map_name, "paion", 3) == 0) {
	town = 3;
} else if (strncmp(map_name, "alberta", 3) == 0) {
	town = 4;
} else if (strncmp(map_name, "izlude", 3) == 0 ||
           strncmp(map_name, "islude", 3) == 0) {
	town = 5;
} else if (strncmp(map_name, "aldebaran", 3) == 0 ||
           strcmp(map_name,  "al") == 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, "yuno", 3) == 0) {
	town = 9;
} else if (strncmp(map_name, "amatsu", 3) == 0) {
	town = 10;
} else if (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, "begining", 3) == 0) {
	town = 15;
} else if (strncmp(map_name, "sec_pri", 3) == 0 ||
           strncmp(map_name, "prison", 3) == 0 ||
           strncmp(map_name, "jails", 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 ||
           strncmp(map_name, "ainbroch", 5) == 0) {
	town = 19;
} else if (strncmp(map_name, "lighthalzen", 3) == 0) {
	town = 20;
} else if (strncmp(map_name, "einbech", 3) == 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 (strncmp(map_name, "mora", 3) == 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;
}

https://rathena.svn.sourceforge.net/svnroot/rathena/trunk/src/map/atcommand.c with the help of this article: http://rathena.org/wiki/@go As shown, it's a lot more of a hassle to change the source.

I thought the Abracadabra skill, with the taming toggled, doesnt the captured monster already become an egg showing a normal looking pet egg? like a lunatics? o_O

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...