25 12
發新話題
打印

AMXX教學 - 第三章-amxx中各種變量(聖誕一日一篇amxx教學)

[Close]

AMXX教學 - 第三章-amxx中各種變量(聖誕一日一篇amxx教學)

前一章,我們說到了如何產生一條command來令玩家使用後,會發生事件

今日,我們將探討如何修改人體之數值

今天我們將探討血量,護甲,重力,金錢

我們可以利用例子說明:

==========================================script=========================================================

#include <amxmodx>
#include <cstrike>
#include <fun>/*其實我地include既野就係一本書,入邊可以搵到好多語法,如果你要用到個個語法,你就include本書*/

#define PLUGIN "djai_tuotr3"
#define VERSION "3.0"
#define AUHTOR "djai"

public plugin_init()
{
       register_plugin(PLUGIN, VERSION, AUTHOR)
       register_concmd( "say /buyhp_ap_grav","plus_hp_ap_grav")/*在前一章曾經這裡還有兩個段位,其實是可有可無的,當沒有時,任何人也可以使用這個cmd, 另外, 在amxx- pawn語言中,打上 // , amxx會不理會後面的文字,即時說,//後的文字不是程式的內容,但是須注意, //只是不理會在它後面的文字,而且是在那一行內, 如果要不理會一段文字,我們可以用/*文字......*/*/
}

public plus_hp_ap_grav(id)
{
       new cl_money = cs_get_user_money(id)/*開啟一樣新既野叫cl_money,佢就等於個個玩家既金錢(cs_get_user_money())[cstrike既野]*/
       if( cl_money > 4500 )//如果金錢大過4500
       {
                client_print(id, print_chat, "[d仔插件]你已經利用4500購買了血量,護甲,重力")
                set_user_armor( id, 150 )//護甲變左150,唔係增加150[fun既野]
                set_user_gravity( id, 0.5 )//重力變為400, 1.0=800, 自己計數=.=[fun既野]
                set_user_health( id, 150 )//血量變左150,唔係增加150[fun既野]
       }
       else//如果上面既所有if都唔達成,即係金錢唔大過4500,就做下面既野      
       {
                client_print(id, print_chat, "[d仔插件]你沒有足夠金錢,收旗啦")
       }
}
==========================================script=========================================================
我們今次使用register_concmd,並不是register_clcmd
分別何在?
register_concmd:任何人打既野,即係"say /buyhp_ap_grav" = 講/buyhp_ap_grav = 都會發生事件(不過HLDS都會,不過加血量e啲一定唔得,即係無反應,因為HLDS唔係一個entity<<遲啲先講, 宜家講你一定唔明
register_clcmd:任何人打既野,即係"say /buyhp_ap_grav" = 講/buyhp_ap_grav = 都會發生事件,不過 HLDS一定唔會!

所以
我建議寫script既時候,用register_concmd係好啲= =

今日唔想寫咁多 , 唔明就問啦

amx官網解釋:
set_user_health - Sets player health.
Syntax:
     set_user_health ( index, health )
Type:
    Native


set_user_armor - Sets player armor
Syntax:
     set_user_armor ( index, armor )
Type:
    Native

set_user_gravity - Sets users gravity
Syntax:
     set_user_gravity ( index, Float:gravity = 1.0 )<<<float即係小數,即係e個位唔該要打小數, 1.0 = 800, 0.5 =400 , 不過好似0.0 都係會等於800(我記得)
Type:
    Native


register_concmd - Registers function which will be called from any console
Syntax:
     register_concmd ( const cmd[],const function[],flags=-1, info[]="" )
Type:
    Native
               





可唔可以幫手推下..

[ 本帖最後由 davidto1995 於 2010-12-24 13:35 編輯 ]
久別的VLAN

TOP

會唔會易得制

TOP

無野寫......
久別的VLAN

TOP

引用:
原帖由 davidto1995 於 2010-12-24 13:39 發表
無野寫......
post下d指令集-_-

TOP

例如咩指令
久別的VLAN

TOP

十卜十卜
d仔快d開場- -   一月la = =

TOP

挑  DAVID又話唔會教人SMA     =.=

TOP

教埋register_srvcmd啦 順便教我entity_set_vector同埋force_use點用

TOP

我見無野做先教....
久別的VLAN

TOP

d仔 我要學radom(唔知有冇打錯)

TOP

好 下次教random
久別的VLAN

TOP

引用:
原帖由 manchunho741 於 24-12-2010 02:18 PM 發表
d仔 我要學radom(唔知有冇打錯)
public plugin_init()
{
     register_plugin( PLUGIN, VERSION, AUTHOR )
     register_clcmd("say /demo","demo")
}

public demo(id)
{
     new random = random_num(0,9) //這個代表有多少個機會(從0至9抽一個數字) 這個代表有10次機會
     if(!is_user_alive(id))     return PLUGIN_HANDLED // 當他不是在生存時, 不讓他抽
     switch (random)
     {
           case 0: // 如果抽中的數字為0
           {
                 cs_set_user_money(id,16000) // 玩家金錢變16000美元
                 client_print(id,print_chat,"你獲得了16000美元。")
           }
           case 1: // 如果抽中的數字為1
           {
                 set_user_health(id,30000) // 玩家的血變成30000
                 client_print(id,print_chat,"你變成了血牛...")
           }
           default: //沒有抽中
           {
                 client_print(id,print_chat,"下次再抽吧...")
           }
     }
     return PLUGIN_HANDLED
}

TOP

引用:
原帖由 tony987852 於 2010-12-24 16:11 發表

public plugin_init()
{
     register_plugin( PLUGIN, VERSION, AUTHOR )
     register_clcmd("say /demo","demo")
}

public demo(id)
{
     new random = random_num(0,9) //這個代表有多少個機會(從0至9抽一 ...
如果你個個 係咪打/demo就有得抽

TOP

回復 13# 的帖子

睇下D仔個序章啦

TOP

引用:
原帖由 manchunho741 於 2010-12-24 14:18 發表
d仔 我要學radom(唔知有冇打錯)
已經打錯左,英文唔好唔好打英文,係random先岩。

TOP

 25 12
發新話題