Talk:Mob (video games)
This is the talk page for discussing improvements to the Mob (video games) article. This is not a forum for general discussion of the article's subject. |
Article policies
|
Find video game sources: "Mob" video games – news · newspapers · books · scholar · JSTOR · free images · free news sources · TWL · NYT · WP reference · VG/RS · VG/RL · WPVG/Talk |
{{WikiProject banner shell}}
to this page and add the quality rating to that template instead of this project banner. See WP:PIQA for details.
|
||
This page has archives. Sections older than 365 days may be automatically archived by Lowercase sigmabot III when more than 4 sections are present. |
I spotted 2 sources right away that will probably have a hard time finding support as wp:RS. One is a wiki, and it fails. Like wikipedia, anyone can edit it. Another is the non-english language site td.muds.net:4015, as it appears to be self-published... it also includes quotes from a previous version of this article. wp:CIRCULAR. IMO you should remove these.- Sinneed 12:26, 25 March 2010 (UTC)
- Done. Too bad about the circular reference; I'm failing to find anything reliable-looking about the backronyms. For the WoW monsters-not-NPCs usage and "named mob" I was able to dig up a couple wow.com articles. —chaos5023 (talk) 13:12, 25 March 2010 (UTC)
- WoW Insider isn't the best reference because it's in blog format, I suppose, but as far as I can tell it looks like a reasonably professional media outlet, with editorial oversight, owned by a Srs Bzns Organization (AOL). So I think it's supportible to assign it some weight. —chaos5023 (talk) 17:29, 25 March 2010 (UTC)
Pronunciation seems dated
I realize that the pronunciation given is backed up by a source and perhaps was quite common back in 1995. However, I've played a lot of MMOs in the last ten years or so and have never, ever heard anyone pronounce the word any way but /mɒb/ (IPA). I realize that's probably because few people realize it's an abbreviation of 'mobile,' but the why doesn't really matter. Does anyone else agree that maybe the pronunciation needs updating? -- Fyrefly (talk) 19:22, 2 August 2011 (UTC)
I agree. In fact, I came to the talk section specifically to mention that I've never heard it pronounced /ˈmoʊb/. I think it should be changed. Damienivan (talk) 21:40, 4 August 2011 (UTC)
- Can we come up with a reliable source citation discussing the "modern" pronunciation? What would be best, I think, would be a brief discussion of how its original derivation from "mobile" led to the correct pronunciation being considered "/ˈmoʊb/", but drift since has rendered it almost always "/mɒb/". The problem is, since we only have a citation for the "/ˈmoʊb/" pronunciation, the latter part would be pure original research as matters stand. —chaos5023 (talk) 04:54, 26 October 2011 (UTC)
- You could, perhaps, mention a few games that pronounce it as "/mɒb/", including Minecraft and World of Warcraft, saying something around the lines of "The pronunciation of the term is contested. The term was originally represented to be an abbreviation of "mobile" and is thus defined to be pronounced "/moʊb/", but many modern gamers, including the makers and players of Minecraft and World of Warcraft, use the pronunciation "/mɒb/" instead." (citing sources, of course)
- Or, better yet, look for an academic journal on video games that uses this pronunciation. However, it could also be a cultural thing - I live in the US, and I have no idea if people from other countries use "/moʊb/". Compynerd255 (talk) 20:04, 15 April 2013 (UTC)
"Movable object block"
I see that mob isn't etymologically or semantically related to movable object block as seen at Sprite_(computer_graphics)#Synonyms, but since the latter kind of object often is used to implement enemy characters in 2D games, I wonder if it would be useful to have a "Not to be confused with MOB as a synonym of sprite". 24.178.47.47 (talk) 19:34, 1 February 2015 (UTC)
- I've never even heard of this term, and it doesn't have any source on the Sprite-article. Is it really a thing? Either way, I somewhat doubt that anyone who is looking for "Moveable Object Block" doesn't know that it refers to a sprite (or another synonym). I don't think this usage of MOB is common enough. ~Mable (chat) 20:11, 1 February 2015 (UTC)
- It would be too inefficient to process immobile entities, like say trees and rocks, as possessing intelligence and moving, therefore most games (especially online, when bandwidth is an issue), including MUDs, have two tables of entities: dynamic (mobile) and static (immobile/fixed/dodads). Although in some games, like Ultima 8 and Ultima Online, entities can change from static to dynamic, if they are moved or set on fire. Therefore the term. It has nothing to do with sprites, because both mobs and non-mobs can be drawn as sprites or say tiles (like ASCII letters in roguelike MUDs), but more with processing them with the game's physics - a monster can react to player, but a a tree wont. NikitaSadkov (talk) 21:59, 22 November 2018 (UTC)
Mook
Mook (gaming) redirects here but the connection is unobvious, the word mook does not appear in the article. 2001:6A0:0:2333:5604:A6FF:FE1E:34F6 (talk) 11:28, 5 January 2017 (UTC)
- Isn't "mook" just another word for mob, just used much less frequently, to the point where it is barely worth mentioning in this article? ~Mable (chat) 12:35, 5 January 2017 (UTC)
- According to wiktionary right here, "mook" is know from at least 1930-s, while mob is undeniably from MUDs of early 1990-s. Also only "mook" (generic enemy/lackey) is EVER used in discussing non-gaming content - i.e. movies, literature, never "mob". And it is pretty logical since mobile/object distinction is obviously important in context of MUD/MMO engine, but have no sense in non-gaming context. IMO those two are very different words and "mook" redirect should be removed. --Rowaa[SR13] (talk) 14:50, 13 May 2020 (UTC)
Not all mobs are monsters but some are animals
NOT ALL MOBS ARE MONSTERS. SOME MOBS ARE ANIMALS AND OTHERS ARE MONSTERS. YOU DON'T EDIT IT.69.115.55.166 (talk) 14:53, 9 April 2017 (UTC)
Move discussion in progress
There is a move discussion in progress on Talk:First-person (gaming) which affects this page. Please participate on that page and not in this talk page section. Thank you. —RMCD bot 19:01, 2 September 2018 (UTC)
Etymology/also known cleanup
"Mob" = "mobile"
Mob is short for "mobile". Not "mobile object", mobiles and objects are two distinctly different categories in Diku. 3 of 4 references used too say it is "mobile", without word object. I'll list results of grep against DikuMUD code down this comment as reference, but I'm not sure on how to reflect those refs in article. Actually the only quote to really use "mobile object" wording was misquoted here on WP. Author of "Designing Virtual Worlds" indeed says "mobile objects" while discussing MUD1. Still Diku had much stronger impact on adopting this word for wide use. I'll try to reflect it in wording.
I'm also removing rest of the fluff because it keeps appearing verbatim in random posts on forums (search for "monster or beast" previously mentioned in first sentence of this article and see 99% hits to be copypasta from old version of this article), on other gaming wikis and then creeping back into this article after being removed because "look how many hits of this stuff is on 'net, I must edit it into WP right now!". I believe it is called WP:CIRCULAR.
Removing also known as "enemy"
No, it is not also known as that. It is like going into "Soldier" article and writing "Soldier", also known as enemy. Yes, they ARE known like that sometimes, but they're not synonyms. Not all soldiers are enemies, and not all mobs are enemies as well. The very next sentence in article covers that, saying "usage of the term may be limited to hostile NPCs", implying that it also may be not limited to it. And indeed in Diku every NPC is a "mob", no matter if it is rat or shopkeeper, and, one among the biggest current trendsetters - WoW or Minecraft - freely use "friendly mob" and "passive mob"
Removing also known as "mook"
I've already mentioned it in other comment above, but those two are distinct words. "Mook" means "generic enemy/lackey" and, according to wictionary, is known for about half-century before coining of "mob". "Mook" is heavily used in discussing non-gaming - i.e. movies or literature - stories. Actually I've never seen "mob" - being very gamey-enginey term EVER used in such non-gaming discussions. It would be strange to mention that something in book is a "mobile", isn't it? I'm less sure on that, but I have feeling that "mob" is hardly ever used outside MMO or RPG discussions, where it is widely known exactly because of its origins in wildly popular at the time MMORPG - i.e. you will hardly find word "mob" in discussion about a platformer. Also just like with "enemy" above, even if some character could be referred both as mob and mook, they're distinctly not synonyms. Boss mob is absolutely not a mook. Mook is a different word and its redirect to mob should be removed.
Removing "refers to either a single character or a multitude of characters in a group as a mob
No. It's "mobs" in plural. For example "trash mob" is a single instance of non-boss enemy, not a group of them. Sorry, I can't cite anything on that except my participation in thousands of discussions about "trash mobs", "high-level mobs", specific zone "mobs", but this sentence I'm about to remove is not referencing anything either. There distinct English word "mob", of course, but this particular article is not about it.
Removing "dumb mob" as a term, but leaving explanation that most mobs have no special programming
It is not a "term". The referenced quote in book explains that most mobs are dumb in sense of having no special programming beyond generic fight, but never claims it is a specific term. The only relevant hit on Google search is this very article. There's zero hits for "dumb" in Diku code. Once again, it is like going into "Human" article and writing "most humans are regular humans".
Removing backronyms from etymology
Backronyms are not etymology and no citations were provided since [citation needed] was added. I've also tracked the most likely source of "monster or beast" quote: https://books.google.com/books?id=xzMYYrsDaAEC&pg=PA375&dq=mob+%22Monster+Or+Beast%22#v=onepage&q=mob%20%22Monster%20Or%20Beast%22 As you can see, the book, once again, never claims that it is have anything with etymology, but merely explains what "mob" is.
Code reference
Here's the results against Diku MUD Gamma (earliest) release. It was recently uploaded to GitHub, so you can check it online as well: https://github.com/Seifert69/DikuMUD-Gamma. The list is a result of grep -R -i -n "mobile\|mob" dm-dist-gamma
. Copyright comments show years 1990, 1991 as original release date.
dm-dist-gamma/act.informative.c:207: /* A player char or a mobile without long descr, or not in default pos. */
dm-dist-gamma/act.wizard.c:26:extern struct index_data *mob_index;
dm-dist-gamma/act.wizard.c:140: struct char_data *target_mob;
dm-dist-gamma/act.wizard.c:167: else if (target_mob = get_char_vis(ch, loc_str))
dm-dist-gamma/act.wizard.c:168: location = target_mob->in_room;
dm-dist-gamma/act.wizard.c:191: for (target_mob = world[location].people; target_mob; target_mob =
dm-dist-gamma/act.wizard.c:192: target_mob->next_in_room)
dm-dist-gamma/act.wizard.c:193: if (ch == target_mob)
dm-dist-gamma/act.wizard.c:206: struct char_data *target_mob, *pers;
dm-dist-gamma/act.wizard.c:235: else if (target_mob = get_char_vis(ch, buf))
dm-dist-gamma/act.wizard.c:236: location = target_mob->in_room;
dm-dist-gamma/act.wizard.c:366: strcat(buf,(!IS_NPC(k) ? "(PC)\n\r" : (!IS_MOB(k) ? "(NPC)\n\r" : "(MOB)\n\r")));
dm-dist-gamma/act.wizard.c:602: /* mobile in world */
dm-dist-gamma/act.wizard.c:621: (!IS_NPC(k) ? "PC" : (!IS_MOB(k) ? "NPC" : "MOB")),
dm-dist-gamma/act.wizard.c:625: if (IS_MOB(k)) {
dm-dist-gamma/act.wizard.c:626: sprintf(buf, "V-Number [%d]\n\r", mob_index[k->nr].virtual);
dm-dist-gamma/act.wizard.c:738: if (IS_MOB(k)) {
dm-dist-gamma/act.wizard.c:739: strcpy(buf, "\n\rMobile Special procedure : ");
dm-dist-gamma/act.wizard.c:740: strcat(buf, (mob_index[k->nr].func ? "Exists\n\r" : "None\n\r"));
dm-dist-gamma/act.wizard.c:810: send_to_char("No mobile or object by that name in the world\n\r", ch);
dm-dist-gamma/act.wizard.c:1043: struct char_data *mob;
dm-dist-gamma/act.wizard.c:1048: extern int top_of_mobt;
dm-dist-gamma/act.wizard.c:1069: if ((r_num = real_mobile(number)) < 0)
dm-dist-gamma/act.wizard.c:1074: mob = read_mobile(r_num, REAL);
dm-dist-gamma/act.wizard.c:1075: char_to_room(mob, ch->in_room);
dm-dist-gamma/act.wizard.c:1079: act("$n has created $N!", FALSE, ch, 0, mob, TO_ROOM);
dm-dist-gamma/act.wizard.c:1103:/* clean a room of all mobiles and objects */
dm-dist-gamma/comm.c:87:void mobile_activity(void);
dm-dist-gamma/comm.c:404: if (!(pulse % PULSE_MOBILE))
dm-dist-gamma/comm.c:405: mobile_activity();
dm-dist-gamma/constants.c:426: "NO_MOB",
dm-dist-gamma/db.c:45:FILE *mob_f, /* file containing mob prototypes */
dm-dist-gamma/db.c:49:struct index_data *mob_index; /* index table for mobile file */
dm-dist-gamma/db.c:53:int top_of_mobt = 0; /* top of mobile index table */
dm-dist-gamma/db.c:119: log("Opening mobile, object and help files.");
dm-dist-gamma/db.c:120: if (!(mob_f = fopen(MOB_FILE, "r")))
dm-dist-gamma/db.c:145: log("Generating index tables for mobile and object files.");
dm-dist-gamma/db.c:146: mob_index = generate_indices(mob_f, &top_of_mobt);
dm-dist-gamma/db.c:167: log(" Mobiles.");
dm-dist-gamma/db.c:168: assign_mobiles();
dm-dist-gamma/db.c:648: real_mobile(zone_table[zone].cmd[comm].arg1);
dm-dist-gamma/db.c:694: real_mobile(zone_table[zone].cmd[comm].arg1);
dm-dist-gamma/db.c:709: real_mobile(zone_table[zone].cmd[comm].arg2);
dm-dist-gamma/db.c:715: real_mobile(zone_table[zone].cmd[comm].arg2);
dm-dist-gamma/db.c:939:/* read a mobile from MOB_FILE */
dm-dist-gamma/db.c:940:struct char_data *read_mobile(int nr, int type)
dm-dist-gamma/db.c:944: struct char_data *mob;
dm-dist-gamma/db.c:950: if ((nr = real_mobile(nr)) < 0)
dm-dist-gamma/db.c:952: sprintf(buf, "Mobile (V) %d does not exist in database.", i);
dm-dist-gamma/db.c:956: fseek(mob_f, mob_index[nr].pos, 0);
dm-dist-gamma/db.c:958: CREATE(mob, struct char_data, 1);
dm-dist-gamma/db.c:959: clear_char(mob);
dm-dist-gamma/db.c:963: mob->player.name = fread_string(mob_f);
dm-dist-gamma/db.c:964: mob->player.short_descr = fread_string(mob_f);
dm-dist-gamma/db.c:965: mob->player.long_descr = fread_string(mob_f);
dm-dist-gamma/db.c:966: mob->player.description = fread_string(mob_f);
dm-dist-gamma/db.c:967: mob->player.title = 0;
dm-dist-gamma/db.c:971: fscanf(mob_f, "%d ", &tmp);
dm-dist-gamma/db.c:972: mob->specials.act = tmp;
dm-dist-gamma/db.c:973: SET_BIT(mob->specials.act, ACT_ISNPC);
dm-dist-gamma/db.c:975: fscanf(mob_f, " %d ", &tmp);
dm-dist-gamma/db.c:976: mob->specials.affected_by = tmp;
dm-dist-gamma/db.c:978: fscanf(mob_f, " %d ", &tmp);
dm-dist-gamma/db.c:979: mob->specials.alignment = tmp;
dm-dist-gamma/db.c:981: fscanf(mob_f, " %c \n", &letter);
dm-dist-gamma/db.c:985: mob->abilities.str = 11;
dm-dist-gamma/db.c:986: mob->abilities.intel = 11;
dm-dist-gamma/db.c:987: mob->abilities.wis = 11;
dm-dist-gamma/db.c:988: mob->abilities.dex = 11;
dm-dist-gamma/db.c:989: mob->abilities.con = 11;
dm-dist-gamma/db.c:991: fscanf(mob_f, " %D ", &tmp);
dm-dist-gamma/db.c:992: GET_LEVEL(mob) = tmp;
dm-dist-gamma/db.c:994: fscanf(mob_f, " %D ", &tmp);
dm-dist-gamma/db.c:995: mob->points.hitroll = 20-tmp;
dm-dist-gamma/db.c:997: fscanf(mob_f, " %D ", &tmp);
dm-dist-gamma/db.c:998: mob->points.armor = 10*tmp;
dm-dist-gamma/db.c:1000: fscanf(mob_f, " %Dd%D+%D ", &tmp, &tmp2, &tmp3);
dm-dist-gamma/db.c:1001: mob->points.max_hit = dice(tmp, tmp2)+tmp3;
dm-dist-gamma/db.c:1002: mob->points.hit = mob->points.max_hit;
dm-dist-gamma/db.c:1004: fscanf(mob_f, " %Dd%D+%D \n", &tmp, &tmp2, &tmp3);
dm-dist-gamma/db.c:1005: mob->points.damroll = tmp3;
dm-dist-gamma/db.c:1006: mob->specials.damnodice = tmp;
dm-dist-gamma/db.c:1007: mob->specials.damsizedice = tmp2;
dm-dist-gamma/db.c:1009: mob->points.mana = 10;
dm-dist-gamma/db.c:1010: mob->points.max_mana = 10;
dm-dist-gamma/db.c:1012: mob->points.move = 50;
dm-dist-gamma/db.c:1013: mob->points.max_move = 50;
dm-dist-gamma/db.c:1015: fscanf(mob_f, " %D ", &tmp);
dm-dist-gamma/db.c:1016: mob->points.gold = tmp;
dm-dist-gamma/db.c:1018: fscanf(mob_f, " %D \n", &tmp);
dm-dist-gamma/db.c:1019: GET_EXP(mob) = tmp;
dm-dist-gamma/db.c:1021: fscanf(mob_f, " %D ", &tmp);
dm-dist-gamma/db.c:1022: mob->specials.position = tmp;
dm-dist-gamma/db.c:1024: fscanf(mob_f, " %D ", &tmp);
dm-dist-gamma/db.c:1025: mob->specials.default_pos = tmp;
dm-dist-gamma/db.c:1027: fscanf(mob_f, " %D \n", &tmp);
dm-dist-gamma/db.c:1028: mob->player.sex = tmp;
dm-dist-gamma/db.c:1030: mob->player.class = 0;
dm-dist-gamma/db.c:1032: mob->player.time.birth = time(0);
dm-dist-gamma/db.c:1033: mob->player.time.played = 0;
dm-dist-gamma/db.c:1034: mob->player.time.logon = time(0);
dm-dist-gamma/db.c:1035: mob->player.weight = 200;
dm-dist-gamma/db.c:1036: mob->player.height = 198;
dm-dist-gamma/db.c:1039: GET_COND(mob, i) = -1;
dm-dist-gamma/db.c:1042: mob->specials.apply_saving_throw[i] = MAX(20-GET_LEVEL(mob), 2);
dm-dist-gamma/db.c:1046: fscanf(mob_f, " %D ", &tmp);
dm-dist-gamma/db.c:1047: mob->abilities.str = tmp;
dm-dist-gamma/db.c:1049: fscanf(mob_f, " %D ", &tmp);
dm-dist-gamma/db.c:1050: mob->abilities.intel = tmp;
dm-dist-gamma/db.c:1052: fscanf(mob_f, " %D ", &tmp);
dm-dist-gamma/db.c:1053: mob->abilities.wis = tmp;
dm-dist-gamma/db.c:1055: fscanf(mob_f, " %D ", &tmp);
dm-dist-gamma/db.c:1056: mob->abilities.dex = tmp;
dm-dist-gamma/db.c:1058: fscanf(mob_f, " %D \n", &tmp);
dm-dist-gamma/db.c:1059: mob->abilities.con = tmp;
dm-dist-gamma/db.c:1061: fscanf(mob_f, " %D ", &tmp);
dm-dist-gamma/db.c:1062: fscanf(mob_f, " %D ", &tmp2);
dm-dist-gamma/db.c:1064: mob->points.max_hit = number(tmp, tmp2);
dm-dist-gamma/db.c:1065: mob->points.hit = mob->points.max_hit;
dm-dist-gamma/db.c:1067: fscanf(mob_f, " %D ", &tmp);
dm-dist-gamma/db.c:1068: mob->points.armor = 10*tmp;
dm-dist-gamma/db.c:1070: fscanf(mob_f, " %D ", &tmp);
dm-dist-gamma/db.c:1071: mob->points.mana = tmp;
dm-dist-gamma/db.c:1072: mob->points.max_mana = tmp;
dm-dist-gamma/db.c:1074: fscanf(mob_f, " %D ", &tmp);
dm-dist-gamma/db.c:1075: mob->points.move = tmp;
dm-dist-gamma/db.c:1076: mob->points.max_move = tmp;
dm-dist-gamma/db.c:1078: fscanf(mob_f, " %D ", &tmp);
dm-dist-gamma/db.c:1079: mob->points.gold = tmp;
dm-dist-gamma/db.c:1081: fscanf(mob_f, " %D \n", &tmp);
dm-dist-gamma/db.c:1082: GET_EXP(mob) = tmp;
dm-dist-gamma/db.c:1084: fscanf(mob_f, " %D ", &tmp);
dm-dist-gamma/db.c:1085: mob->specials.position = tmp;
dm-dist-gamma/db.c:1087: fscanf(mob_f, " %D ", &tmp);
dm-dist-gamma/db.c:1088: mob->specials.default_pos = tmp;
dm-dist-gamma/db.c:1090: fscanf(mob_f, " %D ", &tmp);
dm-dist-gamma/db.c:1091: mob->player.sex = tmp;
dm-dist-gamma/db.c:1093: fscanf(mob_f, " %D ", &tmp);
dm-dist-gamma/db.c:1094: mob->player.class = tmp;
dm-dist-gamma/db.c:1096: fscanf(mob_f, " %D ", &tmp);
dm-dist-gamma/db.c:1097: GET_LEVEL(mob) = tmp;
dm-dist-gamma/db.c:1099: fscanf(mob_f, " %D ", &tmp);
dm-dist-gamma/db.c:1100: mob->player.time.birth = time(0);
dm-dist-gamma/db.c:1101: mob->player.time.played = 0;
dm-dist-gamma/db.c:1102: mob->player.time.logon = time(0);
dm-dist-gamma/db.c:1104: fscanf(mob_f, " %D ", &tmp);
dm-dist-gamma/db.c:1105: mob->player.weight = tmp;
dm-dist-gamma/db.c:1107: fscanf(mob_f, " %D \n", &tmp);
dm-dist-gamma/db.c:1108: mob->player.height = tmp;
dm-dist-gamma/db.c:1112: fscanf(mob_f, " %D ", &tmp);
dm-dist-gamma/db.c:1113: GET_COND(mob, i) = tmp;
dm-dist-gamma/db.c:1115: fscanf(mob_f, " \n ");
dm-dist-gamma/db.c:1119: fscanf(mob_f, " %D ", &tmp);
dm-dist-gamma/db.c:1120: mob->specials.apply_saving_throw[i] = tmp;
dm-dist-gamma/db.c:1123: fscanf(mob_f, " \n ");
dm-dist-gamma/db.c:1126: mob->points.damroll = 0;
dm-dist-gamma/db.c:1127: mob->specials.damnodice = 1;
dm-dist-gamma/db.c:1128: mob->specials.damsizedice = 6;
dm-dist-gamma/db.c:1131: mob->points.hitroll = MAX(1, GET_LEVEL(mob)-3);
dm-dist-gamma/db.c:1134: mob->tmpabilities = mob->abilities;
dm-dist-gamma/db.c:1137: mob->equipment[i] = 0;
dm-dist-gamma/db.c:1139: mob->nr = nr;
dm-dist-gamma/db.c:1141: mob->desc = 0;
dm-dist-gamma/db.c:1146: mob->next = character_list;
dm-dist-gamma/db.c:1147: character_list = mob;
dm-dist-gamma/db.c:1149: mob_index[nr].number++;
dm-dist-gamma/db.c:1151: return(mob);
dm-dist-gamma/db.c:1335: struct char_data *mob;
dm-dist-gamma/db.c:1346: case 'M': /* read a mobile */
dm-dist-gamma/db.c:1347: if (mob_index[ZCMD.arg1].number <
dm-dist-gamma/db.c:1350: mob = read_mobile(ZCMD.arg1, REAL);
dm-dist-gamma/db.c:1351: char_to_room(mob, ZCMD.arg3);
dm-dist-gamma/db.c:1397: obj_to_char(obj, mob);
dm-dist-gamma/db.c:1408: equip_char(mob, obj, ZCMD.arg3);
dm-dist-gamma/db.c:1467: struct char_data *mob;
dm-dist-gamma/db.c:1478: case 'M': /* read a mobile */
dm-dist-gamma/db.c:1479: if (mob_index[ZCMD.arg1].number <
dm-dist-gamma/db.c:1482: mob = read_mobile(ZCMD.arg1, REAL);
dm-dist-gamma/db.c:1483: char_to_room(mob, ZCMD.arg3);
dm-dist-gamma/db.c:1524: mob = get_char_num(ZCMD.arg2);
dm-dist-gamma/db.c:1525: obj_to_char(obj, mob);
dm-dist-gamma/db.c:1531: mob = get_char_num(ZCMD.arg2);
dm-dist-gamma/db.c:1532: equip_char(mob, obj, ZCMD.arg3);
dm-dist-gamma/db.c:2235:int real_mobile(int virtual)
dm-dist-gamma/db.c:2240: top = top_of_mobt;
dm-dist-gamma/db.c:2242: /* perform binary search on mob-table */
dm-dist-gamma/db.c:2247: if ((mob_index + mid)->virtual == virtual)
dm-dist-gamma/db.c:2251: if ((mob_index + mid)->virtual > virtual)
dm-dist-gamma/db.h:12:#define MOB_FILE "tinyworld.mob" /* monster prototypes */
dm-dist-gamma/db.h:45:int real_mobile(int virtual);
dm-dist-gamma/db.h:51:struct char_data *read_mobile(int nr, int type);
dm-dist-gamma/db.h:90: * 'M': Read a mobile *
dm-dist-gamma/db.h:92: * 'G': Give obj to mob *
dm-dist-gamma/db.h:127: int virtual; /* virtual number of this mob/obj */
dm-dist-gamma/db.h:129: int number; /* number of existing units of this mob/obj */
dm-dist-gamma/db.h:130: int (*func)(); /* special procedure for this mob/obj */
dm-dist-gamma/doc/database.doc:69:speed. In such places (ie the special routines for mobs/objs/rooms) where
dm-dist-gamma/doc/database.doc:86:The objects and mobiles are stored in two separate files. They are loaded
dm-dist-gamma/doc/database.doc:230: M (load a mobile):
dm-dist-gamma/doc/database.doc:231: Format: 'M' <if-flag> <mobile nr> <max existing> <room nr>
dm-dist-gamma/doc/database.doc:233: mobile nr and room nr should be self-explanatory. The 'max
dm-dist-gamma/doc/database.doc:244: G (give object to mobile):
dm-dist-gamma/doc/database.doc:250: Of course, this command doesn't make sense if a new mobile+object
dm-dist-gamma/doc/database.doc:254: E (object to equipment list of mobile)
dm-dist-gamma/doc/database.doc:383:This number may be considered the 'label' of the mobile, for use in eg. the
dm-dist-gamma/doc/database.doc:384:zonefile (see also the text about the roomfile format). When the mobile is to
dm-dist-gamma/doc/database.doc:385:be referenced from within the code itself, the function real_mobile
dm-dist-gamma/doc/database.doc:388:automatically called from read_object/read_mobile, depending on their 'type'
dm-dist-gamma/doc/dbsup.doc:44: NO_MOB 4 No monsters may walk around in here
dm-dist-gamma/doc/dbsup.doc:168: Room Flags (8+4=12) INDOORS and NO_MOB
dm-dist-gamma/doc/shops.doc:57:<Shop Keeper Mobile Number>
dm-dist-gamma/doc/shops.doc:64: The virtual number the mobile must be in for the shop to be effective.
dm-dist-gamma/handler.c:21:extern struct index_data *mob_index;
dm-dist-gamma/handler.c:1013: if (ch->nr > -1) /* if mobile */
dm-dist-gamma/handler.c:1014: mob_index[ch->nr].number--;
dm-dist-gamma/insert_any.c:3:* Usage: Merges DikuMud wld/obj/mob/zon files *
dm-dist-gamma/interpreter-quinn.c:35:extern struct index_data *mob_index;
dm-dist-gamma/interpreter-quinn.c:696: /* special in mobile present? */
dm-dist-gamma/interpreter-quinn.c:698: if ( IS_MOB(k) )
dm-dist-gamma/interpreter-quinn.c:699: if (mob_index[k->nr].func)
dm-dist-gamma/interpreter-quinn.c:700: if ((*mob_index[k->nr].func)(ch, cmd, arg))
dm-dist-gamma/interpreter.c:35:extern struct index_data *mob_index;
dm-dist-gamma/interpreter.c:698: /* special in mobile present? */
dm-dist-gamma/interpreter.c:700: if ( IS_MOB(k) )
dm-dist-gamma/interpreter.c:701: if (mob_index[k->nr].func)
dm-dist-gamma/interpreter.c:702: if ((*mob_index[k->nr].func)(ch, cmd, arg))
dm-dist-gamma/lib/messages:277:$N lies immobile on the ground, suffering...~
dm-dist-gamma/lib/README:38:TINYWORLD.MOB - File containing the monsters. See database.doc & dbsup.doc
dm-dist-gamma/lib/tinyworld.zon:350:* Mobiles & equipment
dm-dist-gamma/lib/tinyworld.zon:379:* Mobiles and equipment
dm-dist-gamma/mobact.c:2:* file: mobact.c , Mobile action module. Part of DIKUMUD *
dm-dist-gamma/mobact.c:3:* Usage: Procedures generating 'intelligent' behavior in the mobiles. *
dm-dist-gamma/mobact.c:15:extern struct index_data *mob_index;
dm-dist-gamma/mobact.c:22:void mobile_activity(void)
dm-dist-gamma/mobact.c:35: if (IS_MOB(ch))
dm-dist-gamma/mobact.c:39: if (!mob_index[ch->nr].func) {
dm-dist-gamma/mobact.c:40: log("Attempting to call a non-existing MOB func. (mobact.c)");
dm-dist-gamma/mobact.c:43: if ((*mob_index[ch->nr].func) (ch, 0, ""))
dm-dist-gamma/mobact.c:73: !IS_SET(world[EXIT(ch, door)->to_room].room_flags, NO_MOB) &&
dm-dist-gamma/mobact.c:104: } /* If IS_MOB(ch) */
dm-dist-gamma/modify.c:23:#define TP_MOB 0
dm-dist-gamma/modify.c:154: *type = TP_MOB;
dm-dist-gamma/modify.c:186: struct char_data *mob;
dm-dist-gamma/modify.c:210: if (type == TP_MOB)
dm-dist-gamma/modify.c:213: if (!(mob = get_char_vis(ch, name)))
dm-dist-gamma/modify.c:223: if (!IS_NPC(mob) && GET_LEVEL(ch) < 24)
dm-dist-gamma/modify.c:228: ch->desc->str = &GET_NAME(mob);
dm-dist-gamma/modify.c:229: if (!IS_NPC(mob))
dm-dist-gamma/modify.c:234: if (!IS_NPC(mob))
dm-dist-gamma/modify.c:240: ch->desc->str = &mob->player.short_descr;
dm-dist-gamma/modify.c:243: if (!IS_NPC(mob))
dm-dist-gamma/modify.c:249: ch->desc->str = &mob->player.long_descr;
dm-dist-gamma/modify.c:251: case 4:ch->desc->str = &mob->player.description; break;
dm-dist-gamma/modify.c:253: if (IS_NPC(mob))
dm-dist-gamma/modify.c:259: ch->desc->str = &mob->player.title;
dm-dist-gamma/reception.c:22:extern struct index_data *mob_index;
dm-dist-gamma/reception.c:482: if (IS_MOB(temp_char))
dm-dist-gamma/reception.c:483: if (mob_index[temp_char->nr].func == receptionist)
dm-dist-gamma/shop.c:22:extern struct index_data *mob_index;
dm-dist-gamma/shop.c:41: int keeper; /* The mobil who owns the shop (virtual)*/
dm-dist-gamma/shop.c:415: if (IS_MOB(temp_char))
dm-dist-gamma/shop.c:416: if (mob_index[temp_char->nr].func == shop_keeper)
dm-dist-gamma/shop.c:543: real_mobile(shop_index[number_of_shops].keeper);
dm-dist-gamma/shop.c:573: mob_index[shop_index[temp1].keeper].func = shop_keeper;
dm-dist-gamma/spec_assign.c:12:extern struct index_data *mob_index;
dm-dist-gamma/spec_assign.c:21:/* assign special procedures to mobiles */
dm-dist-gamma/spec_assign.c:22:void assign_mobiles(void)
dm-dist-gamma/spec_assign.c:36: mob_index[real_mobile(1)].func = puff;
dm-dist-gamma/spec_assign.c:38: mob_index[real_mobile(3060)].func = cityguard;
dm-dist-gamma/spec_assign.c:39: mob_index[real_mobile(3067)].func = cityguard;
dm-dist-gamma/spec_assign.c:40: mob_index[real_mobile(3061)].func = janitor;
dm-dist-gamma/spec_assign.c:41: mob_index[real_mobile(3062)].func = fido;
dm-dist-gamma/spec_assign.c:42: mob_index[real_mobile(3066)].func = fido;
dm-dist-gamma/spec_assign.c:44: mob_index[real_mobile(3005)].func = receptionist;
dm-dist-gamma/spec_assign.c:46: mob_index[real_mobile(3020)].func = guild;
dm-dist-gamma/spec_assign.c:47: mob_index[real_mobile(3021)].func = guild;
dm-dist-gamma/spec_assign.c:48: mob_index[real_mobile(3022)].func = guild;
dm-dist-gamma/spec_assign.c:49: mob_index[real_mobile(3023)].func = guild;
dm-dist-gamma/spec_assign.c:51: mob_index[real_mobile(3024)].func = guild_guard;
dm-dist-gamma/spec_assign.c:52: mob_index[real_mobile(3025)].func = guild_guard;
dm-dist-gamma/spec_assign.c:53: mob_index[real_mobile(3026)].func = guild_guard;
dm-dist-gamma/spec_assign.c:54: mob_index[real_mobile(3027)].func = guild_guard;
dm-dist-gamma/spec_assign.c:56: mob_index[real_mobile(3143)].func = mayor;
dm-dist-gamma/spec_assign.c:59: mob_index[real_mobile(4000)].func = snake;
dm-dist-gamma/spec_assign.c:60: mob_index[real_mobile(4001)].func = snake;
dm-dist-gamma/spec_assign.c:61: mob_index[real_mobile(4053)].func = snake;
dm-dist-gamma/spec_assign.c:63: mob_index[real_mobile(4103)].func = thief;
dm-dist-gamma/spec_assign.c:64: mob_index[real_mobile(4100)].func = magic_user;
dm-dist-gamma/spec_assign.c:65: mob_index[real_mobile(4102)].func = snake;
dm-dist-gamma/spec_assign.c:68: mob_index[real_mobile(7006)].func = snake;
dm-dist-gamma/spec_assign.c:71: mob_index[real_mobile(6113)].func = snake;
dm-dist-gamma/spec_assign.c:72: mob_index[real_mobile(6114)].func = snake;
dm-dist-gamma/spec_assign.c:74: mob_index[real_mobile(6910)].func = magic_user;
dm-dist-gamma/spec_procs.c:3:* Usage: Procedures handling special procedures for object/room/mobile *
dm-dist-gamma/spec_procs.c:443:* General special procedures for mobiles *
dm-dist-gamma/spec_procs.c:739:* Special procedures for mobiles *
dm-dist-gamma/spec_procs.c:925: pet = read_mobile(pet->nr, REAL);
dm-dist-gamma/spell_parser.c:222: extern struct index_data *mob_index;
dm-dist-gamma/spell_parser.c:266: mob_index[clone->nr].number++;
dm-dist-gamma/structs.h:16:#define PULSE_MOBILE 40
dm-dist-gamma/structs.h:189:#define NO_MOB 4
dm-dist-gamma/structs.h:375:/* for mobile actions: specials.act */
dm-dist-gamma/structs.h:377:#define ACT_SENTINEL 2 /* this mobile not to be moved */
dm-dist-gamma/structs.h:382:#define ACT_STAY_ZONE 64 /* MOB Must stay inside its own zone */
dm-dist-gamma/structs.h:383:#define ACT_WIMPY 128 /* MOB Will flee when injured, and if */
dm-dist-gamma/structs.h:531: struct descriptor_data *desc; /* NULL for mobiles */
dm-dist-gamma/syntax_check.c:35:FILE *mob_f, /* file containing mob prototypes */
dm-dist-gamma/syntax_check.c:40:struct index_data *mob_index; /* index table for mobile file */
dm-dist-gamma/syntax_check.c:46:int top_of_mobt = 0; /* top of mobile index table */
dm-dist-gamma/syntax_check.c:322: exist_index(mob_index, top_of_mobt, tmp2);
dm-dist-gamma/syntax_check.c:370:/* read a mobile from MOB_FILE */
dm-dist-gamma/syntax_check.c:371:void check_mobile(FILE *fl)
dm-dist-gamma/syntax_check.c:379: struct char_data *mob;
dm-dist-gamma/syntax_check.c:400: /* Name already read mob->player.name = fread_string(fl); */
dm-dist-gamma/syntax_check.c:463: mob->abilities.str = tmp;
dm-dist-gamma/syntax_check.c:466: mob->abilities.intel = tmp;
dm-dist-gamma/syntax_check.c:469: mob->abilities.wis = tmp;
dm-dist-gamma/syntax_check.c:472: mob->abilities.dex = tmp;
dm-dist-gamma/syntax_check.c:475: mob->abilities.con = tmp;
dm-dist-gamma/syntax_check.c:480: mob->points.max_hit = 0;
dm-dist-gamma/syntax_check.c:481: mob->points.hit = mob->points.max_hit;
dm-dist-gamma/syntax_check.c:484: mob->points.armor = tmp;
dm-dist-gamma/syntax_check.c:487: mob->points.mana = tmp;
dm-dist-gamma/syntax_check.c:488: mob->points.max_mana = tmp;
dm-dist-gamma/syntax_check.c:491: mob->points.move = tmp;
dm-dist-gamma/syntax_check.c:492: mob->points.max_move = tmp;
dm-dist-gamma/syntax_check.c:495: mob->points.gold = tmp;
dm-dist-gamma/syntax_check.c:498: GET_EXP(mob) = tmp;
dm-dist-gamma/syntax_check.c:501: mob->specials.position = tmp;
dm-dist-gamma/syntax_check.c:504: mob->specials.default_pos = tmp;
dm-dist-gamma/syntax_check.c:507: mob->player.sex = tmp;
dm-dist-gamma/syntax_check.c:510: mob->player.class = tmp;
dm-dist-gamma/syntax_check.c:513: GET_LEVEL(mob) = tmp;
dm-dist-gamma/syntax_check.c:516: mob->player.birth.hours = time_info.hours;
dm-dist-gamma/syntax_check.c:517: mob->player.birth.day = time_info.day;
dm-dist-gamma/syntax_check.c:518: mob->player.birth.month = time_info.month;
dm-dist-gamma/syntax_check.c:519: mob->player.birth.year = time_info.year - tmp;
dm-dist-gamma/syntax_check.c:522: mob->player.weight = tmp;
dm-dist-gamma/syntax_check.c:525: mob->player.height = tmp;
dm-dist-gamma/syntax_check.c:530: GET_COND(mob, i) = tmp;
dm-dist-gamma/syntax_check.c:537: mob->specials.apply_saving_throw[i] = tmp;
dm-dist-gamma/syntax_check.c:541: mob->points.damroll = 0;
dm-dist-gamma/syntax_check.c:542: mob->specials.damnodice = 1;
dm-dist-gamma/syntax_check.c:543: mob->specials.damsizedice = 6;
dm-dist-gamma/syntax_check.c:545: mob->points.hitroll = 0;
dm-dist-gamma/syntax_check.c:726: strcat(name, ".mob");
dm-dist-gamma/syntax_check.c:727: if (!(mob_f = fopen(name, "r")))
dm-dist-gamma/syntax_check.c:729: printf("Could not open mobile file.\n\r");
dm-dist-gamma/syntax_check.c:751: printf("Generating mobile file indexes.\n\r");
dm-dist-gamma/syntax_check.c:752: mob_index = generate_indices(mob_f, &top_of_mobt);
dm-dist-gamma/syntax_check.c:760: printf("Checking Mobile File (only simple mobiles).\n\r");
dm-dist-gamma/syntax_check.c:761: check_mobile(mob_f);
dm-dist-gamma/syntax_check.c:773: fclose(mob_f);
dm-dist-gamma/syslog:9:Thu Jun 30 17:53:58 1994 :: Opening mobile, object and help files.
dm-dist-gamma/syslog:14:Thu Jun 30 17:54:06 1994 :: Generating index tables for mobile and object files.
dm-dist-gamma/syslog:21:Thu Jun 30 17:54:07 1994 :: Mobiles.
dm-dist-gamma/utils.h:73:#define IS_MOB(ch) (IS_SET((ch)->specials.act, ACT_ISNPC) && ((ch)->nr >-1))
dm-dist-gamma/utils.h:179:/* char name/short_desc(for mobs) or someone? */
--Rowaa[SR13] (talk) 16:44, 13 May 2020 (UTC)
- I've never heard of someone trying to use game code as a source on Wikipedia and it doesn't seem like a good idea, especially since it's only relevant to one game and this is a term used by players of many games. -- Fyrael (talk) 16:54, 13 May 2020 (UTC)