Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Страница 1 из 2 1 2 ПоследняяПоследняя
Показано с 1 по 10 из 20
  1. #1
    Аватар для alexei
    Пользователь

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

    Оптимизация кода

    PHP код:
    public OnPlayerClickTextDraw(playeridText:clickedid)
    {
        if(
    clickedid == selectskin_td[0])
        {
            switch(
    player_info[playerid][p_sex])
            {
                case 
    1:
                {
                    switch(
    GetPVarInt(playerid"selectskin"))
                    {
                        case 
    78:
                        {
                            
    SetPlayerSkin(playerid79);
                            
    SetPVarInt(playerid"selectskin"79);
                        }
                        case 
    160:
                        {
                            
    SetPlayerSkin(playerid78);
                            
    SetPVarInt(playerid"selectskin"78);
                        }
                        case 
    230:
                        {
                            
    SetPlayerSkin(playerid160);
                            
    SetPVarInt(playerid"selectskin"160);
                        }
                        case 
    213:
                        {
                            
    SetPlayerSkin(playerid230);
                            
    SetPVarInt(playerid"selectskin"230);
                        }
                        case 
    212:
                        {
                            
    SetPlayerSkin(playerid213);
                            
    SetPVarInt(playerid"selectskin"213);
                        }
                        case 
    200:
                        {
                            
    SetPlayerSkin(playerid212);
                            
    SetPVarInt(playerid"selectskin"212);
                        }
                        case 
    137:
                        {
                            
    SetPlayerSkin(playerid200);
                            
    SetPVarInt(playerid"selectskin"200);
                        }
                        case 
    136:
                        {
                            
    SetPlayerSkin(playerid137);
                            
    SetPVarInt(playerid"selectskin"137);
                        }
                        case 
    135:
                        {
                            
    SetPlayerSkin(playerid136);
                            
    SetPVarInt(playerid"selectskin"136);
                        }
                        case 
    134:
                        {
                             
    SetPlayerSkin(playerid135);
                            
    SetPVarInt(playerid"selectskin"135);
                        }
                        case 
    132:
                        {
                            
    SetPlayerSkin(playerid134);
                            
    SetPVarInt(playerid"selectskin"134);
                        }
                        case 
    79:
                        {
                            
    SetPlayerSkin(playerid132);
                            
    SetPVarInt(playerid"selectskin"132);
                        }
                    }
                }
                case 
    2:
                {
                    switch(
    GetPVarInt(playerid"selectskin"))
                    {
                        case 
    10:
                        {
                            
    SetPlayerSkin(playerid13);
                            
    SetPVarInt(playerid"selectskin"13);
                        }
                        case 
    218:
                        {
                            
    SetPlayerSkin(playerid10);
                            
    SetPVarInt(playerid"selectskin"10);
                        }
                        case 
    198:
                        {
                            
    SetPlayerSkin(playerid218);
                            
    SetPVarInt(playerid"selectskin"218);
                        }
                        case 
    197:
                        {
                            
    SetPlayerSkin(playerid198);
                            
    SetPVarInt(playerid"selectskin"198);
                        }
                        case 
    196:
                        {
                            
    SetPlayerSkin(playerid197);
                            
    SetPVarInt(playerid"selectskin"197);
                        }
                        case 
    157:
                        {
                            
    SetPlayerSkin(playerid196);
                            
    SetPVarInt(playerid"selectskin"196);
                        }
                        case 
    151:
                        {
                            
    SetPlayerSkin(playerid157);
                            
    SetPVarInt(playerid"selectskin"157);
                        }
                        case 
    130:
                        {
                            
    SetPlayerSkin(playerid151);
                            
    SetPVarInt(playerid"selectskin"151);
                        }
                        case 
    129:
                        {
                            
    SetPlayerSkin(playerid130);
                            
    SetPVarInt(playerid"selectskin"130);
                        }
                        case 
    77:
                        {
                            
    SetPlayerSkin(playerid129);
                            
    SetPVarInt(playerid"selectskin"129);
                        }
                        case 
    54:
                        {
                            
    SetPlayerSkin(playerid54);
                            
    SetPVarInt(playerid"selectskin"54);
                        }
                        case 
    39:
                        {
                            
    SetPlayerSkin(playerid54);
                            
    SetPVarInt(playerid"selectskin"54);
                        }
                        case 
    31:
                        {
                            
    SetPlayerSkin(playerid39);
                            
    SetPVarInt(playerid"selectskin"39);
                        }
                        case 
    13:
                        {
                            
    SetPlayerSkin(playerid31);
                            
    SetPVarInt(playerid"selectskin"31);
                        }
                    }
                }
            }
            
    SelectTextDraw(playerid0xFFFFFFFF);
        }
        if(
    clickedid == selectskin_td[1])
        {
            switch(
    player_info[playerid][p_sex])
            {
                case 
    1:
                {
                    switch(
    GetPVarInt(playerid, !"selectskin"))
                    {
                        case 
    78:
                        {
                            
    SetPlayerSkin(playerid160);
                            
    SetPVarInt(playerid, !"selectskin"160);
                        }
                        case 
    160:
                         {
                              
    SetPlayerSkin(playerid230);
                            
    SetPVarInt(playerid, !"selectskin"230);
                         }
                          case 
    230:
                          {
                              
    SetPlayerSkin(playerid213);
                            
    SetPVarInt(playerid, !"selectskin"213);
                          }
                        case 
    213:
                        {
                            
    SetPlayerSkin(playerid212);
                            
    SetPVarInt(playerid, !"selectskin"212);
                        }
                        case 
    212:
                        {
                            
    SetPlayerSkin(playerid200);
                            
    SetPVarInt(playerid, !"selectskin"200);
                        }
                        case 
    200:
                        {
                            
    SetPlayerSkin(playerid137);
                            
    SetPVarInt(playerid, !"selectskin"137);
                        }
                        case 
    137:
                        {
                            
    SetPlayerSkin(playerid136);
                            
    SetPVarInt(playerid, !"selectskin"136);
                        }
                        case 
    136:
                        {
                            
    SetPlayerSkin(playerid135);
                            
    SetPVarInt(playerid, !"selectskin"135);
                        }
                        case 
    135:
                        {
                            
    SetPlayerSkin(playerid134);
                            
    SetPVarInt(playerid, !"selectskin"134);
                        }
                        case 
    134:
                        {
                            
    SetPlayerSkin(playerid132);
                            
    SetPVarInt(playerid"selectskin"132);
                        }
                        case 
    132:
                        {
                            
    SetPlayerSkin(playerid79);
                            
    SetPVarInt(playerid, !"selectskin"79);
                        }
                        case 
    79:
                        {
                            
    SetPlayerSkin(playerid78);
                            
    SetPVarInt(playerid, !"selectskin"78);
                        }
                    }
                }
                case 
    2:
                {
                    switch(
    GetPVarInt(playerid, !"selectskin"))
                    {
                        case 
    10:
                        {
                            
    SetPlayerSkin(playerid218);
                            
    SetPVarInt(playerid, !"selectskin"218);
                        }
                        case 
    218:
                        {
                            
    SetPlayerSkin(playerid198);
                            
    SetPVarInt(playerid, !"selectskin"198);
                        }
                        case 
    198:
                        {
                            
    SetPlayerSkin(playerid197);
                            
    SetPVarInt(playerid, !"selectskin"197);
                        }
                        case 
    197:
                        {
                            
    SetPlayerSkin(playerid196);
                            
    SetPVarInt(playerid, !"selectskin"196);
                        }
                        case 
    196:
                        {
                            
    SetPlayerSkin(playerid157);
                            
    SetPVarInt(playerid, !"selectskin"157);
                        }
                        case 
    157:
                        {
                            
    SetPlayerSkin(playerid151);
                            
    SetPVarInt(playerid, !"selectskin"151);
                        }
                        case 
    151:
                        {
                            
    SetPlayerSkin(playerid130);
                            
    SetPVarInt(playerid, !"selectskin"130);
                        }
                        case 
    130:
                        {
                            
    SetPlayerSkin(playerid129);
                            
    SetPVarInt(playerid, !"selectskin"129);
                        }
                        case 
    129:
                        {
                            
    SetPlayerSkin(playerid77);
                            
    SetPVarInt(playerid, !"selectskin"77);
                        }
                        case 
    77:
                        {
                            
    SetPlayerSkin(playerid54);
                            
    SetPVarInt(playerid, !"selectskin"54);
                        }
                        case 
    54:
                        {
                            
    SetPlayerSkin(playerid39);
                            
    SetPVarInt(playerid, !"selectskin"39);
                        }
                        case 
    39:
                        {
                            
    SetPlayerSkin(playerid31);
                            
    SetPVarInt(playerid, !"selectskin"31);
                        }
                        case 
    31:
                        {
                            
    SetPlayerSkin(playerid13);
                            
    SetPVarInt(playerid, !"selectskin"13);
                        }
                        case 
    13:
                        {
                            
    SetPlayerSkin(playerid10);
                            
    SetPVarInt(playerid, !"selectskin"10);
                        }
                    }
                }
            }
            
    SelectTextDraw(playerid0xFFFFFFFF);
        }
        if(
    clickedid == selectskin_td[4])
        {
            
    player_info[playerid][p_skin] = GetPVarInt(playerid"selectskin");
            
            static const
                
    fmt_query[] = "UPDATE `accounts` SET `skin` = '%d' WHERE `id` = '%d'";
                
            new
                
    query[sizeof(fmt_query) + (- 3) + (- 8)];
                
            
    format(querysizeof(query), fmt_queryplayer_info[playerid][p_skin], player_info[playerid][p_id]);
            
    mysql_query(dbHandlequery);
            
            
    SetPlayerSkin(playeridplayer_info[playerid][p_skin]);
            
            
    SelectTextDraw(playerid0xFFFFFFFF);
            
            
    SetPVarInt(playerid, !"reg"1);
            
            
    SpawnPlayer(playerid);
        }
        return 
    1;

    Как сделать данный участок кода наиболее оптимизированнее?

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

    Статус
    Оффлайн
    Регистрация
    05.10.2019
    Адрес
    Планета Земля
    Сообщений
    318
    Репутация:
    7 ±
    Можешь сделать проверки if(clickedid == selectskin_td[]) с помощью if-elseif-else.

    Примерно так:

    1. public OnPlayerClickTextDraw(playerid, Text:clickedid)
    2. {
    3. if(clickedid == selectskin_td[0])
    4. {
    5. switch(player_info[playerid][p_sex])
    6. {
    7. case 1:
    8. {
    9. switch(GetPVarInt(playerid, "selectskin"))
    10. {
    11. case 78:
    12. {
    13. SetPlayerSkin(playerid, 79);
    14. SetPVarInt(playerid, "selectskin", 79);
    15. }
    16. case 160:
    17. {
    18. SetPlayerSkin(playerid, 78);
    19. SetPVarInt(playerid, "selectskin", 78);
    20. }
    21. case 230:
    22. {
    23. SetPlayerSkin(playerid, 160);
    24. SetPVarInt(playerid, "selectskin", 160);
    25. }
    26. case 213:
    27. {
    28. SetPlayerSkin(playerid, 230);
    29. SetPVarInt(playerid, "selectskin", 230);
    30. }
    31. case 212:
    32. {
    33. SetPlayerSkin(playerid, 213);
    34. SetPVarInt(playerid, "selectskin", 213);
    35. }
    36. case 200:
    37. {
    38. SetPlayerSkin(playerid, 212);
    39. SetPVarInt(playerid, "selectskin", 212);
    40. }
    41. case 137:
    42. {
    43. SetPlayerSkin(playerid, 200);
    44. SetPVarInt(playerid, "selectskin", 200);
    45. }
    46. case 136:
    47. {
    48. SetPlayerSkin(playerid, 137);
    49. SetPVarInt(playerid, "selectskin", 137);
    50. }
    51. case 135:
    52. {
    53. SetPlayerSkin(playerid, 136);
    54. SetPVarInt(playerid, "selectskin", 136);
    55. }
    56. case 134:
    57. {
    58. SetPlayerSkin(playerid, 135);
    59. SetPVarInt(playerid, "selectskin", 135);
    60. }
    61. case 132:
    62. {
    63. SetPlayerSkin(playerid, 134);
    64. SetPVarInt(playerid, "selectskin", 134);
    65. }
    66. case 79:
    67. {
    68. SetPlayerSkin(playerid, 132);
    69. SetPVarInt(playerid, "selectskin", 132);
    70. }
    71. }
    72. }
    73. case 2:
    74. {
    75. switch(GetPVarInt(playerid, "selectskin"))
    76. {
    77. case 10:
    78. {
    79. SetPlayerSkin(playerid, 13);
    80. SetPVarInt(playerid, "selectskin", 13);
    81. }
    82. case 218:
    83. {
    84. SetPlayerSkin(playerid, 10);
    85. SetPVarInt(playerid, "selectskin", 10);
    86. }
    87. case 198:
    88. {
    89. SetPlayerSkin(playerid, 218);
    90. SetPVarInt(playerid, "selectskin", 218);
    91. }
    92. case 197:
    93. {
    94. SetPlayerSkin(playerid, 198);
    95. SetPVarInt(playerid, "selectskin", 198);
    96. }
    97. case 196:
    98. {
    99. SetPlayerSkin(playerid, 197);
    100. SetPVarInt(playerid, "selectskin", 197);
    101. }
    102. case 157:
    103. {
    104. SetPlayerSkin(playerid, 196);
    105. SetPVarInt(playerid, "selectskin", 196);
    106. }
    107. case 151:
    108. {
    109. SetPlayerSkin(playerid, 157);
    110. SetPVarInt(playerid, "selectskin", 157);
    111. }
    112. case 130:
    113. {
    114. SetPlayerSkin(playerid, 151);
    115. SetPVarInt(playerid, "selectskin", 151);
    116. }
    117. case 129:
    118. {
    119. SetPlayerSkin(playerid, 130);
    120. SetPVarInt(playerid, "selectskin", 130);
    121. }
    122. case 77:
    123. {
    124. SetPlayerSkin(playerid, 129);
    125. SetPVarInt(playerid, "selectskin", 129);
    126. }
    127. case 54:
    128. {
    129. SetPlayerSkin(playerid, 54);
    130. SetPVarInt(playerid, "selectskin", 54);
    131. }
    132. case 39:
    133. {
    134. SetPlayerSkin(playerid, 54);
    135. SetPVarInt(playerid, "selectskin", 54);
    136. }
    137. case 31:
    138. {
    139. SetPlayerSkin(playerid, 39);
    140. SetPVarInt(playerid, "selectskin", 39);
    141. }
    142. case 13:
    143. {
    144. SetPlayerSkin(playerid, 31);
    145. SetPVarInt(playerid, "selectskin", 31);
    146. }
    147. }
    148. }
    149. }
    150. SelectTextDraw(playerid, 0xFFFFFFFF);
    151. }
    152. else if(clickedid == selectskin_td[1])
    153. {
    154. switch(player_info[playerid][p_sex])
    155. {
    156. case 1:
    157. {
    158. switch(GetPVarInt(playerid, !"selectskin"))
    159. {
    160. case 78:
    161. {
    162. SetPlayerSkin(playerid, 160);
    163. SetPVarInt(playerid, !"selectskin", 160);
    164. }
    165. case 160:
    166. {
    167. SetPlayerSkin(playerid, 230);
    168. SetPVarInt(playerid, !"selectskin", 230);
    169. }
    170. case 230:
    171. {
    172. SetPlayerSkin(playerid, 213);
    173. SetPVarInt(playerid, !"selectskin", 213);
    174. }
    175. case 213:
    176. {
    177. SetPlayerSkin(playerid, 212);
    178. SetPVarInt(playerid, !"selectskin", 212);
    179. }
    180. case 212:
    181. {
    182. SetPlayerSkin(playerid, 200);
    183. SetPVarInt(playerid, !"selectskin", 200);
    184. }
    185. case 200:
    186. {
    187. SetPlayerSkin(playerid, 137);
    188. SetPVarInt(playerid, !"selectskin", 137);
    189. }
    190. case 137:
    191. {
    192. SetPlayerSkin(playerid, 136);
    193. SetPVarInt(playerid, !"selectskin", 136);
    194. }
    195. case 136:
    196. {
    197. SetPlayerSkin(playerid, 135);
    198. SetPVarInt(playerid, !"selectskin", 135);
    199. }
    200. case 135:
    201. {
    202. SetPlayerSkin(playerid, 134);
    203. SetPVarInt(playerid, !"selectskin", 134);
    204. }
    205. case 134:
    206. {
    207. SetPlayerSkin(playerid, 132);
    208. SetPVarInt(playerid, "selectskin", 132);
    209. }
    210. case 132:
    211. {
    212. SetPlayerSkin(playerid, 79);
    213. SetPVarInt(playerid, !"selectskin", 79);
    214. }
    215. case 79:
    216. {
    217. SetPlayerSkin(playerid, 78);
    218. SetPVarInt(playerid, !"selectskin", 78);
    219. }
    220. }
    221. }
    222. case 2:
    223. {
    224. switch(GetPVarInt(playerid, !"selectskin"))
    225. {
    226. case 10:
    227. {
    228. SetPlayerSkin(playerid, 218);
    229. SetPVarInt(playerid, !"selectskin", 218);
    230. }
    231. case 218:
    232. {
    233. SetPlayerSkin(playerid, 198);
    234. SetPVarInt(playerid, !"selectskin", 198);
    235. }
    236. case 198:
    237. {
    238. SetPlayerSkin(playerid, 197);
    239. SetPVarInt(playerid, !"selectskin", 197);
    240. }
    241. case 197:
    242. {
    243. SetPlayerSkin(playerid, 196);
    244. SetPVarInt(playerid, !"selectskin", 196);
    245. }
    246. case 196:
    247. {
    248. SetPlayerSkin(playerid, 157);
    249. SetPVarInt(playerid, !"selectskin", 157);
    250. }
    251. case 157:
    252. {
    253. SetPlayerSkin(playerid, 151);
    254. SetPVarInt(playerid, !"selectskin", 151);
    255. }
    256. case 151:
    257. {
    258. SetPlayerSkin(playerid, 130);
    259. SetPVarInt(playerid, !"selectskin", 130);
    260. }
    261. case 130:
    262. {
    263. SetPlayerSkin(playerid, 129);
    264. SetPVarInt(playerid, !"selectskin", 129);
    265. }
    266. case 129:
    267. {
    268. SetPlayerSkin(playerid, 77);
    269. SetPVarInt(playerid, !"selectskin", 77);
    270. }
    271. case 77:
    272. {
    273. SetPlayerSkin(playerid, 54);
    274. SetPVarInt(playerid, !"selectskin", 54);
    275. }
    276. case 54:
    277. {
    278. SetPlayerSkin(playerid, 39);
    279. SetPVarInt(playerid, !"selectskin", 39);
    280. }
    281. case 39:
    282. {
    283. SetPlayerSkin(playerid, 31);
    284. SetPVarInt(playerid, !"selectskin", 31);
    285. }
    286. case 31:
    287. {
    288. SetPlayerSkin(playerid, 13);
    289. SetPVarInt(playerid, !"selectskin", 13);
    290. }
    291. case 13:
    292. {
    293. SetPlayerSkin(playerid, 10);
    294. SetPVarInt(playerid, !"selectskin", 10);
    295. }
    296. }
    297. }
    298. }
    299. SelectTextDraw(playerid, 0xFFFFFFFF);
    300. }
    301. else
    302. {
    303. player_info[playerid][p_skin] = GetPVarInt(playerid, "selectskin");
    304.  
    305. static const
    306. fmt_query[] = "UPDATE `accounts` SET `skin` = '%d' WHERE `id` = '%d'";
    307.  
    308. new
    309. query[sizeof(fmt_query) + (- 2 + 3) + (- 2 + 8)];
    310.  
    311. format(query, sizeof(query), fmt_query, player_info[playerid][p_skin], player_info[playerid][p_id]);
    312. mysql_query(dbHandle, query);
    313.  
    314. SetPlayerSkin(playerid, player_info[playerid][p_skin]);
    315.  
    316. SelectTextDraw(playerid, 0xFFFFFFFF);
    317.  
    318. SetPVarInt(playerid, !"reg", 1);
    319.  
    320. SpawnPlayer(playerid);
    321. }
    322. return 1;
    323. }


    И создать 1 массив с заранее подсчитанным числом ячеек для MySql запроса вместо двух (что пойдет в жертву читаемости и удобству), больше мне кажется никак.
    Последний раз редактировалось SteveStage; 20.08.2020 в 08:32.

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

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Цитата Сообщение от SteveStage Посмотреть сообщение
    Можешь сделать проверки if(clickedid == selectskin_td[]) с помощью if-elseif-else.
    Лучше уж тогда return расставить.
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

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

    Steve Pavlina

  4. Пользователь сказал cпасибо:
    oukibt (21.08.2020)
  5. #4
    Аватар для execution
    Пользователь

    Статус
    Оффлайн
    Регистрация
    09.03.2018
    Сообщений
    255
    Репутация:
    24 ±
    Я так понял, ты выбираешь скин при регистрации. Подставь ид скинов в массив свои.

    1. new
    2. registration_skin_male[] = {160, 228, 211},
    3. registration_skin_female[] = {183, 271, 233};
    4.  
    5. new
    6. pVar__RegistrationSkin_IDX[] = !"pVar__RegistrationSkin_IDX";
    7.  
    8.  
    9. public OnPlayerClickTextDraw(playerid, Text:clickedid)
    10. {
    11. if(clickedid == selectskin_td[0])
    12. {
    13. new
    14. idx = GetPVarInt(playerid, pVar__RegistrationSkin_IDX) - 1;
    15.  
    16. if (player_info[playerid][p_sex])
    17. {
    18. if (idx < 0))
    19. {
    20. idx = sizeof registration_skin_male - 1;
    21. }
    22.  
    23. SetPlayerSkin(playerid, registration_skin_male[idx];
    24. }
    25. else
    26. {
    27. if (idx < 0))
    28. {
    29. idx = sizeof registration_skin_female - 1;
    30. }
    31.  
    32. SetPlayerSkin(playerid, registration_skin_female[idx];
    33. }
    34.  
    35. SetPVarInt(playerid, pVar__RegistrationSkin_IDX, idx);
    36. SelectTextDraw(playerid, 0xFFFFFFFF);
    37. }
    38. if(clickedid == selectskin_td[1])
    39. {
    40.  
    41. new
    42. idx = GetPVarInt(playerid, pVar__RegistrationSkin_IDX) + 1;
    43.  
    44. if (player_info[playerid][p_sex])
    45. {
    46. if (idx >= sizeof registration_skin_male)
    47. {
    48. idx = 0;
    49. }
    50.  
    51. SetPlayerSkin(playerid, registration_skin_male[idx];
    52. }
    53. else
    54. {
    55. if (idx >= sizeof registration_skin_female)
    56. {
    57. idx = 0;
    58. }
    59.  
    60. SetPlayerSkin(playerid, registration_skin_female[idx];
    61. }
    62.  
    63. SetPVarInt(playerid, pVar__RegistrationSkin_IDX, idx);
    64. SelectTextDraw(playerid, 0xFFFFFFFF);
    65. }
    66.  
    67. if(clickedid == selectskin_td[4])
    68. {
    69. DeletePVar(playerid, pVar__RegistrationSkin_IDX);
    70.  
    71. player_info[playerid][p_skin] = GetPlayerSkin(playerid);
    72.  
    73. static const
    74. fmt_query[] = "UPDATE `accounts` SET `skin` = '%d' WHERE `id` = '%d'";
    75.  
    76. new
    77. query[sizeof(fmt_query) + (- 2 + 3) + (- 2 + 8)];
    78.  
    79. format(query, sizeof(query), fmt_query, player_info[playerid][p_skin], player_info[playerid][p_id]);
    80. mysql_query(dbHandle, query);
    81.  
    82. SetPVarInt(playerid, !"reg", 1);
    83.  
    84. SpawnPlayer(playerid);
    85. }
    86.  
    87. return 1;
    88. }

  6. Пользователь сказал cпасибо:
    alexei (02.09.2020)
  7. #5
    Аватар для DeimoS
    Модератор?

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

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

    Steve Pavlina

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

    Статус
    Оффлайн
    Регистрация
    20.08.2020
    Сообщений
    9
    Репутация:
    0 ±
    PHP код:
    forward CheckOffWarn(playeridwarnnick[], warnreason[]);
    public 
    CheckOffWarn(playeridwarnnick[], warnreason[])
    {
        new 
    rows;
        
    cache_get_row_count(rows);
        if(
    rows)
        {
            new 
    query[266], accwarnstring[221], admlvlidplayerfracidacc;
            
    cache_get_value_name_int(0"warn"accwarn);
            
    cache_get_value_name_int(0"admin"admlvl);
            
    cache_get_value_name_int(0"id"idplayer);
            
    cache_get_value_name_int(0"org"frac);

            if(
    admlvl && GetPVarInt(playerid, !"nooffwarn") == 0)
            {
                
    SetPVarInt(playerid, !"nooffwarn"1);
                
    SCM(playeridCOLOR_WARNING, !"Вы собираетесь выдать оффлайн предупреждение администратору сервера. Чтобы продолжить введите команду ещё раз");
                return 
    true;
            }
            
    accwarn++;
            if(
    accwarn == 3)
            {
                if(!
    strlen(warnreason))
                {
                    
    format(stringsizeof(string), "Администратор %s выдал оффлайн предупреждение игроку %s [3/3]. Акк. заблок. на 10 дней"player_info[playerid][p_name], warnnick);
                }
                else
                {
                    
    format(stringsizeof(string), "Администратор %s выдал оффлайн предупреждение игроку %s [3/3]. Причина: %s. Акк. заблок. на 10 дней"player_info[playerid][p_name], warnnickwarnreason);
                }
                
    SendClientMessageToAll(COLOR_LIGHTREDstring);
                
                
    format(querysizeof(query), "DELETE FROM `unwarn` WHERE `name` = '%s'"warnnick);
                
    mysql_tquery(dbHandlequery);
                
                
    format(querysizeof(query), "DELETE FROM `act_warn` WHERE `nick` = '%s'"warnnick);
                
    mysql_tquery(dbHandlequery);
                
                
    accwarn 0;
                
                
    format(querysizeof(query), "UPDATE `accounts` SET `warn` = '%d' WHERE `id` = '%d'"accwarnidplayer);
                
    mysql_tquery(dbHandlequery);
                
                new 
    YearMonthDay;
                
    getdate(YearMonthDay);
                new 
    monthname[9];
                switch(
    Month)
                {
                    case 
    1monthname "января";
                    case 
    2monthname "февраля";
                    case 
    3monthname "марта";
                    case 
    4monthname "апреля";
                    case 
    5monthname "мая";
                    case 
    6monthname "июня";
                    case 
    7monthname "июля";
                    case 
    8monthname "августа";
                    case 
    9monthname "сентября";
                    case 
    10monthname "октября";
                    case 
    11monthname "ноября";
                    case 
    12monthname "декабря";
                }
                new 
    unban gettime() + 864000;
                new 
    HourMinuteSecond;
                
    gettime(HourMinuteSecond);
                if(
    admlvl != 0)
                {
                    
    format(querysizeof(query), "UPDATE `accounts` SET `admin` = '0' WHERE `id` = '%d'"idplayer);
                    
    mysql_tquery(dbHandlequery);
                }
                
    format(querysizeof(query), "SELECT * FROM `accounts` WHERE `login` = '%s'"warnnick);
                
    mysql_tquery(dbHandlequery"GetIDAcc""s"warnnick);
                
                
    format(querysizeof(query), "INSERT INTO `bans` (`name`, `bandate`, `unbandate`, `bantime`, `admin`, `reason`, `ipban`, `idacc`) VALUES ('%s', '%d-%02d-%02d', '%d', '%02d:%02d:%02d', '%s', '3 warns', '0.0.0.0', '%d')"warnnickYearMonthDayunbanHourMinuteSecondplayer_info[playerid][p_name], idacc);
                
    mysql_tquery(dbHandlequery);
                return 
    true;
            }
            
    format(querysizeof(query), "UPDATE `accounts` SET `warn` = '%d' WHERE `id` = '%d'"accwarnidplayer);
            
    mysql_tquery(dbHandlequery);
            
            if(!
    strlen(warnreason))
            {
                
    format(stringsizeof(string), "Администратор %s выдал оффлайн предупреждение игроку %s [%d/3]."player_info[playerid][p_name], warnnickaccwarn);
            }
            else
            {
                
    format(stringsizeof(string), "Администратор %s выдал оффлайн предупреждение игроку %s [%d/3]. Причина: %s"player_info[playerid][p_name], warnnickaccwarnwarnreason);
            }
            
    SendClientMessageToAll(COLOR_LIGHTREDstring);
            new 
    YearMonthDay;
            
    getdate(YearMonthDay);
            new 
    HourMinuteSecond;
            
    gettime(HourMinuteSecond);
            
            
    format(stringsizeof(string), "INSERT INTO `act_warn` (`nick`, `warn`, `date`, `time`, `anick`, `reason`) VALUES ('%s', '%d', '%02d-%02d-%02d', '%02d:%02d:%02d', '%s', '%s')"warnnickaccwarnYearMonthDayHourMinuteSecondplayer_info[playerid][p_name], warnreason);
            
    mysql_tquery(dbHandlestring);
            if(
    admlvl != 0)
            {
                
    format(querysizeof(query), "UPDATE `accounts` SET `admin` = '0' WHERE `id` = '%d'"idplayer);
                
    mysql_tquery(dbHandlequery);
            }
            if(
    frac != 0)
            {
                
    format(querysizeof(query), "UPDATE `accounts` SET `org` = '0', `rang` = '0', `frac_skin` = '0' WHERE `id` = '%d'"idplayer);
                
    mysql_tquery(dbHandlequery);
            }
        }
        return 
    true;

    а тут?

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

    Статус
    Оффлайн
    Регистрация
    05.10.2019
    Адрес
    Планета Земля
    Сообщений
    318
    Репутация:
    7 ±
    1. switch(Month)
    2. {
    3. case 1: monthname = "января";
    4. case 2: monthname = "февраля";
    5. case 3: monthname = "марта";
    6. case 4: monthname = "апреля";
    7. case 5: monthname = "мая";
    8. case 6: monthname = "июня";
    9. case 7: monthname = "июля";
    10. case 8: monthname = "августа";
    11. case 9: monthname = "сентября";
    12. case 10: monthname = "октября";
    13. case 11: monthname = "ноября";
    14. case 12: monthname = "декабря";
    15. }


    Так сделать не получится, это тебе не С++ с перегруженным оператором =, используй strmid:

    1. strmid(monthname, "января", 0, sizeof(monthname));
    Последний раз редактировалось SteveStage; 29.08.2020 в 02:32.

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

    Статус
    Оффлайн
    Регистрация
    01.09.2019
    Сообщений
    121
    Репутация:
    26 ±
    Цитата Сообщение от SteveStage Посмотреть сообщение
    1. switch(Month)
    2. {
    3. case 1: monthname = "января";
    4. case 2: monthname = "февраля";
    5. case 3: monthname = "марта";
    6. case 4: monthname = "апреля";
    7. case 5: monthname = "мая";
    8. case 6: monthname = "июня";
    9. case 7: monthname = "июля";
    10. case 8: monthname = "августа";
    11. case 9: monthname = "сентября";
    12. case 10: monthname = "октября";
    13. case 11: monthname = "ноября";
    14. case 12: monthname = "декабря";
    15. }


    Так сделать не получится, это тебе не С++ с перегруженным оператором =, используй strmid:

    1. strmid(monthname, "января", 0, sizeof(monthname));
    Конкретно, как тут не выйдет (размер мал), а вообще можно через =

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

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

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

    Steve Pavlina

  12. #10
    Аватар для alexei
    Пользователь

    Статус
    Оффлайн
    Регистрация
    20.08.2020
    Сообщений
    9
    Репутация:
    0 ±
    PHP код:
    stock SaveCars(playerid)
    {
        if(
    p_info[playerid][pLogin] == 0) return 1;

        
    format(MySQLStr1200"UPDATE `accounts` SET `cModel` = '%d,%d,%d', ",
        
    CarInfo[playerid][cModel][0], CarInfo[playerid][cModel][1], CarInfo[playerid][cModel][2]);

        
    format(MySQLStr1200"%s `cSost` = '%d,%d,%d', "MySQLStr,
        
    CarInfo[playerid][cSost][0], CarInfo[playerid][cSost][1], CarInfo[playerid][cSost][2]);

        
    format(MySQLStr1200"%s `cColor1` = '%d,%d,%d', "MySQLStr,
        
    CarInfo[playerid][cColor1][0], CarInfo[playerid][cColor1][1], CarInfo[playerid][cColor1][2]);

        
    format(MySQLStr1200"%s `cColor2` = '%d,%d,%d', "MySQLStr,
        
    CarInfo[playerid][cColor2][0], CarInfo[playerid][cColor2][1], CarInfo[playerid][cColor2][2]);

        
    format(MySQLStr1200"%s `cNumber` = '%s,%s,%s', "MySQLStr,
        
    VehicleNumberPlate[playerid][0], VehicleNumberPlate[playerid][1], VehicleNumberPlate[playerid][2]);

        
    format(MySQLStr1200"%s `cPaintJobs` = '%d,%d,%d', "MySQLStr,
        
    CarInfo[playerid][cPaintJobs][0], CarInfo[playerid][cPaintJobs][1], CarInfo[playerid][cPaintJobs][2]);

        
    format(MySQLStr1200"%s `cLock` = '%d,%d,%d', "MySQLStr,
        
    CarInfo[playerid][cLock][0], CarInfo[playerid][cLock][1], CarInfo[playerid][cLock][2]);

        
    format(MySQLStr1200"%s `cFuel` = '%f,%f,%f', "MySQLStr,
        
    CarInfo[playerid][cFuel][0], CarInfo[playerid][cFuel][1], CarInfo[playerid][cFuel][2]);

        
    format(MySQLStr1200"%s `cCost` = '%d,%d,%d', "MySQLStr,
        
    CarInfo[playerid][cCost][0], CarInfo[playerid][cCost][1], CarInfo[playerid][cCost][2]);

        
    format(MySQLStr1200"%s `cProbeg` = '%f,%f,%f', "MySQLStr,
        
    CarInfo[playerid][cProbeg][0], CarInfo[playerid][cProbeg][1], CarInfo[playerid][cProbeg][2]);

        
    format(MySQLStr1200"%s `cWheels` = '%d,%d,%d', "MySQLStr,
        
    CarInfo[playerid][cWheels][0], CarInfo[playerid][cWheels][1], CarInfo[playerid][cWheels][2]);

        
    format(MySQLStr1200"%s `cSpoiler` = '%d,%d,%d', "MySQLStr,
        
    CarInfo[playerid][cSpoiler][0], CarInfo[playerid][cSpoiler][1], CarInfo[playerid][cSpoiler][2]);

        
    format(MySQLStr1200"%s `cBumper1` = '%d,%d,%d', "MySQLStr,
        
    CarInfo[playerid][cBumper1][0], CarInfo[playerid][cBumper1][1], CarInfo[playerid][cBumper1][2]);

        
    format(MySQLStr1200"%s `cBumper2` = '%d,%d,%d', "MySQLStr,
        
    CarInfo[playerid][cBumper2][0], CarInfo[playerid][cBumper2][1], CarInfo[playerid][cBumper2][2]);

        
    format(MySQLStr1200"%s `cNitro` = '%d,%d,%d', "MySQLStr,
        
    CarInfo[playerid][cNitro][0], CarInfo[playerid][cNitro][1], CarInfo[playerid][cNitro][2]);

        
    format(MySQLStr1200"%s `cHydrawlic` = '%d,%d,%d', "MySQLStr,
        
    CarInfo[playerid][cHydrawlic][0], CarInfo[playerid][cHydrawlic][1], CarInfo[playerid][cHydrawlic][2]);

        
    format(MySQLStr1200"%s `cHood` = '%d,%d,%d', "MySQLStr,
        
    CarInfo[playerid][cHood][0], CarInfo[playerid][cHood][1], CarInfo[playerid][cHood][2]);

        
    format(MySQLStr1200"%s `cRoof` = '%d,%d,%d', "MySQLStr,
        
    CarInfo[playerid][cRoof][0], CarInfo[playerid][cRoof][1], CarInfo[playerid][cRoof][2]);

        
    format(MySQLStr1200"%s `cSideskirt` = '%d,%d,%d', "MySQLStr,
        
    CarInfo[playerid][cSideskirt][0], CarInfo[playerid][cSideskirt][1], CarInfo[playerid][cSideskirt][2]);

        
    format(MySQLStr1200"%s `cLamps` = '%d,%d,%d', "MySQLStr,
        
    CarInfo[playerid][cLamps][0], CarInfo[playerid][cLamps][1], CarInfo[playerid][cLamps][2]);

        
    format(MySQLStr1200"%s `cExhaust` = '%d,%d,%d', "MySQLStr,
        
    CarInfo[playerid][cExhaust][0], CarInfo[playerid][cExhaust][1], CarInfo[playerid][cExhaust][2]);

        
    format(MySQLStr1200"%s `cStereo` = '%d,%d,%d', "MySQLStr,
        
    CarInfo[playerid][cStereo][0], CarInfo[playerid][cStereo][1], CarInfo[playerid][cStereo][2]);

        
    format(MySQLStr1200"%s `cVentRight` = '%d,%d,%d', "MySQLStr,
        
    CarInfo[playerid][cVentRight][0], CarInfo[playerid][cVentRight][1], CarInfo[playerid][cVentRight][2]);

        
    format(MySQLStr1200"%s `cVentLeft` = '%d,%d,%d', "MySQLStr,
        
    CarInfo[playerid][cVentLeft][0], CarInfo[playerid][cVentLeft][1], CarInfo[playerid][cVentLeft][2]);

        
    format(MySQLStr1200"%s `cHeal` = '%f,%f,%f    ', "MySQLStr,
        
    CarInfo[playerid][cHeal][0], CarInfo[playerid][cHeal][1], CarInfo[playerid][cHeal][2]);

        
    format(MySQLStr1200"%s `cDamagePanel` = '%d,%d,%d', "MySQLStr,
        
    CarInfo[playerid][cDamagePanel][0], CarInfo[playerid][cDamagePanel][1], CarInfo[playerid][cDamagePanel][2]);

        
    format(MySQLStr1200"%s `cDamageDoors` = '%d,%d,%d', "MySQLStr,
        
    CarInfo[playerid][cDamageDoors][0], CarInfo[playerid][cDamageDoors][1], CarInfo[playerid][cDamageDoors][2]);

        
    format(MySQLStr1200"%s `cDamageLights` = '%d,%d,%d', "MySQLStr,
        
    CarInfo[playerid][cDamageLights][0], CarInfo[playerid][cDamageLights][1], CarInfo[playerid][cDamageLights][2]);

        
    format(MySQLStr1200"%s `cDamageTires` = '%d,%d,%d' WHERE `pID` = %d"MySQLStr,
        
    CarInfo[playerid][cDamageTires][0], CarInfo[playerid][cDamageTires][1], CarInfo[playerid][cDamageTires][2], GetPlayerAccountID(playerid));

        
    mysql_tquery(dbHandleMySQLStr);

        return 
    1;

    тут тоже такое говно сделали, как оптимизировать до минимума? по 1200 ячеек на каждую строку...

 

 
Страница 1 из 2 1 2 ПоследняяПоследняя

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

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

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

Ваши права

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