|
发表于 2010-1-9 18:33:56
|
显示全部楼层
来自 中国–广东–深圳–宝安区
本帖最后由 baili1258 于 2010-1-9 19:04 编辑
- /* AMX Mod X
- * New Round Gift
- *
- * (c) Copyright 2005 by VEN
- *
- * This file is provided as is (no warranties)
- *
- * DESCRIPTION:
- * Every new round at the CT and T respawn randomly appears gift.
- *
- * NOTE:
- * Gift wouldn't appear for team with only one player!
- *
- * FEATURES:
- * Plugin make gift collection fun and interesting because:
- * - you don't know where is gift would appear
- * - you don't know what is inside
- * - sometimes you must run fast and even jump
- *
- * MODULES:
- * - engine
- * - fun
- *
- * CONFIGURATION:
- * Available items can be changed (GIFT_ITEM_NUM, GIFT_ITEM), default: vest, vesthelm, nades.
- *
- * Gift model can be changed (GIFT_MODEL), default: "models/w_battery.mdl".
- *
- * Plugin can be disabled by changing "amx_newround_gift" CVAR value to 0.
- */
- #include <amxmodx>
- #include <engine>
- #include <fun>
- #define MAX_PLAYERS 32
- #define GIFT_ITEM_NUM 8
- new const GIFT_ITEM[GIFT_ITEM_NUM][] = {
- "item_assaultsuit",
- "weapon_deagle",
- "weapon_awp",
- "weapon_ak47",
- "weapon_m4a1",
- "weapon_aug",
- "weapon_sg552",
- "weapon_hegrenade"
- }
- new g_roundcount
- #define GIFT_MODEL "models/w_isotopebox.mdl"
- #define GIFT_NAME "gift"
- public plugin_init() {
- register_plugin("New Round Gift", "0.1", "VEN")
- register_logevent("logevent_round_start", 2, "0=World triggered", "1=Round_Start")
- register_event("TextMsg","eRestart","a","2&#Game_C","2&#Game_w")//刷新事件
- register_event("RoundTime", "event_round_time", "bc")
- register_touch(GIFT_NAME, "player", "touch_gift")
- register_cvar("amx_newround_gift", "1")
- g_roundcount=0
- }
- public plugin_modules() {
- require_module("engine")
- require_module("fun")
- }
- public plugin_precache() {
- precache_model(GIFT_MODEL)
- }
- public eRestart()
- g_roundcount = 0
- public logevent_round_start() {
- g_roundcount++
- if (!get_cvar_num("amx_newround_gift") || g_roundcount == 1)
- return
-
- new pnum[2], origin[3], minor[2][3], maxor[2][3], bool:compare[2]
- for (new i = 1; i <= MAX_PLAYERS; ++i) {
- if (!is_user_alive(i))
- continue
-
- new team = get_user_team(i) - 1
- if (team != 0 & team != 1)
- continue
-
- pnum[team]++
- get_user_origin(i, origin)
- if (compare[team]) {
- for (new j = 0; j < 3; ++j) {
- if (origin[j] < minor[team][j])
- minor[team][j] = origin[j]
- if (origin[j] > maxor[team][j])
- maxor[team][j] = origin[j]
- }
- }
- else {
- minor[team] = origin
- maxor[team] = origin
- compare[team] = true
- }
- }
- for (new i = 0; i < 2; ++i) {
- if (pnum[i] < 2)
- continue
-
- new gift = create_entity("info_target")
- if (!gift) {
- log_amx("ERROR: Couldn't create gift entity!")
- continue
- }
-
- entity_set_string(gift, EV_SZ_classname, GIFT_NAME)
- entity_set_int(gift, EV_INT_solid, SOLID_TRIGGER)
-
- new Float:gift_origin[3]
- for (new j = 0; j < 3; ++j)
- gift_origin[j] = float(random_num(minor[i][j], maxor[i][j]))
- gift_origin[2] += 40
- entity_set_vector(gift, EV_VEC_origin, gift_origin)
-
- entity_set_model(gift, GIFT_MODEL)
- }
- }
- public touch_gift(gift, id) {
- new PlayerName[32], msg[512]
- get_user_name( id, PlayerName, 31)
- give_item(id, GIFT_ITEM[random(GIFT_ITEM_NUM)])
- remove_entity(gift)
- format(msg, 511, "^x04* 玩家:^x03%s^x04 打开了礼包,获得了一份神秘礼物!", PlayerName)
- client_color(0, id, msg)
- }
- public event_round_time() {
- if (read_data(1) == get_cvar_num("mp_freezetime")) {
- new gift = 0
- while ((gift = find_ent_by_class(gift, GIFT_NAME)))
- remove_entity(gift)
- }
- }
- public client_color(playerid, colorid, msg[])
- {
- message_begin(playerid?MSG_ONE:MSG_ALL,get_user_msgid("SayText"),_,playerid)
- write_byte(colorid)
- write_string(msg)
- message_end()
- }
复制代码 没测试
不行我再帮你看 |
|