Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.

Реклама


**Как получить V.I.P** (Перейти)
Чтобы заказать рекламу на Pro-Pawn.Ru, обращайтесь в Skype.
Баннерная реклама 200руб/мес, Текстовая 100руб/мес.
Показано с 1 по 7 из 7
  1. #1
    Аватар для Vasya_Pupkin
    Пользователь

    Статус
    Оффлайн
    Регистрация
    13.02.2016
    Сообщений
    69
    Репутация:
    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
    Адрес
    Восточный Мордор
    Сообщений
    3,931
    Репутация:
    1502 ±
    Проверяй данные через printf:
    1) Во время покупки выведи ячейку, в которую записались данные в массивы и сами значения выведи
    2) При сохранении (если оно есть) сделай всё то же самое
    3) При загрузке (опять ID ячейки и сами данные)

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

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

    Steve Pavlina

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

    Статус
    Оффлайн
    Регистрация
    13.02.2016
    Сообщений
    69
    Репутация:
    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
    Адрес
    Восточный Мордор
    Сообщений
    3,931
    Репутация:
    1502 ±
    Так что с логами? Залогируй и поймёшь в каком моменте данные портятся. Смысл перерывать весь код, когда можно конкретно посмотреть загрузку/сохранение и исправить?
    Связаться со мной можно в личных сообщениях этой группы

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

    Steve Pavlina

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

    Статус
    Оффлайн
    Регистрация
    13.02.2016
    Сообщений
    69
    Репутация:
    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
    Адрес
    Восточный Мордор
    Сообщений
    3,931
    Репутация:
    1502 ±
    Во-первых, скажу по секрету, что число загруженных домов (или что там у тебя) будет равно числу возвращённых из БД строк. А число возвращённых из БД строк будет хранится в переменной "rows". Поэтому переменная "i" и всё, что ты с ней пытаешься делать, не нужно ну вообще никак. Инфа о загруженных строках легко может выглядеть так
    PHP код:
    printf("[Загрузкa]: LoadFreezs | Загружено %d",rows); 
    Во-вторых, всё же покажи логи и покажи как ты логировал, дабы можно было всё и нам понять. И скрины с данными таблицы не забудь.
    Ну или жди того, кто вникнет в твой код без логов и поможет
    Связаться со мной можно в личных сообщениях этой группы

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

    Steve Pavlina

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

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

 

 

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

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

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

Ваши права

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