Ejemplo n.º 1
0
void ShowAllyInviteMenu (edict_t *ent)
{
	edict_t *e = ent->client->allytarget;

	 if (!ShowMenu(ent))
        return;

	clearmenu(ent);
		//				xxxxxxxxxxxxxxxxxxxxxxxxxxx (max length 27 chars)
	addlinetomenu(ent, va("%s", e->client->pers.netname), MENU_GREEN_CENTERED);
	addlinetomenu(ent, "would like to ally.", MENU_GREEN_CENTERED);
	addlinetomenu(ent, " ", 0);

	//Menu footer
	addlinetomenu(ent, "Accept", 1);
	addlinetomenu(ent, "Decline", 2);

	//Set handler
	setmenuhandler(ent, ShowAllyInviteMenu_handler);

	//Set current line
	ent->client->menustorage.currentline = 5;

	//Display the menu
	showmenu(ent);
}
Ejemplo n.º 2
0
void openTalentMenu(edict_t *ent, int talentID)
{
	talent_t *talent	= &ent->myskills.talents.talent[getTalentSlot(ent, talentID)];
	int level			= talent->upgradeLevel;
	int lineCount = 7;//12;

	if (!ShowMenu(ent))
       return;
	clearmenu(ent);

	addlinetomenu(ent, "Talent", MENU_GREEN_CENTERED);
	addlinetomenu(ent, GetTalentString(talentID), MENU_WHITE_CENTERED);
	addlinetomenu(ent, " ", 0);

	lineCount += writeTalentDescription(ent, talentID);

	addlinetomenu(ent, " ", 0);
	//addlinetomenu(ent, "Current", MENU_GREEN_CENTERED);
	//writeTalentUpgrade(ent, talentID, level);
	addlinetomenu(ent, " ", 0);
	
	if(talent->upgradeLevel < talent->maxLevel)
		addlinetomenu(ent, "Upgrade this talent.", -1*(talentID+1));
	else addlinetomenu(ent, " ", 0);

	addlinetomenu(ent, "Previous menu.", talentID+1);

	setmenuhandler(ent, TalentUpgradeMenu_handler);
	ent->client->menustorage.currentline = lineCount;
	showmenu(ent);
}
Ejemplo n.º 3
0
void OpenWeaponUpgradeMenu (edict_t *ent, int lastline)
{
	int i;
	if (!ShowMenu(ent))
		return;
	clearmenu(ent);

	addlinetomenu(ent, "Weapon Upgrades", MENU_GREEN_CENTERED);
	addlinetomenu(ent, " ", 0);
	addlinetomenu(ent, "Select the weapon you", 0);
	addlinetomenu(ent, "want to upgrade:", 0);
	addlinetomenu(ent, " ", 0);

	for (i = 0; i < MAX_WEAPONS; ++i)
	{
		char weaponString[24];
		strcpy(weaponString, GetWeaponString(i));
		padRight(weaponString, 18);
		addlinetomenu(ent, va("%s%d%c", weaponString, V_WeaponUpgradeVal(ent, i),'%'), (i+10)*100);
	}

	addlinetomenu(ent, " ", 0);
	addlinetomenu(ent, "Exit", 6666);
	setmenuhandler(ent, weaponmenu_handler);
	if (lastline)
		ent->client->menustorage.currentline = lastline + 5;
	else
		ent->client->menustorage.currentline = MAX_WEAPONS + 7;
	showmenu(ent);

	// try to shortcut to chat-protect mode
	if (ent->client->idle_frames < CHAT_PROTECT_FRAMES-51)
		ent->client->idle_frames = CHAT_PROTECT_FRAMES-51;
}
Ejemplo n.º 4
0
void ShowInventoryMenu(edict_t *ent, int lastline, qboolean selling)
{
	int i;

	//Usual menu stuff
	 if (!ShowMenu(ent))
        return;
	clearmenu(ent);

	//Print header
	addlinetomenu(ent, va("%s's items", ent->client->pers.netname), MENU_GREEN_CENTERED);
	addlinetomenu(ent, " ", 0);

	//Print each item
	for (i = 0; i < MAX_VRXITEMS; ++i)
	{
		item_t *item;
		item = &ent->myskills.items[i];

		//Print equip slot (if required)
		switch(i)
		{
		case 0:	addlinetomenu(ent, " Hand", MENU_GREEN_LEFT); break;
		case 1:	addlinetomenu(ent, " Neck", MENU_GREEN_LEFT); break;
		case 2:	addlinetomenu(ent, " Belt", MENU_GREEN_LEFT); break;
		case 3:	addlinetomenu(ent, " Stash", MENU_GREEN_LEFT);break;
		}
		addlinetomenu(ent, va("%s", V_MenuItemString(item, ' ')), i+1);
	}

	//Menu footer
	addlinetomenu(ent, " ", 0);
	addlinetomenu(ent, " Exit", 666);

	//Set handler
	setmenuhandler(ent, ShowInventoryMenu_handler);

	//Where are we in the menu?
	if (lastline)
	{
		switch(lastline)
		{
		case 1:		ent->client->menustorage.currentline = 4; break;
		case 2:		ent->client->menustorage.currentline = 6; break;
		case 3:		ent->client->menustorage.currentline = 8; break;
		default:	ent->client->menustorage.currentline = 6 + lastline; break;	//start at line 10
		}
	}
	else ent->client->menustorage.currentline = 18;

	//Display the menu (don't show it if this menu was loaded from the armory!)
	if (!selling) showmenu(ent);
}
Ejemplo n.º 5
0
void ShowAddAllyMenu (edict_t *ent)
{
	int i;
	int j = 0;
	edict_t *temp;

	 if (!ShowMenu(ent))
		return;
	clearmenu(ent);

	addlinetomenu(ent, "Select a player:", MENU_GREEN_CENTERED);
	addlinetomenu(ent, " ", 0);

	for_each_player(temp, i)
	{
		if (CanAlly(ent, temp, ALLY_RANGE))
		{
			//Add player to the list
			addlinetomenu(ent, va(" %s (%s)", temp->myskills.player_name, 
				GetClassString(temp->myskills.class_num)), GetClientNumber(temp));
			++j;

			// 3.65 can only display up to 10 possible allies
			// any more than this will cause the game to crash
			// FIXME: split this up into multiple menus?
			if (j >= 10)
				break;
		}
		
	}

	//Menu footer
	addlinetomenu(ent, " ", 0);
	addlinetomenu(ent, "Exit", 666);

	//Set handler
	setmenuhandler(ent, ShowAddAllyMenu_handler);

	//Set current line
	ent->client->menustorage.currentline = 4 + j;

	//Display the menu
	showmenu(ent);
}
Ejemplo n.º 6
0
void ItemDeleteMenu(edict_t *ent, int itemindex)
{
	item_t *item = &ent->myskills.items[itemindex];

	//Process the header
	StartShowInventoryMenu(ent, item);

	//Menu footer
	addlinetomenu(ent, " ", 0);
	addlinetomenu(ent, "  Delete this item?", 0);
	addlinetomenu(ent, "No, I changed my mind!", 667 + itemindex);
	addlinetomenu(ent, "Yes, delete this item.", 778 + itemindex);

	//Set handler
	setmenuhandler(ent, DeleteMenu_handler);

	ent->client->menustorage.currentline += 4;

	//Display the menu
	showmenu(ent);
}
Ejemplo n.º 7
0
void ShowItemMenu(edict_t *ent, int itemindex)
{
	item_t *item = &ent->myskills.items[itemindex];

	//Load the item
	StartShowInventoryMenu(ent, item);

	//Check to see if this item can be equipped or not
	if (!((item->itemtype & ITEM_GRAVBOOTS) || (item->itemtype & ITEM_FIRE_RESIST) || (item->itemtype & ITEM_AUTO_TBALL)))
	{
		if (itemindex < 3)	addlinetomenu(ent, "Stash this item", 4445 + itemindex);
		else				addlinetomenu(ent, "Equip this item", 4445 + itemindex);
		++ent->client->menustorage.currentline;
	}
	
	//Append a footer to the menu
	addlinetomenu(ent, "Previous menu", 7778 + itemindex);
	addlinetomenu(ent, "Exit", 666);
	addlinetomenu(ent, " ", 0);
	addlinetomenu(ent, "Delete this item", 10000 + itemindex);

	//set currentline
	ent->client->menustorage.currentline += 2;

	//Set handler
	setmenuhandler(ent, ShowItemMenu_handler);

	//Display the menu
	showmenu(ent);
}
Ejemplo n.º 8
0
void OpenPurchaseMenu (edict_t *ent, int page_num, int lastline)
{
	int i;

	//Usual menu stuff
	if (!ShowMenu(ent))
        return;
	clearmenu(ent);

	//Header
	addlinetomenu(ent, va("You have %d credits", ent->myskills.credits), MENU_GREEN_CENTERED);
	addlinetomenu(ent, "Please make a selection:", MENU_GREEN_CENTERED);
	addlinetomenu(ent, " ", 0);

	//Print this page's items
    for (i = (page_num-1)*10; i < page_num*10; ++i)
	{
		if (i < ARMORY_ITEMS)
			addlinetomenu(ent, va("%s", GetArmoryItemString(i+1)), i+1);
		else addlinetomenu(ent, " ", 0);
	}

	//Footer
	addlinetomenu(ent, " ", 0);
	if (i < ARMORY_ITEMS) addlinetomenu(ent, "Next", (page_num*1000)+2);
	addlinetomenu(ent, "Back", (page_num*1000)+1);
	addlinetomenu(ent, "Exit", 99);

	//Menu handler
	setmenuhandler(ent, PurchaseMenu_handler);

	//Set the menu cursor
	if (lastline % 10)	//selected 0-9 in this page
		ent->client->menustorage.currentline = (lastline % 10) + 3;
	else if (lastline)	//selected #10 in this page
		ent->client->menustorage.currentline = 13;
	else if (ARMORY_ITEMS > 10)	//menu is under 10 items
		ent->client->menustorage.currentline = 15;
	else ent->client->menustorage.currentline = 5 + i;

	//Show the menu
	showmenu(ent);
}
Ejemplo n.º 9
0
void ShowAllyWaitMenu (edict_t *ent)
{
	 if (!ShowMenu(ent))
        return;
	clearmenu(ent);
		//				xxxxxxxxxxxxxxxxxxxxxxxxxxx (max length 27 chars)
	addlinetomenu(ent, "Please wait for player to ", MENU_GREEN_CENTERED);
	addlinetomenu(ent, "accept your invitation. ", MENU_GREEN_CENTERED);
	addlinetomenu(ent, " ", 0);

	//Menu footer
	addlinetomenu(ent, "Close Window", 666);
	addlinetomenu(ent, "Cancel Invitation", 1);

	//Set handler
	setmenuhandler(ent, ShowAllyWaitMenu_handler);

	//Set current line
	ent->client->menustorage.currentline = 4;

	//Display the menu
	showmenu(ent);
}
Ejemplo n.º 10
0
void ShowRemoveAllyMenu (edict_t *ent)
{
	int i;
	int j = 0;
	edict_t *temp;

	 if (!ShowMenu(ent))
        return;
	clearmenu(ent);

	addlinetomenu(ent, "Select a player:", MENU_GREEN_CENTERED);
	addlinetomenu(ent, " ", 0);

	for_each_player(temp, i)
	{
		if (IsAlly(ent, temp))
		{
			//Add player to the list
			addlinetomenu(ent, va(" %s", temp->myskills.player_name), GetClientNumber(temp));
			++j;
		}
		
	}

	//Menu footer
	addlinetomenu(ent, " ", 0);
	addlinetomenu(ent, "Exit", 666);

	//Set handler
	setmenuhandler(ent, ShowRemoveAllyMenu_handler);

	//Set current line
	ent->client->menustorage.currentline = 4 + j;

	//Display the menu
	showmenu(ent);
}
Ejemplo n.º 11
0
void ShowAllyMenu (edict_t *ent)
{
	int i;
	int j = 0;
	edict_t *temp;

	//Don't bother displaying the menu if alliances are disabled
	if (!allies->value)
	{
		safe_cprintf(ent, PRINT_HIGH, "Alliances are disabled.\n");
		return;
	}

	// alliance only work in pvp mode
	if (!ValidAllyMode())
	{
		safe_cprintf(ent, PRINT_HIGH, "Alliances are disabled.\n");
		return;
	}

	 if (!ShowMenu(ent))
        return;
	clearmenu(ent);

	addlinetomenu(ent, "Currently allied with:", MENU_GREEN_CENTERED);
	addlinetomenu(ent, " ", 0);

	for_each_player(temp, i)
	{
		if (IsAlly(ent, temp))
		{
			//Add player to the list
			addlinetomenu(ent, va(" %s", temp->myskills.player_name), 0);
			++j;
		}
	}

	//Menu footer
	addlinetomenu(ent, " ", 0);
	addlinetomenu(ent, "Add Ally", 1);
	addlinetomenu(ent, "Remove Ally", 2);
	addlinetomenu(ent, "Exit", 666);

	//Set handler
	setmenuhandler(ent, ShowAllyMenu_handler);

	//Set current line
	ent->client->menustorage.currentline = 6 + j;

	//Display the menu
	showmenu(ent);
}
Ejemplo n.º 12
0
void OpenTalentUpgradeMenu (edict_t *ent, int lastline)
{
	talent_t	*talent;
	char		buffer[30];
	int			i;
    
	if (!ShowMenu(ent))
       return;
	clearmenu(ent);

	// menu header
	addlinetomenu(ent, "Talents", MENU_GREEN_CENTERED);
	addlinetomenu(ent, " ", 0);

	for (i = 0; i < ent->myskills.talents.count; i++)
	{
		talent = &ent->myskills.talents.talent[i];

		//create menu string
		strcpy(buffer, GetTalentString(talent->id));
		strcat(buffer, ":");
		padRight(buffer, 15);

		addlinetomenu(ent, va("%d. %s %d/%d", i+1, buffer, talent->upgradeLevel, talent->maxLevel), talent->id);
	}

	// menu footer
	addlinetomenu(ent, " ", 0);
	addlinetomenu(ent, va("You have %d talent points.", ent->myskills.talents.talentPoints), 0);
	addlinetomenu(ent, " ", 0);

	addlinetomenu(ent, "Exit", 9999);
	setmenuhandler(ent, openTalentMenu_handler);

	if (!lastline)	ent->client->menustorage.currentline = ent->myskills.talents.count + 6;
	else			ent->client->menustorage.currentline = lastline + 2;

	showmenu(ent);

	// try to shortcut to chat-protect mode
	if (ent->client->idle_frames < CHAT_PROTECT_FRAMES-51)
		ent->client->idle_frames = CHAT_PROTECT_FRAMES-51;
}
Ejemplo n.º 13
0
void OpenBuyRuneConfirmMenu(edict_t *ent, int option)
{
	int page_num = option / 1000;
	int selection = (option % 1000)-1;

	armoryRune_t *firstItem;
	item_t *rune;

	switch(page_num)
	{
	case 1: firstItem = WeaponRunes;	break;
	case 2: firstItem = AbilityRunes;	break;
	case 3: firstItem = ComboRunes;		break;
	default: 
		gi.dprintf("Error in OpenBuyRuneConfirmMenu(). Invalid page number: %d\n", page_num);
		return;
	}

	rune = &((firstItem + selection)->rune);	

	//Process the header
	StartShowInventoryMenu(ent, rune);

	//Menu footer
	addlinetomenu(ent, va("  Price: %d", getBuyValue(rune)), 0);
	addlinetomenu(ent, " ", 0);
	addlinetomenu(ent, " ", 0);
	addlinetomenu(ent, " ", 0);
	addlinetomenu(ent, "  Buy this item?", 0);
	addlinetomenu(ent, "No, I changed my mind!", (page_num * 10) + selection);
	addlinetomenu(ent, "Yes, GIMME GIMME!!.", option);

	//Set handler
	setmenuhandler(ent, BuyRuneConfirmMenu_handler);

	ent->client->menustorage.currentline += 7;

	//Display the menu
	showmenu(ent);
	
}
Ejemplo n.º 14
0
void OpenSellConfirmMenu(edict_t *ent, int itemindex)
{
	item_t *item = &ent->myskills.items[itemindex];

	//Process the header
	StartShowInventoryMenu(ent, item);

	//Menu footer
	addlinetomenu(ent, va("  Sell value: %d", GetSellValue(item)), 0);
	addlinetomenu(ent, " ", 0);
	addlinetomenu(ent, " ", 0);
	addlinetomenu(ent, " ", 0);
	addlinetomenu(ent, "  Sell this item?", 0);
	addlinetomenu(ent, "No, I changed my mind!", 667 + itemindex);
	addlinetomenu(ent, "Yes, sell this item.", 778 + itemindex);

	//Set handler
	setmenuhandler(ent, SellConfirmMenu_handler);

	ent->client->menustorage.currentline += 7;

	//Display the menu
	showmenu(ent);
}
Ejemplo n.º 15
0
void ShowTradeHelpMenu(edict_t *ent)
{
	//Usual menu stuff
	 if (!ShowMenu(ent))
        return;
	clearmenu(ent);

	//Print header
	//					xxxxxxxxxxxxxxxxxxxxxxxxxxx (max length 27 chars)
	addlinetomenu(ent, "Trading", MENU_GREEN_LEFT);
	addlinetomenu(ent, " ", 0);
	addlinetomenu(ent, " To start a trade, use the", 0);
	addlinetomenu(ent, " command: trade.", 0);
	addlinetomenu(ent, " ", 0);
	addlinetomenu(ent, " Select up to 3 items", 0);
	addlinetomenu(ent, " for the trade queue,", 0);
	addlinetomenu(ent, " then select 'accept'", 0);
	addlinetomenu(ent, " to complete the trade.", 0);
	addlinetomenu(ent, " ", 0);
	addlinetomenu(ent, "cmd: trade [on/off]", 0);

	//Menu footer
	addlinetomenu(ent, " ", 0);
	addlinetomenu(ent, "Previous", 60);
	addlinetomenu(ent, "Exit", 666);

	//Set handler
	setmenuhandler(ent, ShowSecondaryMenu_handler);

	//Set current line
	ent->client->menustorage.currentline = 13;

	//Display the menu
	showmenu(ent);
}
Ejemplo n.º 16
0
//Adds menu lines that describe the general use of the talent.
int writeTalentDescription(edict_t *ent, int talentID)
{
	switch(talentID)
	{
	//Soldier talents
	case TALENT_IMP_STRENGTH:
		addlinetomenu(ent, "Increases damage,", MENU_WHITE_CENTERED);
		addlinetomenu(ent, "but reduces resist.", MENU_WHITE_CENTERED);
		return 2;
	case TALENT_IMP_RESIST:
		addlinetomenu(ent, "Increases resist,", MENU_WHITE_CENTERED);
		addlinetomenu(ent, "but reduces damage.", MENU_WHITE_CENTERED);
		return 2;
	case TALENT_BLOOD_OF_ARES:
		addlinetomenu(ent, "Increases the damage you", MENU_WHITE_CENTERED);
		addlinetomenu(ent, "give/take as you spree.", MENU_WHITE_CENTERED);
		return 2;
	case TALENT_BASIC_HA:
		addlinetomenu(ent, "Increases ammo pickups.", MENU_WHITE_CENTERED);
		return 1;
	case TALENT_BOMBARDIER:
		addlinetomenu(ent, "Reduces self-inflicted", MENU_WHITE_CENTERED);
		addlinetomenu(ent, "grenade damage and", MENU_WHITE_CENTERED);
		addlinetomenu(ent, "reduces cost.", MENU_WHITE_CENTERED);
		return 3;
	//Poltergeist talents
    case TALENT_MORPHING:
		addlinetomenu(ent, "Reduces the cost", MENU_WHITE_CENTERED);
		addlinetomenu(ent, "of your morphs.", MENU_WHITE_CENTERED);
		return 2;
	case TALENT_MORE_AMMO:
		addlinetomenu(ent, "Increases maximum ammo", MENU_WHITE_CENTERED);
		addlinetomenu(ent, "capacity for", MENU_WHITE_CENTERED);
		addlinetomenu(ent, "tank/caco/flyer/medic.", MENU_WHITE_CENTERED);
		return 3;
	case TALENT_SUPERIORITY:
		addlinetomenu(ent, "Increased damage and", MENU_WHITE_CENTERED);
		addlinetomenu(ent, "resistance to monsters.", MENU_WHITE_CENTERED);
		return 2;
	case TALENT_RETALIATION:
		addlinetomenu(ent, "Damage increases as", MENU_WHITE_CENTERED);
		addlinetomenu(ent, "health is reduced.", MENU_WHITE_CENTERED);
		return 2;
	case TALENT_PACK_ANIMAL:
	    addlinetomenu(ent, "Increased damage and", MENU_WHITE_CENTERED);
		addlinetomenu(ent, "resistance when near", MENU_WHITE_CENTERED);
		addlinetomenu(ent, "friendly morphed", MENU_WHITE_CENTERED);
		addlinetomenu(ent, "players.", MENU_WHITE_CENTERED);
		return 4;
	//Vampire talents
	case TALENT_IMP_CLOAK:
		addlinetomenu(ent, "Move while cloaked", MENU_WHITE_CENTERED);
		addlinetomenu(ent, "(must be crouching).", MENU_WHITE_CENTERED);
		addlinetomenu(ent, "1/3 pc cost at night!", MENU_WHITE_CENTERED);
		return 3;
	case TALENT_ARMOR_VAMP:
		addlinetomenu(ent, "Also gain armor using", MENU_WHITE_CENTERED);
		addlinetomenu(ent, "your vampire skill.", MENU_WHITE_CENTERED);
		return 2;
	case TALENT_FATAL_WOUND:
		addlinetomenu(ent, "Adds chance for flesh", MENU_WHITE_CENTERED);
		addlinetomenu(ent, "eater to cause a fatal", MENU_WHITE_CENTERED);
		addlinetomenu(ent, "wound.", MENU_WHITE_CENTERED);
		return 3;
	case TALENT_SECOND_CHANCE:
		addlinetomenu(ent, "100% chance of ghost", MENU_WHITE_CENTERED);
		addlinetomenu(ent, "working when hit.", MENU_WHITE_CENTERED);
		return 2;
	case TALENT_IMP_MINDABSORB:
		addlinetomenu(ent, "Increases frequency of", MENU_WHITE_CENTERED);
		addlinetomenu(ent, "mind absorb attacks.", MENU_WHITE_CENTERED);
		return 2;
	case TALENT_CANNIBALISM:
		addlinetomenu(ent, "Increases your maximum", MENU_WHITE_CENTERED);
		addlinetomenu(ent, "health using corpse eater.", MENU_WHITE_CENTERED);
		return 2;
	//Mage talents
	case TALENT_ICE_BOLT:
		addlinetomenu(ent, "Use 'icebolt' instead of", MENU_WHITE_CENTERED);
		addlinetomenu(ent, "fireball to chill targets.", MENU_WHITE_CENTERED);
		return 2;
	case TALENT_MEDITATION:
		addlinetomenu(ent, "Meditate to build power", MENU_WHITE_CENTERED);
		addlinetomenu(ent, "cubes (cmd 'meditate').", MENU_WHITE_CENTERED);
		return 2;
	case TALENT_OVERLOAD:
		addlinetomenu(ent, "Use extra power cubes", MENU_WHITE_CENTERED);
		addlinetomenu(ent, "to overload spells,", MENU_WHITE_CENTERED);
		addlinetomenu(ent, "increasing their", MENU_WHITE_CENTERED);
		addlinetomenu(ent, "effectiveness", MENU_WHITE_CENTERED);
		addlinetomenu(ent, "(cmd 'overload').", MENU_WHITE_CENTERED);
		return 5;
	case TALENT_FROST_NOVA:
		addlinetomenu(ent, "Special nova spell", MENU_WHITE_CENTERED);
		addlinetomenu(ent, "that chills players.", MENU_WHITE_CENTERED);
		addlinetomenu(ent, "(cmd frostnova)", MENU_WHITE_CENTERED);
		return 3;
	case TALENT_IMP_MAGICBOLT:
		addlinetomenu(ent, "Power cubes are refunded", MENU_WHITE_CENTERED);
		addlinetomenu(ent, "on successful hits.", MENU_WHITE_CENTERED);
		return 2;
	case TALENT_MANASHIELD:
		addlinetomenu(ent, "Reduces physical damage", MENU_WHITE_CENTERED);
		addlinetomenu(ent, "by 80%%. All damage", MENU_WHITE_CENTERED);
		addlinetomenu(ent, "absorbed consumes power", MENU_WHITE_CENTERED);
		addlinetomenu(ent, "cubes. (cmd manashield)", MENU_WHITE_CENTERED);
		return 4;
	//Engineer talents
	case TALENT_LASER_PLATFORM:
		addlinetomenu(ent, "Create a laser platform", MENU_WHITE_CENTERED);
		addlinetomenu(ent, "(cmd 'laserplatform').", MENU_WHITE_CENTERED);
		return 2;
	case TALENT_ALARM:
		addlinetomenu(ent, "Use 'lasertrap' instead", MENU_WHITE_CENTERED);
		addlinetomenu(ent, "of detector to build a", MENU_WHITE_CENTERED);
		addlinetomenu(ent, "laser trap.", MENU_WHITE_CENTERED);
		return 3;
	case TALENT_RAPID_ASSEMBLY:
		addlinetomenu(ent, "Reduces build time.", MENU_WHITE_CENTERED);
		addlinetomenu(ent, "Can't be combined with", MENU_WHITE_CENTERED);
		addlinetomenu(ent, "Precision Tune.", MENU_WHITE_CENTERED);
		return 3;
	case TALENT_PRECISION_TUNING:
		addlinetomenu(ent, "Increased cost and", MENU_WHITE_CENTERED);
		addlinetomenu(ent, "build time to build", MENU_WHITE_CENTERED);
		addlinetomenu(ent, "higher level devices.", MENU_WHITE_CENTERED);
		addlinetomenu(ent, "Can't be combined with", MENU_WHITE_CENTERED);
		addlinetomenu(ent, "Rapid Assembly.", MENU_WHITE_CENTERED);
		return 3;
	case TALENT_STORAGE_UPGRADE:
		addlinetomenu(ent, "Increases ammunition", MENU_WHITE_CENTERED);
		addlinetomenu(ent, "capacity of SS/sentry/AC.", MENU_WHITE_CENTERED);
		return 2;
	//Knight talents
	case TALENT_REPEL:
		addlinetomenu(ent, "Adds chance for projectiles", MENU_WHITE_CENTERED);
		addlinetomenu(ent, "to deflect from shield.", MENU_WHITE_CENTERED);
		return 2;
	case TALENT_MAG_BOOTS:
		addlinetomenu(ent, "Reduces effect of knockback.", MENU_WHITE_CENTERED);
		return 1;
	case TALENT_LEAP_ATTACK:
		addlinetomenu(ent, "Adds stun/knockback effect", MENU_WHITE_CENTERED);
		addlinetomenu(ent, "to boost spell when landing.", MENU_WHITE_CENTERED);
		return 2;
	case TALENT_MOBILITY:
		addlinetomenu(ent, "Reduces boost cooldown", MENU_WHITE_CENTERED);
		return 1;
	case TALENT_DURABILITY:
		addlinetomenu(ent, "Increases your health", MENU_WHITE_CENTERED);
		addlinetomenu(ent, "per level bonus!", MENU_WHITE_CENTERED);
		return 2;
	//Cleric talents
	case TALENT_BALANCESPIRIT:
		addlinetomenu(ent, "New spirit that can", MENU_WHITE_CENTERED);
		addlinetomenu(ent, "use the skills of both", MENU_WHITE_CENTERED);
		addlinetomenu(ent, "yin and yang spirits.", MENU_WHITE_CENTERED);
		return 3;
	case TALENT_HOLY_GROUND:
		addlinetomenu(ent, "Designate an area as", MENU_WHITE_CENTERED);
		addlinetomenu(ent, "holy ground to regenerate", MENU_WHITE_CENTERED);
		addlinetomenu(ent, "teammates (cmd 'holyground').", MENU_WHITE_CENTERED);
		return 3;
	case TALENT_UNHOLY_GROUND:
		addlinetomenu(ent, "Designate an area as", MENU_WHITE_CENTERED);
		addlinetomenu(ent, "unholy ground to damage", MENU_WHITE_CENTERED);
		addlinetomenu(ent, "enemies (cmd 'unholyground').", MENU_WHITE_CENTERED);
		return 3;
	case TALENT_BOOMERANG:
		addlinetomenu(ent, "Turns blessed hammers", MENU_WHITE_CENTERED);
		addlinetomenu(ent, "into boomerangs", MENU_WHITE_CENTERED);
		addlinetomenu(ent, "(cmd 'boomerang').", MENU_WHITE_CENTERED);
		return 3;
	case TALENT_PURGE:
		addlinetomenu(ent, "Removes curses and grants", MENU_WHITE_CENTERED);
		addlinetomenu(ent, "temporary invincibility", MENU_WHITE_CENTERED);
		addlinetomenu(ent, "and immunity to curses", MENU_WHITE_CENTERED);
		addlinetomenu(ent, "(cmd 'purge').", MENU_WHITE_CENTERED);
		return 4;
	//Weaponmaster talents
	case TALENT_BASIC_AMMO_REGEN:
		addlinetomenu(ent, "Basic ammo regeneration.", MENU_WHITE_CENTERED);
		addlinetomenu(ent, "Regenerates one ammo pack", MENU_WHITE_CENTERED);
		addlinetomenu(ent, "for the weapon in use.", MENU_WHITE_CENTERED);
		return 3;
	case TALENT_COMBAT_EXP:
	    addlinetomenu(ent, "Increases physical,", MENU_WHITE_CENTERED);
		addlinetomenu(ent, "damage, but reduces", MENU_WHITE_CENTERED);
		addlinetomenu(ent, "resistance.", MENU_WHITE_CENTERED);
		return 3;
	case TALENT_TACTICS:
	    addlinetomenu(ent, "Increases your levelup", MENU_WHITE_CENTERED);
		addlinetomenu(ent, "health and armor bonus!", MENU_WHITE_CENTERED);
		return 2;
	case TALENT_SIDEARMS:
	    addlinetomenu(ent, "Gives you additional", MENU_WHITE_CENTERED);
		addlinetomenu(ent, "respawn weapons. Weapon", MENU_WHITE_CENTERED);
		addlinetomenu(ent, "choice is determined by", MENU_WHITE_CENTERED);
		addlinetomenu(ent, "weapon upgrade level.", MENU_WHITE_CENTERED);
		return 4;
	//Necromancer talents
	case TALENT_EVIL_CURSE:
		addlinetomenu(ent, "Increases curse duration.", MENU_WHITE_CENTERED);
		return 1;
	case TALENT_CHEAPER_CURSES:
		addlinetomenu(ent, "Reduces curse cost.", MENU_WHITE_CENTERED);
		return 1;
	case TALENT_CORPULENCE:
		addlinetomenu(ent, "Increases hellspawn", MENU_WHITE_CENTERED);
		addlinetomenu(ent, "and monster health/armor,", MENU_WHITE_CENTERED);
		addlinetomenu(ent, "but reduces damage. Can't,", MENU_WHITE_CENTERED);
		addlinetomenu(ent, "combine with Life Tap.", MENU_WHITE_CENTERED);
		return 4;
	case TALENT_LIFE_TAP:
		addlinetomenu(ent, "Increases hellspawn", MENU_WHITE_CENTERED);
		addlinetomenu(ent, "and monster damage,", MENU_WHITE_CENTERED);
		addlinetomenu(ent, "but slowly saps life.", MENU_WHITE_CENTERED);
		addlinetomenu(ent, "Can't combine with", MENU_WHITE_CENTERED);
		addlinetomenu(ent, "Corpulence.", MENU_WHITE_CENTERED);
		return 5;
	case TALENT_DIM_VISION:
		addlinetomenu(ent, "Adds chance to", MENU_WHITE_CENTERED);
		addlinetomenu(ent, "automatically curse", MENU_WHITE_CENTERED);
		addlinetomenu(ent, "enemies that shoot you.", MENU_WHITE_CENTERED);
		return 3;
	case TALENT_FLIGHT:
		addlinetomenu(ent, "Reduces jetpack cost.", MENU_WHITE_CENTERED);
		return 1;
	//Shaman talents
	case TALENT_TOTEM:
		addlinetomenu(ent, "Allows you to spawn an", MENU_WHITE_CENTERED);
		addlinetomenu(ent, "extra totem. Totem can not", MENU_WHITE_CENTERED);
		addlinetomenu(ent, "be of the opposite element.", MENU_WHITE_CENTERED);
		return 3;
	case TALENT_ICE:
		addlinetomenu(ent, "Allows your water totem", MENU_WHITE_CENTERED);
		addlinetomenu(ent, "to damage its targets.", MENU_WHITE_CENTERED);
		return 2;
	case TALENT_WIND:
		addlinetomenu(ent, "Allows your air totem to", MENU_WHITE_CENTERED);
		addlinetomenu(ent, "ghost attacks for you.", MENU_WHITE_CENTERED);
		return 2;
	case TALENT_STONE:
		addlinetomenu(ent, "Allows your earth totem to", MENU_WHITE_CENTERED);
		addlinetomenu(ent, "increase your resistance.", MENU_WHITE_CENTERED);
		return 2;
	case TALENT_SHADOW:
		addlinetomenu(ent, "Allows your darkness totem", MENU_WHITE_CENTERED);
		addlinetomenu(ent, "to let you vamp beyond your", MENU_WHITE_CENTERED);
		addlinetomenu(ent, "maximum health limit.", MENU_WHITE_CENTERED);
		return 3;
	case TALENT_PEACE:
		addlinetomenu(ent, "Allows your nature totem to", MENU_WHITE_CENTERED);
		addlinetomenu(ent, "regenerate your power cubes.", MENU_WHITE_CENTERED);
		return 2;
	case TALENT_VOLCANIC:
		addlinetomenu(ent, "Adds a chance for fire", MENU_WHITE_CENTERED);
		addlinetomenu(ent, "totem to shoot a fireball.", MENU_WHITE_CENTERED);
		return 2;
	//Alien talents
	case TALENT_PHANTOM_OBSTACLE:
		addlinetomenu(ent, "Reduces time to cloak.", MENU_WHITE_CENTERED);
		return 1;
	case TALENT_SUPER_HEALER:
		addlinetomenu(ent, "Allows healer to heal", MENU_WHITE_CENTERED);
		addlinetomenu(ent, "beyond maximum health.", MENU_WHITE_CENTERED);
		return 2;
	case TALENT_PHANTOM_COCOON:
		addlinetomenu(ent, "Allows cocoon to cloak.", MENU_WHITE_CENTERED);
		return 1;
	case TALENT_SWARMING:
		addlinetomenu(ent, "Increases spore count,", MENU_WHITE_CENTERED);
		addlinetomenu(ent, "but reduces damage.", MENU_WHITE_CENTERED);
		return 2;
	case TALENT_EXPLODING_BODIES:
		addlinetomenu(ent, "Makes alien-summons'", MENU_WHITE_CENTERED);
		addlinetomenu(ent, "corpses explode.", MENU_WHITE_CENTERED);
		return 2;
	default:	return 0;
	}
}
Ejemplo n.º 17
0
void StartShowInventoryMenu(edict_t *ent, item_t *item)
{
	int type = item->itemtype;
	int linecount = 1;
	int i;

	if (!ShowMenu(ent))
		return;
	clearmenu(ent);

	//If item has a name, use that instead
	if (strlen(item->name) > 0)
	{
		if (item->setCode == 0)
			addlinetomenu(ent, va(" %s", item->name), MENU_GREEN_LEFT);
		else addlinetomenu(ent, va(" %s (set item)", item->name), MENU_GREEN_LEFT);
	}
	else
	{
		//Print header, depending on the item type
		addlinetomenu(ent, va("%s", V_MenuItemString(item, ' ')), MENU_GREEN_LEFT); 
	}

	//Unique runes need to display stats too
	if (type & ITEM_UNIQUE)
		type ^= ITEM_UNIQUE;

	//Item's stats
	switch(type)
	{
	case ITEM_WEAPON:
		{
			int wIndex = (item->modifiers[0].index / 100) - 10;

			addlinetomenu(ent, " ", 0);
			addlinetomenu(ent, va(" %s", GetWeaponString(wIndex)), 0);
			addlinetomenu(ent, " ", 0);
			addlinetomenu(ent, " Stats:", MENU_GREEN_LEFT);
			linecount += 4;
			for (i = 0; i < MAX_VRXITEMMODS; ++i)
			{
				int mIndex;
				char buf[30];

				if ((item->modifiers[i].type == TYPE_NONE) || (V_HiddenMod(ent, item, &item->modifiers[i])))
					continue;

				mIndex = item->modifiers[i].index % 100;
				strcpy(buf, GetModString(wIndex, mIndex));
				padRight(buf, 20);
				addlinetomenu(ent, va("  %s [%d]", buf, item->modifiers[i].value ), 0);
				++linecount;
			}
			addlinetomenu(ent, " ", 0);
			++linecount;
		}
		break;
	case ITEM_ABILITY:
		{
			addlinetomenu(ent, " ", 0);
			addlinetomenu(ent, " Stats:", MENU_GREEN_LEFT);
			linecount += 2;
			for (i = 0; i < MAX_VRXITEMMODS; ++i)
			{
				int aIndex;
				char buf[30];

				aIndex = item->modifiers[i].index;
				if ((item->modifiers[i].type == TYPE_NONE) || (V_HiddenMod(ent, item, &item->modifiers[i])))
					continue;

				strcpy(buf, GetAbilityString(aIndex));
				padRight(buf, 20);
				addlinetomenu(ent, va("  %s [%d]", buf, item->modifiers[i].value ), 0);
				linecount++;
			}
		}
		break;
	case ITEM_COMBO:
		{
			addlinetomenu(ent, " ", 0);
			addlinetomenu(ent, " Stats:", MENU_GREEN_LEFT);
			linecount += 2;
			for (i = 0; i < MAX_VRXITEMMODS; ++i)
			{
				char buf[30];
				if ((item->modifiers[i].type == TYPE_NONE) || (V_HiddenMod(ent, item, &item->modifiers[i])))
					continue;

				switch(item->modifiers[i].type)
				{
				case TYPE_ABILITY:
					{
						int aIndex;
						aIndex = item->modifiers[i].index;

						strcpy(buf, GetAbilityString(aIndex));
						padRight(buf, 20);
						addlinetomenu(ent, va("  %s [%d]", buf, item->modifiers[i].value ), 0);
						linecount++;
					}
					break;
				case TYPE_WEAPON:
					{
						int wIndex = (item->modifiers[i].index / 100) - 10;
						int mIndex = item->modifiers[i].index % 100;

						strcpy(buf, GetShortWeaponString(wIndex));
						strcat(buf, va(" %s", GetModString(wIndex, mIndex)));
						padRight(buf, 20);
						addlinetomenu(ent, va("  %s [%d]", buf, item->modifiers[i].value ), 0);
						linecount++;
					}
					break;
				}
			}
		}
		break;
	case ITEM_CLASSRUNE:
		{
			addlinetomenu(ent, " ", 0);
			addlinetomenu(ent, " Stats:", MENU_GREEN_LEFT);
			linecount += 2;
			for (i = 0; i < MAX_VRXITEMMODS; ++i)
			{
				int aIndex;
				char buf[30];

				aIndex = item->modifiers[i].index;

				if (item->modifiers[i].type == TYPE_NONE)
					continue;

				strcpy(buf, GetAbilityString(aIndex));
				padRight(buf, 20);
				addlinetomenu(ent, va("  %s [%d]", buf, item->modifiers[i].value ), 0);
				linecount++;
			}
		}
		break;
	}

	//Menu footer
	addlinetomenu(ent, " ", 0);

	//Items such as Gravity boots need to show the number of charges left
	if ((item->itemtype & ITEM_GRAVBOOTS) || (item->itemtype & ITEM_FIRE_RESIST) || (item->itemtype & ITEM_AUTO_TBALL))
	{
		addlinetomenu(ent, va(" Charges left: %d", item->quantity), 0);
		addlinetomenu(ent, " ", 0);
		linecount += 2;
	}

	ent->client->menustorage.currentline = linecount;
}
Ejemplo n.º 18
0
void OpenGeneralWeaponMenu (edict_t *ent, int lastline)
{
	int WeaponIndex = (lastline / 100) - 10;
	int modIndex = (lastline % 100);
	int i;

	if (!ShowMenu(ent))
		return;
	clearmenu(ent);

	addlinetomenu(ent, va("%s\n(%d%c)", GetWeaponString(WeaponIndex), V_WeaponUpgradeVal(ent, WeaponIndex), '%'), MENU_GREEN_CENTERED);
	addlinetomenu(ent, va("Weapon points left: %d", ent->myskills.weapon_points), MENU_GREEN_CENTERED);
	addlinetomenu(ent, " ", 0);
	addlinetomenu(ent, " Select the weapon", 0);
	addlinetomenu(ent, " attribute you want to", 0);
	addlinetomenu(ent, " improve upon.", 0);
	addlinetomenu(ent, " ", 0);

	for (i = 0; i < MAX_WEAPONMODS; ++i)
	{
		char sMod[30];
		int level, cur;
		level = ent->myskills.weapons[WeaponIndex].mods[i].level;
		cur = ent->myskills.weapons[WeaponIndex].mods[i].current_level;
		strcpy(sMod, GetModString(WeaponIndex, i));
		padRight(sMod, 15);
		strcat(sMod, va("%d", level));
		padRight(sMod, 18);
		addlinetomenu(ent, va("%s[%d]", sMod, cur), ((WeaponIndex+10)*100) + i + 1);
	}
		
	setmenuhandler(ent, generalWeaponMenu_handler);

	if (modIndex)
		ent->client->menustorage.currentline = modIndex + 7;
	else
		ent->client->menustorage.currentline = 14;

	addlinetomenu(ent, " ", 0);
	addlinetomenu(ent, "Previous Menu", 7777 + WeaponIndex);
	addlinetomenu(ent, "Exit", 6666);

	showmenu(ent);
}
Ejemplo n.º 19
0
void ShowItemsHelpMenu(edict_t *ent)
{
	//Usual menu stuff
	 if (!ShowMenu(ent))
        return;
	clearmenu(ent);

	//Print header
	//					xxxxxxxxxxxxxxxxxxxxxxxxxxx (max length 27 chars)
	addlinetomenu(ent, "Item types:", MENU_GREEN_LEFT);
	addlinetomenu(ent, " ", 0);
	addlinetomenu(ent, " Health potions", MENU_GREEN_LEFT);
	addlinetomenu(ent, "  Heals 50% max health.", 0);
	addlinetomenu(ent, " Holy water", MENU_GREEN_LEFT);
	addlinetomenu(ent, "  Removes all curses.", 0);
	addlinetomenu(ent, " Tballs", MENU_GREEN_LEFT);
	addlinetomenu(ent, "  Teleport self/others.", 0);
	addlinetomenu(ent, " Gravity Boots", MENU_GREEN_LEFT);
	addlinetomenu(ent, "  Jump great distances.", 0);
	addlinetomenu(ent, " Fire Resistant Clothing", MENU_GREEN_LEFT);
	addlinetomenu(ent, "  Resists burns.", 0);
	addlinetomenu(ent, " ", 0);
	addlinetomenu(ent, " To use: cmd use <item>", 0);
	addlinetomenu(ent, " Some items are automatic.", 0);
	addlinetomenu(ent, " Tballs can not be dropped.", 0);

	//Menu footer
	addlinetomenu(ent, " ", 0);
	addlinetomenu(ent, "Previous", 50);
	addlinetomenu(ent, "Exit", 666);

	//Set handler
	setmenuhandler(ent, ShowSecondaryMenu_handler);

	//Set current line
	ent->client->menustorage.currentline = 18;

	//Display the menu
	showmenu(ent);
}
Ejemplo n.º 20
0
void ShowRuneTypes(edict_t *ent)
{
	//Usual menu stuff
	 if (!ShowMenu(ent))
        return;
	clearmenu(ent);

	//Print header
	//					xxxxxxxxxxxxxxxxxxxxxxxxxxx (max length 27 chars)
	addlinetomenu(ent, "Rune types:", MENU_GREEN_LEFT);
	addlinetomenu(ent, " ", 0);
	addlinetomenu(ent, " Ability runes   (blue)", 0);
	addlinetomenu(ent, " Weapon runes    (red)", 0);
	addlinetomenu(ent, " Combo runes     (purple)", 0);
	addlinetomenu(ent, " Class runes     (cyan)", 0);
	addlinetomenu(ent, " Unique runes    (yellow)", 0);
	addlinetomenu(ent, " Special Uniques (green)", 0);
	
	//Menu footer
	addlinetomenu(ent, " ", 0);
	addlinetomenu(ent, " Previous", 40);
	addlinetomenu(ent, " Exit", 666);

	//Set handler
	setmenuhandler(ent, ShowSecondaryMenu_handler);

	//Set current line
	ent->client->menustorage.currentline = 10;

	//Display the menu
	showmenu(ent);
}
Ejemplo n.º 21
0
void ShowCommandsMenu(edict_t *ent)
{
	//Usual menu stuff
	 if (!ShowMenu(ent))
        return;
	clearmenu(ent);

	//Print header
	//					xxxxxxxxxxxxxxxxxxxxxxxxxxx (max length 27 chars)
	addlinetomenu(ent, "Standard Vortex Commands:", MENU_GREEN_LEFT);
	addlinetomenu(ent, " ", 0);
	addlinetomenu(ent, " set vrx_password <pass> u", 0);
	addlinetomenu(ent, " email <address>", 0);
	addlinetomenu(ent, " upgrade_weapon", 0);
	addlinetomenu(ent, " upgrade_ability", 0);
	addlinetomenu(ent, " vrxarmory", 0);
	addlinetomenu(ent, " vrxrespawn", 0);
	addlinetomenu(ent, " vrxinfo", 0);
	addlinetomenu(ent, " rune", 0);
	addlinetomenu(ent, " vote", 0);
	addlinetomenu(ent, " vrxid", 0);
	addlinetomenu(ent, " use tball [self]", 0);
	addlinetomenu(ent, " togglesecondary", 0);

	//Menu footer
	addlinetomenu(ent, " ", 0);
	addlinetomenu(ent, "Previous", 20);
	addlinetomenu(ent, "Exit", 666);

	//Set handler
	setmenuhandler(ent, ShowSecondaryMenu_handler);

	//Set current line
	ent->client->menustorage.currentline = 16;

	//Display the menu
	showmenu(ent);
}
Ejemplo n.º 22
0
void OpenDOMJoinMenu (edict_t *ent)
{
	if (debuginfo->value)
		gi.dprintf("DEBUG: OpenDOMJoinMenu()\n");

	if (!ShowMenu(ent))
        return;

	// new character
	if (!ent->myskills.class_num)
	{
		OpenClassMenu(ent, 1);
		return;
	}

	clearmenu(ent);

	if (!ent->myskills.administrator && !InJoinedQueue(ent) && (level.time > pregame_time->value))
	{
//							xxxxxxxxxxxxxxxxxxxxxxxxxxx (max length 27 chars)
		addlinetomenu(ent, "Vortex Domination:", MENU_GREEN_CENTERED);
		addlinetomenu(ent, " ", 0);
		addlinetomenu(ent, "The match has already", 0);
		addlinetomenu(ent, "begun. You will be joined", 0);
		addlinetomenu(ent, "automatically when the", 0);
		addlinetomenu(ent, "flag is dropped.", 0);
		addlinetomenu(ent, " ", 0);
		addlinetomenu(ent, "Exit", 3);

		setmenuhandler(ent, jointeam_handler);
		ent->client->menustorage.currentline = 8;
		showmenu(ent);

		// indicate that the player wants to join
		ent->client->waiting_to_join = true;
		ent->client->waiting_time = level.time;
		return;
	}

	addlinetomenu(ent, "Vortex Domination:", MENU_GREEN_CENTERED);
	addlinetomenu(ent, " ", 0);
	//					xxxxxxxxxxxxxxxxxxxxxxxxxxx (max length 27 chars)
	addlinetomenu(ent, "Your goal is to help your", 0);
	addlinetomenu(ent, "team capture the flag.", 0);
	addlinetomenu(ent, "While your team is in", 0);
	addlinetomenu(ent, "control of the flag, you", 0);
	addlinetomenu(ent, "gain points. Protect your", 0);
	addlinetomenu(ent, "flag carrier! Don't let", 0);
	addlinetomenu(ent, "the flag into enemy hands.", 0);
	addlinetomenu(ent, " ", 0);
	addlinetomenu(ent, "Join", 1);
	addlinetomenu(ent, "Back", 2);
	addlinetomenu(ent, "Exit", 3);

	setmenuhandler(ent, jointeam_handler);
	ent->client->menustorage.currentline = 11;
	showmenu(ent);
}
Ejemplo n.º 23
0
void OpenArmoryMenu (edict_t *ent)
{
	if (!ShowMenu(ent))
        return;

	clearmenu(ent);

	addlinetomenu(ent, "The Armory", MENU_GREEN_CENTERED);
	addlinetomenu(ent, " ", 0);
	addlinetomenu(ent, "Welcome to the Armory!", 0);
	addlinetomenu(ent, "Select the item you want", 0);
	addlinetomenu(ent, "to purchase from the", 0);
	addlinetomenu(ent, va("Armory. You have %d", ent->myskills.credits), 0);
	addlinetomenu(ent, "credits.", 0);
	addlinetomenu(ent, " ", 0);
	if (level.time < pregame_time->value)
		addlinetomenu(ent, "Buy", 1);
	addlinetomenu(ent, "Buy Runes", 2);
	addlinetomenu(ent, "Sell", 3);
	addlinetomenu(ent, "Exit", 4);

	setmenuhandler(ent, armorymenu_handler);
	ent->client->menustorage.currentline = 9;
	showmenu(ent);
}
Ejemplo n.º 24
0
void OpenBuyRuneMenu(edict_t *ent, int page_num, int lastline)
{
	int i;
	armoryRune_t *firstItem;

	//Usual menu stuff
	if (!ShowMenu(ent))
        return;
	clearmenu(ent);

	//Header
	addlinetomenu(ent, va("You have %d credits", ent->myskills.credits), MENU_GREEN_CENTERED);
	addlinetomenu(ent, "Please make a selection:", MENU_GREEN_CENTERED);
	addlinetomenu(ent, " ", 0);

	switch(page_num)
	{
	case 1: firstItem = WeaponRunes;	break;
	case 2: firstItem = AbilityRunes;	break;
	case 3: firstItem = ComboRunes;		break;
	default: 
		gi.dprintf("Error in OpenBuyRuneMenu(). Invalid page number: %d\n", page_num);
		return;
	}

	//Print this page's items
    for (i = 0; i < ARMORY_MAX_RUNES; ++i)
	{
		item_t *rune = &((firstItem + i)->rune);
		if (rune->itemtype != ITEM_NONE)
		{
			char buf[32];
			strcpy(buf, V_MenuItemString(rune, ' '));
			padRight(buf, 18);
			addlinetomenu(ent, va("%s%d", buf, getBuyValue(rune)), (page_num * 1000) + i + 1);
		}
		else 
		{
			switch(page_num)
			{
			case 1: addlinetomenu(ent, "    <Empty Weapon Slot>", 0); break;
			case 2: addlinetomenu(ent, "    <Empty Ability Slot>", 0); break;
			case 3: addlinetomenu(ent, "    <Empty Combo Slot>", 0); break;
			}
		}
	}

	//Footer
	addlinetomenu(ent, " ", 0);
	if (page_num < 3) addlinetomenu(ent, "Next", (page_num*10)+2);
	addlinetomenu(ent, "Back", (page_num*10)+1);
	addlinetomenu(ent, "Exit", 99);

	//Menu handler
	setmenuhandler(ent, BuyRuneMenu_handler);

	//Set the menu cursor
	if (lastline)	ent->client->menustorage.currentline = 4 + lastline;
	else			ent->client->menustorage.currentline = 15;
	
	//Show the menu
	showmenu(ent);
}
Ejemplo n.º 25
0
void ShowModeHelpMenu(edict_t *ent)
{
	//Usual menu stuff
	 if (!ShowMenu(ent))
        return;
	clearmenu(ent);

	//Print header
	//					xxxxxxxxxxxxxxxxxxxxxxxxxxx (max length 27 chars)
	addlinetomenu(ent, "Game modes:", MENU_GREEN_LEFT);
	addlinetomenu(ent, " ", 0);
	addlinetomenu(ent, "  Player Vs. Player  (PvP)", 0);
	addlinetomenu(ent, "  Player Vs. Monters (PvM)", 0);
	addlinetomenu(ent, "  Domination         (DOM)", 0);
	addlinetomenu(ent, " ", 0);
	addlinetomenu(ent, " Domination is a variation", 0);
	addlinetomenu(ent, " of capture the flag.", 0);
	addlinetomenu(ent, " Protect your flag runner!", 0);

	//Menu footer
	addlinetomenu(ent, " ", 0);
	addlinetomenu(ent, "Previous", 80);
	addlinetomenu(ent, "Exit", 666);

	//Set handler
	setmenuhandler(ent, ShowSecondaryMenu_handler);

	//Set current line
	ent->client->menustorage.currentline = 11;

	//Display the menu
	showmenu(ent);
}
Ejemplo n.º 26
0
void ShowBasicsMenu(edict_t *ent)
{
	//Usual menu stuff
	 if (!ShowMenu(ent))
        return;
	clearmenu(ent);

	//Print header
	//					xxxxxxxxxxxxxxxxxxxxxxxxxxx (max length 27 chars)
	addlinetomenu(ent, " ", 0);
	addlinetomenu(ent, " To find out more about the", 0);
	addlinetomenu(ent, " basics of Vortex, go", 0);
	addlinetomenu(ent, " visit our website at:", 0);
	addlinetomenu(ent, " ", 0);
	addlinetomenu(ent, " www.project-vortex.com", MENU_GREEN_CENTERED);
	addlinetomenu(ent, " ", 0);
	addlinetomenu(ent, " There is too much info", 0);
	addlinetomenu(ent, " to show in this menu.", 0);

	//Menu footer
	addlinetomenu(ent, " ", 0);
	addlinetomenu(ent, "Previous", 10);
	addlinetomenu(ent, "Exit", 666);

	//Set handler
	setmenuhandler(ent, ShowSecondaryMenu_handler);

	//Set current line
	ent->client->menustorage.currentline = 11;

	//Display the menu
	showmenu(ent);
}
Ejemplo n.º 27
0
void ShowVoteHelpMenu(edict_t *ent)
{
	//Usual menu stuff
	 if (!ShowMenu(ent))
        return;
	clearmenu(ent);

	//Print header
	//					xxxxxxxxxxxxxxxxxxxxxxxxxxx (max length 27 chars)
	addlinetomenu(ent, "Voting", MENU_GREEN_LEFT);
	addlinetomenu(ent, " ", 0);
	addlinetomenu(ent, " To vote for the next game", 0);
	addlinetomenu(ent, " and map, use the command:", 0);
	addlinetomenu(ent, " vote. You must vote for", 0);
	addlinetomenu(ent, " both a game mode and ", 0);
	addlinetomenu(ent, " a map in order for your", 0);
	addlinetomenu(ent, " vote to be recorded.", 0);

	//Menu footer
	addlinetomenu(ent, " ", 0);
	addlinetomenu(ent, "Previous", 70);
	addlinetomenu(ent, "Exit", 666);

	//Set handler
	setmenuhandler(ent, ShowSecondaryMenu_handler);

	//Set current line
	ent->client->menustorage.currentline = 10;

	//Display the menu
	showmenu(ent);
}
Ejemplo n.º 28
0
void ShowHelpMenu(edict_t *ent, int lastpick)
{
	//Usual menu stuff
	 if (!ShowMenu(ent))
        return;
	clearmenu(ent);

	//Print header
	addlinetomenu(ent, "Choose a help topic:", MENU_GREEN_LEFT);
	addlinetomenu(ent, " ", 0);

	//					xxxxxxxxxxxxxxxxxxxxxxxxxxx (max length 27 chars)
	addlinetomenu(ent, " Basics", 10);
	addlinetomenu(ent, " Standard commands", 20);
	addlinetomenu(ent, " Print full command list", 30);
	addlinetomenu(ent, " Rune Types", 40);
	addlinetomenu(ent, " Consumable items", 50);
	addlinetomenu(ent, " Trading", 60);
	addlinetomenu(ent, " Voting", 70);
	addlinetomenu(ent, " Game modes", 80);

	//Menu footer
	addlinetomenu(ent, " ", 0);
	addlinetomenu(ent, "Exit", 666);

	//Set handler
	setmenuhandler(ent, ShowHelpMenu_handler);

	//Set current line
	if (lastpick)
		ent->client->menustorage.currentline = (lastpick / 10) + 2;
	else ent->client->menustorage.currentline = 12;

	//Display the menu
	showmenu(ent);
}