а тем что есть уже в павне не судьба воспользоваться? вот мой пример команды без использования и создания всяких дополнительных функций
просто в onplayercommandtext ну + несколько переменных потребуется. но они в каждом скрипте есть
Quote
if(strcmp(cmd, "/setpos", true) == 0 ) { new tmp[256]; new SetPosSTR[255]; new Float:xps2,Float:yps2,Float:zps2; tmp = strtok(cmdtext, idx); if(!strlen(tmp)) { SendClientMessage(playerid,COLOR_YELLOW," Не введен Х, использование: /setpos X Y Z (0 символов после запятой)"); return 1; } xps2=strval(tmp); tmp = strtok(cmdtext, idx); if(!strlen(tmp)) { SendClientMessage(playerid,COLOR_YELLOW," Не введен Y, использование: /setpos X Y Z (0 символов после запятой)"); return 1; } yps2=strval(tmp); tmp = strtok(cmdtext, idx); if(!strlen(tmp)) { SendClientMessage(playerid,COLOR_YELLOW," Не введен Z, использование: /setpos X Y Z (0 символов после запятой)"); return 1; } zps2=strval(tmp); SetPlayerPos(playerid,xps2,yps2,zps2); format(SetPosSTR, sizeof(SetPosSTR), " позиция %0.1f %0.1f %0.1f",xps2,yps2,zps2); SendClientMessage(playerid,COLOR_YELLOW,SetPosSTR); return 1; }
и все. это команда телепортирует на координаты указанные командой /setpos......например /setpos 4 4 0 И не надо изобретать велосипед
Сообщение отредактировал brontozavr - Четверг, 28.02.2008, 17:45
и все. это команда телепортирует на координаты указанные командой /setpos......например /setpos 4 4 0 И не надо изобретать велосипед
как раз strtok это ржавый велосипед. это функция очень медленная. beat быстрее, sscanf еще быстрее. ясное дело новичкам это не надо. и я их прекрасно понимаю)
www.gtascript.ru admin www.gtascript.ru - профессиональный скриптинг SA-MP, MTA
как раз strtok это ржавый велосипед. это функция очень медленная. beat быстрее, sscanf еще быстрее.
чето я не заметил ржавчины..... или я просто не встречался с такими задачами где бы была необходимость в создании аналога...... и при проверке не заметил разници между твоей и стандартной функцией.
Quote
ясное дело новичкам это не надо. и я их прекрасно понимаю)
да я вообщето не новичек и мод свой имеется, можешь взгялнуть если интересно http://samp-rus.com/forum/8-442-1 самая последняя ссылка для скачки мода гдето на последних страницах темы
lol чето я не заметил ржавчины..... или я просто не встречался с такими задачами где бы была необходимость в создании аналога...... и при проверке не заметил разници между твоей и стандартной функцией.
если бы ты использовал ее то увидел бы что она легко справляется со строками типа: cmd!!!!!!!!!!!!!!!1!!!2!!!!!3 а strtok работает только с cmd!1!2!3
где ! - символ разделения значений
Добавлено (29.02.2008, 20:31) --------------------------------------------- если ты не видишь различий, то посмотри эту:
Code
stock beat2(string[],arg,symbol,begin=0) { new len=strlen(string),pos,output[32],arg2=-1,arg3=-1; while(len>=begin) { if (string[begin] == symbol) { if (pos == arg-1) arg2=begin+1; if (pos == arg) arg3=begin; pos++; } begin++; } if (arg2 !=-1 && arg3!=-1) { format(output,sizeof(output),"%.*s",arg3-arg2,string[arg2]); } else if (arg2 ==-1 && arg3 !=-1) { format(output,sizeof(output),"%.*s",arg3,string); } else if (arg2 !=-1 && arg3 ==-1) { format(output,sizeof(output),"%s",string[arg2]); } return output; }
правда версия предыдущая немного медленнее и не работает с экстра символами.
www.gtascript.ru admin www.gtascript.ru - профессиональный скриптинг SA-MP, MTA
Сообщение отредактировал LuxurY - Пятница, 29.02.2008, 20:27