Приветствую Вас Гость
Регистрация | Вход
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]

Страница 1 из 111231011»
Модератор форума: Bizunow, Romixal 
Форум » Вопросы и проблемы » Проблема - решение » Решение ваших простых проблем (В этой теме задают простые вопросы.)
Решение ваших простых проблем
BizunowДата: Четверг, 20.05.2010, 19:52 | Сообщение # 1
Генерал-майор
Группа: Модераторы
Сообщений: 279
Статус: Offline
Создал эту тему, чтобы не захламлять форум.
 
BizunowДата: Четверг, 20.05.2010, 20:03 | Сообщение # 2
Генерал-майор
Группа: Модераторы
Сообщений: 279
Статус: Offline
Итак задам первый вопрос. Я обращаюсь к объекту o_remote из объекта o_client. Если использовать вот этот код
Code

case 2:
temp_id = dll39_read_byte(0)
temp_xx = dll39_read_short(0)
temp_yy = dll39_read_short(0)
     
with(o_remote)
{
  if ID == temp_id
  {
    x = temp_xx
    y = temp_yy
  }
}
break

Вылазит ошибка, мол, в объекте o_client нет переменной ID(какой нахрен o_client когда я к o_remote обращаюсь?).
Если сделать так
Code
case 2:
temp_id = dll39_read_byte(0)
temp_xx = dll39_read_short(0)
temp_yy = dll39_read_short(0)
     
with(o_remote)
{
  if !!!!self!!!!.ID == temp_id
  {
    x = temp_xx
    y = temp_yy
  }
}

То все работает без ошибок.
P.S. Если объясните мне что к чему, то считайте проблема с передвижением в моем двиге решена
 
ФилДата: Четверг, 20.05.2010, 21:19 | Сообщение # 3
Томатный Революционер
Группа: Администраторы
Сообщений: 784
Статус: Offline
Bizunow, скорее всего я решил твою проблему) я симулировал в гм подобный случай - также появлялась ошибка. Потом я понял в чем дело. Посмотри чтобы объект к которому ты обращаешься, был поставлен в комнату раньше того, из которого ты вызываешь код)
т. сначала ставишь в комнату o_remote а потом o_client

Темку переименовал и прикрепил) надеюсь ты не против) лови + за развитие форума)


Похвалы делают людей ленивыми, ругайте друг друга. Оценку любого проекта надо начинать со слов «Так, что это за г…но?». (с)Veil
 
BizunowДата: Четверг, 20.05.2010, 23:02 | Сообщение # 4
Генерал-майор
Группа: Модераторы
Сообщений: 279
Статус: Offline
Не, o_client - это главный объект, он полюбому должен раньше всех в комнате появляться. А o_remote - это просто кукла которая получает координаты с сервера. За старание плюсик, люблю когда мне помогают
Quote
Темку переименовал и прикрепил) надеюсь ты не против) лови + за развитие форума)

Cпасибо.
 
ФилДата: Четверг, 20.05.2010, 23:08 | Сообщение # 5
Томатный Революционер
Группа: Администраторы
Сообщений: 784
Статус: Offline
Bizunow, тогда поставь проверку) мол если объект существует, тогда продолжить) объекты создаются с интервалом несколько миллисекунд, так что не будет заметно) но проблема в этом я думаю)

Похвалы делают людей ленивыми, ругайте друг друга. Оценку любого проекта надо начинать со слов «Так, что это за г…но?». (с)Veil
 
BizunowДата: Четверг, 20.05.2010, 23:19 | Сообщение # 6
Генерал-майор
Группа: Модераторы
Сообщений: 279
Статус: Offline
Ну подумаю еще, может че получится. А вообще надо сходить к DeathSoul'у
 
DeatHSoulДата: Пятница, 21.05.2010, 00:28 | Сообщение # 7
Пишет что-то
Группа: Проверенные
Сообщений: 14
Статус: Offline
Возможно, ты создаёшь эту переменную в var, но не определяешь её. Пример:
Code
var ID,test,...;
test=0
//ID=0
...
case 2:     
temp_id = dll39_read_byte(0)     
temp_xx = dll39_read_short(0)     
temp_yy = dll39_read_short(0)     
             
with(o_remote)     
{     
      if ID == temp_id     
      {     
        x = temp_xx     
        y = temp_yy     
      }     
}     
break
...

К переменным созданным в var, гм обращается даже через with. Пример:
Code
var a, ID;
a=1
ID=id
with all
if id!=ID if a=1 instance_destroy()

Это особенность гм, так как перед перемеными мы не укаываем точно где их искать и откуда обращаться к ним. Если же ты напишешь
Code
var a, ID;
a=1
ID=id
with all
if id!=id.ID if self.a=1 instance_destroy()

Ясно, что гм будет знать в каком точно экземпляре объекта искать эту переменную. И, как следствие - появится ошибка - мол такой переменной нет. Возможно у тебя таже проблема, только наоборот. Ты создал эту переменную, но не определил её и как следствие гм проверяет в первую очередь, нет ли такой переменной во списке временных переменных (это я чтобы понятней было, какие переменные он проверяет раньше), и находит её, но почему-то у ней нет значения. Таким образом, гм выдаёт ошибки мол такой переменной и вовсе нет.
Лечение: убрать переменную из var (если она там есть, конечно )
Ну это только предположение.

ЗЫ: то что гм обращается к var переменным даже через with - преимущество гм, а не недостаток

Сообщение отредактировал DeatHSoul - Пятница, 21.05.2010, 00:32
 
BizunowДата: Пятница, 21.05.2010, 00:49 | Сообщение # 8
Генерал-майор
Группа: Модераторы
Сообщений: 279
Статус: Offline
o_0 ну спасибо, мозг ты мне расплавил Короче в var у меня ее нет, поэтому, пофиг, пускай сейчас будет как будет, ведь у меня версия движка еще даже до альфы не дотягивает(хотя уже много че работает). Спасибо, +
 
DeatHSoulДата: Пятница, 21.05.2010, 01:18 | Сообщение # 9
Пишет что-то
Группа: Проверенные
Сообщений: 14
Статус: Offline
Хм, не, у меня больше предположений нет
 
BizunowДата: Пятница, 21.05.2010, 10:07 | Сообщение # 10
Генерал-майор
Группа: Модераторы
Сообщений: 279
Статус: Offline
Да переписать двиг, и не парится. У меня как какаято проблема не решаемая, так я всегда переписываю.
 
BizunowДата: Воскресенье, 23.05.2010, 19:10 | Сообщение # 11
Генерал-майор
Группа: Модераторы
Сообщений: 279
Статус: Offline
Code
var dir;
dir = point_direction(x,y,mouse_x,mouse_y)
  var i;
  for(i=0 i<900 i+=1)
  {
   var xx,yy;
   xx = x+lengthdir_x(i,dir)  
   yy = y+lengthdir_y(i,dir)

   if !place_free(xx,yy)
   {break}
    
   draw_set_blend_mode(bm_add)
   draw_line_width_color(x,y,xx,yy,2,c_black,c_yellow)
   draw_set_blend_mode(bm_normal)
  }

Это я типо мгновенную пулю делал. Но почему то ни чего не работает. Помогите понять ошибку.
 
ФилДата: Воскресенье, 23.05.2010, 20:01 | Сообщение # 12
Томатный Революционер
Группа: Администраторы
Сообщений: 784
Статус: Offline
Bizunow, а зачем ты цикл сделал? что бы мгновенная пуля "летела" ?)

Code
obj=collision_line(x,y,mouse_x,mouse_y,o_par_player,false,true);
//теперь оперируем с идентификатором job
obj.damage=15; //Смотря с какой волыны шмальнули

o_par_player - "родитель" всех игроков

зы щас попробую на гм проверить. а то это все по памяти пишу


Похвалы делают людей ленивыми, ругайте друг друга. Оценку любого проекта надо начинать со слов «Так, что это за г…но?». (с)Veil
 
ФилДата: Воскресенье, 23.05.2010, 20:22 | Сообщение # 13
Томатный Революционер
Группа: Администраторы
Сообщений: 784
Статус: Offline
Bizunow, проверил:
Code
if (collision_line(x,y,mouse_x,mouse_y,o_par_player,false,true))
{
obj=collision_line(x,y,mouse_x,mouse_y,o_par_player,false,true);
obj.damage=15;
}


Похвалы делают людей ленивыми, ругайте друг друга. Оценку любого проекта надо начинать со слов «Так, что это за г…но?». (с)Veil
 
BizunowДата: Воскресенье, 23.05.2010, 23:34 | Сообщение # 14
Генерал-майор
Группа: Модераторы
Сообщений: 279
Статус: Offline
Так если их двое рядом будет стоять то их обоих ранит. Пуля должна лететь, но очень быстро.
 
ФилДата: Понедельник, 24.05.2010, 01:29 | Сообщение # 15
Томатный Революционер
Группа: Администраторы
Сообщений: 784
Статус: Offline
Bizunow, если один на другом, то наверное да

Похвалы делают людей ленивыми, ругайте друг друга. Оценку любого проекта надо начинать со слов «Так, что это за г…но?». (с)Veil
 
Форум » Вопросы и проблемы » Проблема - решение » Решение ваших простых проблем (В этой теме задают простые вопросы.)
Страница 1 из 111231011»
Поиск:
Хостинг от uCoz