Tower Defense

Tower Defense 1.1 Rebuild

Нет прав для скачивания
Настройки
Код:
; td_engine configuration file
;==========================
;MAIN
;==========================

; Save mode
; 1 - save by Nick
; 2 - save by IP
; 3 - save by authid
DATA_SAVE_MODE = 1

; Limit of saving gold per non VIP defender
BANK_LIMIT = 1300

; Limit of saving gol per VIP defender
BANK_LIMIT_VIP = 2000

; Time after afk players will moved to spectators
; Warning! Only const values divisible by 5! etc 5, 10, 15, 20
; Set 0 to disable
AFK_TIME = 180

;Gold per kill monster.
KILL_GOLD = 8

;Money per kill monster.
KILL_MONEY = 400

;Gold per kill Bonus.
KILL_BONUS_GOLD = 100

;Gold per kill Boss.
KILL_BOSS_GOLD = 150

;Frags per kill Bonus.
KILL_BONUS_FRAGS = 20

;Frags per kill Boss.
KILL_BOSS_FRAGS = 25

;Extra BP ammo sets to acutally weapon per kill
KILL_BP_AMMO = 0

;Premium monster chance -> set 0 to disable
PRM_MONSTER_CHANCE = 30

;Set green glow for premium monster?
PRM_MONSTER_GLOW = 1

;Multiplier of HP(premium monster) [float]
PRM_MONSTER_MLTP_HP = 2.0

;Multiplier of SPEED (premium monster) [float]
PRM_MONSTER_MLTP_SPEED = 1.0

;Multiplier of earned gold (premium monster) [float]
PRM_MONSTER_MLTP_GOLD = 3.5

;How long players must be in startzone to start wave? [seconds]
START_ZONE_STAY_TIME = 10

;Enable repair zone on map?
;NOTE: If is not exist repair zone on map it will be automaticly set 0
REPAIR_ZONE = 1

;Only one player can repair tower in one moment?
REPAIR_ZONE_ONE_PLAYER = 0

;How many blocks must be repaired to set tower health?
REPAIR_ZONE_BLOCKS = 2

;Price of repairing one block.
;NOTE: If td_repair_zone_blocks is 0 - it is cost of repair tower
;NOTE: Amount of repairing tower you can set in map configuration file
REPAIR_ZONE_COST = 35

;==========================
;NOTE: Time of repairing blocks or tower you can set in map configuration file
;==========================

;Min value which bonus can steal
BONUS_MIN_GOLD = 1

;Max value which bonus can steal
BONUS_MAX_GOLD = 8

;Bonus chance to steal in 0.5 second
;if 4 -> 1/2 in 1 second
BONUS_STAEL_CHANCE = 3

;==========================
;NOTE:Bonus stealing you can set in map configuration file
;==========================

;Time-out between sending monsters [float]
SEND_MONSTER_TIME = 1.9

;Allow to play alone?
ONE_PLAYER_MODE = 1

;Headshot damage multipier
HEADSHOT_DAMAGE_MLTP = 2.2

;Voting time
VOTE_MAP_TIME = 30

;In all votes players can vote 'restart map'?
VOTE_ALLOW_RESTART = 1

;Minimum alive players to multiply monster health
;If you want to disable it, set min_players to 100
WAVE_MLTP_MIN_PLAYERS = 2

;@NOTE:
;How does it work?
;MonsterHealth = MonsterHealth * ( multiplier ^ alive_players )
;Multiplier of HP for no special monsters
WAVE_MLTP_HP = 1.07

;Multiplier of HP for BOSS
WAVE_MLTP_HP_BOSS = 1.05

;Multiplier of HP for BONUS
WAVE_MLTP_HP_BONUS = 1.05

;==================================
; Effects
;==================================
;Show info when user kill monster?
SHOW_DEATH_MSG = 1

;If td_hit_monster_blood fx = 1 -
;Chance of showing blood fx
;e.g 2 - 1/2 | 3 - 1/3
HIT_MONSTER_BLOOD_CHANCE = 2

;Emit sound when monster hitted?
HIT_MONSTER_SOUND = 1

;Emit sound when monster killed?
KILL_MONSTER_SOUND = 1

;Round boss fog color [string]
;set 000 000 000 if you don't want to create fog.
BOSS_FOG = "133 006 006"

;Round bonus fog color [string]
;set 000 000 000 if you don't want to create fog.
BONUS_FOG = "110 110 006"

;Default s fog color [string]
;set 000 000 000 if you don't want to create fog.
FOG = "006 006 30"

;Kill monster effect [sprite]
KILL_MONSTER_FX = 0

;Enable respawn player '/respawn' & '/odrodz' commands?
RESPAWN_CMD = 1

;Gold for survive wave
WAVE_EXTRA_GOLD = 7

;Money for survive wave
WAVE_EXTRA_MONEY = 1000

;==========================
;Grenades
;==========================

;Napalm grenade duration time
NAPALM_NADE_DURATION = 10

;Range where monsters will be 'registered' with napalm grenade
NAPALM_NADE_RADIUS = 400

;Damage, 1 second - 5x times will take damage
NAPALM_NADE_DAMAGE = 19

;Max napalm grenades
NAPALM_NADE_LIMIT = 2

;Frozen grenade duration time
FROZEN_NADE_DURATION = 5

;Range where monsters will be 'registered' with frozen grenade
FROZEN_NADE_RADIUS = 400

;Which speed will be setted when monster will be freezed?
; 0.5 - 50% of actual monster speed
; 0.2 - 20% of actual monster speed
; Value must be float
FROZEN_NADE_SLOW_PERCENT = 0.5

;Max frozen grenades
FROZEN_NADE_LIMIT = 2

;Grenade which stopping monsters - duration time
STOP_NADE_DURATION = 8

;Radius of grenade which stopping monsters
STOP_NADE_RADIUS = 400

;Max stop grenades
STOP_NADE_LIMIT = 2

;=========================
; OTHER COMMANDS
;=========================

;Show level as chat prefix?
PREFIX_CHAT_SHOW_LEVEL = 1

;Block 'kill' command?
BLOCK_CMD_KILL = 1

;Damage ratio, after you get X gold and X money(edit below)
DAMAGE_RATIO = 450

;Gold per X damage
DAMAGE_GOLD = 1

;Money per X damage
DAMAGE_MONEY = 100

;Shows left monster HP? print_center status text (near crosshair)
SHOW_CENTER_LEFT_DAMAGE = 1

;Enable swapping money per $?
SWAP_MONEY = 1

;Swap money price
SWAP_MONEY_NEED = 10000

;Gold which you get, when you swap money
SWAP_MONEY_GOLD_NUM = 15

;Enable giving extra money and gold, when player respawned?
JOIN_PLAYER_EXTRA = 0

;Min wave, when player getting extra money and gold (when game started)
JOIN_PLAYER_EXTRA_MIN_WAVE = 3

;Money multiplier per wave [X wave * multiplier]
JOIN_PLAYER_EXTRA_MONEY = 700

;Gold multiplier per wave [X wave * multiplier]
JOIN_PLAYER_EXTRA_GOLD = 8

;Auto respawn players?
AUTO_RESPAWN = 1

;If players won the game, how much extra gold they got?
WIN_GAME_GOLD_PRIZE = 200

;If players lost the game, how much extra gold they got?
LOSE_GAME_GOLD_PRIZE = 50

;==========================
; VIP
;==========================

;Enable VIP?
VIP = 1

;Extra speed bonus [250 + X]
;Set 0 if VIP hasn't extra speed
VIP_EXTRA_SPEED = 38

;Multiplier of taking damage [NOTE: Only Float values]
VIP_EXTRA_DAMAGE_MLTP = 1.1

;VIP flag (to set in users.ini)
VIP_FLAG = "t"

;Shows VIP status in score table?
VIP_SHOW_IN_TABLE = 1

;Chat prefix [Set "" to disable chat prefix]
VIP_CHAT_PREFIX = "[VIP]"

;Chat prefix colors:
; 1 - Yellow chat prefix
; 2 - Green chat prefix
; 3 - Team Color chat prefix
VIP_CHAT_COLOR = 2

;Extra gold for kill
VIP_EXTRA_KILL_GOLD = 1

;Extra money for kill
VIP_EXTRA_KILL_MONEY = 100

;Extra gold for "win" wave
VIP_SURVIVE_WAVE_GOLD = 1

;Extra money for "win" wave
VIP_SURVIVE_WAVE_MONEY = 200

;Which weapon with full ammo can have VIP, every respawn?
;    flags of start weapons
;    a - deagle
;    b - elite
;    c - mp5
;    d - p90
;    e - galil
;    f - ak47
;    g - m4a1
;    h - aug
;    i - m249
;    j - krieg
;    k - awp
;    l - g3sg1
;    m - sg550
;    [NOTE: Set "" to disable this feature]
VIP_START_WEAPONS = ""

;==========================
; OTHERS
;==========================

; If someone shot monster with critical shot
; how long monster should be slowed?
; default: 0.5 | 0.0 to disable
CRITICAL_SHOT_SLOW_DOWN_DURATION = 0.5

Код:
;===========================
;======td_assists.amxx======
;===========================

;Enable assists on server?
td_assists_on 1

;Gold per assist
td_assists_gold 1

;Money per assist
td_assists_money 120

;Gold per assist kill a special monster
td_assists_gold_special 25

;Money per assist kill a special monster
td_assists_money_special 1000

;Multiplier of damage, to assisting
;example, monster have 200HP, if multiplier is 0.4, you must set 80 damage, to assisting
td_assists_min_damage_percent 0.2

;===========================
;td_best_players.amxx
;===========================

;Show best players of wave? [ or /bestw ]
td_show_best_of_wave 1

;Show best players of game? [ or /best ]
td_show_best_of_game 1

;How many players show in TOP?
td_show_best_num 3

;How much gold will got best player of wave?
td_show_best_gold 1

;How much money will got best player of wave?
td_show_best_money 150

;Enable /stats command?
td_show_user_stats_cmd 1

;===========================
; semiclip module
;===========================
// Transparency effect.
semiclip_effects 1   // [0 Disabled OR 1 Enabled]

// If transparency effect is enabled, the amount of transparency. A smaller amount will result in more transparency.
semiclip_transparency_amount 180   // [0 TO 255]

Код:
; insert ';' as first character on line, if you want a comment
; models dir: models/TD/yourmodel
; please do not insert .mdl in this file, only file name

NORMAL_MDL 1 = normal1
NORMAL_MDL 2 = normal2
NORMAL_MDL 3 = normal4
NORMAL_MDL 4 = normal4

FAST_MDL 1 = fast1
FAST_MDL 2 = fast2
FAST_MDL 3 = fast3
FAST_MDL 4 = fast4

STRENGTH_MDL 1 = strength1
STRENGTH_MDL 2 = strength2
STRENGTH_MDL 3 = strength3
STRENGTH_MDL 4 = strength4

BONUS_MDL 1 = bonus
BONUS_MDL 2 = bonus
BONUS_MDL 3 = bonus
BONUS_MDL 4 = bonus

BOSS_MDL 1 = boss
BOSS_MDL 2 = boss
BOSS_MDL 3 = boss
BOSS_MDL 4 = boss

;If you have other tower model you can drop it here
TOWER_MDL 1 = tower
TOWER_MDL 2 = tower
TOWER_MDL 3 = tower
TOWER_MDL 4 = tower

;Flame grenade models in models/TD/model.mdl
FLAME_GRENADE_MDL_V = v_burngrenade
FLAME_GRENADE_MDL_W = w_burngrenade
FLAME_GRENADE_MDL_P = p_burngrenade

;Frozen grenade models in models/TD/model.mdl
FROZEN_GRENADE_MDL_V = v_frozengrenade
FROZEN_GRENADE_MDL_W = w_frozengrenade
FROZEN_GRENADE_MDL_P = p_frozengrenade

;Stop grenade models in models/TD/model.mdl
STOP_GRENADE_MDL_V = v_stopgrenade
STOP_GRENADE_MDL_W = w_stopgrenade
STOP_GRENADE_MDL_P = p_stopgrenade

;Warning, VIP PATH IS:
; models/player/your_model/your_model.mdl
; it cannot be difference becouse half life engine restrict this
VIP_MODEL = vip

Код:
;If you want to turn off some sound
;please set "TD/silence.wav"

START_WAVE     = "TD/start_wave.wav"
CLEAR_WAVE     = "TD/clear_wave.wav"
STOP_GRENADE     = "TD/stop_grenade.wav"
DEFENDERS_WIN    = "TD/game_defenders_win.wav"
DEFENDERS_LOSE     = "TD/game_defenders_lose.wav"

;Monster sounds emited when monster killed
MONSTER_DIE_1     = "TD/monster_die5.wav"
MONSTER_DIE_2     = "TD/monster_die6.wav"
MONSTER_DIE_3     = "TD/monster_die3.wav"
MONSTER_DIE_4     = "TD/monster_die4.wav"

BOSS_DIE     = "TD/boss_die.wav"s
BONUS_DIE     = "TD/bonus_die.wav"

BOSS_SPAWNED    = "TD/boss_spawned.wav"
BONUS_SPAWNED     = "TD/silence.wav"

;Monster sounds emited when you hit it
MONSTER_HIT_1     = "TD/monster_hit1.wav"
MONSTER_HIT_2     = "TD/monster_hit2.wav"
MONSTER_HIT_3     = "TD/monster_hit3.wav"
MONSTER_HIT_4     = "TD/monster_hit4.wav"

MONSTER_SND_1     = "TD/monster_sound1.wav"
MONSTER_SND_2     = "TD/monster_sound2.wav"
MONSTER_SND_3     = "TD/monster_sound1.wav"
MONSTER_SND_4     = "TD/monster_sound2.wav"

;Monster sounds emited when is countdown. You can hear it near start
MONSTER_GROWL_1 = "TD/monster_growl1.wav"
MONSTER_GROWL_2 = "TD/monster_growl2.wav"
MONSTER_GROWL_3 = "TD/monster_growl3.wav"
MONSTER_GROWL_4 = "TD/monster_growl4.wav"
PLAYER_LEVELUP     = "TD/player_levelup.wav"
PLAYER_USE_LIGHTING = "TD/player_use_lighting.wav"
COIN         = "TD/coin.wav"
ACTIVATED     =  "TD/activated.wav"
COUNTDOWN     = "TD/countdown.wav"

HIT_SOUND     = "TD/hit_sound.wav"
LAST_MAN    = "TD/last_man.wav"

Код:
; td_turrets_engine file configuration
;Move turret price
TURRET_MOVE_COST = 20

;Normal turret ammo num
TURRET_BULLET_AMMO_NUM = 150

;Normal turret ammo price
TURRET_BULLET_AMMO_COST = 30

;Laser turret ammo num
TURRET_LASER_AMMO_NUM = 80

;Laser turret ammo price
TURRET_LASER_AMMO_COST = 45

;Lighting turret ammo num
TURRET_LIGHTING_AMMO_NUM = 250

;Lighting turret ammo price
TURRET_LIGHTING_AMMO_COST = 55

;Multilaser turret ammo num
TURRET_M_LASER_AMMO_NUM = 30

;Multilaser turret ammo price
TURRET_M_LASER_AMMO_PRICE = 75

;ROCKET turret ammo num
TURRET_ROCKET_AMMO_NUM = 30

;ROCKET turret ammo price
TURRET_ROCKET_AMMO_PRICE = 75

;Gatling turret ammo num
TURRET_GATLING_AMMO_NUM = 500

;Gatlin turret ammo price
TURRET_GATLING_AMMO_PRICE = 200

;You must look at other plugins, if you change value below (example: player class - engineer)
;Czas[float] po jakim wie¿yczka zostanie uaktywniona po przeniesieniu
TURRET_MOVE_INSTALL_TIME = 6.0

;Upgrade time[float]
TURRET_UPGRADE_TIME = 8.0

;Install time[float]
TURRET_INSTALL_TIME = 13.0

;Reload time[float]
TURRET_RELOAD_TIME = 7.0

;Change name cost
TURRET_CHANGE_NAME_COST = 10

;Enable chargeback when player remove own turret?
TURRET_REMOVE_CHARGE_BACK = 0

;If yes - how many % he will got back
; 0.4 -> 40% of all costs
TURRET_REMOVE_CHARGE_BACK_MLTP = 0.25

;Show deathmsg(top right side) when players' turret kill monster?
TURRET_SHOW_DEATH_MSG = 1

;Change enemy time [float]
TURRET_CHANGE_ENEMY_TIME = 0.6

;Max turrets num on server
MAX_SERVER_TURRETS = 20

Код:
;Turrets - must be TURRET_ prefix
TURRET_MENU_SELECT     = "TD/menu_select.wav"
TURRET_BULLET_FIRE_1     = "TD/bullet_fire_new_1.wav"
TURRET_BULLET_FIRE_2     = "TD/bullet_fire_new_2.wav"
TURRET_LASER_FIRE_1     = "TD//turret_fire_laser_1.wav"
TURRET_LASER_FIRE_2     = "TD//turret_fire_laser_2.wav"
TURRET_LIGHTING_FIRE_1     = "TD/turret_fire_lighting_1.wav"
TURRET_LIGHTING_FIRE_2     = "TD/turret_fire_lighting_1.wav"
TURRET_M_LASER_FIRE_1     = "TD/multi_laser_fire_1.wav"
TURRET_M_LASER_FIRE_2    = "TD/multi_laser_fire_1.wav"
TURRET_ROCKET_FIRE_1     = "TD/rocket_fire_1.wav"
TURRET_ROCKET_FIRE_2     = "TD/rocket_fire_1.wav"
TURRET_GATLING_FIRE_1     = "TD/bullet_fire_new_1.wav"
TURRET_GATLING_FIRE_2     = "TD/bullet_fire_new_2.wav"
TURRET_START_FIRE    = "TD/turret_start.wav"
TURRET_STOP_FIRE     = "TD/turret_stop.wav"
TURRET_PLANT         = "TD/turret_plant.wav"
TURRET_LOW_AMMO     = "TD/turret_lowammo.wav"
TURRET_NO_AMMO         = "TD/turret_noammo.wav"
TURRET_READY         = "TD/turret_ready.wav"
TURRET_LEVELUP         = "TD/turret_levelup.wav"
API
Код:
enum
{
    ROUND_NONE = 0,
    ROUND_NORMAL,
    ROUND_FAST,
    ROUND_STRENGTH,
    ROUND_BOSS,
    ROUND_BONUS
}

enum ENUM_WAVE_INFO
{
    WAVE_ROUND_TYPE,
    WAVE_MONSTER_NUM,
    WAVE_MONSTER_HEALTH,
    WAVE_MONSTER_SPEED,
    WAVE_SPECIAL_HEALTH,
    WAVE_SPECIAL_SPEED
}

enum ENUM_PLAYER
{
    PLAYER_GOLD,
    PLAYER_FRAGS,
    PLAYER_LEVEL,
    PLAYER_EXTRA_DAMAGE,
    PLAYER_EXTRA_SPEED,
    PLAYER_EXTRA_GOLD,
    PLAYER_EXTRA_MONEY,
    PLAYER_NAPALM_NADE,
    PLAYER_FROZEN_NADE,
    PLAYER_CRITICAl_PERCENT
}

enum
{
    PLAYERS_PLAYING,
    PLAYERS_WIN,
    PLAYERS_LOSE
}

enum _:TOTEMS
{
    TOTEM_NONE,
    TOTEM_RANGE,
    TOTEM_DAMAGE,
    TOTEM_FIRERATE,
    TOTEM_ALL,
}

enum _:ENUM_TURRETS_TYPE
{
    TURRET_NONE,
    TURRET_BULLET,
    TURRET_LASER,
    TURRET_LIGHTING,
    TURRET_MULTI_LASER,
    TURRET_ROCKET,
    TURRET_GATLING
}

enum
{
    TURRET_SHOW_NONE,
    TURRET_SHOW_GLOW,
    TURRET_SHOW_TRANSPARENT
}

/* Returns max waves limit */
native td_get_max_wave();

/* Returns max monsters limit per wave */
native td_get_max_monsters_num();

/* Returns max player level */
native td_get_max_player_level();

/* Returns '1' if player is VIP */
native td_is_user_vip(iPlayer);

/* Returns  '1' if is special round BOSS, BONUS*/
native td_is_special_wave(iWave);

/* Returns  '1' if entity is BOSS, '2' if entity is BONUS otherwise 0*/
native td_is_special_monster(iEnt);

/* Returns  '1' if entity is healthbar*/
native td_is_healthbar(iEnt);

/* Returns  '1' if entity is monster */
native td_is_monster(iEnt);

/* Returns '1' if game is possible */
native td_is_game_possible();

/* Returns actual wave */
native td_get_actual_wave();

/* Sets wave, Returns 1 if wave has been setted, otherwise 0*/
native td_set_actual_wave(iWave);

/* Returns a wave info */
native td_get_wave_info(iWave, ENUM_WAVE_INFO:iInfo);

/* Sets a wave info
    @WARNING: Round Type you must set before wave started
*/
native td_set_wave_info(iWave, ENUM_WAVE_INFO:iInfo, _:iValue);

/* Returns a player info */
native td_get_user_info(iPlayer, ENUM_PLAYER:iInfo);

/* Sets a player info */
native td_set_user_info(iPlayer, ENUM_PLAYER:iInfo, iValue);

/* Returns player hud size option */
native td_get_user_hud_size(iPlayer);

/* Returns 1 if monster is premium monster */
native td_is_premium_monster(iEnt);

/* Returns monster type */
native td_get_monster_type(iEnt);

/* Returns monster speed
   @Param: if defaultspeed is '1' then will be returned default speed of monster (depends of monster type)
        if defualtspeed is '0' then will be returned actual monster speed
*/
native td_get_monster_speed(iEnt, defaultspeed=0);

/* Sets monster speed
    @Param: if defaultspeed is '1' then will be set normal monster speed, if '0' then the speed from 'speed' param.
    @Param: if now is '1' then monster will be slowed/fastest just after using this function, if '0' after changed track
*/
native td_set_monster_speed(ent, speed, defaultspeed = 0, now = 1);

/* Returns monster HP */
native td_get_monster_health(iEnt);

/* Returns id[ent] healthbar of monster*/
native td_get_monster_healthbar(iEnt);

/* Returns a 'start' entity origins (monster respawns) */
native td_get_start_origin(Float:outOrigin[3]);

/* Returns a 'end' entity origins (tower origin) */
native td_get_end_origin(Float:outOrigin[3]);

/* Kill monster by player */
native td_kill_monster(iEnt, iPlayer);

/* Returns true if is tower model on map */
native td_is_tower_model_on_map();

/* Removes tower model. Returns '1' if model will be deleted, otherwise 0 */
native td_remove_tower();

/* Killing all monsters */
native td_remove_monsters();

/* Register a shop item
    @Note:
    iPluginIndex = is a index which you must set when you eg. registering plugin.
    example:
    new iPluginIndex = register_plugin(A, B, C);
*/
native td_shop_register_item(const szName[], const szDescription[], const iPrice, const iOnePerMap = 0, iPluginIndex);

/* Register a player class */
native td_register_class(const szClassName[], const szClassDescription[], iPluginIndex);

/* Sets a tower health */
native td_set_tower_health(iAdd = 1, iHealth, iExplode = 0);

/* Returns a tower health */
native td_get_tower_health();

/* Returns max tower health on map */
native td_get_max_tower_health();

/* If game is ended, returns PLAYERS_WIN or PLAYERS_LOSE. Otherwise PLAYERS_PLAYING */
native td_get_end_status();

/* Zwraca czas, jaki jest odejmowany przy sterowania thinami.
    Na przyk³ad Install Time = 5.0 - ExtraTime
*/
native Float:td_get_player_extra_time(index);

/* Ustawia extra czas */
native td_set_player_extra_time(index, Float:fTime);

/* Return maxhealth of monster */
native td_get_monster_maxhealth(iEnt);

native td_give_user_napalm_grenade(index);

native td_give_user_frozen_grenade(index);

native td_give_user_stop_grenade(index);

native td_get_chat_prefix(szOutpout[], len);

native td_get_log_file_name(szOutpout[], len);

/* Returns '1' if wave is now played */
native td_is_wave_started();
/* ============================ */
/*           Forwards           */
/* ============================ */

/* Wykonywany podczas odswiezania ustawien (cvary itp) */
forward td_settings_refreshed();

/* Wykonwywany przy rozpoczeciu wave'u */
forward td_wave_started(iWave, iMonsterType, iNum)

/* Wykonwywany przy zakonczeniu wave'u */
forward td_wave_ended(iEndedWave);

/* Wykonywany przy zakonczeniu gry
    @iEndResult - PLAYER_WIN / PLAYER_LOSE
*/
forward td_game_ended(iEndResult);

/* Wykonywany przed zabiciem potwora */
forward td_monster_killed(iEnt, iPlayer, iMonsterType, IsKilledByWeapon);

/* Wykonywany podczas kupienia przedmiotu w sklepie */
forward td_shop_item_selected(iPlayer, iItemId);

/* Wykonywany podczas wybrania klasy */
forward td_class_selected(iPlayer, iClassIndex);

/* Wykonywany podczas wylaczania klasy */
forward td_class_disabled(iPlayer, iClassIndex);

/* Wykonywany podczas resetowania gry */
forward td_reset_game(iMode, Float:fTime);

/* Wykonywany przy resetowaniu wszystkich informacji u gracza */
forward td_reset_player_info(iPlayer);

/* Wykonywany przed zadaniem obrazen potworowi
    @UWAGA: Tylko przy DMG_BULLET
    szInDamage[0] = INT Damage
    szInDamage[1] = isCritical
*/
forward td_take_damage(iPlayer, iEnt, iWeapon, Float:fOutDamage, szInDamage[3]);

/* Wykonywany po zadaniem obrazen potworowi
    @UWAGA: Tylko przy DMG_BULLET
    szInDamage[0] = INT Damage
    szInDamage[1] = isCritical
*/
forward td_take_damage_post(iPlayer, iEnt, iWeapon, Float:fOutDamage, szInDamage[3]);

/* Wykonywany przy starcie odliczania do nastepnego wave
    @iToWhichWave     Zwraca numer wav'e dla ktorego odlicza, przykladowo
            weszli pierwsi gracze, wiec iToWhichWave zwroci wratosc 1,
            poniewaz po odliczaniu bedzie wave nr. 1,
            natomiast po przejciu 2 wavu, odlicza do 3
*/
forward td_countdown_started(iToWhichWave);

/* Executed 1 second before map change */
forward td_remove_data();

/* Returns a max turrets can be placed on map*/
native td_get_max_map_turrets();

/* Returns 'true' if turret's are enabled on actually played map */
native td_are_turrets_enabled();

/* Returns a turret type
    - TURRET_NONE,
    - TURRET_BULLET,
    - TURRET_LASER,
    - TURRET_LIGHTING
*/
native td_get_player_turret_type(index, turret);

/* Sets turret type
   (Check type above)

   You must be careful before using this native.
   If you for example changed from BULLET to LASER, when
   turret had eg. damage level 5 but LASER turret can have only damaage level 4,
   you can experience bugs/errors.
*/
native td_set_player_turret_type(index, turret, type);

/* Returns 1 if slot is bought by player otherwise 0 */
native td_get_player_turret_slot(index, slot);

/* Sets bought slot by player */
native td_set_player_turret_slot(index, slot, bool:value);

/* Sets for player alarm ammo value */
native td_set_player_alarm_value(index, iValue);

/* Returns player alarm ammo value */
native td_get_player_alarm_value(index);

/* Returns 1 if turret is upgrading otherwise 0 */
native td_is_turret_upgrading(index, turret);

/* Sets turret is upgrading */
native td_set_is_turret_upgrading(index, turret, bool:value);

/* Returns a player turret entity */
native td_get_player_turret_entity(index, turret);

/* Sets a player turret entity */
native td_set_player_turret_entity(id, turret, iEntity);

/* Returns turret level */
native td_get_player_turret_level(index, turret);

/* Returns turret a damage level */
native td_get_player_turret_dmg_level(index, turret);

/* Returns turret a range level */
native td_get_player_turret_rng_level(index, turret);

/* Returns turret ammo num*/
native td_get_player_turret_ammo(index, turret);

/* Sets turret ammo*/
native td_set_player_turret_ammo(index, turret, value);

/* Returns entity moving turret, if is not moving any turret, returns 0 */
native td_get_moved_turret_entity(index);

/* Returns a player turrets num*/
native td_get_player_turrets_num(index);

/* Returns entity of turret target
    @Note: EV_INT_iuser4

    turret_entity - turret entity
    index - player index
    turret - turret index

    @note If 'turret_entity' is not specified, you must set 'index' and 'turret'
*/

native td_get_turret_target(turret_entity, player_index=0, turret=0);

/* Returns turret index
    @Note: EV_INT_iuser1
    @Note: check above about index & turret
*/
native td_get_turret_id(turret_entity, index=0, turret=0);

/* Returns owner of turret
    @Note: EV_ENT_owner
    @Note check above about index & turret
*/
native td_get_turret_owner(turret_entity, index=0, turret=0);

/* Zwraca Index 'rangera' danej wiezyczki
    @Note: EV_ENT_euser3
    @Note check above about index & turret
*/
native td_get_turret_ranger(turret_entity, index=0, turret=0);

/* Zwraca '1' jesli jest to wiezyczka, '0' jesli nie */
native td_is_turret(iEnt);

/* Zwraca '1' jesli jest to ranger, '0' jesli nie */
native td_is_ranger(iEnt);

/* Zwraca '1' jesli jest to ammobar, '0' jesli nie */
native td_is_ammobar(iEnt);

/* Zwraca '1' jesli na serwerze znajduja sie wiezyczki, '0' jesli ich nie ma */
native td_is_turret_on_server();

/* Zwraca '1' jesli dana wiezyczka posiada 'ranger' */
native td_is_ranger_exists(turret_entity);

/* Zwraca maksymalna ilosc wiezyczek, jaka moze posiadac gracz */
native td_get_max_turrets_per_player();

/* Zwraca maksymalna ilosc wiezyczek, jaka moze byc na serwerze */
native td_get_max_server_turrets();

/* Returns player totem */
native td_turrets_get_player_totem(index);

/* Sets player totem */
native td_turrets_set_player_totem(index, value);
Сверху Снизу