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

    Статус
    Оффлайн
    Регистрация
    20.01.2016
    Адрес
    GetPlayerPos(playerid, pos[0], pos[1], pos[2]);
    Сообщений
    47
    Репутация:
    3 ±

    Покупка АЗС

    Возможно купить АЗС с ID 0. Другие невозможно.
    В чем проблема? Помогите решить.

    PHP код:
    CMD:buyazs(playeridparams[])
    {
        if(
    pInfo[playerid][pAZSKey] != -1)
            return 
    SendClientMessage(playeridCLR"Community: {FFFFFF}У тебя уже есть заправка.");
                       
        foreach(new 
    Azs)
        {
            if(
    PlayerToPoint(2.0playeridazsInfo[i][azsX], azsInfo[i][azsY], azsInfo[i][azsZ]))
            {
                
    SetPVarInt(playerid"SavedAzsID"i);
                new 
    string[64];
                
    format(stringsizeof(string), "Эта АЗС продается!\n\nЦена: {33FF00}$%s"convertNumber(azsInfo[i][azsPrice]));
                
    ShowPlayerDialog(playeridDIALOG_AZSDIALOG_STYLE_MSGBOX"АЗС"string"Купить""Закрыть");
            }
        }
        return 
    1;

    PHP код:
    CMD:buyazs(playeridparams[])
    {
        if(
    pInfo[playerid][pAZSKey] != -1)
            return 
    SendClientMessage(playeridCLR"Community: {FFFFFF}У тебя уже есть заправка.");
                       
        for(new 
    0MAX_AZSi++)
        {
            if(
    PlayerToPoint(2.0playeridazsInfo[i][azsX], azsInfo[i][azsY], azsInfo[i][azsZ]))
            {
                
    SetPVarInt(playerid"SavedAzsID"i);
                new 
    string[64];
                
    format(stringsizeof(string), "Эта АЗС продается!\n\nЦена: {33FF00}$%s"convertNumber(azsInfo[i][azsPrice]));
                
    ShowPlayerDialog(playeridDIALOG_AZSDIALOG_STYLE_MSGBOX"АЗС"string"Купить""Закрыть");
            }
        }
        return 
    1;

    Последний раз редактировалось Processing; 19.04.2016 в 21:48.

  2. #2
    Аватар для vovandolg
    Пользователь

    Статус
    Оффлайн
    Регистрация
    17.11.2015
    Адрес
    Stavropol
    Сообщений
    1,369
    Репутация:
    113 ±
    PHP код:
    //Попробуй вместо этой
    PlayerToPoint(rangeplayeridxyz)
    //заюзать эту и побольше радиус вместо 2.0 поставь хотя бы 10.0
    IsPlayerInRangeOfPoint(playeridrangexyz
    PHP код:
    CMD:buyazs(playeridparams[])
    {
        if(
    pInfo[playerid][pAZSKey] != -1)
            return 
    SendClientMessage(playeridCLR"Community: {FFFFFF}У тебя уже есть заправка.");        
        for(new 
    0MAX_AZSi++)
        {
            if(
    IsPlayerInRangeOfPoint(playerid10.0azsInfo[i][azsX], azsInfo[i][azsY], azsInfo[i][azsZ])) continue;
            
    SetPVarInt(playerid"SavedAzsID"i);
            new 
    string[64];
            
    format(stringsizeof(string), "Эта АЗС продается!\n\nЦена: {33FF00}$%s"convertNumber(azsInfo[i][azsPrice]));
            
    ShowPlayerDialog(playeridDIALOG_AZSDIALOG_STYLE_MSGBOX"АЗС"string"Купить""Закрыть");
        }
        return 
    1;

    Последний раз редактировалось vovandolg; 19.04.2016 в 22:15.
    [Anticheat]___Invisible Fly Hack
    [Anticheat]____Weapon/Ammo Hack
    [Function]______ResetPlayerWeaponSlot
    [Function]_______FIX_SetPlayerAmmo
    [ServerMod]______TDM | Zombie Apokalypse

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

    Статус
    Оффлайн
    Регистрация
    20.01.2016
    Адрес
    GetPlayerPos(playerid, pos[0], pos[1], pos[2]);
    Сообщений
    47
    Репутация:
    3 ±
    Цитата Сообщение от vovandolg Посмотреть сообщение
    PHP код:
    //Попробуй вместо этой
    PlayerToPoint(rangeplayeridxyz)
    //заюзать эту и побольше радиус вместо 2.0 поставь хотя бы 10.0
    IsPlayerInRangeOfPoint(playeridrangexyz
    PHP код:
    CMD:buyazs(playeridparams[])
    {
        if(
    pInfo[playerid][pAZSKey] != -1)
            return 
    SendClientMessage(playeridCLR"Community: {FFFFFF}У тебя уже есть заправка.");        
        for(new 
    0MAX_AZSi++)
        {
            if(
    IsPlayerInRangeOfPoint(playerid10.0azsInfo[i][azsX], azsInfo[i][azsY], azsInfo[i][azsZ])) continue;
            
    SetPVarInt(playerid"SavedAzsID"i);
            new 
    string[64];
            
    format(stringsizeof(string), "Эта АЗС продается!\n\nЦена: {33FF00}$%s"convertNumber(azsInfo[i][azsPrice]));
            
    ShowPlayerDialog(playeridDIALOG_AZSDIALOG_STYLE_MSGBOX"АЗС"string"Купить""Закрыть");
        }
        return 
    1;

    Теперь с любого места кидает диалог с неверным ID и ценой "0".

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

    Статус
    Оффлайн
    Регистрация
    17.11.2015
    Адрес
    Stavropol
    Сообщений
    1,369
    Репутация:
    113 ±
    DIALOG_AZS - этой ищи константу, в ней должен быть указан ID диалога
    convertNumber - покажи эту функцию что она делает

    - - - Добавлено - - -

    Забыл,
    Код:
    CMD:buyazs(playerid, params[])
    оранжевым выделено, то что можно удалить, так как оно не заюзано в команде
    [Anticheat]___Invisible Fly Hack
    [Anticheat]____Weapon/Ammo Hack
    [Function]______ResetPlayerWeaponSlot
    [Function]_______FIX_SetPlayerAmmo
    [ServerMod]______TDM | Zombie Apokalypse

  5. #5
    Аватар для Processing
    Пользователь

    Статус
    Оффлайн
    Регистрация
    20.01.2016
    Адрес
    GetPlayerPos(playerid, pos[0], pos[1], pos[2]);
    Сообщений
    47
    Репутация:
    3 ±
    Цитата Сообщение от vovandolg Посмотреть сообщение
    DIALOG_AZS - этой ищи константу, в ней должен быть указан ID диалога
    convertNumber - покажи эту функцию что она делает
    PHP код:
    stock convertNumber(value)
    {
        
    // [url]http://forum.sa-mp.com/showthread.php?p=843781#post843781[/url]
        
    new string[24];
        
    format(stringsizeof(string), "%d"value);

        for(new 
    = (strlen(string) - 3); > (value 0) ; -= 3)
        {
            
    strins(string[i], ","0);
        }

        return 
    string;

    ID 4000

    - - - Добавлено - - -

    PHP код:
    CMD:buyazs(playerid)
    {
        if(
    pInfo[playerid][pAZSKey] != -1)
            return 
    SendClientMessage(playeridCLR"Community: {FFFFFF}У тебя уже есть заправка.");

        for(new 
    0sizeof(azsInfo); i++)
        {
            if(
    PlayerToPoint(2.0playeridazsInfo[i][azsX], azsInfo[i][azsY], azsInfo[i][azsZ]))
            {
                new 
    string[64];
                
    printf("# %d"i);
                
    format(stringsizeof(string), "Эта АЗС продается!\n\nЦена: {33FF00}$%s"convertNumber(azsInfo[i][azsPrice]));
                
    ShowPlayerDialog(playeridDIALOG_AZSDIALOG_STYLE_MSGBOX"АЗС"string"Купить""Закрыть");
                
    SetPVarInt(playerid"SavedAzsID"i);
            }
        }
        return 
    1;

    Сделал так. По логах вычеслил проблему БД (ID азс), почистил БД, и каким-то чудесным образом оно заработало. Спасибо огромное.

  6. #6
    Аватар для vovandolg
    Пользователь

    Статус
    Оффлайн
    Регистрация
    17.11.2015
    Адрес
    Stavropol
    Сообщений
    1,369
    Репутация:
    113 ±
    Функция нормально работает, покажи что хранится или как ты создаёшь azsInfo[i][azsPrice]
    Всё так всё)
    [Anticheat]___Invisible Fly Hack
    [Anticheat]____Weapon/Ammo Hack
    [Function]______ResetPlayerWeaponSlot
    [Function]_______FIX_SetPlayerAmmo
    [ServerMod]______TDM | Zombie Apokalypse

  7. #7
    Аватар для Processing
    Пользователь

    Статус
    Оффлайн
    Регистрация
    20.01.2016
    Адрес
    GetPlayerPos(playerid, pos[0], pos[1], pos[2]);
    Сообщений
    47
    Репутация:
    3 ±
    Цитата Сообщение от vovandolg Посмотреть сообщение
    Функция нормально работает, покажи что хранится или как ты создаёшь azsInfo[i][azsPrice]
    Всё так всё)
    PHP код:
    enum    en_azs
    {
        
    azsID,
        
    azsName[MAX_HOUSE_NAME],
        
    azsOwner[MAX_PLAYER_NAME],
        
    azsAddress[MAX_AZS_ADDRESS],
        
    azsOwned,
        
    FloatazsX,
        
    FloatazsY,
        
    FloatazsZ,
        
    azsLvl,
        
    azsPrice,
        
    azsGasPrice,
        
    azsMoney,
        
    Text3DazsLabel,
        
    azsPickup,
        
    azsIcon
    };
    new 
    azsInfo[MAX_AZS][en_azs]; 

  8. #8
    Аватар для vovandolg
    Пользователь

    Статус
    Оффлайн
    Регистрация
    17.11.2015
    Адрес
    Stavropol
    Сообщений
    1,369
    Репутация:
    113 ±
    Так решилась проблема нет?
    [Anticheat]___Invisible Fly Hack
    [Anticheat]____Weapon/Ammo Hack
    [Function]______ResetPlayerWeaponSlot
    [Function]_______FIX_SetPlayerAmmo
    [ServerMod]______TDM | Zombie Apokalypse

 

 

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

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

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

Ваши права

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