Мучаюсь с этой ФИГНЁЙ уже 3-й день!(Дома,mysql)
#1

[Ребята привет! К вам обращаюсь потому что вы лучший форум по скриптингу! Тут люди действительно что-то знают!!!!]
Собственно к делу!
Такая проблема: "пишу мод, сделал систему домов! 1) Поставил 5-10 домов, купил - все ОТЛИЧНО работает! только перезапускаю сервер - меняется иды домов, иногда меняется даже координаты!"
В чем проблема? Сохранение, загрузка,команда?
Раз 10 разбирал по частям систему! Уже каждую букву знаю ;(
Может цикл кривой? Может сохранение кривое? Или загрузка?
ПОМОГИТЕ! В майскл не так давно!
Вот так
Домики стоят:
1 2 3 4 5
После рестарта:
5 2 3 4 1

Если я купил дом и рестарт то:
было: 1 2 3 4 5


стало (1,5)(Дом в домике) 2 3 4
Reply
#2

print каждую загрузку и сохранение и сюда запрос
Reply
#3

СТОЙ НЕ УХОДИ!!!!! Можно по-подробнее пожалуйста!)
Ты первый кто ответил )))
-----------------------------------------------------
Ушел, блин(((
Reply
#4

вот в общем загрузка сохранение и команда:
PHP код:
stock SavePropertys()
{
    for(new 
houseid 1houseid <= TotalHousehouseid++)
    {
    
mysql_format(MYSQL_ARGasdsizeof(asd),"UPDATE `House` SET `hEntrancex` = '%f', `hEntrancey` = '%f',`hEntrancez` = '%f',`hExitx` = '%f', `hExity` = '%f', `hExitz` = '%f',`hOwner` = '%e', `hValue` = '%d',`hHel` = '%d', `hInt` = '%d',`hLock` = '%d',`hOwned` = '%d',`hTakings` = '%d', `hVec` = '%d',`hVcol1` = '%d',`hVcol2` = '%d', `hKlass` = '%d', `hCarx` = '%f',`hCary` = '%f', `hCarz` = '%f', `hCarc` = '%f' WHERE `hID` = '%d'",
    
HouseInfo[houseid][hEntrancex],
    
HouseInfo[houseid][hEntrancey],
    
HouseInfo[houseid][hEntrancez],
    
HouseInfo[houseid][hExitx],
    
HouseInfo[houseid][hExity],
    
HouseInfo[houseid][hExitz],
    
HouseInfo[houseid][hOwner],
    
HouseInfo[houseid][hValue],
    
HouseInfo[houseid][hHel],
    
HouseInfo[houseid][hInt],
     
HouseInfo[houseid][hLock],
      
HouseInfo[houseid][hOwned],
    
HouseInfo[houseid][hTakings],
    
HouseInfo[houseid][hVec],
    
HouseInfo[houseid][hVcol1],
    
HouseInfo[houseid][hVcol2],
    
HouseInfo[houseid][hKlass],
    
HouseInfo[houseid][hCarx],
    
HouseInfo[houseid][hCary],
    
HouseInfo[houseid][hCarz],
    
HouseInfo[houseid][hCarc],
    
HouseInfo[houseid][hID]
    );
    
mysql_function_query(MYSQL_ARGasdfalse"""");//Îòïðàâëÿåì çàïðîñ
    
}

PHP код:
else if(strcmp(cmd"/addh"true) == 0)
    {
        
//if(PlayerInfo[playerid][pLogin] == 0) return true;
        
if(!IsPlayerConnected(playerid)) return true;
         
tmp strtok(cmdtextidx);
          if(!
strlen(tmp)) return SendClientMessage(playeridCOLOR_GRAD2"Ââåäèòå: /addh [êëàññ] [öåíà]");
          new 
stat12 strval(tmp);
          if(
stat12 || stat12 4) return SCM(playeridCOLOR_WHITE"Íå âåðíûé èä êëàññà (Îò 0 äî 4)");
         
tmp strtok(cmdtextidx);
          if(!
strlen(tmp)) return SendClientMessage(playeridCOLOR_GRAD2"Ââåäèòå: /addh [êëàññ] [öåíà]");
          new 
stat1 strval(tmp);
          if(
stat1 || stat1 1000000000) return SCM(playeridCOLOR_WHITE"Íå âåðíîå çíà÷åíèå.");
        new 
FloatposXFloatposYFloatposZ;
        
GetPlayerPos(playeridposXposYposZ);
        
TotalHouse++;
    
/////////    hID    hEntrancex    hEntrancey    hEntrancez    hExitx    hExity    hExitz    hOwner    hValue    hHel    hInt    hLock    hOwned    hTakings    hVec    hVcol1    hVcol2    hKlass    hCarx    hCary    hCarz    hCarc
    //    format(asd, 256, "INSERT INTO `House` (`hID`,`hEntrancex`, `hEntrancey`,`hEntrancez`) VALUES ('%d','%f', '%f', '%f')",TotalHouse,posX,posY,posZ);
    //    mysql_function_query(MYSQL_ARG, asd, false, "", "");
        
mysql_format(MYSQL_ARG,asdsizeof(asd), "INSERT INTO `House` (`hID`,`hEntrancex`, `hEntrancey`,`hEntrancez`) VALUES ('%d','%f', '%f', '%f')",TotalHouse,posX,posY,posZ);
        
mysql_function_query(MYSQL_ARGasdfalse"""");
        
HouseInfo[TotalHouse][hID] = TotalHouse;
        
HouseInfo[TotalHouse][hEntrancex] = posX;
        
HouseInfo[TotalHouse][hEntrancey] = posY;
        
HouseInfo[TotalHouse][hEntrancez] = posZ;
        
HouseInfo[TotalHouse][hLock] = 1;
        
HouseInfo[TotalHouse][hKlass] = stat12;
        
HouseInfo[TotalHouse][hValue] = stat1;
        
HouseInfo[TotalHouse][hInt] = 10;
        
HouseInfo[TotalHouse][hExitx] = 421.7613;
        
HouseInfo[TotalHouse][hExity] = 2536.4836;
        
HouseInfo[TotalHouse][hExitz] = 10.0000;
         if(
HouseInfo[TotalHouse][hKlass] == 1)
        {
            
HouseInfo[TotalHouse][hInt] = 6;
            
HouseInfo[TotalHouse][hExitx] = -68.8618;
            
HouseInfo[TotalHouse][hExity] = 1352.2183;
            
HouseInfo[TotalHouse][hExitz] = 1080.2109;
        }
        else if(
HouseInfo[TotalHouse][hKlass] == 2)
        {
            
HouseInfo[TotalHouse][hInt] = 5;
            
HouseInfo[TotalHouse][hExitx] = 22.7405;
            
HouseInfo[TotalHouse][hExity] = 1404.3799;
            
HouseInfo[TotalHouse][hExitz] = 1084.4297;
        }
        else if(
HouseInfo[TotalHouse][hKlass] == 3)
        {
            
HouseInfo[TotalHouse][hInt] = 12;
            
HouseInfo[TotalHouse][hExitx] = 2324.3367;
            
HouseInfo[TotalHouse][hExity] = -1148.6296;
            
HouseInfo[TotalHouse][hExitz] = 1050.7101;
        }
        else
        {
            
HouseInfo[TotalHouse][hInt] = 5;
            
HouseInfo[TotalHouse][hExitx] = 140.2206;
            
HouseInfo[TotalHouse][hExity] = 1367.2734;
            
HouseInfo[TotalHouse][hExitz] = 1083.8612;
        }
        
HouseInfo[TotalHouse][hPickup] = CreatePickup(127323HouseInfo[TotalHouse][hEntrancex], HouseInfo[TotalHouse][hEntrancey], HouseInfo[TotalHouse][hEntrancez],-1);
        
//pickups++;
        
HouseInfo[TotalHouse][hMIcon] = CreateDynamicMapIcon(HouseInfo[TotalHouse][hEntrancex], HouseInfo[TotalHouse][hEntrancey], HouseInfo[TotalHouse][hEntrancez], 31COLOR_WHITE0, -1, -1);
        
SendMes(playerid,COLOR_WHITE,"Âû ñîçäàëè äîì íîìåð: %d. Èñïîëüçóéòå /setcarh (Óêàçàòü ïîçèöèþ àâòî)"TotalHouse);
        
BuyHouse();
        
SavePropertys();
        return 
true;
    } 
PHP код:
forward LoadPropertys();
public 
LoadPropertys()
{
    new 
time GetTickCount();
     new 
temp[128],rows,fields;
    
cache_get_data(rowsfieldsMYSQL_ARG);
    if(
rows)
    {
        for(new 
idx 1idx <= rowsidx++)
        {
            
cache_get_field_content(idx-1,"hID",temp,MYSQL_ARG), HouseInfo[idx][hID] = strval(temp);
            
cache_get_field_content(idx-1,"hEntrancex",temp,MYSQL_ARG), HouseInfo[idx][hEntrancex] = floatstr(temp);
            
cache_get_field_content(idx-1,"hEntrancey",temp,MYSQL_ARG), HouseInfo[idx][hEntrancey] = floatstr(temp);
            
cache_get_field_content(idx-1,"hEntrancez",temp,MYSQL_ARG), HouseInfo[idx][hEntrancez] = floatstr(temp);
            
cache_get_field_content(idx-1,"hExitx",temp,MYSQL_ARG), HouseInfo[idx][hExitx] = floatstr(temp);
            
cache_get_field_content(idx-1,"hExity",temp,MYSQL_ARG), HouseInfo[idx][hExity] = floatstr(temp);
            
cache_get_field_content(idx-1,"hExitz",temp,MYSQL_ARG), HouseInfo[idx][hExitz] = floatstr(temp);
            
cache_get_field_content(idx-1,"hOwner",HouseInfo[idx][hOwner],MYSQL_ARG,24);
            
cache_get_field_content(idx-1,"hValue",temp,MYSQL_ARG), HouseInfo[idx][hValue] = strval(temp);
            
cache_get_field_content(idx-1,"hHel",temp,MYSQL_ARG), HouseInfo[idx][hHel] = strval(temp);
            
cache_get_field_content(idx-1,"hInt",temp,MYSQL_ARG), HouseInfo[idx][hInt] = strval(temp);
            
cache_get_field_content(idx-1,"hLock",temp,MYSQL_ARG), HouseInfo[idx][hLock] = strval(temp);
            
cache_get_field_content(idx-1,"hOwned",temp,MYSQL_ARG), HouseInfo[idx][hOwned] = strval(temp);
            
cache_get_field_content(idx-1,"hTakings",temp,MYSQL_ARG), HouseInfo[idx][hTakings] = strval(temp);
            
cache_get_field_content(idx-1,"hVec",temp,MYSQL_ARG), HouseInfo[idx][hVec] = strval(temp);
            
cache_get_field_content(idx-1,"hVcol1",temp,MYSQL_ARG), HouseInfo[idx][hVcol1] = strval(temp);
            
cache_get_field_content(idx-1,"hVcol2",temp,MYSQL_ARG), HouseInfo[idx][hVcol2] = strval(temp);
            
cache_get_field_content(idx-1,"hKlass",temp,MYSQL_ARG), HouseInfo[idx][hKlass] = strval(temp);
            
cache_get_field_content(idx-1,"hCarx",temp,MYSQL_ARG), HouseInfo[idx][hCarx] = floatstr(temp);
            
cache_get_field_content(idx-1,"hCary",temp,MYSQL_ARG), HouseInfo[idx][hCary] = floatstr(temp);
            
cache_get_field_content(idx-1,"hCarz",temp,MYSQL_ARG), HouseInfo[idx][hCarz] = floatstr(temp);
            
cache_get_field_content(idx-1,"hCarc",temp,MYSQL_ARG), HouseInfo[idx][hCarc] = floatstr(temp);
            if(
HouseInfo[idx][hOwned] == 0)
            {
            
HouseInfo[idx][hPickup] = CreatePickup(127323HouseInfo[idx][hEntrancex], HouseInfo[idx][hEntrancey], HouseInfo[idx][hEntrancez]);
//                pickups++;
            
HouseInfo[idx][hMIcon] = CreateDynamicMapIcon(HouseInfo[idx][hEntrancex], HouseInfo[idx][hEntrancey], HouseInfo[idx][hEntrancez], 31COLOR_WHITE0, -1, -1400.0);
            }
            if(
HouseInfo[idx][hOwned] == 1)
            {
            
HouseInfo[idx][hPickup] = CreatePickup(127223HouseInfo[idx][hEntrancex], HouseInfo[idx][hEntrancey], HouseInfo[idx][hEntrancez]);
            
//    pickups++;
            
HouseInfo[idx][hMIcon] = CreateDynamicMapIcon(HouseInfo[idx][hEntrancex], HouseInfo[idx][hEntrancey], HouseInfo[idx][hEntrancez], 32COLOR_WHITE0, -1, -1400.0);
            }
            
TotalHouse++;
        }
    }
    
printf("[Çàãðóæåíî äîìîâ]: <%d>. Âðåìåíè çàòðà÷åíî: <%d ìñ>"TotalHouseGetTickCount()-time);
    return 
true;

Reply
#5

Какой смысл сохранять каждый раз позицию дома, если дом - недвижимость?
А по теме: Действительно. Выводи в консоль каждую строку действия и сверяй.
Reply
#6

КАК!?!
Reply
#7

PHP код:
stock SavePropertys()
{
    for(new 
houseid 1houseid <= TotalHousehouseid++)
    {
    
mysql_format(MYSQL_ARGasdsizeof(asd),"UPDATE `House` SET `hEntrancex` = '%f', `hEntrancey` = '%f',`hEntrancez` = '%f',`hExitx` = '%f', `hExity` = '%f', `hExitz` = '%f',`hOwner` = '%e', `hValue` = '%d',`hHel` = '%d', `hInt` = '%d',`hLock` = '%d',`hOwned` = '%d',`hTakings` = '%d', `hVec` = '%d',`hVcol1` = '%d',`hVcol2` = '%d', `hKlass` = '%d', `hCarx` = '%f',`hCary` = '%f', `hCarz` = '%f', `hCarc` = '%f' WHERE `hID` = '%d'",
    
HouseInfo[houseid][hEntrancex],
    
HouseInfo[houseid][hEntrancey],
    
HouseInfo[houseid][hEntrancez],
    
HouseInfo[houseid][hExitx],
    
HouseInfo[houseid][hExity],
    
HouseInfo[houseid][hExitz],
    
HouseInfo[houseid][hOwner],
    
HouseInfo[houseid][hValue],
    
HouseInfo[houseid][hHel],
    
HouseInfo[houseid][hInt],
     
HouseInfo[houseid][hLock],
      
HouseInfo[houseid][hOwned],
    
HouseInfo[houseid][hTakings],
    
HouseInfo[houseid][hVec],
    
HouseInfo[houseid][hVcol1],
    
HouseInfo[houseid][hVcol2],
    
HouseInfo[houseid][hKlass],
    
HouseInfo[houseid][hCarx],
    
HouseInfo[houseid][hCary],
    
HouseInfo[houseid][hCarz],
    
HouseInfo[houseid][hCarc],
    
HouseInfo[houseid][hID]
    );
    
mysql_function_query(MYSQL_ARGasdfalse"""");//Îòïðàâëÿåì çàïðîñ
    
printf("Сохранение: %s",asd);
    }

Замени и тебе в файле samp_log в самом конце выдаст запрос типа: UPDATE `house`.... Дай его нам
Reply
#8

и чем это поможет?
Reply
#9

Посмотрим запрос твой. Я так понял тебе бы выучить программирование для начала.
И закрывай свою консоль командой exit.
Reply
#10

Да я как бы знаю его! Проверки подобные всегда ставлю!
Reply
#11

Какой запрос выходит
Reply
#12

PHP код:
[18:14:40СохранениеUPDATE `HouseSET `hEntrancex` = '1657.680054', `hEntrancey` = '-2321.280029',`hEntrancez` = '13.382800',`hExitx` = '-68.861801', `hExity` = '1352.219971', `hExitz` = '1080.209961',`hOwner` = '', `hValue` = '1',`hHel` = '0', `hInt` = '6',`hLock` = '1',`hOwned` = '0',`hTakings` = '0', `hVec` = '0',`hVcol1` = '0',`hVcol2` = '0', `hKlass` = '1', `hCarx` = '0.000000',`hCary` = '0.000000', `hCarz` = '0.000000', `hCarc` = '0.000000' WHERE `hID` = '5'
[18:14:40СохранениеUPDATE `HouseSET `hEntrancex` = '1652.390015', `hEntrancey` = '-2320.919922',`hEntrancez` = '13.382800',`hExitx` = '-68.861801', `hExity` = '1352.219971', `hExitz` = '1080.209961',`hOwner` = '', `hValue` = '1',`hHel` = '0', `hInt` = '6',`hLock` = '1',`hOwned` = '0',`hTakings` = '0', `hVec` = '0',`hVcol1` = '0',`hVcol2` = '0', `hKlass` = '1', `hCarx` = '0.000000',`hCary` = '0.000000', `hCarz` = '0.000000', `hCarc` = '0.000000' WHERE `hID` = '4'
[18:14:40СохранениеUPDATE `HouseSET `hEntrancex` = '1646.609985', `hEntrancey` = '-2320.510010',`hEntrancez` = '13.382800',`hExitx` = '-68.861801', `hExity` = '1352.219971', `hExitz` = '1080.209961',`hOwner` = '', `hValue` = '1',`hHel` = '0', `hInt` = '6',`hLock` = '1',`hOwned` = '0',`hTakings` = '0', `hVec` = '0',`hVcol1` = '0',`hVcol2` = '0', `hKlass` = '1', `hCarx` = '0.000000',`hCary` = '0.000000', `hCarz` = '0.000000', `hCarc` = '0.000000' WHERE `hID` = '3'
[18:14:40СохранениеUPDATE `HouseSET `hEntrancex` = '1640.329956', `hEntrancey` = '-2320.330078',`hEntrancez` = '13.382800',`hExitx` = '-68.861801', `hExity` = '1352.219971', `hExitz` = '1080.209961',`hOwner` = '', `hValue` = '1',`hHel` = '0', `hInt` = '6',`hLock` = '1',`hOwned` = '0',`hTakings` = '0', `hVec` = '0',`hVcol1` = '0',`hVcol2` = '0', `hKlass` = '1', `hCarx` = '0.000000',`hCary` = '0.000000', `hCarz` = '0.000000', `hCarc` = '0.000000' WHERE `hID` = '2'
[18:14:40СохранениеUPDATE `HouseSET `hEntrancex` = '1634.670044', `hEntrancey` = '-2320.399902',`hEntrancez` = '13.382800',`hExitx` = '-68.861801', `hExity` = '1352.219971', `hExitz` = '1080.209961',`hOwner` = '', `hValue` = '1',`hHel` = '0', `hInt` = '6',`hLock` = '1',`hOwned` = '0',`hTakings` = '0', `hVec` = '0',`hVcol1` = '0',`hVcol2` = '0', `hKlass` = '1', `hCarx` = '0.000000',`hCary` = '0.000000', `hCarz` = '0.000000', `hCarc` = '0.000000' WHERE `hID` = '1' 


На сервере 5 домов
Reply
#13

почему-то с пятого дома начинает , по идее с 1 должно
Reply
#14

Запрос где ты загружаешь дома покажи.
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)