А есть русификатор, который нормально отображает?
Просто русификатор(т.е. сам шрифт) нужен для отображение русского текста в текстдровах. Просто многие даже простых слов по англ. не понимают. |
Что значит транслитеризовать?
Подменить буквы русские? Т.е. букву П на P. А как быть с буквами Й,Ы,Ж,Ч,Ю,Ш,Щ? |
stock Translate(str[]) { new retstr[512]; for(new i=0;i<strlen(str);i++) { switch(str[i]) { case 'А':strcat(retstr,"A"); case 'Б':strcat(retstr,"B"); case 'В':strcat(retstr,"V"); case 'Г':strcat(retstr,"G"); case 'Д':strcat(retstr,"D"); case 'Е':strcat(retstr,"E"); case 'Ё':strcat(retstr,"Jo"); case 'Ж':strcat(retstr,"Zh"); case 'З':strcat(retstr,"Z"); case 'И':strcat(retstr,"I"); case 'Й':strcat(retstr,"J"); case 'К':strcat(retstr,"K"); case 'Л':strcat(retstr,"L"); case 'М':strcat(retstr,"M"); case 'Н':strcat(retstr,"N"); case 'О':strcat(retstr,"O"); case 'П':strcat(retstr,"P"); case 'Р':strcat(retstr,"R"); case 'С':strcat(retstr,"S"); case 'Т':strcat(retstr,"T"); case 'У':strcat(retstr,"U"); case 'Ф':strcat(retstr,"F"); case 'Х':strcat(retstr,"H"); case 'Ц':strcat(retstr,"C"); case 'Ч':strcat(retstr,"Ch"); case 'Ш':strcat(retstr,"Sh"); case 'Щ':strcat(retstr,"Shh"); case 'Ь':strcat(retstr,"#"); case 'Ы':strcat(retstr,"Y"); case 'Ъ':strcat(retstr,"'"); case 'Э':strcat(retstr,"Je"); case 'Ю':strcat(retstr,"Ju"); case 'Я':strcat(retstr,"Ja"); case 'а':strcat(retstr,"a"); case 'б':strcat(retstr,"b"); case 'в':strcat(retstr,"v"); case 'г':strcat(retstr,"g"); case 'д':strcat(retstr,"d"); case 'е':strcat(retstr,"e"); case 'ё':strcat(retstr,"jo"); case 'ж':strcat(retstr,"zh"); case 'з':strcat(retstr,"z"); case 'и':strcat(retstr,"i"); case 'й':strcat(retstr,"j"); case 'к':strcat(retstr,"k"); case 'л':strcat(retstr,"l"); case 'м':strcat(retstr,"m"); case 'н':strcat(retstr,"n"); case 'о':strcat(retstr,"o"); case 'п':strcat(retstr,"p"); case 'р':strcat(retstr,"r"); case 'с':strcat(retstr,"s"); case 'т':strcat(retstr,"t"); case 'у':strcat(retstr,"u"); case 'ф':strcat(retstr,"f"); case 'х':strcat(retstr,"h"); case 'ц':strcat(retstr,"c"); case 'ч':strcat(retstr,"ch"); case 'ш':strcat(retstr,"sh"); case 'щ':strcat(retstr,"shh"); case 'ъ':strcat(retstr,"#"); case 'ы':strcat(retstr,"y"); case 'ь':strcat(retstr,"'"); case 'э':strcat(retstr,"je"); case 'ю':strcat(retstr,"ju"); case 'я':strcat(retstr,"ja"); case ' ':strcat(retstr," "); case '0':strcat(retstr,"0"); case '1':strcat(retstr,"1"); case '2':strcat(retstr,"2"); case '3':strcat(retstr,"3"); case '4':strcat(retstr,"4"); case '5':strcat(retstr,"5"); case '6':strcat(retstr,"6"); case '7':strcat(retstr,"7"); case '8':strcat(retstr,"8"); case '9':strcat(retstr,"9"); case 'a':strcat(retstr,"a"); case 'b':strcat(retstr,"b"); case 'c':strcat(retstr,"c"); case 'd':strcat(retstr,"d"); case 'e':strcat(retstr,"e"); case 'f':strcat(retstr,"f"); case 'g':strcat(retstr,"g"); case 'h':strcat(retstr,"h"); case 'i':strcat(retstr,"i"); case 'j':strcat(retstr,"j"); case 'k':strcat(retstr,"k"); case 'l':strcat(retstr,"l"); case 'm':strcat(retstr,"m"); case 'n':strcat(retstr,"n"); case 'o':strcat(retstr,"o"); case 'p':strcat(retstr,"p"); case 'q':strcat(retstr,"q"); case 'r':strcat(retstr,"r"); case 's':strcat(retstr,"s"); case 't':strcat(retstr,"t"); case 'u':strcat(retstr,"u"); case 'v':strcat(retstr,"v"); case 'w':strcat(retstr,"w"); case 'x':strcat(retstr,"x"); case 'y':strcat(retstr,"y"); case 'z':strcat(retstr,"z"); case 'A':strcat(retstr,"A"); case 'B':strcat(retstr,"B"); case 'C':strcat(retstr,"C"); case 'D':strcat(retstr,"D"); case 'E':strcat(retstr,"E"); case 'F':strcat(retstr,"F"); case 'G':strcat(retstr,"G"); case 'H':strcat(retstr,"H"); case 'I':strcat(retstr,"I"); case 'J':strcat(retstr,"J"); case 'K':strcat(retstr,"K"); case 'L':strcat(retstr,"L"); case 'M':strcat(retstr,"M"); case 'N':strcat(retstr,"N"); case 'O':strcat(retstr,"O"); case 'P':strcat(retstr,"P"); case 'Q':strcat(retstr,"Q"); case 'R':strcat(retstr,"R"); case 'S':strcat(retstr,"S"); case 'T':strcat(retstr,"T"); case 'U':strcat(retstr,"U"); case 'V':strcat(retstr,"V"); case 'W':strcat(retstr,"W"); case 'X':strcat(retstr,"X"); case 'Y':strcat(retstr,"Y"); case 'Z':strcat(retstr,"Z"); case '!':strcat(retstr,"!"); case '@':strcat(retstr,"@"); case '#':strcat(retstr,"#"); case '$':strcat(retstr,"$"); case '%':strcat(retstr,"%"); case '^':strcat(retstr,"^"); case '&':strcat(retstr,"&"); case '*':strcat(retstr,"*"); case '(':strcat(retstr,"("); case ')':strcat(retstr,")"); case '-':strcat(retstr,"-"); case '_':strcat(retstr,"_"); case '=':strcat(retstr,"="); case '+':strcat(retstr,"+"); case ';':strcat(retstr,";"); case ':':strcat(retstr,":"); case '|':strcat(retstr,"|"); case '[':strcat(retstr,"["); case ']':strcat(retstr,"]"); case '{':strcat(retstr,"{"); case '}':strcat(retstr,"}"); case '.':strcat(retstr,"."); case ',':strcat(retstr,","); case '?':strcat(retstr,"?"); case '/':strcat(retstr,"/"); default: strcat(retstr,str[i]); } } return retstr; }
(3455) : error 075: input line too long (after substitutions) (3456) : error 027: invalid character constant (3456) : error 017: undefined symbol "UPDATE" (3456) : error 029: invalid expression, assumed zero (3456) : fatal error 107: too many error messages on one line
stock bool: SaveVehicle(const vehid) { GetVehicleHealth(vehid, VehicleInfo[vehid][vehicleHealth]); new sql[1028]; format(sql, sizeof(sql), "UPDATE `vehicles` SET `Model`='%d',\ `PosX`='%.3f',\ `PosY`='%.3f',\ `PosZ`='%.3f',\ `PosA`='%.1f',\ `Owned`='%d',\ `Owner`='%s',\ `ROwner`='%s',\ `Color1`='%d',\ `Color2`='%d',\ `Number`=\"%s\",\ `Locked`='%d',\ `Key`='%d',\ `Teh`='%d',\ `Lock`='%d',\ `Alarm`='%d',\ `Immob`='%d',\ `Insurance`='%d',\ `Destroyed`='%d',\ `TicketPrice`='%d',\ `TicketText`=\"%s\",\ `Faction`='%d',\ `Tires`='%d',\ `Panels`='%d',\ `Doors`='%d',\ `Lights`='%d',\ `Fuel`='%.1f',\ `MaxFuel`='%.1f',\ `Price`='%d',\ ----Строка 3455 `Weed`='%d',\ ----Строка 3456 `Heroin`='%d',\ `Seeds`='%d',\ `Armour`='%.1f',", VehicleInfo[vehid][Model], VehicleInfo[vehid][vCurrentPos][0], VehicleInfo[vehid][vCurrentPos][1], VehicleInfo[vehid][vCurrentPos][2], VehicleInfo[vehid][vCurrentPos][3], VehicleInfo[vehid][Owned], VehicleInfo[vehid][Owner], VehicleInfo[vehid][ROwner], VehicleInfo[vehid][vColor][0], VehicleInfo[vehid][vColor][1], VehicleInfo[vehid][Number], VehicleInfo[vehid][Locked], VehicleInfo[vehid][Key], VehicleInfo[vehid][Teh], VehicleInfo[vehid][Lock], VehicleInfo[vehid][Alarm], VehicleInfo[vehid][Immob], VehicleInfo[vehid][Insurance], VehicleInfo[vehid][Destroyed], VehicleInfo[vehid][TicketPrice], VehicleInfo[vehid][TicketText], VehicleInfo[vehid][Faction], VehicleInfo[vehid][vDamage][3], VehicleInfo[vehid][vDamage][0], VehicleInfo[vehid][vDamage][1], VehicleInfo[vehid][vDamage][2], VehicleInfo[vehid][Fuel], VehicleInfo[vehid][MaxFuel], VehicleInfo[vehid][Price], VehicleInfo[vehid][Weed], VehicleInfo[vehid][Heroin], VehicleInfo[vehid][Seeds], VehicleInfo[vehid][Armour]); format(sql, sizeof(sql), "%s`Wheels`='%d',\ `Hydraulics`='%d',\ `Roof`='%d',\ `WeaponOne`='%d',\ `AmmoOne`='%d',\ `WeaponTwo`='%d',\ `AmmoTwo`='%d',\ `WeaponThree`='%d',\ `AmmoThree`='%d',\ `WeaponFour`='%d',\ `AmmoFour`='%d',\ `WeaponFive`='%d',\ `AmmoFive`='%d',\ `Mileage`='%.1f',\ `Health`='%.1f' WHERE `ID` = '%d'", sql, VehicleInfo[vehid][vTuning][WHEELS], VehicleInfo[vehid][vTuning][HYDRAULICS], VehicleInfo[vehid][vTuning][ROOF], VehicleInfo[vehid][WeaponOne], VehicleInfo[vehid][AmmoOne], VehicleInfo[vehid][WeaponTwo], VehicleInfo[vehid][AmmoTwo], VehicleInfo[vehid][WeaponThree], VehicleInfo[vehid][AmmoThree], VehicleInfo[vehid][WeaponFour], VehicleInfo[vehid][AmmoFour], VehicleInfo[vehid][WeaponFive], VehicleInfo[vehid][AmmoFive], VehicleInfo[vehid][Mileage], VehicleInfo[vehid][vehicleHealth], VehicleInfo[vehid][ID]); mysql_query(sql); return true; }
Кому не сложно, подскажите в чем проблема.
Code:
stock bool: SaveVehicle(const vehid) { GetVehicleHealth(vehid, VehicleInfo[vehid][vehicleHealth]); new sql[1028]; format(sql, sizeof(sql), "UPDATE `vehicles` SET `Model`='%d',\ `PosX`='%.3f',\ `PosY`='%.3f',\ `PosZ`='%.3f',\ `PosA`='%.1f',\ `Owned`='%d',\ `Owner`='%s',\ `ROwner`='%s',\ `Color1`='%d',\ `Color2`='%d',\ `Number`=\"%s\",\ `Locked`='%d',\ `Key`='%d',\ `Teh`='%d',\ `Lock`='%d',\ `Alarm`='%d',\ `Immob`='%d',\ `Insurance`='%d',\ `Destroyed`='%d',\ `TicketPrice`='%d',\ `TicketText`=\"%s\",\ `Faction`='%d',\ `Tires`='%d',\ `Panels`='%d',\ `Doors`='%d',\ `Lights`='%d',\ `Fuel`='%.1f',\ `MaxFuel`='%.1f',\ `Price`='%d',\ ----Строка 3455 `Weed`='%d',\ ----Строка 3456 `Heroin`='%d',\ `Seeds`='%d',\ `Armour`='%.1f',", VehicleInfo[vehid][Model], VehicleInfo[vehid][vCurrentPos][0], VehicleInfo[vehid][vCurrentPos][1], VehicleInfo[vehid][vCurrentPos][2], VehicleInfo[vehid][vCurrentPos][3], VehicleInfo[vehid][Owned], VehicleInfo[vehid][Owner], VehicleInfo[vehid][ROwner], VehicleInfo[vehid][vColor][0], VehicleInfo[vehid][vColor][1], VehicleInfo[vehid][Number], VehicleInfo[vehid][Locked], VehicleInfo[vehid][Key], VehicleInfo[vehid][Teh], VehicleInfo[vehid][Lock], VehicleInfo[vehid][Alarm], VehicleInfo[vehid][Immob], VehicleInfo[vehid][Insurance], VehicleInfo[vehid][Destroyed], VehicleInfo[vehid][TicketPrice], VehicleInfo[vehid][TicketText], VehicleInfo[vehid][Faction], VehicleInfo[vehid][vDamage][3], VehicleInfo[vehid][vDamage][0], VehicleInfo[vehid][vDamage][1], VehicleInfo[vehid][vDamage][2], VehicleInfo[vehid][Fuel], VehicleInfo[vehid][MaxFuel], VehicleInfo[vehid][Price], VehicleInfo[vehid][Weed], VehicleInfo[vehid][Heroin], VehicleInfo[vehid][Seeds], VehicleInfo[vehid][Armour]); format(sql, sizeof(sql), "%s`Wheels`='%d',\ `Hydraulics`='%d',\ `Roof`='%d',\ `WeaponOne`='%d',\ `AmmoOne`='%d',\ `WeaponTwo`='%d',\ `AmmoTwo`='%d',\ `WeaponThree`='%d',\ `AmmoThree`='%d',\ `WeaponFour`='%d',\ `AmmoFour`='%d',\ `WeaponFive`='%d',\ `AmmoFive`='%d',\ `Mileage`='%.1f',\ `Health`='%.1f' WHERE `ID` = '%d'", sql, VehicleInfo[vehid][vTuning][WHEELS], VehicleInfo[vehid][vTuning][HYDRAULICS], VehicleInfo[vehid][vTuning][ROOF], VehicleInfo[vehid][WeaponOne], VehicleInfo[vehid][AmmoOne], VehicleInfo[vehid][WeaponTwo], VehicleInfo[vehid][AmmoTwo], VehicleInfo[vehid][WeaponThree], VehicleInfo[vehid][AmmoThree], VehicleInfo[vehid][WeaponFour], VehicleInfo[vehid][AmmoFour], VehicleInfo[vehid][WeaponFive], VehicleInfo[vehid][AmmoFive], VehicleInfo[vehid][Mileage], VehicleInfo[vehid][vehicleHealth], VehicleInfo[vehid][ID]); mysql_query(sql); return true; } |
5-6 параметров из первого format'a во второй попробуйте перенести, захлебывается компилятор от таких длинных строк кода.
|
Например так:
Code:
stock Translate(str[]) { new retstr[512]; for(new i=0;i<strlen(str);i++) { switch(str[i]) { case 'А':strcat(retstr,"A"); case 'Б':strcat(retstr,"B"); case 'В':strcat(retstr,"V"); case 'Г':strcat(retstr,"G"); case 'Д':strcat(retstr,"D"); case 'Е':strcat(retstr,"E"); case 'Ё':strcat(retstr,"Jo"); case 'Ж':strcat(retstr,"Zh"); case 'З':strcat(retstr,"Z"); case 'И':strcat(retstr,"I"); case 'Й':strcat(retstr,"J"); case 'К':strcat(retstr,"K"); case 'Л':strcat(retstr,"L"); case 'М':strcat(retstr,"M"); case 'Н':strcat(retstr,"N"); case 'О':strcat(retstr,"O"); case 'П':strcat(retstr,"P"); case 'Р':strcat(retstr,"R"); case 'С':strcat(retstr,"S"); case 'Т':strcat(retstr,"T"); case 'У':strcat(retstr,"U"); case 'Ф':strcat(retstr,"F"); case 'Х':strcat(retstr,"H"); case 'Ц':strcat(retstr,"C"); case 'Ч':strcat(retstr,"Ch"); case 'Ш':strcat(retstr,"Sh"); case 'Щ':strcat(retstr,"Shh"); case 'Ь':strcat(retstr,"#"); case 'Ы':strcat(retstr,"Y"); case 'Ъ':strcat(retstr,"'"); case 'Э':strcat(retstr,"Je"); case 'Ю':strcat(retstr,"Ju"); case 'Я':strcat(retstr,"Ja"); case 'а':strcat(retstr,"a"); case 'б':strcat(retstr,"b"); case 'в':strcat(retstr,"v"); case 'г':strcat(retstr,"g"); case 'д':strcat(retstr,"d"); case 'е':strcat(retstr,"e"); case 'ё':strcat(retstr,"jo"); case 'ж':strcat(retstr,"zh"); case 'з':strcat(retstr,"z"); case 'и':strcat(retstr,"i"); case 'й':strcat(retstr,"j"); case 'к':strcat(retstr,"k"); case 'л':strcat(retstr,"l"); case 'м':strcat(retstr,"m"); case 'н':strcat(retstr,"n"); case 'о':strcat(retstr,"o"); case 'п':strcat(retstr,"p"); case 'р':strcat(retstr,"r"); case 'с':strcat(retstr,"s"); case 'т':strcat(retstr,"t"); case 'у':strcat(retstr,"u"); case 'ф':strcat(retstr,"f"); case 'х':strcat(retstr,"h"); case 'ц':strcat(retstr,"c"); case 'ч':strcat(retstr,"ch"); case 'ш':strcat(retstr,"sh"); case 'щ':strcat(retstr,"shh"); case 'ъ':strcat(retstr,"#"); case 'ы':strcat(retstr,"y"); case 'ь':strcat(retstr,"'"); case 'э':strcat(retstr,"je"); case 'ю':strcat(retstr,"ju"); case 'я':strcat(retstr,"ja"); case ' ':strcat(retstr," "); case '0':strcat(retstr,"0"); case '1':strcat(retstr,"1"); case '2':strcat(retstr,"2"); case '3':strcat(retstr,"3"); case '4':strcat(retstr,"4"); case '5':strcat(retstr,"5"); case '6':strcat(retstr,"6"); case '7':strcat(retstr,"7"); case '8':strcat(retstr,"8"); case '9':strcat(retstr,"9"); case 'a':strcat(retstr,"a"); case 'b':strcat(retstr,"b"); case 'c':strcat(retstr,"c"); case 'd':strcat(retstr,"d"); case 'e':strcat(retstr,"e"); case 'f':strcat(retstr,"f"); case 'g':strcat(retstr,"g"); case 'h':strcat(retstr,"h"); case 'i':strcat(retstr,"i"); case 'j':strcat(retstr,"j"); case 'k':strcat(retstr,"k"); case 'l':strcat(retstr,"l"); case 'm':strcat(retstr,"m"); case 'n':strcat(retstr,"n"); case 'o':strcat(retstr,"o"); case 'p':strcat(retstr,"p"); case 'q':strcat(retstr,"q"); case 'r':strcat(retstr,"r"); case 's':strcat(retstr,"s"); case 't':strcat(retstr,"t"); case 'u':strcat(retstr,"u"); case 'v':strcat(retstr,"v"); case 'w':strcat(retstr,"w"); case 'x':strcat(retstr,"x"); case 'y':strcat(retstr,"y"); case 'z':strcat(retstr,"z"); case 'A':strcat(retstr,"A"); case 'B':strcat(retstr,"B"); case 'C':strcat(retstr,"C"); case 'D':strcat(retstr,"D"); case 'E':strcat(retstr,"E"); case 'F':strcat(retstr,"F"); case 'G':strcat(retstr,"G"); case 'H':strcat(retstr,"H"); case 'I':strcat(retstr,"I"); case 'J':strcat(retstr,"J"); case 'K':strcat(retstr,"K"); case 'L':strcat(retstr,"L"); case 'M':strcat(retstr,"M"); case 'N':strcat(retstr,"N"); case 'O':strcat(retstr,"O"); case 'P':strcat(retstr,"P"); case 'Q':strcat(retstr,"Q"); case 'R':strcat(retstr,"R"); case 'S':strcat(retstr,"S"); case 'T':strcat(retstr,"T"); case 'U':strcat(retstr,"U"); case 'V':strcat(retstr,"V"); case 'W':strcat(retstr,"W"); case 'X':strcat(retstr,"X"); case 'Y':strcat(retstr,"Y"); case 'Z':strcat(retstr,"Z"); case '!':strcat(retstr,"!"); case '@':strcat(retstr,"@"); case '#':strcat(retstr,"#"); case '$':strcat(retstr,"$"); case '%':strcat(retstr,"%"); case '^':strcat(retstr,"^"); case '&':strcat(retstr,"&"); case '*':strcat(retstr,"*"); case '(':strcat(retstr,"("); case ')':strcat(retstr,")"); case '-':strcat(retstr,"-"); case '_':strcat(retstr,"_"); case '=':strcat(retstr,"="); case '+':strcat(retstr,"+"); case ';':strcat(retstr,";"); case ':':strcat(retstr,":"); case '|':strcat(retstr,"|"); case '[':strcat(retstr,"["); case ']':strcat(retstr,"]"); case '{':strcat(retstr,"{"); case '}':strcat(retstr,"}"); case '.':strcat(retstr,"."); case ',':strcat(retstr,","); case '?':strcat(retstr,"?"); case '/':strcat(retstr,"/"); default: strcat(retstr,str[i]); } } return retstr; } |
[16:44:06] Чтобы запарковать (USE: /parking или ѓOЊ 4). [16:44:06] Чтобы распарковать (USE: /unparking или ѓOЊ 6).
Уже лучше для клиентских сообщений вставлять константы
и заранее определить их типо #define VEHICLE_TURRETLEFT "ДОП 4" #define VEHICLE_TURRETRIGHT "ДОП 6" или сделать ф-ию по подмене чтобы в чате не наблюдать такое Code:
[16:44:06] Чтобы запарковать (USE: /parking или ѓOЊ 4). [16:44:06] Чтобы распарковать (USE: /unparking или ѓOЊ 6). |
Пардон, всё время почему то дописываю "о".
Но ведь в тесте if показал 8 мс, else-if 9 мс, а switch около 45 мс... А доказательства что он где-то быстрее я ещё не видел. Пойду сам проверю. |
Пардон, всё время почему то дописываю "о".
Но ведь в тесте if показал 8 мс, else-if 9 мс, а switch около 45 мс... А доказательства что он где-то быстрее я ещё не видел. Пойду сам проверю. |
enum pInfo { .. pPerks[10],//покуда временно в массиве PlayerInfo, потом будет локальной переменной pAlcoholPerk,//увеличивает кол-во получаемого здоровья при принятии спиртных напитков pDrugPerk,//увеличивает кол-во получаемого здоровья при принятии наркотиков pMiserPerk,//уменьшает стоимость покупки материалов для оружейника pPainPerk,//медик лечит свыше 100% pTraderPerk,//уменьшает стоимость покупок в магазине 24-7 .. } new PlayerInfo[MAX_PLAYERS][pInfo];
mysql_fetch_field_row(PlayerInfo[playerid][pPerks], "Perks"); PlayerInfo[playerid][pAlcoholPerk] = PlayerInfo[playerid][pPerks][0]; PlayerInfo[playerid][pDrugPerk] = PlayerInfo[playerid][pPerks][1]; PlayerInfo[playerid][pMiserPerk] = PlayerInfo[playerid][pPerks][2]; PlayerInfo[playerid][pPainPerk] = PlayerInfo[playerid][pPerks][3]; PlayerInfo[playerid][pTraderPerk] = PlayerInfo[playerid][pPerks][4];
format(PlayerInfo[playerid][pPerks], 10, "%c%c%c%c%c%c%c%c%c%c", PlayerInfo[playerid][pAlcoholPerk], PlayerInfo[playerid][pDrugPerk], PlayerInfo[playerid][pMiserPerk], PlayerInfo[playerid][pPainPerk], PlayerInfo[playerid][pTraderPerk], '0','0','0','0','0');
PlayerInfo[playerid][pPerks][0] = PlayerInfo[playerid][pAlcoholPerk]; PlayerInfo[playerid][pPerks][1] = PlayerInfo[playerid][pDrugPerk]; PlayerInfo[playerid][pPerks][2] = PlayerInfo[playerid][pMiserPerk] PlayerInfo[playerid][pPerks][3] = PlayerInfo[playerid][pPainPerk] PlayerInfo[playerid][pPerks][4] = PlayerInfo[playerid][pTraderPerk];
#define PlayerInfo[%0][pAlcoholPerk] PlayerInfo[%0][pPerks][0] #define PlayerInfo[%0][pAlcoholPerk] PlayerInfo[%0][pPerks][0] #define PlayerInfo[%0][pDrugPerk] PlayerInfo[%0][pPerks][1] #define PlayerInfo[%0][pMiserPerk] PlayerInfo[%0][pPerks][2] #define PlayerInfo[%0][pPainPerk] PlayerInfo[%0][pPerks][3] #define PlayerInfo[%0][pTraderPerk] PlayerInfo[%0][pPerks][4]
#define pAlcoholPerk pPerks][0 #define pDrugPerk pPerks][1 #define pMiserPerk pPerks][2 #define pPainPerk pPerks][3 #define pTraderPerk pPerks][4