05:39
ОбновитьСмайлыУправление мини-чатом
МИНИ-ЧАТ
Главная страница!

 



 
          





Рекомендуем:





Последние Файлы GTA 4 Последние Файлы GTA-MP Реклама
Скрипт GTA 4 элементы Watch... 07.09.2014
Ferrari 360 Spider [EPM con... 13.12.2013
Porsche Cayenne Turbo 2012 ... 13.12.2013
Shelby Terlingua Mustang v1... 13.12.2013
Hamann Lamborghini Gallardo... 27.10.2013
[GM] The Big PEN1:LS v2.00 ... 04.12.2017
Dgun (AvnanceRP,SampRP,Dimo... 19.03.2016
SAMP скрипт SX Events (MySQ... 03.03.2016
Карта ASL мэрия для SAMP се... 03.03.2016
AIM для SA-MP 0.3.7 22.02.2016
Модератор форума: AXE, Weddew  
Вопросы и ответы по GTA SAMP [от 19.03.2013]
WeddewДата: Вторник, 19.03.2013, 15:11 | Сообщение # 1
Группа: Ангел Хранитель
Сообщений: 1251
Награды: 19
Город: Казань
Репутация: 1740
Замечания: 0%
Статус:
В этой теме вы сможете получить ответы, на многие ваши вопросы по PAWN.


Новичкам:


  • Внятно объясняйте Вашу проблему, если Вы получили ошибку, обязательно выкладывайте строки, на которые "ругается" компилятор.
  • Задавайте вопросы исключительно по коду, а не по системам, которые имеются у Вас в моде.
  • Помощь идет только по желанию пользователя, если человек помог Вам только частично, не нужно начинать поливать его грязью.
  • Возможно тип Вашей проблемы уже обсуждался на форуме, воспользуйтесь поиском.
  • В этой теме пользователи лишь оказывают помощь в написании кода, а не пишут его за Вас.
  • Если Вы хотите отблагодарить пользователя, жмите на кнопку . (Только для продвинутых, и выше)
  • Если Вы уже задавали вопрос и не получили на него ответа, то лучше написать в ЛС одному из участников группы , чем засорять тему.
  • Если Вы сами решили свою проблему, то напишите, как Вы ее решили.
  • Если Вас просят выложить код функций, то используйте для этого сервис pastebin.com


Скриптерам:

  • Не оскорблять новичков.
  • Не засорять тему сообщениями, подобные этому: "Закрой PAWNO и иди делай уроки".
  • Не посылать в поиск. Пользователь итак уже пришёл сюда из поиска. Если решение проблемы уже было опубликовано, то указать в какой теме
  • Как можно понятней объяснять решение той, или иной проблемы, по возможности приводить примеры.



Инструкции:

  • [cut noguest=Краткая инструкция для вшивания FS в мод]
    1) Все из callback OnFilterScriptInit вставляем в конец callback OnGameModeInit перед словом return.
    2) Все из callback OnFilterScriptExit вставляем в конец callback OnGameModeExit перед словом return.
    3) Все объявления переменных (new ...) и констант (const ...; #define ... ...) в начало мода.
    4) Все прототипы (forward ...(...) ) ко всем прототипам.
    5) Все описания нестандартных функций (public ...(...); stock ...(...); ...(...){...} ), которых нет в моде, вставляем в конец мода.

    P.S. Данный мануал не гарантирует, что после копирования все будет работать, так как еще потребуется подгонять одни системы под другие.
    P.P.S Если в одном из callback`ов Вы не обнаружили кода, то переходите к следующему пункту инструкции.
    [/cut]
  • [cut noguest=Защита от ботов]
    В OnPlayerConnect
    [pwn]if(GetPlayersSameIp(playerid) > 3) Kick(playerid);[/pwn]
    В конец мода
    [pwn]stock GetPlayersSameIp(playerid)
    {//by Weddew
    //Возвращает количество подключенных игроков с таким же IP как у playerid
    new count = 0, p_ip[16], i_ip[16];
    GetPlayerIp(playerid, p_ip, sizeof(p_ip));
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    GetPlayerIp(playerid, i_ip, sizeof(i_ip));
    if(i != playerid)
    {
    if(!strcmp(p_ip, i_ip, false)) count++;
    }
    }
    return count;
    }[/pwn]
    [/cut]
  • [cut noguest=Проверка на Role Play ник]
    В конец мода:
    [pwn]
    stock IsARPNickname(playerid)
    {
    //by Weddew
    new p_n[MAX_PLAYER_NAME], dcount = 0;
    GetPlayerName(playerid, p_n, sizeof(p_n))
    for(i = 0; i < strlen(p_n); i++)
    {
    if(p_n[i] == '_') dcount++;
    }
    if(dcount != 1 || p_n[0] == '_' || p_n[strlen(p_n)-1] == '_') return false;
    return true;
    }[/pwn]

    В OnPlayerConnect

    [pwn]
    if(!IsARPNickname(playerid)) Kick(playerid);[/pwn]

    P.S.:
    Не пропустит: _Nick_Name_, _Nick_Name, NickName_
    Пропустит: Nick_Name, NICK_NAME, NiCk_name, nick_name[/cut]




www.weddew-shop.ru


Сообщение отредактировал Weddew - Среда, 23.10.2013, 21:45
Miller332Дата: Понедельник, 21.10.2013, 17:25 | Сообщение # 1636
Новенький
Группа: Пользователи
Сообщений: 17
Награды: 0
Город: Рубцовск
Репутация: 4
Замечания: 0%
Статус:
Помогите, пожалуйста, вот такой код стоит для создания автомобиля, но в таблице никаких изменений не происходит, т.е. строчка не появляется, в чём тут проблема?
Код
CarInfo[carid] = 411;
cache_get_data(rows, fields);
mysql_format(connectionHandle, mysql_query, "INSERT INTO `"TABLE_CARS"` (`car`, `X`, `Y`, `Z`, `A`, `Name`) VALUES ('%d', '%d', '%d', '%d', '%d', '%s')", CarInfo[carid], 1, 1, 1, 1, Name(playerid));
mysql_format(connectionHandle, mysql_query, "SELECT * FROM `"TABLE_CARS"` WHERE `Name` = '%e'", Name(playerid));
new  maximum[75];
cache_get_field_content(0, "car", maximum), CarInfo[carid] = strval(maximum);
cache_get_field_content(0, "X", maximum), CarInfo[Xcar] = strval(maximum);
cache_get_field_content(0, "Y", maximum), CarInfo[Ycar] = strval(maximum);
cache_get_field_content(0, "Z", maximum), CarInfo[Zcar] = strval(maximum);
cache_get_field_content(0, "A", maximum), CarInfo[Acar] = strval(maximum);
cache_get_field_content(0, "color1", maximum), CarInfo[colorauto1] = strval(maximum);
cache_get_field_content(0, "color2", maximum), CarInfo[colorauto2] = strval(maximum);
cache_get_field_content(0, "Name", maximum), CarInfo[Vladelec] = strval(maximum);
CreateVehicle ( CarInfo[carid],CarInfo[Xcar],CarInfo[Ycar],CarInfo[Zcar],CarInfo[Acar], 1, 1, 1000);

MelloДата: Понедельник, 21.10.2013, 18:36 | Сообщение # 1637
Новенький
Группа: Пользователи
Сообщений: 9
Награды: 0
Город: Россия,Санкт-Петербург
Репутация: 0
Замечания: 0%
Статус:
У меня возникла проблема, что если человека в розыске убивает полицейский, то его не сажает в тюрьму.
У меня уровень розыска работает на системе pWanted.

Так же вопрос, как сделать команду /su, что бы пишешь, /su ид игрока, кол-во звезд, причина.
После того как дал розыск, пишит [Рация] сообщает: Ник набравшего /su. Подозреваемый: ник на кого был набран /su. Преступление: причина розыска.

Прошу помогите пожалуйста.

BorogДата: Понедельник, 21.10.2013, 19:27 | Сообщение # 1638
Долгожитель
Группа: I'm V.I.P.
Сообщений: 1362
Награды: 43
Город: Москва
Репутация: 1249
Замечания: 20%
Статус:
Miller332, XYZA float переменные? Если да, то их записывать и считывать соответственно надо
Если проблему это не исправит, то что пишет дебаг по мускулу?



Silver Break
http://s-break.ru/
http://vk.com/sbreak
DeX_TeRДата: Понедельник, 21.10.2013, 22:03 | Сообщение # 1639
Новенький
Группа: Продвинутые
Сообщений: 14
Награды: 0
Город: Белоярский[86rus] , Калуга[40rus]
Репутация: 10
Замечания: 20%
Статус:
Цитата Miller332 ()
Помогите, пожалуйста, вот такой код стоит для создания автомобиля, но в таблице никаких изменений не происходит, т.е. строчка не появляется, в чём тут проблема?

не понятно, что ты пытаешься тут сделать) если командой создать и сохранить авто, то...
дай описание CarInfo и структуру базы. а по логике попробуй так

CarInfo[carid] = 411;
mysql_format(connectionHandle, mysql_query, "INSERT INTO `"TABLE_CARS"` (`car`, `X`, `Y`, `Z`, `A`, `Name`) VALUES ('%d', '%f', '%f', '%f', '%f', '%s')", CarInfo[carid], 1, 1, 1, 1, Name(playerid));

mysql_format(connectionHandle, mysql_query, "SELECT * FROM `"TABLE_CARS"` WHERE `Name` = '%s'", Name(playerid));
new  maximum[75];
cache_get_field_content(0, "car", maximum), CarInfo[carid] = strval(maximum);
cache_get_field_content(0, "X", maximum), CarInfo[Xcar] = floatstr(maximum);
cache_get_field_content(0, "Y", maximum), CarInfo[Ycar] = floatstr(maximum);
cache_get_field_content(0, "Z", maximum), CarInfo[Zcar] = floatstr(maximum);
cache_get_field_content(0, "A", maximum), CarInfo[Acar] = floatstr(maximum);
cache_get_field_content(0, "color1", maximum), CarInfo[colorauto1] = strval(maximum);
cache_get_field_content(0, "color2", maximum), CarInfo[colorauto2] = strval(maximum);
cache_get_field_content(0, "Name", maximum), CarInfo[Vladelec] = strval(maximum);

CreateVehicle ( CarInfo[carid],CarInfo[Xcar],CarInfo[Ycar],CarInfo[Zcar],CarInfo[Acar], 1, 1, 1000);




WeddewДата: Понедельник, 21.10.2013, 22:07 | Сообщение # 1640
Группа: Ангел Хранитель
Сообщений: 1251
Награды: 19
Город: Казань
Репутация: 1740
Замечания: 0%
Статус:
Miller332, mysql_format не выполняет запрос, а лишь форматирует строку для запроса. Отправлять запрос нужно функцией mysql_query.
Пример:
[pwn]mysql_format(connectionHandle, query_str, "INSERT INTO `"TABLE_CARS"` (`car`, `X`, `Y`, `Z`, `A`, `Name`) VALUES ('%d', '%f', '%f', '%f', '%f', '%s')", CarInfo[carid], 1, 1, 1, 1, Name(playerid));
mysql_query(query_str);[/pwn]




www.weddew-shop.ru


Сообщение отредактировал Weddew - Понедельник, 21.10.2013, 22:08
DeX_TeRДата: Понедельник, 21.10.2013, 22:17 | Сообщение # 1641
Новенький
Группа: Продвинутые
Сообщений: 14
Награды: 0
Город: Белоярский[86rus] , Калуга[40rus]
Репутация: 10
Замечания: 20%
Статус:
Цитата Mello ()
У меня возникла проблема, что если человека в розыске убивает полицейский, то его не сажает в тюрьму.
У меня уровень розыска работает на системе pWanted.


смотри в public OnPlayerDeath(playerid, killerid, reason)
если у playerid стоит розыск (как понимаю, pWanted > 0), и killerid полицай, то сажай playerid в тюрьму

Цитата Mello ()
Так же вопрос, как сделать команду /su, что бы пишешь, /su ид игрока, кол-во звезд, причина.
После того как дал розыск, пишит [Рация] сообщает: Ник набравшего /su. Подозреваемый: ник на кого был набран /su. Преступление: причина розыска.

если команда /su есть, то в ней добавляешь
Код
new str[128]; // если не объявлена до этого
format(str, sizeof(str),"[Рация] сообщает %s:  Подозреваемый: %s, преступление: %s", Name(playerid), Name(giveplayerid), reason);
SendClientMessageToAll(-1,str);

giveplayerid - ид чела, на которого накинули розыск, reason - причина.

Если нужна полностью команда - вот связка из какого-то ГФа древнего
команда:
Код
    if(strcmp(cmd, "/suspect", true) == 0 || strcmp(cmd, "/su", true) == 0)
  {
      if(IsPlayerConnected(playerid))
      {
       if(OnDuty[playerid] != 1  && PlayerInfo[playerid][pMember] == 1)
    {
        SendClientMessage(playerid, COLOR_RED, "** Вы не при исполнении служебных обязанностей!");
        return 1;
    }
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
     SendClientMessage(playerid, COLOR_ISPOLZUY, "*Используйте: /su [ид игрока] [причина]");
     return 1;
    }
    giveplayerid = ReturnUser(tmp);
    if (gTeam[playerid] == 2 || IsACop(playerid))
    {
     if(IsPlayerConnected(giveplayerid))
     {
         if(giveplayerid != INVALID_PLAYER_ID)
         {
       if (gTeam[giveplayerid] != 2)
       {
        GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
        GetPlayerName(playerid, sendername, sizeof(sendername));
        new length = strlen(cmdtext);
        while ((idx < length) && (cmdtext[idx] <= ' '))
        {
         idx++;
        }
        new offset = idx;
        new result[64];
        while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
        {
         result[idx - offset] = cmdtext[idx];
         idx++;
        }
        result[idx - offset] = EOS;
        if(!strlen(result))
        {
         SendClientMessage(playerid, COLOR_ISPOLZUY, "*Используйте: /su [ид игрока] [причина]");
         return 1;
        }
        if(WantedPoints[giveplayerid] == 0) { WantedPoints[giveplayerid] = 3; }
        else { WantedPoints[giveplayerid]+= 2; }
        SetPlayerCriminal(giveplayerid,playerid, result);
        return 1;
       }
       else
       {
        SendClientMessage(playerid, COLOR_RED, "** Вы не можете обвинить полицейского !");
       }
      }
     }
     else
     {
       format(string, sizeof(string), "** %d не активный игрок.", giveplayerid);
       SendClientMessage(playerid, COLOR_RED, string);
       return 1;
     }
    }
    else
    {
     SendClientMessage(playerid, COLOR_RED, "** Вы не полицейский / агент ФБР / Солдат национальной гвардии !");
    }
   }
   return 1;
  }

паблик
Код
public SetPlayerCriminal(playerid,declare,reason[])
{
  if(IsPlayerConnected(playerid))
  {
      PlayerInfo[playerid][pCrimes] += 1;
      new points = WantedPoints[playerid];
   new turned[MAX_PLAYER_NAME];
   new turner[MAX_PLAYER_NAME];
   new turnmes[128];
   new wantedmes[128];
   new wlevel;
   strmid(PlayerCrime[playerid][pAccusedof], reason, 0, strlen(reason), 255);
   GetPlayerName(playerid, turned, sizeof(turned));
   if (declare == 255)
   {
    format(turner, sizeof(turner), "Неизвестно");
    strmid(PlayerCrime[playerid][pVictim], turner, 0, strlen(turner), 255);
   }
   else
   {
       if(IsPlayerConnected(declare))
       {
     GetPlayerName(declare, turner, sizeof(turner));
     strmid(PlayerCrime[playerid][pVictim], turner, 0, strlen(turner), 255);
     strmid(PlayerCrime[declare][pBplayer], turned, 0, strlen(turned), 255);
     strmid(PlayerCrime[declare][pAccusing], reason, 0, strlen(reason), 255);
    }
   }
   format(turnmes, sizeof(turnmes), "* Вы совершили преступление (%s). Сообщил: %s.",reason,turner);
   SendClientMessage(playerid, COLOR_LIGHTRED, turnmes);
   if(points > 0)
   {
       new yesno;
    if(points == 3) { if(WantedLevel[playerid] != 1) { WantedLevel[playerid] = 1; wlevel = 1; yesno = 1; } }
    else if(points >= 4 && points <= 5)
    {
     if(WantedLevel[playerid] != 2)
     {
      WantedLevel[playerid] = 2;
      wlevel = 2;
      yesno = 1;
     }
    }
    else if(points >= 6 && points <= 7) { if(WantedLevel[playerid] != 3) { WantedLevel[playerid] = 3; wlevel = 3; yesno = 1; } }
    else if(points >= 8 && points <= 9) { if(WantedLevel[playerid] != 4) { WantedLevel[playerid] = 4; wlevel = 4; yesno = 1; } }
    else if(points >= 10 && points <= 11) { if(WantedLevel[playerid] != 5) { WantedLevel[playerid] = 5; wlevel = 5; yesno = 1; } }
    else if(points >= 12 && points <= 13) { if(WantedLevel[playerid] != 6) { WantedLevel[playerid] = 6; wlevel = 6; yesno = 1; } }
    else if(points >= 14) { if(WantedLevel[playerid] != 10) { WantedLevel[playerid] = 10; wlevel = 10; yesno = 1; } }
    if(WantedLevel[playerid] >= 1) { if(gTeam[playerid] == 3) { gTeam[playerid] = 4; } }
    if(yesno)
    {
     format(wantedmes, sizeof(wantedmes), "* Текущий уровень розыска: %d", wlevel);
     SendClientMessage(playerid, COLOR_YELLOW, wantedmes);
     SetPlayerWantedLevel(playerid, wlevel);
     for(new i = 0; i < MAX_PLAYERS; i++)
     {
      if(IsPlayerConnected(i))
      {
          if(PlayerInfo[i][pMember] == 1||PlayerInfo[i][pLeader] == 1||PlayerInfo[i][pMember] == 2||PlayerInfo[i][pLeader] == 2|| PlayerInfo[i][pMember] == 3|| PlayerInfo[i][pLeader] == 3)
          {
        format(cbjstore, sizeof(turnmes), "[Рация] Сообщает %s:Подозреваемый:%s Причина:%s.",turner,turned,reason);
        SendClientMessage(i, TEAM_BLUE_COLOR, cbjstore);
       }
      }
     }
    }
   }
  }//not connected
}




MelloДата: Вторник, 22.10.2013, 00:44 | Сообщение # 1642
Новенький
Группа: Пользователи
Сообщений: 9
Награды: 0
Город: Россия,Санкт-Петербург
Репутация: 0
Замечания: 0%
Статус:
DeX_TeR, спасибо, завтра сделаю с рацией.
А вот как сделать: /su ид игрока, кол-во звезд, причина розыска.
Что бы давало не 1 звезду, а указанное число, т.е от 1 до 6. Причина розыска тоже указывалась. т.е потом шла в рацию.
В принципе и уровень розыска тоже бы шелв рацию.

GeryyДата: Вторник, 22.10.2013, 09:43 | Сообщение # 1643
Советчик
Группа: Ангел Хранитель
Сообщений: 1187
Награды: 24
Город: Москва
Репутация: 785
Замечания: 0%
Статус:
Цитата Mello ()
А вот как сделать: /su ид игрока, кол-во звезд, причина розыска.


[pwn]
//------------------------------------------------------------------------------
if(strcmp(cmd, "/suspect", true) == 0 || strcmp(cmd, "/su", true) == 0)
{
if(IsPlayerConnected(playerid))
{

tmp = strtok(cmdtext, idx);
{

}
if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_GRAD2, "/su [ID/Часть ника] [Уровень розыска][Причина]");
giveplayerid = ReturnUser(tmp);
if (IsACop(playerid))
{
if(IsPlayerConnected(giveplayerid))
{
if(giveplayerid != INVALID_PLAYER_ID)
{
if (!IsACop(giveplayerid))
{
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
new length = strlen(cmdtext);
while ((idx < length) && (cmdtext[idx] <= ' '))
{
idx++;
}
tmp = strtok(cmdtext, idx);
new points = strval(tmp);
new offset = idx;
new result[64];
while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
{
result[idx - offset] = cmdtext[idx];
idx++;
}
result[idx - offset] = EOS;
if(!strlen(result)) return SendClientMessage(playerid, COLOR_GRAD2, "/su [ID/Часть ника] [Уровень розыска][Причина]");
if(PlayerInfo[giveplayerid][pJailTime] > 0) return SendClientMessage(playerid, COLOR_GRAD2, "Игрок уже в тюрьме!");
if(PlayerInfo[playerid][pMember] == 2 || PlayerInfo[playerid][pLeader] == 2)
{
if(WantedLevel[giveplayerid] == 6) return SendClientMessage(playerid,COLOR_GRAD2,"Больше 6 звезд давать нельзя!");
}
if(PlayerInfo[playerid][pMember] == 21 || PlayerInfo[playerid][pLeader] == 21)
{
if(WantedLevel[giveplayerid] == 6) return SendClientMessage(playerid,COLOR_GRAD2,"Больше 6 звезд давать нельзя!");
}
if(PlayerInfo[playerid][pMember] == 3 || PlayerInfo[playerid][pLeader] == 3)
{
if(WantedLevel[giveplayerid] == 6) return SendClientMessage(playerid,COLOR_GRAD2,"Больше 6 звезд давать нельзя!");
}
if(PlayerInfo[playerid][pMember] == 1 || PlayerInfo[playerid][pLeader] == 1)
{
if(WantedLevel[giveplayerid] == 6) return SendClientMessage(playerid,COLOR_GRAD2,"Больше 6 звезд давать нельзя!");
}
if(WantedLevel[giveplayerid] > points) return SendClientMessage(playerid,COLOR_GRAD2,"Нельзя давать розыск меньше, чем сейчас!");
WantedLevel[giveplayerid]= WantedLevel[giveplayerid] = points;
SetPlayerCriminal(giveplayerid,playerid, result);
vremg[giveplayerid] = 180;
PlayerInfo[giveplayerid][pWanted] = GetPlayerWantedLevel(giveplayerid);
format(string, sizeof(string), "Ты дал звезду игроку %s[%d].Текущий уровень розыска %d.",giveplayer,giveplayerid,GetPlayerWantedLevel(giveplayerid));
SendClientMessage(playerid, COLOR_YELLOW, string);
return true;
}
else
{
SendClientMessage(playerid, COLOR_GRAD2,"Вы не можете подозревать Полицейского!");
}
}
}
else
{
format(string, sizeof(string), "Игрок не в сети");
SendClientMessage(playerid, COLOR_GRAD2, string);
return true;
}
}
else
{
SendClientMessage(playerid, COLOR_GRAD2,"Вы не Законик!");
}
}
return true;
}[/pwn]



Добавить SAMP сервер в спец. вкладку HOSTED 450-500 р.
Miller332Дата: Вторник, 22.10.2013, 11:22 | Сообщение # 1644
Новенький
Группа: Пользователи
Сообщений: 17
Награды: 0
Город: Рубцовск
Репутация: 4
Замечания: 0%
Статус:
Вот такая ситуация, выдаёт 4 ошибки, понять не могу, почему?
[cut=Ошибки]
Код
C:\Documents and Settings\Евгений\Рабочий стол\City of Saints Role Play  [New]\gamemodes\Untitled.pwn(82) : error 012: invalid function call, not a valid address
C:\Documents and Settings\Евгений\Рабочий стол\City of Saints Role Play  [New]\gamemodes\Untitled.pwn(82) : warning 215: expression has no effect
C:\Documents and Settings\Евгений\Рабочий стол\City of Saints Role Play  [New]\gamemodes\Untitled.pwn(82) : error 001: expected token: ";", but found ")"
C:\Documents and Settings\Евгений\Рабочий стол\City of Saints Role Play  [New]\gamemodes\Untitled.pwn(82) : error 029: invalid expression, assumed zero
C:\Documents and Settings\Евгений\Рабочий стол\City of Saints Role Play  [New]\gamemodes\Untitled.pwn(82) : fatal error 107: too many error messages on one line
[/cut]
[cut=Код][pwn]#include <a_samp>
#include <a_mysql> // MySQL ~R7~

#define mysql_host "localhost" //Хост
#define mysql_db "db" //имя БД
#define mysql_user "root" // Логин
#define mysql_pass "" // Пароль
#define TABLE_CARS "cars" // Таблица с личными тачками

#define DSL DIALOG_STYLE_LIST

enum cInfo
{
ID,
carid,
Xcar,
Ycar,
Zcar,
Acar,
colorauto1,
colorauto2,
Vladelec,
};
new CarInfo[cInfo];

new connectionHandle;
new mysql_query[80];

new pickupas;

public OnPlayerPickUpPickup(playerid, pickupid)
{
if(pickupid == pickupas)
{
ShowPlayerDialog(playerid,10,DSL,"Автосалон","Купить инфернус\nКупить авто ид 415","Купить","");
}
return 1;
}

public OnGameModeInit()
{
//соединение с БД
connectionHandle = mysql_connect(mysql_host, mysql_user, mysql_db, mysql_pass);
if(mysql_ping() != 1) print("MySQL: соединение с БД не установленно. :("); else print("MySQL: соеденение с БД установленно. :)");
pickupas = CreatePickup(1239,23,1767.1014,-1937.6152,13.5711);
return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == 10) // автосалон
{
if(response)
{
switch(listitem)
{
case 0:
{
CarInfo[carid] = 411;
CreateCar(playerid);


}
case 1:
{
CarInfo[carid] = 415;
CreateCar(playerid);
}
}
}
}
return 1;
}

stock Name(i) { new pl[24]; GetPlayerName(i, pl, 24); return pl; }

new query_str[100];
stock CreateCar(playerid)
{
mysql_format(connectionHandle, query_str, "INSERT INTO `"TABLE_CARS"` (`car`, `X`, `Y`, `Z`, `A`, `Name`) VALUES ('%d', '%f', '%f', '%f', '%f', '%s')", CarInfo[carid], 1, 1, 1, 1, Name(playerid));
mysql_query(query_str);
//mysql_format(connectionHandle, mysql_query, "INSERT INTO `"TABLE_CARS"` (`car`, `X`, `Y`, `Z`, `A`, `Name`) VALUES ('%d', '%f', '%f', '%f', '%f', '%s')", CarInfo[carid], 1777.4316,-1929.8167,13.3874,352.2125, Name(playerid));
//mysql_format(connectionHandle, mysql_query, "SELECT * FROM `"TABLE_CARS"` WHERE `Name` = '%s'", Name(playerid));
new maximum[75];
cache_get_field_content(0, "car", maximum), CarInfo[carid] = strval(maximum);
cache_get_field_content(0, "X", maximum), CarInfo[Xcar] = floatstr(maximum);
cache_get_field_content(0, "Y", maximum), CarInfo[Ycar] = floatstr(maximum);
cache_get_field_content(0, "Z", maximum), CarInfo[Zcar] = floatstr(maximum);
cache_get_field_content(0, "A", maximum), CarInfo[Acar] = floatstr(maximum);
cache_get_field_content(0, "color1", maximum), CarInfo[colorauto1] = strval(maximum);
cache_get_field_content(0, "color2", maximum), CarInfo[colorauto2] = strval(maximum);
cache_get_field_content(0, "Name", maximum), CarInfo[Vladelec] = strval(maximum);
CreateVehicle ( CarInfo[carid],CarInfo[Xcar],CarInfo[Ycar],CarInfo[Zcar],CarInfo[Acar], 1, 1, 1000);
}[/pwn][/cut]
[cut=Таблица MySQL]
Код
-- phpMyAdmin SQL Dump
-- version 3.5.1
-- http://www.phpmyadmin.net
--
-- Хост: 127.0.0.1
-- Время создания: Окт 22 2013 г., 14:21
-- Версия сервера: 5.5.25
-- Версия PHP: 5.3.13

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

--
-- База данных: `db`
--

-- --------------------------------------------------------

--
-- Структура таблицы `cars`
--

CREATE TABLE IF NOT EXISTS `cars` (
   `ID` int(11) NOT NULL,
   `car` int(11) NOT NULL,
   `X` float NOT NULL,
   `Y` float NOT NULL,
   `Z` float NOT NULL,
   `A` float NOT NULL,
   `color1` int(11) NOT NULL,
   `color2` int(11) NOT NULL,
   `Name` text COLLATE cp1251_bin NOT NULL,
   PRIMARY KEY (`ID`),
   KEY `ID` (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 COLLATE=cp1251_bin ROW_FORMAT=DYNAMIC;

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
[/cut]

DeX_TeRДата: Вторник, 22.10.2013, 15:48 | Сообщение # 1645
Новенький
Группа: Продвинутые
Сообщений: 14
Награды: 0
Город: Белоярский[86rus] , Калуга[40rus]
Репутация: 10
Замечания: 20%
Статус:
Цитата Miller332 ()
Вот такая ситуация, выдаёт 4 ошибки, понять не могу, почему?

саму структуру авто исправить - у каждого параметра свой тип должен быть указан. для координат, ХП, брони и так далее - Float, для строк - объявляешь массивом
Код
enum cInfo   
   {   
   ID,   
   carid,   
   Float:Xcar,   
   Float:Ycar,   
   Float:Zcar,   
   Float:Acar,   
   colorauto1,   
   colorauto2,   
   Vladelec[MAX_PLAYER_NAME],   
   };


убрать
Код
new mysql_query[80];

(mysql_query - это функция, а не переменная)

запрос исправить - имя таблицы пишется в одинарных косых кавычках (как и имена полей)
Код
mysql_format(connectionHandle, query_str, "INSERT INTO `TABLE_CARS` (`car`, `X`, `Y`, `Z`, `A`, `Name`) VALUES ('%d', '%f', '%f', '%f', '%f', '%s')", CarInfo[carid], 1, 1, 1, 1, Name(playerid));


в загрузке исправить - вывод строки делать через format (либо strcat)
Код
cache_get_field_content(0, "Name", maximum), format(CarInfo[Vladelec],MAX_PLAYER_NAME,maximum);


пока что все что увидел, пробуй))






Сообщение отредактировал DeX_TeR - Вторник, 22.10.2013, 15:49
MelloДата: Вторник, 22.10.2013, 17:00 | Сообщение # 1646
Новенький
Группа: Пользователи
Сообщений: 9
Награды: 0
Город: Россия,Санкт-Петербург
Репутация: 0
Замечания: 0%
Статус:
Geryy, error 017: undefined symbol "WantedLevel"
DeX_TeRДата: Вторник, 22.10.2013, 17:05 | Сообщение # 1647
Новенький
Группа: Продвинутые
Сообщений: 14
Награды: 0
Город: Белоярский[86rus] , Калуга[40rus]
Репутация: 10
Замечания: 20%
Статус:
Цитата Mello ()
Geryy, error 017: undefined symbol "WantedLevel"

new WantedLevel[MAX_PLAYERS]; ко всем new




MelloДата: Вторник, 22.10.2013, 17:54 | Сообщение # 1648
Новенький
Группа: Пользователи
Сообщений: 9
Награды: 0
Город: Россия,Санкт-Петербург
Репутация: 0
Замечания: 0%
Статус:
DeX_TeR, error 017: undefined symbol "vremg"
DeX_TeRДата: Вторник, 22.10.2013, 18:01 | Сообщение # 1649
Новенький
Группа: Продвинутые
Сообщений: 14
Награды: 0
Город: Белоярский[86rus] , Калуга[40rus]
Репутация: 10
Замечания: 20%
Статус:
Цитата Mello ()
DeX_TeR, error 017: undefined symbol "vremg

аналогичное решение. хотя бы погугли немного, прежде чем спрашивать))




MaxДата: Вторник, 22.10.2013, 21:48 | Сообщение # 1650
Уверенный в себе
Группа: Продвинутые
Сообщений: 172
Награды: 0
Город: Казань
Репутация: 59
Замечания: 0%
Статус:
Срочно помогите:
Иногда на сервере (у всех игроков в разное время и по разному) пропадает все!
Объясняю: Играешь на сервере, и на 2-3 секунды все пропадает: люди, машины, чекпоинты, 3d тексты и т.п

У всех по разному, у кого-то раз в день, у кого-то раз в минуту, у кого-то никогда!

может ли быть причина в античите или нет?
стоит JunkBuster

Поиск:





 


 


 
Хостинг от uCoz samp.at.ua