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

    Статус
    Оффлайн
    Регистрация
    15.06.2014
    Сообщений
    651
    Репутация:
    106 ±

    Проблема с gangzone

    Столкнулась с такой проблемой:

    1. Когда загружаю мод, GangZone грузятся, но не присваивает цвет (присвоение)
    2. Когда закрываю мод GangZone сохраняются, но присваивает 0 значени, чем проблема?

      Открыть/закрыть

    PHP код:
    enum gi
    {
        
    gID,
        
    Float:MinX,
        
    Float:MinY,
        
    Float:MaxX,
        
    Float:MaxY,
        
    gOwner,
    };
    new 
    GZInfo[104][gi]; 
    public OnPlayerConnect(playerid)
    PHP код:
        for(new isizeof(GZInfo); i++)
        {
            
    GangZoneShowForPlayer(playeridGZInfo[i][gID], GetGangZoneColor(GZInfo[i][gOwner]));
        } 
    PHP код:
    stock LoadGangZone()
    {
        new 
    iniFile ini_openFile("gangzone.ini"),
            
    query[35+5*4];
        for(new 
    isizeof(GZInfo); i++)
        {
            
    format(querysizeof(query),"%d"i+1);
            
    ini_getString(iniFilequeryquery);
            
    sscanf(query"p<|>ffff"GZInfo[i][MinX], GZInfo[i][MinY], GZInfo[i][MaxX], GZInfo[i][MaxY]);
            
    //printf("%i)%s\n%f|%f|%f|%f|%d\n", i, query, GZInfo[i][MinX], GZInfo[i][MinY], GZInfo[i][MaxX], GZInfo[i][MaxY], GZInfo[i][gOwner]);
            
    GZInfo[i][gID] = GangZoneCreate(GZInfo[i][MinX], GZInfo[i][MinY], GZInfo[i][MaxX], GZInfo[i][MaxY]);
        }
        
    ini_closeFile(iniFile);
        
    printf("Загружено %d гангзон"sizeof(GZInfo));

    PHP код:
    stock SaveGangZone()
    {
        new 
    iniFile ini_openFile("gangzone.ini"),
            
    query[35+5*4],
            
    key_string[3];
        for(new 
    isizeof(GZInfo); i++)
        {
            
    format(key_stringsizeof(key_string),"%d"i+1);
            
    format(querysizeof(query),"%f|%f|%f|%f|%d"GZInfo[i][MinX], GZInfo[i][MinY], GZInfo[i][MaxX], GZInfo[i][MaxY], GZInfo[i][gOwner]);
            
    ini_setString(iniFilekey_stringquery);
        }
        
    ini_closeFile(iniFile);
        
    printf("Сохранено %d гангзон"sizeof(GZInfo));

    PHP код:
    stock GetGangZoneColor(gangzonex)
    {
        new 
    zx;
        switch(
    GZInfo[gangzonex][gOwner])
        {
            case 
    0zx 0xFFFFFFAA;
            case 
    1zx 0x009900AA;//grove
            
    case 2zx 0xCC00FFAA;//ballas
            
    case 3zx 0x00b4e1AA;//aztecas
            
    case 4zx 0xffcd00AA;//vagos
            
    case 5zx 0x6666ffAA;//rifa
        
    }
        return 
    zx;


  2. #2
    Аватар для Daniel_Cortez
    "Это не хак, это фича"

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    2,192
    Репутация:
    2589 ±
    Цитата Сообщение от gangzone.ini Посмотреть сообщение
    1. Когда загружаю мод, GangZone грузятся, но не присваивает цвет (присвоение)
    Ну да, вы же не считываете из файла ID банды.

    Цитата Сообщение от gangzone.ini Посмотреть сообщение
    2. Когда закрываю мод GangZone сохраняются, но присваивает 0 значени, чем проблема?
    В том, что сервер не ожидает, пока выполнится всё содержимое OnGameModeExit (а именно оттуа у вас и вызывается сохранение гангзон, так?)
    Решение этой проблемы уже обсуждалось здесь.

    И, скоее всего, ещё один пример этой проблемы можно увидеть здесь. Проблема только в том, что топикстартер ничего не хочет слышать по этому поводу, отговариваясь, что у него MySQL, а не файлы и это якобы никак не связано с его случаем (хотя проблема на самом деле должна быть одна и та же - сервер не успевает вовремя сохранить данные и сохранение происходит, когда экземпляр AMX уже выгружен и вся область памяти, которая под него отводилась, теперь деинициализирована нулями - отсюда и нули в сохраняемых данных).
    Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).

  3. #3
    Аватар для gangzone.ini
    Пользователь

    Статус
    Оффлайн
    Регистрация
    15.06.2014
    Сообщений
    651
    Репутация:
    106 ±
    1. Сделала команду с сохранением GZ, все ровно присваивает 0 значение, всего GZ 104, 1-99 присваивается 0, а 100-104 остаётся.
    Последний раз редактировалось gangzone.ini; 05.06.2015 в 17:35.

  4. #4
    Аватар для $continue$
    Пользователь

    Статус
    Оффлайн
    Регистрация
    02.08.2014
    Адрес
    г. Киров (aka Вятка)
    Сообщений
    1,487
    Репутация:
    276 ±
    Я не силен в файлах но, OnPlayerSpawn нужно добавить переменную с условием на то что игрок спавниться 1 раз
    PHP код:
         for(new isizeof(GZInfo); i++)
        {
            
    GangZoneShowForPlayer(playeridGZInfo[i][gID], GetGangZoneColor(GZInfo[i][gOwner]));
            
    printf("GangZoneShowForPlayer('%d', '%d', '%06x')"playeridGZInfo[i][gID], GetGangZoneColor(GZInfo[i][gOwner]));
        } 
    PHP код:
    stock LoadGangZone()
    {
        new 
    iniFile ini_openFile("gangzone.ini"),
            
    query[35+5*4];
        for(new 
    isizeof(GZInfo); i++)
        {
            
    format(querysizeof(query),"%d"i+1);
            
    ini_getString(iniFilequeryquery);
            
    sscanf(query"p<|>ffffi"GZInfo[i][MinX], GZInfo[i][MinY], GZInfo[i][MaxX], GZInfo[i][MaxY], GZInfo[i][gOwner]);
            
    GZInfo[i][gID] = GangZoneCreate(GZInfo[i][MinX], GZInfo[i][MinY], GZInfo[i][MaxX], GZInfo[i][MaxY]);
            
    printf("GangZoneCreate('%d')"GZInfo[i][gID]);
        }
        
    ini_closeFile(iniFile); 
    Накидал проверку:
    Глобально
    PHP код:
    new boolfirst_time_spawn[MAX_PLAYERS char] = {false, ...}; 
    OnPlayerSpawn
    PHP код:
    if(first_time_spawn{playerid} == false)
    {
        for(new 
    isizeof(GZInfo); i++)
        {
            
    GangZoneShowForPlayer(playeridGZInfo[i][gID], GetGangZoneColor(GZInfo[i][gOwner]));
        }
        
    first_time_spawn{playerid} = true;

    OnPlayerConnect
    PHP код:
    if(first_time_spawn{playerid} == true)
    {
        
    first_time_spawn{playerid} = false;

    Последний раз редактировалось $continue$; 05.06.2015 в 18:13.

 

 

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

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

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

Ваши права

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