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 |
|
|
|