Проблема с загрузкой Билбордов
#1

Посмотрите мой код. В чём я допустил ошибку:
PHP код:
forward LoadBillboard(); 
public 
LoadBillboard()
{
    print(
"Загружаем");
    new 
f=ini_openFile("Billboard.ini");
    if(!
fexist("Billboard.ini"))return print("[Ошибка] Файл Billboard.ini не найден");
    new 
str[8];
    new 
String[1024];
    for(new 
b=1;b<=MAX_BILLBORDS;b++)
    {
        
format(str,sizeof(str),"ID %d",b);
        
ini_getString(f,str,String);
        
sscanf(String,"p<|>s[256]s[24]",
        
Billboard[b][Text],
        
Billboard[b][Owner]
        );
        if(!
strcmp(Billboard[b][Owner],"None",true))
        {
            
format(String,128,"Здесь могла быть ваша реклама");
            
Billboard[b][bObject] = CreateDynamicObject(4238,BillboardCord[b][bX],BillboardCord[b][bY],BillboardCord[b][bZ],0.0,0.0,BillboardCord[b][bfZ]);
            
SetObjectMaterialText(Billboard[b][bObject],String,0130"Small Fonts"300, -16468988, -167772161);
            
printf("CreateDynamicObject(4238,%f,%f,%f,%f)",BillboardCord[b][bX],BillboardCord[b][bY],BillboardCord[b][bZ],BillboardCord[b][bfZ]);
        }
        else
        {
            
format(String,128,"%s (%s)",Billboard[b][Text],Billboard[b][Owner]);
            
Billboard[b][bObject] = CreateDynamicObject(4238,BillboardCord[b][bX],BillboardCord[b][bY],BillboardCord[b][bZ],0.0,0.0,BillboardCord[b][bfZ]);
            
SetObjectMaterialText(Billboard[b][bObject],String,0130"Small Fonts"300, -16468988, -167772161);
            
printf("CreateDynamicObject(4238,%f,%f,%f,%f)",BillboardCord[b][bX],BillboardCord[b][bY],BillboardCord[b][bZ],BillboardCord[b][bfZ]);
        }
    }
    
ini_closeFile(f); 
    return 
true;

Вот если что :
PHP код:
enum BillboardEnum
{
    
Float:bX,
    
Float:bY,
    
Float:bZ,
    
Float:bfZ,
    
Text[256],
    
Owner[24],
    
bObject[MAX_BILLBORDS]
}
new 
BillboardCord[][BillboardEnum]={
    {
1498.4482, -1582.579925.340630.0}
}; 
PHP код:
new Billboard[MAX_BILLBORDS][BillboardEnum];
#define MAX_BILLBORDS                         2 
Reply
#2

Дело в том что
PHP код:
printf("CreateDynamicObject(4238,%f,%f,%f,%f)",BillboardCord[b][bX],BillboardCord[b][bY],BillboardCord[b][bZ],BillboardCord[b][bfZ]); 
Не отображается. Содержимое файла Billboard.ini
PHP код:
ID 1 Реклама|None 
Reply
#3

Ну где же эксперты? Или альтернативу предложите
Reply
#4

Эм, не совсем понял, что ты имел ввиду, НО:
Код:
 sscanf(String,"p<|>s[256]s[24]", 
        Billboard[b][Text], 
        Billboard[b][Owner] 
        );
- У тебя нет загрузки координат
Reply
#5

Они берутся с
enum BillboardEnum
{
Float:bX,
Float:bY,
Float:bZ,
Float:bfZ,
Text[256],
Owner[24],
bObject[MAX_BILLBORDS]
}
new BillboardCord[][BillboardEnum]={
{1498.4482, -1582.5799, 25.3406, 30.0}
};
Reply
#6

Хорошо, но вот еще, заметил:
CreateDynamicObject >>> SetObjectMaterialText - нужно перевести на стример.
Если printf не вызывается,следовательно, ошибка точно содержится в
Код:
SetObjectMaterialText(Billboard[b][bObject],String,0, 130, "Small Fonts", 30, 0, -16468988, -16777216, 1);
Но ничего странного в коде нет, поэтому просто попробуйте перевести на стример. И еще попробуй проверить



//////////////////////НАВЕРХУ БРЕД, ВНИЗУ НОРМАЛЬНО

КРЧ, вот, нашел,
Код:
format(String,128,"%s (%s)",Billboard[b][Text],Billboard[b][Owner]);
- форматирует 128 ячеек, однако Billboard[b][Text] занимает 256, просто увеличьте format(String,128, до 320
Reply
#7

А sizeof для слабаков? Или лучше потом будем заваливать форум вопросами "Пачиму мой сервик падает, кагда я устанавливаю иго на хостинг? На кампьютери всё харашо!". Linux очень прихотлив к памяти
Reply
#8

Началось..
Reply
#9

Загружается но фигово.

Во первых я поменял:
PHP код:
enum BillboardCordEnum
{
    
Float:bX,
    
Float:bY,
    
Float:bZ,
    
Float:bfZ
}
new 
BillboardCord[][BillboardCordEnum]={
    {
1498.4482, -1582.579925.340630.0},
    {
1498.4482, -1582.579930.340630.0},
    {
1498.4482, -1582.579935.340630.0}
}; 
Чтобы отдельно загружалось
PHP код:
public LoadBillboard()
{
    print(
"Загружаем");
    new 
f=ini_openFile("Billboard.ini");
    if(!
fexist("Billboard.ini"))return print("[Ошибка] Файл Billboard.ini не найден");
    new 
str[3];
    new 
String[256];
    for(new 
b=0;b<MAX_BILLBORDS;b++)
    {
        
format(str,sizeof(str),"ID %d",b);
        
ini_getString(f,str,String);
        
sscanf(String,"p<|>s[256]s[24]",
        
Billboard[b][Text],
        
Billboard[b][Owner]
        );
        
printf("Владелец:%s",Billboard[b][Owner]);
        if(!
strcmp(Billboard[b][Owner],"None",true))
        {
            
format(String,sizeof(String),"Здесь могла быть ваша реклама");
            
Billboard[b][bObject] = CreateDynamicObject(4238,BillboardCord[b][bX],BillboardCord[b][bY],BillboardCord[b][bZ],0.0,0.0,BillboardCord[b][bfZ]);
            
SetDynamicObjectMaterialText(Billboard[b][bObject], 0,StringOBJECT_MATERIAL_SIZE_256x128,"Arial",241,0xFFFFFFFF,0,1);
            
printf("CreateDynamicObject(4238,%f,%f,%f,%f)",BillboardCord[b][bX],BillboardCord[b][bY],BillboardCord[b][bZ],BillboardCord[b][bfZ]);
        }
        else
        {
            
format(String,sizeof(String),"%s (%s)",Billboard[b][Text],Billboard[b][Owner]);
            
Billboard[b][bObject] = CreateDynamicObject(4238,BillboardCord[b][bX],BillboardCord[b][bY],BillboardCord[b][bZ],0.0,0.0,BillboardCord[b][bfZ]);
            
SetDynamicObjectMaterialText(Billboard[b][bObject], 0,StringOBJECT_MATERIAL_SIZE_256x128,"Arial",241,0xFFFFFFFF,0,1);
            
printf("CreateDynamicObject(4238,%f,%f,%f,%f)",BillboardCord[b][bX],BillboardCord[b][bY],BillboardCord[b][bZ],BillboardCord[b][bfZ]);
        }
    }
    
ini_closeFile(f); 
    return 
true;

Содержимое файла
PHP код:
ID 0 Nigga|John_Aizov
ID 1 
Nigga|John_Aizov
ID 2 
Nigga2|John_Aizov 
Reply
#10

Мда. Ну что мне делать? Я не пойму из-за чего оно
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)