2020. július 28., kedd

TxtMsg messages

hogy itt is meglegyen:



#C4_Arming_Cancelled
#Bomb_Planted     "%s<%i><%s><TERRORIST>" triggered "Planted_The_Bomb"
#C4_Plant_Must_Be_On_Ground
#C4_Plant_At_Bomb_Spot
#Switch_To_FullAuto
#Switch_To_BurstFire
#Fire_in_the_hole    %!MRAD_FIREINHOLE
#Switch_To_SemiAuto
#CZero_LearningMap
#CZero_AnalyzingHidingSpots
#CZero_AnalyzingApproachPoints
      "%s<%i><%s><CT>" triggered "Rescued_A_Hostage"
#Hint_careful_around_hostages
#Injured_Hostage
#Hint_removed_for_next_hostage_killed
#Hint_lost_money
#Killed_Hostage     "%s<%i><%s><%s>" triggered "Killed_A_Hostage"
#Only_CT_Can_Move_Hostages   "%s<%i><%s><CT>" triggered "Touched_A_Hostage"
#Game_disconnected
#Game_kicked
#Game_connected     "%s<%i><%s><%s>" %s "%s"%s
#Cstrike_Chat_AllSpec    *SPEC* %s : %s
#Cstrike_Chat_AllDead    *DEAD* %s : %s
#Cstrike_Chat_All    %s : %s
#Cstrike_Chat_Spec    (Spectator) %s : %s
#Cstrike_Chat_T_Dead    *DEAD*(Terrorist) %s : %s
#Cstrike_Chat_T     (Terrorist) %s : %s
#Cstrike_Chat_T_Loc    (Terrorist) %s @ %s : %s
#Cstrike_Chat_CT_Dead    *DEAD*(Counter-Terrorist) %s : %s
#Cstrike_Chat_CT    (Counter-Terrorist) %s : %s
#Cstrike_Chat_CT_Loc    (Counter-Terrorist) %s @ %s : %s
#Cannot_Buy_This
#Cstrike_Already_Own_Weapon
#Not_Enough_Money
#Hint_use_nightvision
#Already_Have_One
#Cannot_Carry_Anymore
#Already_Have_Kevlar_Bought_Helmet
#Already_Have_Kevlar_Helmet
#Already_Have_Helmet_Bought_Kevlar
#Already_Have_Kevlar
      "%s<%i><%s><%s>" joined team "SPECTATOR"
#Cannot_Be_Spectator
#Game_join_ct     "%s<%i><%s><%s>" joined team "%s"
#Game_join_terrorist    "%s<%i><%s><%s>" joined team "%s"
#Terrorist_Select
#CT_Select
#Only_1_Team_Change
#Humans_Join_Team_T
#Humans_Join_Team_CT
#Too_Many_CTs
#Too_Many_Terrorists
#All_Teams_Full
#CTs_Full
#Terrorists_Full
#Cannot_Switch_From_VIP
#Taking_fire     %!MRAD_HITASSIST
#Follow_me     %!MRAD_FOLLOWME
#Regroup_team     %!MRAD_REGROUP
#Hold_this_position    %!MRAD_POSITION
#You_take_the_point    %!MRAD_TAKEPOINT
#Cover_me     %!MRAD_COVERME
#Report_in_team     %!MRAD_REPORTIN
#Storm_the_front    %!MRAD_STORMFRONT
#Get_in_position_and_wait   %!MRAD_GETINPOS
#Stick_together_team    %!MRAD_STICKTOG
#Team_fall_back     %!MRAD_FALLBACK
#Go_go_go     %!MRAD_GO
#Enemy_down     %!MRAD_ENEMYDOWN
#Negative     %!MRAD_NEGATIVE
#Get_out_of_there    %!MRAD_BLOW
#Reporting_in     %!MRAD_REPRTINGIN
#In_position     %!MRAD_INPOS
#Sector_clear     %!MRAD_CLEAR
#Need_backup     %!MRAD_BACKUP
#Enemy_spotted     %!MRAD_ENEMYSPOT
#Roger_that     %!MRAD_ROGER
#Affirmative     %!MRAD_AFFIRM
#Alias_Not_Avail
#TactShield_Desc
#Bomb_Defusal_Kit
#Game_unknown_command
#Buy
#RadioC
#RadioB
#RadioA
#Command_Not_Available
#Accept_Radio
#Ignore_Radio
#Accept_All_Messages
#Ignore_Broadcast_Team_Messages
#Ignore_Broadcast_Messages
#IG_Team_Select_Spect
#IG_VIP_Team_Select_Spect
#IG_VIP_Team_Select
#T_BuyItem
#CT_BuyItem
#DT_BuyItem
#DCT_BuyItem
#BuyMachineGun
#AS_T_BuyMachineGun
#T_BuyRifle
#CT_BuyRifle
#AS_T_BuyRifle
#AS_CT_BuyRifle
#T_BuySubMachineGun
#CT_BuySubMachineGun
#AS_T_BuySubMachineGun
#AS_CT_BuySubMachineGun
#BuyShotgun
#AS_BuyShotgun
#T_BuyPistol
#CT_BuyPistol
#IG_Team_Select
#Team_Select
#Game_no_timelimit
#Game_timelimit
#Game_voted_for_map
#Cannot_Vote_Need_More_People
#Game_votemap_usage
#Cannot_Vote_Map
#Wait_3_Seconds
#Game_vote_cast
#Game_vote_not_yourself
#Game_vote_players_on_your_team
#Game_vote_player_not_found
#Cannot_Vote_With_Less_Than_Three
#Game_vote_usage
#Cstrike_Name_Change    "%s<%i><%s><%s>" changed name to "%s"
#Name_change_at_respawn
#Defusing_Bomb_Without_Defuse_Kit  "%s<%i><%s><CT>" triggered "Begin_Bomb_Defuse_Without_Kit"
#Defusing_Bomb_With_Defuse_Kit   "%s<%i><%s><CT>" triggered "Begin_Bomb_Defuse_With_Kit"
#C4_Defuse_Must_Be_On_Ground
      World triggered "%s" (CT "%i") (T "%i")
      World triggered "Round_End"
      Team "%s" triggered "%s" (CT "%i") (T "%i")
#Hint_you_have_the_bomb    "%s<%i><%s><TERRORIST>" triggered "Spawned_With_The_Bomb"
#All_Hostages_Rescued
#Round_Draw
#Terrorists_Win
#CTs_Win
#Bomb_Defused     "%s<%i><%s><CT>" triggered "Defused_The_Bomb"
#Target_Bombed
#Escaping_Terrorists_Neutralized
#CTs_PreventEscape
#Terrorists_Escaped
#VIP_Assassinated
#VIP_Escaped
#Game_Commencing    World triggered "Game_Commencing"
#Game_scoring
#Auto_Team_Balance_Next_Round
#All_VIP_Slots_Full
#Game_added_position
#Game_in_position
#Game_will_restart_in_console
#Game_will_restart_in
      Team "TERRORIST" scored "%i" with "%i" players
      Team "CT" scored "%i" with "%i" players
      World triggered "Restart_Round_(%i_%s)"
#VIP_Not_Escaped
#Terrorists_Not_Escaped
#Hostages_Not_Rescued
#Target_Saved
      %!MRAD_VIP
      %!MRAD_GETOUT
      %!MRAD_ELIM
      %!MRAD_MOVEOUT
      %!MRAD_LETSGO
      %!MRAD_LOCKNLOAD
      World triggered "Round_Start"
      "%s<%i><%s><>" entered the game
      "%s<%i><%s><%s>" disconnected
#Team_Select_Spect
#Hint_win_round_by_killing_enemy
      "%s<%i><%s><TERRORIST>" triggered "Assassinated_The_VIP"
#Hint_reward_for_killing_vip
#Hint_careful_around_teammates
#Banned_For_Killing_Teamates
#Game_teammate_kills
#Killed_Teammate
      "%s<%i><%s><%s>" committed suicide with "%s" (world)
      "%s<%i><%s><%s>" killed "%s<%i><%s><%s>" with "%s"
      "%s<%i><%s><%s>" committed suicide with "%s"
#Map_Vote_Extend
#Votes
#Vote
#Game_required_votes
#Spec_Mode%i
#Spec_NoTarget
#Game_radio_location
#Game_radio
      "%s<%i><%s><%s>" attacked "%s<%i><%s><%s>" with "%s" (damage "%d") (damage_armor "%d") (health "%d") (armor "%d")
#Game_teammate_attack
#Hint_try_not_to_injure_teammates
#Spec_Duck
#Hint_cannot_play_because_tk
      "%s<%i><%s><CT>" triggered "Became_VIP"
#Hint_use_hostage_to_stop_him
#Hint_lead_hostage_to_rescue_point
#Terrorist_cant_buy
#CT_cant_buy
#VIP_cant_buy
#Cant_buy
#Hint_press_buy_to_purchase
#Game_idle_kick     "%s<%i><%s><%s>" triggered "Game_idle_kick" (auto)
#Hint_you_are_the_vip
#Hint_hostage_rescue_zone
#Hint_you_are_in_targetzone
#Hint_terrorist_escape_zone
#Hint_terrorist_vip_zone
#Hint_ct_vip_zone
#Hint_out_of_ammo
#Hint_press_use_so_hostage_will_follow
#Hint_prevent_hostage_rescue
#Hint_rescue_the_hostages
#Hint_spotted_a_friend
#Hint_spotted_an_enemy
#Game_bomb_drop     "%s<%i><%s><TERRORIST>" triggered "Dropped_The_Bomb"
#Weapon_Cannot_Be_Dropped
#Game_join_ct_auto    "%s<%i><%s><%s>" joined team "%s" (auto)
#Game_join_terrorist_auto   "%s<%i><%s><%s>" joined team "%s" (auto)
#Terrorist_Escaped    "%s<%i><%s><TERRORIST>" triggered "Terrorist_Escaped"
      "%s<%i><%s><CT>" triggered "Escaped_As_VIP"
#Game_bomb_pickup    "%s<%i><%s><TERRORIST>" triggered "Got_The_Bomb"
#Got_bomb
#CZero_Tutor_Turned_Off
#CZero_Tutor_Turned_On
#Cstrike_TutorState_Waiting_For_Start
#Cstrike_TutorState_Buy_Time
#Cstrike_TutorState_Running_Away_From_Ticking_Bomb
#Cstrike_TutorState_Looking_For_Loose_Bomb
#Cstrike_TutorState_Guarding_Bomb
#Cstrike_TutorState_Planting_Bomb
#Cstrike_TutorState_Moving_To_Bomb_Site
#Cstrike_TutorState_Escorting_Bomb_Carrier
#Cstrike_TutorState_Attacking_Hostage_Escort
#Cstrike_TutorState_Looking_For_Hostage_Escort
#Cstrike_TutorState_Moving_To_Intercept_Enemy
#Cstrike_TutorState_Guarding_Hostage
#Cstrike_TutorState_Defusing_Bomb
#Cstrike_TutorState_Guarding_Loose_Bomb
#Cstrike_TutorState_Looking_For_Bomb_Carrier
#Cstrike_TutorState_Moving_To_Bombsite
#Cstrike_TutorState_Following_Hostage_Escort
#Cstrike_TutorState_Escorting_Hostage
#Cstrike_TutorState_Looking_For_Hostage
#Cstrike_TutorState_Undefined

Cs events


/*
* AMXMODX script.
* (plugin_csevents.sma)
* by mike_cao <mike@mikecao.com>
* This file is provided as is (no warranties).
*
* This plugin does a centersay announcement
* for events in counter-strike. Event are configured
* with the cvar "amx_csevents" using these flags:
*
* a - Bomb exploded
* b - Bomb planted
* c - Bomb defused
* d - Bomb being planted
* e - Bomb being defused
* f - Player spawned with bomb
* g - Player picked up bomb
* h - Player dropped bomb
* i - Audio bomb countdown
* j - Hostage touched
* k - Hostage rescued
* l - Hostage killed (with punishment)
* m - Headshots (multiple messages)
* n - Knife kills (multiple messages)
* o - Grenade kills (multiple messages)
* p - Grenade suicides
* q - Player spawned as VIP
* r - VIP killed
* s - VIP escaped
* t - VIP failed to escape
* u - First kill (bonus health/money)
* v - Killstreak
*
*/
#include <amxmodx>
#include <fun>
#include <cstrike>
#define MAX_NAME_LENGTH 32
#define MAX_VAR_LENGTH 64
#define MAX_PLAYERS 32
#define MAX_TEXT_LENGTH 512
#define EVENT_BOMB_EXPLODE (1<<0) // "a"
#define EVENT_BOMB_PLANTED (1<<1) // "b"
#define EVENT_BOMB_DEFUSED (1<<2) // "c"
#define EVENT_BOMB_PLANTING (1<<3) // "d"
#define EVENT_BOMB_DEFUSING (1<<4) // "e"
#define EVENT_BOMB_SPAWN (1<<5) // "f"
#define EVENT_BOMB_PICKUP (1<<6) // "g"
#define EVENT_BOMB_DROPPED (1<<7) // "h"
#define EVENT_BOMB_COUNT (1<<8) // "i"
#define EVENT_HOSTAGE_TOUCHED (1<<9) // "j"
#define EVENT_HOSTAGE_RESCUED (1<<10) // "k"
#define EVENT_HOSTAGE_KILLED (1<<11) // "l"
#define EVENT_HEADSHOT (1<<12) // "m"
#define EVENT_KNIFE (1<<13) // "n"
#define EVENT_HE_KILL (1<<14) // "o"
#define EVENT_HESUICIDE (1<<15) // "p"
#define EVENT_VIP_SPAWN (1<<16) // "q"
#define EVENT_VIP_KILLED (1<<17) // "r"
#define EVENT_VIP_ESCAPED (1<<18) // "s"
#define EVENT_VIP_FAILED (1<<19) // "t"
#define EVENT_FIRST_KILL (1<<20) // "u"
#define EVENT_KILLSTREAK (1<<21) // "v"
#define EVENT_MSG_ALL 0
#define EVENT_MSG_T 1
#define EVENT_MSG_CT 2
/************************************************************
* CONFIG
************************************************************/
// Number of hostages killed before punishment
#define DEFAULT_HOSTAGE_KILLS 2
// First kill gets a bonus (0=off,1=money,2=health,3=random)
#define DEFAULT_FIRST_KILL_BONUS 3
// Bonus money for a first kill
#define DEFAULT_FIRST_KILL_MONEY 1000
// Bonus health for a first kill
#define DEFAULT_FIRST_KILL_HEALTH 50
// Makes certain messages displayed to team only (1=yes,0=no)
new gTeamMsg = 1
// Text for headshot messages
// You have to adjust the index number if you change
// the number of messages
new gHeadshotIndex = 3
new gHeadshotText[3][] = {
"got popped in the head by",
"was headshot by",
"lost his head from"
}
// Text for knife kill messages
// You have to adjust the index number if you change
// the number of messages
new gKnifeIndex = 3
new gKnifeText[3][] = {
"got owned by",
"was sliced and diced by",
"got shanked by"
}
// Text for grenade kill messages
// You have to adjust the index number if you change
// the number of messages
new gGrenadeIndex = 4
new gGrenadeText[4][] = {
"got blown to bits by",
"felt the heat of",
"was burned by",
"got toasted by"
}
/************************************************************
* MAIN
************************************************************/
new gPlanter, gVIP, gBombTimer, gFirstKill, gDefuser
new gHostageIndex[MAX_PLAYERS+1]
new gKillIndex[MAX_PLAYERS+1]
/************************************************************
* EVENT FUNCTIONS
************************************************************/
// Player Events
public event_player_action()
{
new sArg[MAX_VAR_LENGTH], sAction[MAX_VAR_LENGTH]
new sName[MAX_NAME_LENGTH]
new sMsg[MAX_TEXT_LENGTH]
new iPlayer, iUserId
new iFlags = get_event_flags()
read_logargv(0,sArg,MAX_VAR_LENGTH)
read_logargv(2,sAction,MAX_VAR_LENGTH)
parse_loguser(sArg,sName,MAX_NAME_LENGTH,iUserId)
iPlayer = find_player("k",iUserId)
if (iPlayer) {
// Bomb planted
if (equal(sAction,"Planted_The_Bomb")) {
if (iFlags&EVENT_BOMB_PLANTED) {
format(sMsg,MAX_TEXT_LENGTH,"%s planted the bomb!",sName)
display_msg(sMsg,255,0,0,EVENT_MSG_ALL)
if (iFlags&EVENT_BOMB_COUNT) {
gBombTimer = get_cvar_num("mp_c4timer")
set_task(1.0,"event_bomb_count",80,"",0,"b")
}
}
}
// Bomb defused
else if (equal(sAction,"Defused_The_Bomb")) {
if (iFlags&EVENT_BOMB_DEFUSED) {
format(sMsg,MAX_TEXT_LENGTH,"%s defused the bomb with %i seconds left!",sName,gBombTimer)
display_msg(sMsg,0,100,255,EVENT_MSG_ALL)
}
}
// Bomb defusing with a kit
else if (equal(sAction,"Begin_Bomb_Defuse_With_Kit")) {
if (iFlags&EVENT_BOMB_DEFUSING) {
format(sMsg,MAX_TEXT_LENGTH,"%s is defusing the bomb with a kit...",sName)
display_msg(sMsg,0,100,255,EVENT_MSG_CT)
}
gDefuser = iPlayer
}
// Bomb defusing without a kit
else if (equal(sAction,"Begin_Bomb_Defuse_Without_Kit")) {
if (iFlags&EVENT_BOMB_DEFUSING) {
format(sMsg,MAX_TEXT_LENGTH,"%s is defusing the bomb with his bare hands...",sName)
display_msg(sMsg,0,100,255,EVENT_MSG_CT)
}
gDefuser = iPlayer
}
// Spawned with the bomb
else if (equal(sAction,"Spawned_With_The_Bomb")) {
if (iFlags&EVENT_BOMB_SPAWN) {
format(sMsg,MAX_TEXT_LENGTH,"%s has the bomb!",sName)
display_msg(sMsg,0,200,0,EVENT_MSG_ALL)
}
gPlanter = iPlayer
}
// Dropped bomb
else if (equal(sAction,"Dropped_The_Bomb")) {
if (iFlags&EVENT_BOMB_DROPPED) {
format(sMsg,MAX_TEXT_LENGTH,"%s dropped the bomb!",sName)
display_msg(sMsg,0,200,0,EVENT_MSG_T)
}
}
// Picked up bomb
else if (equal(sAction,"Got_The_Bomb")) {
if (iFlags&EVENT_BOMB_PICKUP) {
format(sMsg,MAX_TEXT_LENGTH,"%s picked up the bomb!",sName)
display_msg(sMsg,0,200,0,EVENT_MSG_T)
}
gPlanter = iPlayer
}
// Hostage touched
else if (equal(sAction,"Touched_A_Hostage")) {
if (iFlags&EVENT_HOSTAGE_TOUCHED) {
format(sMsg,MAX_TEXT_LENGTH,"%s found a hostage!",sName)
display_msg(sMsg,0,50,128,EVENT_MSG_CT)
}
}
// Hostage rescued
else if (equal(sAction,"Rescued_A_Hostage")) {
if (iFlags&EVENT_HOSTAGE_RESCUED) {
format(sMsg,MAX_TEXT_LENGTH,"%s rescued a hostage!",sName)
display_msg(sMsg,0,100,255,EVENT_MSG_ALL)
}
}
// Hostage killed
else if (equal(sAction,"Killed_A_Hostage")) {
if (iFlags&EVENT_HOSTAGE_KILLED) {
gHostageIndex[iPlayer] += 1
if (gHostageIndex[iPlayer] >= DEFAULT_HOSTAGE_KILLS) {
user_kill(iPlayer,1)
format(sMsg,MAX_TEXT_LENGTH,"%s was punished for killing hostages!",sName)
display_msg(sMsg,255,175,0,EVENT_MSG_ALL)
}
else {
format(sMsg,MAX_TEXT_LENGTH,"%s killed a hostage!",sName)
display_msg(sMsg,255,175,0,EVENT_MSG_ALL)
}
}
}
// VIP spawn
else if (equal(sAction,"Became_VIP")) {
if (iFlags&EVENT_VIP_SPAWN) {
format(sMsg,MAX_TEXT_LENGTH,"%s has become the VIP!",sName)
display_msg(sMsg,0,200,0,EVENT_MSG_ALL)
}
gVIP = iPlayer
}
// VIP assassinated
else if (equal(sAction,"Assassinated_The_VIP")) {
if (iFlags&EVENT_VIP_KILLED) {
new sNameVIP[MAX_NAME_LENGTH]
get_user_name(gVIP,sNameVIP,MAX_NAME_LENGTH)
format(sMsg,MAX_TEXT_LENGTH,"%s assassinated %s the VIP!",sName,sNameVIP)
display_msg(sMsg,255,0,0,EVENT_MSG_ALL)
}
}
// VIP escaped
else if (equal(sAction,"Escaped_As_VIP")) {
if (iFlags&EVENT_VIP_ESCAPED) {
format(sMsg,MAX_TEXT_LENGTH,"%s the VIP has escaped!",sName)
display_msg(sMsg,0,100,255,EVENT_MSG_ALL)
}
}
}
return PLUGIN_CONTINUE
}
// Bomb planting
public event_bomb_planting(id)
{
new sName[MAX_NAME_LENGTH]
new sMsg[MAX_TEXT_LENGTH]
new iFlags = get_event_flags()
if (read_data(1) == 3 && gPlanter) {
if (iFlags&EVENT_BOMB_PLANTING) {
get_user_name(gPlanter,sName,MAX_NAME_LENGTH)
format(sMsg,MAX_TEXT_LENGTH,"%s is planting the bomb...",sName)
display_msg(sMsg,255,0,0,EVENT_MSG_T)
}
}
return PLUGIN_CONTINUE
}
// Bomb counter
public event_bomb_count()
{
new iFlags = get_event_flags()
gBombTimer -= 1
if (gBombTimer > 0) {
if (iFlags&EVENT_BOMB_COUNT) {
new sSound[MAX_VAR_LENGTH]
if (gBombTimer == 30 || gBombTimer == 20) {
num_to_word(gBombTimer,sSound,MAX_VAR_LENGTH)
client_cmd(0,"spk ^"vox/%s seconds until explosion^"",sSound)
}
else if (gBombTimer < 11) {
num_to_word(gBombTimer,sSound,MAX_VAR_LENGTH)
client_cmd(0,"spk ^"vox/%s^"",sSound)
}
}
}
else {
remove_task(80)
}
return PLUGIN_CONTINUE
}
// Death events
public event_death()
{
new iFlags = get_event_flags()
new iKiller = read_data(1)
new iVictim = read_data(2)
new iHeadshot = read_data(3)
new sMsg[MAX_TEXT_LENGTH]
new sWeapon[MAX_NAME_LENGTH]
new sNameKiller[MAX_NAME_LENGTH], sNameVictim[MAX_NAME_LENGTH]
read_data(4,sWeapon,MAX_NAME_LENGTH)
get_user_name(iKiller,sNameKiller,MAX_NAME_LENGTH)
get_user_name(iVictim,sNameVictim,MAX_NAME_LENGTH)
if (iKiller > 0 && iVictim > 0 && iKiller != iVictim) {
// First kill
if (iFlags&EVENT_FIRST_KILL && !gFirstKill && (get_user_team(iKiller) != get_user_team(iVictim))) {
new iMode = DEFAULT_FIRST_KILL_BONUS
if (iMode > 0) {
new iNum = DEFAULT_FIRST_KILL_BONUS
if (iNum == 3) {
iNum = random_num(1,2)
}
if (iNum == 1) {
format(sMsg,MAX_TEXT_LENGTH,"%s got the first kill! ($%i)",sNameKiller,DEFAULT_FIRST_KILL_MONEY)
new iMoney = cs_get_user_money(iKiller)+DEFAULT_FIRST_KILL_MONEY
if (iMoney > 16000) iMoney = 16000
cs_set_user_money(iKiller,iMoney)
}
else if (iNum == 2) {
format(sMsg,MAX_TEXT_LENGTH,"%s got the first kill! (+%i HP)",sNameKiller,DEFAULT_FIRST_KILL_HEALTH)
set_user_health(iKiller,get_user_health(iKiller)+DEFAULT_FIRST_KILL_HEALTH)
}
}
else {
format(sMsg,MAX_TEXT_LENGTH,"%s got the first kill!",sNameKiller)
}
gFirstKill = 1
display_msg(sMsg,255,175,0,EVENT_MSG_ALL)
}
// Headshot
if (iFlags&EVENT_HEADSHOT && iHeadshot) {
format(sMsg,MAX_TEXT_LENGTH,"%s %s %s^'s bullet!",sNameVictim,gHeadshotText[random_num(0,gHeadshotIndex-1)],sNameKiller)
display_msg(sMsg,255,175,0,EVENT_MSG_ALL)
}
// Grenade kills
if (iFlags&EVENT_HE_KILL && equal(sWeapon,"grenade")) {
format(sMsg,MAX_TEXT_LENGTH,"%s %s %s^'s grenade!",sNameVictim,gGrenadeText[random_num(0,gGrenadeIndex-1)],sNameKiller)
display_msg(sMsg,255,175,0,EVENT_MSG_ALL)
}
// Knife kills
if (iFlags&EVENT_KNIFE && equal(sWeapon,"knife")) {
format(sMsg,MAX_TEXT_LENGTH,"%s %s %s^'s knife!",sNameVictim,gKnifeText[random_num(0,gKnifeIndex-1)],sNameKiller)
display_msg(sMsg,255,175,0,EVENT_MSG_ALL)
}
// Killstreak
if (iFlags&EVENT_KILLSTREAK) {
gKillIndex[iKiller] += 1
gKillIndex[iVictim] = 0
if (gKillIndex[iKiller] == 3) {
format(sMsg,MAX_TEXT_LENGTH,"%s got %i kills in a row!",sNameKiller,gKillIndex[iKiller])
display_msg(sMsg,200,200,200,EVENT_MSG_ALL)
}
else if (gKillIndex[iKiller] == 10) {
format(sMsg,MAX_TEXT_LENGTH,"%s got %i kills in a row!",sNameKiller,gKillIndex[iKiller])
display_msg(sMsg,255,200,100,EVENT_MSG_ALL)
}
else if (gKillIndex[iKiller] == 20) {
format(sMsg,MAX_TEXT_LENGTH,"%s got %i kills in a row!",sNameKiller,gKillIndex[iKiller])
display_msg(sMsg,255,175,0,EVENT_MSG_ALL)
}
}
}
else {
// HE Suicide
if (iFlags&EVENT_HESUICIDE && equal(sWeapon,"grenade")) {
format(sMsg,MAX_TEXT_LENGTH,"%s got owned by his own grenade!",sNameVictim)
display_msg(sMsg,200,200,200,EVENT_MSG_ALL)
}
}
return PLUGIN_CONTINUE
}
// Team events
public event_team_action()
{
new sName[MAX_NAME_LENGTH]
new sTeam[MAX_NAME_LENGTH], sAction[MAX_NAME_LENGTH]
new sMsg[MAX_TEXT_LENGTH]
new iFlags = get_event_flags()
read_logargv(1,sTeam,MAX_VAR_LENGTH)
read_logargv(3,sAction,MAX_VAR_LENGTH)
if (equal(sTeam,"TERRORIST")) {
if (equal(sAction,"Target_Bombed")) {
if (iFlags&EVENT_BOMB_EXPLODE && gPlanter > 0) {
get_user_name(gPlanter,sName,MAX_NAME_LENGTH)
format(sMsg,MAX_TEXT_LENGTH,"%s^'s bomb exploded!",sName)
display_msg(sMsg,0,200,0,EVENT_MSG_ALL)
remove_task(80)
if (gDefuser) {
get_user_name(gDefuser,sName,MAX_NAME_LENGTH)
format(sMsg,MAX_TEXT_LENGTH,"%s failed to defuse the bomb!",sName)
display_msg_sub(sMsg,0,200,0,EVENT_MSG_ALL)
}
}
}
else if (equal(sAction,"VIP_Assassinated")) {
// Nothing
}
}
else if (equal(sTeam,"CT")) {
if (equal(sAction,"VIP_Not_Escaped")) {
if (iFlags&EVENT_VIP_FAILED && gVIP > 0) {
get_user_name(gVIP,sName,MAX_NAME_LENGTH)
format(sMsg,MAX_TEXT_LENGTH,"%s the VIP failed to escape!",sName)
display_msg(sMsg,0,200,0,EVENT_MSG_ALL)
}
}
else if (equal(sAction,"Bomb_Defused")) {
// Nothing
}
else if (equal(sAction,"Hostages_Not_Rescued")) {
// Nothing
}
else if (equal(sAction,"All_Hostages_Rescued")) {
// Nothing
}
}
return PLUGIN_CONTINUE
}
// World events
public event_world_action()
{
new sAction[MAX_NAME_LENGTH]
read_logargv(1,sAction,MAX_VAR_LENGTH)
if (equal(sAction,"Round_Start")) {
gBombTimer = 0
gFirstKill = 0
}
else if (equal(sAction,"Round_End")) {
gBombTimer = 0
gPlanter = 0
gVIP = 0
gDefuser = 0
}
return PLUGIN_CONTINUE
}
/************************************************************
* HELPER FUNCTIONS
************************************************************/
public display_msg(msg[],r,g,b,team)
{
set_hudmessage(r,g,b,-1.0,0.30,0,6.0,6.0,0.5,0.15,1)
if (team > 0 && gTeamMsg == 1) {
new iPlayer, iPlayers[MAX_PLAYERS], iNumPlayers
get_players(iPlayers,iNumPlayers,"a")
for (new i = 0; i < iNumPlayers; i++) {
iPlayer = iPlayers[i]
if (get_user_team(iPlayer)==team) {
show_hudmessage(iPlayer,msg)
}
}
}
else {
show_hudmessage(0,msg)
}
}
public display_msg_sub(msg[],r,g,b,team)
{
set_hudmessage(r,g,b,-1.0,0.35,0,6.0,6.0,0.5,0.15,2)
if (team > 0 && gTeamMsg == 1) {
new iPlayer, iPlayers[MAX_PLAYERS], iNumPlayers
get_players(iPlayers,iNumPlayers,"a")
for (new i = 0; i < iNumPlayers; i++) {
iPlayer = iPlayers[i]
if (get_user_team(iPlayer)==team) {
show_hudmessage(iPlayer,msg)
}
}
}
else {
show_hudmessage(0,msg)
}
}
public get_event_flags()
{
new sFlags[24]
get_cvar_string("amx_csevents",sFlags,24)
return read_flags(sFlags)
}
/************************************************************
* PLUGIN FUNCTIONS
************************************************************/
public client_connect(id)
{
gKillIndex[id] = 0
gHostageIndex[id] = 0
return PLUGIN_CONTINUE
}
public client_disconnect(id)
{
gKillIndex[id] = 0
gHostageIndex[id] = 0
return PLUGIN_CONTINUE
}
public plugin_init()
{
register_plugin("Plugin CS Events","1.1","mike_cao")
// General events
register_event("DeathMsg","event_death","a")
register_event("BarTime","event_bomb_planting","be","1=3")
// Log events
register_logevent("event_player_action",3,"1=triggered")
register_logevent("event_team_action",6,"2=triggered")
register_logevent("event_world_action",2,"0=World triggered")
// Cvars
register_cvar("amx_csevents","abcdefghijklmnopqrstuv")
}

New, public, Stock, static

kis segítség:

Bevezetőül:
Változót deklarálhatunk az alábbi kulcsszavak egyikével:
new, stock, public, static

Mindegyik változót hoz létre, de mindegyik kicsit eltér a másiktól, futási és/vagy fordítási különbségeket teremtve.
new: allokálja a memóriaterületet. Ha ez eljárásban történni, akkor az eljárás végén törlődik.
stock: hasonló a newhoz, a különbség fordítás időben történik: Amennyiben a változó nincs használva sehol sem, akkor a fordító nem építi bele a p-kódba. (kisebb memóriahasználatot vonva maga után, ami jó), s ezzel el tudjátok kerülni a variable is unused warningot.
public: new + az absztrakt gépe felküldi a változó nevét, s így az más pluginból elérhetővé válik (szerkeszthető, módosítható). Jó dolog, de inkább a natív az elterjedt, mivel az biztosít valamiféle interface-t, protokollt, s így szabályok is adhatóak a módosításához stb.
static: mint a new, de ha eljárásban definiálod, nem törlődik a memóriában, hanem ott marad. (Allokálási idő nem lesz, csak egyszer foglalja le, s az értékét is megtartja)

Továbbá tisztázzuk, hogy vannak
1) globális változók és
2) lokális változók

( Általában az okos, hozzáértő scriptelek (itt nem sok van, hehe :P) a globális változókat egy helyre gyűjtik, g_ pefixel (vagy simán g prefixel) ellátva, hogy tudják, ez elérhető bárhonnan, hisz a globális területen lett definiálva.)

A globális változók mindenhol elérhetőek (tehát mindig léteznek), így felesleges is staticcal deklarálni, mivel azok elérhetőek, tartalmukkal együtt.
A lokális változók azoka változók, amiket eljárásokban deklarálunk. Ezek , az eljárás lefutása végén eltűnnek a memóriából.
DE ha az eljárásban staticcal hozol létre változót, az nem törlődik ki.


Metal tollából a hlmod.hu oldalról

Pawn változók

//kiki
A karakterláncok, pici leírás aki nem tudná:

Számok:
%b -> Bináris számok (0 és 1, ha logikai változót akarunk kiiratni akkor használjuk inkább ezt!)
%d -> Decimális EGÉSZ számok
%f -> Lebegopontos szám
%.0f -> Lebegopontos szám, és a tizedesjegyek mérete. (1 ha 1 tizedsjegyet jelzünk ki, és így tovább...) *
%i -> Szimpla egész szám
%x -> Hexadecimális szám (Magyarul: 0-9 = 10 szám, + A-F = 6 szám)
Nem számok:
%c -> Karakter
%s -> String (tartalma lehet benne akármi amit felsorolunk)
Érdekességek:
%% -> Az irodalmi százalék jelet ('%') jelzi ki

* Ezt akkor használjuk, ha egy lebegopontos változónál nem akarjuk a tizedesjegyeket kijelezni, tehát a "166.5453453453453" helyett csak "166" -ot ír ki, nem keverendo össze a %d -vel, hisz az nem képes a "Float:" változók fogadására

[ZP] Antidote

 /***************************************************************************\             =====================================            ...