Możesz spróbować to zrobić w taki sposób ale nie obiecuję, że będzie działał.
Dodajesz dwa eventy
register_forward(FM_CmdStart, "fw_CmdStart", 0);
register_forward(FM_AddToFullPack, "fw_addtofullpack", 1);
i zrobić np.
public fw_CmdStart( id, uc_handle, randseed ){
if( !is_user_alive(id) || !is_user_connected(id) || is_user_hltv(id) )
return FMRES_IGNORED;
floorTouching(id);
return FMRES_IGNORED;
}
I w tym floorTouching sprawdzać czy stoi na danym obiekcie.
new ground = pev(id, pev_groundentity);
+ sprawdzasz classname obiektu
new szClass[9];
pev(ground, pev_classname, szClass, sizeof(szClass) - 1 );
No i później poprzez taki argument sprawdzasz czy wszystko się zgadza:
ground != 0 && ( pev(id, pev_flags) & FL_ONGROUND ) && equal(szClass, "xyz")
i jeśli stoisz na tym obiekcie zmieniasz jakąś zmienną na true a jeśli nie to na false;
I teraz używasz addtofullpack
public fw_addtofullpack( es, e, ent, host, host_flags, player, p_set ){
poprzez classname oraz czy tamta twoja zmienna jest na true i jeśli tak to zmieniasz jego pozycję czy tam solid to musisz sprawdzić " ES_Solid " " ES_Origin "