![]() |
|
||||||||||
|
|||||
var fx_p = function (caster,n,level){ Skills.dat = [] Skills.dat['caster'] = caster; Skills.dat['n'] = n Skills.dat['level'] = level var cell cell = Map.grid[caster.y][caster.x+1] if (cell.free==1 && cell.pass != 0) { for (var i=2; i<6; i++) { cell = Map.grid[caster.y][caster.x+i] if (cell.pass == 0) break; cell.highlightCell('RA') cell.onRollOver = function() { Map.grid[caster.y][this.x].highlightCell('RA_Red') if (Map.grid[caster.y][this.x].free != 1 || Map.grid[caster.y][this.x+1].pass == 0) return; Map.grid[caster.y][this.x+1].highlightCell('RA_Red') if (Map.grid[caster.y][this.x+1].free != 1 || Map.grid[caster.y][this.x+2].pass == 0) return; Map.grid[caster.y][this.x+2].highlightCell('RA_Red') if (Map.grid[caster.y][this.x+2].free != 1 || Map.grid[caster.y][this.x+3].pass == 0) return; Map.grid[caster.y][this.x+3].highlightCell('RA_Red') } cell.onRollOut = function() { Map.grid[caster.y][this.x].highlightCell('RA') if (Map.grid[caster.y][this.x].free != 1 || Map.grid[caster.y][this.x+1].pass == 0) return; if(Math.abs(this.x-caster.x)>=5)Map.grid[caster.y][this.x+1].dehighlightCell() else Map.grid[caster.y][this.x+1].highlightCell('RA') if (Map.grid[caster.y][this.x+1].free != 1 || Map.grid[caster.y][this.x+2].pass == 0) return; if(Math.abs(this.x-caster.x)>=4)Map.grid[caster.y][this.x+2].dehighlightCell() else Map.grid[caster.y][this.x+2].highlightCell('RA') if (Map.grid[caster.y][this.x+2].free != 1 || Map.grid[caster.y][this.x+3].pass == 0) return; if(Math.abs(this.x-caster.x)>=3)Map.grid[caster.y][this.x+3].dehighlightCell() else Map.grid[caster.y][this.x+3].highlightCell('RA') } cell.onPress = function () { var n = Skills.dat['n'] var level = Skills.dat['level'] Skills.skills[n]['fx_base'].call(Skills.dat['caster'], Skills.dat['caster'], this,n, level) } if (cell.free != 1) break; } } cell = Map.grid[caster.y][caster.x-1] if (cell.free!=0 && cell.pass != 0) { for (var i=2; i<6; i++) { cell = Map.grid[caster.y][caster.x-i] if (cell.pass == 0) break; cell.highlightCell('RA') cell.onRollOver = function() { Map.grid[caster.y][this.x].highlightCell('RA_Red') if (Map.grid[caster.y][this.x].free != 1 || Map.grid[caster.y][this.x-1].pass == 0) return; Map.grid[caster.y][this.x-1].highlightCell('RA_Red') if (Map.grid[caster.y][this.x-1].free != 1 || Map.grid[caster.y][this.x-2].pass == 0) return; Map.grid[caster.y][this.x-2].highlightCell('RA_Red') if (Map.grid[caster.y][this.x-2].free != 1 || Map.grid[caster.y][this.x-3].pass == 0) return; Map.grid[caster.y][this.x-3].highlightCell('RA_Red') } cell.onRollOut = function() { Map.grid[caster.y][this.x].highlightCell('RA') if (Map.grid[caster.y][this.x].free != 1 || Map.grid[caster.y][this.x-1].pass == 0) return; if(Math.abs(caster.x-this.x)>=5)Map.grid[caster.y][this.x-1].dehighlightCell() else Map.grid[caster.y][this.x-1].highlightCell('RA') if (Map.grid[caster.y][this.x-1].free != 1 || Map.grid[caster.y][this.x-2].pass == 0) return; if(Math.abs(caster.x-this.x)>=4)Map.grid[caster.y][this.x-2].dehighlightCell() else Map.grid[caster.y][this.x-2].highlightCell('RA') if (Map.grid[caster.y][this.x-2].free != 1 || Map.grid[caster.y][this.x-3].pass == 0) return; if(Math.abs(caster.x-this.x)>=3)Map.grid[caster.y][this.x-3].dehighlightCell() else Map.grid[caster.y][this.x-3].highlightCell('RA') } cell.onPress = function () { var n = Skills.dat['n'] var level = Skills.dat['level'] Skills.skills[n]['fx_base'].call(Skills.dat['caster'], Skills.dat['caster'], this,n, level) } if (cell.free == 0) break; } } cell = Map.grid[caster.y+1][caster.x] if (cell.free!=0 && cell.pass != 0) { for (var i=2; i<6; i++) { cell = Map.grid[caster.y+i][caster.x] if (cell.pass == 0) break; cell.highlightCell('RA') cell.onRollOver = function() { Map.grid[this.y][caster.x].highlightCell('RA_Red') if (Map.grid[this.y][caster.x].free != 1 || Map.grid[this.y+1][caster.x].pass == 0) return; Map.grid[this.y+1][caster.x].highlightCell('RA_Red') if (Map.grid[this.y+1][caster.x].free != 1 || Map.grid[this.y+2][caster.x].pass == 0) return; Map.grid[this.y+2][caster.x].highlightCell('RA_Red') if (Map.grid[this.y+2][caster.x].free != 1 || Map.grid[this.y+3][caster.x].pass == 0) return; Map.grid[this.y+3][caster.x].highlightCell('RA_Red') } cell.onRollOut = function() { Map.grid[this.y][caster.x].highlightCell('RA') if (Map.grid[this.y][caster.x].free != 1 || Map.grid[this.y+1][caster.x].pass == 0) return; if(Math.abs(this.y-caster.y)>=5)Map.grid[this.y+1][caster.x].dehighlightCell() else Map.grid[caster.y+this.y+1][caster.x].highlightCell('RA') if (Map.grid[this.y+1][caster.x].free != 1 || Map.grid[this.y+2][caster.x].pass == 0) return; if(Math.abs(this.y-caster.y)>=4)Map.grid[this.y+2][caster.x].dehighlightCell() else Map.grid[caster.y+this.y+2][caster.x].highlightCell('RA') if (Map.grid[this.y+2][caster.x].free != 1 || Map.grid[this.y+3][caster.x].pass == 0) return; if(Math.abs(this.y-caster.y)>=3)Map.grid[this.y+3][caster.x].dehighlightCell() else Map.grid[caster.y+this.y+3][caster.x].highlightCell('RA') } cell.onPress = function () { var n = Skills.dat['n'] var level = Skills.dat['level'] Skills.skills[n]['fx_base'].call(Skills.dat['caster'], Skills.dat['caster'], this,n, level) } if (cell.free == 0) break; } } cell = Map.grid[caster.y-i][caster.x] if (cell.free!=0 && cell.pass != 0) { for (var i=2; i<6; i++) { cell = Map.grid[caster.y-i][caster.x] if (cell.pass == 0) break; cell.highlightCell('RA') cell.onRollOver = function() { Map.grid[this.y][caster.x].highlightCell('RA_Red') if (Map.grid[this.y][caster.x].free != 1 || Map.grid[this.y-1][caster.x].pass == 0) return; Map.grid[this.y-1][caster.x].highlightCell('RA_Red') if (Map.grid[this.y-1][caster.x].free != 1 || Map.grid[this.y-2][caster.x].pass == 0) return; Map.grid[this.y-2][caster.x].highlightCell('RA_Red') if (Map.grid[this.y-2][caster.x].free != 1 || Map.grid[this.y-3][caster.x].pass == 0) return; Map.grid[this.y-3][caster.x].highlightCell('RA_Red') } cell.onRollOut = function() { Map.grid[this.y][caster.x].highlightCell('RA') if (Map.grid[this.y][caster.x].free != 1 || Map.grid[this.y-1][caster.x].pass == 0) return; if(Math.abs(caster.y-this.y)>=5)Map.grid[this.y-1][caster.x].dehighlightCell() else Map.grid[this.y-1][caster.x].highlightCell('RA') if (Map.grid[this.y-1][caster.x].free != 1 || Map.grid[this.y-2][caster.x].pass == 0) return; if(Math.abs(caster.y-this.y)>=4)Map.grid[-this.y-2][caster.x].dehighlightCell() else Map.grid[this.y-2][caster.x].highlightCell('RA') if (Map.grid[this.y-2][caster.x].free != 1 || Map.grid[this.y-3][caster.x].pass == 0) return; if(Math.abs(caster.y-this.y)>=3)Map.grid[this.y-3][caster.x].dehighlightCell() else Map.grid[this.y-3][caster.x].highlightCell('RA') } cell.onPress = function () { var n = Skills.dat['n'] var level = Skills.dat['level'] Skills.skills[n]['fx_base'].call(Skills.dat['caster'], Skills.dat['caster'], this,n, level) } if (cell.free == 0) break; } } } Похоже что компилятору нехватает памяти, если я закоменчу 1 из 4 то все пашет. Хелп! не сталкивался раньше с таким ![]() |
|
|||||
|
Что-то ужасающее.
Теоретически - вы СТОЛЬКО всего в объект пихаете - что для его представления именно и не хватает объема памяти.... Для единичного объекта. Опишите словами - что этот ваш код пытается делать? Последний раз редактировалось dark256; 08.10.2011 в 14:34. |
|
|||||
|
Это подготовка скилла, на самом деле ничего страшного нету. выделяет в 4 направлениях клетки, если нажать на одну из них - вызовется скилл. так же если на клетку навести мышку, то она засветится, увести перестанет светиться
|
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Avrilka, а вы знаете, что такое ссылка на объект? За каким фигом вы ломаете клавиатуру, несколько сотен раз копируя выражение «Map.grid[this.y][caster.x]» и подобные, в геометрической прогрессии ухудшая читабельность кода?
|
|
|||||
|
буду краток
модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
|
Очень страшно.
А по теме - это гайзенбаг. Пару раз встречался с такими особенно на больших проектах. Помогает Delete ASO files и другие танцы с бубнами.
__________________
Отряд Котовскага |
|
|||||
|
Начнем с того что это не совсем мой код
А под ссылкой вы имеете ввиду То да, я знаю. Как раз она тут и обьявляется: а делать: cell1= Map.grid[caster.y][caster.x-1] cell2 = Map.grid[caster.y][caster.x-2] cell3 = Map.grid[caster.y][caster.x-3] cell4 = Map.grid[caster.y][caster.x-4] Добавлено через 1 минуту А по ошибке я так понял, что слишком неоптимизированное выделение так? |
![]() |
![]() |
Часовой пояс GMT +4, время: 21:29. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|