Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include < a_samp >
- #include < a_mysql >
- #include < Pawn.CMD >
- #include < foreach >
- #define MYSQL_HOST "127.0.0.1"
- #define MYSQL_USER "root"
- #define MYSQL_PASSWORD ""
- #define MYSQL_DATABASE "testkont"
- #define MAX_KONTEJNERI 150
- #define SCM SendClientMessage
- #define NOVAC_MIN 100
- #define NOVAC_MAX 1000
- #define METKOVI_MIN 1
- #define METKOVI_MAX 30
- enum kontInfo {
- Float:kontPosX,
- Float:kontPosY,
- Float:kontPosZ,
- Float:kontRotX,
- Float:kontRotY,
- Float:kontRotZ,
- kID,
- kontID
- }
- new MySQL:g_SQL;
- new KontInfo[ MAX_KONTEJNERI ][ kontInfo ], Text3D:KontLabel[ sizeof(KontInfo) ], EditKontejner[ MAX_PLAYERS ];
- new bool:PretrazujeKont[ MAX_PLAYERS ], PKontTimer[ MAX_PLAYERS ], KontCooldown[ MAX_PLAYERS ], Iterator:ServerKonts<MAX_KONTEJNERI>;
- public OnPlayerConnect(playerid) { KontCooldown[ playerid ] = 0; EditKontejner[ playerid ] = -1; PretrazujeKont[ playerid ] = false; return 1; }
- public OnPlayerEditObject(playerid, playerobject, objectid, response, Float:fX, Float:fY, Float:fZ, Float:fRotX, Float:fRotY, Float:fRotZ) {
- if(response == EDIT_RESPONSE_FINAL) {
- if(EditKontejner[ playerid ] != -1) {
- new i = EditKontejner[ playerid ], query[ 250 ];
- KontInfo[ i ][ kontPosX ] = fX;
- KontInfo[ i ][ kontPosY ] = fY;
- KontInfo[ i ][ kontPosZ ] = fZ;
- KontInfo[ i ][ kontRotX ] = fRotX;
- KontInfo[ i ][ kontRotY ] = fRotY;
- KontInfo[ i ][ kontRotZ ] = fRotZ;
- DestroyObject(KontInfo[ i ][ kID ]);
- KontInfo[ i ][ kID ] = CreateObject(1439, fX, fY, fZ, fRotX, fRotY, fRotZ);
- KontLabel[ i ] = Create3DTextLabel("/kontejner", 0xFFFFFFFF, fX, fY, fZ, 10.0, 0, 0);
- SCM(playerid, -1, "Zavrsili ste kreiranje kontejnera.");
- mysql_format(g_SQL, query, sizeof query, "INSERT INTO `kontejneri` (`Lokacija_X`, `Lokacija_Y`, `Lokacija_Z`, `Rotacija_X`, `Rotacija_Y`, `Rotacija_Z`) VALUES ('%f', '%f', '%f', '%f', '%f', '%f')", KontInfo[ i ][ kontPosX ], KontInfo[ i ][ kontPosY ], KontInfo[ i ][ kontPosZ ], KontInfo[ i ][ kontRotX ], KontInfo[ i ][ kontRotY ], KontInfo[ i ][ kontRotZ ]);
- mysql_tquery(g_SQL, query);
- EditKontejner[ playerid ] = -1;
- }
- }
- return 1;
- }
- public OnFilterScriptInit() {
- new MySQLOpt: option_id = mysql_init_options();
- g_SQL = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASSWORD, MYSQL_DATABASE, option_id);
- if (g_SQL == MYSQL_INVALID_HANDLE || mysql_errno(g_SQL) != 0)
- {
- print("MySQL konekcija neuspesna. Proverite podatke i databazu");
- SendRconCommand("exit");
- return 1;
- }
- print("MySQL konekcija, uspesna");
- SetupKontTable();
- mysql_tquery(g_SQL, "SELECT * FROM `kontejneri`", "LoadKonts", "");
- return 1;
- }
- public OnPlayerDeath(playerid, killerid, reason) {
- if(PretrazujeKont[ playerid ]) { PretrazujeKont[ playerid ] = false; KillTimer(PKontTimer[ playerid ]); }
- return 1;
- }
- forward PretrazivanjeKont(playerid);
- public PretrazivanjeKont(playerid) {
- PretrazujeKont[ playerid ] = false;
- TogglePlayerControllable(playerid, true);
- new rand = random(3);
- switch( rand ) {
- case 1: {
- new metkovi, str[ 45 ];
- metkovi = RandomEx(METKOVI_MIN, METKOVI_MAX);
- format(str, sizeof(str), "Nasli ste MP5 sa %d metkova u kontejneru.", metkovi);
- SCM(playerid, -1, str);
- GivePlayerWeapon(playerid, 29, metkovi);
- }
- case 2: {
- new novac, str[ 45 ];
- novac = RandomEx(NOVAC_MIN, NOVAC_MAX);
- format(str, sizeof(str), "Nasli ste %d$ u kontejneru.", novac);
- SCM(playerid, -1, str);
- GivePlayerMoney(playerid, novac);
- }
- case 3: {
- SCM(playerid, -1, "Niste pronasli nista u kontejneru.");
- }
- }
- return 1;
- }
- forward LoadKonts();
- public LoadKonts() {
- new rows = cache_num_rows();
- if(rows) {
- for(new i; i < rows; i++) {
- new id = Iter_Free(ServerKonts);
- cache_get_value_name_float(i, "Lokacija_X", KontInfo[ id ][ kontPosX ]);
- cache_get_value_name_float(i, "Lokacija_Y", KontInfo[ id ][ kontPosY ]);
- cache_get_value_name_float(i, "Lokacija_Z", KontInfo[ id ][ kontPosZ ]);
- cache_get_value_name_float(i, "Rotacija_X", KontInfo[ id ][ kontRotX ]);
- cache_get_value_name_float(i, "Rotacija_Y", KontInfo[ id ][ kontRotY ]);
- cache_get_value_name_float(i, "Rotacija_Z", KontInfo[ id ][ kontRotZ ]);
- KontInfo[ i ][ kID ] = CreateObject(1439, KontInfo[ i ][ kontPosX ], KontInfo[ i ][ kontPosY ], KontInfo[ i ][ kontPosZ ], KontInfo[ i ][ kontRotX ], KontInfo[ i ][ kontRotY ], KontInfo[ i ][ kontRotZ ]);
- KontLabel[ i ] = Create3DTextLabel("/kontejner", 0xFFFFFFFF, KontInfo[ i ][ kontPosX ], KontInfo[ i ][ kontPosY ], KontInfo[ i ][ kontPosZ ], 10.0, 0, 0);
- Iter_Add(ServerKonts, id);
- }
- }
- return 1;
- }
- SetupKontTable() {
- mysql_tquery(g_SQL, "CREATE TABLE IF NOT EXISTS `kontejneri` (`id` int(11) NOT NULL AUTO_INCREMENT,`Lokacija_X` float NOT NULL,`Lokacija_Y` float NOT NULL,`Lokacija_Z` float NOT NULL,`Rotacija_X` float NOT NULL, `Rotacija_Y` float NOT NULL, `Rotacija_Z` float NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `id` (`id`))");
- return 1;
- }
- cmd:kontejner(playerid, params[]) {
- #pragma unused params
- new vreme = gettime(), str[ 60 ];
- if(PretrazujeKont[ playerid ]) return SCM(playerid, -1, "Vec pretrazujete kontejner.");
- format(str, sizeof(str), "Nije proslo 10 minuta. Preostalo jos %d sekundi.", KontCooldown[ playerid ]+600-vreme);
- if(vreme < KontCooldown[ playerid ]+600) return SCM(playerid, -1, str);
- for(new i; i < MAX_KONTEJNERI; i++) {
- if(IsPlayerInRangeOfPoint(playerid, 4.0, KontInfo[ i ][ kontPosX ], KontInfo[ i ][ kontPosY ], KontInfo[ i ][ kontPosZ ])) {
- PKontTimer[ playerid ] = SetTimerEx("PretrazivanjeKont", 7000, false, "i", playerid);
- GameTextForPlayer(playerid, "Pretrazivanje kontejnera, sacekajte...", 7000, 1);
- PretrazujeKont[ playerid ] = true;
- TogglePlayerControllable(playerid, false);
- ApplyAnimation(playerid,"PED","IDLE_tired",3.0,1,0,0,0,0);
- KontCooldown[ playerid ] = gettime();
- }
- }
- return 1;
- }
- cmd:kreirajkontejner(playerid, params[]) {
- #pragma unused params
- new Float:X, Float:Y, Float:Z;
- new i = Iter_Free(ServerKonts);
- if(!IsPlayerAdmin(playerid)) return SCM(playerid, -1, "Niste RCON Admin.");
- if(EditKontejner[ playerid ] != -1) return SCM(playerid, -1, "Vec kreirate kontejner.");
- GetPlayerPos(playerid, X,Y,Z);
- KontInfo[ i ][ kID ] = CreateObject(1439, X+1, Y+1, Z+1, 0.0, 0.0, 0.0);
- EditObject(playerid, KontInfo[ i ][ kID ]);
- EditKontejner[ playerid ] = i;
- KontInfo[ i ][ kontID ] = i;
- SCM(playerid, -1, "Zapoceli ste kreiranje kontejnera.");
- return 1;
- }
- RandomEx(min,max) {
- return (min+random(max));
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement