找回密码
 立即注册

QQ登录

只需一步,快速开始

楼主: caffeine

[已解决] 如何定义这种动态数组

[复制链接]

该用户从未签到

发表于 2008-10-26 16:19:27 | 显示全部楼层
amxmodx\scripting\include\cellarray.inc
各个函数都附有解释

该用户从未签到

发表于 2008-11-20 20:00:17 | 显示全部楼层
这个好像是不支持指针的,所以没法动态分配
做个小插件还是要注意节省内存的,所以别用那么大的数组。。。

该用户从未签到

 楼主| 发表于 2008-11-26 19:23:42 | 显示全部楼层

回复 13# fantasist 的帖子

1.80以前的AMXX不支持动态数组,最新的版本可以了,就像NB说的。不过还是最开始就定义3601好理解一点。

该用户从未签到

发表于 2008-11-26 19:40:41 | 显示全部楼层
看不懂。

该用户从未签到

 楼主| 发表于 2012-10-12 11:37:28 | 显示全部楼层
已解决,见附件timer.sma或kzmain.sma
回复 鲜花 鸡蛋

使用道具 举报

该用户从未签到

发表于 2012-10-12 18:56:54 | 显示全部楼层
本帖最后由 spode 于 2012-10-12 19:03 编辑

amxx181起 有动态数组组件了,
打头的函数是ArrayCreate, ArrayDestroy
对应的模块是cellarray
但是PAWN不支持结构体,但美中不足的是数组组件仅支持cell型
你得灵活应变
我可以给你一份以前写过的代码,你可以参考下

当然,就AMXX层面,我是可以在这给你指导的
回复 鲜花 鸡蛋

使用道具 举报

该用户从未签到

发表于 2012-10-13 02:48:09 | 显示全部楼层
四年前的问题都能被翻出来,orz
插件代码下载不了,但再看楼主的问题,需要指出:
1. 不推荐使用三维数组
2. 你对每个用户都分配3601或是36001个什么东西,我并不觉得任何CS插件功能需要这么大空间,应该检讨原先的设计。
回复 鲜花 鸡蛋

使用道具 举报

该用户从未签到

 楼主| 发表于 2012-10-13 07:50:49 | 显示全部楼层
本帖最后由 caffeine 于 2012-10-13 08:06 编辑

相关插件代码如下:
  1.                 pev(id,pev_origin,origin)
  2.                 pev(id,pev_v_angle,angle)
  3.                 ArrayPushArray(fPlayerOrigin[id][iPlayerIndex[id]],origin)
  4.                 ArrayPushArray(fPlayerAngle[id][iPlayerIndex[id]],angle)
复制代码
  1.                                 ArrayGetArray(fPlayerOrigin[iViewerID[id]][iViewerIndex[id]], iPlayerNum[id][iPlayerIndex[id]], ViewOrigin)
  2.                                 ArrayGetArray(fPlayerAngle[iViewerID[id]][iViewerIndex[id]], iPlayerNum[id][iPlayerIndex[id]], ViewAngle)
  3.                                 set_pev(id, pev_origin, ViewOrigin)
  4.                                 set_pev(id, pev_angles, ViewAngle)
  5.                                 set_pev(id, pev_fixangle, 1)
复制代码

ArrayPushArray() 设置
ArrayGetArray() 读取


原先的问题出在这里
for(new id=1;id<=33;id++)
改成下面这样就好了
for(new id=1;id<33;id++)

回复 鲜花 鸡蛋

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表