Advertisement
Guest User

Untitled

a guest
Jul 25th, 2014
170
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.96 KB | None | 0 0
  1. /*
  2.     @Dunamiczny system teleportów - teles.pwn
  3.     @date : 15 marca 2014 13.33
  4.     @Last update: 20 marca 2014 15.09
  5.  
  6. */
  7.  
  8. #include a_samp.inc
  9. #include mysql.inc
  10. #include zcmd.inc
  11. #include sscanf.inc
  12.  
  13. new Query[600];
  14.  
  15. public OnGameModeInit()
  16. {
  17.     mysql_init();
  18.     mysql_connect("host_mysql", "user_mysql", "password_mysql", "user_mysql", MySQL:0, 1);//Połączenie z bazą danych(mysql).
  19.     if(mysql_ping() != 0)
  20.     {
  21.         printf("Nie udalo sie wczytac konfiguracji bazy danych");//Jeśli nie połączy z bazą danych(mysql).
  22.     }
  23.     printf("Inicjacja i laczenie z baza MySQL...");//jesli połaczy z bazą danych(mysql).
  24.  
  25.     //tworzy tabele w bazie danych ;d
  26.     new dynamic_teles[500];
  27.     format(dynamic_teles, sizeof(dynamic_teles), "CREATE TABLE IF NOT EXISTS `dynamic_teles` (");
  28.     strcat(dynamic_teles, "`id` int(11) NOT NULL AUTO_INCREMENT");
  29.     strcat(dynamic_teles, ", `name` varchar(30) NOT NULL");
  30.     strcat(dynamic_teles, ", `x` float NOT NULL");
  31.     strcat(dynamic_teles, ", `y` float NOT NULL");
  32.     strcat(dynamic_teles, ", `z` float NOT NULL");
  33.     strcat(dynamic_teles, ", `world` int(11) NOT NULL DEFAULT '0'");
  34.     strcat(dynamic_teles, ", `interior` int(11) NOT NULL DEFAULT '0'");
  35.     strcat(dynamic_teles, ",  PRIMARY KEY (`id`)");
  36.     strcat(dynamic_teles, ", UNIQUE KEY `name` (`name`)");
  37.     strcat(dynamic_teles, " ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=63 ;");
  38.     mysql_query(dynamic_teles);
  39.    
  40.     printf("Dynamiczny system teleportów by NexuS, Adagio - uruchomiony!");
  41.     return 1;
  42. }
  43.  
  44. public OnPlayerCommandPerformed(playerid, cmdtext[], success)
  45. {
  46.     if(!success)
  47.     {
  48.         SendClientMessage(playerid, -1, "(E) System nie wykrył takiek komendy!");//Sprawdza czy dana komenda jest w systemie.
  49.         return 1;
  50.     }
  51.     return 1;
  52. }
  53.  
  54. public OnPlayerCommandReceived(playerid, cmdtext[])//tutaj całą funkcja do czytania teleportu z bazy danych(mysql).
  55. {
  56.     format(Query, sizeof Query, "SELECT `interior`,`world`,`x`,`y`,`z` FROM `dynamic_teles` WHERE `name` = '%s'", cmdtext);
  57.     mysql_query(Query);
  58.     mysql_store_result();
  59.  
  60.     static interior[6], world[6], X[12], Y[12], Z[12];
  61.     mysql_fetch_field("interior", interior);
  62.     mysql_fetch_field("world", world);
  63.     mysql_fetch_field("x", X);
  64.     mysql_fetch_field("y", Y);
  65.     mysql_fetch_field("z", Z);
  66.     mysql_free_result();
  67.  
  68.     if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER && strval(interior) == 0 && strval(world) == 0)
  69.     {
  70.         new vid = GetPlayerVehicleID(playerid);
  71.         SetVehiclePos(vid, floatstr(X),floatstr(Y),floatstr(Z)  + 0.5);
  72.         LinkVehicleToInterior(vid, 0);
  73.         SetVehicleVirtualWorld(vid, 0);
  74.  
  75.         }else{
  76.         SetPlayerPos(playerid, floatstr(X),floatstr(Y),floatstr(Z));
  77.         GameTextForPlayer(playerid, cmdtext, 5000, 2);
  78.     }
  79.     SetPlayerInterior(playerid, strval(interior));
  80.     SetPlayerVirtualWorld(playerid, strval(world));
  81.     PlayerPlaySound(playerid, 1085, 0.0, 0.0, 0.0);
  82.     mysql_free_result();
  83.     return 1;
  84. }
  85.  
  86. CMD:newteleport(playerid, name_tele[], params[])//cała komenda ;d
  87. {
  88.     if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xB00000FF, "(E) Brak dostępu RCON!");//Sprawdza czy jesteś zalogowany na ROCON
  89.  
  90.     if(isnull(name_tele) || params[0] == '/') return SendClientMessage(playerid, 0xD20000FF, "(E) /newteleport [nazwa]");//Jeśli wpiszesz błędnie komende
  91.  
  92.     new Float:x_y_z[3];
  93.     GetPlayerPos(playerid, x_y_z[0], x_y_z[1], x_y_z[2]);//Sprawdza pozycje
  94.  
  95.     format(Query, sizeof Query, "INSERT INTO `dynamic_teles` (`name`,`interior`, `world`, `X`, `Y`, `Z`) VALUES ('/%s', '%d', '%d', '%.2f', '%.2f', '%.2f');",
  96.     name_tele, GetPlayerInterior(playerid), GetPlayerVirtualWorld(playerid), x_y_z[0], x_y_z[1], x_y_z[2]);//Zapisuje daną cmd, interior, world, pozycje(x,y,z) do bazy danych(mysql0.
  97.  
  98.     mysql_query(Query);
  99.  
  100.     SendClientMessage(playerid, 0xC46200FF, "(I) Teleport poprawnie został stworzony, zapisanu do bazy danych!");//Jesli wszystko zrobisz dobrze - pokaże się info. ;d
  101.     return 1;
  102. }
  103. //Koniec ;p Tera razem z Adagio pracujemy nad systemem administratora. Pozdrawiamy!
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement