OKStyle
| Дата: Среда, 23.02.2011, 11:52 | Сообщение # 1 |
 Архивариус
Группа: Администраторы
Зарегистрирован: 19.02.2011
Сообщений: 125
Репутация: 8
Статус: Offline
| В начало: Code new CurrentObject; new AxisOfRotation; new iteration; В OnGameModeInit: Code CurrentObject = CreateObject(....); // создаём объект В OnPlayerCommandText: Code if(!strcmp(cmd,"/rox+",true)) { new tmp[30]; tmp = strtok(cmdtext,idx); AxisOfRotation = 1; new angle = strval(tmp); iteration = angle/0.5; SetTimerEx("ObjectRotateTimer",100,iteration); return 1; } if(!strcmp(cmd,"/roy+",true)) { new tmp[30]; tmp = strtok(cmdtext,idx); AxisOfRotation = 2; new angle = strval(tmp); iteration = angle/0.5; SetTimerEx("ObjectRotateTimer",100,iteration); return 1; } if(!strcmp(cmd,"/roz+",true)) { new tmp[30]; tmp = strtok(cmdtext,idx); AxisOfRotation = 3; new angle = strval(tmp); iteration = angle/0.5; SetTimerEx("ObjectRotateTimer",100,iteration); return 1; } if(!strcmp(cmd,"/rox-",true)) { new tmp[30]; tmp = strtok(cmdtext,idx); AxisOfRotation = 4; new angle = strval(tmp); iteration = angle/0.5; SetTimerEx("ObjectRotateTimer",100,iteration); return 1; } if(!strcmp(cmd,"/roy-",true)) { new tmp[30]; tmp = strtok(cmdtext,idx); AxisOfRotation = 5; new angle = strval(tmp); iteration = angle/0.5; SetTimerEx("ObjectRotateTimer",100,iteration); return 1; } if(!strcmp(cmd,"/roz-",true)) { new tmp[30]; tmp = strtok(cmdtext,idx); AxisOfRotation = 6; new angle = strval(tmp); iteration = angle/0.5; SetTimerEx("ObjectRotateTimer",100,iteration); return 1; } В низ мода: Code forward ObjectRotateTimer(angle); public ObjectRotateTimer(angle) { if(iteration > 0) { if(AxisOfRotation == 1) { new Float:x,Float:y,Float:z; GetObjectRot(CurrentObject,x,y,z); SetObjectRot(CurrentObject,x+0.5,y,z); } else if(AxisOfRotation == 2) { new Float:x,Float:y,Float:z; GetObjectRot(CurrentObject,x,y,z); SetObjectRot(CurrentObject,x,y+0.5,z); } else if(AxisOfRotation == 3) { new Float:x,Float:y,Float:z; GetObjectRot(CurrentObject,x,y,z); SetObjectRot(CurrentObject,x,y,z+0.5); } else if(AxisOfRotation == 4) { new Float:x,Float:y,Float:z; GetObjectRot(CurrentObject,x,y,z); SetObjectRot(CurrentObject,x-0.5,y,z); } else if(AxisOfRotation == 5) { new Float:x,Float:y,Float:z; GetObjectRot(CurrentObject,x,y,z); SetObjectRot(CurrentObject,x,y-0.5,z); } else if(AxisOfRotation == 6) { new Float:x,Float:y,Float:z; GetObjectRot(CurrentObject,x,y,z); SetObjectRot(CurrentObject,x,y,z-0.5); } iteration--; } }
|
|
| |
Romanius
| Дата: Четверг, 17.03.2011, 18:08 | Сообщение # 2 |
 Рядовой
Группа: Модераторы
Зарегистрирован: 14.03.2011
Сообщений: 9
Репутация: 0
Статус: Offline
| вместо if в таких случиях используй switch
|
|
| |
Folk
| Дата: Четверг, 17.03.2011, 21:21 | Сообщение # 3 |
 Лейтенант
Группа: Проверенные
Зарегистрирован: 23.02.2011
Сообщений: 44
Репутация: 2
Статус: Offline
| Quote вместо if в таких случиях используй switch Мне всегда было интересно а зачем? Если мне так удобнее, а скорость изменится на 50 миллисекунд, да кто это заметит?
|
|
| |
SEVI4
| Дата: Пятница, 18.03.2011, 19:02 | Сообщение # 4 |
 Рядовой
Группа: Проверенные
Зарегистрирован: 24.02.2011
Сообщений: 11
Репутация: 0
Статус: Offline
| оптимизация мать хорошего кода
Come back ? yeah
|
|
| |
Folk
| Дата: Пятница, 18.03.2011, 22:49 | Сообщение # 5 |
 Лейтенант
Группа: Проверенные
Зарегистрирован: 23.02.2011
Сообщений: 44
Репутация: 2
Статус: Offline
| Пффф главное работает и ладно, а кол-во строк мне наплевать, главнео чтобы хорошо работало
|
|
| |
Romanius
| Дата: Суббота, 19.03.2011, 17:08 | Сообщение # 6 |
 Рядовой
Группа: Модераторы
Зарегистрирован: 14.03.2011
Сообщений: 9
Репутация: 0
Статус: Offline
| Quote (Folk) Пффф главное работает и ладно, а кол-во строк мне наплевать, главнео чтобы хорошо работало Теперь мне понятно, какой ты "скриптер"...
|
|
| |
Folk
| Дата: Воскресенье, 20.03.2011, 14:07 | Сообщение # 7 |
 Лейтенант
Группа: Проверенные
Зарегистрирован: 23.02.2011
Сообщений: 44
Репутация: 2
Статус: Offline
| Quote Теперь мне понятно, какой ты "скриптер"... Какой? Я знаю как это все использовать, но не хочу. В чем разница между тем что я напишу else if или использую switch
|
|
| |
Romanius
| Дата: Вторник, 22.03.2011, 00:32 | Сообщение # 8 |
 Рядовой
Группа: Модераторы
Зарегистрирован: 14.03.2011
Сообщений: 9
Репутация: 0
Статус: Offline
| Quote (Folk) В чем разница ты не знаешь азов программирования....
|
|
| |
Folk
| Дата: Вторник, 22.03.2011, 10:15 | Сообщение # 9 |
 Лейтенант
Группа: Проверенные
Зарегистрирован: 23.02.2011
Сообщений: 44
Репутация: 2
Статус: Offline
| Quote ты не знаешь азов программирования.... Может я функции хорошо не знаю, с этим могу согласиться, но вот что-что а азы я знаю
|
|
| |
[DJ]Smagold
| Дата: Четверг, 24.03.2011, 20:18 | Сообщение # 10 |
![[DJ]Smagold](/avatar/68/372065.gif) Рядовой
Группа: Скриптеры
Зарегистрирован: 05.03.2011
Сообщений: 8
Репутация: 0
Статус: Offline
| Вот смотри, у тебя на сервере играет 100 человек. функция if выполняется, например 50 млс., и switch - 10 млс. if = 50*100=5000 млс. = через 5 секунд у тебя будет выполнятся функция if. switch = 10*100 = 1000 млс. = через 1 секунду у тебя выполнится функция switch. Теперь решай.
|
|
| |
Folk
| Дата: Четверг, 24.03.2011, 22:06 | Сообщение # 11 |
 Лейтенант
Группа: Проверенные
Зарегистрирован: 23.02.2011
Сообщений: 44
Репутация: 2
Статус: Offline
| Вот smagold теперь реально показал что лучше юзать switch, а вы что-то говорите говорите, но чем он помогает так и не сказали
|
|
| |