|
楼主 |
发表于 2006-11-5 15:39:22
|
显示全部楼层
来自 中国–重庆–重庆–永川区
回复: Kinsprite大哥请进~
呵呵在你指点下
我已经解决了
但是我还想问个问题~
怎么提高不死族的自暴范围~
还有哪个地穴族好象6级大决没什么效果~能否提升对敌人伤害的效果~
这个是不死的
// ****************************************
// Undead's Suicide Bomber
// ****************************************
public apacheexplode(parm[5]){ // Suicide Bomber
new id = parm[0]
// random explosions
#if ADVANCED_STATS
new WEAPON = CSW_SUICIDE - CSW_WAR3_MIN
iStatsShots[id][WEAPON]++
#endif
new origin[3], origin2[3]
origin[0] = parm[2]
origin[1] = parm[3]
origin[2] = parm[4]
origin2[0] = origin[0] + random_num( -100, 100 )
origin2[1] = origin[1] + random_num( -100, 100 )
origin2[2] = origin[2] + random_num( -50, 50 )
if(!g_mapDisabled)
Create_TE_EXPLOSION(origin, origin2, g_sFireball, (random_num(0,20) + 20), 12, TE_EXPLFLAG_NONE)
#if MOD == 0
if(!g_mapDisabled)
Create_TE_Smoke(origin, origin2, g_sSmoke, 60, 10)
#endif
new players[32]
new numberofplayers
get_players(players, numberofplayers)
new i
new targetid
new distancebetween
new targetorigin[3]
new damage
new multiplier
for (i = 0; i < numberofplayers; ++i){
targetid=players
get_user_origin(targetid,targetorigin)
distancebetween=get_distance(origin,targetorigin)
if (distancebetween < EXPLOSION_RANGE && get_user_team(id)!=get_user_team(targetid) && p_data[targetid][P_ITEM]!=ITEM_NECKLACE && !p_data_b[targetid][PB_WARDENBLINK]){
multiplier=(EXPLOSION_MAX_DAMAGE*EXPLOSION_MAX_DAMAGE)/EXPLOSION_RANGE
damage=(EXPLOSION_RANGE-distancebetween)*multiplier
damage=sqroot(damage)
if(is_user_alive(targetid))
WAR3_damage(targetid, id, damage, CSW_SUICIDE, -1)
}
if (distancebetween < EXPLOSION_RANGE){
Create_ScreenShake(targetid, (1<<14), (1<<13), (1<<14))
}
}
--parm[1]
if (parm[1]>0)
set_task(0.1,"apacheexplode",TASK_EXPLOSION+id,parm,5)
return PLUGIN_CONTINUE
}
public blastcircles(parm[5]){
if ( endround )
return 0
// Create Blast Circles
if(g_mapDisabled)
return PLUGIN_CONTINUE
new origin[3], origin2[3]
origin[0] = parm[2]
origin[1] = parm[3]
origin[2] = parm[4] - 16
origin2[0] = origin[0]
origin2[1] = origin[1]
origin2[2] = origin[2] + EXPLOSION_BLAST_RADIUS
Create_TE_BEAMCYLINDER(origin, origin, origin2, g_sSpriteTexture, 0, 0, 6, 16, 0, 188, 220, 255, 255, 0)
origin2[2] = (origin[2] - EXPLOSION_BLAST_RADIUS) + (EXPLOSION_BLAST_RADIUS / 2 )
Create_TE_BEAMCYLINDER(origin, origin, origin2, g_sSpriteTexture, 0, 0, 6, 16, 0, 188, 220, 255, 255, 0)
return PLUGIN_CONTINUE
}
下面是地穴的
// ****************************************
// Crypt Lord's Locust Swarm
// ****************************************
Ultimate_LocustSwarm(id){
#if ADVANCED_DEBUG
writeDebugInfo("calllocustfunction",id)
#endif
new parm[11]
parm[7]=id
new players[32], numberofplayers, i, player, possibility[33], count = 0
get_players(players, numberofplayers)
for (i = 0; i < numberofplayers; ++i){
player=players
if(get_user_team(player)!=get_user_team(id) && is_user_alive(player) && !p_data_b[player][PB_WARDENBLINK] && p_data[player][P_ITEM]!=ITEM_NECKLACE){
possibility[count]=player
count++
}
}
if(count==0){
set_hudmessage(178, 14, 41, -1.0, 0.3, 0, 1.0, 5.0, 0.1, 0.2, 5)
show_hudmessage(id,"%L",id,"NO_VALID_TARGETS_FOUND")
return PLUGIN_CONTINUE
}
while(parm[6]==0) // Prevents target from being the server
parm[6]=possibility[random_num(0,count)]
new origin[3], origin2[3]
get_user_origin(id,origin)
get_user_origin(parm[6],origin2)
parm[0]=origin[0]
parm[1]=origin[1]
parm[2]=origin[2]
Ultimate_Icon(id,ICON_FLASH)
p_data_b[id][PB_ULTIMATEUSED]=true
drawfunnels(parm)
return PLUGIN_CONTINUE
}
public drawfunnels(parm[]){
new MULTIPLIER = 150 // the lower the number the faster it reaches the target
new id = parm[6]
new caster = parm[7]
if(p_data[id][P_ITEM]==ITEM_NECKLACE || p_data_b[id][PB_WARDENBLINK] || !is_user_alive(id) || !p_data_b[id][PB_ISCONNECTED]){
p_data_b[caster][PB_ULTIMATEUSED]=false
Ultimate_Icon(caster,ICON_SHOW)
return PLUGIN_HANDLED
}
new origin[3], funnel[3], name[32], name2[32]
get_user_name(id,name,31)
get_user_name(caster,name2,31)
get_user_origin(id,origin)
funnel[0]=parm[0] // Origin of the funnel
funnel[1]=parm[1]
funnel[2]=parm[2]
if(!g_mapDisabled)
Create_TE_LARGEFUNNEL(funnel, g_sSnow, 0)
new xdist = diff(origin[0],funnel[0])
new ydist = diff(origin[1],funnel[1])
new zdist = diff(origin[2],funnel[2])
if(diff(origin[0],(funnel[0]-MULTIPLIER))<xdist)
parm[0]=funnel[0]-MULTIPLIER
else if(diff(origin[0],(funnel[0]+MULTIPLIER))<xdist)
parm[0]=funnel[0]+MULTIPLIER
else
parm[0]=origin[0]
if(diff(origin[1],(funnel[1]-MULTIPLIER))<ydist)
parm[1]=funnel[1]-MULTIPLIER
else if(diff(origin[1],(funnel[1]+MULTIPLIER))<ydist)
parm[1]=funnel[1]+MULTIPLIER
else
parm[1]=origin[1]
if(diff(origin[2],(funnel[2]-MULTIPLIER))<zdist)
parm[2]=funnel[2]-MULTIPLIER
else if(diff(origin[2],(funnel[2]+MULTIPLIER))<zdist)
parm[2]=funnel[2]+MULTIPLIER
else
parm[2]=origin[2]
if(!endround){
if(!(xdist<50 && ydist<50 && zdist<50)){
#if MOD == 1
set_task(0.5,"drawfunnels",caster+TASK_FUNNELS,parm,11)
#else
set_task(0.1,"drawfunnels",caster+TASK_FUNNELS,parm,11)
#endif
}
else{
WAR3_damage(id, caster, 45, CSW_LOCUSTS, -1)
emit_sound(id,CHAN_STATIC, SOUND_LOCUSTSWARM, 1.0, ATTN_NORM, 0, PITCH_NORM)
Ultimate_Icon(caster,ICON_HIDE)
new cooldownparm[2]
cooldownparm[0]=caster
p_data[caster][P_ULTIMATEDELAY] = iCvar[FT_ULTIMATE_COOLDOWN]
_Ultimate_Delay(cooldownparm)
}
}
return PLUGIN_HANDLED
}
请大哥指点~ |
|