shape1
shape2
shape3
shape4
shape7
shape8

Срочно нужна помощь в скриптинге!


Статус
Закрыто для дальнейших ответов.

dest

Новичок
Пользователь
14.03.2014
49
1
0
26
Всем привет.

Дело в том что я в скриптинге еще полный "новичок", и много чего не знаю.

Короче сразу к делу:

Как сделать так чтобы игрок когда ввел команду, рядом с ним (или он в ней) появилась тачка? (Дайте пожалуйста пример с командой, объясните по подробнее).

Почему я не могу просто скачать готовый скрипт? Потому что хочу своё.

Почему я не могу просто скачать готовый скрипт, и скопировать от туда эту функцию? Потому что когда я копирую функцию из такого же скрипта, выдает миллион ошибок.

Вообщем, помогите пожалуйста, знающие. Заранее спасибо и плюсик!

 

Mirex

Руководитель проекта
Команда портала
Гл.Администратор
Золотой
21.12.2013
2 512
3
550
0
29
definehost.ru
Скриптер
Вставьте в public OnPlayerCommandText команду ниже:

if(strcmp("/veh", cmdtext, true, 10) == 0)
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) return SendClientMessage(playerid, -1, "ИНФО: /veh [carid] [цвет] [цвет]");
new car;
car = strval(tmp);
if(car < 400 || car > 611) return SendClientMessage(playerid, -1, "От 400 до 601!");
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) return SendClientMessage(playerid, -1, "ИНФО: /veh [carid] [color1] [color2]");
new color1;
color1 = strval(tmp);
if(color1 < 0 || color1 > 300) return SendClientMessage(playerid, -1, "Цвет лишь от 0 до 300!");
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) return SendClientMessage(playerid, -1, "ИНФО: /veh [carid] [color1] [color2]");
new color2;
color2 = strval(tmp);
if(color2 < 0 || color2 > 300) return SendClientMessage(playerid, COLOR_GREY, "Цвет от 0 до 300!");
new Float:player_pos[3];
GetPlayerPos(playerid, player_pos[0],player_pos[1],player_pos[2]);
CreateVehicle(car, player_pos[0]+1,player_pos[1]+1,Z, 0.0, color1, color2, 60000);
return 1;
}

Теперь в игре можно создавать машины, пример: /veh 400 1 1

 
A

Amfy

Гость
Гость
ТС, тут есть ответы на все ваши вопросы. клац

 

dest

Новичок
Пользователь
14.03.2014
49
1
0
26
Вставьте в public OnPlayerCommandText команду ниже:

if(strcmp("/veh", cmdtext, true, 10) == 0)
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) return SendClientMessage(playerid, -1, "ИНФО: /veh [carid] [цвет] [цвет]");
new car;
car = strval(tmp);
if(car < 400 || car > 611) return SendClientMessage(playerid, -1, "От 400 до 601!");
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) return SendClientMessage(playerid, -1, "ИНФО: /veh [carid] [color1] [color2]");
new color1;
color1 = strval(tmp);
if(color1 < 0 || color1 > 300) return SendClientMessage(playerid, -1, "Цвет лишь от 0 до 300!");
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) return SendClientMessage(playerid, -1, "ИНФО: /veh [carid] [color1] [color2]");
new color2;
color2 = strval(tmp);
if(color2 < 0 || color2 > 300) return SendClientMessage(playerid, COLOR_GREY, "Цвет от 0 до 300!");
new Float:player_pos[3];
GetPlayerPos(playerid, player_pos[0],player_pos[1],player_pos[2]);
CreateVehicle(car, player_pos[0]+1,player_pos[1]+1,Z, 0.0, color1, color2, 60000);
return 1;
}

Теперь в игре можно создавать машины, пример: /veh 400 1 1
Все сделал как вы сказали, при компиляции выдает следующее:

C:\Documents and Settings\Destroyer\Ðàáî÷èé ñòîë\Äðóãîå 2\123\gamemodes\lolka.pwn(92) : error 017: undefined symbol "tmp"
C:\Documents and Settings\Destroyer\Ðàáî÷èé ñòîë\Äðóãîå 2\123\gamemodes\lolka.pwn(95) : error 017: undefined symbol "tmp"
C:\Documents and Settings\Destroyer\Ðàáî÷èé ñòîë\Äðóãîå 2\123\gamemodes\lolka.pwn(95) : error 017: undefined symbol "strtok"
C:\Documents and Settings\Destroyer\Ðàáî÷èé ñòîë\Äðóãîå 2\123\gamemodes\lolka.pwn(96) : error 017: undefined symbol "tmp"
C:\Documents and Settings\Destroyer\Ðàáî÷èé ñòîë\Äðóãîå 2\123\gamemodes\lolka.pwn(98) : error 017: undefined symbol "tmp"
C:\Documents and Settings\Destroyer\Ðàáî÷èé ñòîë\Äðóãîå 2\123\gamemodes\lolka.pwn(100) : error 017: undefined symbol "tmp"
C:\Documents and Settings\Destroyer\Ðàáî÷èé ñòîë\Äðóãîå 2\123\gamemodes\lolka.pwn(100) : error 017: undefined symbol "strtok"
C:\Documents and Settings\Destroyer\Ðàáî÷èé ñòîë\Äðóãîå 2\123\gamemodes\lolka.pwn(101) : error 017: undefined symbol "tmp"
C:\Documents and Settings\Destroyer\Ðàáî÷èé ñòîë\Äðóãîå 2\123\gamemodes\lolka.pwn(103) : error 017: undefined symbol "tmp"
C:\Documents and Settings\Destroyer\Ðàáî÷èé ñòîë\Äðóãîå 2\123\gamemodes\lolka.pwn(104) : error 017: undefined symbol "COLOR_GREY"
C:\Documents and Settings\Destroyer\Ðàáî÷èé ñòîë\Äðóãîå 2\123\gamemodes\lolka.pwn(107) : error 017: undefined symbol "Z"
C:\Documents and Settings\Destroyer\Ðàáî÷èé ñòîë\Äðóãîå 2\123\gamemodes\lolka.pwn(110) : error 010: invalid function or declaration
Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase
 
 
12 Errors.
 
A

Amfy

Гость
Гость
Все сделал как вы сказали, при компиляции выдает следующее:

C:\Documents and Settings\Destroyer\Ðàáî÷èé ñòîë\Äðóãîå 2\123\gamemodes\lolka.pwn(92) : error 017: undefined symbol "tmp"
C:\Documents and Settings\Destroyer\Ðàáî÷èé ñòîë\Äðóãîå 2\123\gamemodes\lolka.pwn(95) : error 017: undefined symbol "tmp"
C:\Documents and Settings\Destroyer\Ðàáî÷èé ñòîë\Äðóãîå 2\123\gamemodes\lolka.pwn(95) : error 017: undefined symbol "strtok"
C:\Documents and Settings\Destroyer\Ðàáî÷èé ñòîë\Äðóãîå 2\123\gamemodes\lolka.pwn(96) : error 017: undefined symbol "tmp"
C:\Documents and Settings\Destroyer\Ðàáî÷èé ñòîë\Äðóãîå 2\123\gamemodes\lolka.pwn(98) : error 017: undefined symbol "tmp"
C:\Documents and Settings\Destroyer\Ðàáî÷èé ñòîë\Äðóãîå 2\123\gamemodes\lolka.pwn(100) : error 017: undefined symbol "tmp"
C:\Documents and Settings\Destroyer\Ðàáî÷èé ñòîë\Äðóãîå 2\123\gamemodes\lolka.pwn(100) : error 017: undefined symbol "strtok"
C:\Documents and Settings\Destroyer\Ðàáî÷èé ñòîë\Äðóãîå 2\123\gamemodes\lolka.pwn(101) : error 017: undefined symbol "tmp"
C:\Documents and Settings\Destroyer\Ðàáî÷èé ñòîë\Äðóãîå 2\123\gamemodes\lolka.pwn(103) : error 017: undefined symbol "tmp"
C:\Documents and Settings\Destroyer\Ðàáî÷èé ñòîë\Äðóãîå 2\123\gamemodes\lolka.pwn(104) : error 017: undefined symbol "COLOR_GREY"
C:\Documents and Settings\Destroyer\Ðàáî÷èé ñòîë\Äðóãîå 2\123\gamemodes\lolka.pwn(107) : error 017: undefined symbol "Z"
C:\Documents and Settings\Destroyer\Ðàáî÷èé ñòîë\Äðóãîå 2\123\gamemodes\lolka.pwn(110) : error 010: invalid function or declaration
Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase
 
12 Errors.
Строку:

CreateVehicle(car, player_pos[0]+1,player_pos[1]+1,Z, 0.0, color1, color2, 60000);

Измените на:

CreateVehicle(car, player_pos[0]+1,player_pos[1]+1,player_pos[2], 0.0, color1, color2, 60000);

В конец мода добавьте:

strtok(const string[], &index)
{
new length = strlen(string);
while ((index < length) && (string[index] <= ' '))
{
index++;
}
new offset = index;
new result[20];
while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
{
result[index - offset] = string[index];
index++;
}
result[index - offset] = EOS;
return result;
}

В начало public OnPlayerCommandText после { добавьте:

new tmp[256];
COLOR_GREY - измените на -1

 
Последнее редактирование:

dest

Новичок
Пользователь
14.03.2014
49
1
0
26
Все сделал как вы сказали, при компиляции выдает следующее:

C:\Documents and Settings\Destroyer\Ðàáî÷èé ñòîë\Äðóãîå 2\123\gamemodes\lolka.pwn(92) : error 017: undefined symbol "tmp"
C:\Documents and Settings\Destroyer\Ðàáî÷èé ñòîë\Äðóãîå 2\123\gamemodes\lolka.pwn(95) : error 017: undefined symbol "tmp"
C:\Documents and Settings\Destroyer\Ðàáî÷èé ñòîë\Äðóãîå 2\123\gamemodes\lolka.pwn(95) : error 017: undefined symbol "strtok"
C:\Documents and Settings\Destroyer\Ðàáî÷èé ñòîë\Äðóãîå 2\123\gamemodes\lolka.pwn(96) : error 017: undefined symbol "tmp"
C:\Documents and Settings\Destroyer\Ðàáî÷èé ñòîë\Äðóãîå 2\123\gamemodes\lolka.pwn(98) : error 017: undefined symbol "tmp"
C:\Documents and Settings\Destroyer\Ðàáî÷èé ñòîë\Äðóãîå 2\123\gamemodes\lolka.pwn(100) : error 017: undefined symbol "tmp"
C:\Documents and Settings\Destroyer\Ðàáî÷èé ñòîë\Äðóãîå 2\123\gamemodes\lolka.pwn(100) : error 017: undefined symbol "strtok"
C:\Documents and Settings\Destroyer\Ðàáî÷èé ñòîë\Äðóãîå 2\123\gamemodes\lolka.pwn(101) : error 017: undefined symbol "tmp"
C:\Documents and Settings\Destroyer\Ðàáî÷èé ñòîë\Äðóãîå 2\123\gamemodes\lolka.pwn(103) : error 017: undefined symbol "tmp"
C:\Documents and Settings\Destroyer\Ðàáî÷èé ñòîë\Äðóãîå 2\123\gamemodes\lolka.pwn(104) : error 017: undefined symbol "COLOR_GREY"
C:\Documents and Settings\Destroyer\Ðàáî÷èé ñòîë\Äðóãîå 2\123\gamemodes\lolka.pwn(107) : error 017: undefined symbol "Z"
C:\Documents and Settings\Destroyer\Ðàáî÷èé ñòîë\Äðóãîå 2\123\gamemodes\lolka.pwn(110) : error 010: invalid function or declaration
Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase
 
12 Errors.
Строку:

CreateVehicle(car, player_pos[0]+1,player_pos[1]+1,Z, 0.0, color1, color2, 60000);

Измените на:

CreateVehicle(car, player_pos[0]+1,player_pos[1]+1,player_pos[2], 0.0, color1, color2, 60000);

В конец мода добавьте:

strtok(const string[], &index)
{
new length = strlen(string);
while ((index < length) && (string[index] <= ' '))
{
index++;
}
new offset = index;
new result[20];
while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
{
result[index - offset] = string[index];
index++;
}
result[index - offset] = EOS;
return result;
}

В начало public OnPlayerCommandText после { добавьте:

new tmp[256];
COLOR_GREY - измените на -1
Спасибо, всё сделал как вы сказали, теперь ошибок гораздо меньше но всё же 3 ошибки еще остались. Вот они:

C:\Documents and Settings\Destroyer\Ðàáî÷èé ñòîë\Äðóãîå 2\123\gamemodes\lolka.pwn(95) : error 017: undefined symbol "idx"
C:\Documents and Settings\Destroyer\Ðàáî÷èé ñòîë\Äðóãîå 2\123\gamemodes\lolka.pwn(100) : error 017: undefined symbol "idx"
C:\Documents and Settings\Destroyer\Ðàáî÷èé ñòîë\Äðóãîå 2\123\gamemodes\lolka.pwn(110) : error 010: invalid function or declaration
Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase
 
 
3 Errors.
 
A

Amfy

Гость
Гость
В начало public OnPlayerCommandText после { добавьте:

Код:
new idx;
 

dest

Новичок
Пользователь
14.03.2014
49
1
0
26
В начало public OnPlayerCommandText после { добавьте:

new idx;
Поставил всё как вы сказали, теперь еще что то возмущается!

C:\Documents and Settings\Destroyer\Ðàáî÷èé ñòîë\Äðóãîå 2\123\gamemodes\lolka.pwn(111) : error 010: invalid function or declaration
Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase
 
 
1 Error.
 
A

Amfy

Гость
Гость
Киньте строку под номером 111

 
A

Amfy

Гость
Гость
Замени на return 1; если не поможет, кинь со строки 100 по 120

 

dest

Новичок
Пользователь
14.03.2014
49
1
0
26
Замени на return 1; если не поможет, кинь со строки 100 по 120
К сожалению не помогло, вот строки:

if(color1 < 0 || color1 > 300) return SendClientMessage(playerid, -1, "Öâåò ëèøü îò 0 äî 300!");
        tmp = strtok(cmdtext, idx);
        if(!strlen(tmp)) return SendClientMessage(playerid, -1, "ÈÍÔÎ: /veh [carid] [color1] [color2]");
        new color2;
        color2 = strval(tmp);
        if(color2 < 0 || color2 > 300) return SendClientMessage(playerid, -1, "Öâåò îò 0 äî 300!");
        new Float:player_pos[3];
        GetPlayerPos(playerid, player_pos[0],player_pos[1],player_pos[2]);
        CreateVehicle(car, player_pos[0]+1,player_pos[1]+1,player_pos[2], 0.0, color1, color2, 60000);
return 1;
}
return 0;
}
 
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
return 1;
}
 
public OnPlayerExitVehicle(playerid, vehicleid)
{
 

Mirex

Руководитель проекта
Команда портала
Гл.Администратор
Золотой
21.12.2013
2 512
3
550
0
29
definehost.ru
Скриптер
Проблем при копировании команды не было? Просто у нас на форуме стоит при копировании информации с нашего форума, указывается ссылка на источник и из-за этого код, текст сбивается. Я отключил эту функцию, попробуй заново скопировать команду, заменить/добавить то, что написал Amfy и заново скомпилировать.

 
Последнее редактирование модератором:

dest

Новичок
Пользователь
14.03.2014
49
1
0
26
Проблем при копировании команды не было? Просто у нас на форуме стоит при копировании информации с нашего форума, указывается ссылка на источник и из-за этого код, текст сбивается. Я отключил эту функцию, попробуй заново скопировать команду, заменить/добавить то, что написал Amfy и заново скомпилировать.
Проблемы были, дело в том что с вашего форума невозможно что либо скопировать и вставить, во первых потому что указывается ссылка на источник и код вставляется в линию а не в столбец, из за этого мне

пришлось по очереди копировать каждую строчку убирать рекламу и выставлять столбиком. 

 
A

Amfy

Гость
Гость
Ну, сейчас то ошибка есть?

 

Mirex

Руководитель проекта
Команда портала
Гл.Администратор
Золотой
21.12.2013
2 512
3
550
0
29
definehost.ru
Скриптер
Про табуляцию слышали когда нибудь? 

Только выровнил код и сразу же нашел ошибки.

 
Последнее редактирование модератором:

dest

Новичок
Пользователь
14.03.2014
49
1
0
26
Про табуляцию слышали когда нибудь? 
attachicon.gif
1234567.pwn

Только выровнил код и сразу же нашел ошибки.
Ну допустим ошибок нет.

Но когда я зашел на сервер, и написал /veh мне написало: от 400 до 601, а когда я ввожу /veh 200 (или любой другой id транспорта) пишет: Server Unknown Command.

Что делать?

 

Mirex

Руководитель проекта
Команда портала
Гл.Администратор
Золотой
21.12.2013
2 512
3
550
0
29
definehost.ru
Скриптер
В public OnPlayerCommandText

return 0;

Нужно заменить на:

return SendClientMessage(playerid,-1,"Нет такой команды!");

Зачем Вы пишите мод с нуля, если ничего не понимаете в скриптинге? Возьмите какой нибудь мод за основу и работайте над ним. С new.pwn Вам будет очень тяжело.

 
Статус
Закрыто для дальнейших ответов.