Русское сообщество по скриптингу

Массивы из SteamID/IP игроков | must be assigned to an array  [Решено]

Все вопросы по работе и настройке AMXX и его плагинов.

Модератор: liFe iS GoOD

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

В данном разделе форума разрешено создавать темы, касающие только вопросов по AMX Mod X и его плагинам.

Re: Массивы из SteamID/IP игроков | must be assigned to an a

Сообщение RevCrew » 30 июл 2020, 22:58

TheXA0S, нет, порядковый номер

Код: Выделить всё


enum 
{
 ID = 5
}

server_print(" %d ", ID ) // 5


Добавлено спустя 1 минуту 26 секунд:
Re: Массивы из SteamID/IP игроков | must be assigned to an array
В твоем случае
Код: Выделить всё

enum _
DataId
{
    
ID 0,
    
LOGIN[32],
    
PASS[32],
    
STEAMID[32],


new 
data[DataId]
data[ID] = 0
data
[LOGIN][0] = "^0"
data[PASS][0] = "^0"
 
Аватара пользователя
RevCrew
Скриптер
 
Сообщения: 1648
Зарегистрирован: 15 июл 2013, 20:45
Благодарил (а): 273 раз.
Поблагодарили: 357 раз.
Языки программирования: Unkown

Re: Массивы из SteamID/IP игроков | must be assigned to an a

Сообщение TheXA0S » 01 авг 2020, 12:49

Код: Выделить всё

new data
[DataId]
data[ID] = 0
data
[LOGIN][0] = "^0"
data[PASS][0] = "^0"

От сюда несколько вопросов:
1. Что значит "^0"?
2. Разве присваивать дефолт-значения лучше не в plugin_ini()?
Код: Выделить всё

public plugin_ini
() 
{
    ///
    for(new i; i<= 33; i++)
    {
        g_iUserData[i] [LOGIN] = "";
        g_iUserData[i] [PASS] = "";
    }
}
 
Аватара пользователя
TheXA0S
 
Сообщения: 25
Зарегистрирован: 11 дек 2019, 16:20
Откуда: Moscow
Благодарил (а): 1 раз.
Поблагодарили: 0 раз.
Опыт программирования: Около года
Языки программирования: C++, HTML, CSS, JS, PAWN

Re: Массивы из SteamID/IP игроков | must be assigned to an a

Сообщение RevCrew » 02 авг 2020, 00:38

TheXA0S, 1) Символ конца строки, то есть происходит обнуление строки.
2) Лучше при коннекте игрока ресетать g_iUserdata[id] id - конкретного игрока
Аватара пользователя
RevCrew
Скриптер
 
Сообщения: 1648
Зарегистрирован: 15 июл 2013, 20:45
Благодарил (а): 273 раз.
Поблагодарили: 357 раз.
Языки программирования: Unkown

Re: Массивы из SteamID/IP игроков | must be assigned to an a  [Решено]

Сообщение TheXA0S » 02 авг 2020, 12:07

Понял, принял. На этом вопросы на данную тему закончились. Благодарю за помощь.
Аватара пользователя
TheXA0S
 
Сообщения: 25
Зарегистрирован: 11 дек 2019, 16:20
Откуда: Moscow
Благодарил (а): 1 раз.
Поблагодарили: 0 раз.
Опыт программирования: Около года
Языки программирования: C++, HTML, CSS, JS, PAWN

Re: Массивы из SteamID/IP игроков | must be assigned to an a

Сообщение ximel22629 » 02 авг 2020, 16:43

fl0wer писал(а):
liFe iS GoOD писал(а):fl0wer, для форматирования строки. Тебе не нравятся отформатированные строки ? :(

Всё должно быть красивенько!

Обычное присваивание сломалось?



Ахахахаха. Клоун. Присваивание строк? Строк из стека, которые затем потеряются в памяти? Молодец, иди возьми пирожок.
И этот идиот имеет статус разработчика на dev-cs. :ROFL: :ROFL: :ROFL:

ТС:
Код: Выделить всё
"^0" 


Замени на EOS.


Код: Выделить всё
get_user_authid(id, g_iUserData[id][STEAMID], MAX_LEN-1);



Продолжайте слушать этого клоуна который даже не понимает о чем говорит:
Код: Выделить всё

123456
1 TTTTest str test123 
|
2 TTTest str test123 |
3 TTest str test123 |
4 Test str 12345 |
1234567
123456
1 TTTTest str test123 
|
2 TTTest str test123 |
3 TTest str test123 |
4 Test str new |
 



Код: Выделить всё
public test123(){
    new 
localString[32];
    
formatex(localStringcharsmax(localString), "Test str test123");
    
globalPtr1 localString[0];
}
public 
test1234() {
    static 
localString[32];
    
formatex(localStringcharsmax(localString), "Test str test1234");
    
globalPtr2 localString[0];
}
public 
test12345() {
    
formatex(globalStrcharsmax(globalStr), "Test str 12345");
    
globalPtr3 globalStr[0];
}
public 
test123457() {
    
formatex(globalStrcharsmax(globalStr), "Test str new");
}
public 
test123456() {
    
server_print("1 %s |",globalPtr1);
    
server_print("2 %s |",globalPtr2);
    
server_print("3 %s |",globalPtr3);
    
server_print("4 %s |",globalStr);
}


register_concmd("12""test12");
register_concmd("123""test123");
register_concmd("1234""test1234");
register_concmd("12345""test12345");
register_concmd("123456""test123456");
register_concmd("1234567""test123457");
 



Возражения можешь маме с папой оставить, я не намерен отвечать тебе все и так понимают что ты недалекий.


liFe iS GoOD можешь выдать предупреждение, но пост не удаляй.
Аватара пользователя
ximel22629
 
Сообщения: 2
Зарегистрирован: 02 авг 2020, 16:42
Забанен
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.
Языки программирования: Я ничего не знаю

Re: Массивы из SteamID/IP игроков | must be assigned to an a

Сообщение Mistrick » 02 авг 2020, 22:01

ximel22629, павн копирует по значению при присваивании. Что сделали вы - непонятно. Нативных указатей в павне нет. Покажите весь код.
Код: Выделить всё
#include <amxmodx>

new globalPtr1[128], globalPtr2[128], globalPtr3[128], globalStr[128];

public test123(){
    new localString[32];
    formatex(localString, charsmax(localString), "Test str test123");
    globalPtr1 = localString;
}
public test1234() {
    static localString[32];
    formatex(localString, charsmax(localString), "Test str test1234");
    globalPtr2 = localString;
}
public test12345() {
    formatex(globalStr, charsmax(globalStr), "Test str 12345");
    globalPtr3 = globalStr;
}
public test123457() {
    formatex(globalStr, charsmax(globalStr), "Test str new");
}
public test123456() {
    server_print("1 %s |",globalPtr1);
    server_print("2 %s |",globalPtr2);
    server_print("3 %s |",globalPtr3);
    server_print("4 %s |",globalStr);
}

public plugin_init()
{
    // register_concmd("12", "test12");
    register_concmd("123", "test123");
    register_concmd("1234", "test1234");
    register_concmd("12345", "test12345");
    register_concmd("123456", "test123456");
    register_concmd("1234567", "test123457");
}
 

Код: Выделить всё
123
1234
12345
1234567
12345678
123456
1 Test str test123 
|
2 Test str test1234 |
3 Test str 12345 |
4 Test str new |
Аватара пользователя
Mistrick
Скриптер
 
Сообщения: 2940
Зарегистрирован: 04 ноя 2012, 18:15
Благодарил (а): 43 раз.
Поблагодарили: 1247 раз.
Языки программирования: PAWN
С/С++(few above zero)

Re: Массивы из SteamID/IP игроков | must be assigned to an a

Сообщение fl0wer » 02 авг 2020, 22:11

ximel22629 писал(а):
fl0wer писал(а):
liFe iS GoOD писал(а):fl0wer, для форматирования строки. Тебе не нравятся отформатированные строки ? :(

Всё должно быть красивенько!

Обычное присваивание сломалось?



Ахахахаха. Клоун. Присваивание строк? Строк из стека, которые затем потеряются в памяти? Молодец, иди возьми пирожок.
И этот идиот имеет статус разработчика на dev-cs. :ROFL: :ROFL: :ROFL:

ТС:
Код: Выделить всё
"^0"


Замени на EOS.


Код: Выделить всё
get_user_authid(id, g_iUserData[id][STEAMID], MAX_LEN-1); 



Продолжайте слушать этого клоуна который даже не понимает о чем говорит:
Код: Выделить всё

123456
1 TTTTest str test123 
|
2 TTTest str test123 |
3 TTest str test123 |
4 Test str 12345 |
1234567
123456
1 TTTTest str test123 
|
2 TTTest str test123 |
3 TTest str test123 |
4 Test str new |



Код: Выделить всё

public test123
(){
    new localString[32];
    formatex(localString, charsmax(localString), "Test str test123");
    globalPtr1 = localString[0];
}
public test1234() {
    static localString[32];
    formatex(localString, charsmax(localString), "Test str test1234");
    globalPtr2 = localString[0];
}
public test12345() {
    formatex(globalStr, charsmax(globalStr), "Test str 12345");
    globalPtr3 = globalStr[0];
}
public test123457() {
    formatex(globalStr, charsmax(globalStr), "Test str new");
}
public test123456() {
    server_print("1 %s |",globalPtr1);
    server_print("2 %s |",globalPtr2);
    server_print("3 %s |",globalPtr3);
    server_print("4 %s |",globalStr);
}


register_concmd("12", "test12");
register_concmd("123", "test123");
register_concmd("1234", "test1234");
register_concmd("12345", "test12345");
register_concmd("123456", "test123456");
register_concmd("1234567", "test123457");



Возражения можешь маме с папой оставить, я не намерен отвечать тебе все и так понимают что ты недалекий.


liFe iS GoOD можешь выдать предупреждение, но пост не удаляй.

Это же какую титаническую мотивацию надо иметь чтоб зарегистрироваться ради ответа на моё
сообщение.
От себя я могу только сказать: Продолжайте слушать этого клоуна который даже не понимает о чем говорит и Возражения можешь маме с папой оставить, я не намерен отвечать тебе все и так понимают что ты недалекий.
Аватара пользователя
fl0wer
 
Сообщения: 1687
Зарегистрирован: 27 фев 2011, 21:35
Откуда: Россия, Ижевск
Благодарил (а): 240 раз.
Поблагодарили: 508 раз.
Опыт программирования: Больше трех лет
Языки программирования: C++, Java, PAWN

Re: Массивы из SteamID/IP игроков | must be assigned to an a

Сообщение ximel22629 » 03 авг 2020, 02:41

Mistrick, павн не копирует по значению, он копирует указатель, а потом уже размерно дополняет его, в павне есть указатели, но они должны быть инициированы опкодами (emit) и ссылкой на конкретную ячейкйу, а не так как я показал. Это не то, это конкретно было направлено на демонстрацию того что копирование из стека + последующе размещение в блоке .data не гарантирует того что оно будет закрыто концом строки и в переменной может оказаться мусор.

То что вы показали - копирование одного указателя в другую переменную (подмечу что это не полноценное копирование, именно указателей) с конкретной размерностью, а теперь попробуйте сделать тоже самое с globalPtr2[10], если оригинал будет перезаписан то и вторичный не будет перезаписан потому что это уже новая строка, а нам это зачем? Не зачем. То что он предлагает - быдлокод и не более, есть copy, он предназначен для копирования массивов, вы бы еще format(g_szStr, charsmax(g_szStr), g_szAnotherString) предложили бы :-!
Если тебе хочется сильно использовать это копирование и использовать его независимо от начальных размеров - на тебе сток:

Код: Выделить всё
public atest12345() {
    
copy_array(sglobalPtr3[0], sglobalStr04*5);
}

static 
stock copy_array(&dest, const source[], startsize_in_bytes) {
    
#emit load.s.pri source
    #emit load.s.alt start
    #emit add
    #emit load.s.alt dest
    #emit movs size_in_bytes

В павне есть указатели, в павне были указатели, в павне будут указатели.


От себя я могу только сказать


Животные умеют говорить? Что-то новенькое. Прости, ты ведь не умеешь, просто скопировал.
Мы уже поняли что живя в городе производства Ак-47 у тебя наследственные проблмы с кукухой. Видать у всех у вас там такие проблемы.
23 годика от роду, все еще тролит как в 2015, видимо поэтому тебя KORD 12.7 посылает подальше каждый раз, а ты все заново и заново приходишь и пытаешься лизать.
Аватара пользователя
ximel22629
 
Сообщения: 2
Зарегистрирован: 02 авг 2020, 16:42
Забанен
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.
Языки программирования: Я ничего не знаю

Re: Массивы из SteamID/IP игроков | must be assigned to an a

Сообщение fl0wer » 03 авг 2020, 03:46

ximel22629 писал(а):Животные умеют говорить? Что-то новенькое. Прости, ты ведь не умеешь, просто скопировал.
Мы уже поняли что живя в городе производства Ак-47 у тебя наследственные проблмы с кукухой. Видать у всех у вас там такие проблемы.
23 годика от роду, все еще тролит как в 2015, видимо поэтому тебя KORD 12.7 посылает подальше каждый раз, а ты все заново и заново приходишь и пытаешься лизать.

У Вас дезинформация, Вы выглядите пиздаболом.

Добавлено спустя 13 минут 42 секунды:
Re: Массивы из SteamID/IP игроков | must be assigned to an array

Всё, теперь не пиздабол! Не благодари.
Аватара пользователя
fl0wer
 
Сообщения: 1687
Зарегистрирован: 27 фев 2011, 21:35
Откуда: Россия, Ижевск
Благодарил (а): 240 раз.
Поблагодарили: 508 раз.
Опыт программирования: Больше трех лет
Языки программирования: C++, Java, PAWN

Re: Массивы из SteamID/IP игроков | must be assigned to an a

Сообщение Fedcomp » 03 авг 2020, 10:51

Если вы думаете что на форуме абсолютно не осталось модерации то вы ошибаетесь.
Не помогаю в ЛС - есть форум.
Плагины тоже не пишу, на форуме достаточно хороших скриптеров.


"я ставлю зависимости потому что мне приятно" - subb98 @ 2017
Аватара пользователя
Fedcomp
Администратор
 
Сообщения: 4936
Зарегистрирован: 28 авг 2009, 20:47
Благодарил (а): 813 раз.
Поблагодарили: 1317 раз.
Языки программирования: =>
pawn / php / python / ruby
javascript / rust

Пред.След.

Вернуться в Вопросы по AMXX и его плагинам

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 4

cron