如何指定一個物件循環發出光環??

Home Home
引用 | 編輯 glay2005
2012-03-19 17:58
樓主
推文 x0

圖 1.


參考如上圖:
請問要如何指定單一物件能夠固定時間持續發出光環的語法呢??表情    
或者有任何一個相似的插件有這種我想要的物件光圈效果希望能夠私信參考一下表情

獻花 x0
引用 | 編輯 HiNess
2012-03-19 19:46
1樓
  
你應該是說set_user_rendering吧...

複製程式
/* Sets player rendering mode. */
native set_user_rendering(index, fx = kRenderFxNone, r = 255, g = 255, b = 255, render = kRenderNormal, amount = 16);


獻花 x0
引用 | 編輯 glay2005
2012-03-19 20:49
2樓
  
下面是引用 HiNess 於 2012-03-19 19:46 發表的 : 到引言文
你應該是說set_user_rendering吧...

複製程式
/* Sets player rendering mode. */
native set_user_rendering(index, fx = kRenderFxNone, r = 255, g = 255, b = 255, render = kRenderNormal, amount = 16);
那張圖是代表模型範例而已0.0
我是想額外再弄個光圈特效套用到一個模型物件然後每秒執行一次( entity_set_model
但是我不曉得要如何把光圈語法寫進model...表情

獻花 x0
引用 | 編輯 andyt0621
2012-03-19 20:55
3樓
  
複製程式
set_task(間隔秒數, "create_blast", id, _, _, "b")


public create_blast(id)
{
 new Float:originF[3]
 pev(id, pev_origin, originF)

 // Largest ring (大的光環)
 engfunc(EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, originF, 0)
 write_byte(TE_BEAMCYLINDER) // TE id (TE 的代碼)
 engfunc(EngFunc_WriteCoord, originF[0]) // x (X 座標)
 engfunc(EngFunc_WriteCoord, originF[1]) // y (Y 座標)
 engfunc(EngFunc_WriteCoord, originF[2]) // z (Z 座標)
 engfunc(EngFunc_WriteCoord, originF[0]) // x axis (X 軸)
 engfunc(EngFunc_WriteCoord, originF[1]) // y axis (Y 軸)
 engfunc(EngFunc_WriteCoord, originF[2]+840) // z axis (Z 軸)640
 write_short(g_shockwaveSpr) // sprite (Sprite 物件代碼)
 write_byte(0) // startframe (幀幅開始)
 write_byte(0) // framerate (幀幅頻率)
 write_byte(3) // life (時間長度)
 write_byte(30) // width (寬度)
 write_byte(0) // noise (響聲)
 write_byte(130) // red (顏色 R)
 write_byte(139) // green (顏色 G)
 write_byte(253) // blue (顏色 B)
 write_byte(200) // brightness (顏色亮度)
 write_byte(0) // speed (速度)
 message_end()
}
是這樣嗎 0.0?

獻花 x0
引用 | 編輯 glay2005
2012-03-19 21:07
4樓
  
現在不曉得要如何套用ITEM_MODEL表情      
然後我想問如何利用create_blast寫一個if判斷是否為ITEM_MODEL來執行create_blast??

獻花 x0
引用 | 編輯 andyt0621
2012-03-19 21:53
5樓
  
下面是引用 glay2005 於 2012-03-19 21:07 發表的 : 到引言文
這是我部分的內容,現在不曉得要如何套用ITEM_MODEL表情      
然後我想問如何利用create_blast寫一個if判斷是否為ITEM_MODEL來執行create_blast??
 
ITEM_MODEL  <--指entity嗎 -.-?
如果不是人物..參考zp // Infection Bomb: Green Blast
開頭是這句的

engfunc(EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, originF, 0)
(是問這個嗎?)


判斷那裡..
你用 
EV_SZ_classname 不就可以嗎


獻花 x1
引用 | 編輯 glay2005
2012-03-19 23:09
6樓
  
下面是引用 andyt0621 於 2012-03-19 21:53 發表的 : 到引言文

 
ITEM_MODEL  <--指entity嗎 -.-?
如果不是人物..參考zp // Infection Bomb: Green Blast
開頭是這句的

engfunc(EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, originF, 0)
(是問這個嗎?)


判斷那裡..
你用 
EV_SZ_classname 不就可以嗎


複製程式
public item_ring(entity)
{
    new classname[32]
    pev(entity,pev_classname,classname,31)

    if (!equal(classname,"ITEM_MODEL"))  return;

    // Get player origin
    static Float:originF[3]
    pev(entity, pev_origin, originF)

    engfunc(EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, originF, 0)
    write_byte(TE_BEAMCYLINDER)
    engfunc(EngFunc_WriteCoord, originF[0]) // x (X 座標)
    engfunc(EngFunc_WriteCoord, originF[1]) // y (X 座標)
    engfunc(EngFunc_WriteCoord, originF[2]) // z (Y 座標)
    engfunc(EngFunc_WriteCoord, originF[0]) // x axis (X 軸)
    engfunc(EngFunc_WriteCoord, originF[1]) // y axis (Y 軸)
    engfunc(EngFunc_WriteCoord, originF[2]+50.0) // z axis (Z 軸)
    write_short(g_beacon_Sprite)
    write_byte(0)// startframe (幀幅開始)  
    write_byte(1)// framerate (幀幅頻率)  
    write_byte(30)//life (時間長度)
    write_byte(5)// width (寬度)
    write_byte(0)// noise (響聲)
    write_byte(100)// red (顏色 R) 
    write_byte(100)// green (顏色 G)
    write_byte(0)// blue (顏色 B)
    write_byte(100)// brightness (顏色亮度)
    write_byte(1)// speed (速度)
    message_end()
    set_task(2.0, "item_ring", entity)
}

public DROP_ITEM(victim)
{
       entity_set_string(item, EV_SZ_classname, ITEM_NAME);
       entity_set_int(item, EV_INT_solid, SOLID_TRIGGER);
             
       new Float:vAim[3], Float:vOrigin[3];
       entity_get_vector(victim, EV_VEC_origin, vOrigin);
       VelocityByAim(victim, random_num(2, 4), vAim);
       vOrigin[0] += 50.0;
       vOrigin[1] += vAim[1];
       vOrigin[2] += 30.0;
       entity_set_model(item, ITEM_MODEL);
       entity_set_size(item, Float:{-2.5, -2.5, -1.5}, Float:{2.5, 2.5, 1.5});
       entity_set_int(item, EV_INT_movetype, 6);
       entity_set_vector(item, EV_VEC_origin, vOrigin);
       item_ring(item)

}


不過好像無效表情    



獻花 x0
引用 | 編輯 ChaosX
2012-03-20 01:47
7樓
  
好複雜..沒一個字看得懂得...
簡單來說就是做個東西丟在地上會發光這樣嗎?

那你得先用sma做個"物件"
宣告 名子 大小 編號 類型 等等

然後指定模組給那物件
之後要寫個"變數"用來記住
那物件的"名子"和"編號"或"其他資料"

然後寫一個可以重複執行的function
用剛剛的"變數"抓出物件的資料
然後導入放光圈之類的式子讓他去執行就可以了

獻花 x1
引用 | 編輯 glay2005
2012-03-20 13:25
8樓
  

圖 1.


下面是引用 ChaosX 於 2012-03-20 01:47 發表的 : 到引言文
好複雜..沒一個字看得懂得...
簡單來說就是做個東西丟在地上會發光這樣嗎?

那你得先用sma做個"物件"
宣告 名子 大小 編號 類型 等等

然後指定模組給那物件
之後要寫個"變數"用來記住
那物件的"名子"和"編號"或"其他資料"

然後寫一個可以重複執行的function
用剛剛的"變數"抓出物件的資料
然後導入放光圈之類的式子讓他去執行就可以了
原來如此!   
謝謝已經OK了^^表情

獻花 x0