Добавлен
не пойму что за проблема но вот на скрине,мож кто сталкивался

Принятый ответ

во первых используй форматирование
во вторых
КТО УЧИЛ ВАС ПИСАТЬ КОД ТРАНСЛИТОМ
кинь j файл карты лучше
вообще код ужасен
почитай про переменные хотя бы
ошибка может быть в этом фрагменте
nocnoyslon[i]=nocnoyslon[i+1]
nocnoyslon[i+1].destroy()
ибо этот код полный бред
зачем присваивать
nocnoyslon[i]=nocnoyslon[i+1]
если мы удаляем потом объект лежащий в ячейке i+1
а значит удалился и объект лежащий в ячейке i ибо это один и тот же объект т.к. мы его туда поместили
короче проблема в полном не понимании таких вещей как переменная и объект
поможет только чтение статей по указанным темам
0
17
8 лет назад
0
А где скрин?
0
17
8 лет назад
0
Nikson12:
А где скрин?
Сори опять опера глюканула
Загруженные файлы
0
23
8 лет назад
0
ledoed, проблема в отсутствии проблемы.
0
17
8 лет назад
0
SomeFire:
ledoed, проблема в отсутствии проблемы.
а моно по подробней для нуба
Первый каст проходит как надо а второй не запускается выдавая эту ошибку
0
23
8 лет назад
0
Каст чего? С какими параметрами? Карту в студию.
0
32
8 лет назад
0
Чето в структуре спелла наделал не так...
Код или карту в студию...
2
17
8 лет назад
2
дело в коде так запускаю и выкл его
NocnoySlon A = NocnoySlon.create()
A.b=true
A.NochnoyBoy(u,'e004',330,200,100,25)
TriggerSleepAction(5)
A.b=false
A.destroy()
А вот и сам код структуры
(
struct NocnoySlon{
unit u
int speed =10
float rad=0
int s=0,icount=0,raznica=0
unit array shar[100]
effect ef =null
int destr = 0,lifeunit=0,regshar=5
int rcount=0,damage=0,typeunit=0
bool b = true
void Destroy(){
int i = 0
if(.destr>.lifeunit){
RemoveUnit(.shar[i])
.icount--
while(i<.icount){
.shar[i]=.shar[i+1]
.shar[i+1]=null
i++
}
.destr=.destr-.regshar-1
}
.destr++
i=0
}
void Remove(){
if(.icount<0){
RemoveUnitSlon(.u)
}
}
void Sosdanie(){
if(b){
if(.s>regshar&&.icount<.rcount){
SetUnitAnimation(.u,"attack")
.shar[.icount++]=CreateUnit(GetOwningPlayer(.u),.typeunit,GetUnitX(u)+50*Cos((GetUnitFacing(.u))*0.0174),GetUnitY(.u)+50*Sin((GetUnitFacing(.u))*0.0174),(GetUnitFacing(.u))+.raznica)
.s=0
.raznica+=GetRandomInt(10,20)
if(.raznica>60){.raznica=-60}
}
.s++
}
Destroy()
Remove()
}
void Mahach(){
int i = 0
group g = CreateGroup()
unit n = null
while(i<.icount){
SetUnitX(.shar[i],GetUnitX(.shar[i])+speed*Cos(GetUnitFacing(.shar[i])*0.0174))
SetUnitY(.shar[i],GetUnitY(.shar[i])+speed*Sin(GetUnitFacing(.shar[i])*0.0174))
GroupEnumUnitsInRange(g,GetUnitX(.shar[i]),GetUnitY(.shar[i]),50,null)
do {
n = FirstOfGroup(g)
exitwhen n == null
if(IsUnitEnemy(n,GetOwningPlayer(.shar[i]))==true&&GetUnitState(n,UNIT_STATE_LIFE)>0&&IsUnitIdType(GetUnitTypeId(n),UNIT_TYPE_MAGIC_IMMUNE)==false){
UnitDamageTarget(.shar[i],n,.damage,true,false,ATTACK_TYPE_MAGIC,DAMAGE_TYPE_MAGIC,WEAPON_TYPE_WHOKNOWS)
.ef=AddSpecialEffect("Fire1.mdx",GetUnitX(.shar[i]),GetUnitY(.shar[i]))
DestroyEffect(ef)
ef=null
RemoveUnit(.shar[i])
}
GroupRemoveUnit(g,n)
} whilenot(n==null)
i++
}
i=0
DestroyGroup(g)
g=null
n=null
}
static void Update(){
int i=0
while(i<count){
nocnoyslon[i].Sosdanie()
nocnoyslon[i].Mahach()
i++
}
if(count<=0){
DestroyTimer(taimer)
taimer=null
if (GetLocalPlayer() == Player(0)){
DisplayTextToPlayer(Player(0), 0, 0,"всё")
}
}
i=0
}
static timer taimer = null
static NocnoySlon nocnoyslon[]
static int count = 0
static void NochnoyBoy(unit u,int id,int damage,int rcount,int rad,int speed){
if(Unitproverka(u)!=-1){return}
nocnoyslon[count++] = UnitMovie1.create()
nocnoyslon[count-1].u=u
nocnoyslon[count-1].typeunit=id
nocnoyslon[count-1].damage=damage
nocnoyslon[count-1].rcount=rcount
nocnoyslon[count-1].lifeunit=rad
nocnoyslon[count-1].speed=speed
unit /idunit /damage /max idunit kol snarad/raddeistvia/speed
if(taimer==null){
taimer = CreateTimer()
TimerStart(taimer,0.025,true,function NocnoySlon.Update)
}
}
static void RemoveUnitSlon(unit u){
int i = Unitproverka(u)
if(i==-1){return}
count--
while(i<count){
nocnoyslon[i]=nocnoyslon[i+1]
nocnoyslon[i+1].destroy()
i++
}
}
static NocnoySlon Unitproverka(unit u){
int i = 0
while(i<count){
if(nocnoyslon[i].u==u){return i}
i++
}
i=0
return -1
}
}
)
0
23
8 лет назад
0
Нужно бооольше золота форматирования.
0
28
8 лет назад
0
во первых используй форматирование
во вторых
КТО УЧИЛ ВАС ПИСАТЬ КОД ТРАНСЛИТОМ
кинь j файл карты лучше
вообще код ужасен
почитай про переменные хотя бы
ошибка может быть в этом фрагменте
nocnoyslon[i]=nocnoyslon[i+1]
nocnoyslon[i+1].destroy()
ибо этот код полный бред
зачем присваивать
nocnoyslon[i]=nocnoyslon[i+1]
если мы удаляем потом объект лежащий в ячейке i+1
а значит удалился и объект лежащий в ячейке i ибо это один и тот же объект т.к. мы его туда поместили
короче проблема в полном не понимании таких вещей как переменная и объект
поможет только чтение статей по указанным темам
Принятый ответ
Чтобы оставить комментарий, пожалуйста, войдите на сайт.