Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

Два вопроса по массивам.

Статус пользователя 3ple
сообщение 19.2.2013, 16:11
Сообщение #1
Стаж: 13 лет

Сообщений: 74
Благодарностей: 7
Полезность: 8

Доброго времени суток. У меня имеется два вопроса по мпссивам.

1)
У меня есть двумерный массив. Как записать в переменную элемент из массива?
new massive[][] =
{
"element1",
"element2"
}
//new var = ? как присвоить правильно

2)
А второй вопрос - как передать массив с помощью натив? (можно привести два примера: основного план на и вторичного пожалуйста)
знаю, что нужно делать через
param_convert(1)
но я не знаю что дальше.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
cs-portal
сообщение 19.2.2013, 16:22
Сообщение #2
Стаж: 16 лет

Сообщений: 8181
Благодарностей: 2709
Полезность: 0

все примеры можно найти в исходнике hack hunter 2.0
там записывается в 2мерные массивы все

где то хорошую статейку видел по enum недавно не вспомню где
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя 3ple
сообщение 19.2.2013, 16:27
Сообщение #3
Стаж: 13 лет

Сообщений: 74
Благодарностей: 7
Полезность: 8

У меня проблема, на компе инета нет и таких плагинов, где посмотреть можно примеры.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя mazdan
сообщение 19.2.2013, 16:30
Сообщение #4


Иконка группы

Стаж: 15 лет

Сообщений: 7566
Благодарностей: 5437
Полезность: 1305

первый вопрос непонятный какой-то

new var = massive[1][2] по идее вам положит туда 101

про натив строковый я на amx-x.ru писал где-то не могу найти, там как раз пример был с двумя плагинами
нашел только тут http://amx-x.ru/viewtopic.php?f=8&t=15497 но тут не всё

UPD: нашел http://amx-x.ru/viewtopic.php?f=8&t=10...start=10#p90047


Не пишите мне в ЛС. Пишите на почту. В ЛС я пропускаю сообщения.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Andrei
сообщение 19.2.2013, 16:48
Сообщение #5


Стаж: 15 лет

Сообщений: 1335
Благодарностей: 693
Полезность: 740

Цитата(3ple @ 19.2.2013, 17:11) *
Доброго времени суток. У меня имеется два вопроса по мпссивам.

1)
У меня есть двумерный массив. Как записать в переменную элемент из массива?
new massive[][] =
{
"element1",
"element2"
}
//new var = ? как присвоить правильно

2)
А второй вопрос - как передать массив с помощью натив? (можно привести два примера: основного план на и вторичного пожалуйста)
знаю, что нужно делать через
param_convert(1)
но я не знаю что дальше.


1)

new var = massive[ 0 ] // "element1"
new var2 = massive[ 1 ] // "element2"

2) param_convert необходим для строк. Если просто передать массив,в нативе - return g_iValue[ pPlayer ];


Цитата(mazdan @ 19.2.2013, 17:30) *
new var = massive[1][2] по идее вам положит туда 101


Это не верно,у него один элемент в строке,а ты береш второй.

Отредактировал: Bos93, - 19.2.2013, 16:51
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя 3ple
сообщение 19.2.2013, 16:51
Сообщение #6
Стаж: 13 лет

Сообщений: 74
Благодарностей: 7
Полезность: 8

спасибо за инфу, попытаюсь сделать.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя mazdan
сообщение 19.2.2013, 18:25
Сообщение #7


Иконка группы

Стаж: 15 лет

Сообщений: 7566
Благодарностей: 5437
Полезность: 1305

Bos93, двойка, в число нельзя текст записывать - аяяй!
new var= massive[ 0 ] // "element1" - var это integer, в него не получится строку положить у вас компилятор даже не откомпилит

Цитата
public plugin_init()
{
new var
var= "text"
}

Цитата
(4 -- 5) : error 006: must be assigned to an array


Цитата
Это не верно,у него один элемент в строке,а ты береш второй.

Цитата
new massive[][] =
{
"element1", // massive[0][] =>massive[0][0],massive[0][1],massive[0][2]...
"element2" // massive[1][]
}


massive[1][0] == 'e'
massive[1][1] == 'l'
massive[1][2] == 'e'



Цитата
2) param_convert необходим для строк. Если просто передать массив, в нативе - return g_iValue[ pPlayer ];

Строка это и есть массив
massive[1][0]=101
massive[1][1]=108
massive[1][2]=101
massive[1][3]=0
server_cmd("say test %s",massive[1]) выведет test ele


Не пишите мне в ЛС. Пишите на почту. В ЛС я пропускаю сообщения.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Andrei
сообщение 19.2.2013, 19:21
Сообщение #8


Стаж: 15 лет

Сообщений: 1335
Благодарностей: 693
Полезность: 740

Ах да,я не усмотрел,что надо создать буфер,для хранения строки.

Я о том,что если ему только значение передать,ему не нужно включать param_convert
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя mazdan
сообщение 19.2.2013, 19:32
Сообщение #9


Иконка группы

Стаж: 15 лет

Сообщений: 7566
Благодарностей: 5437
Полезность: 1305

Цитата(Bos93 @ 19.2.2013, 20:21) *
Ах да,я не усмотрел,что надо создать буфер,для хранения строки.

Я о том,что если ему только значение передать,ему не нужно включать param_convert

если это массив (строка) то нужно, по-моему т.к. это одно и тоже строка это тот же массив. Я в свое время долго разбирался, часа два убил.


Не пишите мне в ЛС. Пишите на почту. В ЛС я пропускаю сообщения.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя 3ple
сообщение 21.2.2013, 14:08
Сообщение #10
Стаж: 13 лет

Сообщений: 74
Благодарностей: 7
Полезность: 8

ну так как записывать то нужно?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя mazdan
сообщение 21.2.2013, 14:21
Сообщение #11


Иконка группы

Стаж: 15 лет

Сообщений: 7566
Благодарностей: 5437
Полезность: 1305

а как нужно? на вопрос вам вроде как ответили. Что непонятно то?


Не пишите мне в ЛС. Пишите на почту. В ЛС я пропускаю сообщения.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя iLLuSioN
сообщение 21.2.2013, 14:22
Сообщение #12
Иконка группы

Стаж: 19 лет

Сообщений: 6911
Благодарностей: 7990
Полезность: 1639

Bos93,
mazdan,
Вы запутали человека :)


Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя mazdan
сообщение 21.2.2013, 14:25
Сообщение #13


Иконка группы

Стаж: 15 лет

Сообщений: 7566
Благодарностей: 5437
Полезность: 1305

если весь элемент записать то можно через copy()


Не пишите мне в ЛС. Пишите на почту. В ЛС я пропускаю сообщения.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя 3ple
сообщение 21.2.2013, 14:57
Сообщение #14
Стаж: 13 лет

Сообщений: 74
Благодарностей: 7
Полезность: 8

Через copy тоже пробовал, что-то не вышло.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя mazdan
сообщение 21.2.2013, 15:12
Сообщение #15


Иконка группы

Стаж: 15 лет

Сообщений: 7566
Благодарностей: 5437
Полезность: 1305

Цитата
#include <amxmisc>
public plugins_init()
{
new massive[][] =
{
"element1",
"element2"
}
new a[21]
copy(a,20,massive[0])
log_amx("element a %s",a)
}

проверяйте


Не пишите мне в ЛС. Пишите на почту. В ЛС я пропускаю сообщения.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
  Тема закрытаНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: