SayText2 - params

Тема в разделе "Программирование / Скриптинг", создана пользователем uhx, 21 июл 2015.

  1. uhx

    uhx

    Сообщения:
    20
    Симпатии:
    0
    Код:
    PbReadString reported: Invalid field "params" for message "CCSUsrMsg_SayText2"
    Код:
    public Action:OnSayText2(UserMsg:msg_id, Handle:bf, const players[], playersNum, bool:reliable, bool:init){
    	decl String:sType[32];
    	decl String:sName[64];
    	decl String:sText[256];
    	new Handle:data = CreateDataPack();
    	
    	WritePackCell(data, PbReadInt(bf, "ent_idx"));
    	WritePackCell(data, playersNum);
    	
    	for(new i = 0; i < playersNum; i++){
    		WritePackCell(data, players[i]);
    	}
    	
    	WritePackCell(data, PbReadBool(bf, "chat"));
    	
    	PbReadString(bf, "msg_name", sType, sizeof(sType));
    	WritePackString(data, sType);
    	
    	PbReadString(bf, "params", sName, sizeof(sName));
    	WritePackString(data, sName);
    	
    	PbReadString(bf, "params", sText, sizeof(sText));
    	WritePackString(data, sText);
    	
    	CreateTimer(0, ResendMessage, data);
    	
    	return Plugin_Handled;
    }
    Что не так то? ._.
    Смотрю здесь:
    Код:
    Name:	SayText2
    Structure:	
    int32			ent_idx	
    bool			chat	
    string			msg_name	
    [B][COLOR="Red"]repeated string		params[/COLOR][/B]
    bool			textallchat	
    
     
  2. R1KO

    R1KO Супер-модератор

    Сообщения:
    5.975
    Симпатии:
    2.982
    PHP:
    PbReadString(bf"params"sTextsizeof(sText), 0);
    Хотя.. такжется так:
    PHP:
    PbReadRepeatedString(bf"params"0sTextsizeof(sText)); // ник
    PbReadRepeatedString(bf"params"1sTextsizeof(sText)); // сообщение
     
  3. uhx

    uhx

    Сообщения:
    20
    Симпатии:
    0
    R1KO,
    Код:
    Syntax:
    native Handle:PbReadRepeatedMessage(Handle:pb, const String:field[], index);
    
    Usage:
     pb			protobuf handle.
     field			Field name.
     index			Index in the repeated field.
    Notes:
    Retrieve a handle to an embedded protobuf message in a protobuf message repeated field.
    
    Return:
    protobuf handle to embedded message.
    
    Оно возвращает хендл. А дальше то че мне с ним делать?))
     
  4. R1KO

    R1KO Супер-модератор

    Сообщения:
    5.975
    Симпатии:
    2.982
    uhx, при чем PbReadRepeatedMessage к PbReadRepeatedString ?
     
  5. uhx

    uhx

    Сообщения:
    20
    Симпатии:
    0
    Я в край упоролся xD
    Видимо, потому что больше никаких функций со словом 'Repeated' нет))
    Попробую индекс поставить все таки (последний аргумент)

    Добавлено через 2 минуты
    Получилось так:
    Код:
    	PbReadString(bf, "params", sName, sizeof(sName), 0);
    	WritePackString(data, sName);
    	
    	PbReadString(bf, "params", sText, sizeof(sText), 1);
    	WritePackString(data, sText);
    
    вроде бы))
     
    Последнее редактирование: 21 июл 2015