Facebook
From Baby Partdridge, 6 Years ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 393
  1. COMMAND:masked(playerid, params[])
  2. {
  3.         if(!HasCrewFlag(playerid, CREW_FLAG_GM) && !HasCrewFlag(playerid, CREW_FLAG_ADMIN) && !HasCrewFlag(playerid, CREW_FLAG_ADMIN_ROOT)) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Nie posiadasz uprawnień do korzystania z tej komendy.");
  4.        
  5.         new list_players[256];
  6.  
  7.         foreach(new i: Player)
  8.         {
  9.         if(strfind(pInfo[i][player_name], "Nieznajomy", true) >= 0)
  10.                 {
  11.                         format(list_players, sizeof(list_players), "%s\n%d\t%s (%s)", list_players, i, pInfo[i][player_name], pGlobal[i][glo_name]);
  12.                 }
  13.     }
  14.         if(strlen(list_players))
  15.         {
  16.             ShowPlayerDialog(playerid, DIALOG_INFO, DIALOG_STYLE_LIST, "Wyniki wyszukiwania:", list_players, "Okej", "Zamknij");
  17.         }
  18.         else
  19.         {
  20.             SendGuiInformation(playerid, "Informacja", "Nie znaleziono żadnego zamaskowanego gracza.");
  21.         }
  22.     return 1;
  23. }
  24.  
  25. COMMAND:limits(playerid, params[])
  26. {
  27.         if(!HasCrewFlag(playerid, CREW_FLAG_GM) && !HasCrewFlag(playerid, CREW_FLAG_ADMIN_ROOT)) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Nie posiadasz uprawnień do korzystania z tej komendy.");
  28.         new list_limits[256];
  29.         format(list_limits, sizeof(list_limits), "Grupy:\t%d/%d\nBramy:\t%d/%d\nDrzwi:\t%d/%d\nStrefy:\t%d/%d\nProdukty:\t%d/%d\nItemy w grupach:\t%d/%d", Iter_Count(Groups), MAX_GROUPS, Iter_Count(Gates), MAX_GATES, Iter_Count(Doors), MAX_DOORS, Iter_Count(Areas), MAX_AREAS, Iter_Count(Products), MAX_PRODUCTS, Iter_Count(Items), MAX_ITEMS);
  30.         ShowPlayerDialog(playerid, DIALOG_INFO, DIALOG_STYLE_TABLIST, "Limity serwerowe", list_limits, "OK", "");
  31.         return 1;
  32. }
  33.  
  34. COMMAND:animsprawdz(playerid, params[])
  35. {
  36.         if(!HasCrewFlag(playerid, CREW_FLAG_GM) && !HasCrewFlag(playerid, CREW_FLAG_ADMIN_ROOT)) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Nie posiadasz uprawnień do korzystania z tej komendy.");
  37.         new lib[32], name[32], Float:delta, loop, lockx, locky, freeze, time;
  38.         if( sscanf(params, "s[32]s[32]fddddd", lib, name, delta, loop, lockx, locky, freeze, time) )
  39.         {
  40.                 SendClientMessage(playerid, COLOR_GREY, "Tip: /animsprawdz [lib/nazwa/predkosc/loop/lockx/lockyy/freeze/time] ");
  41.                 return 1;
  42.         }
  43.         else
  44.         {
  45.                 ApplyAnimation(playerid, lib, name, delta, loop, lockx, locky, freeze, time, 1);
  46.         }
  47.         return 1;
  48. }
  49.  
  50. COMMAND:aprodukt(playerid, params[])
  51. {
  52.         if( !HasCrewFlag(playerid, CREW_FLAG_ITEMS) ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Nie posiadasz uprawnień do korzystania z tej komendy.");
  53.         new sub_cmd[20], rest[64], uid, cmd_value;
  54.         if( sscanf(params, "s[32]S()[80]", sub_cmd, rest) )
  55.         {
  56.                 SendClientMessage(playerid, COLOR_GREY, "Tip: /aprodukt [reload/limit/resetlimit/extraid/value1/value2/typ/cena]");
  57.                 return 1;
  58.         }
  59.         else
  60.         {
  61.                 if( !strcmp(sub_cmd, "load") )
  62.                 {
  63.                         if(sscanf(rest, "d", uid)) return SendClientMessage(playerid, COLOR_GREY, "Tip: /aprodukt reload [UID]");
  64.                         new prod = LoadProduct(uid);
  65.                         SendClientMessage(playerid, COLOR_LIGHTER_RED, sprintf("Pomyślnie załadowano produkt %s (UID %d).", Product[prod][product_name], Product[prod][product_id]));
  66.                 }
  67.                 else if( !strcmp(sub_cmd, "reload") )
  68.                 {
  69.                         if(sscanf(rest, "d", uid)) return SendClientMessage(playerid, COLOR_GREY, "Tip: /aprodukt reload [UID]");
  70.                         new prod = ReloadProduct(uid);
  71.                         SendClientMessage(playerid, COLOR_LIGHTER_RED, sprintf("Pomyślnie przeładowano produkt %s (UID %d).", Product[prod][product_name], Product[prod][product_id]));
  72.                 }
  73.                 else if( !strcmp(sub_cmd, "limit") )
  74.                 {
  75.                         if(sscanf(rest, "dd", uid, cmd_value)) return SendClientMessage(playerid, COLOR_GREY, "Tip: /aprodukt limit [uid produktu] [limit]");
  76.                         new prodid = GetProductByUid(uid);
  77.                         if(prodid == - 1) return SendClientMessage(playerid, COLOR_GREY, "Tip: /aprodukt limit [uid produktu]");
  78.                         Product[prodid][product_limit] = cmd_value;
  79.                         mysql_query(mySQLconnection, sprintf("UPDATE ipb_products SET product_limit_count = %d WHERE product_uid = %d", cmd_value, Product[prodid][product_id]));
  80.                         SendClientMessage(playerid, COLOR_LIGHTER_RED, "Limit zamawiania został edytowany.");
  81.                 }
  82.                 else if( !strcmp(sub_cmd, "resetlimit") )
  83.                 {
  84.                         if(sscanf(rest, "d", uid)) return SendClientMessage(playerid, COLOR_GREY, "Tip: /aprodukt resetlimit [uid produktu]");
  85.                         new prodid = GetProductByUid(uid);
  86.                         if(prodid == - 1) return SendClientMessage(playerid, COLOR_GREY, "Tip: /aprodukt resetlimit [uid produktu]");
  87.                         Product[prodid][product_limit_used] = 0;
  88.                         mysql_query(mySQLconnection, sprintf("UPDATE ipb_products SET product_limit_used = 0 WHERE product_uid = %d", Product[prodid][product_id]));
  89.                         SendClientMessage(playerid, COLOR_LIGHTER_RED, "Zużycie limitu zostało zresetowane.");
  90.                 }
  91.                 else if( !strcmp(sub_cmd, "typ") )
  92.                 {
  93.                         if(sscanf(rest, "dd", uid, cmd_value)) return SendClientMessage(playerid, COLOR_GREY, "Tip: /aprodukt typ [uid produktu] [typ]");
  94.                         new prodid = GetProductByUid(uid);
  95.                         if(prodid == - 1) return SendClientMessage(playerid, COLOR_GREY, "Tip: /aprodukt typ [uid produktu]");
  96.                         Product[prodid][product_type] = cmd_value;
  97.                         mysql_query(mySQLconnection, sprintf("UPDATE ipb_products SET product_type = %d WHERE product_uid = %d", cmd_value, Product[prodid][product_id]));
  98.                         SendClientMessage(playerid, COLOR_LIGHTER_RED, "Typ produktu został edytowany.");
  99.                 }
  100.                 else if( !strcmp(sub_cmd, "value1") )
  101.                 {
  102.                         if(sscanf(rest, "dd", uid, cmd_value)) return SendClientMessage(playerid, COLOR_GREY, "Tip: /aprodukt value1 [uid produktu] [wartość]");
  103.                         new prodid = GetProductByUid(uid);
  104.                         if(prodid == - 1) return SendClientMessage(playerid, COLOR_GREY, "Tip: /aprodukt value1 [uid produktu]");
  105.                         Product[prodid][product_value1] = cmd_value;
  106.                         mysql_query(mySQLconnection, sprintf("UPDATE ipb_products SET product_value1 = %d WHERE product_uid = %d", cmd_value, Product[prodid][product_id]));
  107.                         SendClientMessage(playerid, COLOR_LIGHTER_RED, "Value1 produktu został edytowany.");
  108.                 }
  109.                 else if( !strcmp(sub_cmd, "value2") )
  110.                 {
  111.                         if(sscanf(rest, "dd", uid, cmd_value)) return SendClientMessage(playerid, COLOR_GREY, "Tip: /aprodukt value2 [uid produktu] [wartość]");
  112.                         new prodid = GetProductByUid(uid);
  113.                         if(prodid == - 1) return SendClientMessage(playerid, COLOR_GREY, "Tip: /aprodukt value2 [uid produktu]");
  114.                         Product[prodid][product_value2] = cmd_value;
  115.                         mysql_query(mySQLconnection, sprintf("UPDATE ipb_products SET product_value2 = %d WHERE product_uid = %d", cmd_value, Product[prodid][product_id]));
  116.                         SendClientMessage(playerid, COLOR_LIGHTER_RED, "Value2 produktu został edytowany.");
  117.                 }
  118.                 else if( !strcmp(sub_cmd, "cena") )
  119.                 {
  120.                         if(sscanf(rest, "dd", uid, cmd_value)) return SendClientMessage(playerid, COLOR_GREY, "Tip: /aprodukt cena [uid produktu] [cena]");
  121.                         new prodid = GetProductByUid(uid);
  122.                         if(prodid == - 1) return SendClientMessage(playerid, COLOR_GREY, "Tip: /aprodukt cena [uid produktu]");
  123.                         Product[prodid][product_price] = cmd_value;
  124.                         mysql_query(mySQLconnection, sprintf("UPDATE ipb_products SET product_price = %d WHERE product_uid = %d", cmd_value, Product[prodid][product_id]));
  125.                         SendClientMessage(playerid, COLOR_LIGHTER_RED, "Cena produktu została edytowana.");
  126.                 }
  127.                 else if( !strcmp(sub_cmd, "nazwa") )
  128.                 {
  129.                         new pname[80];
  130.                         if(sscanf(rest, "ds[80]", uid, pname)) return SendClientMessage(playerid, COLOR_GREY, "Tip: /aprodukt nazwa [uid produktu] [nazwa]");
  131.                         new prodid = GetProductByUid(uid);
  132.                         if(prodid == - 1) return SendClientMessage(playerid, COLOR_GREY, "Tip: /aprodukt nazwa [uid produktu]");
  133.                         if(strlen(pname) > 38) return SendClientMessage(playerid, COLOR_GREY, "Tip: /aprodukt nazwa [uid produktu] [nazwa]");
  134.                         sscanf(pname, "s[80]", Product[prodid][product_name]);
  135.                         mysql_real_escape_string(pname, pname, mySQLconnection, 80);
  136.                         mysql_query(mySQLconnection, sprintf("UPDATE ipb_products SET product_name = '%s' WHERE product_uid = %d", pname, Product[prodid][product_id]));
  137.                         SendClientMessage(playerid, COLOR_LIGHTER_RED, "Nazwa produktu została edytowana.");
  138.                 }
  139.                 else if( !strcmp(sub_cmd, "extraid") )
  140.                 {
  141.                         if(sscanf(rest, "dd", uid, cmd_value)) return SendClientMessage(playerid, COLOR_GREY, "Tip: /aprodukt extraid [uid produktu] [wartość]");
  142.                         new prodid = GetProductByUid(uid);
  143.                         if(prodid == - 1) return SendClientMessage(playerid, COLOR_GREY, "Tip: /aprodukt extraid [uid produktu]");
  144.                         Product[prodid][product_extra] = cmd_value;
  145.                         mysql_query(mySQLconnection, sprintf("UPDATE ipb_products SET product_extraid = %d WHERE product_uid = %d", cmd_value, Product[prodid][product_id]));
  146.                         SendClientMessage(playerid, COLOR_LIGHTER_RED, "Extraid produktu zostało edytowane.");
  147.                 }
  148.                 else if( !strcmp(sub_cmd, "usun") )
  149.                 {
  150.                         if(sscanf(rest, "d", uid)) return SendClientMessage(playerid, COLOR_GREY, "Tip: /aprodukt usun [uid produktu]");
  151.                         RemoveProduct(uid);
  152.                         SendClientMessage(playerid, COLOR_LIGHTER_RED, sprintf("Skasowano produkt o UID %d.", uid));
  153.                 }
  154.  
  155.         }
  156.         return 1;
  157. }
  158.  
  159. COMMAND:event(playerid, params[])
  160. {
  161.         if(!HasCrewFlag(playerid, CREW_FLAG_GM) && !HasCrewFlag(playerid, CREW_FLAG_ADMIN_ROOT)) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Nie posiadasz uprawnień do korzystania z tej komendy.");
  162.         new sub_cmd[32];
  163.         if( sscanf(params, "s[32]", sub_cmd) )
  164.         {
  165.                 SendClientMessage(playerid, COLOR_GREY, "Tip: /event [pozar]");
  166.                 return 1;
  167.         }
  168.         else
  169.         {
  170.                 if( !strcmp(sub_cmd, "pozar") )
  171.                 {
  172.                         if(Fire[fire_is_burning]) return SendGuiInformation(playerid, "Informacja", "Poprzedni pożar nie został jeszcze ugaszony.");
  173.                         if(!IsAnyFirefighterOnline()) return SendGuiInformation(playerid, "Informacja", "Brak strażaków na służbie.");
  174.  
  175.                         SetupFires();
  176.                         // defer spreadfire
  177.                         SendClientMessage(playerid, COLOR_GOLD, "Uruchomiłeś event pożaru, strażacy zostali powiadomieni.");
  178.                 }
  179.         }
  180.         return 1;
  181. }
  182.  
  183. COMMAND:setnick(playerid, params[])
  184. {
  185.         if(!HasCrewFlag(playerid, CREW_FLAG_GM) && !HasCrewFlag(playerid, CREW_FLAG_ADMIN_ROOT)) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Nie posiadasz uprawnień do korzystania z tej komendy.");
  186.         new id, nickname[MAX_PLAYER_NAME+1];
  187.         if( sscanf(params, "ds[25]", id, nickname) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /setnick [id gracza] [nick]");
  188.         if( !IsPlayerConnected(id) ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Gracza o podanym id nie ma na serwerze.");
  189.     if( !pInfo[id][player_logged] ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Gracz o podanym id nie jest zalogowany.");
  190.  
  191.     strcopy(pInfo[id][player_name], nickname, MAX_PLAYER_NAME+1);
  192.  
  193.         UpdatePlayerLabel(id);
  194.         return 1;
  195. }
  196.  
  197. COMMAND:setstatus(playerid, params[])
  198. {
  199.     if(!HasCrewFlag(playerid, CREW_FLAG_GM) && !HasCrewFlag(playerid, CREW_FLAG_ADMIN_ROOT)) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Nie posiadasz uprawnień do korzystania z tej komendy.");
  200.     new targetid, status[32];
  201.     if( sscanf(params, "us[32]", targetid, status) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /setstatus [id gracza/czesc nicku] [treśc statusu]");
  202.     if( !IsPlayerConnected(targetid) ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Gracza o podanym id nie ma na serwerze.");
  203.     if( !pInfo[targetid][player_logged] ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Gracz o podanym id nie jest zalogowany.");
  204.     if( strlen(status) > 32 ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /setstatus [id gracza/czesc nicku] [treśc statusu]");
  205.    
  206.         if( !strcmp(status, "0", true) )
  207.         {
  208.                 pInfo[targetid][player_extra_status] = EOS;
  209.                 SendClientMessage(playerid, COLOR_LIGHTER_RED, "Status został usunięty.");
  210.                 RemovePlayerStatus(targetid, PLAYER_STATUS_EXTRA);
  211.                 UpdatePlayerLabel(targetid);
  212.                 mysql_query(mySQLconnection, sprintf("UPDATE ipb_characters SET char_extra_status = '' WHERE char_uid = %d", pInfo[targetid][player_id]));
  213.                 return 1;
  214.         }
  215.     mysql_query(mySQLconnection, sprintf("UPDATE `ipb_characters` SET `char_extra_status` = '%s'  WHERE `char_uid` = %d", status, pInfo[targetid][player_id]));
  216.     sscanf(status, "s[32]", pInfo[targetid][player_extra_status]);
  217.    
  218.     if( playerid != targetid ) SendFormattedClientMessage(playerid, COLOR_LIGHTER_RED, "Ustawiłeś graczowi %s (UID: %d, ID: %d) specjalny status - %s.", pInfo[targetid][player_name], pInfo[targetid][player_id], targetid, status);
  219.    
  220.     AddPlayerStatus(targetid, PLAYER_STATUS_EXTRA);
  221.     UpdatePlayerLabel(targetid);
  222.     return 1;
  223. }
  224.  
  225. COMMAND:banip(playerid, params[])
  226. {
  227.         if(!HasCrewFlag(playerid, CREW_FLAG_GM) && !HasCrewFlag(playerid, CREW_FLAG_ADMIN) && !HasCrewFlag(playerid, CREW_FLAG_ADMIN_ROOT)) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Nie posiadasz uprawnień do korzystania z tej komendy.");
  228.        
  229.         new pid;
  230.         if(sscanf(params, "us[256]", pid)) return SendClientMessage(playerid, COLOR_GREY, "Tip: /banip [id gracza/czesc nicku] [powód]");
  231.         Ban(pid);
  232.  
  233.         SendClientMessage(playerid, COLOR_GOLD, sprintf("Zbanowałeś IP gracza o nicku: %s [GUID: %d]", pInfo[pid][player_name], pGlobal[pid][glo_id]));
  234.         return 1;
  235. }
  236.  
  237. COMMAND:jobrespawn(playerid, params[])
  238. {
  239.         if(!HasCrewFlag(playerid, CREW_FLAG_GM) && !HasCrewFlag(playerid, CREW_FLAG_ADMIN) && !HasCrewFlag(playerid, CREW_FLAG_ADMIN_ROOT)) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Nie posiadasz uprawnień do korzystania z tej komendy.");
  240.         new count;
  241.         foreach(new vid : Vehicles)
  242.         {
  243.                 if( Vehicle[vid][vehicle_owner_type] == VEHICLE_OWNER_TYPE_JOB )
  244.                 {
  245.                         if( Vehicle[vid][vehicle_occupants] > 0 ) continue;
  246.                        
  247.                         SetVehiclePos(vid, Vehicle[vid][vehicle_park][0], Vehicle[vid][vehicle_park][1], Vehicle[vid][vehicle_park][2]-0.3);
  248.                         SetVehicleZAngle(vid, Vehicle[vid][vehicle_park][3]);
  249.                         SetVehicleVirtualWorld(vid, Vehicle[vid][vehicle_park_world]);
  250.                         LinkVehicleToInterior(vid, Vehicle[vid][vehicle_park_interior]);
  251.                         SetVehicleHealth(vid, 1000);
  252.                         Vehicle[vid][vehicle_destroyed] = false;
  253.                         Vehicle[vid][vehicle_damage][0] = 0;
  254.                         Vehicle[vid][vehicle_damage][1] = 0;
  255.                         Vehicle[vid][vehicle_damage][2] = 0;
  256.                         Vehicle[vid][vehicle_damage][3] = 0;
  257.                         Vehicle[vid][vehicle_fuel_current] = 50;
  258.                        
  259.                         UpdateVehicleDamageStatus(vid, Vehicle[vid][vehicle_damage][0], Vehicle[vid][vehicle_damage][1], Vehicle[vid][vehicle_damage][2], Vehicle[vid][vehicle_damage][3]);
  260.                         mysql_query(mySQLconnection, sprintf("UPDATE `ipb_vehicles` SET `vehicle_health` = 1000 WHERE `vehicle_uid` = %d", Vehicle[vid][vehicle_uid]));
  261.                
  262.                         Vehicle[vid][vehicle_locked] = true;
  263.                         count++;
  264.                 }
  265.         }
  266.        
  267.         SendGuiInformation(playerid, ""guiopis"Powiadomienie", sprintf("Zrespawnowano %d pojazdów z prac dorywczych.", count));
  268.         return 1;
  269. }
  270.  
  271. COMMAND:agmx(playerid, params[])
  272. {
  273.         if(!HasCrewFlag(playerid, CREW_FLAG_ADMIN_ROOT)) return 1;
  274.  
  275.         SendClientMessageToAll(COLOR_LIGHTER_RED, "{7d0000}Administrator wymusił restart serwera. Odbędzie się on za 10 sekund. Prosimy o pozostanie w grze.");
  276.                
  277.         foreach(new playeri: Player)
  278.         {
  279.                 SavePlayer(playeri);
  280.         }
  281.  
  282.         defer RestartServer[10000]();
  283.         return 1;
  284. }
  285.  
  286. COMMAND:apoint(playerid, params[])
  287. {
  288.         if(!HasCrewFlag(playerid, CREW_FLAG_GM) && !HasCrewFlag(playerid, CREW_FLAG_ADMIN) && !HasCrewFlag(playerid, CREW_FLAG_ADMIN_ROOT)) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Nie posiadasz uprawnień do korzystania z tej komendy.");
  289.         new seta[256], sets[256],
  290.                 Float:pX, Float:pY, Float:pZ;
  291.         if(sscanf(params, "s[80]S()[80]", sets, seta)) return SendClientMessage(playerid, COLOR_GREY, "Tip: /apoint [save, tp]]");
  292.         if(!strcmp(sets, "save", true))
  293.         {
  294.                 GetPlayerPos(playerid, pX, pY, pZ);
  295.             SetPVarFloat(playerid,"al_posx", pX);
  296.             SetPVarFloat(playerid,"al_posy", pY);
  297.             SetPVarFloat(playerid,"al_posz", pZ);
  298.             if(GetPVarInt(playerid, "al_pos") == 1)
  299.                 {
  300.                         SendClientMessage(playerid, COLOR_GOLD, sprintf("Nowa pozycja zapisana. [%f|%f|%f]", pX, pY, pZ));
  301.                 } else {
  302.                         SendClientMessage(playerid, COLOR_GOLD, sprintf("Pozycja zapisana. [%f:%f:%f]", pX, pY, pZ));
  303.                 }
  304.                 SetPVarInt(playerid, "al_pos", 1);
  305.         }
  306.         if(!strcmp(sets, "tp", true))
  307.         {
  308.                 if(GetPVarInt(playerid, "al_pos") == 0)
  309.                 {
  310.                         SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Nie zapisałeś jeszcze żadnej pozycji.");
  311.                 } else {
  312.                         if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  313.                         {
  314.                                 SetVehiclePos(GetPlayerVehicleID(playerid), GetPVarFloat(playerid, "al_posx"), GetPVarFloat(playerid, "al_posy"), GetPVarFloat(playerid, "al_posz"));
  315.                         } else {
  316.                                 RP_PLUS_SetPlayerPos(playerid, GetPVarFloat(playerid, "al_posx"), GetPVarFloat(playerid, "al_posy"), GetPVarFloat(playerid, "al_posz"));
  317.                         }
  318.                         SendClientMessage(playerid, COLOR_GOLD, "Teleportowałeś się do ostatnio zapisanej pozycji.");
  319.                 }
  320.         }
  321.         return 1;
  322. }
  323.  
  324. COMMAND:ado(playerid, params[])
  325. {
  326.         if(!HasCrewFlag(playerid, CREW_FLAG_GM) && !HasCrewFlag(playerid, CREW_FLAG_ADMIN_ROOT) ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Nie posiadasz uprawnień do korzystania z tej komendy.");
  327.         new text[128], str[128];
  328.         if(sscanf(params, "s[128]", text)) return SendClientMessage(playerid, COLOR_GREY, "Tip: /ado [tekst]");
  329.         format(str, sizeof(str), "** %s **", text);
  330.         SendClientMessageToAll(0x9B91ECFF, str);
  331.         return 1;
  332. }
  333.  
  334. COMMAND:astats(playerid, params[])
  335. {
  336.         new giveplayer_id;
  337.         if(HasCrewFlag(playerid, CREW_FLAG_ADMIN_ROOT) || HasCrewFlag(playerid, CREW_FLAG_ADMIN) || HasCrewFlag(playerid, CREW_FLAG_GM))
  338.         {
  339.                 if(sscanf(params, "u", giveplayer_id))
  340.                 {
  341.                         SendClientMessage(playerid, COLOR_GREY, "Tip: /astats [id gracza/czesc nicku]");
  342.                         return 1;
  343.                 }
  344.  
  345.                 if(giveplayer_id == INVALID_PLAYER_ID)
  346.                 {
  347.                         SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Niepoprawne ID gracza.");
  348.                         return 1;
  349.                 }
  350.  
  351.                 if(!IsPlayerConnected(giveplayer_id))
  352.                 {
  353.                         SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Nie ma gracza o takim ID.");
  354.                         return 1;
  355.                 }
  356.                 ShowPlayerStats(playerid, giveplayer_id);
  357.                 return 1;
  358.         }
  359.         return 1;
  360. }
  361.  
  362. COMMAND:spec(playerid, params[])
  363. {
  364.         return cmd_rc(playerid, params);
  365. }
  366.  
  367. COMMAND:rc(playerid, params[])
  368. {
  369.     if(!HasCrewFlag(playerid, CREW_FLAG_GM) && !HasCrewFlag(playerid, CREW_FLAG_ADMIN) && !HasCrewFlag(playerid, CREW_FLAG_ADMIN_ROOT)) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Nie posiadasz uprawnień do korzystania z tej komendy.");
  370.     new id;
  371.  
  372.     if(!sscanf(params, "d", id))
  373.     {
  374.         if( !IsPlayerConnected(id) )
  375.         {
  376.                 SendClientMessage(playerid, COLOR_GREY, "Niepoprawne ID gracza.");
  377.                 return 1;
  378.         }
  379.  
  380.         if( pInfo[id][player_spec] != INVALID_PLAYER_ID )
  381.         {
  382.                 SendClientMessage(playerid, COLOR_GREY, "Ten gracz już kogoś obserwuje, przechodze do kolejnego ID.");
  383.                 return cmd_spec(playerid, sprintf("%d", Iter_Next(Player, id)));
  384.         }
  385.  
  386.             SetPlayerInterior(playerid, GetPlayerInterior(id));
  387.             SetPlayerVirtualWorld(playerid, GetPlayerVirtualWorld(id));
  388.  
  389.             new string[340];
  390.  
  391.             format(string, sizeof(string), "~n~~w~Global: %s            Zdrowie: ~p~%0.1f               ~w~Portfel: ~g~%d               ~w~Godziny: ~y~%d               Armour: ~w~%0.1f~n~~n~~n~~n~~w~Uzywaj klawisza ~r~LALT lub ~r~SPACJA ~w~aby przeskakiwac miedzy graczami.~n~~r~LSHIFT ~w~odswieza specowanie danego gracza.", pGlobal[id][glo_name],pInfo[id][player_health], GetPlayerMoney(id), pInfo[id][player_hours], pInfo[id][player_armour]);
  392.                
  393.             TextDrawSetString(DashBoardPane2[playerid], string);
  394.                 TextDrawShowForPlayer(playerid, DashBoardPane2[playerid]);
  395.  
  396.             if(IsPlayerInAnyVehicle(id))
  397.             {
  398.             TogglePlayerSpectating(playerid, 1);
  399.             PlayerSpectateVehicle(playerid, GetPlayerVehicleID(id));
  400.             }
  401.             else
  402.             {
  403.             TogglePlayerSpectating(playerid, 1);
  404.             PlayerSpectatePlayer(playerid, id);
  405.             }
  406.  
  407.             pInfo[playerid][player_spec] = id;
  408.             pInfo[playerid][player_quit_vw] = GetPlayerVirtualWorld(playerid);
  409.         }
  410.         else
  411.         {
  412.                 if(pInfo[playerid][player_spec] != INVALID_PLAYER_ID)
  413.             {
  414.             TogglePlayerSpectating(playerid, 0);
  415.  
  416.                         TextDrawHideForPlayer(playerid, DashBoardPane2[playerid]);
  417.  
  418.             SetPlayerSkin(playerid, pInfo[playerid][player_skin]);
  419.             SetPlayerVirtualWorld(playerid, pInfo[playerid][player_quit_vw]);
  420.             pInfo[playerid][player_spec] = INVALID_PLAYER_ID;
  421.             }
  422.             else
  423.             {
  424.                 SendClientMessage(playerid, COLOR_GREY, "Tip: /rc [id gracza]");
  425.             }
  426.         }
  427.     return 1;
  428. }
  429.  
  430. COMMAND:apos(playerid, params[])
  431. {
  432.         if( !HasCrewFlag(playerid, CREW_FLAG_GM) && !HasCrewFlag(playerid, CREW_FLAG_ADMIN) && !HasCrewFlag(playerid, CREW_FLAG_ADMIN_ROOT) ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Nie posiadasz uprawnień do korzystania z tej komendy.");
  433.         new Float:x, Float:y, Float:z;
  434.     if(sscanf(params, "fff", x,y,z))
  435.         return SendClientMessage(playerid, COLOR_GREY, "Tip: /apos [x, y, z]");
  436.    
  437.     RP_PLUS_SetPlayerPos(playerid, x, y, z);
  438.         return 1;
  439. }
  440.  
  441. COMMAND:freeze(playerid, params[])
  442. {
  443.         if( !HasCrewFlag(playerid, CREW_FLAG_GM) && !HasCrewFlag(playerid, CREW_FLAG_ADMIN) && !HasCrewFlag(playerid, CREW_FLAG_ADMIN_ROOT) ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Nie posiadasz uprawnień do korzystania z tej komendy.");
  444.         new id;
  445.     if(sscanf(params, "u", id))
  446.         return SendClientMessage(playerid, COLOR_GREY, "Tip: /freeze [id]");
  447.    
  448.     if( !IsPlayerConnected(id) ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Gracza o podanym id nie ma na serwerze.");
  449.  
  450.     if(pInfo[id][player_freezed]==false)
  451.     {
  452.             TogglePlayerControllable(id, false);    
  453.                 pInfo[id][player_freezed]=true;
  454.         }
  455.         else
  456.         {
  457.             TogglePlayerControllable(id, true);    
  458.                 pInfo[id][player_freezed]=false;
  459.         }
  460.         return 1;
  461. }
  462.  
  463. COMMAND:sethours(playerid, params[])
  464. {
  465.         if( !HasCrewFlag(playerid, CREW_FLAG_ADMIN_ROOT) && !HasCrewFlag(playerid, CREW_FLAG_GM) ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Nie posiadasz uprawnień do korzystania z tej komendy.");
  466.         new targetid, hrs;
  467.         if( sscanf(params, "ud", targetid, hrs) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /sethours [id gracza/czesc nicku] [ilość godzin]");
  468.         if( !IsPlayerConnected(targetid) ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Gracza o podanym id nie ma na serwerze.");
  469.         if( !pInfo[targetid][player_logged] ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Gracz o podanym id nie jest zalogowany.");
  470.         if( hrs < 0 ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /sethours [id gracza/czesc nicku] [ilość godzin]");
  471.        
  472.         mysql_query(mySQLconnection, sprintf("UPDATE `ipb_characters` SET `char_hours` = %d  WHERE `char_uid` = %d", hrs, pInfo[targetid][player_id]));
  473.         pInfo[targetid][player_hours]=hrs;
  474.        
  475.         if( playerid != targetid ) SendFormattedClientMessage(playerid, COLOR_LIGHTER_RED, "Ustawiłeś graczowi %s (UID: %d, ID: %d) %d godzin.", pInfo[targetid][player_name], pInfo[targetid][player_id], targetid, hrs);
  476.        
  477.         return 1;
  478. }
  479.  
  480. COMMAND:slap(playerid, params[])
  481. {
  482.         if( !HasCrewFlag(playerid, CREW_FLAG_GM) && !HasCrewFlag(playerid, CREW_FLAG_ADMIN) && !HasCrewFlag(playerid, CREW_FLAG_ADMIN_ROOT) ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Nie posiadasz uprawnień do korzystania z tej komendy.");
  483.         new id, Float: PPos[3];
  484.     if(sscanf(params, "u", id))
  485.         return SendClientMessage(playerid, COLOR_GREY, "Tip: /slap [id gracza/czesc nicku]");
  486.    
  487.     if( !IsPlayerConnected(id) ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Gracza o podanym id nie ma na serwerze.");
  488.     GetPlayerPos(id, PPos[0], PPos[1], PPos[2]);
  489.     RP_PLUS_SetPlayerPos(id, PPos[0], PPos[1], PPos[2]+4);
  490.    
  491.         SendFormattedClientMessage(playerid, COLOR_GOLD, "Slapnąłeś %s (ID: %d, UID: %d).", pInfo[id][player_name], id, pInfo[id][player_id]);
  492.         return 1;
  493. }
  494.  
  495. COMMAND:givecash(playerid, params[])
  496. {
  497.         if( pGlobal[playerid][glo_id] != 100 && pGlobal[playerid][glo_id] != 3306  ) return SendGuiInformation(playerid, "Informacja", "Brak dostępu.");
  498.        
  499.         new targetid, skin;
  500.         if( sscanf(params, "ud", targetid, skin) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /givecash [id gracza/czesc nicku] [ilość]");
  501.         if( !IsPlayerConnected(targetid) ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Gracza o podanym id nie ma na serwerze.");
  502.         if( !pInfo[targetid][player_logged] ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Gracz o podanym id nie jest zalogowany.");
  503.        
  504.         GivePlayerMoney(targetid, skin);
  505.         SendFormattedClientMessage(playerid, COLOR_GOLD, "Dodałeś graczowi %s (UID: %d, ID: %d) forse: %d.", pInfo[targetid][player_name], pInfo[targetid][player_id], targetid, skin);
  506.        
  507.         return 1;
  508. }
  509.  
  510. COMMAND:ban(playerid, params[])
  511. {
  512.         if( !HasCrewFlag(playerid, CREW_FLAG_GM) && !HasCrewFlag(playerid, CREW_FLAG_ADMIN) && !HasCrewFlag(playerid, CREW_FLAG_ADMIN_ROOT) ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Nie posiadasz uprawnień do korzystania z tej komendy.");
  513.         new playa,text[128];
  514.         if(sscanf(params, "us[128]", playa, text)) return SendClientMessage(playerid, COLOR_GREY, "Tip: /ban [id/czesc nicku] [powód]");
  515.         if(!IsPlayerConnected(playa)||playa==playerid) return SendClientMessage(playerid, COLOR_GREY, "Tip: Niepoprawne ID gracza.");
  516.         if(strlen(text)<1 || strlen(text)>47) return SendClientMessage(playerid, COLOR_GREY, "Tip: Zbyt dlugi powód kary, max 47 znaków.");
  517.  
  518.         EscapePL(text);
  519.        
  520.         BanAc(playa, playerid, text);
  521.         Kick(playa);
  522.         return 1;
  523. }
  524.  
  525. COMMAND:block(playerid, params[])
  526. {
  527.         if( !HasCrewFlag(playerid, CREW_FLAG_GM) && !HasCrewFlag(playerid, CREW_FLAG_ADMIN) && !HasCrewFlag(playerid, CREW_FLAG_ADMIN_ROOT) ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Nie posiadasz uprawnień do korzystania z tej komendy.");
  528.         new sub_cmd[20], rest[64], playa, text[128], time;
  529.         if( sscanf(params, "s[32]S()[80]", sub_cmd, rest) )
  530.         {
  531.                 SendClientMessage(playerid, COLOR_GREY, "Tip: /block [char/run/dmg/veh/ooc]");
  532.                 return 1;
  533.         }
  534.         else
  535.         {
  536.                 if( !strcmp(sub_cmd, "char") )
  537.                 {
  538.                         if(sscanf(rest, "us[128]", playa, text)) return SendClientMessage(playerid, COLOR_GREY, "Tip: /block char [id gracza/czesc nicku] [powód]");
  539.                         if(!IsPlayerConnected(playa)||playa==playerid) return SendClientMessage(playerid, COLOR_GREY, "Tip: Niepoprawne ID gracza.");
  540.                         if(strlen(text)<1||strlen(text)>47) return SendClientMessage(playerid, COLOR_GREY, "Tip: Niepoprawny powód kary - min 1, max 47 znaków.");
  541.  
  542.                         Block(playa, playerid, text);
  543.                 }
  544.                 else if( !strcmp(sub_cmd, "ooc") )
  545.                 {
  546.                         if(sscanf(rest, "uds[128]", playa, time, text)) return SendClientMessage(playerid, COLOR_GREY, "Tip: /block ooc [id gracza/czesc nicku] [ilość dni] [powód]");
  547.                         if(!IsPlayerConnected(playa)||playa==playerid) return SendClientMessage(playerid, COLOR_GREY, "Tip: Niepoprawne ID gracza.");
  548.                         if(strlen(text)<1||strlen(text)>47) return SendClientMessage(playerid, COLOR_GREY, "Tip: Niepoprawny powód kary - min 1, max 47 znaków.");
  549.  
  550.                         BlockOoc(playa, playerid, time, text);
  551.                 }
  552.                 else if( !strcmp(sub_cmd, "run") )
  553.                 {
  554.                         if(sscanf(rest, "uds[128]", playa, time, text)) return SendClientMessage(playerid, COLOR_GREY, "Tip: /block run [id gracza/czesc nicku] [ilość dni] [powód]");
  555.                         if(!IsPlayerConnected(playa)||playa==playerid) return SendClientMessage(playerid, COLOR_GREY, "Tip: Niepoprawne ID gracza.");
  556.                         if(strlen(text)<1||strlen(text)>47) return SendClientMessage(playerid, COLOR_GREY, "Tip: Niepoprawny powód kary - min 1, max 47 znaków.");
  557.  
  558.                         BlockRun(playa, playerid, time, text);
  559.                 }
  560.                 else if( !strcmp(sub_cmd, "dmg") )
  561.                 {
  562.                         if(sscanf(rest, "uds[128]", playa, time, text)) return SendClientMessage(playerid, COLOR_GREY, "Tip: /block dmg [id gracza/czesc nicku] [ilość dni] [powód]");
  563.                         if(!IsPlayerConnected(playa)||playa==playerid) return SendClientMessage(playerid, COLOR_GREY, "Tip: Niepoprawne ID gracza.");
  564.                         if(strlen(text)<1||strlen(text)>47) return SendClientMessage(playerid, COLOR_GREY, "Tip: Niepoprawny powód kary - min 1, max 47 znaków.");
  565.  
  566.                         BlockDmg(playa, playerid, time, text);
  567.                 }
  568.                 else if( !strcmp(sub_cmd, "veh") )
  569.                 {
  570.                         if(sscanf(rest, "uds[128]", playa, time, text)) return SendClientMessage(playerid, COLOR_GREY, "Tip: /block veh [id gracza/czesc nicku] [ilość dni] [powód]");
  571.                         if(!IsPlayerConnected(playa)||playa==playerid) return SendClientMessage(playerid, COLOR_GREY, "Tip: Niepoprawne ID gracza.");
  572.                         if(strlen(text)<1||strlen(text)>47) return SendClientMessage(playerid, COLOR_GREY, "Tip: Niepoprawny powód kary - min 1, max 47 znaków.");
  573.  
  574.                         BlockVeh(playa, playerid, time, text);
  575.                 }
  576.         }
  577.         return 1;
  578. }
  579.  
  580. COMMAND:fck(playerid, params[])
  581. {
  582.         if( !HasCrewFlag(playerid, CREW_FLAG_GM) && !HasCrewFlag(playerid, CREW_FLAG_ADMIN_ROOT) ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Nie posiadasz uprawnień do korzystania z tej komendy.");
  583.         new playa, text[128];
  584.        
  585.         if(sscanf(params, "us[128]", playa, text)) return SendClientMessage(playerid, COLOR_GREY, "Tip: /fck [id gracza/część nicku] [powód]");
  586.         if(!IsPlayerConnected(playa)||playa==playerid) return SendClientMessage(playerid, COLOR_GREY, "Tip: Niepoprawne ID gracza.");
  587.         if(strlen(text)<1||strlen(text)>47) return SendClientMessage(playerid, COLOR_GREY, "Tip: Niepoprawny powód kary - min 1, max 47 znaków.");
  588.  
  589.         CharacterKill(playa, playerid, text);
  590.  
  591.         return 1;
  592. }
  593.  
  594. COMMAND:aj(playerid, params[])
  595. {
  596.         if( !HasCrewFlag(playerid, CREW_FLAG_GM) && !HasCrewFlag(playerid, CREW_FLAG_ADMIN) && !HasCrewFlag(playerid, CREW_FLAG_ADMIN_ROOT) ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Nie posiadasz uprawnień do korzystania z tej komendy.");
  597.         new playa,text[128],time;
  598.         if(sscanf(params, "uds[128]", playa, time, text)) return SendClientMessage(playerid, COLOR_GREY, "Tip: /aj [id gracza/czesc nicku] [czas] [powód]");
  599.         if(!IsPlayerConnected(playa)||playa==playerid) return SendClientMessage(playerid, COLOR_GREY, "Tip: Niepoprawne ID gracza.");
  600.         if(strlen(text)<1||strlen(text)>47) return SendClientMessage(playerid, COLOR_GREY, "Tip: Niepoprawny powód kary - min 1, max 47 znaków.");
  601.         if(time>1000) return SendClientMessage(playerid, COLOR_GREY, "Tip: Maksymalny czas AJ to 1000 minut.");
  602.  
  603.         AdminJail(playa, playerid, text, time);
  604.         return 1;
  605. }
  606.  
  607. COMMAND:kick(playerid, params[])
  608. {
  609.         if( !HasCrewFlag(playerid, CREW_FLAG_GM) && !HasCrewFlag(playerid, CREW_FLAG_ADMIN) && !HasCrewFlag(playerid, CREW_FLAG_ADMIN_ROOT) ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Nie posiadasz uprawnień do korzystania z tej komendy.");
  610.         new playa,text[128];
  611.         if(sscanf(params, "us[128]", playa, text)) return SendClientMessage(playerid, COLOR_GREY, "Tip: /kick [id gracza/czesc nicku] [powód]");
  612.         if(!IsPlayerConnected(playa)||playa==playerid) return SendClientMessage(playerid, COLOR_GREY, "Tip: Niepoprawne ID gracza.");
  613.         if(strlen(text)<1||strlen(text)>47) return SendClientMessage(playerid, COLOR_GREY, "Tip: Niepoprawny powód kary - min 1, max 47 znaków.");
  614.  
  615.         KickAc(playa, playerid, text);
  616.         return 1;
  617. }
  618.  
  619. COMMAND:warn(playerid, params[])
  620. {
  621.         if( !HasCrewFlag(playerid, CREW_FLAG_GM) && !HasCrewFlag(playerid, CREW_FLAG_ADMIN) && !HasCrewFlag(playerid, CREW_FLAG_ADMIN_ROOT) ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Nie posiadasz uprawnień do korzystania z tej komendy.");
  622.         new playa,text[256];
  623.         if(sscanf(params, "us[128]", playa, text)) return SendClientMessage(playerid, COLOR_GREY, "Tip: /warn [id gracza/czesc nicku] [powód]");
  624.         if(strlen(text)<1||strlen(text)>47) return SendClientMessage(playerid, COLOR_GREY, "Tip: Niepoprawny powód kary - min 1, max 47 znaków.");
  625.  
  626.         Warn(playa, playerid, text);
  627.         return 1;
  628. }
  629.  
  630. COMMAND:gs(playerid, params[])
  631. {
  632.         if( !HasCrewFlag(playerid, CREW_FLAG_GM) && !HasCrewFlag(playerid, CREW_FLAG_ADMIN_ROOT) ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Nie posiadasz uprawnień do korzystania z tej komendy.");
  633.         new playa,text[256], score;
  634.         if(sscanf(params, "uds[128]", playa, score, text)) return SendClientMessage(playerid, COLOR_GREY, "Tip: /gs [id gracza/czesc nicku] [ilość] [powód]");
  635.         if(strlen(text)<1||strlen(text)>47) return SendClientMessage(playerid, COLOR_GREY, "Tip: Niepoprawny powód kary - min 1, max 47 znaków.");
  636.  
  637.         Score(playa, playerid, score, text);
  638.         return 1;
  639. }
  640.  
  641. COMMAND:ab(playerid, params[])
  642. {
  643.         return cmd_abus(playerid, params);
  644. }
  645.  
  646. COMMAND:abus(playerid, params[])
  647. {
  648.         if( !HasCrewFlag(playerid, CREW_FLAG_EDITOR) ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Nie posiadasz uprawnień do korzystania z tej komendy.");
  649.  
  650.         new type[32], varchar[32], string[128];
  651.         if(sscanf(params, "s[32]S()[32]", type, varchar))
  652.         {
  653.                 SendClientMessage(playerid, COLOR_GREY, "Tip: /abus [stworz], [nazwa], [pozycja], [usun]");
  654.             return 1;
  655.         }
  656.         if(!strcmp(type, "stworz", true))
  657.         {
  658.                 new busstop_name[32];
  659.                 if(sscanf(varchar, "s[32]", busstop_name))
  660.                 {
  661.                     SendClientMessage(playerid, COLOR_GREY, "Tip: /abus stworz [nazwa przystanku]");
  662.                     return 1;
  663.                 }
  664.                 new Float:PosX, Float:PosY, Float:PosZ;
  665.                 GetPlayerPos(playerid, PosX, PosY, PosZ);
  666.                
  667.                 new busstop_id = CreateBusStop(busstop_name, PosX, PosY, PosZ + 0.25);
  668.                
  669.                 format(string, sizeof(string), "Stworzono nowy przystanek.\nNazwa: %s (SampID: %d, UID: %d).", busstop_name, busstop_id, BusStopData[busstop_id][bUID]);
  670.                 ShowPlayerDialog(playerid, DIALOG_INFO, DIALOG_STYLE_MSGBOX, "Informacja", string, "Okej", "");
  671.                 return 1;
  672.         }
  673.         if(!strcmp(type, "nazwa", true))
  674.         {
  675.             new busstop_id, busstop_name[32];
  676.             if(sscanf(varchar, "ds[32]", busstop_id, busstop_name))
  677.             {
  678.                 SendClientMessage(playerid, COLOR_GREY, "Tip: /abus nazwa [ID przystanku] [nowa nazwa]");
  679.                 return 1;
  680.             }
  681.             if(!BusStopData[busstop_id][bUID])
  682.             {
  683.                 SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Wprowadzono nieprawidlowe ID przystanku.");
  684.                 return 1;
  685.             }
  686.                 strmid(BusStopData[busstop_id][bName], busstop_name, 0, strlen(busstop_name), 32);
  687.  
  688.                 SaveBusStop(busstop_id);
  689.  
  690.                 format(string, sizeof(string), "Przystanek %d:\n%s.", busstop_id, busstop_name);
  691.                 UpdateDynamic3DTextLabelText(Text3D:BusStopData[busstop_id][bNameTag], LABEL_DESCRIPTION, string);
  692.  
  693.                 format(string, sizeof(string), "Nazwa przystanku (SampID: %d, UID: %d) została zmieniona.\nNowa nazwa przystanku: %s.", busstop_id, BusStopData[busstop_id][bUID], busstop_name);
  694.                 ShowPlayerDialog(playerid, DIALOG_INFO, DIALOG_STYLE_MSGBOX, "Informacja", string, "Okej", "");
  695.             return 1;
  696.         }
  697.         if(!strcmp(type, "pozycja", true))
  698.         {
  699.             new busstop_id;
  700.             if(sscanf(varchar, "d", busstop_id))
  701.             {
  702.                 SendClientMessage(playerid, COLOR_GREY, "Tip: /abus pozycja [ID przystanku]");
  703.                 return 1;
  704.             }
  705.             if(!BusStopData[busstop_id][bUID])
  706.             {
  707.                 SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Wprowadzono nieprawidlowe ID przystanku.");
  708.                 return 1;
  709.             }
  710.                 new Float:PosX, Float:PosY, Float:PosZ;
  711.                 GetPlayerPos(playerid, PosX, PosY, PosZ);
  712.                
  713.                 BusStopData[busstop_id][bPosX] = PosX;
  714.                 BusStopData[busstop_id][bPosY] = PosY;
  715.                 BusStopData[busstop_id][bPosZ] = PosZ + 0.25;
  716.                
  717.                 SaveBusStop(busstop_id);
  718.                
  719.                 Delete3DTextLabel(Text3D:BusStopData[busstop_id][bNameTag]);
  720.                 BusStopData[busstop_id][bNameTag] = Create3DTextLabel(string, LABEL_DESCRIPTION, BusStopData[busstop_id][bPosX], BusStopData[busstop_id][bPosY], BusStopData[busstop_id][bPosZ], 15.0, 0, 1);
  721.  
  722.                 format(string, sizeof(string), "Pozycja przystanku (SampID: %d, UID: %d) została zmieniona.", busstop_id, BusStopData[busstop_id][bUID]);
  723.                 ShowPlayerDialog(playerid, DIALOG_INFO, DIALOG_STYLE_MSGBOX, "Informacja", string, "Okej", "");
  724.                 return 1;
  725.         }
  726.         if(!strcmp(type, "usun", true))
  727.         {
  728.             new busstop_id;
  729.             if(sscanf(varchar, "d", busstop_id))
  730.             {
  731.                 SendClientMessage(playerid, COLOR_GREY, "Tip: /abus usun [ID przystanku]");
  732.                 return 1;
  733.             }
  734.             if(!BusStopData[busstop_id][bUID])
  735.             {
  736.                 SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Wprowadzono nieprawidlowe ID przystanku.");
  737.                 return 1;
  738.             }
  739.         format(string, sizeof(string), "Przystanek (SampID: %d, UID: %d) zostal usuniety.", busstop_id, BusStopData[busstop_id][bUID]);
  740.  
  741.             DeleteBusStop(busstop_id);
  742.  
  743.             ShowPlayerDialog(playerid, DIALOG_INFO, DIALOG_STYLE_MSGBOX, "Informacja", string, "Okej", "");
  744.             return 1;
  745.         }
  746.         return 1;
  747. }
  748.  
  749. COMMAND:pflags(playerid, params[])
  750. {
  751.         if( !HasCrewFlag(playerid, CREW_FLAG_GM) && !HasCrewFlag(playerid, CREW_FLAG_ADMIN_ROOT) ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Nie posiadasz uprawnień do korzystania z tej komendy.");
  752.        
  753.         new targetid;
  754.         if( sscanf(params, "u", targetid) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /pflags [id gracza/czesc nicku]");
  755.        
  756.         if( !IsPlayerConnected(targetid) || !pInfo[targetid][player_logged] ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Gracza o podanym id nie ma na serwerze.");
  757.        
  758.         DynamicGui_Init(playerid);
  759.         DynamicGui_SetDialogValue(playerid, targetid);
  760.         new str[256];
  761.        
  762.         format(str, sizeof(str), "%s%s01\tBMX\n", str, ((PlayerHasFlag(targetid, PLAYER_FLAG_BMX)) ? (HEX_COLOR_LIGHTER_GREEN) : (HEX_COLOR_LIGHTER_RED)));
  763.         DynamicGui_AddRow(playerid, PLAYER_FLAG_BMX);
  764.        
  765.         format(str, sizeof(str), "%s%s02\tZamawianie\n", str, ((PlayerHasFlag(targetid, PLAYER_FLAG_ORDER)) ? (HEX_COLOR_LIGHTER_GREEN) : (HEX_COLOR_LIGHTER_RED)));
  766.         DynamicGui_AddRow(playerid, PLAYER_FLAG_ORDER);
  767.  
  768.         format(str, sizeof(str), "%s%s03\tUpr burmistrza\n", str, ((PlayerHasFlag(targetid, PLAYER_FLAG_PRESIDENT)) ? (HEX_COLOR_LIGHTER_GREEN) : (HEX_COLOR_LIGHTER_RED)));
  769.         DynamicGui_AddRow(playerid, PLAYER_FLAG_PRESIDENT);
  770.        
  771.         ShowPlayerDialog(playerid, DIALOG_GIVE_FLAG, DIALOG_STYLE_LIST, sprintf("Flagi postaci %s [Global: %d, UID: %d, ID: %d]", pInfo[targetid][player_name], gInfo[targetid][global_id], pInfo[targetid][player_id], targetid), str, "Wybierz", "Zamknij");
  772.         return 1;
  773. }
  774.  
  775. COMMAND:aflags(playerid, params[])
  776. {
  777.         if( !HasCrewFlag(playerid, CREW_FLAG_ADMIN_ROOT) ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Nie posiadasz uprawnień do korzystania z tej komendy.");
  778.        
  779.         new targetid;
  780.         if( sscanf(params, "u", targetid) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /aflags [id gracza/czesc nicku]");
  781.        
  782.         if( !IsPlayerConnected(targetid) || !pInfo[targetid][player_logged] ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Gracza o podanym id nie ma na serwerze.");
  783.        
  784.         DynamicGui_Init(playerid);
  785.         DynamicGui_SetDialogValue(playerid, targetid);
  786.         new str[500];
  787.        
  788.         format(str, sizeof(str), "%s%s01\tCM\n", str, ((HasCrewFlag(targetid, CREW_FLAG_GM)) ? (HEX_COLOR_LIGHTER_GREEN) : (HEX_COLOR_LIGHTER_GREEN)));
  789.         DynamicGui_AddRow(playerid, CREW_FLAG_GM);
  790.        
  791.         format(str, sizeof(str), "%s%s02\tGM\n", str, ((HasCrewFlag(targetid, CREW_FLAG_ADMIN)) ? (HEX_COLOR_LIGHTER_GREEN) : (HEX_COLOR_LIGHTER_GREEN)));
  792.         DynamicGui_AddRow(playerid, CREW_FLAG_ADMIN);
  793.        
  794.         format(str, sizeof(str), "%s%s03\tADMIN\n", str, ((HasCrewFlag(targetid, CREW_FLAG_ADMIN_ROOT)) ? (HEX_COLOR_LIGHTER_RED) : (HEX_COLOR_WHITE)));
  795.         DynamicGui_AddRow(playerid, CREW_FLAG_ADMIN_ROOT);
  796.        
  797.         format(str, sizeof(str), "%s%s04\tZarzadzanie drzwiami\n", str, ((HasCrewFlag(targetid, CREW_FLAG_DOORS)) ? (HEX_COLOR_LIGHTER_RED) : (HEX_COLOR_WHITE)));
  798.         DynamicGui_AddRow(playerid, CREW_FLAG_DOORS);
  799.        
  800.         format(str, sizeof(str), "%s%s05\tZarzadzanie pojazdami\n", str, ((HasCrewFlag(targetid, CREW_FLAG_VEHICLES)) ? (HEX_COLOR_LIGHTER_RED) : (HEX_COLOR_WHITE)));
  801.         DynamicGui_AddRow(playerid, CREW_FLAG_VEHICLES);
  802.        
  803.         format(str, sizeof(str), "%s%s06\tZarzadzanie grupami\n", str, ((HasCrewFlag(targetid, CREW_FLAG_GROUPS)) ? (HEX_COLOR_LIGHTER_RED) : (HEX_COLOR_WHITE)));
  804.         DynamicGui_AddRow(playerid, CREW_FLAG_GROUPS);
  805.        
  806.         format(str, sizeof(str), "%s%s07\tZarzadzanie strefami\n", str, ((HasCrewFlag(targetid, CREW_FLAG_AREAS)) ? (HEX_COLOR_LIGHTER_RED) : (HEX_COLOR_WHITE)));
  807.         DynamicGui_AddRow(playerid, CREW_FLAG_AREAS);
  808.        
  809.         format(str, sizeof(str), "%s%s08\tZarzadzanie obiektami i 3dtextami\n", str, ((HasCrewFlag(targetid, CREW_FLAG_EDITOR)) ? (HEX_COLOR_LIGHTER_RED) : (HEX_COLOR_WHITE)));
  810.         DynamicGui_AddRow(playerid, CREW_FLAG_EDITOR);
  811.        
  812.         format(str, sizeof(str), "%s%s09\tZarzadzanie przedmiotami\n", str, ((HasCrewFlag(targetid, CREW_FLAG_ITEMS)) ? (HEX_COLOR_LIGHTER_RED) : (HEX_COLOR_WHITE)));
  813.         DynamicGui_AddRow(playerid, CREW_FLAG_ITEMS);
  814.        
  815.         ShowPlayerDialog(playerid, DIALOG_GIVE_CREW, DIALOG_STYLE_LIST, sprintf("Flagi ekipy postaci %s [Global: %d, UID: %d, ID: %d]", pInfo[targetid][player_name], gInfo[targetid][global_id], pInfo[targetid][player_id], targetid), str, "Wybierz", "Zamknij");
  816.         UpdatePlayerLabel(playerid);
  817.         UpdatePlayerLabel(targetid);
  818.         return 1;
  819. }
  820. COMMAND:actor(playerid, params[])
  821. {
  822.         if( !HasCrewFlag(playerid, CREW_FLAG_EDITOR) ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Nie masz uprawnień do korzystania z tej komendy.");
  823.        
  824.         new sub_cmd[40], param[150];
  825.         if( sscanf(params, "s[40] S()[150]", sub_cmd, param) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /actor [stworz/usun/anim]");
  826.        
  827.         if( !strcmp(sub_cmd, "stworz") )
  828.         {
  829.                 new skin, type;
  830.                 if( sscanf(param, "dd", skin, type) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /actor stworz [skin] [typ]");
  831.                 new Float:x, Float:y, Float:z, Float:a;
  832.                 GetPlayerPos(playerid, x, y, z);
  833.                 GetPlayerFacingAngle(playerid, a);
  834.  
  835.                 mysql_query(mySQLconnection, sprintf("INSERT INTO `ipb_actors` (actor_uid, actor_skin, actor_x, actor_y, actor_z, actor_a, actor_type, actor_vw) VALUES (null, %d, %f, %f, %f, %f, %d, %d)", skin, x, y, z, a, type, GetPlayerVirtualWorld(playerid)));
  836.                
  837.                 if( cache_insert_id() )
  838.                 {
  839.                         new a_id = LoadActor(sprintf("WHERE `actor_uid` = %d", cache_insert_id()), true);
  840.                         SendGuiInformation(playerid, "Informacja", sprintf("Pomyślnie utworzono aktora o ID %d.", a_id));
  841.                 }
  842.         }
  843.         else if( !strcmp(sub_cmd, "usun") )
  844.         {
  845.                 new a_id;
  846.                 if( sscanf(param, "d", a_id) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /actor usun [id aktora]");
  847.                 if( !Iter_Contains(Actors, a_id) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /actor usun [id aktora]");
  848.  
  849.                 mysql_query(mySQLconnection, sprintf("DELETE FROM ipb_actors WHERE actor_uid = %d", Actor[a_id][actor_uid]));
  850.                 DestroyActor(a_id);
  851.                 Iter_Remove(Actors, a_id);
  852.         }
  853.         else if( !strcmp(sub_cmd, "przypisz") )
  854.         {
  855.                 new a_id, rid;
  856.                 if( sscanf(param, "dd", a_id, rid) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /actor przypisz [id aktora] [uid napadu]");
  857.                 if( !Iter_Contains(Actors, a_id) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /actor przypisz [id aktora] [uid napadu]");
  858.  
  859.                 mysql_query(mySQLconnection, sprintf("UPDATE ipb_actors SET actor_owner = %d WHERE actor_uid = %d", rid, Actor[a_id][actor_uid]));
  860.                 Actor[a_id][actor_owner] = rid;
  861.                 Actor[a_id][actor_type] = ACTOR_TYPE_ROBBERY;
  862.                 SendGuiInformation(playerid, "Informacja", "Pomyślnie przypisano aktora do napadu.");
  863.         }
  864.         else if( !strcmp(sub_cmd, "anim") )
  865.         {
  866.                 new a_id, animid;
  867.                 if( sscanf(param, "dd", a_id, animid) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /actor anim [id aktora] [uid animacji]");
  868.                 if( !Iter_Contains(Actors, a_id) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /actor anim [id aktora] [uid animacji]");
  869.  
  870.                 mysql_query(mySQLconnection, sprintf("UPDATE ipb_actors SET actor_anim = %d WHERE actor_uid = %d", animid, Actor[a_id][actor_uid]));
  871.                 Actor[a_id][actor_animation] = animid;
  872.  
  873.                 foreach(new anim_id: Anims)
  874.                 {
  875.                         if(AnimInfo[anim_id][aUID] == Actor[a_id][actor_animation])
  876.                 {
  877.                     ApplyActorAnimation(a_id, AnimInfo[anim_id][aLib], AnimInfo[anim_id][aName], AnimInfo[anim_id][aSpeed], AnimInfo[anim_id][aOpt1], AnimInfo[anim_id][aOpt2], AnimInfo[anim_id][aOpt3], AnimInfo[anim_id][aOpt4], AnimInfo[anim_id][aOpt5]);
  878.                 }
  879.                 }
  880.         }
  881.         return 1;
  882.        
  883. }
  884. COMMAND:aduty(playerid, params[])
  885. {
  886.         if( !HasCrewFlag(playerid, CREW_FLAG_GM) && !HasCrewFlag(playerid, CREW_FLAG_ADMIN) && !HasCrewFlag(playerid, CREW_FLAG_ADMIN_ROOT) ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Nie posiadasz uprawnień do korzystania z tej komendy.");
  887.        
  888.         if( pInfo[playerid][player_admin_duty] )
  889.         {
  890.                 strcopy(pInfo[playerid][player_name], pInfo[playerid][player_duty_tmp], MAX_PLAYER_NAME+1);
  891.                 pInfo[playerid][player_duty_tmp][0] = EOS;
  892.                
  893.  
  894.  
  895.                
  896.                 UpdatePlayerLabel(playerid);
  897.                
  898.                 pInfo[playerid][player_admin_duty] = false;
  899.                
  900.                 new duty_time = gettime() - pInfo[playerid][player_admin_duty_start] - pInfo[playerid][player_admin_duty_afk_time];
  901.                
  902.                 SendClientMessage(playerid, 0xD7A064FF, sprintf("Zszedłeś ze służby administratora. Czas przebyty na służbie: %d min %d sek.", floatround(duty_time/60, floatround_floor), duty_time%60));
  903.                 mysql_query(mySQLconnection, sprintf("INSERT INTO `ipb_game_sessions` (session_uid, session_type, session_extraid, session_owner, session_start, session_end) VALUES (null, %d, %d, %d, %d, %d)", SESSION_TYPE_ADMIN_DUTY, 0, pInfo[playerid][player_id], pInfo[playerid][player_admin_duty_start], (gettime() - pInfo[playerid][player_admin_duty_afk_time])));
  904.                
  905.                 pInfo[playerid][player_admin_duty_afk_time] = 0;
  906.                 pInfo[playerid][player_admin_duty_start] = 0;
  907.         }
  908.         else
  909.         {
  910.                 if( GetPlayerUsedItem(playerid, ITEM_TYPE_MASKA) > -1 ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Nie możesz wejść na duty z założoną maską.");
  911.                 new name[MAX_PLAYER_NAME+1];
  912.                 GetPlayerName(playerid, name, sizeof(name));
  913.  
  914.                 strcopy(pInfo[playerid][player_duty_tmp], name, MAX_PLAYER_NAME+1);
  915.                 strcopy(pInfo[playerid][player_name], pGlobal[playerid][glo_name], MAX_PLAYER_NAME+1);
  916.                 EscapePL(pInfo[playerid][player_name]);
  917.  
  918.        
  919.                
  920.                 UpdatePlayerLabel(playerid);
  921.                
  922.                 pInfo[playerid][player_admin_duty] = true;
  923.                 pInfo[playerid][player_admin_duty_start] = gettime();
  924.  
  925.                 if( HasCrewFlag(playerid, CREW_FLAG_ITEMS) )
  926.                 {
  927.                         pInfo[playerid][player_capacity] = 50000;
  928.                 }
  929.                
  930.                 SendClientMessage(playerid, 0xD7A064FF, "Wszedłeś na służbe administratora. Aby zejść, użyj ponownie tej komendy.");
  931.         }
  932.        
  933.         return 1;
  934. }
  935.  
  936. COMMAND:atime(playerid, params[])
  937. {
  938.         if( !HasCrewFlag(playerid, CREW_FLAG_GM) && !HasCrewFlag(playerid, CREW_FLAG_ADMIN) && !HasCrewFlag(playerid, CREW_FLAG_ADMIN_ROOT) ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Nie masz uprawnień do korzystania z tej komendy.");
  939.         new time;
  940.         if( sscanf(params, "d", time) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /atime [godzina]");
  941.         SetWorldTime(time);
  942.         return 1;
  943. }
  944.  
  945. COMMAND:aweather(playerid, params[])
  946. {
  947.         if( !HasCrewFlag(playerid, CREW_FLAG_GM) && !HasCrewFlag(playerid, CREW_FLAG_ADMIN_ROOT) ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Nie masz uprawnień do korzystania z tej komendy.");
  948.         new weather;
  949.         if( sscanf(params, "d", weather) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /aweather [id pogody]");
  950.        
  951.         foreach(new pid: Player)
  952.         {
  953.                 if(GetPlayerVirtualWorld(playerid) != 0) continue;
  954.                 SetPlayerWeather(pid, weather);
  955.         }
  956.         WorldWeather = weather;
  957.         return 1;
  958. }
  959.  
  960. COMMAND:setskin(playerid, params[])
  961. {
  962.         if( !HasCrewFlag(playerid, CREW_FLAG_GM) && !HasCrewFlag(playerid, CREW_FLAG_ADMIN) && !HasCrewFlag(playerid, CREW_FLAG_ADMIN_ROOT) ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Nie masz uprawnień do korzystania z tej komendy.");
  963.         new targetid, skin;
  964.         if( sscanf(params, "ud", targetid, skin) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /setskin [id gracza/czesc nicku] [skin]");
  965.         if( !IsPlayerConnected(targetid) ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Gracza o podanym id nie ma na serwerze.");
  966.         if( !pInfo[targetid][player_logged] ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Gracz o podanym id nie jest zalogowany.");
  967.        
  968.         SetPlayerSkin(targetid, skin);
  969.         pInfo[targetid][player_skin]= skin;
  970.         mysql_query(mySQLconnection, sprintf("UPDATE `ipb_characters` SET `char_skin` = %d WHERE `char_uid` = %d", skin, pInfo[targetid][player_id]));
  971.        
  972.         return 1;
  973. }
  974.  
  975. COMMAND:acto(playerid, params[])
  976. {
  977.         if( !HasCrewFlag(playerid, CREW_FLAG_GM) && !HasCrewFlag(playerid, CREW_FLAG_ADMIN) && !HasCrewFlag(playerid, CREW_FLAG_ADMIN_ROOT) ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Nie posiadasz uprawnień do korzystania z tej komendy.");
  978.        
  979.         new cmdParam;
  980.         if( sscanf(params, "d", cmdParam) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /acto [id aktora]");
  981.  
  982.         new
  983.                 Float:x,
  984.                 Float:y,
  985.                 Float:z;
  986.         GetActorPos(cmdParam, x, y, z);
  987.        
  988.         RP_PLUS_SetPlayerPos(playerid, x, y, z);
  989.         SetPlayerVirtualWorld(playerid, GetActorVirtualWorld(cmdParam));
  990.        
  991.         FreezePlayer(playerid, 2000);
  992.        
  993.         SendFormattedClientMessage(playerid, COLOR_GOLD, "Przeteleportowałeś sie do aktora o ID: %d.", cmdParam);
  994.  
  995.         return 1;
  996. }
  997.  
  998. COMMAND:res(playerid, params[])
  999. {
  1000.         if( !HasCrewFlag(playerid, CREW_FLAG_GM) && !HasCrewFlag(playerid, CREW_FLAG_ADMIN) && !HasCrewFlag(playerid, CREW_FLAG_ADMIN_ROOT) ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Nie posiadasz uprawnień do korzystania z tej komendy.");
  1001.        
  1002.         new cmdParam;
  1003.         if( sscanf(params, "u", cmdParam) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /res [id gracza/czesc nicku]");
  1004.         if( (!IsPlayerConnected(cmdParam) || !pInfo[cmdParam][player_logged]) ) return SendClientMessage(playerid, COLOR_GREY, "Ten gracz nie jest zalogowany.");
  1005.  
  1006.         if(pInfo[cmdParam][player_spawn_type] == SPAWN_TYPE_GLOBAL)
  1007.         {
  1008.                 new spawn;
  1009.                 spawn = Iter_Random(GlobalSpawns);     
  1010.                 SetPlayerPos(cmdParam,  GlobalSpawn[spawn][gspawn_pos][0], GlobalSpawn[spawn][gspawn_pos][1], GlobalSpawn[spawn][gspawn_pos][2]);      
  1011.         }
  1012.         else if(pInfo[cmdParam][player_spawn_type] == SPAWN_TYPE_GLOBAL_SC)
  1013.         {
  1014.                 new spawn;
  1015.                 spawn = Iter_Random(ScSpawns);
  1016.                 SetPlayerPos(cmdParam,  GlobalSpawn[spawn][gspawn_pos][0], GlobalSpawn[spawn][gspawn_pos][1], GlobalSpawn[spawn][gspawn_pos][2]);      
  1017.         }
  1018.         else if(pInfo[cmdParam][player_spawn_type] == SPAWN_TYPE_HOUSE)
  1019.         {
  1020.                 new spawn = pInfo[cmdParam][player_spawn];
  1021.                 new d_id = GetDoorByUid(spawn);
  1022.                 if(d_id != -1)
  1023.                 {
  1024.                         SetPlayerPos(cmdParam, Door[d_id][door_spawn_pos][0], Door[d_id][door_spawn_pos][1], Door[d_id][door_spawn_pos][2]);
  1025.                         SetPlayerVirtualWorld(cmdParam, Door[d_id][door_spawn_vw]);
  1026.                         SetPlayerInterior(cmdParam, Door[d_id][door_spawn_int]);
  1027.                 }
  1028.         }
  1029.         else if(pInfo[cmdParam][player_spawn_type] == SPAWN_TYPE_HOTEL)
  1030.         {
  1031.                 new spawn = pInfo[cmdParam][player_spawn];
  1032.                 new d_id = GetDoorByUid(spawn);
  1033.                 if(d_id != -1)
  1034.                 {
  1035.                         SetPlayerPos(cmdParam, Door[d_id][door_spawn_pos][0], Door[d_id][door_spawn_pos][1], Door[d_id][door_spawn_pos][2]);
  1036.                         SetPlayerVirtualWorld(cmdParam, Door[d_id][door_spawn_vw]);
  1037.                         SetPlayerInterior(cmdParam, Door[d_id][door_spawn_int]);
  1038.                 }
  1039.         }
  1040.  
  1041.         FreezePlayer(cmdParam, 2000);
  1042.  
  1043.         SendFormattedClientMessage(playerid, COLOR_GOLD, "Zrestowałeś gracza %s (ID: %d, UID: %d).", pInfo[cmdParam][player_name], cmdParam, pInfo[cmdParam][player_id]);
  1044.  
  1045.         return 1;
  1046. }
  1047.  
  1048. COMMAND:goto(playerid, params[])
  1049. {
  1050.         return cmd_to(playerid, params);
  1051. }
  1052.  
  1053. COMMAND:to(playerid, params[])
  1054. {
  1055.         if( !HasCrewFlag(playerid, CREW_FLAG_GM) && !HasCrewFlag(playerid, CREW_FLAG_ADMIN) && !HasCrewFlag(playerid, CREW_FLAG_ADMIN_ROOT) ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Nie posiadasz uprawnień do korzystania z tej komendy.");
  1056.        
  1057.         new cmdParam;
  1058.         if( sscanf(params, "u", cmdParam) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /to [id gracza/część nicku]");
  1059.         if( (!IsPlayerConnected(cmdParam) || !pInfo[cmdParam][player_logged]) ) return SendClientMessage(playerid, COLOR_GREY, "Ten gracz nie jest zalogowany.");
  1060.  
  1061.         new
  1062.                 Float:x,
  1063.                 Float:y,
  1064.                 Float:z;
  1065.         GetPlayerPos(cmdParam, x, y, z);
  1066.        
  1067.         RP_PLUS_SetPlayerPos(playerid, x, y, z);
  1068.         SetPlayerVirtualWorld(playerid, GetPlayerVirtualWorld(cmdParam));
  1069.         SetPlayerInterior(playerid, GetPlayerInterior(cmdParam));
  1070.        
  1071.         FreezePlayer(playerid, 2000);
  1072.        
  1073.  
  1074.         SendFormattedClientMessage(playerid, COLOR_GOLD, "Przeteleportowałeś się do gracza %s (ID: %d, UID: %d).", pInfo[cmdParam][player_name], cmdParam, pInfo[cmdParam][player_id]);
  1075.  
  1076.         return 1;
  1077. }
  1078.  
  1079. COMMAND:gethere(playerid, params[])
  1080. {
  1081.         return cmd_tm(playerid, params);
  1082. }
  1083.  
  1084. COMMAND:takecash(playerid, params[])
  1085. {
  1086.         if( !HasCrewFlag(playerid, CREW_FLAG_GM) && !HasCrewFlag(playerid, CREW_FLAG_ADMIN_ROOT) ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Nie posiadasz uprawnień do korzystania z tej komendy.");
  1087.        
  1088.         new cmdParam, cash;
  1089.         if( sscanf(params, "ud", cmdParam, cash) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /takecash [id gracza/część nicku] [kwota]0");
  1090.         if( (!IsPlayerConnected(cmdParam) || !pInfo[cmdParam][player_logged]) ) return SendClientMessage(playerid, COLOR_GREY, "Ten gracz nie jest zalogowany.");
  1091.  
  1092.         GivePlayerMoney(cmdParam, -cash);
  1093.        
  1094.  
  1095.         return 1;
  1096. }
  1097.  
  1098. COMMAND:tm(playerid, params[])
  1099. {
  1100.         if( !HasCrewFlag(playerid, CREW_FLAG_GM) && !HasCrewFlag(playerid, CREW_FLAG_ADMIN) && !HasCrewFlag(playerid, CREW_FLAG_ADMIN_ROOT) ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Nie posiadasz uprawnień do korzystania z tej komendy.");
  1101.        
  1102.         new cmdParam;
  1103.         if( sscanf(params, "u", cmdParam) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /tm [id gracza/część nicku]");
  1104.         if( (!IsPlayerConnected(cmdParam) || !pInfo[cmdParam][player_logged]) ) return SendClientMessage(playerid, COLOR_GREY, "Ten gracz nie jest zalogowany.");
  1105.  
  1106.         new
  1107.                 Float:x,
  1108.                 Float:y,
  1109.                 Float:z;
  1110.         GetPlayerPos(playerid, x, y, z);
  1111.        
  1112.         RP_PLUS_SetPlayerPos(cmdParam, x, y, z);
  1113.         SetPlayerVirtualWorld(cmdParam, GetPlayerVirtualWorld(playerid));
  1114.         SetPlayerInterior(cmdParam, GetPlayerInterior(playerid));
  1115.        
  1116.         FreezePlayer(cmdParam, 2000);
  1117.        
  1118.  
  1119.  
  1120.         return 1;
  1121. }
  1122.  
  1123. COMMAND:tp(playerid, params[])
  1124. {
  1125.         if( !HasCrewFlag(playerid, CREW_FLAG_GM) && !HasCrewFlag(playerid, CREW_FLAG_ADMIN) && !HasCrewFlag(playerid, CREW_FLAG_ADMIN_ROOT) ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Nie posiadasz uprawnień do korzystania z tej komendy.");
  1126.        
  1127.         new cmdParam[2];
  1128.         if( sscanf(params, "a<i>[2]", cmdParam) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /tp [kogo] [do kogo]");
  1129.         if( (!IsPlayerConnected(cmdParam[0]) || !pInfo[cmdParam[0]][player_logged]) || (!IsPlayerConnected(cmdParam[1]) || !pInfo[cmdParam[1]][player_logged]) ) return SendClientMessage(playerid, COLOR_GREY, "Jeden z graczy nie jest zalogowany.");
  1130.        
  1131.         new
  1132.                 Float:x,
  1133.                 Float:y,
  1134.                 Float:z;
  1135.         GetPlayerPos(cmdParam[1], x, y, z);
  1136.        
  1137.         RP_PLUS_SetPlayerPos(cmdParam[0], x, y, z);
  1138.         SetPlayerVirtualWorld(cmdParam[0], GetPlayerVirtualWorld(cmdParam[1]));
  1139.         SetPlayerInterior(cmdParam[0], GetPlayerInterior(cmdParam[1]));
  1140.        
  1141.         FreezePlayer(cmdParam[0], 2500);
  1142.        
  1143.         if( cmdParam[0] == playerid )
  1144.         {
  1145.                 SendFormattedClientMessage(cmdParam[0], COLOR_GOLD, "Przeteleportowałeś się do gracza %s (ID: %d, UID: %d).", pInfo[cmdParam[1]][player_name], cmdParam[1], pInfo[cmdParam[1]][player_id]);
  1146.         }                              
  1147.         else
  1148.         {
  1149.                 SendFormattedClientMessage(cmdParam[0], COLOR_GOLD, "%s przeteleportował Cie do gracza %s (ID: %d, UID: %d).", pInfo[playerid][player_name], pInfo[cmdParam[1]][player_name], cmdParam[1], pInfo[cmdParam[1]][player_id]);
  1150.         }
  1151.  
  1152.         return 1;
  1153. }
  1154.  
  1155. COMMAND:aspawn(playerid, params[])
  1156. {
  1157.         if( !HasCrewFlag(playerid, CREW_FLAG_ADMIN_ROOT) ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Nie posiadasz uprawnień do korzystania z tej komendy.");
  1158.        
  1159.         new sub_cmd[40], param[150];
  1160.         if( sscanf(params, "s[40] S()[150]", sub_cmd, param) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /aspawn [stworz/usun]");
  1161.        
  1162.         if( !strcmp(sub_cmd, "stworz", false) )
  1163.         {
  1164.                 new type;
  1165.                 if( sscanf(param, "d", type) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /aspawn stworz [typ]");
  1166.  
  1167.                 if(type <1 || type > 2) return SendClientMessage(playerid, COLOR_GREY, "Typy spawnów: 1(Market), 2(Idlewood)");
  1168.  
  1169.                 new Float:pPos[4];
  1170.                
  1171.                 GetPlayerPos(playerid, pPos[0], pPos[1], pPos[2]);
  1172.                 GetPlayerFacingAngle(playerid, pPos[3]);
  1173.                
  1174.                 mysql_query(mySQLconnection, sprintf("INSERT INTO `ipb_gspawns` (gspawn_uid, gspawn_posx, gspawn_posy, gspawn_posz, gspawn_posa, gspawn_type) VALUES (null, %f, %f, %f, %f, %d)", pPos[0], pPos[1], pPos[2], pPos[3], type));
  1175.                
  1176.                 new id = cache_insert_id();
  1177.                 new i;
  1178.  
  1179.                 if(type == SPAWN_TYPE_GLOBAL)
  1180.                 {
  1181.                         i = Iter_Free(GlobalSpawns);
  1182.                 }
  1183.                 else
  1184.                 {
  1185.                         i = Iter_Free(ScSpawns);
  1186.                 }
  1187.  
  1188.                 GlobalSpawn[i][gspawn_id] = id;
  1189.                 GlobalSpawn[i][gspawn_pos][0] = pPos[0];
  1190.                 GlobalSpawn[i][gspawn_pos][1] = pPos[1];
  1191.                 GlobalSpawn[i][gspawn_pos][2] = pPos[2];
  1192.                 GlobalSpawn[i][gspawn_pos][3] = pPos[3];
  1193.                
  1194.                 if(type == SPAWN_TYPE_GLOBAL)
  1195.                 {
  1196.                         Iter_Add(GlobalSpawns, i);
  1197.                         SendFormattedClientMessage(playerid, COLOR_GOLD, "Dodano nowy globalny spawn (Market) (ID: %d).", i);
  1198.                 }
  1199.                 else
  1200.                 {
  1201.                         Iter_Add(ScSpawns, i);
  1202.                         SendFormattedClientMessage(playerid, COLOR_GOLD, "Dodano nowy globalny spawn (South Central) (ID: %d).", i);
  1203.                 }
  1204.         }
  1205.         else if( !strcmp(sub_cmd, "usun") )
  1206.         {
  1207.                 new id;
  1208.                 if( sscanf(param, "d", id) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /aspawn usun [id spawnu]");
  1209.                 if( id < 0 || id >= MAX_GLOBAL_SPAWNS ) return SendClientMessage(playerid, COLOR_GREY, "Niepoprawne id spawnu.");
  1210.                 if( !Iter_Contains(GlobalSpawns, id) ) return SendClientMessage(playerid, COLOR_GREY, "Niepoprawne id spawnu.");
  1211.                
  1212.                 mysql_query(mySQLconnection, sprintf("DELETE FROM `ipb_gspawns` WHERE `gspawn_uid` = %d", GlobalSpawn[id][gspawn_id]));
  1213.                
  1214.                 for(new z=0; e_global_spawns:z != e_global_spawns; z++)
  1215.                 {
  1216.                         GlobalSpawn[id][e_global_spawns:z] = 0;
  1217.                 }
  1218.                
  1219.                 Iter_Remove(GlobalSpawns, id);
  1220.                
  1221.                 SendFormattedClientMessage(playerid, COLOR_GOLD, "Usunięto globalny spawn (ID: %d).", id);
  1222.         }
  1223.         else return SendClientMessage(playerid, COLOR_GREY, "Tip: /aspawn [stworz/usun]");
  1224.        
  1225.         return 1;
  1226. }
  1227.  
  1228. COMMAND:glob(playerid, params[])
  1229. {
  1230.         if( !HasCrewFlag(playerid, CREW_FLAG_ADMIN) && !HasCrewFlag(playerid, CREW_FLAG_ADMIN_ROOT) && !HasCrewFlag(playerid, CREW_FLAG_GM) ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Nie posiadasz uprawnień do korzystania z tej komendy.");
  1231.        
  1232.         new text[290];
  1233.         if( sscanf(params, "s[290]", text) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /glob [tekst]");
  1234.        
  1235.         format(text, sizeof(text), "[[ %s: %s ]]", pInfo[playerid][player_name], BeautifyString(text));
  1236.         foreach(new p : Player)
  1237.         {
  1238.                 if( !pInfo[p][player_logged] ) continue;
  1239.                 SendClientMessage(p, COLOR_WHITE, text);
  1240.         }
  1241.        
  1242.         return 1;
  1243. }
  1244.  
  1245. COMMAND:ac(playerid, params[])
  1246. {
  1247.         if( !HasCrewFlag(playerid, CREW_FLAG_GM) && !HasCrewFlag(playerid, CREW_FLAG_ADMIN) && !HasCrewFlag(playerid, CREW_FLAG_ADMIN_ROOT) ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Nie masz uprawnień do korzystania z tej komendy.");
  1248.         if( isnull(params) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /ac [tekst]");
  1249.        
  1250.         new text[200];
  1251.         if( HasCrewFlag(playerid, CREW_FLAG_GM) ) format(text, sizeof(text), "(( [AC] %s%s{EFE7AD}: %s ))", HEX_COLOR_CREW_GM, pInfo[playerid][player_name], params);
  1252.         if( HasCrewFlag(playerid, CREW_FLAG_ADMIN) ) format(text, sizeof(text), "(( [AC] %s%s{EFE7AD}: %s ))", HEX_COLOR_CREW_ADMIN, pInfo[playerid][player_name], params);
  1253.         if( HasCrewFlag(playerid, CREW_FLAG_ADMIN_ROOT) ) format(text, sizeof(text), "(( [AC] %s%s{EFE7AD}: %s ))", HEX_COLOR_CREW_ADMIN_ROOT, pInfo[playerid][player_name], params);
  1254.        
  1255.         foreach(new p : Player)
  1256.         {
  1257.                 if( !pInfo[p][player_logged] ) continue;
  1258.                 if( !HasCrewFlag(p, CREW_FLAG_GM) && !HasCrewFlag(p, CREW_FLAG_ADMIN) && !HasCrewFlag(p, CREW_FLAG_ADMIN_ROOT) ) continue;
  1259.                
  1260.                 SendClientMessage(p, 0xEFE7ADFF, text);
  1261.         }
  1262.        
  1263.         return 1;
  1264. }
  1265.  
  1266. COMMAND:hp(playerid, params[])
  1267. {
  1268.         if( !HasCrewFlag(playerid, CREW_FLAG_GM) && !HasCrewFlag(playerid, CREW_FLAG_ADMIN) && !HasCrewFlag(playerid, CREW_FLAG_ADMIN_ROOT) ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Nie masz uprawnień do korzystania z tej komendy.");
  1269.         new targetid, health;
  1270.         if( sscanf(params, "ud", targetid, health) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /hp [id gracza/czesc nicku] [hp]");
  1271.         if( !IsPlayerConnected(targetid) ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Gracz o podanym id nie jest podłączony.");
  1272.         if( !pInfo[targetid][player_logged] ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Gracz o podanym id nie jest zalogowany.");
  1273.         if( health < 0 ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /hp [id gracza] [hp]");
  1274.        
  1275.         SetPlayerHealth(targetid, health);
  1276.        
  1277.         return 1;
  1278. }
  1279.  
  1280. COMMAND:ad(playerid, params[])
  1281. {
  1282.         return cmd_adrzwi(playerid, params);
  1283. }
  1284.  
  1285. COMMAND:adrzwi(playerid, params[])
  1286. {
  1287.         if( !HasCrewFlag(playerid, CREW_FLAG_DOORS) ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Nie posiadasz uprawnień do korzystania z tej komendy.");
  1288.        
  1289.         new sub_cmd[40], param[150];
  1290.         if( sscanf(params, "s[40] S()[150]", sub_cmd, param) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /(ad)rzwi [stworz/usun/pickup/czynsz/mieszkanie/mapicon/goto/przypisz/interior/wejscie/exitvw/objects/przeladuj]");
  1291.        
  1292.        
  1293.         if( !strcmp(sub_cmd, "stworz", false) )
  1294.         {
  1295.                 new name[50];
  1296.                 if( sscanf(param, "s[50]", name) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /(ad)rzwi stworz [nazwa]");
  1297.                
  1298.                 new Float:pPos[4];
  1299.                
  1300.                 GetPlayerPos(playerid, pPos[0], pPos[1], pPos[2]);
  1301.                 GetPlayerFacingAngle(playerid, pPos[3]);
  1302.                 mysql_real_escape_string(name, name);
  1303.  
  1304.                 new str[400];
  1305.                 strcat(str, "INSERT INTO ipb_doors (door_uid, door_owner, door_ownertype, door_name, door_type, door_pickupid, door_enterx, door_entery, door_enterz, door_entera, door_entervw, door_enterint, door_exitx, door_exity, door_exitz, door_exita) ");
  1306.                 strcat(str, sprintf("VALUES (null, 0, 0, '%s', 1, 1239, %f, %f, %f, %f, %d, %d, %f, %f, %f, %f)", name, pPos[0], pPos[1], pPos[2], pPos[3], GetPlayerVirtualWorld(playerid), GetPlayerInterior(playerid), pPos[0], pPos[1], pPos[2], pPos[3]));
  1307.                
  1308.                 mysql_query(mySQLconnection, str);
  1309.                 new uid = cache_insert_id();
  1310.                
  1311.                 new did = LoadDoor(sprintf("WHERE `door_uid` = %d", uid), true);
  1312.  
  1313.                 SendGuiInformation(playerid, ""guiopis"Powiadomienie", sprintf("Drzwi zostały utworzone. [UID: %d, ID: %d]", uid, did));
  1314.         }
  1315.         else if( !strcmp(sub_cmd, "dom", false) )
  1316.         {
  1317.                 new d_id;
  1318.                 if( sscanf(param, "d", d_id) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /(ad)rzwi dom [id drzwi]");
  1319.                 if( !Iter_Contains(Doors, d_id) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /(ad)rzwi dom [id drzwi]");
  1320.  
  1321.                 if(Door[d_id][door_buyable] == 0)
  1322.                 {
  1323.                         SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Włączyłeś funkcje kupna tych drzwi.");
  1324.                         Door[d_id][door_buyable]=1;
  1325.                         mysql_query(mySQLconnection, sprintf("UPDATE `ipb_doors` SET `door_buyable` = 1 WHERE `door_uid` = %d", Door[d_id][door_uid]));
  1326.                 }
  1327.                 else
  1328.                 {
  1329.                         SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Wyłączyłes drzwi z funkcji kupna.");
  1330.                         Door[d_id][door_buyable]=0;
  1331.                         mysql_query(mySQLconnection, sprintf("UPDATE `ipb_doors` SET `door_buyable` = 0 WHERE `door_uid` = %d", Door[d_id][door_uid]));
  1332.                 }
  1333.         }
  1334.         else if( !strcmp(sub_cmd, "id", false) )
  1335.         {
  1336.                 new d_uid;
  1337.                 if( sscanf(param, "d", d_uid) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /(ad)rzwi id [uid drzwi]");
  1338.                 new d_id = GetDoorByUid(d_uid);
  1339.                 if(d_id == -1) return SendGuiInformation(playerid, "Informacja", "Takie drzwi nie istnieją.");
  1340.                 SendClientMessage(playerid, COLOR_GOLD, sprintf("SAMPid drzwi o UID %d to: %d", d_uid, d_id));
  1341.         }
  1342.         else if( !strcmp(sub_cmd, "cena", false) )
  1343.         {
  1344.                 new d_id, czynsz;
  1345.                 if( sscanf(param, "dd", d_id, czynsz) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /(ad)rzwi cena [id drzwi] [kwota]");      
  1346.                 if( !Iter_Contains(Doors, d_id) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /(ad)rzwi cena [id drzwi] [kwota]");
  1347.  
  1348.                 if(Door[d_id][door_buyable] == 1)
  1349.                 {
  1350.                         Door[d_id][door_price]=czynsz;
  1351.                         SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Nowa cena została ustalona.");
  1352.                         mysql_query(mySQLconnection, sprintf("UPDATE `ipb_doors` SET `door_price` = %d WHERE `door_uid` = %d", czynsz, Door[d_id][door_uid]));
  1353.  
  1354.                 }
  1355.                 else
  1356.                 {
  1357.                         SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Nie mozesz ustalic ceny dla domu ktory nie ma wlaczonej funkcji kupna.");
  1358.                 }
  1359.         }
  1360.         else if( !strcmp(sub_cmd, "mieszkanie", false) )
  1361.         {
  1362.                 new d_id;
  1363.                 if( sscanf(param, "d", d_id) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /(ad)rzwi mieszkanie [id drzwi]"); 
  1364.                 if( !Iter_Contains(Doors, d_id) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /(ad)rzwi mieszkanie [id drzwi]");
  1365.  
  1366.                 if(Door[d_id][door_rentable] == 0)
  1367.                 {
  1368.                         SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Włączyłeś funkcje wynajęcia tych drzwi.");
  1369.                         Door[d_id][door_rentable]=1;
  1370.                         mysql_query(mySQLconnection, sprintf("UPDATE `ipb_doors` SET `door_rentable` = 1 WHERE `door_uid` = %d", Door[d_id][door_uid]));
  1371.                 }
  1372.                 else
  1373.                 {
  1374.                         SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Wyłączłeś drzwi z funkcji wynajęcia.");
  1375.                         Door[d_id][door_rentable]=0;
  1376.                         mysql_query(mySQLconnection, sprintf("UPDATE `ipb_doors` SET `door_rentable` = 0 WHERE `door_uid` = %d", Door[d_id][door_uid]));
  1377.                 }
  1378.         }
  1379.         else if( !strcmp(sub_cmd, "czynsz", false) )
  1380.         {
  1381.                 new d_id, czynsz;
  1382.                 if( sscanf(param, "dd", d_id, czynsz) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /(ad)rzwi czynsz [id drzwi] [kwota]");    
  1383.                 if( !Iter_Contains(Doors, d_id) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /(ad)rzwi czynsz [id drzwi] [kwota]");
  1384.  
  1385.                 if(Door[d_id][door_rentable] == 1)
  1386.                 {
  1387.                         Door[d_id][door_rent]=czynsz;
  1388.                         SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Nowy czynsz został ustalony.");
  1389.                         mysql_query(mySQLconnection, sprintf("UPDATE `ipb_doors` SET `door_rent` = %d WHERE `door_uid` = %d", czynsz, Door[d_id][door_uid]));
  1390.  
  1391.                 }
  1392.                 else
  1393.                 {
  1394.                         SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Nie możesz ustalić czynszu dla mieszkania które nie ma włącznej funkcji wynajęcia.");
  1395.                 }
  1396.         }
  1397.         else if( !strcmp(sub_cmd, "usun", false) )
  1398.         {
  1399.                 new d_id;
  1400.                 if( sscanf(param, "d", d_id) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /(ad)rzwi usun [id drzwi]");       
  1401.                 if( !Iter_Contains(Doors, d_id) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /(ad)rzwi usun [id drzwi]");
  1402.  
  1403.                 mysql_query(mySQLconnection, sprintf("UPDATE ipb_characters SET char_spawn = 0, char_spawn_type = 1 WHERE char_spawn_type = %d AND char_spawn = %d", pInfo[playerid][player_spawn_type] == SPAWN_TYPE_HOUSE, Door[d_id][door_uid]));
  1404.                
  1405.                 SendGuiInformation(playerid, ""guiopis"Powiadomienie", sprintf("Usunięto drzwi o UID %d.", Door[d_id][door_uid]));
  1406.                 printf("[ADMIN] %s (UID %d) skasował drzwi UID %d. (%s)", pInfo[playerid][player_name], pInfo[playerid][player_id], Door[d_id][door_uid], Door[d_id][door_name]);
  1407.                 DeleteDoor(d_id);
  1408.         }
  1409.         else if( !strcmp(sub_cmd, "pickup") )
  1410.         {
  1411.                 new d_id;
  1412.                 if( sscanf(param, "d", d_id) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /(ad)rzwi pickup [id drzwi]");     
  1413.                 if( !Iter_Contains(Doors, d_id) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /(ad)rzwi pickup [id drzwi]");
  1414.                
  1415.                 new str[512];
  1416.                
  1417.                 DynamicGui_Init(playerid);
  1418.                 DynamicGui_SetDialogValue(playerid, d_id);
  1419.                
  1420.                 format(str, sizeof(str), "%s01\tSerce (1240)\n", str);
  1421.                 DynamicGui_AddRow(playerid, 0, 1240);
  1422.                
  1423.                 format(str, sizeof(str), "%s02\tKamizelka (1242)\n", str);
  1424.                 DynamicGui_AddRow(playerid, 0, 1242);
  1425.                
  1426.                 format(str, sizeof(str), "%s03\tLiterka 'i' (1239)\n", str);
  1427.                 DynamicGui_AddRow(playerid, 0, 1239);
  1428.                
  1429.                 format(str, sizeof(str), "%s04\tNiebieski domek (1272)\n", str);
  1430.                 DynamicGui_AddRow(playerid, 0, 1272);
  1431.                
  1432.                 format(str, sizeof(str), "%s05\tZielony domek (1273)\n", str);
  1433.                 DynamicGui_AddRow(playerid, 0, 1273);
  1434.                
  1435.                 format(str, sizeof(str), "%s06\tPlik gotówki (1212)\n", str);
  1436.                 DynamicGui_AddRow(playerid, 0, 1212);
  1437.                
  1438.                 format(str, sizeof(str), "%s07\tPigulka (1241)\n", str);
  1439.                 DynamicGui_AddRow(playerid, 0, 1241);
  1440.                
  1441.                 format(str, sizeof(str), "%s08\tOdznaka (1247)\n", str);
  1442.                 DynamicGui_AddRow(playerid, 0, 1247);
  1443.                
  1444.                 format(str, sizeof(str), "%s09\tDolar (1274)\n", str);
  1445.                 DynamicGui_AddRow(playerid, 0, 1274);
  1446.                
  1447.                 format(str, sizeof(str), "%s10\tNiebieska koszulka (1275)\n", str);
  1448.                 DynamicGui_AddRow(playerid, 0, 1275);
  1449.  
  1450.                 format(str, sizeof(str), "%s11\tSztanga (3072)\n", str);
  1451.                 DynamicGui_AddRow(playerid, 0, 3072);
  1452.  
  1453.                 format(str, sizeof(str), "%s12\tLudzik (1314)\n", str);
  1454.                 DynamicGui_AddRow(playerid, 0, 1314);
  1455.                
  1456.                 format(str, sizeof(str), "%s13\tTabliczka Sell (19470)\n", str);
  1457.                 DynamicGui_AddRow(playerid, 0, 19470);
  1458.  
  1459.                 format(str, sizeof(str), "%s14\tMłotek (18635)\n", str);
  1460.                 DynamicGui_AddRow(playerid, 0, 18635);
  1461.  
  1462.                 format(str, sizeof(str), "%s15\tPłyta Radia (1961)\n", str);
  1463.                 DynamicGui_AddRow(playerid, 0, 1961);
  1464.  
  1465.                 format(str, sizeof(str), "%s16\tCzerwony domek (19522)\n", str);
  1466.                 DynamicGui_AddRow(playerid, 0, 19522);
  1467.  
  1468.                 format(str, sizeof(str), "%s17\tŻółty domek (19524)\n", str);
  1469.                 DynamicGui_AddRow(playerid, 0, 19524);
  1470.  
  1471.                 format(str, sizeof(str), "%s18\tWalizka (19624)\n", str);
  1472.                 DynamicGui_AddRow(playerid, 0, 19624);
  1473.  
  1474.                 format(str, sizeof(str), "%s19\tDyskietka (1277)\n", str);
  1475.                 DynamicGui_AddRow(playerid, 0, 1277);
  1476.  
  1477.                 ShowPlayerDialog(playerid, DIALOG_ADRZWI_PICKUP, DIALOG_STYLE_LIST, sprintf("Drzwi %d (%s; SampID: %d)", Door[d_id][door_uid], Door[d_id][door_name], d_id), str, "Wybierz", "Zamknij");
  1478.         }
  1479.         else if( !strcmp(sub_cmd, "mapicon") )
  1480.         {
  1481.                 new d_id, model;
  1482.                 if( sscanf(param, "dd", d_id, model) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /(ad)rzwi mapicon [id drzwi] [model map ikony(-1 aby usunac)]");   
  1483.                 if( !Iter_Contains(Doors, d_id) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /(ad)rzwi pickup [model map ikony(-1 aby usunac)]");
  1484.                
  1485.                 mysql_query(mySQLconnection, sprintf("UPDATE `ipb_doors` SET `door_mapmodel` = %d WHERE `door_uid` = %d", model, Door[d_id][door_uid]));
  1486.                        
  1487.                 new uid = Door[d_id][door_uid];
  1488.                 DeleteDoor(d_id, false);
  1489.                
  1490.                 new did = LoadDoor(sprintf("WHERE `door_uid` = %d", uid), true);
  1491.                 SendGuiInformation(playerid, ""guiopis"Powiadomienie", sprintf("Ikona mapy drzwi została pomyślnie zmieniona! [ICON: %d, UID: %d, ID: %d]", model, uid, did));
  1492.         }
  1493.         else if( !strcmp(sub_cmd, "goto") )
  1494.         {
  1495.                 new d_id;
  1496.                 if( sscanf(param, "d", d_id) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /(ad)rzwi goto [id drzwi]");       
  1497.                 if( !Iter_Contains(Doors, d_id) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /(ad)rzwi goto [id drzwi]");
  1498.                
  1499.                 FreezePlayer(playerid, 2500);
  1500.                                
  1501.                 RP_PLUS_SetPlayerPos(playerid, Door[d_id][door_pos][0], Door[d_id][door_pos][1], Door[d_id][door_pos][2]);
  1502.                 SetPlayerFacingAngle(playerid, Door[d_id][door_pos][3]);
  1503.                
  1504.                 SetCameraBehindPlayer(playerid);
  1505.                
  1506.                 SetPlayerVirtualWorld(playerid, Door[d_id][door_vw]);
  1507.                 SetPlayerInterior(playerid, Door[d_id][door_int]);
  1508.                
  1509.                 SendGuiInformation(playerid, ""guiopis"Powiadomienie", sprintf("Teleportowałeś sie do drzwi [UID: %d, ID: %d].", Door[d_id][door_uid], d_id));
  1510.         }
  1511.         else if( !strcmp(sub_cmd, "przypisz") )
  1512.         {
  1513.                 new d_id, action[32], who;
  1514.                 if( sscanf(param, "ds[32]d", d_id, action, who) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /(ad)rzwi przypisz [id drzwi] [grupa/gracz/globalne] [uid grupy/id gracza(nie uid)]");
  1515.                 if( !Iter_Contains(Doors, d_id) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /(ad)rzwi przypisz [id drzwi] [grupa/gracz] [uid grupy/id gracza(nie uid)]");
  1516.                
  1517.                 if( !strcmp(action, "grupa") )
  1518.                 {
  1519.                         new gid = GetGroupByUid(who);
  1520.                         if( gid == -1 ) return SendClientMessage(playerid, COLOR_GREY, "Grupa o podanym uid nie istnieje.");
  1521.                        
  1522.                         mysql_query(mySQLconnection, sprintf("UPDATE `ipb_doors` SET `door_ownertype` = %d, `door_owner` = %d WHERE `door_uid` = %d", DOOR_OWNER_TYPE_GROUP, who, Door[d_id][door_uid]));
  1523.                        
  1524.                         Door[d_id][door_owner_type] = DOOR_OWNER_TYPE_GROUP;
  1525.                         Door[d_id][door_owner] = who;
  1526.                        
  1527.                         SendGuiInformation(playerid, ""guiopis"Powiadomienie", sprintf("Pomyślnie zmieniłeś wlasciciela drzwi [UID: %d, ID: %d] na grupe %s [UID: %d, ID: %d].", Door[d_id][door_uid], d_id, Group[gid][group_name], Group[gid][group_uid], gid));
  1528.                 }
  1529.                 else if( !strcmp(action, "gracz") )
  1530.                 {
  1531.                         if( !IsPlayerConnected(who) ) return SendClientMessage(playerid, COLOR_GREY, "Gracz o podanym id nie jest podłączony.");
  1532.                        
  1533.                         mysql_query(mySQLconnection, sprintf("UPDATE `ipb_doors` SET `door_ownertype` = %d, `door_owner` = %d WHERE `door_uid` = %d", DOOR_OWNER_TYPE_PLAYER, pInfo[who][player_id], Door[d_id][door_uid]));
  1534.                        
  1535.                         Door[d_id][door_owner_type] = DOOR_OWNER_TYPE_PLAYER;
  1536.                         Door[d_id][door_owner] = pInfo[who][player_id];
  1537.                        
  1538.                         SendGuiInformation(playerid, ""guiopis"Powiadomienie", sprintf("Pomyślnie zmieniłeś wlasciciela drzwi [UID: %d, ID: %d] na gracza %s [UID: %d, ID: %d].", Door[d_id][door_uid], d_id, pInfo[who][player_name], pInfo[who][player_id], who));
  1539.                 }
  1540.                 else if( !strcmp(action, "globalne") )
  1541.                 {
  1542.                         mysql_query(mySQLconnection, sprintf("UPDATE `ipb_doors` SET `door_ownertype` = %d, `door_owner` = 0 WHERE `door_uid` = %d", DOOR_OWNER_TYPE_GLOBAL, Door[d_id][door_uid]));
  1543.                        
  1544.                         Door[d_id][door_owner_type] = DOOR_OWNER_TYPE_GLOBAL;
  1545.                         Door[d_id][door_owner] = 0;
  1546.                        
  1547.                         SendGuiInformation(playerid, ""guiopis"Powiadomienie", sprintf("Pomyślnie zmieniłeś wlasciciela drzwi [UID: %d, ID: %d] na globalnego.", Door[d_id][door_uid], d_id));
  1548.                 }
  1549.                 else return SendClientMessage(playerid, COLOR_GREY, "Tip: /(ad)rzwi przypisz [id drzwi] [grupa/postac] [uid grupy/id gracza(nie uid)]");       
  1550.         }
  1551.         else if( !strcmp(sub_cmd, "interior") )
  1552.         {
  1553.                 new d_id;
  1554.                 if( sscanf(param, "d", d_id) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /(ad)rzwi interior [id drzwi]");   
  1555.                 if( !Iter_Contains(Doors, d_id) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /(ad)rzwi interior [id drzwi]");
  1556.                
  1557.                 DoorsDefaultInteriorsList(playerid, d_id);
  1558.         }
  1559.         else if( !strcmp(sub_cmd, "wejscie") )
  1560.         {
  1561.                 new d_id;
  1562.                 if( sscanf(param, "d", d_id) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /(ad)rzwi wejscie [id drzwi]");    
  1563.                 if( !Iter_Contains(Doors, d_id) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /(ad)rzwi wejscie [id drzwi]");
  1564.                
  1565.                 GetPlayerPos(playerid, Door[d_id][door_pos][0], Door[d_id][door_pos][1], Door[d_id][door_pos][2]);
  1566.                 GetPlayerFacingAngle(playerid, Door[d_id][door_pos][3]);
  1567.                
  1568.                 mysql_query(mySQLconnection, sprintf("UPDATE `ipb_doors` SET `door_enterx` = %f, `door_entery` = %f, `door_enterz` = %f, `door_entera` = %f, door_entervw = %d WHERE `door_uid` = %d", Door[d_id][door_pos][0], Door[d_id][door_pos][1], Door[d_id][door_pos][2], Door[d_id][door_pos][3], GetPlayerVirtualWorld(playerid), Door[d_id][door_uid]));            
  1569.                
  1570.                 new uid = Door[d_id][door_uid];
  1571.                 DeleteDoor(d_id, false);
  1572.                
  1573.                 new did = LoadDoor(sprintf("WHERE `door_uid` = %d", uid), true);
  1574.                
  1575.                 SendGuiInformation(playerid, ""guiopis"Powiadomienie", sprintf("Pozycja zewnetrznych drzwi została pomyślnie zmieniona [UID: %d, ID: %d].", Door[d_id][door_uid], did));
  1576.         }
  1577.         else if( !strcmp(sub_cmd, "wyjscie") )
  1578.         {
  1579.                 new d_id;
  1580.                 if( sscanf(param, "d", d_id) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /(ad)rzwi wyjscie [id drzwi]");    
  1581.                 if( !Iter_Contains(Doors, d_id) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /(ad)rzwi wyjscie [id drzwi]");
  1582.                
  1583.                 GetPlayerPos(playerid, Door[d_id][door_spawn_pos][0], Door[d_id][door_spawn_pos][1], Door[d_id][door_spawn_pos][2]);
  1584.                 GetPlayerFacingAngle(playerid, Door[d_id][door_spawn_pos][3]);
  1585.                
  1586.                 mysql_query(mySQLconnection, sprintf("UPDATE `ipb_doors` SET `door_exitx` = %f, `door_exity` = %f, `door_exitz` = %f, `door_exita` = %f WHERE `door_uid` = %d", Door[d_id][door_spawn_pos][0], Door[d_id][door_spawn_pos][1], Door[d_id][door_spawn_pos][2], Door[d_id][door_spawn_pos][3], Door[d_id][door_uid]));            
  1587.                
  1588.                 new uid = Door[d_id][door_uid];
  1589.                 DeleteDoor(d_id, false);
  1590.                
  1591.                 new did = LoadDoor(sprintf("WHERE `door_uid` = %d", uid), true);
  1592.                
  1593.                 SendGuiInformation(playerid, ""guiopis"Powiadomienie", sprintf("Pozycja wewnetrznych drzwi została pomyślnie zmieniona [UID: %d, ID: %d].", Door[d_id][door_uid], did));
  1594.         }
  1595.         else if( !strcmp(sub_cmd, "objects") )
  1596.         {
  1597.                 new d_id, limit;
  1598.                 if( sscanf(param, "dd", d_id, limit) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /(ad)rzwi objects [id drzwi] [limit obiektów]");  
  1599.                 if( !Iter_Contains(Doors, d_id) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /(ad)rzwi objects [id drzwi] [limit obiektów]");
  1600.                 if( limit < 0 ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /(ad)rzwi objects [id drzwi] [limit obiektów]");
  1601.                
  1602.                 mysql_query(mySQLconnection, sprintf("UPDATE `ipb_doors` SET `door_objects` = %d WHERE `door_uid` = %d", limit, Door[d_id][door_uid]));
  1603.                        
  1604.                 Door[d_id][door_objects_limit] = limit;
  1605.                
  1606.                 SendGuiInformation(playerid, ""guiopis"Powiadomienie", sprintf("Pomyślnie Zmieniłeś limit obiektów drzwi [LIMIT: %d, UID: %d, ID: %d].", limit, Door[d_id][door_uid], d_id));      
  1607.         }
  1608.         else if( !strcmp(sub_cmd, "przeladuj") )
  1609.         {
  1610.                 Code_ExTimer_Begin(DoorsReload);
  1611.                 for(new d_id;d_id<MAX_DOORS;d_id++)
  1612.                 {
  1613.                         if( Iter_Contains(Doors, d_id) ) DeleteDoor(d_id, false);
  1614.                 }
  1615.                
  1616.                 new count = LoadDoor();
  1617.  
  1618.                 SendGuiInformation(playerid, ""guiopis"Powiadomienie", sprintf("Pomyślnie przeładowałeś wszystkie drzwi [ilość: %d, Czas: %d ms].", count, Code_ExTimer_End(DoorsReload)));      
  1619.         }
  1620.         else if( !strcmp(sub_cmd, "exitvw") )
  1621.         {
  1622.                 new d_id, vw;
  1623.                 if( sscanf(param, "dd", d_id, vw) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /(ad)rzwi exitvw [id drzwi] [vw]");   
  1624.                 if( !Iter_Contains(Doors, d_id) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /(ad)rzwi exitvw [id drzwi] [vw]");
  1625.                 if( vw < 0 ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /(ad)rzwi exitvw [id drzwi] [vw]");
  1626.                
  1627.                 mysql_query(mySQLconnection, sprintf("UPDATE `ipb_doors` SET `door_exitvw` = %d WHERE `door_uid` = %d", vw, Door[d_id][door_uid]));
  1628.                
  1629.                 new uid = Door[d_id][door_uid];
  1630.                 DeleteDoor(d_id, false);
  1631.                
  1632.                 new did = LoadDoor(sprintf("WHERE `door_uid` = %d", uid), true);
  1633.                
  1634.                 SendGuiInformation(playerid, ""guiopis"Powiadomienie", sprintf("Pomyślnie Zmieniłeś wewnetrzny virtual world drzwi [EXITVW: %d, UID: %d, ID: %d]", vw, Door[did][door_uid], did));
  1635.         }
  1636.         else return SendClientMessage(playerid, COLOR_GREY, "Tip: /(ad)rzwi [stworz/usun/pickup/mapicon/goto/przypisz/interior/wejscie/exitvw/objects/przeladuj]");
  1637.         return 1;
  1638. }
  1639.  
  1640. COMMAND:strefa(playerid, params[])
  1641. {      
  1642.         new sub_cmd[40], param[150];
  1643.         if( sscanf(params, "s[40] S()[150]", sub_cmd, param) )
  1644.         {
  1645.                 if( !HasCrewFlag(playerid, CREW_FLAG_AREAS) )
  1646.                 {
  1647.                         SendClientMessage(playerid, COLOR_GREY, "Tip: /strefa [audio]");
  1648.                 }
  1649.                 else
  1650.                 {
  1651.                         SendClientMessage(playerid, COLOR_GREY, "Tip: /strefa [stworz/usun/przypisz/podglad/obiekty/flagi/goto]");
  1652.                 }
  1653.                 return 1;
  1654.         }
  1655.        
  1656.         if( !strcmp(sub_cmd, "stworz") )
  1657.         {
  1658.                 if( !HasCrewFlag(playerid, CREW_FLAG_AREAS) ) return SendGuiInformation(playerid, "Informacja", "Brak uprawnień do użycia tej komendy.");
  1659.                 if( pInfo[playerid][player_lookup_area] ) return SendClientMessage(playerid, COLOR_GREY, "Aktualnie podglądasz jakąś strefę, musisz najpierw wylączyć te opcje.");
  1660.                 if( pInfo[playerid][player_creating_area] )
  1661.                 {
  1662.                         if( pInfo[playerid][player_carea_type] == AREA_SHAPE_SQUARE )
  1663.                         {
  1664.                                 if( pInfo[playerid][player_carea_point2][0] == 0.0 && pInfo[playerid][player_carea_point2][1] == 0.0 && pInfo[playerid][player_carea_point2][2] == 0.0 ) return ShowPlayerDialog(playerid, DIALOG_INFO, DIALOG_STYLE_MSGBOX, "Informacja", "Aby stworzyć prostokątną strefę musisz wyznaczyć jej dwa punkty tworzące przekątną.", "OK", "");   
  1665.                        
  1666.                                 new str[400];
  1667.                                 strcat(str, "INSERT INTO `ipb_areas` (area_uid, area_shape, area_type, area_ownertype, area_owner, area_objects, area_vw, area_size, area_point1, area_point2) ");
  1668.                                 strcat(str, sprintf("VALUES(null, %d, %d, %d, 0, 0, %d, 0.0, '%f|%f|%f', '%f|%f|%f')", AREA_SHAPE_SQUARE, AREA_TYPE_NORMAL, AREA_OWNER_TYPE_GLOBAL, GetPlayerVirtualWorld(playerid), pInfo[playerid][player_carea_point1][0], pInfo[playerid][player_carea_point1][1], pInfo[playerid][player_carea_point1][2], pInfo[playerid][player_carea_point2][0], pInfo[playerid][player_carea_point2][1], pInfo[playerid][player_carea_point2][2]));
  1669.                                 mysql_query(mySQLconnection, str);
  1670.                                
  1671.                                 new uid = cache_insert_id();
  1672.                                 new a_id = LoadArea(sprintf("WHERE `area_uid` = %d", uid), true);
  1673.                                
  1674.                                 pInfo[playerid][player_carea_point1][0] = 0.0;
  1675.                                 pInfo[playerid][player_carea_point1][1] = 0.0;
  1676.                                 pInfo[playerid][player_carea_point1][2] = 0.0;
  1677.                                
  1678.                                 pInfo[playerid][player_carea_point2][0] = 0.0;
  1679.                                 pInfo[playerid][player_carea_point2][1] = 0.0;
  1680.                                 pInfo[playerid][player_carea_point2][2] = 0.0;
  1681.                                
  1682.                                 if( IsValidDynamic3DTextLabel(pInfo[playerid][player_carea_label][0]) ) DestroyDynamic3DTextLabel(pInfo[playerid][player_carea_label][0]);
  1683.                                 if( IsValidDynamic3DTextLabel(pInfo[playerid][player_carea_label][1]) ) DestroyDynamic3DTextLabel(pInfo[playerid][player_carea_label][1]);
  1684.                                
  1685.                                 GangZoneDestroy(pInfo[playerid][player_carea_zone]);
  1686.                                
  1687.                                 pInfo[playerid][player_creating_area] = false;
  1688.                                 SendPlayerInformation(playerid, "", 0);
  1689.                                
  1690.                                 ShowPlayerDialog(playerid, DIALOG_INFO, DIALOG_STYLE_MSGBOX, "Informacja", sprintf("Pomyślnie stworzyłeś prostokątną strefę [UID: %d, ID: %d].", uid, a_id), "OK", "");
  1691.                         }
  1692.                         else if( pInfo[playerid][player_carea_type] == AREA_SHAPE_CIRCLE )
  1693.                         {
  1694.                                 if( pInfo[playerid][player_carea_point1][0] == 0.0 && pInfo[playerid][player_carea_point1][1] == 0.0 && pInfo[playerid][player_carea_point1][2] == 0.0 ) return ShowPlayerDialog(playerid, DIALOG_INFO, DIALOG_STYLE_MSGBOX, "Informacja", "Aby stworzyæ sferycznÂą strefę musisz wyznaczyæ punkt srodka sfery.", "OK", "");  
  1695.                        
  1696.                                 new str[400];
  1697.                                 strcat(str, "INSERT INTO `ipb_areas` (area_uid, area_shape, area_type, area_ownertype, area_owner, area_objects, area_vw, area_size, area_point1, area_point2) ");
  1698.                                 strcat(str, sprintf("VALUES(null, %d, %d, %d, 0, 0, %d, %f, '%f|%f|%f', '')", AREA_SHAPE_CIRCLE, AREA_TYPE_NORMAL, AREA_OWNER_TYPE_GLOBAL, GetPlayerVirtualWorld(playerid), pInfo[playerid][player_carea_size], pInfo[playerid][player_carea_point1][0], pInfo[playerid][player_carea_point1][1], pInfo[playerid][player_carea_point1][2]));
  1699.                                 mysql_query(mySQLconnection, str);
  1700.                        
  1701.                                 new uid = cache_insert_id();
  1702.                                 new a_id = LoadArea(sprintf("WHERE `area_uid` = %d", uid), true);
  1703.                                
  1704.                                 pInfo[playerid][player_carea_point1][0] = 0.0;
  1705.                                 pInfo[playerid][player_carea_point1][1] = 0.0;
  1706.                                 pInfo[playerid][player_carea_point1][2] = 0.0;
  1707.                                
  1708.                                 pInfo[playerid][player_carea_point2][0] = 0.0;
  1709.                                 pInfo[playerid][player_carea_point2][1] = 0.0;
  1710.                                 pInfo[playerid][player_carea_point2][2] = 0.0;
  1711.                                
  1712.                                 if( IsValidDynamic3DTextLabel(pInfo[playerid][player_carea_label][0]) ) DestroyDynamic3DTextLabel(pInfo[playerid][player_carea_label][0]);
  1713.                                 if( IsValidDynamic3DTextLabel(pInfo[playerid][player_carea_label][1]) ) DestroyDynamic3DTextLabel(pInfo[playerid][player_carea_label][1]);
  1714.                                
  1715.                                 GangZoneDestroy(pInfo[playerid][player_carea_zone]);
  1716.                                
  1717.                                 pInfo[playerid][player_creating_area] = false;
  1718.                                 SendPlayerInformation(playerid, "", 0);
  1719.                                
  1720.                                 ShowPlayerDialog(playerid, DIALOG_INFO, DIALOG_STYLE_MSGBOX, "Informacja", sprintf("Pomyślnie stworzyłeś sferyczna strefę [UID: %d, ID: %d].", uid, a_id), "OK", "");
  1721.                         }
  1722.                        
  1723.                        
  1724.                         return 1;
  1725.                 }
  1726.                
  1727.                 new type[32], Float:size;
  1728.                 if( sscanf(param, "s[32]F(0.0)", type, size) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /strefa stworz [sfera/prostokat]");
  1729.                
  1730.                 if( !strcmp(type, "sfera") )
  1731.                 {
  1732.                         if( size == 0.0 ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /strefa stworz sfera [wielkosc]");
  1733.                        
  1734.                         pInfo[playerid][player_carea_size] = size;
  1735.                         pInfo[playerid][player_carea_type] = AREA_SHAPE_CIRCLE;
  1736.                         pInfo[playerid][player_creating_area] = true;
  1737.                         SendPlayerInformation(playerid, "Aby dodac punkt strefy wcisnij ~r~RMB~w~ lub ~r~LMB ~w~aby usunac ostatnio dodany punkt. ~n~Aby anulowac tworzenie strefy wcisnij ~g~LALT + SPACE~w~.~n~~n~~y~Aby stworzyc strefę uzyj ponownie /strefa stworz.", 30000);
  1738.                 }
  1739.                 else if( !strcmp(type, "prostokat") )
  1740.                 {
  1741.                         pInfo[playerid][player_carea_type] = AREA_SHAPE_SQUARE;
  1742.                         pInfo[playerid][player_creating_area] = true;
  1743.                         SendPlayerInformation(playerid, "Aby dodac punkt strefy wcisnij ~r~RMB~w~ lub ~r~LMB ~w~aby usunac ostatnio dodany punkt. ~n~Aby anulowac tworzenie strefy wcisnij ~g~LALT + SPACE~w~.~n~~n~~y~Aby stworzyc strefę uzyj /strefa stworz.", 30000);
  1744.                 }
  1745.                 else return SendClientMessage(playerid, COLOR_GREY, "Tip: /strefa stworz [sfera/prostokat]");
  1746.         }
  1747.         else if( !strcmp(sub_cmd, "audio") )
  1748.         {
  1749.                 new audio_stream[100], a_id;
  1750.                 if( sscanf(param, "s[100]d", audio_stream, a_id) )
  1751.                 {
  1752.                         SendClientMessage(playerid, COLOR_GREY, "Tip: /strefa audio [id strefy] [link]");
  1753.                         SendClientMessage(playerid, COLOR_GREY, "Tip: Wpisz znak pauzy aby usunąć stream audio ze strefy.");
  1754.                         return 1;
  1755.                 }
  1756.                 if(!CanPlayerEditArea(playerid, a_id)) return SendGuiInformation(playerid, "Informacja", "Brak uprawnień do zarządzania tą strefą.");
  1757.                 sscanf(audio_stream, "s[100]", Area[a_id][area_audio]);
  1758.                 SendGuiInformation(playerid, "Informacja", "Strumień audio został pomyślnie ustawiony.");
  1759.         }
  1760.         else if( !strcmp(sub_cmd, "usun") )
  1761.         {
  1762.                 if( !HasCrewFlag(playerid, CREW_FLAG_AREAS) ) return SendGuiInformation(playerid, "Informacja", "Brak uprawnień do użycia tej komendy.");
  1763.                 new a_id;
  1764.                 if( sscanf(param, "d", a_id) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /strefa usun [id strefy]");
  1765.                 if( !Iter_Contains(Areas, a_id) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /strefa usun [id strefy]");
  1766.                 if( Area[a_id][area_type] != AREA_TYPE_NORMAL ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /strefa usun [id strefy]");
  1767.                
  1768.                 foreach(new p : Player)
  1769.                 {
  1770.                         if( IsPlayerInDynamicArea(playerid, a_id) )
  1771.                         {
  1772.                                 TextDrawHideForPlayer(playerid, AreaInfo[playerid]);
  1773.                         }
  1774.                 }
  1775.                
  1776.                 ShowPlayerDialog(playerid, DIALOG_INFO, DIALOG_STYLE_MSGBOX, "Informacja", sprintf("Pomyślnie usunąłeś strefę [UID: %d, ID: %d].", Area[a_id][area_uid], a_id), "OK", "");
  1777.                
  1778.                 DeleteArea(a_id);
  1779.         }
  1780.         else if( !strcmp(sub_cmd, "przypisz") )
  1781.         {
  1782.                 if( !HasCrewFlag(playerid, CREW_FLAG_AREAS) ) return SendGuiInformation(playerid, "Informacja", "Brak uprawnień do użycia tej komendy.");
  1783.                 new a_id, action[32], who;
  1784.                 if( sscanf(param, "ds[32]d", a_id, action, who) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /strefa przypisz [id strefy] [grupa/postac/globalna] [uid grupy/id gracza(nie uid)]");
  1785.                 if( !Iter_Contains(Areas, a_id) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /strefa przypisz [id strefy] [grupa/postac/globalna] [uid grupy/id gracza(nie uid)]");
  1786.                 if( Area[a_id][area_type] != AREA_TYPE_NORMAL ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /strefa przypisz [id strefy] [grupa/postac/globalna] [uid grupy/id gracza(nie uid)]");
  1787.                
  1788.                 if( !strcmp(action, "grupa") )
  1789.                 {
  1790.                         new gid = GetGroupByUid(who);
  1791.                         if( gid == -1 ) return SendClientMessage(playerid, COLOR_GREY, "Grupa o podanym uid nie istnieje.");
  1792.                        
  1793.                         mysql_query(mySQLconnection, sprintf("UPDATE `ipb_areas` SET `area_ownertype` = %d, `area_owner` = %d WHERE `area_uid` = %d", AREA_OWNER_TYPE_GROUP, who, Area[a_id][area_uid]));
  1794.                        
  1795.                         Area[a_id][area_owner_type] = AREA_OWNER_TYPE_GROUP;
  1796.                         Area[a_id][area_owner] = who;
  1797.                        
  1798.                         ShowPlayerDialog(playerid, DIALOG_INFO, DIALOG_STYLE_MSGBOX, "Informacja", sprintf("Pomyślnie zmieniłeś wlasciciela strefy [UID: %d, ID: %d] na grupe %s [UID: %d, ID: %d].", Area[a_id][area_uid], a_id, Group[gid][group_name], Group[gid][group_uid], gid), "OK", "");
  1799.                 }
  1800.                 else if( !strcmp(action, "postac") )
  1801.                 {
  1802.                         if( !IsPlayerConnected(who) ) return SendClientMessage(playerid, COLOR_GREY, "Gracz o podanym id nie jest podłączony.");
  1803.                        
  1804.                         mysql_query(mySQLconnection, sprintf("UPDATE `ipb_areas` SET `area_ownertype` = %d, `area_owner` = %d WHERE `area_uid` = %d", AREA_OWNER_TYPE_PLAYER, pInfo[who][player_id], Area[a_id][area_uid]));
  1805.                        
  1806.                         Area[a_id][area_owner_type] = AREA_OWNER_TYPE_PLAYER;
  1807.                         Area[a_id][area_owner] = pInfo[who][player_id];
  1808.                        
  1809.                         ShowPlayerDialog(playerid, DIALOG_INFO, DIALOG_STYLE_MSGBOX, "Informacja", sprintf("Pomyślnie zmieniłeś wlasciciela strefy [UID: %d, ID: %d] na gracza %s [UID: %d, ID: %d].", Area[a_id][area_uid], a_id, pInfo[who][player_name], pInfo[who][player_id], who), "OK", "");
  1810.                 }
  1811.                 else if( !strcmp(action, "globalne") )
  1812.                 {
  1813.                         mysql_query(mySQLconnection, sprintf("UPDATE `ipb_areas` SET `area_ownertype` = %d, `area_owner` = 0 WHERE `area_uid` = %d", AREA_OWNER_TYPE_GLOBAL, Area[a_id][area_uid]));
  1814.                        
  1815.                         Area[a_id][area_owner_type] = AREA_OWNER_TYPE_GLOBAL;
  1816.                         Area[a_id][area_owner] = 0;
  1817.                        
  1818.                         ShowPlayerDialog(playerid, DIALOG_INFO, DIALOG_STYLE_MSGBOX, "Informacja", sprintf("Pomyślnie zmieniłeś wlasciciela strefy [UID: %d, ID: %d] na globalnego.", Area[a_id][area_uid], a_id), "OK", "");
  1819.                 }
  1820.                 else return SendClientMessage(playerid, COLOR_GREY, "Tip: /strefa przypisz [id drzwi] [grupa/postac] [uid grupy/id gracza(nie uid)]"); 
  1821.         }
  1822.         else if( !strcmp(sub_cmd, "goto") )
  1823.         {
  1824.                 if( !HasCrewFlag(playerid, CREW_FLAG_AREAS) ) return SendGuiInformation(playerid, "Informacja", "Brak uprawnień do użycia tej komendy.");
  1825.                 new a_id;
  1826.                 if( sscanf(param, "d", a_id) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /strefa goto [id strefy]");
  1827.                 if( !Iter_Contains(Areas, a_id) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /strefa goto [id strefy]");
  1828.                 if( Area[a_id][area_type] != AREA_TYPE_NORMAL ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /strefa goto [id strefy]");
  1829.                 SetPlayerPos(playerid, Area[a_id][area_pos][0], Area[a_id][area_pos][1], Area[a_id][area_pos][2]);
  1830.         }
  1831.         else if( !strcmp(sub_cmd, "obiekty") )
  1832.         {
  1833.                 if( !HasCrewFlag(playerid, CREW_FLAG_AREAS) ) return SendGuiInformation(playerid, "Informacja", "Brak uprawnień do użycia tej komendy.");
  1834.                 new a_id, limit;
  1835.                 if( sscanf(param, "dd", a_id, limit) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /strefa obiekty [id strefy] [limit obiektów]");   
  1836.                 if( !Iter_Contains(Areas, a_id) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /strefa obiekty [id strefy] [limit obiektów]");
  1837.                 if( limit < 0 ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /strefa obiekty [id strefy] [limit obiektów]");  
  1838.                 if( Area[a_id][area_type] != AREA_TYPE_NORMAL ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /strefa obiekty [id strefy] [limit obiektów]");  
  1839.                
  1840.                 mysql_query(mySQLconnection, sprintf("UPDATE `ipb_areas` SET `area_objects` = %d WHERE `area_uid` = %d", limit, Area[a_id][area_uid]));
  1841.                        
  1842.                 Area[a_id][area_objects_limit] = limit;
  1843.                
  1844.                 ShowPlayerDialog(playerid, DIALOG_INFO, DIALOG_STYLE_MSGBOX, "Informacja", sprintf("Pomyślnie zmieniłeś limit obiektów strefy [LIMIT: %d, UID: %d, ID: %d].", limit, Area[a_id][area_uid], a_id), "OK", "");       
  1845.         }
  1846.         else if( !strcmp(sub_cmd, "flagi") )
  1847.         {
  1848.                 if( !HasCrewFlag(playerid, CREW_FLAG_AREAS) ) return SendGuiInformation(playerid, "Informacja", "Brak uprawnień do użycia tej komendy.");
  1849.                 new a_id;
  1850.                 if( sscanf(param, "d", a_id) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /strefa flagi [id strefy]");
  1851.                
  1852.                 if( !Iter_Contains(Areas, a_id) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /strefa flagi [id strefy]");
  1853.                
  1854.                 DynamicGui_Init(playerid);
  1855.                 DynamicGui_SetDialogValue(playerid, a_id);
  1856.                 new str[700];
  1857.                
  1858.                 format(str, sizeof(str), "%s%s01\tZbyt narkotykow\n", str, ((AreaHasFlag(a_id, AREA_FLAG_CORNER)) ? (HEX_COLOR_LIGHTER_GREEN) : (HEX_COLOR_LIGHTER_RED)));
  1859.                 DynamicGui_AddRow(playerid, AREA_FLAG_CORNER);
  1860.                
  1861.                 format(str, sizeof(str), "%s%s02\tBMX\n", str, ((AreaHasFlag(a_id, AREA_FLAG_BMX)) ? (HEX_COLOR_LIGHTER_GREEN) : (HEX_COLOR_LIGHTER_RED)));
  1862.                 DynamicGui_AddRow(playerid, AREA_FLAG_BMX);
  1863.                
  1864.                 format(str, sizeof(str), "%s%s03\tMonitoring\n", str, ((AreaHasFlag(a_id, AREA_FLAG_MONITORING)) ? (HEX_COLOR_LIGHTER_GREEN) : (HEX_COLOR_LIGHTER_RED)));
  1865.                 DynamicGui_AddRow(playerid, AREA_FLAG_MONITORING);
  1866.  
  1867.                 format(str, sizeof(str), "%s%s04\tDrive-thru\n", str, ((AreaHasFlag(a_id, AREA_FLAG_DRIVE)) ? (HEX_COLOR_LIGHTER_GREEN) : (HEX_COLOR_LIGHTER_RED)));
  1868.                 DynamicGui_AddRow(playerid, AREA_FLAG_DRIVE);
  1869.  
  1870.                 format(str, sizeof(str), "%s%s05\tSadzenie roślin\n", str, ((AreaHasFlag(a_id, AREA_FLAG_PLANT)) ? (HEX_COLOR_LIGHTER_GREEN) : (HEX_COLOR_LIGHTER_RED)));
  1871.                 DynamicGui_AddRow(playerid, AREA_FLAG_PLANT);
  1872.  
  1873.                 format(str, sizeof(str), "%s%s06\tOgraniczenie parkowania\n", str, ((AreaHasFlag(a_id, AREA_FLAG_PARKING)) ? (HEX_COLOR_LIGHTER_GREEN) : (HEX_COLOR_LIGHTER_RED)));
  1874.                 DynamicGui_AddRow(playerid, AREA_FLAG_PARKING);
  1875.  
  1876.                 format(str, sizeof(str), "%s%s07\tOferowanie produktów\n", str, ((AreaHasFlag(a_id, AREA_FLAG_OFFER)) ? (HEX_COLOR_LIGHTER_GREEN) : (HEX_COLOR_LIGHTER_RED)));
  1877.                 DynamicGui_AddRow(playerid, AREA_FLAG_OFFER);
  1878.  
  1879.                 format(str, sizeof(str), "%s%s08\tSerwis pojazdów\n", str, ((AreaHasFlag(a_id, AREA_FLAG_SERWIS)) ? (HEX_COLOR_LIGHTER_GREEN) : (HEX_COLOR_LIGHTER_RED)));
  1880.                 DynamicGui_AddRow(playerid, AREA_FLAG_SERWIS);
  1881.  
  1882.                 format(str, sizeof(str), "%s%s09\tPraca drwala\n", str, ((AreaHasFlag(a_id, AREA_FLAG_WORK)) ? (HEX_COLOR_LIGHTER_GREEN) : (HEX_COLOR_LIGHTER_RED)));
  1883.                 DynamicGui_AddRow(playerid, AREA_FLAG_WORK);
  1884.  
  1885.                 format(str, sizeof(str), "%s%s10\tPraca rybaka\n", str, ((AreaHasFlag(a_id, AREA_FLAG_WORK_FISH)) ? (HEX_COLOR_LIGHTER_GREEN) : (HEX_COLOR_LIGHTER_RED)));
  1886.                 DynamicGui_AddRow(playerid, AREA_FLAG_WORK_FISH);
  1887.  
  1888.                 format(str, sizeof(str), "%s%s11\tAnty Jobcar\n", str, ((AreaHasFlag(a_id, AREA_FLAG_LS)) ? (HEX_COLOR_LIGHTER_GREEN) : (HEX_COLOR_LIGHTER_RED)));
  1889.                 DynamicGui_AddRow(playerid, AREA_FLAG_LS);
  1890.  
  1891.                 format(str, sizeof(str), "%s%s12\tGra w golfa\n", str, ((AreaHasFlag(a_id, AREA_FLAG_GOLF)) ? (HEX_COLOR_LIGHTER_GREEN) : (HEX_COLOR_LIGHTER_RED)));
  1892.                 DynamicGui_AddRow(playerid, AREA_FLAG_GOLF);
  1893.  
  1894.                 format(str, sizeof(str), "%s%s13\tZłomowanie pojazdu\n", str, ((AreaHasFlag(a_id, AREA_FLAG_ZLOM)) ? (HEX_COLOR_LIGHTER_GREEN) : (HEX_COLOR_LIGHTER_RED)));
  1895.                 DynamicGui_AddRow(playerid, AREA_FLAG_ZLOM);
  1896.                
  1897.                 ShowPlayerDialog(playerid, DIALOG_AREA_FLAGS, DIALOG_STYLE_LIST, sprintf("Flagi strefy [UID: %d, ID: %d]", Area[a_id][area_uid], a_id), str, "Wybierz", "Zamknij");
  1898.         }
  1899.         else if( !strcmp(sub_cmd, "wyczysc") )
  1900.         {
  1901.                 if( !HasCrewFlag(playerid, CREW_FLAG_AREAS) ) return SendGuiInformation(playerid, "Informacja", "Brak uprawnień do użycia tej komendy.");
  1902.                 new a_id, object_count;
  1903.                 if( sscanf(param, "d", a_id) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /strefa wyczysc [id strefy]");     
  1904.                 if( !Iter_Contains(Areas, a_id) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /strefa wyczysc [id strefy]");
  1905.                 if( Area[a_id][area_type] != AREA_TYPE_NORMAL ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /strefa wyczysc [id strefy]");
  1906.                
  1907.                 foreach(new o_id : Objects)
  1908.                 {
  1909.                         if( Object[o_id][object_owner_type] != OBJECT_OWNER_TYPE_AREA ) continue;
  1910.                         if( Object[o_id][object_owner] == Area[a_id][area_uid] )
  1911.                         {
  1912.                                 mysql_query(mySQLconnection, sprintf("DELETE FROM `ipb_objects` WHERE `object_uid` = %d", Object[o_id][object_uid]));
  1913.  
  1914.                                 DestroyDynamicObject(o_id);
  1915.  
  1916.                                 for(new z=0; e_objects:z != e_objects; z++)
  1917.                                 {
  1918.                                         Object[o_id][e_objects:z] = 0;
  1919.                             }
  1920.                             object_count++;
  1921.                            
  1922.                             new next;
  1923.                             Iter_SafeRemove(Objects, o_id, next);
  1924.                             o_id = next;
  1925.                         }
  1926.                 }
  1927.                 ShowPlayerDialog(playerid, DIALOG_INFO, DIALOG_STYLE_MSGBOX, "Informacja", sprintf("Pomyślnie wyczyściłeś strefę z %d obiektów. [UID: %d, ID: %d].", object_count, Area[a_id][area_uid], a_id), "OK", "");
  1928.         }
  1929.         else if( !strcmp(sub_cmd, "podglad") )
  1930.         {
  1931.                 if( !HasCrewFlag(playerid, CREW_FLAG_AREAS) ) return SendGuiInformation(playerid, "Informacja", "Brak uprawnień do użycia tej komendy.");
  1932.                 if( pInfo[playerid][player_lookup_area] )
  1933.                 {
  1934.                         pInfo[playerid][player_lookup_area] = false;
  1935.                         GangZoneDestroy(pInfo[playerid][player_carea_zone]);
  1936.                        
  1937.                         if( IsValidDynamic3DTextLabel(pInfo[playerid][player_carea_label][0]) ) DestroyDynamic3DTextLabel(pInfo[playerid][player_carea_label][0]);
  1938.                         if( IsValidDynamic3DTextLabel(pInfo[playerid][player_carea_label][1]) ) DestroyDynamic3DTextLabel(pInfo[playerid][player_carea_label][1]);
  1939.                        
  1940.                         TextDrawHideForPlayer(playerid, Dashboard[playerid]);
  1941.                 }
  1942.                 else
  1943.                 {
  1944.                         new a_id;
  1945.                         if( sscanf(param, "d", a_id) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /strefa podglad [id strefy]");     
  1946.                         if( !Iter_Contains(Areas, a_id) ) return SendClientMessage(playerid, COLOR_GREY, "Strefa o podanym id nie istnieje.");
  1947.                         if( pInfo[playerid][player_creating_area] ) return SendClientMessage(playerid, COLOR_GREY, "Nie możesz korzystać z podglądu strefy w trybie tworzenia strefy.");
  1948.                         if( Area[a_id][area_type] != AREA_TYPE_NORMAL ) return SendClientMessage(playerid, COLOR_GREY, "Nie możesz edytować strefy tego typu.");
  1949.                        
  1950.                         pInfo[playerid][player_lookup_area] = true;
  1951.                         new string[140];
  1952.                
  1953.                         new owner_str[80];
  1954.                         switch( Area[a_id][area_owner_type] )
  1955.                         {
  1956.                                 case AREA_OWNER_TYPE_GLOBAL:
  1957.                                 {
  1958.                                         format(owner_str, sizeof(owner_str), "globalne; brak");
  1959.                                 }
  1960.                                
  1961.                                 case AREA_OWNER_TYPE_PLAYER:
  1962.                                 {                      
  1963.                                         new name[MAX_PLAYER_NAME+1];
  1964.                                         GetPlayerNameByUid(Area[a_id][area_owner], name);
  1965.                                        
  1966.                                         format(owner_str, sizeof(owner_str), "prywatne; %s", name);
  1967.                                 }
  1968.                                
  1969.                                 case AREA_OWNER_TYPE_GROUP:
  1970.                                 {                      
  1971.                                         new gid = GetGroupByUid(Area[a_id][area_owner]);
  1972.                                         format(owner_str, sizeof(owner_str), "grupowe; %s", Group[gid][group_name]);
  1973.                                 }
  1974.                         }
  1975.                        
  1976.                         format(string, sizeof(string), "%d. Strefa (SampID: %d)~n~~n~~p~Owner: ~w~%d:%d (%s)    ~w~Obiektow: %d/%d", Area[a_id][area_uid], a_id, Area[a_id][area_owner_type], Area[a_id][area_owner], owner_str, CountAreaObjects(a_id), Area[a_id][area_objects_limit]);
  1977.                                
  1978.                         TextDrawSetString(Dashboard[playerid], string);
  1979.                         TextDrawShowForPlayer(playerid, Dashboard[playerid]);
  1980.                        
  1981.                         new rows, fields;
  1982.                         new Float:point1[3], Float:point2[3], shape;
  1983.                         mysql_query(mySQLconnection, sprintf("SELECT area_shape, area_point1, area_point2 FROM `ipb_areas` WHERE `area_uid` = %d", Area[a_id][area_uid]));
  1984.                         cache_get_data(rows, fields);
  1985.                        
  1986.                         new str[100];
  1987.                         cache_get_row(0, 1, str);
  1988.                         sscanf(str, "p<|>a<f>[3]", point1);
  1989.                        
  1990.                         new str2[100];
  1991.                         cache_get_row(0, 2, str2);
  1992.                         sscanf(str2, "p<|>a<f>[3]", point2);
  1993.                        
  1994.                         shape = cache_get_row_int(0, 0);
  1995.                        
  1996.                         if( shape == AREA_SHAPE_SQUARE  )
  1997.                         {
  1998.                                 pInfo[playerid][player_carea_zone] = GangZoneCreate(Min(point1[0], point2[0]), Min(point1[1], point2[1]), Max(point1[0], point2[0]), Max(point1[1], point2[1]));
  1999.                                 GangZoneShowForPlayer(playerid, pInfo[playerid][player_carea_zone], 0xFF3C3C80);
  2000.  
  2001.                                 pInfo[playerid][player_carea_label][0] = CreateDynamic3DTextLabel(sprintf("Punkt pierwszy\n(%f, %f, %f)", point1[0], point1[1], point1[2]), COLOR_LIGHTER_RED, point1[0], point1[1], point1[2], 50.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, -1, -1, playerid);
  2002.                                 pInfo[playerid][player_carea_label][1] = CreateDynamic3DTextLabel(sprintf("Punkt drugi\n(%f, %f, %f)", point2[0], point2[1], point2[2]), COLOR_LIGHTER_RED, point2[0], point2[1], point2[2], 50.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, -1, -1, playerid);
  2003.                         }
  2004.                         else if( shape == AREA_SHAPE_CIRCLE )
  2005.                         {
  2006.                                 pInfo[playerid][player_carea_label][0] = CreateDynamic3DTextLabel(sprintf("Punkt pierwszy\n(%f, %f, %f)", point1[0], point1[1], point1[2]), COLOR_LIGHTER_RED, point1[0], point1[1], point1[2], 50.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, -1, -1, playerid);
  2007.                         }
  2008.                 }
  2009.         }
  2010.         else return SendClientMessage(playerid, COLOR_GREY, "Tip: /strefa [stworz/usun/przypisz/podglad/obiekty/flagi]");
  2011.         return 1;
  2012. }
  2013.  
  2014. COMMAND:bw(playerid, params[])
  2015. {
  2016.         if( !HasCrewFlag(playerid, CREW_FLAG_GM) && !HasCrewFlag(playerid, CREW_FLAG_ADMIN) && !HasCrewFlag(playerid, CREW_FLAG_ADMIN_ROOT) ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Nie masz uprawnień do korzystania z tej komendy.");
  2017.        
  2018.         new time, targetid;
  2019.         if( sscanf(params, "ud", targetid, time) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /bw [id gracza/czesc nicku] [czas]");
  2020.         if( time < 0 ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /bw [id gracza] [czas]");
  2021.         if( !IsPlayerConnected(targetid) ) return SendClientMessage(playerid, COLOR_GREY, "Gracz o podanym id nie jest podłączony.");
  2022.         if( !pInfo[targetid][player_logged] ) return SendClientMessage(playerid, COLOR_GREY, "Gracz o podanym id nie jest zalogowany.");
  2023.                
  2024.         if( time == 0 && pInfo[targetid][player_bw] > 0 )
  2025.         {
  2026.                 ShowPlayerDialog(playerid, DIALOG_INFO, DIALOG_STYLE_MSGBOX, "Informacja", sprintf("Nadałeś graczowi %s [UID: %d, ID: %d] bw na czas: %d minut.", pInfo[targetid][player_name], pInfo[targetid][player_id], targetid, time), "OK", "");
  2027.                 // koniec bw
  2028.                 pInfo[targetid][player_bw] = 0;
  2029.                 pInfo[targetid][player_bw_end_time] = 0;
  2030.                 mysql_query(mySQLconnection, sprintf("UPDATE `ipb_characters` SET `char_bw` = 0 WHERE `char_uid` = %d", pInfo[targetid][player_id]));
  2031.                
  2032.                 RemovePlayerStatus(targetid, PLAYER_STATUS_BW);
  2033.                 SetPlayerHealth(targetid, 20);
  2034.                 TogglePlayerControllable(targetid, 1);
  2035.                 SetCameraBehindPlayer(targetid);
  2036.                 ClearAnimations(targetid);
  2037.                 new skin = GetPlayerSkin(playerid);
  2038.                 SetPlayerSkin(playerid, skin);
  2039.                 SetPlayerSpecialAction(targetid, SPECIAL_ACTION_NONE);
  2040.                 SetPlayerChatBubble(playerid, "", -1, 7.0, 5);
  2041.                 return 1;
  2042.         }
  2043.         else if( time == 0 )
  2044.         {
  2045.                 return SendClientMessage(playerid, COLOR_GREY, "Gracz o podanym id nie ma bw, więc nie możesz mu go zdjąć.");
  2046.         }
  2047.  
  2048.         ShowPlayerDialog(playerid, DIALOG_INFO, DIALOG_STYLE_MSGBOX, "Informacja", sprintf("Nadałeś graczowi %s [UID: %d, ID: %d] bw na czas: %d minut.", pInfo[targetid][player_name], pInfo[targetid][player_id], targetid, time), "OK", "");
  2049.  
  2050.         new
  2051.                 Float:x,
  2052.                 Float:y,
  2053.                 Float:z,
  2054.                 Float:a;
  2055.         GetPlayerPos(targetid, x, y, z);
  2056.         GetPlayerFacingAngle(targetid, a);
  2057.  
  2058.  
  2059.         pInfo[targetid][player_bw] = 60 * time;
  2060.         pInfo[targetid][player_bw_end_time] = pInfo[targetid][player_bw] + gettime();
  2061.                
  2062.        
  2063.         RP_PLUS_SetPlayerPos(targetid, x, y, z);
  2064.         SetPlayerFacingAngle(targetid, a);
  2065.  
  2066.         mysql_query(mySQLconnection, sprintf("UPDATE `ipb_characters` SET `char_bw`=%d, `char_posx`='%f', `char_posy`='%f', `char_posz`='%f', `char_posa`='%f', `char_world`=%d, `char_interior`=%d WHERE `char_uid`=%d", pInfo[targetid][player_bw], x, y, z, a, GetPlayerVirtualWorld(targetid), GetPlayerInterior(targetid), pInfo[targetid][player_id]));
  2067.        
  2068.         pInfo[targetid][player_quit_pos][0] = x;
  2069.         pInfo[targetid][player_quit_pos][1] = y;
  2070.         pInfo[targetid][player_quit_pos][2] = z;
  2071.         pInfo[targetid][player_quit_pos][3] = a;
  2072.         pInfo[targetid][player_quit_vw] = GetPlayerVirtualWorld(targetid);
  2073.         pInfo[targetid][player_quit_int] = GetPlayerInterior(targetid);
  2074.  
  2075.         defer ApplyAnim[2000](targetid, ANIM_TYPE_BW);
  2076.        
  2077.         scrp_SpawnPlayer(targetid);
  2078.         return 1;
  2079. }
  2080.  
  2081. COMMAND:setvw(playerid, params[])
  2082. {
  2083.         if( !HasCrewFlag(playerid, CREW_FLAG_GM) && !HasCrewFlag(playerid, CREW_FLAG_ADMIN) && !HasCrewFlag(playerid, CREW_FLAG_ADMIN_ROOT) ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Nie masz uprawnień do korzystania z tej komendy.");
  2084.        
  2085.         new targetid, vw;
  2086.         if( sscanf(params, "ud", targetid, vw) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /setvw [id gracza/czesc nicku] [vw]");
  2087.         if( vw < 0 ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /setvw [id gracza/czesc nicku] [vw]");
  2088.         if( !IsPlayerConnected(targetid) ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Gracz o podanym id nie jest podłączony.");
  2089.         if( !pInfo[targetid][player_logged] ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Gracz o podanym id nie jest zalogowany.");
  2090.        
  2091.         SetPlayerVirtualWorld(targetid, vw);
  2092.        
  2093.         SendGuiInformation(playerid, ""guiopis"Powiadomienie", sprintf("Zmieniłeś vw graczowi %s na %d.", pInfo[targetid][player_name], vw));
  2094.        
  2095.         return 1;
  2096. }
  2097.  
  2098. COMMAND:setint(playerid, params[])
  2099. {
  2100.         if( !HasCrewFlag(playerid, CREW_FLAG_GM) && !HasCrewFlag(playerid, CREW_FLAG_ADMIN) && !HasCrewFlag(playerid, CREW_FLAG_ADMIN_ROOT) ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Nie masz uprawnień do korzystania z tej komendy.");
  2101.        
  2102.         new targetid, vw;
  2103.         if( sscanf(params, "dd", targetid, vw) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /setint [id gracza] [interior world]");
  2104.         if( vw < 0 ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /setint[id gracza] [vw]");
  2105.         if( !IsPlayerConnected(targetid) ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Gracz o podanym id nie jest podlaczony.");
  2106.         if( !pInfo[targetid][player_logged] ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Gracz o podanym id nie jest zalogowany.");
  2107.        
  2108.         SetPlayerInterior(targetid, vw);
  2109.        
  2110.        
  2111.         return 1;
  2112. }
  2113.  
  2114. COMMAND:ag(playerid, params[])
  2115. {
  2116.         return cmd_agrupa(playerid, params);
  2117. }
  2118.  
  2119. COMMAND:agrupa(playerid, params[])
  2120. {
  2121.         if( !HasCrewFlag(playerid, CREW_FLAG_GROUPS) ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Nie masz uprawnień do korzystania z tej komendy.");
  2122.        
  2123.         new sub_cmd[40], param[150];
  2124.         if( sscanf(params, "s[40] S()[150]", sub_cmd, param) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /(ag)rupa [stworz/usun/flagi/nazwa/lider/info/typ/wypros/zapros]");
  2125.        
  2126.         if( !strcmp(sub_cmd, "stworz") )
  2127.         {
  2128.                 new name[50];
  2129.                 if( sscanf(param, "s[50]", name) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /(ag)rupa stworz [nazwa]");
  2130.                
  2131.                 mysql_real_escape_string(name, name);
  2132.                 mysql_query(mySQLconnection, sprintf("INSERT INTO `ipb_game_groups` (group_uid, group_name, group_tag) VALUES (null, '%s', 'TAG')", name));
  2133.                
  2134.                 if( cache_insert_id() )
  2135.                 {
  2136.                         new gid = Iter_Free(Groups);
  2137.                         Iter_Add(Groups, gid);
  2138.                        
  2139.                         Group[gid][group_uid] = cache_insert_id();
  2140.                         Group[gid][group_bank_money] = 0;
  2141.                        
  2142.                         strcopy(Group[gid][group_name], name);
  2143.                        
  2144.                         ShowPlayerDialog(playerid, DIALOG_INFO, DIALOG_STYLE_MSGBOX, "Informacja", sprintf("Stworzyłeś grupe %s (UID: %d, ID: %d).", Group[gid][group_name], Group[gid][group_uid], gid), "OK", "");
  2145.                 }
  2146.         }
  2147.         else if( !strcmp(sub_cmd, "kolor") )
  2148.         {
  2149.                 new color[16], uid;
  2150.                 if( sscanf(param, "ds[16]", uid,  color) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /ag kolor [uid grupy] [HEX]");
  2151.                 if(!ishex(color))  return SendClientMessage(playerid, COLOR_GREY, "Tip: /lider kolor [HEX]");
  2152.                
  2153.                 format(color, sizeof(color), "0x%sDD", color);
  2154.                 mysql_query(mySQLconnection, sprintf("UPDATE `ipb_game_groups` SET `group_color` = '%d' WHERE `group_uid` = %d", hexstring(color), uid));
  2155.                 SendGuiInformation(playerid, "Informacja", "Kolor grupy został zmieniony.");
  2156.         }
  2157.         else if( !strcmp(sub_cmd, "usun") )
  2158.         {
  2159.                 new g_uid;
  2160.                 if( sscanf(param, "d", g_uid) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /(ag)rupa usun [uid grupy]");
  2161.                 new gid = GetGroupByUid(g_uid);
  2162.                 if( gid == -1 ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Grupa o podanym id nie istnieje");
  2163.                
  2164.                 foreach(new d_id : Doors)
  2165.                 {
  2166.                         if( Door[d_id][door_owner_type] == DOOR_OWNER_TYPE_GROUP && Door[d_id][door_owner] == Group[gid][group_uid] ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Nie możesz usunąć grupy, która posiada przypisane drzwi.");
  2167.                 }
  2168.                
  2169.                 foreach(new a_id : Areas)
  2170.                 {
  2171.                         if( Area[a_id][area_owner_type] == AREA_OWNER_TYPE_GROUP && Area[a_id][area_owner] == Group[gid][group_uid] ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Nie możesz usunąć grupy, która posiada przypisaną strefę.");
  2172.                 }
  2173.                
  2174.                 foreach(new v_id: Vehicles)
  2175.                 {
  2176.                         if( Vehicle[v_id][vehicle_owner_type] == VEHICLE_OWNER_TYPE_GROUP && Vehicle[v_id][vehicle_owner] == Group[gid][group_uid] )
  2177.                         {
  2178.                                 mysql_query(mySQLconnection, sprintf("DELETE FROM `ipb_vehicles` WHERE `vehicle_uid` = %d", Vehicle[v_id][vehicle_uid]));
  2179.                                 DestroyDynamic3DTextLabel(Vehicle[v_id][vehicle_state_label]);
  2180.                                 DestroyDynamic3DTextLabel(Vehicle[v_id][vehicle_description]);
  2181.                                 DestroyDynamic3DTextLabel(Vehicle[v_id][vehicle_sign]);
  2182.  
  2183.                                 if(Vehicle[v_id][vehicle_siren] == true)
  2184.                                 {
  2185.                                         DestroyDynamicObject(Vehicle[v_id][vehicle_siren_object]);
  2186.                                         Vehicle[v_id][vehicle_siren] = false;
  2187.                                 }
  2188.  
  2189.                                 for(new z=0; e_vehicles:z != e_vehicles; z++)
  2190.                                 {
  2191.                                         Vehicle[v_id][e_vehicles:z] = 0;
  2192.                                 }
  2193.  
  2194.                                 DestroyVehicle(v_id);
  2195.  
  2196.                                 new next;
  2197.                             Iter_SafeRemove(Vehicles, v_id, next);
  2198.                             v_id = next;
  2199.                         }
  2200.                 }
  2201.  
  2202.                 SendGuiInformation(playerid, ""guiopis"Powiadomienie", sprintf("Usunąłeś grupe %s [UID: %d, ID: %d] razem ze wszystkimi jej pojazdami.", Group[gid][group_name], Group[gid][group_uid], gid));
  2203.                
  2204.                 // Na poczatku usuwamy z grupy wszystkich graczy online
  2205.                 foreach(new p : Player)
  2206.                 {
  2207.                         new slot = GetPlayerGroupSlot(p, gid);
  2208.                         if( slot > -1 )
  2209.                         {
  2210.                                 if( pGroup[p][slot][pg_duty] ) PlayerTextDrawHide(p, GroupDutyTag);
  2211.                                 CleanPlayerGroup(playerid, slot);
  2212.                         }
  2213.                 }
  2214.                
  2215.                 // Teraz usuwamy czlonkow z bazy danych
  2216.                 mysql_query(mySQLconnection, sprintf("DELETE FROM `ipb_char_groups` WHERE `group_belongs` = %d", Group[gid][group_uid]));
  2217.                
  2218.                 // Kolej na usuniecie grupy z bazy danych
  2219.                 mysql_query(mySQLconnection, sprintf("DELETE FROM `ipb_game_groups` WHERE `group_uid` = %d", Group[gid][group_uid]));
  2220.                
  2221.                 // Na koncu usuwamy grupe z serwera
  2222.                 for(new z=0; e_groups:z != e_groups; z++)
  2223.                 {
  2224.                         Group[gid][e_groups:z] = 0;
  2225.                 }
  2226.                
  2227.                 Iter_Remove(Groups, gid);
  2228.         }
  2229.         else if( !strcmp(sub_cmd, "info") )
  2230.         {
  2231.                 new g_uid;
  2232.                 if( sscanf(param, "d", g_uid) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /(ag)rupa info [uid grupy]");
  2233.                 new gid = GetGroupByUid(g_uid);
  2234.                 if( gid == -1 ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Grupa o podanym uid nie istnieje");
  2235.                
  2236.                 new str[300];
  2237.                
  2238.                 format(str, sizeof(str), "%sTyp grupy:\t\t%s\n", str, GroupTypes[Group[gid][group_type]]);
  2239.                 format(str, sizeof(str), "%sBudżet:\t\t\t$%d\n", str, Group[gid][group_bank_money]);
  2240.                 format(str, sizeof(str), "%sKapitał:\t\t\t$%d\n", str, Group[gid][group_capital]);
  2241.                 format(str, sizeof(str), "%sPunkty aktywności:\t%s%d\n", str, ((Group[gid][group_activity_points] >= 1000) ? (HEX_COLOR_LIGHTER_GREEN) : (HEX_COLOR_LIGHTER_RED)), Group[gid][group_activity_points]);
  2242.                 format(str, sizeof(str), "%sDotacja:\t\t$%d\n", str, GetGroupDotation(gid));
  2243.                 format(str, sizeof(str), "%sTag:\t\t\t%s\n", str, GetGroupTag(gid));
  2244.                        
  2245.                 ShowPlayerDialog(playerid, DIALOG_INFO, DIALOG_STYLE_LIST, sprintf("%s (UID: %d) » Informacje", Group[gid][group_name], Group[gid][group_uid]), str, "OK", "");
  2246.         }
  2247.         else if( !strcmp(sub_cmd, "flagi") )
  2248.         {
  2249.                 new g_uid;
  2250.                 if( sscanf(param, "d", g_uid) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /(ag)rupa info [uid grupy]");
  2251.                 new gid = GetGroupByUid(g_uid);
  2252.                 if( gid == -1 ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Grupa o podanym uid nie istnieje");
  2253.                
  2254.                 DynamicGui_Init(playerid);
  2255.                 DynamicGui_SetDialogValue(playerid, gid);
  2256.                 new str[700];
  2257.                
  2258.                 format(str, sizeof(str), "%s%s01\tRadio (czat IC)\n", str, ((GroupHasFlag(gid, GROUP_FLAG_IC)) ? (HEX_COLOR_LIGHTER_GREEN) : (HEX_COLOR_LIGHTER_RED)));
  2259.                 DynamicGui_AddRow(playerid, GROUP_FLAG_IC);
  2260.                
  2261.                 format(str, sizeof(str), "%s%s02\tCzat OOC\n", str, ((GroupHasFlag(gid, GROUP_FLAG_OOC)) ? (HEX_COLOR_LIGHTER_GREEN) : (HEX_COLOR_LIGHTER_RED)));
  2262.                 DynamicGui_AddRow(playerid, GROUP_FLAG_OOC);
  2263.  
  2264.                 format(str, sizeof(str), "%s%s03\tKolorowe nicki\n", str, ((GroupHasFlag(gid, GROUP_FLAG_COLORED)) ? (HEX_COLOR_LIGHTER_GREEN) : (HEX_COLOR_LIGHTER_RED)));
  2265.                 DynamicGui_AddRow(playerid, GROUP_FLAG_COLORED);
  2266.  
  2267.                 format(str, sizeof(str), "%s%s04\tCzat departamentowy\n", str, ((GroupHasFlag(gid, GROUP_FLAG_DEP)) ? (HEX_COLOR_LIGHTER_GREEN) : (HEX_COLOR_LIGHTER_RED)));
  2268.                 DynamicGui_AddRow(playerid, GROUP_FLAG_DEP);
  2269.  
  2270.                 format(str, sizeof(str), "%s%s05\tOgraniczona służba\n", str, ((GroupHasFlag(gid, GROUP_FLAG_DUTY)) ? (HEX_COLOR_LIGHTER_GREEN) : (HEX_COLOR_LIGHTER_RED)));
  2271.                 DynamicGui_AddRow(playerid, GROUP_FLAG_DUTY);
  2272.  
  2273.                 format(str, sizeof(str), "%s%s06\tPrzetrzymywanie\n", str, ((GroupHasFlag(gid, GROUP_FLAG_KEEP)) ? (HEX_COLOR_LIGHTER_GREEN) : (HEX_COLOR_LIGHTER_RED)));
  2274.                 DynamicGui_AddRow(playerid, GROUP_FLAG_KEEP);
  2275.  
  2276.                 format(str, sizeof(str), "%s%s07\tStawianie blokad\n", str, ((GroupHasFlag(gid, GROUP_FLAG_BLOCKADE)) ? (HEX_COLOR_LIGHTER_GREEN) : (HEX_COLOR_LIGHTER_RED)));
  2277.                 DynamicGui_AddRow(playerid, GROUP_FLAG_BLOCKADE);
  2278.  
  2279.                 format(str, sizeof(str), "%s%s08\tUżywanie oflagowanych broni\n", str, ((GroupHasFlag(gid, GROUP_FLAG_WEAPON_FLAG)) ? (HEX_COLOR_LIGHTER_GREEN) : (HEX_COLOR_LIGHTER_RED)));
  2280.                 DynamicGui_AddRow(playerid, GROUP_FLAG_WEAPON_FLAG);
  2281.  
  2282.                 format(str, sizeof(str), "%s%s09\tZgłoszenia 911\n", str, ((GroupHasFlag(gid, GROUP_FLAG_911)) ? (HEX_COLOR_LIGHTER_GREEN) : (HEX_COLOR_LIGHTER_RED)));
  2283.                 DynamicGui_AddRow(playerid, GROUP_FLAG_911);
  2284.  
  2285.                 format(str, sizeof(str), "%s%s10\tTworzenie wyścigów\n", str, ((GroupHasFlag(gid, GROUP_FLAG_RACES)) ? (HEX_COLOR_LIGHTER_GREEN) : (HEX_COLOR_LIGHTER_RED)));
  2286.                 DynamicGui_AddRow(playerid, GROUP_FLAG_RACES);
  2287.  
  2288.                 format(str, sizeof(str), "%s%s11\tUżywanie masek\n", str, ((GroupHasFlag(gid, GROUP_FLAG_MASK)) ? (HEX_COLOR_LIGHTER_GREEN) : (HEX_COLOR_LIGHTER_RED)));
  2289.                 DynamicGui_AddRow(playerid, GROUP_FLAG_MASK);
  2290.  
  2291.                 format(str, sizeof(str), "%s%s12\tPrzeszukiwanie\n", str, ((GroupHasFlag(gid, GROUP_FLAG_SEARCH)) ? (HEX_COLOR_LIGHTER_GREEN) : (HEX_COLOR_LIGHTER_RED)));
  2292.                 DynamicGui_AddRow(playerid, GROUP_FLAG_SEARCH);
  2293.  
  2294.                 format(str, sizeof(str), "%s%s13\tSkuwanie graczy\n", str, ((GroupHasFlag(gid, GROUP_FLAG_CUFFS)) ? (HEX_COLOR_LIGHTER_GREEN) : (HEX_COLOR_LIGHTER_RED)));
  2295.                 DynamicGui_AddRow(playerid, GROUP_FLAG_CUFFS);
  2296.  
  2297.                 format(str, sizeof(str), "%s%s14\tWyważanie drzwi\n", str, ((GroupHasFlag(gid, GROUP_FLAG_PRYING)) ? (HEX_COLOR_LIGHTER_GREEN) : (HEX_COLOR_LIGHTER_RED)));
  2298.                 DynamicGui_AddRow(playerid, GROUP_FLAG_PRYING);
  2299.  
  2300.                 format(str, sizeof(str), "%s%s15\tDostęp do bota\n", str, ((GroupHasFlag(gid, GROUP_FLAG_BOT)) ? (HEX_COLOR_LIGHTER_GREEN) : (HEX_COLOR_LIGHTER_RED)));
  2301.                 DynamicGui_AddRow(playerid, GROUP_FLAG_BOT);
  2302.  
  2303.                 format(str, sizeof(str), "%s%s16\tZabieranie\n", str, ((GroupHasFlag(gid, GROUP_FLAG_TAKE)) ? (HEX_COLOR_LIGHTER_GREEN) : (HEX_COLOR_LIGHTER_RED)));
  2304.                 DynamicGui_AddRow(playerid, GROUP_FLAG_TAKE);
  2305.  
  2306.                 format(str, sizeof(str), "%s%s17\tLeczenie\n", str, ((GroupHasFlag(gid, GROUP_FLAG_MEDIC)) ? (HEX_COLOR_LIGHTER_GREEN) : (HEX_COLOR_LIGHTER_RED)));
  2307.                 DynamicGui_AddRow(playerid, GROUP_FLAG_MEDIC);
  2308.  
  2309.                 format(str, sizeof(str), "%s%s18\tTworzenie paintjobów\n", str, ((GroupHasFlag(gid, GROUP_FLAG_PAINTJOB)) ? (HEX_COLOR_LIGHTER_GREEN) : (HEX_COLOR_LIGHTER_RED)));
  2310.                 DynamicGui_AddRow(playerid, GROUP_FLAG_PAINTJOB);
  2311.  
  2312.                 format(str, sizeof(str), "%s%s19\tBiznes\n", str, ((GroupHasFlag(gid, GROUP_FLAG_BUSINESS)) ? (HEX_COLOR_LIGHTER_GREEN) : (HEX_COLOR_LIGHTER_RED)));
  2313.                 DynamicGui_AddRow(playerid, GROUP_FLAG_BUSINESS);
  2314.        
  2315.                 ShowPlayerDialog(playerid, DIALOG_GROUP_FLAGS, DIALOG_STYLE_LIST, sprintf("Flagi grupy [UID: %d]", g_uid), str, "Wybierz", "Zamknij");
  2316.         }
  2317.         else if( !strcmp(sub_cmd, "nazwa") )
  2318.         {
  2319.                 new g_uid, name[64];
  2320.                 if( sscanf(param, "ds[64]", g_uid, name) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /(ag)rupa nazwa [uid grupy] [nazwa]");
  2321.                 new gid = GetGroupByUid(g_uid);
  2322.                 if( gid == -1 ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Grupa o podanym id nie istnieje");
  2323.                 mysql_real_escape_string(name, name);  
  2324.                 strcopy(Group[gid][group_name], name);
  2325.                
  2326.                 mysql_query(mySQLconnection, sprintf("UPDATE `ipb_game_groups` SET `group_name` = '%s' WHERE `group_uid` = %d", Group[gid][group_name], Group[gid][group_uid]));
  2327.                
  2328.                 SendGuiInformation(playerid, ""guiopis"Powiadomienie", sprintf("Pomyślnie zmieniłeś nazwe grupy [UID: %d, ID: %d] na %s.", Group[gid][group_uid], gid, Group[gid][group_name]));
  2329.         }
  2330.         else if( !strcmp(sub_cmd, "typ") )
  2331.         {
  2332.                 new g_uid;
  2333.                 if( sscanf(param, "d", g_uid) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /(ag)rupa typ [uid grupy]");
  2334.                 new gid = GetGroupByUid(g_uid);
  2335.                 if( gid == -1 ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Grupa o podanym uid nie istnieje");
  2336.                
  2337.                 new str[400];
  2338.                 DynamicGui_Init(playerid);
  2339.                 DynamicGui_SetDialogValue(playerid, gid);
  2340.                
  2341.                 for(new i;i<sizeof(GroupTypes);i++)
  2342.                 {
  2343.                         format(str, sizeof(str), "%s%02d\t%s\n", str, i+1, GroupTypes[i]);
  2344.                         DynamicGui_AddRow(playerid, 0, i);
  2345.                 }
  2346.                
  2347.                 ShowPlayerDialog(playerid, DIALOG_AGRUPA_TYP, DIALOG_STYLE_LIST, sprintf("%s (UID: %d) » Zmiana typu", Group[gid][group_name], Group[gid][group_uid]), str, "Wybierz", "Zamknij");
  2348.         }
  2349.         else if( !strcmp(sub_cmd, "lider") )
  2350.         {
  2351.                 new g_uid, targetid;
  2352.                 if( sscanf(param, "dd", g_uid, targetid) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /(ag)rupa lider [uid grupy] [id gracza]");
  2353.                 new gid = GetGroupByUid(g_uid);
  2354.                 if( gid == -1 ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Grupa o podanym id nie istnieje");
  2355.                 if( !IsPlayerConnected(targetid) ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Gracz o podanym id nie jest podłączony.");
  2356.                 if( !pInfo[targetid][player_logged] ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Gracz o podanym id nie jest zalogowany.");
  2357.                
  2358.                 new slot = GetPlayerGroupSlot(targetid, gid);
  2359.                 if( slot > -1 )
  2360.                 {
  2361.                         mysql_query(mySQLconnection, sprintf("UPDATE `ipb_char_groups` SET `group_perm` = %d WHERE `char_uid` = %d AND `group_belongs` = %d", 63, pInfo[targetid][player_id], Group[gid][group_uid]));
  2362.                        
  2363.                         pGroup[targetid][slot][pg_rank_perm] = 63;
  2364.                        
  2365.                         SendGuiInformation(playerid, ""guiopis"Powiadomienie", sprintf("Nadałeś graczowi %s (UID: %d, ID: %d) uprawnienia lidera w grupie %s (UID: %d).", pInfo[targetid][player_name], pInfo[targetid][player_id], targetid, Group[gid][group_name], Group[gid][group_uid]));
  2366.                 }
  2367.                 else
  2368.                 {
  2369.                         new free_slot = GetPlayerGroupFreeSlot(targetid);
  2370.                         if( free_slot == -1 ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Gracz o podanym id nie ma już wolnego slotu grupy.");
  2371.                        
  2372.                         mysql_query(mySQLconnection, sprintf("INSERT INTO `ipb_char_groups` (char_uid, group_belongs, group_perm) VALUES (%d, %d, %d)", pInfo[targetid][player_id], Group[gid][group_uid], 63));
  2373.                        
  2374.                         pGroup[targetid][free_slot][pg_id] = gid;
  2375.                         pGroup[targetid][free_slot][pg_rank_perm] = 63;
  2376.                 }
  2377.         }
  2378.         else if( !strcmp(sub_cmd, "zapros") )
  2379.         {
  2380.                 new g_uid, targetid;
  2381.                 if( sscanf(param, "dd", g_uid, targetid) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /(ag)rupa zapros [uid grupy] [id gracza]");
  2382.                 new gid = GetGroupByUid(g_uid);
  2383.                 if( gid == -1 ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Grupa o podanym id nie istnieje");
  2384.                 if( !IsPlayerConnected(targetid) ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Gracz o podanym id nie jest podłączony.");
  2385.                 if( !pInfo[targetid][player_logged] ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Gracz o podanym id nie jest zalogowany.");
  2386.                 if( GetPlayerGroupSlot(targetid, gid) > -1 ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Gracz o podanym id jest już w tej grupie.");
  2387.                
  2388.                 new free_slot = GetPlayerGroupFreeSlot(targetid);
  2389.                 if( free_slot == -1 ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Gracz o podanym id nie ma już wolnego slotu grupy.");
  2390.                
  2391.                 mysql_query(mySQLconnection, sprintf("INSERT INTO `ipb_char_groups` (char_uid, group_belongs, group_perm) VALUES (%d, %d, %d)", pInfo[targetid][player_id], Group[gid][group_uid], 31));
  2392.                        
  2393.                 pGroup[targetid][free_slot][pg_id] = gid;
  2394.                 pGroup[targetid][free_slot][pg_rank_perm] = 31;
  2395.                 SendGuiInformation(playerid, ""guiopis"Powiadomienie", sprintf("Zaprosiles gracza %s (UID: %d, ID: %d) do grupy %s (UID: %d).", pInfo[targetid][player_name], pInfo[targetid][player_id], targetid, Group[gid][group_name], Group[gid][group_uid]));
  2396.         }
  2397.         else if( !strcmp(sub_cmd, "wypros") )
  2398.         {
  2399.                 new g_uid, targetid;
  2400.                 if( sscanf(param, "dd", g_uid, targetid) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /(ag)rupa wypros [uid grupy] [id gracza]");
  2401.                 new gid = GetGroupByUid(g_uid);
  2402.                 if( gid == -1 ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Grupa o podanym id nie istnieje");
  2403.                 if( !IsPlayerConnected(targetid) ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Gracz o podanym id nie jest podłączony.");
  2404.                 if( !pInfo[targetid][player_logged] ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Gracz o podanym id nie jest zalogowany.");
  2405.                
  2406.                 new slot = GetPlayerGroupSlot(targetid, gid);
  2407.                 if( slot == -1 ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Gracz o podanym id nie jest w tej grupie.");
  2408.                
  2409.                 mysql_query(mySQLconnection, sprintf("DELETE FROM `ipb_char_groups` WHERE `char_uid` = %d AND `group_belongs` = %d", pInfo[targetid][player_id], Group[gid][group_uid]));
  2410.                
  2411.                 if( pGroup[targetid][slot][pg_duty] ) PlayerTextDrawHide(targetid, GroupDutyTag);
  2412.                
  2413.                 CleanPlayerGroup(targetid, slot);
  2414.                
  2415.                 SendGuiInformation(playerid, ""guiopis"Powiadomienie", sprintf("Wyprosiłeś gracza %s (UID: %d, ID: %d) z grupy %s (UID: %d).", pInfo[targetid][player_name], pInfo[targetid][player_id], targetid, Group[gid][group_name], Group[gid][group_uid]));
  2416.         }
  2417.         else return SendClientMessage(playerid, COLOR_GREY, "Tip: /(ag)rupa [stworz/usun/nazwa/lider/info/typ/wypros/zapros]");
  2418.         return 1;
  2419. }
  2420.  
  2421. COMMAND:av(playerid, params[])
  2422. {      
  2423.         return cmd_avehicle(playerid, params);
  2424. }
  2425.  
  2426. COMMAND:avehicle(playerid, params[])
  2427. {
  2428.         if( !HasCrewFlag(playerid, CREW_FLAG_VEHICLES) ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Nie masz uprawnień do korzystania z tej komendy.");
  2429.        
  2430.         new sub_cmd[40], param[150];
  2431.         if( sscanf(params, "s[40] S()[150]", sub_cmd, param) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /(av)ehicle [stworz/usun/info/model/hp/visual/przypisz/id/zaparkuj/resp/spawn/unspawn/paliwotyp/paliwo/goto/gethere/kolor1/kolor2]");
  2432.        
  2433.         if( !strcmp(sub_cmd, "stworz") )
  2434.         {
  2435.                 new carmodel[32], c1, c2;
  2436.                 if( sscanf(param, "dds[32]", c1, c2, carmodel) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /(av)ehicle stworz [kolor1] [kolor2] [nazwa]");
  2437.  
  2438.                 new model = GetVehicleModelIDFromName(carmodel);
  2439.  
  2440.                 if( model < 400 || model > 611 ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Podałeś błędną nazwe pojazdu.");
  2441.                
  2442.                 new Float:v_pos[4];
  2443.                 GetPointInAngleOfPlayer(playerid, v_pos[0], v_pos[1], v_pos[2], 4.0, 0.0);
  2444.                
  2445.                 GetPlayerFacingAngle(playerid, v_pos[3]);
  2446.                 if( v_pos[3] > 90.0 ) v_pos[3] -= 90.0;
  2447.                 else v_pos[3] += 90.0;
  2448.                
  2449.                 mysql_query(mySQLconnection, sprintf("INSERT INTO `ipb_vehicles` (vehicle_uid, vehicle_model, vehicle_posx, vehicle_posy, vehicle_posz, vehicle_posa, vehicle_world, vehicle_interior, vehicle_color1, vehicle_color2, vehicle_fuel) VALUES (null, %d, %f, %f, %f, %f, %d, %d, %d, %d, '20.0')", model, v_pos[0], v_pos[1], v_pos[2], v_pos[3], GetPlayerVirtualWorld(playerid), GetPlayerInterior(playerid), c1, c2));
  2450.                 new uid = cache_insert_id();
  2451.        
  2452.                 new vid = LoadVehicle(sprintf("WHERE `vehicle_uid` = %d", uid), true);
  2453.        
  2454.                 SendGuiInformation(playerid, ""guiopis"Powiadomienie", sprintf("Stworzyłeś pojazd %s [UID: %d, ID: %d].", VehicleNames[model-400], uid, vid));
  2455.         }
  2456.         else if( !strcmp(sub_cmd, "usun") )
  2457.         {
  2458.                 new vid;
  2459.                 if( sscanf(param, "d", vid) ) return SendClientMessage(playerid, COLOR_GREY, "Tip /(av)ehicle usun [id pojazdu]");
  2460.                 if( !Iter_Contains(Vehicles, vid) ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Pojazd o podanym id nie istnieje.");
  2461.  
  2462.                 SendGuiInformation(playerid, ""guiopis"Powiadomienie", sprintf("Pomyślnie usunąłeś pojazd %s [UID: %d, ID: %d]", VehicleNames[GetVehicleModel(vid)-400], Vehicle[vid][vehicle_uid], vid));
  2463.                
  2464.                 DeleteVehicle(vid, true);
  2465.         }
  2466.         else if( !strcmp(sub_cmd, "spawn") )
  2467.         {
  2468.                 new v_uid;
  2469.                 if( sscanf(param, "d", v_uid) ) return SendClientMessage(playerid, COLOR_GREY, "Tip /(av)ehicle spawn [uid pojazdu]");
  2470.                 if( v_uid < 1 ) return SendClientMessage(playerid, COLOR_GREY, "Tip /(av)ehicle spawn [uid pojazdu]");
  2471.                
  2472.                 new vid = LoadVehicle(sprintf("WHERE `vehicle_uid` = %d", v_uid), true);
  2473.                
  2474.                 if( vid == INVALID_VEHICLE_ID ) SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Pojazd o podanym uid nie istnieje lub jest już zespawnowany.");
  2475.                 else SendGuiInformation(playerid, ""guiopis"Powiadomienie", sprintf("Zespawnowales pojazd %s [UID: %d, ID: %d].", VehicleNames[GetVehicleModel(vid)-400], v_uid, vid));
  2476.         }
  2477.         else if( !strcmp(sub_cmd, "tirestate") )
  2478.         {
  2479.                 new vid, tstate;
  2480.                 if( sscanf(param, "dd", vid, tstate) ) return SendClientMessage(playerid, COLOR_GREY, "Tip /(av)ehicle tirestate[id pojazdu] [state]");
  2481.                 if( !Iter_Contains(Vehicles, vid) ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Pojazd o podanym id nie istnieje.");
  2482.                
  2483.                 SendGuiInformation(playerid, ""guiopis"Powiadomienie", sprintf("Zmieniono stan opon pojazdu %s [UID: %d, ID: %d].", VehicleNames[GetVehicleModel(vid)-400], Vehicle[vid][vehicle_uid], vid));
  2484.                
  2485.                 new Panels, Doors, Lights, Tires;
  2486.                 GetVehicleDamageStatus(vid, Panels, Doors, Lights, Tires);
  2487.                 UpdateVehicleDamageStatus(vid, Panels, Doors, Lights, tstate);
  2488.         }
  2489.         else if( !strcmp(sub_cmd, "unspawn") )
  2490.         {
  2491.                 new vid;
  2492.                 if( sscanf(param, "d", vid) ) return SendClientMessage(playerid, COLOR_GREY, "Tip /(av)ehicle unspawn [id pojazdu]");
  2493.                 if( !Iter_Contains(Vehicles, vid) ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Pojazd o podanym id nie istnieje.");
  2494.                
  2495.                 SendGuiInformation(playerid, ""guiopis"Powiadomienie", sprintf("Odspawnowales pojazd %s [UID: %d, ID: %d].", VehicleNames[GetVehicleModel(vid)-400], Vehicle[vid][vehicle_uid], vid));
  2496.                
  2497.                 DeleteVehicle(vid);
  2498.         }
  2499.         else if( !strcmp(sub_cmd, "reset") )
  2500.         {
  2501.                 new vid;
  2502.                 if( sscanf(param, "d", vid) ) return SendClientMessage(playerid, COLOR_GREY, "Tip /(av)ehicle reset [id pojazdu]");
  2503.                 if( !Iter_Contains(Vehicles, vid) ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Pojazd o podanym id nie istnieje.");
  2504.                
  2505.                 SendGuiInformation(playerid, ""guiopis"Powiadomienie", sprintf("Zresetowales pojazd %s [UID: %d, ID: %d].", VehicleNames[GetVehicleModel(vid)-400], Vehicle[vid][vehicle_uid], vid));
  2506.                
  2507.                 SetVehiclePos(vid, Vehicle[vid][vehicle_park][0],Vehicle[vid][vehicle_park][1],Vehicle[vid][vehicle_park][2]);
  2508.                 SetVehicleZAngle(vid, Vehicle[vid][vehicle_park][3]);
  2509.                 SetVehicleVirtualWorld(vid, Vehicle[vid][vehicle_park_world]);
  2510.                 LinkVehicleToInterior(vid, Vehicle[vid][vehicle_park_interior]);       
  2511.         }
  2512.         else if( !strcmp(sub_cmd, "model") )
  2513.         {
  2514.                 new vid, carmodel[32];
  2515.                 if( sscanf(param, "ds[32]", vid, carmodel) ) return SendClientMessage(playerid, COLOR_GREY, "Tip /(av)ehicle model [id pojazdu] [nazwa pojazdu]");
  2516.                 if( !Iter_Contains(Vehicles, vid) ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Pojazd o podanym id nie istnieje.");
  2517.  
  2518.                 new model = GetVehicleModelIDFromName(carmodel);
  2519.                 if( model < 400 || model > 611 ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Podales błędną nazwe pojazdu.");
  2520.                
  2521.                 mysql_query(mySQLconnection, sprintf("UPDATE `ipb_vehicles` SET `vehicle_model` = %d WHERE `vehicle_uid` = %d", model, Vehicle[vid][vehicle_uid]));
  2522.                
  2523.                 new uid = Vehicle[vid][vehicle_uid];
  2524.                 DeleteVehicle(vid);
  2525.                
  2526.                 new v_id = LoadVehicle(sprintf("WHERE `vehicle_uid` = %d", uid), true);
  2527.                 SendGuiInformation(playerid, ""guiopis"Powiadomienie", sprintf("Pomyślnie zmieniłeś model pojazu na %s [UID: %d, ID: %d]", VehicleNames[GetVehicleModel(v_id)-400], uid, v_id));
  2528.         }
  2529.         else if( !strcmp(sub_cmd, "id") )
  2530.         {
  2531.                 new v_uid;
  2532.                 if( sscanf(param, "d", v_uid) ) return SendClientMessage(playerid, COLOR_GREY, "Tip /(av)ehicle id [uid pojazdu]");
  2533.                 if( v_uid < 1 ) return SendClientMessage(playerid, COLOR_GREY, "Tip /(av)ehicle id [uid pojazdu]");
  2534.                
  2535.                 new vid = GetVehicleByUid(v_uid);
  2536.                
  2537.                 if( vid == INVALID_VEHICLE_ID ) SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Pojazd o podanym uid nie jest zespawnowany.");
  2538.                 else SendGuiInformation(playerid, ""guiopis"Powiadomienie", sprintf("Pojazd %s posiada ID: %d.", VehicleNames[GetVehicleModel(vid)-400], vid));
  2539.         }
  2540.         else if( !strcmp(sub_cmd, "info") )
  2541.         {
  2542.                 new vid;
  2543.                 if( sscanf(param, "d", vid) ) return SendClientMessage(playerid, COLOR_GREY, "Tip /(av)ehicle info [id pojazdu]");
  2544.                 if( !Iter_Contains(Vehicles, vid) ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Pojazd o podanym id nie istnieje.");
  2545.  
  2546.                 new owner_str[80];
  2547.                 switch( Vehicle[vid][vehicle_owner_type] )
  2548.                 {
  2549.                         case VEHICLE_OWNER_TYPE_PLAYER:
  2550.                         {                      
  2551.                                 new name[MAX_PLAYER_NAME+1];
  2552.                                 GetPlayerNameByUid(Vehicle[vid][vehicle_owner], name);
  2553.                                
  2554.                                 format(owner_str, sizeof(owner_str), "gracz; %s", name);
  2555.                         }
  2556.                        
  2557.                         case VEHICLE_OWNER_TYPE_GROUP:
  2558.                         {                      
  2559.                                 new gid = GetGroupByUid(Vehicle[vid][vehicle_owner]);
  2560.                                 format(owner_str, sizeof(owner_str), "grupa; %s", Group[gid][group_name]);
  2561.                         }
  2562.  
  2563.                         case VEHICLE_OWNER_TYPE_JOB:
  2564.                         {                      
  2565.                                 format(owner_str, sizeof(owner_str), "praca; %d", Vehicle[vid][vehicle_owner]);
  2566.                         }
  2567.                 }
  2568.                
  2569.                 new string[340];
  2570.                 format(string, sizeof(string), "Pojazd UID %d - %s~n~~n~~y~Owner: ~w~%d:%d (%s)~n~~y~Kolory:~w~ %d:%d~n~", Vehicle[vid][vehicle_uid], VehicleNames[GetVehicleModel(vid)-400], Vehicle[vid][vehicle_owner_type], Vehicle[vid][vehicle_owner], owner_str, Vehicle[vid][vehicle_color][0], Vehicle[vid][vehicle_color][1]);
  2571.                 format(string, sizeof(string), "%s~n~~y~Paliwo: ~w~%d/%d~n~~y~Rejestracja: ~w~%s~n~~y~HP: ~w~%.1f", string, floatround(Vehicle[vid][vehicle_fuel_current], floatround_ceil), VehicleFuelMax[GetVehicleModel(vid)-400], Vehicle[vid][vehicle_register], Vehicle[vid][vehicle_health]);
  2572.                 format(string, sizeof(string), "%s~n~~n~~b~~h~~h~VW:~w~ %d~n~~b~~h~~h~INT: ~w~%d~n~~n~Klawisz ~p~N~w~ zamyka to okno.", string, Vehicle[vid][vehicle_park_world], Vehicle[vid][vehicle_park_interior]);
  2573.  
  2574.                
  2575.                 TextDrawSetString(Tutorial[playerid], string);
  2576.                 TextDrawShowForPlayer(playerid, Tutorial[playerid]);
  2577.         }
  2578.         else if( !strcmp(sub_cmd, "fix") )
  2579.         {
  2580.                 new vid;
  2581.                 if( sscanf(param, "d", vid) ) return SendClientMessage(playerid, COLOR_GREY, "Tip /(av)ehicle fix [id pojazdu]");
  2582.                 if( !Iter_Contains(Vehicles, vid) ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Pojazd o podanym id nie istnieje.");
  2583.                
  2584.                 SetVehicleHealth(vid, 1000.0);
  2585.  
  2586.                 Vehicle[vid][vehicle_destroyed] = false;
  2587.                 Vehicle[vid][vehicle_damage][0] = 0;
  2588.                 Vehicle[vid][vehicle_damage][1] = 0;
  2589.                 Vehicle[vid][vehicle_damage][2] = 0;
  2590.                 Vehicle[vid][vehicle_damage][3] = 0;
  2591.  
  2592.                 UpdateVehicleDamageStatus(vid, Vehicle[vid][vehicle_damage][0], Vehicle[vid][vehicle_damage][1], Vehicle[vid][vehicle_damage][2], Vehicle[vid][vehicle_damage][3]);
  2593.  
  2594.                 SaveVehicle(vid);
  2595.                
  2596.                 SendGuiInformation(playerid, ""guiopis"Powiadomienie", sprintf("Naprawiles pojazd %s [UID: %d, ID: %d].", VehicleNames[GetVehicleModel(vid)-400], Vehicle[vid][vehicle_uid], vid));
  2597.                
  2598.                 logprintf(LOG_VEHICLE, "[/av fix] [VUID: %d, PUID: %d, PGID: %d]", Vehicle[vid][vehicle_uid], pInfo[playerid][player_id], gInfo[playerid][global_id]);
  2599.         }
  2600.         else if( !strcmp(sub_cmd, "hp") )
  2601.         {
  2602.                 new vid, Float:hp;
  2603.                 if( sscanf(param, "df", vid, hp) ) return SendClientMessage(playerid, COLOR_GREY, "Tip /(av)ehicle hp [id pojazdu] [hp]");
  2604.                 if( !Iter_Contains(Vehicles, vid) ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Pojazd o podanym id nie istnieje.");
  2605.                 if( hp < 0.0 ) return SendClientMessage(playerid, COLOR_GREY, "Tip /(av)ehicle hp [id pojazdu] [hp]");
  2606.                
  2607.                 SetVehicleHealth(vid, hp);
  2608.                 Vehicle[vid][vehicle_destroyed] = false;
  2609.                 mysql_query(mySQLconnection, sprintf("UPDATE `ipb_vehicles` SET `vehicle_health` = %f WHERE `vehicle_uid` = %d", hp, Vehicle[vid][vehicle_uid]));
  2610.                
  2611.                 SendGuiInformation(playerid, ""guiopis"Powiadomienie", sprintf("Ustawiles %.1f hp pojazdowi %s [UID: %d, ID: %d].", hp, VehicleNames[GetVehicleModel(vid)-400], Vehicle[vid][vehicle_uid], vid));
  2612.                
  2613.                 logprintf(LOG_VEHICLE, "[/av hp] [VUID: %d, PUID: %d, PGID: %d, VHP: %f]", Vehicle[vid][vehicle_uid], pInfo[playerid][player_id], gInfo[playerid][global_id], hp);
  2614.         }
  2615.         else if( !strcmp(sub_cmd, "visual") )
  2616.         {
  2617.                 new vid;
  2618.                 if( sscanf(param, "d", vid) ) return SendClientMessage(playerid, COLOR_GREY, "Tip /(av)ehicle visual [id pojazdu]");
  2619.                 if( !Iter_Contains(Vehicles, vid) ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Pojazd o podanym id nie istnieje.");
  2620.                
  2621.                 Vehicle[vid][vehicle_damage][0] = 0;
  2622.                 Vehicle[vid][vehicle_damage][1] = 0;
  2623.                 Vehicle[vid][vehicle_damage][2] = 0;
  2624.                 Vehicle[vid][vehicle_damage][3] = 0;
  2625.                
  2626.                 UpdateVehicleDamageStatus(vid, Vehicle[vid][vehicle_damage][0], Vehicle[vid][vehicle_damage][1], Vehicle[vid][vehicle_damage][2], Vehicle[vid][vehicle_damage][3]);
  2627.                
  2628.                 SaveVehicle(vid);
  2629.                
  2630.                 SendGuiInformation(playerid, ""guiopis"Powiadomienie", sprintf("Naprawiles uszkodzenia wizualne pojazdu %s [UID: %d, ID: %d].", VehicleNames[GetVehicleModel(vid)-400], Vehicle[vid][vehicle_uid], vid));
  2631.         }
  2632.         else if( !strcmp(sub_cmd, "zaparkuj") )
  2633.         {
  2634.                 new vid;
  2635.                 if( sscanf(param, "d", vid) ) return SendClientMessage(playerid, COLOR_GREY, "Tip /(av)ehicle zaparkuj [id pojazdu]");
  2636.                 if( !Iter_Contains(Vehicles, vid) ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Pojazd o podanym id nie istnieje.");
  2637.                
  2638.                 GetVehiclePos(vid, Vehicle[vid][vehicle_park][0], Vehicle[vid][vehicle_park][1], Vehicle[vid][vehicle_park][2]);
  2639.                 GetVehicleZAngle(vid, Vehicle[vid][vehicle_park][3]);
  2640.                 Vehicle[vid][vehicle_park_world] = GetVehicleVirtualWorld(vid);
  2641.                 Vehicle[vid][vehicle_park_interior] = Vehicle[vid][vehicle_interior];
  2642.  
  2643.                 mysql_query(mySQLconnection, sprintf("UPDATE `ipb_vehicles` SET `vehicle_posx` = %f, `vehicle_posy` = %f, `vehicle_posz` = %f, `vehicle_posa` = %f, `vehicle_world` = %d, `vehicle_interior` = %d WHERE `vehicle_uid` = %d", Vehicle[vid][vehicle_park][0], Vehicle[vid][vehicle_park][1], Vehicle[vid][vehicle_park][2], Vehicle[vid][vehicle_park][3], Vehicle[vid][vehicle_park_world], Vehicle[vid][vehicle_park_interior] ,Vehicle[vid][vehicle_uid]));
  2644.        
  2645.                 SendGuiInformation(playerid, ""guiopis"Powiadomienie", sprintf("Zaparkowano pojazd %s [UID: %d, ID: %d].", VehicleNames[GetVehicleModel(vid)-400], Vehicle[vid][vehicle_uid], vid));
  2646.         }
  2647.         else if( !strcmp(sub_cmd, "przypisz") )
  2648.         {
  2649.                 new vid, action[10], id;
  2650.                 if( sscanf(param, "ds[10]d", vid, action, id) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /av przypisz [id pojazdu] [gracz/grupa/praca] [id postaci/uid grupy/id pracy]");
  2651.                
  2652.                 if( !strcmp(action, "gracz") )
  2653.                 {
  2654.                         if( !IsPlayerConnected(id) ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Gracza o podanym id nie ma na serwerze.");
  2655.                         if( !pInfo[id][player_logged] ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Gracz o podanym id nie jest zalogowany.");
  2656.                         if( !Iter_Contains(Vehicles, vid) ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Pojazd o podanym id nie istnieje.");
  2657.                        
  2658.                         mysql_query(mySQLconnection, sprintf("UPDATE `ipb_vehicles` SET `vehicle_ownertype` = %d, `vehicle_owner` = %d WHERE `vehicle_uid` = %d", VEHICLE_OWNER_TYPE_PLAYER, pInfo[id][player_id], Vehicle[vid][vehicle_uid]));
  2659.                         Vehicle[vid][vehicle_owner_type] = VEHICLE_OWNER_TYPE_PLAYER;
  2660.                         Vehicle[vid][vehicle_owner] = pInfo[id][player_id];
  2661.                        
  2662.                         SendGuiInformation(playerid, ""guiopis"Powiadomienie", sprintf("Przypisano pojazd %s [UID: %d, ID: %d] graczowi %s [ID: %d].", VehicleNames[GetVehicleModel(vid)-400], Vehicle[vid][vehicle_uid], vid, pInfo[id][player_name], id));
  2663.                 }
  2664.                 else if( !strcmp(action, "praca") )
  2665.                 {      
  2666.                         if( !Iter_Contains(Vehicles, vid) ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Pojazd o podanym id nie istnieje.");
  2667.                         mysql_query(mySQLconnection, sprintf("UPDATE `ipb_vehicles` SET `vehicle_ownertype` = %d, `vehicle_owner` = %d WHERE `vehicle_uid` = %d", VEHICLE_OWNER_TYPE_JOB, id, Vehicle[vid][vehicle_uid]));
  2668.                         Vehicle[vid][vehicle_owner_type] = VEHICLE_OWNER_TYPE_JOB;
  2669.                         Vehicle[vid][vehicle_owner] = id;
  2670.                        
  2671.                         SendGuiInformation(playerid, ""guiopis"Powiadomienie", sprintf("Przypisano pojazd %s [UID: %d, ID: %d] pracy dorywczej [ID: %d].", VehicleNames[GetVehicleModel(vid)-400], Vehicle[vid][vehicle_uid], vid, id));
  2672.                 }
  2673.                 else if( !strcmp(action, "grupa") )
  2674.                 {
  2675.                         if( !Iter_Contains(Vehicles, vid) ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Pojazd o podanym id nie istnieje.");
  2676.                         new gid = GetGroupByUid(id);
  2677.                         if( gid == -1 ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Grupa o podanym uid nie istnieje.");
  2678.                        
  2679.                         mysql_query(mySQLconnection, sprintf("UPDATE `ipb_vehicles` SET `vehicle_ownertype` = %d, `vehicle_owner` = %d WHERE `vehicle_uid` = %d", VEHICLE_OWNER_TYPE_GROUP, id, Vehicle[vid][vehicle_uid]));
  2680.                         Vehicle[vid][vehicle_owner_type] = VEHICLE_OWNER_TYPE_GROUP;
  2681.                         Vehicle[vid][vehicle_owner] = id;
  2682.                        
  2683.                         SendGuiInformation(playerid, ""guiopis"Powiadomienie", sprintf("Przypisano pojazd %s [UID: %d, ID: %d] grupie %s [UID: %d].", VehicleNames[GetVehicleModel(vid)-400], Vehicle[vid][vehicle_uid], vid, Group[gid][group_name], id));
  2684.                 }
  2685.                 else return SendClientMessage(playerid, COLOR_GREY, "Tip: /(av)ehicle przypisz [id pojazdu] [postac/grupa] [id postaci/uid grupy]");
  2686.         }
  2687.         else if( !strcmp(sub_cmd, "paliwotyp") )
  2688.         {
  2689.                 new vid, type;
  2690.                 if( sscanf(param, "dd", vid, type) ) return SendClientMessage(playerid, COLOR_GREY, "Tip /(av)ehicle paliwotyp [id pojazdu] [1 - benzyna, 2 - gaz, 3 - diesel, 4 - paliwo lotnicze]");
  2691.                 if( !Iter_Contains(Vehicles, vid) ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Pojazd o podanym id nie istnieje.");
  2692.                 if( type < 1 || type > 4 ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Podales błędny typ paliwa.");
  2693.                
  2694.                 mysql_query(mySQLconnection, sprintf("UPDATE `ipb_vehicles` SET `vehicle_fueltype` = %d WHERE `vehicle_uid` = %d", type, Vehicle[vid][vehicle_uid]));
  2695.                
  2696.                 Vehicle[vid][vehicle_fuel_type] = type;
  2697.                
  2698.                 SendGuiInformation(playerid, ""guiopis"Powiadomienie", sprintf("Zmieniono typ paliwa pojazdu %s [UID: %d, ID: %d] na: %s.", VehicleNames[GetVehicleModel(vid)-400], Vehicle[vid][vehicle_uid], vid, VehicleFuelTypes[type]));
  2699.         }
  2700.         else if( !strcmp(sub_cmd, "paliwo") )
  2701.         {
  2702.                 new vid, Float:amount;
  2703.                 if( sscanf(param, "df", vid, amount) ) return SendClientMessage(playerid, COLOR_GREY, "Tip /(av)ehicle paliwo [id pojazdu] [ilość]");
  2704.                 if( !Iter_Contains(Vehicles, vid) ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Pojazd o podanym id nie istnieje.");
  2705.                 if( amount < 0.0 || amount > 3000.0 ) return  SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Podales blednÂą ilosæ paliwa.");
  2706.                
  2707.                 mysql_query(mySQLconnection, sprintf("UPDATE `ipb_vehicles` SET `vehicle_fuel` = %f WHERE `vehicle_uid` = %d", amount, Vehicle[vid][vehicle_uid]));
  2708.                 Vehicle[vid][vehicle_fuel_current] = amount;
  2709.                
  2710.                 SendGuiInformation(playerid, ""guiopis"Powiadomienie", sprintf("Pomyślnie ustawiles ilosc paliwa w pojezdzie %s [UID: %d, ID: %d] na: %.1fL.", VehicleNames[GetVehicleModel(vid)-400], Vehicle[vid][vehicle_uid], vid, amount));
  2711.         }
  2712.         else if( !strcmp(sub_cmd, "goto") )
  2713.         {
  2714.                 new vid;
  2715.                 if( sscanf(param, "d", vid) ) return SendClientMessage(playerid, COLOR_GREY, "Tip /(av)ehicle goto [id pojazdu]");
  2716.                 if( !Iter_Contains(Vehicles, vid) ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Pojazd o podanym id nie istnieje.");
  2717.                
  2718.                 new Float:v_pos[3];
  2719.                 GetVehiclePos(vid, v_pos[0], v_pos[1], v_pos[2]);
  2720.                
  2721.                 RP_PLUS_SetPlayerPos(playerid, v_pos[0], v_pos[1], v_pos[2]);
  2722.                 SetPlayerVirtualWorld(playerid, GetVehicleVirtualWorld(vid));
  2723.                 SetPlayerInterior(playerid, Vehicle[vid][vehicle_interior]);
  2724.                
  2725.                 SendGuiInformation(playerid, ""guiopis"Powiadomienie", sprintf("Teleportowales sie do pojazdu %s [UID: %d, ID: %d, VW: %d, INT: %d]", VehicleNames[GetVehicleModel(vid)-400], Vehicle[vid][vehicle_uid], vid, GetVehicleVirtualWorld(vid), Vehicle[vid][vehicle_interior]));
  2726.         }
  2727.         else if( !strcmp(sub_cmd, "gethere") )
  2728.         {
  2729.                 new vid;
  2730.                 if( sscanf(param, "d", vid) ) return SendClientMessage(playerid, COLOR_GREY, "Tip /(av)ehicle gethere [id pojazdu]");
  2731.                 if( !Iter_Contains(Vehicles, vid) ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Pojazd o podanym id nie istnieje.");
  2732.                
  2733.                 new Float:v_pos[4];
  2734.                 GetPointInAngleOfPlayer(playerid, v_pos[0], v_pos[1], v_pos[2], 4.0, 0.0);
  2735.                
  2736.                 GetPlayerFacingAngle(playerid, v_pos[3]);
  2737.                 if( v_pos[3] > 90.0 ) v_pos[3] -= 90.0;
  2738.                 else v_pos[3] += 90.0;
  2739.                
  2740.                 SetVehiclePos(vid, v_pos[0], v_pos[1], v_pos[2]);
  2741.                 SetVehicleZAngle(vid, v_pos[3]);
  2742.                 SetVehicleVirtualWorld(vid, GetPlayerVirtualWorld(playerid));
  2743.                 LinkVehicleToInterior(vid, GetPlayerInterior(playerid));
  2744.                
  2745.                 SendGuiInformation(playerid, ""guiopis"Powiadomienie", sprintf("Przeteleportowales do siebie pojazd %s [UID: %d, ID: %d]", VehicleNames[GetVehicleModel(vid)-400], Vehicle[vid][vehicle_uid], vid));
  2746.         }
  2747.         else if( !strcmp(sub_cmd, "kolor1") )
  2748.         {
  2749.                 new vid, color;
  2750.                 if( sscanf(param, "dd", vid, color) ) return SendClientMessage(playerid, COLOR_GREY, "Tip /(av)ehicle kolor1 [id pojazdu] [kolor]");
  2751.                 if( !Iter_Contains(Vehicles, vid) ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Pojazd o podanym id nie istnieje.");
  2752.                 if( color < 0 || color > 255 ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Podany kolor nie istnieje.");
  2753.                
  2754.                 Vehicle[vid][vehicle_color][0] = color;
  2755.                 mysql_query(mySQLconnection, sprintf("UPDATE `ipb_vehicles` SET `vehicle_color1` = %d WHERE `vehicle_uid` = %d", color, Vehicle[vid][vehicle_uid]));
  2756.                
  2757.                 ChangeVehicleColor(vid, Vehicle[vid][vehicle_color][0], Vehicle[vid][vehicle_color][1]);
  2758.                
  2759.                 SendGuiInformation(playerid, ""guiopis"Powiadomienie", sprintf("Zmieniono kolor pojazdu %s [UID: %d, ID: %d] na %d:%d.", VehicleNames[GetVehicleModel(vid)-400], Vehicle[vid][vehicle_uid], vid, Vehicle[vid][vehicle_color][0], Vehicle[vid][vehicle_color][1]));
  2760.         }
  2761.         else if( !strcmp(sub_cmd, "kolor2") )
  2762.         {
  2763.                 new vid, color;
  2764.                 if( sscanf(param, "dd", vid, color) ) return SendClientMessage(playerid, COLOR_GREY, "Tip /(av)ehicle kolor1 [id pojazdu] [kolor]");
  2765.                 if( !Iter_Contains(Vehicles, vid) ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Pojazd o podanym id nie istnieje.");
  2766.                 if( color < 0 || color > 255 ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Podany kolor nie istnieje.");
  2767.                
  2768.                 Vehicle[vid][vehicle_color][1] = color;
  2769.                 mysql_query(mySQLconnection, sprintf("UPDATE `ipb_vehicles` SET `vehicle_color2` = %d WHERE `vehicle_uid` = %d", color, Vehicle[vid][vehicle_uid]));
  2770.                
  2771.                 ChangeVehicleColor(vid, Vehicle[vid][vehicle_color][0], Vehicle[vid][vehicle_color][1]);
  2772.                
  2773.                 SendGuiInformation(playerid, ""guiopis"Powiadomienie", sprintf("Zmieniłeś kolor pojazdu %s [UID: %d, ID: %d] na %d:%d.", VehicleNames[GetVehicleModel(vid)-400], Vehicle[vid][vehicle_uid], vid, Vehicle[vid][vehicle_color][0], Vehicle[vid][vehicle_color][1]));
  2774.         }
  2775.         else if( !strcmp(sub_cmd, "tablica") )
  2776.         {
  2777.                 new plate[32], vid;
  2778.                 if( sscanf(param, "ds[32]", vid, plate) ) return SendClientMessage(playerid, COLOR_GREY, "Tip /(av)ehicle tablica [id pojazdu] [nowa rejestracja]");
  2779.                 if( !Iter_Contains(Vehicles, vid) ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Pojazd o podanym id nie istnieje.");
  2780.                 sscanf(plate, "s[32]", Vehicle[vid][vehicle_register]);
  2781.                 mysql_query(mySQLconnection, sprintf("UPDATE `ipb_vehicles` SET `vehicle_register` = '%s' WHERE `vehicle_uid` = %d", plate, Vehicle[vid][vehicle_uid]));
  2782.                 SendGuiInformation(playerid, ""guiopis"Powiadomienie", sprintf("Zmieniono tablice rejestracyjne pojazdu %s [UID: %d, ID: %d].", VehicleNames[GetVehicleModel(vid)-400], Vehicle[vid][vehicle_uid], vid));
  2783.         }
  2784.         else if( !strcmp(sub_cmd, "resp") )
  2785.         {
  2786.                 new vid;
  2787.                 if( sscanf(param, "d", vid) ) return SendClientMessage(playerid, COLOR_GREY, "Tip /(av)ehicle resp [id pojazdu]");
  2788.                 if( !Iter_Contains(Vehicles, vid) ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Pojazd o podanym id nie istnieje.");
  2789.                
  2790.                 SetVehiclePos(vid, Vehicle[vid][vehicle_park][0], Vehicle[vid][vehicle_park][1], Vehicle[vid][vehicle_park][2]);
  2791.                 SetVehicleZAngle(vid, Vehicle[vid][vehicle_park][3]);
  2792.                 SetVehicleVirtualWorld(vid, Vehicle[vid][vehicle_park_world]);
  2793.                 LinkVehicleToInterior(vid, Vehicle[vid][vehicle_park_interior]);
  2794.                 Vehicle[vid][vehicle_engine] = false;
  2795.                 Vehicle[vid][vehicle_locked] = true;
  2796.                 UpdateVehicleVisuals(vid);
  2797.                
  2798.                 SendGuiInformation(playerid, ""guiopis"Powiadomienie", sprintf("Pojazd %s [UID: %d, ID: %d] powrócił na miejsce spawnu.", VehicleNames[GetVehicleModel(vid)-400], Vehicle[vid][vehicle_uid], vid));
  2799.         }
  2800.         else return SendClientMessage(playerid, COLOR_GREY, "Tip: /(av)ehicle [stworz/usun/model/hp/visual/przypisz/id/zaparkuj/spawn/unspawn/resp/paliwotyp/paliwo/goto/gethere/kolor1/kolor2]");
  2801.         return 1;
  2802. }
  2803.  
  2804. COMMAND:ap(playerid, params[])
  2805. {
  2806.         return cmd_aprzedmiot(playerid, params);
  2807. }
  2808.  
  2809. COMMAND:aprzedmiot(playerid, params[])
  2810. {
  2811.         if( !HasCrewFlag(playerid, CREW_FLAG_ITEMS) ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Nie masz uprawnień do korzystania z tej komendy.");
  2812.        
  2813.         new sub_cmd[40], param[150];
  2814.         if( sscanf(params, "s[40] S()[150]", sub_cmd, param) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /(ap)rzedmiot [stworz/usun/value1/value2/typ]");
  2815.        
  2816.         if( !strcmp(sub_cmd, "stworz") )
  2817.         {
  2818.                 new type, model, val1, val2, name[40];
  2819.                 if( sscanf(param, "dddd s[40]", type, model, val1, val2, name) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /(ap)rzedmiot stworz [typ] [model] [value1] [value2] [nazwa]");
  2820.  
  2821.                 if(model == 0)
  2822.                 {
  2823.                         model = 327;
  2824.                 }
  2825.                
  2826.                 Item_Create(ITEM_OWNER_TYPE_PLAYER, playerid, type, model, val1, val2, name);
  2827.                
  2828.                 SendGuiInformation(playerid, ""guiopis"Powiadomienie", sprintf("Stworzyłeś przedmiot %s [TYP: %d, MODEL: %d, V1: %d, V2: %d].", name, type, model, val1, val2));
  2829.         }
  2830.         else if( !strcmp(sub_cmd, "usun") )
  2831.         {
  2832.                 new itemuid;
  2833.                 if(     sscanf(param, "d", itemuid) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /(ap)rzedmiot usun [uid przedmiotu]");
  2834.                
  2835.                 new itemid = GetItemByUid(itemuid, playerid);
  2836.                 if( itemid > -1 )
  2837.                 {
  2838.                         DeleteItem(itemid, true, playerid);
  2839.                         SendGuiInformation(playerid, ""guiopis"Powiadomienie", sprintf("Skasowałeś przedmiot o UID: %d.", itemuid));
  2840.                 }
  2841.                 else
  2842.                 {
  2843.                         SendGuiInformation(playerid, "Informacja", "Ten przedmiot nie jest w twoim posiadaniu lub nie istnieje.");
  2844.                 }
  2845.         }
  2846.         else if( !strcmp(sub_cmd, "value1") )
  2847.         {
  2848.                 new itemuid, value1;
  2849.                 if(     sscanf(param, "dd", itemuid, value1) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /(ap)rzedmiot value1 [uid przedmiotu] [value1]");
  2850.                
  2851.                 new itemid = GetItemByUid(itemuid, playerid);
  2852.                 if( itemid > -1 )
  2853.                 {
  2854.                         PlayerItem[playerid][itemid][player_item_value1] = value1;     
  2855.                         mysql_query(mySQLconnection, sprintf("UPDATE `ipb_items` SET `item_value1` = %d WHERE `item_uid` = %d", value1, itemuid));
  2856.                         SendGuiInformation(playerid, ""guiopis"Powiadomienie", sprintf("Zmieniłeś wartość 1 przedmiotu o UID: %d na: %d.", itemuid, value1));
  2857.                 }
  2858.                 else
  2859.                 {
  2860.                         SendGuiInformation(playerid, "Informacja", "Ten przedmiot nie jest w twoim posiadaniu lub nie istnieje.");
  2861.                 }
  2862.         }
  2863.         else if( !strcmp(sub_cmd, "value2") )
  2864.         {
  2865.                 new itemuid, value2;
  2866.                 if(     sscanf(param, "dd", itemuid, value2) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /(ap)rzedmiot value2 [uid przedmiotu] [value2]");
  2867.                
  2868.                 new itemid = GetItemByUid(itemuid, playerid);
  2869.                 if( itemid > -1 )
  2870.                 {
  2871.                         PlayerItem[playerid][itemid][player_item_value2] = value2;
  2872.                         SendGuiInformation(playerid, ""guiopis"Powiadomienie", sprintf("Zmieniłeś wartość 2 przedmiotu o UID: %d na: %d.", itemuid, value2));
  2873.                         mysql_query(mySQLconnection, sprintf("UPDATE `ipb_items` SET `item_value2` = %d WHERE `item_uid` = %d", value2, itemuid));
  2874.                 }
  2875.                 else
  2876.                 {
  2877.                         SendGuiInformation(playerid, "Informacja", "Ten przedmiot nie jest w twoim posiadaniu lub nie istnieje.");
  2878.                 }
  2879.         }
  2880.         else if( !strcmp(sub_cmd, "waga") )
  2881.         {
  2882.                 new itemuid, value2;
  2883.                 if(     sscanf(param, "dd", itemuid, value2) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /(ap)rzedmiot waga [uid przedmiotu] [waga]");
  2884.                
  2885.                 new itemid = GetItemByUid(itemuid, playerid);
  2886.                 if( itemid > -1 )
  2887.                 {
  2888.                         PlayerItem[playerid][itemid][player_item_weight] = value2;
  2889.                         SendGuiInformation(playerid, ""guiopis"Powiadomienie", sprintf("Zmieniłeś wage przedmiotu o UID: %d na: %d.", itemuid, value2));
  2890.                         mysql_query(mySQLconnection, sprintf("UPDATE `ipb_items` SET `item_weight` = %d WHERE `item_uid` = %d", value2, itemuid));
  2891.                 }
  2892.                 else
  2893.                 {
  2894.                         SendGuiInformation(playerid, "Informacja", "Ten przedmiot nie jest w twoim posiadaniu lub nie istnieje.");
  2895.                 }
  2896.         }
  2897.         else if( !strcmp(sub_cmd, "extraid") )
  2898.         {
  2899.                 new itemuid, groupuid;
  2900.                 if(     sscanf(param, "dd", itemuid, groupuid) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /(ap)rzedmiot extraid [uid przedmiotu] [extraid]");
  2901.                
  2902.                 new itemid = GetItemByUid(itemuid, playerid);
  2903.                 if( itemid > -1 )
  2904.                 {
  2905.                         PlayerItem[playerid][itemid][player_item_extraid] = groupuid;
  2906.                         mysql_query(mySQLconnection, sprintf("UPDATE `ipb_items` SET `item_extraid` = %d WHERE `item_uid` = %d", groupuid, itemuid));
  2907.                         SendGuiInformation(playerid, ""guiopis"Powiadomienie", sprintf("Nadano extraid %d dla przedmiotu UID: %d.", groupuid, itemuid));
  2908.                 }
  2909.                 else
  2910.                 {
  2911.                         SendGuiInformation(playerid, "Informacja", "Ten przedmiot nie jest w twoim posiadaniu lub nie istnieje.");
  2912.                 }
  2913.         }
  2914.         else if( !strcmp(sub_cmd, "flaga") )
  2915.         {
  2916.                 new itemuid, groupuid;
  2917.                 if(     sscanf(param, "dd", itemuid, groupuid) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /(ap)rzedmiot flaga [uid przedmiotu] [uid grupy]");
  2918.                
  2919.                 new itemid = GetItemByUid(itemuid, playerid);
  2920.                 if( itemid > -1 )
  2921.                 {
  2922.                         PlayerItem[playerid][itemid][player_item_group] = groupuid;
  2923.                         mysql_query(mySQLconnection, sprintf("UPDATE `ipb_items` SET `item_group` = %d WHERE `item_uid` = %d", groupuid, itemuid));
  2924.                         SendGuiInformation(playerid, ""guiopis"Powiadomienie", sprintf("Oflagowano przedmiot o UID: %d dla grupy %d.", itemuid, groupuid));
  2925.                 }
  2926.                 else
  2927.                 {
  2928.                         SendGuiInformation(playerid, "Informacja", "Ten przedmiot nie jest w twoim posiadaniu lub nie istnieje.");
  2929.                 }
  2930.         }
  2931.         else if( !strcmp(sub_cmd, "typ") )
  2932.         {
  2933.                 new itemuid, typ;
  2934.                 if(     sscanf(param, "dd", itemuid, typ) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /(ap)rzedmiot typ [uid przedmiotu] [typ]");
  2935.                
  2936.                 new itemid = GetItemByUid(itemuid, playerid);
  2937.                 if( itemid > -1 )
  2938.                 {
  2939.                         PlayerItem[playerid][itemid][player_item_type] = typ;
  2940.                         mysql_query(mySQLconnection, sprintf("UPDATE `ipb_items` SET `item_type` = %d WHERE `item_uid` = %d", typ, itemuid));
  2941.                         SendGuiInformation(playerid, ""guiopis"Powiadomienie", sprintf("Zmieniłeś typ przedmiotu o UID: %d na: %d.", itemuid, typ));
  2942.                 }
  2943.                 else
  2944.                 {
  2945.                         SendGuiInformation(playerid, "Informacja", "Ten przedmiot nie jest w twoim posiadaniu lub nie istnieje.");
  2946.                 }
  2947.         }
  2948.         else if( !strcmp(sub_cmd, "model") )
  2949.         {
  2950.                 new itemuid, model;
  2951.                 if(     sscanf(param, "dd", itemuid, model) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /(ap)rzedmiot model[uid przedmiotu] [typ]");
  2952.                
  2953.                 new itemid = GetItemByUid(itemuid, playerid);
  2954.                 if( itemid > -1 )
  2955.                 {
  2956.                         PlayerItem[playerid][itemid][player_item_model] = model;
  2957.                         mysql_query(mySQLconnection, sprintf("UPDATE `ipb_items` SET `item_model` = %d WHERE `item_uid` = %d", model, itemuid));
  2958.                         SendGuiInformation(playerid, ""guiopis"Powiadomienie", sprintf("Zmieniłeś model przedmiotu o UID: %d na: %d.", itemuid, model));
  2959.                 }
  2960.                 else
  2961.                 {
  2962.                         SendGuiInformation(playerid, "Informacja", "Ten przedmiot nie jest w twoim posiadaniu lub nie istnieje.");
  2963.                 }
  2964.         }
  2965.         else if( !strcmp(sub_cmd, "nazwa") )
  2966.         {
  2967.                 new itemuid, itname[40];
  2968.                 if(     sscanf(param, "ds[40]", itemuid, itname) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /(ap)rzedmiot nazwa [uid przedmiotu] [nowa nazwa]");
  2969.                
  2970.                 new itemid = GetItemByUid(itemuid, playerid);
  2971.                 if( itemid > -1 )
  2972.                 {
  2973.                         sscanf(itname, "s[40]", PlayerItem[playerid][itemid][player_item_name]);
  2974.                         mysql_query(mySQLconnection, sprintf("UPDATE `ipb_items` SET `item_name` = '%s' WHERE `item_uid` = %d", itname, itemuid));
  2975.                         SendGuiInformation(playerid, ""guiopis"Powiadomienie", sprintf("Zmieniłeś nazwe przedmiotu o UID: %d na: %s.", itemuid, itname));
  2976.                 }
  2977.                 else
  2978.                 {
  2979.                         SendGuiInformation(playerid, "Informacja", "Ten przedmiot nie jest w twoim posiadaniu lub nie istnieje.");
  2980.                 }
  2981.         }
  2982.         else return SendClientMessage(playerid, COLOR_GREY, "Tip: /(ap)rzedmiot [stworz/usun/value1/value2/typ]");
  2983.        
  2984.         return 1;
  2985. }
  2986.  
  2987. COMMAND:attach(playerid, params[])
  2988. {
  2989.         if( !HasCrewFlag(playerid, CREW_FLAG_ITEMS) ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Nie masz uprawnień do korzystania z tej komendy.");
  2990.        
  2991.         new sub_cmd[40], param[150];
  2992.         if( sscanf(params, "s[40] S()[150]", sub_cmd, param) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /attach [stworz/usun/edytuj/print]");
  2993.        
  2994.         if( !strcmp(sub_cmd, "stworz") )
  2995.         {
  2996.                 new model, bone;
  2997.                 if( sscanf(param, "dd", model, bone) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /attach stworz [model] [bone]");
  2998.                
  2999.                 new freeid = GetPlayerFreeAttachSlot(playerid);
  3000.                 if( freeid == -1 ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Nie możesz przyczepić już wiecej obiektów.");
  3001.                
  3002.                 SetPlayerAttachedObject(playerid, freeid, model, bone);
  3003.                 SendFormattedClientMessage(playerid, COLOR_GOLD, "Utworzyles nowy obiekt przyczepialny [INDEX: %d]. Aby zapisać jego pozycje, zapisz edycje za pomocą ikonky dyskietki.", freeid);
  3004.                
  3005.                 ao[playerid][freeid][ao_model] = model;
  3006.         ao[playerid][freeid][ao_bone] = bone;
  3007.         }
  3008.         else if( !strcmp(sub_cmd, "usun") )
  3009.         {
  3010.                 new index;
  3011.                 if( sscanf(param, "d", index) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /attach usun [index]");
  3012.                 if( !IsPlayerAttachedObjectSlotUsed(playerid, index) ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "W tym slocie nie masz żadnego obiektu.");
  3013.                
  3014.                 ao[playerid][index][ao_model] = -1;
  3015.         ao[playerid][index][ao_bone] = -1;
  3016.                 ao[playerid][index][ao_x] = 0.0;
  3017.         ao[playerid][index][ao_y] = 0.0;
  3018.         ao[playerid][index][ao_z] = 0.0;
  3019.         ao[playerid][index][ao_rx] = 0.0;
  3020.         ao[playerid][index][ao_ry] = 0.0;
  3021.         ao[playerid][index][ao_rz] = 0.0;
  3022.         ao[playerid][index][ao_sx] = 0.0;
  3023.         ao[playerid][index][ao_sy] = 0.0;
  3024.         ao[playerid][index][ao_sz] = 0.0;
  3025.                
  3026.                 RemovePlayerAttachedObject(playerid, index);
  3027.                 SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Pomyślnie usunąłeś obiekt przyczepialny");
  3028.         }
  3029.         else if( !strcmp(sub_cmd, "edytuj") )
  3030.         {
  3031.                 new index;
  3032.                 if( sscanf(param, "d", index) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /attach edytuj [index]");
  3033.                 if( !IsPlayerAttachedObjectSlotUsed(playerid, index) ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "W tym slocie nie masz żadnego obiektu.");
  3034.                
  3035.                 EditAttachedObject(playerid, index);
  3036.         }
  3037.         else if( !strcmp(sub_cmd, "print") )
  3038.         {
  3039.                 new index;
  3040.                 if( sscanf(param, "d", index) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /attach print [index]");
  3041.                 if( !IsPlayerAttachedObjectSlotUsed(playerid, index) ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "W tym slocie nie masz żadnego obiektu.");
  3042.                
  3043.                 printf("[model %d, bone: %d] %f, %f, %f, %f, %f, %f, %f, %f, %f", ao[playerid][index][ao_model], ao[playerid][index][ao_bone], ao[playerid][index][ao_x], ao[playerid][index][ao_y], ao[playerid][index][ao_z], ao[playerid][index][ao_rx], ao[playerid][index][ao_ry], ao[playerid][index][ao_rz], ao[playerid][index][ao_sx], ao[playerid][index][ao_sy], ao[playerid][index][ao_sz]);
  3044.         }
  3045.         return 1;
  3046. }
  3047.  
  3048. COMMAND:aplace(playerid, params[])
  3049. {
  3050.         if( !HasCrewFlag(playerid, CREW_FLAG_DOORS) ) return SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Nie masz uprawnień do korzystania z tej komendy.");
  3051.        
  3052.         new sub_cmd[40], param[150];
  3053.         if( sscanf(params, "s[40] S()[150]", sub_cmd, param) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /aplace [stworz/usun]");
  3054.        
  3055.         if( !strcmp(sub_cmd, "stworz") )
  3056.         {
  3057.                 new type, Float:sx, Float:sy, Float:sz;
  3058.                 if( sscanf(param, "d", type) )
  3059.                 {
  3060.                         TextDrawSetString(Tutorial[playerid], "~w~Typy ~p~miejsc~w~:~n~~n~1. Bank~n~2. Hotel~n~3. Sklep 24/7~n~4. Victim~n~5. Apteka~n~6. Salon aut~n~7. Brak~n~8. Brak~n~9. Bankomat~n~10. Bot z urzedu ~n~Klawisz ~g~N~w~ zamyka to okno.");
  3061.                         TextDrawShowForPlayer(playerid, Tutorial[playerid]);
  3062.                         SendClientMessage(playerid, COLOR_GREY, "Tip: /aplace stworz [typ]");
  3063.                         return 1;
  3064.                 }
  3065.                 new svw = GetPlayerVirtualWorld(playerid);
  3066.                 GetPlayerPos(playerid, sx, sy, sz);
  3067.                
  3068.                 new puid = CreateSpecialPlace(type, Float:sx, Float:sy, Float:sz, svw);
  3069.                 SendGuiInformation(playerid, ""guiopis"Powiadomienie", sprintf("Miejsce UID: %d, typ: %d zostało pomyślnie utworzone.", puid, type));
  3070.         }
  3071.         else if( !strcmp(sub_cmd, "usun") )
  3072.         {
  3073.                 new index;
  3074.                 if( sscanf(param, "d", index) ) return SendClientMessage(playerid, COLOR_GREY, "Tip: /aplace usun [uid]");
  3075.                 SendGuiInformation(playerid, ""guiopis"Powiadomienie", "Pomyślnie usunąłeś to miejsce.");
  3076.                 new ib = GetPlaceByUid(index);
  3077.                 if(ib != -1) Iter_Remove(Places, ib);
  3078.                 DeleteSpecialPlace(index);
  3079.         }
  3080.         return 1;
  3081. }