PDA

View Full Version : weapon shops on wall, nodl zombies, mp_carentan example files



kung foo man
17th November 2018, 23:11
mp_carentan.gsc



// something is going wrong.
// the bot isnt linked to the helper
// maybe a wait 0.05 is missing ("let it happen")
spawnPopulationBots()
{
helper = spawn("script_origin", (57,1909,68));
for (i=0; i<1; i++)
{
bot = addTestClient();
bot spawn(helper.origin, (0,0,0));
bot.isBot = 1;
bot linkTo(helper);
}
}

main()
{
maps\mp\_load::main();
ambientPlay("ambient_france");

game["allies"] = "american";
game["axis"] = "german";
game["attackers"] = "allies";
game["defenders"] = "axis";
game["american_soldiertype"] = "normandy";
game["german_soldiertype"] = "normandy";

// the bugged spawn near (-11,684,206)
mod\UTILS::deleteEntityByClassnameAndId("mp_dm_spawn", 279);

mod\INTERFACE::startMod();
mod\INTERFACE::createShop((1768, 818, 36), 134);

mortar1 = mod\INTERFACE::addMortar( (-208,1798,206), 119);
mortar1 mod\INTERFACE::addMortarTarget( (-588,2308,102) );

mortar2 = mod\INTERFACE::addMortar( (1696,2116,36), 198);
mortar2 mod\INTERFACE::addMortarTarget( (1126,1987,20) );

mortar3 = mod\INTERFACE::addMortar( (1734,1868,36), 247);
mortar3 mod\INTERFACE::addMortarTarget( (1578,1339,28) );

mod\INTERFACE::addMortarAmmo((-811,2527,34), 316);
mod\INTERFACE::addMortarAmmo((1932,1862,35), 139);
//mod\INTERFACE::addRandomBox((1017,1181,-24+60), 357);

mod\INTERFACE::shopTT30( (1798+18,1217,36), 180);
mod\INTERFACE::shopGreaseGun( (1798+18,975,36), 180);
mod\INTERFACE::shopKar98k( (1625,783-14,36), 90);

// erster
mod\INTERFACE::createTeleport( (656,448,274), (1484,943,458), "^9trigger #1", mod\UTILS::isHunter);
// leichter jump
mod\INTERFACE::createTeleport( (-472,2451,131), (1484,943,458), "^9trigger #2", mod\UTILS::isHunter);
mod\INTERFACE::createTeleport( (-569,2546,110), (1484,943,458), "^9trigger #3", mod\UTILS::isHunter);
mod\INTERFACE::createTeleport( (-518,2497,111), (1484,943,458), "^9trigger #4", mod\UTILS::isHunter);
// schwerer jump
mod\INTERFACE::createTeleport( (900,-951,100), (1484,943,458), "^9trigger #5", mod\UTILS::isHunter);
mod\INTERFACE::createTeleport( (901,-1075,100), (1484,943,458), "^9trigger #6", mod\UTILS::isHunter);
mod\INTERFACE::createTeleport( (900,-1022,120), (1484,943,458), "^9trigger #7", mod\UTILS::isHunter);
mod\INTERFACE::createTeleport( (966,-936,128), (1484,943,458), "^9trigger #8", mod\UTILS::isHunter);
// window links
mod\INTERFACE::createTeleport( (1067,785,215), (1484,943,458), "^9trigger #9", mod\UTILS::isHunter);
// window rechts
mod\INTERFACE::createTeleport( (888,786,215), (1484,943,458), "^9trigger #10", mod\UTILS::isHunter);
// hippys beschwerde 1
mod\INTERFACE::createTeleport( (846,1721,197), (1484,943,458), "^9trigger #11", mod\UTILS::isHunter);
// hippys beschwerde 1
mod\INTERFACE::createTeleport( (944,1792,168), (1484,943,458), "^9trigger #12", mod\UTILS::isHunter);
// we1n nade jump
mod\INTERFACE::createTeleport( (989,3605,143), (1484,943,458), "^9trigger #13", mod\UTILS::isHunter);
// god glitch (replaced by collision)
// mod\INTERFACE::createTeleport( (-51,707,184), (1484,943,458), "^9trigger #13", mod\UTILS::isHunter);
// two camp windows with nade or side-jump
mod\INTERFACE::createTeleport( (1390,1584,214), (1484,943,458), "^9trigger #14", mod\UTILS::isHunter, 4);
mod\INTERFACE::createTeleport( (1395,1704,214), (1484,943,458), "^9trigger #15", mod\UTILS::isHunter, 4);

mod\INTERFACE::createRadio((1773,1353,36),269);

// muster-code...
// mod\interface::createCollision((,,),,); //

mod\interface::createCollision((-62,707,144),50,30); // hinter Komode

//spawnPopulationBots();

/*
wait 5.00;
//findIdOfBuggedSpawn():
pointNearTheSpawn = (-11,684,206);
spawns = getentarray("mp_dm_spawn", "classname");
spawnNearest = spawns[0];
spawnNearestDistance = distance(spawnNearest.origin, pointNearTheSpawn);
for (i=1; i<spawns.size; i++)
{
distanceToThis = distance(spawns[i].origin, pointNearTheSpawn);
if (distanceToThis < spawnNearestDistance)
{
spawnNearestDistance = distanceToThis;
spawnNearest = spawns[i];
}
}
iprintln("found the spawn: ", spawnNearest.origin, " id: ", spawnNearest getEntityNumber());
*/
}


interface.gsc



initVar(name, value)
{
mod\INIT::initDefaultVar(name, value);
}

startMod(overwrite)
{
mod\INIT::main();
}

createShop(pos, dir)
{
thread mod\SHOP::createShop(pos, dir);
}

addBadPlace(discription, origin, radius, height)
{
thread mod\BADPLACES::addBadPlace(discription, origin, radius, height);
}

addMortar(position, dir)
{
mortar = mod\MORTAR::addMortar(position, dir);
return mortar;
}

addMortarTarget(position)
{
thread mod\MORTAR::addMortarTarget(position);
}

addMortarAmmo(position, dir)
{
thread mod\MORTAR::addMortarAmmo(position, dir);
}

addRandomBox(pos, dir)
{
//not implemented yet.
thread mod\RANDOMBOX::addRandomBox(pos, dir);
}

createDefendBox(pos, dir)
{
mod\DEFENDBOXES::createDefendBox(pos, dir);
}

createModel(name, position, angles)
{
model = spawn("script_model", position);
model.angles = angles;
model setModel(name);

return model;
}

/*
addBlocker(pos, size)
{
blocker = spawn("script_origin", pos);
blocker setbounds( (0,0,0)-size, size);
blocker setcontents(1);

//level.size = size;

level.blocker = blocker;

thread makeVis();
}
*/
createTeleport(from, to, message, callback, radius)
{
mod\TELEPORT::createTeleport(from, to, message, callback, radius);
}

spawnSignTeddy(position, angle)
{
mod\SIGNS::spawnSignTeddy(position, angle);
}

spawnSignMortar(position, angle)
{
mod\SIGNS::spawnSignMortar(position, angle);
}

// methods of class "player"
addMoney(money)
{
player = self;
player mod\PLAYER::PLAYER_addMoney(money);
}

checkpointCreate(name, position)
{
mod\CHECKPOINT::checkpointCreate(name, position);
}

checkpointConnect(from, to, material, givePrize)
{
mod\CHECKPOINT::checkpointConnect(from, to, material, givePrize);
}

checkpointSetFirstCheckpoint(name, material, givePrice)
{
mod\CHECKPOINT::checkpointSetFirstCheckpoint(name, material, givePrice);
}

shopTT30(pos, dir)
{
mod\WEAPONSHOPS::shopTT30(pos, dir);
}
shopGreaseGun(pos, dir)
{
mod\WEAPONSHOPS::shopGreaseGun(pos, dir);
}
shopKar98K(pos, dir)
{
mod\WEAPONSHOPS::shopKar98K(pos, dir);
}
createRadio(pos, angle)
{
mod\HINTRADIO::radioCreate(pos, angle-90);
}

createCollision(position, radius, height)
{
coll = spawn("trigger_radius", position, 0, radius, height); // name, position, flags, radius, height
coll setContents(1);
}


weaponshops.gsc



precache()
{
game["shop_greasegun_hunter"] = &"^7Press ^8[^7[{+activate}]^8] ^7to buy a Greasegun ^8[^7600 coins^8]";
game["shop_greasegun_zombie"] = &"zombies do not play with greaseguns^8... ^7:D";
game["shop_tt30_hunter"] = &"^7Press ^8[^7[{+activate}]^8] ^7to buy a TT30 ^8[^7300 coins^8]";
game["shop_tt30_zombie"] = &"zombies do not play with pistols^8... ^7:D";
game["shop_kar98k_hunter"] = &"^7Press ^8[^7[{+activate}]^8] ^7to buy a M1 Carbine ^8[^7400 coins^8]";
game["shop_kar98k_zombie"] = &"zombies do not play with carbines^8... ^7:D";
precacheString(game["shop_greasegun_hunter"]);
precacheString(game["shop_greasegun_zombie"]);
precacheString(game["shop_tt30_hunter"]);
precacheString(game["shop_tt30_zombie"]);
precacheString(game["shop_kar98k_hunter"]);
precacheString(game["shop_kar98k_zombie"]);
precacheModel("xmodel/weapon_greasegun");
precacheModel("xmodel/weapon_tt30");
precacheModel("xmodel/weapon_m1carbine");
}

entityToWall(dir, distanceToWall)
{
entity = self;
forward = anglesToForward((0,dir,0));

// to wall
delta = mod\MATH::vecScale(forward, -1000);
trace = bullettrace(entity.origin, entity.origin+delta, false, undefined);

if (trace["fraction"] == 1)
return;

// delta from wall away...
delta = mod\MATH::vecScale(forward, distanceToWall);

entity.origin = trace["position"] + delta;
}

greasegun_buy(player)
{
if (player.pers["team"] != "allies")
{
player iprintln("^7[^8NOTICE^7] zombies can't buy greaseguns");
return;
}

if (player mod\PLAYER::getMoney() < 600)
{
player iprintln("^7[^8NOTICE^7] you don't have enough coins to purchase. You need ^8", 600, " ^7coins.");
return;
}

//iprintln("current weapon: " + );
//player giveWeapon("greasegun_mp");
//player giveMaxAmmo("greasegun_mp");

player setWeaponSlotWeapon("primary", "greasegun_mp");
player giveMaxAmmo("primary");
player giveMaxAmmo("primary");
player giveMaxAmmo("primary");
player giveMaxAmmo("primary");
player switchToWeapon("greasegun_mp");

player iprintln("^7[^8NOTICE^7] ^8greasegun purchased (price: ^8"+600+"^7)");
player mod\PLAYER::subMoney(600);
player playsound("weap_pickup");
}
shopGreaseGun(pos, dir)
{
gun = mod\UTILS::spawnXmodel("xmodel/weapon_greasegun", pos, dir-90);
gun entityToWall(dir, 2);
gun thread mod\TRIGGER::spawnUseTrigger(
::greasegun_buy,
game["shop_greasegun_hunter"],
game["shop_greasegun_zombie"]
);
gun.trigger.origin += (0,0,-50);
}

kar98k_buy(player)
{
if (player.pers["team"] != "allies")
{
player iprintln("^7[^8NOTICE^7] zombies can't buy carabines");
return;
}

if (player mod\PLAYER::getMoney() < 400)
{
player iprintln("^7[^8NOTICE^7] you don't have enough coins to purchase. You need ^8", 400, " ^7coins.");
return;
}

player setWeaponSlotWeapon("primary", "m1carbine_mp");
player giveMaxAmmo("primary");
player giveMaxAmmo("primary");
player giveMaxAmmo("primary");
player giveMaxAmmo("primary");
player switchToWeapon("m1carbine_mp");

player iprintln("^7[^8NOTICE^7] ^8M1 Carbine purchased (price: ^8"+400+"^7)");
player mod\PLAYER::subMoney(400);
player playsound("weap_pickup");
}

shopKar98k(pos, dir)
{
gun = mod\UTILS::spawnXmodel("xmodel/weapon_m1carbine", pos, dir-90);
gun entityToWall(dir, 2);
gun thread mod\TRIGGER::spawnUseTrigger(
::kar98k_buy,
game["shop_kar98k_hunter"],
game["shop_kar98k_zombie"]
);
gun.trigger.origin += (0,0,-50);

}
tt30_buy(player)
{
if (player.pers["team"] != "allies")
{
player iprintln("^7[^8NOTICE^7] zombies can't buy pistoles");
return;
}

if (player mod\PLAYER::getMoney() < 300)
{
player iprintln("^7[^8NOTICE^7] you don't have enough coins to purchase. You need ^8", 300, " ^7coins.");
return;
}

//iprintln("current weapon: " + );
//player giveWeapon("greasegun_mp");
//player giveMaxAmmo("greasegun_mp");

player setWeaponSlotWeapon("primaryb", "tt30_mp");
player giveMaxAmmo("primaryb");
player giveMaxAmmo("primaryb");
player giveMaxAmmo("primaryb");
player giveMaxAmmo("primaryb");
player switchToWeapon("tt30_mp");

player iprintln("^7[^8NOTICE^7] ^8TT30 purchased (price: ^8"+300+"^7)");
player mod\PLAYER::subMoney(300);
player playsound("weap_pickup");
}
shopTT30(pos, dir)
{
gun = mod\UTILS::spawnXmodel("xmodel/weapon_tt30", pos, dir-90);
gun entityToWall(dir, 2);
gun thread mod\TRIGGER::spawnUseTrigger(
::tt30_buy,
game["shop_tt30_hunter"],
game["shop_tt30_zombie"]
);
gun.trigger.origin += (0,0,-50);
}