Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Показано с 1 по 7 из 7
  1. #1
    Аватар для Vasya_Pupkin
    Пользователь

    Статус
    Оффлайн
    Регистрация
    13.02.2016
    Сообщений
    77
    Репутация:
    0 ±

    Проблема с загрузкой и появлением 3д текста

    Всем привет
    У меня такая проблема когда покупаешь холодильник он появляется и все работает хорошо
    но после рестарта холодильник появляется(но не работает) пишет типа вы не возле холодильник и 3d текс тоже не появляется
    вот код загрузки
    Код HTML:
    publics: LoadFreezs()
    {
    	new stringer[128];
    	new i=0;
    	if(cache_num_rows() > 0)
    	{
    		for(new he = 0;he < cache_num_rows(); he++)
    		{
    		    FreezHome[he][FreezX] = cache_get_field_content_int(he, "fX");
    		    FreezHome[he][FreezY] = cache_get_field_content_float(he, "fY");
    		    FreezHome[he][FreezZ] = cache_get_field_content_float(he, "fZ");
    		    FreezHome[he][FreezRX] = cache_get_field_content_float(he, "frX");
    		    FreezHome[he][FreezRY] = cache_get_field_content_float(he, "frY");
    		    FreezHome[he][FreezRZ] = cache_get_field_content_float(he, "frZ");
    			i++;
    	        if(FreezHome[he][FreezX] != 0 && FreezHome[he][FreezY] != 0 && FreezHome[he][FreezZ] != 0)
    			{
    	            FreezHome[he][FreezObject] = CreateObject(2141, FreezHome[he][FreezX], FreezHome[he][FreezY], FreezHome[he][FreezZ], FreezHome[he][FreezRX], FreezHome[he][FreezRY], FreezHome[he][FreezRZ], he);
    				format(stringer, sizeof(stringer), "{FFFFFF}'Õîëîäèëüíèê'\nÂâåäèòå {FF0000}/freez");
    			 	FreezHome[he][FreezText] = CreateDynamic3DTextLabel(stringer, -1, FreezHome[he][FreezX], FreezHome[he][FreezY], FreezHome[he][FreezZ]+0.8,9.0,INVALID_PLAYER_ID, INVALID_VEHICLE_ID,0,he+50);
    	        }
    		}
    		printf("[Çàãðóçêa]: LoadFreezs | Çàãðóæåíî %d",i);
    	}
    	else printf("[Çàãðóçêa]: Õîëîäèëüíèêè íå çàãðóæåíû.");
    	return true;
    }
    А вот команда:
    Код:
    CMD:freez(playerid, params[])
    {
        new house = pTemp[playerid][PlayerHouse];
        if(HouseInfo[house][hHolod] == 0) return SendClientMessage(playerid, COLOR_GRAD1, "Â äîìå íåòó õîëîäèëüíèêà. Êóïèòü åãî ìîæíî â ãëàâíîì ìåíþ äîìà.");
    	if(!PlayerToPoint(5.0,playerid,FreezHome[house][FreezX], FreezHome[house][FreezY], FreezHome[house][FreezZ])) return SCM(playerid, -1, "Âû äîëæíû íàõîäèòñÿ îêîëî õîëîäèëüíèêà");
    	for(new x; x < 9; x++) TextDrawShowForPlayer(playerid, Holod[x]);
        SelectTextDraw(playerid, 0xFFFFFF50);
        DeletePVar(playerid, "timeclick"); //Óäàëåíèå
        SetTimerEx("unclick", 1000, 0, "d", playerid);
        return true;
    }

  2. #2
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Проверяй данные через printf:
    1) Во время покупки выведи ячейку, в которую записались данные в массивы и сами значения выведи
    2) При сохранении (если оно есть) сделай всё то же самое
    3) При загрузке (опять ID ячейки и сами данные)

    Где-то у тебя они явно, либо не в те ячейки записываются, либо как-то ещё портятся
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  3. Пользователь сказал cпасибо:
    Vasya_Pupkin (14.07.2016)
  4. #3
    Аватар для Vasya_Pupkin
    Пользователь

    Статус
    Оффлайн
    Регистрация
    13.02.2016
    Сообщений
    77
    Репутация:
    0 ±
    Вот как сохраняю:
    Код:
    new id = pTemp[playerid][PlayerHouse];
    		    if(PlayerInfo[playerid][pCash] < 500000) return SCM(playerid, COLOR_GREY, "Ошибка: У Вас не достаточно средств");
    			PlayerInfo[playerid][pCash] -= 500000;
    			HouseInfo[pTemp[playerid][PlayerHouse]][hHolod] = 1;
    
    		    SendClientMessage(playerid,COLOR_GREY,""gbAccess"Вы установили холодильник в свой дом!");
    
    		    GetPlayerPos(playerid, FreezHome[id][FreezX], FreezHome[id][FreezY], FreezHome[id][FreezZ]);
    		    new Float:dist = 2.0,Float:angle;
    		    GetPlayerFacingAngle(playerid,angle);
    
    		    FreezHome[id][FreezX] = FreezHome[id][FreezX] + dist * - floatsin(angle,degrees);
    		    FreezHome[id][FreezY] = FreezHome[id][FreezY] + dist * floatcos(angle,degrees);
    
    		    new Float: f_X = FreezHome[id][FreezX], Float: f_Y = FreezHome[id][FreezY], Float: f_Z = FreezHome[id][FreezZ];
    			new Float: f_rX = FreezHome[id][FreezRX], Float: f_rY = FreezHome[id][FreezRY], Float: f_rZ = FreezHome[id][FreezRZ];
    
    		    FreezHome[id][FreezObject] = CreateObject(2141, f_X, f_Y, f_Z, f_rX, f_rY, f_rZ, H::[id][hID]);
    
    		    EditObject(playerid, FreezHome[id][FreezObject]);
    
    			new query[128];
    			mysql_format(database, query, sizeof(query), "INSERT INTO homefreez (fID) VALUES (%d)", id);
    			mysql_function_query(database, query, true, "", "d", playerid);
    Тут то же сохроняю когда сдвинул куда нужно его:
    Код:
    if(objectid == FreezHome[id][FreezObject])
    		{
    			SetObjectPos(objectid, fX, fY, fZ);
    			SetObjectRot(objectid, fRotX, fRotY, fRotZ);
    			FreezHome[id][FreezX] = fX;
    			FreezHome[id][FreezY] = fY;
    			FreezHome[id][FreezZ] = fZ;
    			FreezHome[id][FreezRX] = fRotX;
    			FreezHome[id][FreezRY] = fRotY;
    			FreezHome[id][FreezRZ] = fRotZ;
    			format(stringer, sizeof(stringer), "{FFFFFF}'Холодильник'\nВведите {FF0000}/freez");
    		 	FreezHome[id][FreezText] = CreateDynamic3DTextLabel(stringer, -1, FreezHome[id][FreezX], FreezHome[id][FreezY], FreezHome[id][FreezZ]+0.8,9.0,INVALID_PLAYER_ID, INVALID_VEHICLE_ID,0,id+50);
    			new query[200];
    	        mysql_format(database, query, sizeof(query), "UPDATE homefreez SET fX= %f, fY = %f, fZ = %f, frX = %f, frY = %f, frZ = %f WHERE fID = %d", fX, fY, fZ, fRotX, fRotY, fRotZ, id);
    			mysql_function_query(database, query, true, "", "");
    		}
    В загрузке где he+50 где he там должен был быть ид дом которому мы прибавляем +50 но тут у него всегда 50 виртуальный мир не чего не прибавляет (
    Хотя в таблицу все записывает как нужно но работать не хочет . . .
    Последний раз редактировалось Vasya_Pupkin; 12.07.2016 в 22:21.

  5. #4
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Так что с логами? Залогируй и поймёшь в каком моменте данные портятся. Смысл перерывать весь код, когда можно конкретно посмотреть загрузку/сохранение и исправить?
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  6. Пользователь сказал cпасибо:
    Vasya_Pupkin (14.07.2016)
  7. #5
    Аватар для Vasya_Pupkin
    Пользователь

    Статус
    Оффлайн
    Регистрация
    13.02.2016
    Сообщений
    77
    Репутация:
    0 ±
    Вот возможно не правильно: но я попытался и вроде как дело в загрузке
    Проверял так:
    Код:
    printf("id: %i | x: %f | y: %f | z: %f | id: %i", he, FreezHome[he][FreezX], FreezHome[he][FreezY], FreezHome[he][FreezZ],he+50);
    Последний раз редактировалось Vasya_Pupkin; 12.07.2016 в 22:08.

  8. #6
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Во-первых, скажу по секрету, что число загруженных домов (или что там у тебя) будет равно числу возвращённых из БД строк. А число возвращённых из БД строк будет хранится в переменной "rows". Поэтому переменная "i" и всё, что ты с ней пытаешься делать, не нужно ну вообще никак. Инфа о загруженных строках легко может выглядеть так
    PHP код:
    printf("[Загрузкa]: LoadFreezs | Загружено %d",rows); 
    Во-вторых, всё же покажи логи и покажи как ты логировал, дабы можно было всё и нам понять. И скрины с данными таблицы не забудь.
    Ну или жди того, кто вникнет в твой код без логов и поможет
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  9. Пользователь сказал cпасибо:
    Vasya_Pupkin (14.07.2016)
  10. #7
    Аватар для Vasya_Pupkin
    Пользователь

    Статус
    Оффлайн
    Регистрация
    13.02.2016
    Сообщений
    77
    Репутация:
    0 ±
    Все сделал тему можно закрыть спс за быстрые ответы )
    Последний раз редактировалось Vasya_Pupkin; 14.07.2016 в 17:22.

 

 

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •