csoken
|
分享:
▼
x0
|
[1.6][插件] 如何寫升級插件+獨立的遊戲幣
(懇求各位大大指點迷津交小弟如何寫)
假如說: 我的血量100 升一級 +5的血量 我的攻擊力100% 升一級 +0.5的攻擊力 我的速度 每升級一次增加10速度提升 ------------------以上是升級插件寫法,以下是獨立遊戲幣寫法---------- 如何寫像子彈包 跟 監獄幣的寫法 我想寫 殺1人增加 10遊戲幣 同一回合殺死2人增加25遊戲幣 同一回合殺死3人增加40遊戲幣 ps:遊戲幣我要運用在商店跟升級 所以要包含在一個sma裡面 +10速度會太少嗎...需要+50才會感覺到效果嗎.... ------------------------------------------------------------------------------------- 有人能教我嗎...
[ 此文章被csoken在2011-11-27 21:27重新編輯 ]
|
Anyone who has never made a mistake has never tried anything new.
|
x0
[樓 主]
From:未知地址 | Posted:2011-11-27 00:09 |
|
|
fouury
|
分享:
▲
▼
點數: -- 假設變數 複製程式
new point[33]
new kill[33]
複製程式
public plugin_init()
{
RegisterHam(Ham_Killed, "player", "fw_killed") //玩家在死亡前執行
register_event("HLTV", "event_round_start", "a", "1=0", "2=0")//刷新回合(時)執行
}
複製程式
public fw_killed(victim, attacker, shouldgib)
{
if(attacker)//如果是攻擊者(殺人)
{
kill[attacker]++ //殺人數+1
new player_kills
player_kills = kill[attacker]
switch (player_kills)
{
case 1: //如果殺人數為1 依此類推
{
point[attacker] += 10 //點數加10 依此類推
client_print(attacker, print_center, "你目前的點數為%d", point[attacker])
client_print(attacker, print_chat, "你目前的殺人數為%d 點數加10", kill[attacker])
}
case 2:
{
point[attacker] += 25
client_print(attacker, print_center, "你目前的點數為%d", point[attacker])
client_print(attacker, print_chat, "你目前的殺人數為%d 點數加25", kill[attacker])
}
case 3:
{
point[attacker] += 40
client_print(attacker, print_center, "你目前的點數為%d", point[attacker])
client_print(attacker, print_chat, "你目前的殺人數為%d 點數加40", kill[attacker])
}
}
}
}
public event_round_start() //回合刷新時
{
for (new id = 1; id <= 32; id++) //設立一個迴圈
{
kill[id] = 0 //重置殺人數
client_print(id, print_center, "你目前的殺人數已重製為0")
}
}
有錯誤請告知. 希望別只是看 要能了解喔0.0
[ 此文章被fouury在2011-11-27 21:13重新編輯 ]
|
|
x0
[1 樓]
From:IANA | Posted:2011-11-27 20:39 |
|
|
csoken
|
分享:
▲
▼
[quote] 下面是引用 fouury 於 2011-11-27 20:39 發表的 : 點數: -- 假設變數 複製程式
new point[33]
.......[/quote]
大大
這個地方你好像出錯了...不知道是不是
[code]public fw_killed(victim, attacker, shouldgib)
{
if(attacker)//如果是攻擊者(殺人)
{
kill[attacker]++ //殺人數+1
new player_kills
player_kills = kill[attacker]
switch (player_kills)
{
case 1: //如果殺人數為1 依此類推
{
point[attacker] += 10 //點數加10 依此類推
client_print(attacker, print_center, "你目前的點數為%d", point[attacker])
client_print(attacker, print_chat, "你目前的殺人數為%d 點數加10", kill[attacker])
}
case 2:
{
point[attacker] += 25
client_print(attacker, print_center, "你目前的點數為%d", point[attacker])
client_print(attacker, print_chat, "你目前的殺人數為%d 點數加25", kill[attacker])
}
case 3:
{
point[attacker] += 40
client_print(attacker, print_center, "你目前的點數為%d", point[attacker])
client_print(attacker, print_chat, "你目前的殺人數為%d 點數加40", kill[attacker])
}
}
}
}
你有寫 player_kills = kill[attacker] 可是沒寫 point[attacker]
|
Anyone who has never made a mistake has never tried anything new.
|
x0
[3 樓]
From:未知地址 | Posted:2011-11-28 21:12 |
|
|
csoken
|
分享:
▲
▼
下面是引用 fouury 於 2011-11-28 22:07 發表的 :
我讓player_kills = kill[attacker] // <------(此index為attacker攻擊者)
只是為了方便套用在下面偵測kill(變數)的數值為何 再依序執行事件~
point[index]只是用來當做計算點數為多少的變數 所以跟以上是沒有關係的^^
我自己測試轉檔是沒有外在的錯誤~ 至於實際測試插件效用我就沒有測試了0.0 ...那我為啥錯誤了 我貼給你看一下請大大過目 複製程式
#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>
#include <amxmod>
new point[33]
new kill[33]
public plugin_init()
{
RegisterHam(Ham_Killed, "player", "fw_killed") //玩家在死亡前執行
register_event("HLTV", "event_round_start", "a", "1=0", "2=0")//刷新回合(時)執行
}
public fw_killed(victim, attacker, shouldgib)
{
if(attacker)//如果是攻擊者(殺人)
{
kill[attacker]++ //殺人數+1
new player_kills
player_kills = kill[attacker]
switch (player_kills)
{
case 1: //如果殺人數為1 依此類推
{
point[attacker] += 10 //點數加10 依此類推
client_print(attacker, print_center, "你目前的點數為%d", point[attacker])
client_print(attacker, print_chat, "你目前的殺人數為%d 點數加10", kill[attacker])
}
case 2:
{
point[attacker] += 25
client_print(attacker, print_center, "你目前的點數為%d", point[attacker])
client_print(attacker, print_chat, "你目前的殺人數為%d 點數加25", kill[attacker])
}
case 3:
{
point[attacker] += 40
client_print(attacker, print_center, "你目前的點數為%d", point[attacker])
client_print(attacker, print_chat, "你目前的殺人數為%d 點數加40", kill[attacker])
}
}
}
}
public event_round_start() //回合刷新時
{
for (new id = 1; id <= 32; id++) //設立一個迴圈
{
kill[id] = 0 //重置殺人數
client_print(id, print_center, "你目前的殺人數已重製為0")
}
}
至於#這個部份是我額外加的...不知道是不是這個的問題 複製程式
#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>
#include <amxmod>
下面是引用 zxzyman 於 2011-11-28 22:08 發表的: 實在太深奧了
我連基礎都不會...
看來我要學習更多了 0..0.......我也不太會多看看sma多學習.這是很多大大教我的方法
|
Anyone who has never made a mistake has never tried anything new.
|
x0
[6 樓]
From:未知地址 | Posted:2011-11-28 23:22 |
|
|
|