AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   pfn_touch need help (https://forums.alliedmods.net/showthread.php?t=221240)

avril-lavigne 07-19-2013 15:28

pfn_touch need help
 
I did a small delay for grenade when it on the ground. it works well. but I want if it touches a player - explosion will be immediately


Code:

public pfn_touch(ptr, ptd)
{               
     
        if(pev_valid(ptr))
                {       
         
                        new classname[32];
                        pev(ptr, pev_classname, classname, 31);
               
                        if(equal(classname, nail_classname))
                        {       
                          new Float:fOrigin[3]
                          new param[1]
                          param[0] = ptr                                 
                       
                       
                          if(PointContents(fOrigin) == CONTENTS_SOLID) {
                          fOrigin[2] += 100.0                         
                          set_task(2.5, "task_ExplodeNade", 0, param, 1) 
                          }                         
                  }
        }           
}

public task_ExplodeNade(param[]) if(is_valid_ent(param[0]))
{
                                new Float:fOrigin[3];
                                new iOrigin[3];
                                pev(param[0], pev_origin, fOrigin);
                                FVecIVec(fOrigin,iOrigin);                       
                                nail_radius_damage(param[0]);
                               
                                message_begin(MSG_BROADCAST,SVC_TEMPENTITY,iOrigin);
                                write_byte(TE_EXPLOSION);
                                write_coord(iOrigin[0]);
                                write_coord(iOrigin[1]);
                                write_coord(iOrigin[2]);
                                write_short(explode2);
                                write_byte(30);
                                write_byte(15);
                                write_byte(0); //flags
                                message_end();                             
                       
                                engfunc(EngFunc_RemoveEntity, param[0]);       
}

so how to know if grenade hit the player ???

ConnorMcLeod 07-19-2013 15:40

Re: pfn_touch need help
 
don't use pfn_touch, it is not efficient

use : register_touch(nail_classname, "*", "CallBack_Function")

or

register_touch(nail_classname, "player", "CallBack_Function")

avril-lavigne 07-19-2013 16:27

Re: pfn_touch need help
 
ok thanks


All times are GMT -4. The time now is 06:23.

Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.