|
L 08/11/2008 - 12:54:41: Start of error session.
L 08/11/2008 - 12:54:41: Info (map "de_train") (logfile "error_081108.log")
L 08/11/2008 - 12:54:41: [FUN] Invalid player 1
L 08/11/2008 - 12:54:41: [AMXX] Displaying debug trace (plugin "team_objectives.amxx")
L 08/11/2008 - 12:54:41: [AMXX] Run time error 10: native error (native "set_user_maxspeed")
L 08/11/2008 - 12:54:41: [AMXX] [0] team_objectives.sma::rocket_explode (line 127) 插件源码#include <amxmod>
#include <amxmodx>
#include <amxmisc>
#include <fun>
public slaylosers(param[]) {
if(get_cvar_num("cds_xdcheck") == 1) return PLUGIN_HANDLED
new players[32], playersnum,type
get_players(players,playersnum,"ea",(param[7] == 't') ? "CT" : "TERRORIST" )
type = get_cvar_num("cds_slayloser")
for(new a = 0; a < playersnum; ++a){
if(get_cvar_num("cds_slayloser") == 0 || get_cvar_num("cds_slayloser") >5)
type = random_num(1,5)
switch(type){
case 1:Rocket(players[a])
case 2:TimeBomb(players[a])
case 3:Raise(players[a])
case 4:Fire(players[a])
case 5:SlapFly(players[a])
}
}
return PLUGIN_CONTINUE
}
//--------------------------------------------------------------------------------------------------
//矪籃穨
new gmsgShake
new gmsgDamage
new gmsgHealth
new gmsgBattery
new gmsgFade
new gmsgDeathMsg
new r_trail
new mflash
new smoke
new countdown[33]
new light
new white
new fire
new m_fireball
/********************************** SlapFly *****************************/
public SlapFly(player){
if(is_user_alive(player)){
user_slap(player,5)
set_task(0.1,"SlapFly2",player)
}
}
public SlapFly2(player){
if(is_user_alive(player)){
user_slap(player,10)
set_task(0.1,"SlapFly",player)
}
}
/********************************** ROCKET *****************************/
public Rocket(player){
if(is_user_alive(player)){
emit_sound(player, CHAN_VOICE, "cds/t_o/charging.wav", 1.0, 0.5, 0, PITCH_NORM)
set_user_maxspeed(player, 1.2)
rocket_sfx(player)
}
}
public rocket_sfx(player){
if(!is_user_alive(player))
return PLUGIN_HANDLED
set_user_gravity(player, -1.00)
client_cmd(player, "+jump;wait;wait;-jump")
rocket_rise(player)
message_begin(MSG_ONE,gmsgShake, {0,0,0}, player)
write_short(1<<15) // shake amount
write_short(1<<15) // shake lasts this long
write_short(1<<15) // shake noise frequency
message_end()
// Rocket Trail
message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
write_byte(22) // TE_BEAMFOLLOW
write_short(player)
write_short(r_trail)
write_byte(30)
write_byte(2)
write_byte(250)
write_byte(250)
write_byte(250)
write_byte(250)
message_end()
return PLUGIN_CONTINUE
}
public rocket_rise(player){
if(is_user_alive(player)){
new origin[3]
get_user_origin(player, origin)
draw_fire(origin)
message_begin(MSG_ONE, gmsgDamage, {0,0,0}, player)
write_byte(30) // dmg_save
write_byte(30) // dmg_take
write_long(1<<16) // visibleDamageBits
write_coord(origin[0]) // damageOrigin.x
write_coord(origin[1]) // damageOrigin.y
write_coord(origin[2]) // damageOrigin.z
message_end()
set_task(0.1, "rocket_rise",player)
set_task(1.23, "rocket_explode",player)
}
}
public rocket_explode(player){
message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
write_byte(99) // TE_KILLBEAM
write_short(player)
message_end()
slay(player,2)
//emit_sound(player, CHAN_VOICE, "cds/t_o/charging.wav", 0.0, 0.0, (1<<5), PITCH_NORM)
set_user_maxspeed(player, 1.0)
set_user_gravity(player, 1.00)
}
/********************************** FIRE *****************************/
public Fire(player){
ignite_effects(player)
ignite_player(player)
}
public ignite_effects(player){
if(is_user_alive(player)){
new korigin[3]
get_user_origin(player, korigin)
draw_fire(korigin)
set_task(0.2, "ignite_effects", player)
}
}
public ignite_player(player){
if(is_user_alive(player)){
new korigin[3]
//new kHeath = get_user_health(player)
get_user_origin(player, korigin)
// Create some damage
//set_user_health(player, kHeath - 50)
message_begin(MSG_ONE, gmsgDamage, {0,0,0}, player)
write_byte(30) // dmg_save
write_byte(30) // dmg_take
write_long(1<<21) // visibleDamageBits
write_coord(korigin[0]) // damageOrigin.x
write_coord(korigin[1]) // damageOrigin.y
write_coord(korigin[2]) // damageOrigin.z
message_end()
// Create some sound
emit_sound(player, CHAN_ITEM, "ambience/flameburst1.wav", 0.6, ATTN_NORM, 0, PITCH_NORM)
set_task(0.5, "ignite_player", player)
set_task(1.3,"fire_slay",player)
}
}
public fire_slay(player){
slay(player,3)
}
/* FIRE SPECIAL EFFECTS */
draw_fire(vec1[3]){
message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
write_byte(17) // TE_SPRITE
write_coord(vec1[0])
write_coord(vec1[1])
write_coord(vec1[2])
write_short(mflash)
write_byte(20)
write_byte(200)
message_end()
// Smoke
message_begin(MSG_BROADCAST, SVC_TEMPENTITY, vec1)
write_byte(5) // TE_SMOKE
write_coord(vec1[0])
write_coord(vec1[1])
write_coord(vec1[2])
write_short(smoke)
write_byte(20)
write_byte(15)
message_end()
}
/********************************** TIME BOMB *****************************/
public TimeBomb(player){
countdown[player] = 5
set_task(0.5,"TimeBombLoop",player)
}
public TimeBombLoop(player){
if(!is_user_alive(player)){
set_player_rendering(player, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 255, 0)
return PLUGIN_HANDLED
}
new speak[6][] = {"fire!", "one", "two", "three", "four", "five"}
new red = random_num(0, 255)
new green = random_num(0, 255)
new blue = random_num(0, 255)
new alpha = random_num(100, 255)
new kName[32]
new players[32], inum
get_user_name(player, kName, 31)
set_hudmessage(red, green, blue, -1.0, 0.25, 0, 1.2, 1.2, 0.5, 0.15, 5)
if(countdown[player] > 0){
// Glow Me
set_player_rendering(player, kRenderFxGlowShell, red, green, blue, kRenderTransAlpha, alpha, 1)
// Annouce Me
get_players(players, inum, "c")
for(new i = 0; i < inum; ++i){
client_cmd(players, "speak ^"fvox/%s^"", speak[countdown[player]])
show_hudmessage(0, "%L", LANG_PLAYER, "EXPLODE_MSG", kName, countdown[player])
}
message_begin(MSG_ONE, gmsgHealth, {0,0,0}, player)
write_byte(countdown[player])
message_end()
message_begin(MSG_ONE, gmsgBattery, {0,0,0}, player)
write_short(countdown[player])
message_end()
countdown[player]--
// Call Again
set_task(0.3, "TimeBombLoop", player)
} else { //explode
set_player_rendering(player, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 255, 1)
get_players(players, inum, "c")
for(new i = 0; i < inum; ++i){
client_cmd(players, "speak ^"hgrunt/%s^"", speak[countdown[player]])
message_begin(MSG_ONE, gmsgShake, {0,0,0}, players)
write_short(1<<14) // shake amount
write_short(1<<14) // shake lasts this long
write_short(1<<14) // shake noise frequency
message_end()
}
// FIRE!
show_hudmessage(0, "%L", LANG_PLAYER, "TIMEBOMB_FIRE_MSG")
slay(player, 3)
// Fade to red, for bomber
message_begin(MSG_ONE, gmsgFade, {0,0,0}, player)
write_short(1<<15)
write_short(1<<10)
write_short(1<<1)
write_byte(100)
write_byte(0)
write_byte(0)
write_byte(255)
message_end()
if(get_cvar_num("atac_bomb_mode")){
get_players(players, inum, "a")
for(new i = 0; i < inum; ++i){
new pOrigin[3]
new kOrigin[3]
get_user_origin(players, pOrigin)
get_user_origin(player, kOrigin)
if(get_cvar_num("atac_bomb_range") > get_distance(kOrigin, pOrigin)){
// Death Msg
message_begin(MSG_ALL, gmsgDeathMsg)
write_byte(player)
write_byte(players)
write_byte(0)
write_string("ATAC Timebomb")
message_end()
slay(players, 0)
// Fade to red, for everyone within bomb explosion
message_begin(MSG_ONE, gmsgFade, {0,0,0}, player)
write_short(1<<15)
write_short(1<<10)
write_short(1<<1)
write_byte(100)
write_byte(0)
write_byte(0)
write_byte(255)
message_end()
}
}
}
}
return PLUGIN_HANDLED
}
slay(player,type){
if(is_user_alive(player) && is_user_connected(player)){
new origin[3]
get_user_origin(player, origin)
switch(type){
case 1:{
lightning(origin)
emit_sound(player,CHAN_ITEM, "ambience/thunder_clap.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
}
case 2:{
explode(origin)
emit_sound(player,CHAN_ITEM, "cds/t_o/energy_sing_explosion2.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
}
case 3:{
fireball(origin)
emit_sound(player,CHAN_ITEM, "cds/t_o/rocketfire1.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
}
}
user_kill(player, 0)
}
}
/* SLAYING SPECIAL EFFECTS */
lightning(vec1[3]){
// Lightning
message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
write_byte(0) // TE_BEAMPOINTS
write_coord(vec1[0])
write_coord(vec1[1])
write_coord(vec1[2])
write_coord(vec1[0] + 150)
write_coord(vec1[1] + 150)
write_coord(vec1[2] + 400)
write_short(light)
write_byte(1)
write_byte(5)
write_byte(2)
write_byte(20)
write_byte(30)
write_byte(200)
write_byte(200)
write_byte(200)
write_byte(200)
write_byte(200)
message_end()
// Sparks
message_begin(MSG_PVS, SVC_TEMPENTITY, vec1)
write_byte(9) // TE_SPARKS
write_coord(vec1[0])
write_coord(vec1[1])
write_coord(vec1[2])
message_end()
// Smoke
message_begin(MSG_BROADCAST, SVC_TEMPENTITY, vec1)
write_byte(5) // TE_SMOKE
write_coord(vec1[0])
write_coord(vec1[1])
write_coord(vec1[2])
write_short(smoke)
write_byte(10)
write_byte(10)
message_end()
}
explode(vec1[3]){
// Blast Circles
message_begin(MSG_BROADCAST, SVC_TEMPENTITY, vec1)
write_byte(21) // TE_BEAMCYLINDER
write_coord(vec1[0])
write_coord(vec1[1])
write_coord(vec1[2] + 16)
write_coord(vec1[0])
write_coord(vec1[1])
write_coord(vec1[2] + 1936)
write_short(white)
write_byte(0)
write_byte(0)
write_byte(2)
write_byte(16)
write_byte(0)
write_byte(188)
write_byte(220)
write_byte(255)
write_byte(255)
write_byte(0)
message_end()
// Explosion2
message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
write_byte(12) // TE_EXPLOSION2
write_coord(vec1[0])
write_coord(vec1[1])
write_coord(vec1[2])
write_byte(188)
write_byte(10)
message_end()
// Smoke
message_begin(MSG_BROADCAST, SVC_TEMPENTITY, vec1)
write_byte(5) // TE_SMOKE
write_coord(vec1[0])
write_coord(vec1[1])
write_coord(vec1[2])
write_short(smoke)
write_byte(2)
write_byte(10)
message_end()
}
fireball(vec1[3])
{
message_begin(MSG_BROADCAST, SVC_TEMPENTITY, vec1)
write_byte(17) // TE_BEAMSPRITE
write_coord(vec1[0])
write_coord(vec1[1])
write_coord(vec1[2] +256)
write_short(fire)
write_byte(120)
write_byte(255)
message_end()
// Implosion
message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
write_byte(14) // TE_IMPLOSION
write_coord(vec1[0])
write_coord(vec1[1])
write_coord(vec1[2])
write_byte(100)
write_byte(20)
write_byte(5)
message_end()
// Random Explosions
message_begin(MSG_PVS, SVC_TEMPENTITY, vec1)
write_byte(3) // TE_EXPLOSION
write_coord(vec1[0])
write_coord(vec1[1])
write_coord(vec1[2])
write_short(m_fireball)
write_byte(30)
write_byte(12)
write_byte(0) // TE_EXPLFLAG_NONE
message_end()
// Lots of Smoke
message_begin(MSG_PVS, SVC_TEMPENTITY, vec1)
write_byte(5) // TE_SMOKE
write_coord(vec1[0])
write_coord(vec1[1])
write_coord(vec1[2])
write_short(smoke)
write_byte(60)
write_byte(10)
message_end()
}
/********************************** DROP *****************************/
public Raise(player){
if(is_user_alive(player)){
set_user_gravity(player, -4.0)
client_cmd(player, "+jump;wait;wait;-jump")
set_task(0.6, "Drop", player)
}
else{
set_user_gravity(player, 1.0)
}
return PLUGIN_CONTINUE
}
public Drop(player){
if(is_user_alive(player)){
set_user_gravity(player, 50.0)
set_task(0.4, "Raise", player)
slay(player,1)
}
else{
set_user_gravity(player, 1.0)
}
return PLUGIN_CONTINUE
}
/********************************** PUNISHMENTS ********************************/
set_player_rendering(player, fx, r, g, b, render, amount, alive){
// Alive = 1 mean check if player is alive. Alive = 0 mean don't check if player is alive.
if(is_user_connected(player) && is_user_alive(player) && (alive == 1))
set_user_rendering(player, fx, r, g, b, render, amount)
else if(is_user_connected(player) && (alive == 0))
set_user_rendering(player, fx, r, g, b, render, amount)
}
public delayslay(){
new param[32]
new len = read_data(2,param,31)
set_task(0.3,"slaylosers",0,param, len + 1)
}
public all_slay(){
slaylosers("CT")
slaylosers("TERRORIST")
}
public plugin_init(){
register_plugin("Team Objectives","2.0","Bhunji Weasber")
register_event("SendAudio","delayslay","a","2=%!MRAD_terwin","2=%!MRAD_ctwin","2=%!MRAD_rounddraw")
register_cvar("cds_slayloser","0")
register_concmd("cds_slayloser","all_slay",ADMIN_IMMUNITY)
gmsgShake = get_user_msgid("ScreenShake")
gmsgDamage = get_user_msgid("Damage")
gmsgHealth = get_user_msgid("Health")
gmsgBattery = get_user_msgid("Battery")
gmsgFade = get_user_msgid("ScreenFade")
gmsgDeathMsg = get_user_msgid("DeathMsg")
}
public plugin_precache(){
m_fireball = precache_model("sprites/zerogxplode.spr")
mflash = precache_model("sprites/muzzleflash.spr")
r_trail = precache_model("sprites/smoke.spr")
light = precache_model("sprites/lgtning.spr")
smoke = precache_model("sprites/steam1.spr")
white = precache_model("sprites/white.spr")
fire = precache_model("sprites/xfireball3.spr")
precache_sound("ambience/thunder_clap.wav")
precache_sound("ambience/flameburst1.wav")
precache_sound("scientist/scream21.wav")
precache_sound("scientist/scream07.wav")
precache_sound("weapons/rocketfire1.wav")
precache_sound("weapons/rocket1.wav")
precache_sound("cds/t_o/rocketfire1.wav")
precache_sound("cds/t_o/energy_sing_explosion2.wav")
precache_sound("cds/t_o/charging.wav")
}
望会修改的朋友能帮个忙。谢谢!! |
|