- /*••••••••••••••••••••••••••••••••••••••••••
- Kodlayan: Silver
- Kodlama Tarihi: 28.05.2019
- Sistem Tanımı: Gelişmiş Dinamik Kapı/Gate
- ••••••••••••••••••••••••••••••••••••••••••*/
- #include <a_samp>
- #include <a_mysql>
- #include <sscanf2>
- #include <foreach>
- #include <streamer>
- #include <zcmd>
- #define MYSQL_HOST "localhost"
- #define MYSQL_KULLANICI "root"
- #define MYSQL_SIFRE ""
- #define MYSQL_DATABASE "silver"
- #define MAX_GATE (100)
- #define func%0(%1) forward%0(%1); public%0(%1)
- // "true" sadece rcon'a gate id bilgisini açar.
- //"false" oyunculara gate id bilgisini açar.
- #define GATE_BILGISI (true)
- #define GATE_DIALOG (9990)
- #define GATE_DIALOG_X (9991)
- new MySQL: g_SQL;
- new Iterator: Gateler<MAX_GATE>;
- new GateAraTimer[MAX_PLAYERS], renkDeger[MAX_PLAYERS];
- new PlayerText:GateTextdraw[MAX_PLAYERS];
- new GateDuzenliyorum[MAX_PLAYERS];
- enum tdRenk{hexKod[7]};
- new TextdrawRenkleri[][tdRenk] = {{"8CF292"},{"9BE3E1"},{"ACD2AE"},{"D0F18D"},{"FED681"},{"E8A797"}};
- enum gData
- {
- gateObje,
- gateObjeModel,
- gateInterior,
- gateVirtual,
- Float:gateAcikPos[6],
- Float:gateKapaliPos[6],
- gateSifre[256],
- Float:gateHiz,
- Float:gateUzaklik,
- bool:gateDurum,
- };
- new gateData[MAX_GATE][gData];
- public OnFilterScriptInit()
- {
- new MySQLOpt: option_id = mysql_init_options();
- mysql_set_option(option_id, AUTO_RECONNECT, true);
- g_SQL = mysql_connect(MYSQL_HOST, MYSQL_KULLANICI, MYSQL_SIFRE, MYSQL_DATABASE, option_id);
- if (g_SQL == MYSQL_INVALID_HANDLE || mysql_errno(g_SQL) != 0) return print("» Silver: Gate sistemine ait veritabanı bağlantısı kurulamadı."),SendRconCommand("exit");
- printf("» Silver: Gate sistemine ait veritabanı bağlantısı kuruldu. (%s)", MYSQL_HOST);
- mysql_tquery(g_SQL, "SELECT * FROM `gateler`", "GateYukle");
- return 1;
- }
- public OnFilterScriptExit()
- {
- foreach(new i : Gateler)
- {
- DestroyDynamicObject(gateData[i][gateObje]);
- gateData[i][gateObjeModel] = 0;
- gateData[i][gateObje] = INVALID_OBJECT_ID;
- format(gateData[i][gateSifre], 32, "-");
- gateData[i][gateHiz] = 0.0;
- gateData[i][gateUzaklik] = 0.0;
- gateData[i][gateDurum] = false;
- gateData[i][gateInterior] = 0;
- gateData[i][gateVirtual] = 0;
- for(new xd ; xd < 6 ; xd ++)
- {
- gateData[i][gateAcikPos][xd] = 0.0;
- gateData[i][gateKapaliPos][xd] = 0.0;
- }
- }
- return printf("» Silver: Dinamik gate sistemi sonlandırıldı."), 1;
- }
- public OnPlayerConnect(playerid)
- {
- GateTextdraw[playerid] = CreatePlayerTextDraw(playerid, 122.000000, 370.000000, "");
- PlayerTextDrawFont(playerid, GateTextdraw[playerid], 2);
- PlayerTextDrawLetterSize(playerid, GateTextdraw[playerid], 0.233333, 1.300000);
- PlayerTextDrawTextSize(playerid, GateTextdraw[playerid], 731.000000, 57.000000);
- PlayerTextDrawSetOutline(playerid, GateTextdraw[playerid], 1);
- PlayerTextDrawSetShadow(playerid, GateTextdraw[playerid], 0);
- PlayerTextDrawAlignment(playerid, GateTextdraw[playerid], 1);
- PlayerTextDrawColor(playerid, GateTextdraw[playerid], -1);
- PlayerTextDrawBackgroundColor(playerid, GateTextdraw[playerid], 255);
- PlayerTextDrawBoxColor(playerid, GateTextdraw[playerid], 50);
- PlayerTextDrawUseBox(playerid, GateTextdraw[playerid], 0);
- PlayerTextDrawSetProportional(playerid, GateTextdraw[playerid], 1);
- PlayerTextDrawSetSelectable(playerid, GateTextdraw[playerid], 0);
- renkDeger[playerid] = 0; GateDuzenliyorum[playerid] = 0;
- GateAraTimer[playerid] = SetTimerEx("GateArama", 700, true, "d", playerid);
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- KillTimer(GateAraTimer[playerid]);
- return 1;
- }
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- switch(dialogid)
- {
- case GATE_DIALOG:
- {
- if(response)
- {
- new id = GetPVarInt(playerid, "GateDuzenleID");
- SetPVarInt(playerid, "GateIslemID", listitem);
- switch(listitem)
- {
- case 0:{GateDuzenliyorum[playerid] = 1; EditDynamicObject(playerid, gateData[id][gateObje]);}
- case 1:{GateDuzenliyorum[playerid] = 2; EditDynamicObject(playerid, gateData[id][gateObje]);}
- case 3:{ShowPlayerDialog(playerid, GATE_DIALOG_X, DIALOG_STYLE_INPUT, "{FFFFFF}Kapı Hızı","{FFFFFF}Kapı hızını değiştirmek için aşağıya değer giriniz.","Onayla","Kapat");}
- case 4:{ShowPlayerDialog(playerid, GATE_DIALOG_X, DIALOG_STYLE_INPUT, "{FFFFFF}Erişim Uzaklığı","{FFFFFF}Kapıy erişim parametresini değiştirmek için aşağıya değer giriniz.","Onayla","Kapat");}
- case 5:{ShowPlayerDialog(playerid, GATE_DIALOG_X, DIALOG_STYLE_INPUT, "{FFFFFF}Kapı Şifresi","{FFFFFF}Kapı şifresini kutucuğa giriniz, silmek için {E6D799}boş{FFFFFF} bırakıp onaylayın.","Onayla","Kapat");}
- case 6:{ShowPlayerDialog(playerid, GATE_DIALOG_X, DIALOG_STYLE_INPUT, "{FFFFFF}Virtual Değeri","{FFFFFF}Kapıya ait virtual değerini kutucuğa girip onayla tuşuna basın.","Onayla","Kapat");}
- case 7:{ShowPlayerDialog(playerid, GATE_DIALOG_X, DIALOG_STYLE_INPUT, "{FFFFFF}Interior Değeri","{FFFFFF}Kapıya ait interior değerini kutucuğa girip onayla tuşuna basın.","Onayla","Kapat");}
- case 8:{ShowPlayerDialog(playerid, GATE_DIALOG_X, DIALOG_STYLE_INPUT, "{FFFFFF}Obje Modeli","{FFFFFF}Kapı modelini kutucuğa girip onayla tuşuna basın.","Onayla","Kapat");}
- case 10:
- {
- if(gateData[id][gateAcikPos][0] == gateData[id][gateKapaliPos][0] && gateData[id][gateAcikPos][1] == gateData[id][gateKapaliPos][1] && gateData[id][gateAcikPos][2] == gateData[id][gateKapaliPos][2]) return SendClientMessage(playerid, -1, "{EC6C6C}<!>{FFFFFF} Bu kapı henüz ayarlanmamış.");
- if(gateData[id][gateHiz] == 0) return SendClientMessage(playerid, -1, "{EC6C6C}<!>{FFFFFF} Bu kapının hızı ayarlı değil.");
- if(gateData[id][gateDurum] == true)
- {
- MoveDynamicObject(gateData[id][gateObje], gateData[id][gateKapaliPos][0], gateData[id][gateKapaliPos][1], gateData[id][gateKapaliPos][2], gateData[id][gateHiz], gateData[id][gateKapaliPos][3], gateData[id][gateKapaliPos][4], gateData[id][gateKapaliPos][5]);
- gateData[id][gateDurum] = false;
- }
- else
- {
- MoveDynamicObject(gateData[id][gateObje], gateData[id][gateAcikPos][0], gateData[id][gateAcikPos][1], gateData[id][gateAcikPos][2], gateData[id][gateHiz], gateData[id][gateAcikPos][3], gateData[id][gateAcikPos][4], gateData[id][gateAcikPos][5]);
- gateData[id][gateDurum] = true;
- }
- GateDuzenleMenu(playerid);
- }
- case 11:
- {
- SetPlayerPos(playerid,gateData[id][gateKapaliPos][0], gateData[id][gateKapaliPos][1] + 0.5, gateData[id][gateKapaliPos][2] + 2.1);
- SetPlayerVirtualWorld(playerid,gateData[id][gateVirtual]); SetPlayerInterior(playerid,gateData[id][gateInterior]);
- }
- default:GateDuzenleMenu(playerid);
- }
- }
- }
- case GATE_DIALOG_X:
- {
- if(response)
- {
- new x = GetPVarInt(playerid, "GateIslemID"),
- id = GetPVarInt(playerid, "GateDuzenleID");
- switch(x)
- {
- case 3:gateData[id][gateHiz] = floatstr(inputtext);
- case 4:gateData[id][gateUzaklik] = floatstr(inputtext);
- case 5:
- {
- if(strlen(inputtext) <= 0)
- {
- format(gateData[id][gateSifre], 32, "-");
- }
- else format(gateData[id][gateSifre], 32, inputtext);
- }
- case 6:
- {
- gateData[id][gateVirtual] = strval(inputtext);
- if(IsValidDynamicObject(gateData[id][gateObje])){DestroyDynamicObject(gateData[id][gateObje]);}
- gateData[id][gateDurum] = false;
- gateData[id][gateObje] = CreateDynamicObject(gateData[id][gateObjeModel], gateData[id][gateKapaliPos][0],\
- gateData[id][gateKapaliPos][1], gateData[id][gateKapaliPos][2], gateData[id][gateKapaliPos][3],\
- gateData[id][gateKapaliPos][4], gateData[id][gateKapaliPos][5], gateData[id][gateVirtual], gateData[id][gateInterior]);
- }
- case 7:
- {
- gateData[id][gateInterior] = strval(inputtext);
- if(IsValidDynamicObject(gateData[id][gateObje])){DestroyDynamicObject(gateData[id][gateObje]);}
- gateData[id][gateDurum] = false;
- gateData[id][gateObje] = CreateDynamicObject(gateData[id][gateObjeModel], gateData[id][gateKapaliPos][0],\
- gateData[id][gateKapaliPos][1], gateData[id][gateKapaliPos][2], gateData[id][gateKapaliPos][3],\
- gateData[id][gateKapaliPos][4], gateData[id][gateKapaliPos][5], gateData[id][gateVirtual], gateData[id][gateInterior]);
- }
- case 8:
- {
- gateData[id][gateObjeModel] = strval(inputtext);
- if(IsValidDynamicObject(gateData[id][gateObje])){DestroyDynamicObject(gateData[id][gateObje]);}
- gateData[id][gateObje] = CreateDynamicObject(gateData[id][gateObjeModel], gateData[id][gateKapaliPos][0],\
- gateData[id][gateKapaliPos][1], gateData[id][gateKapaliPos][2], gateData[id][gateKapaliPos][3],\
- gateData[id][gateKapaliPos][4], gateData[id][gateKapaliPos][5], gateData[id][gateVirtual], gateData[id][gateInterior]);
- }
- }
- GateDuzenleMenu(playerid);
- }
- }
- }
- return 1;
- }
- public OnPlayerEditDynamicObject(playerid, objectid, response, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz)
- {
- switch(GateDuzenliyorum[playerid])
- {
- case 1:
- {
- new id = GetPVarInt(playerid, "GateDuzenleID");
- switch(response)
- {
- case EDIT_RESPONSE_CANCEL:
- {
- GateDuzenliyorum[playerid] = 0;
- }
- case EDIT_RESPONSE_FINAL:
- {
- GateDuzenliyorum[playerid] = 0;
- gateData[id][gateDurum] = true;
- gateData[id][gateAcikPos][0] = x;gateData[id][gateAcikPos][1] = y;gateData[id][gateAcikPos][2] = z;
- gateData[id][gateAcikPos][3] = rx;gateData[id][gateAcikPos][4] = ry;gateData[id][gateAcikPos][5] = rz;
- GateDuzenleMenu(playerid); GateKaydet(id);
- }
- }
- }
- case 2:
- {
- new id = GetPVarInt(playerid, "GateDuzenleID");
- switch(response)
- {
- case EDIT_RESPONSE_CANCEL:
- {
- GateDuzenliyorum[playerid] = 0;
- }
- case EDIT_RESPONSE_FINAL:
- {
- GateDuzenliyorum[playerid] = 0;
- gateData[id][gateDurum] = false;
- gateData[id][gateKapaliPos][0] = x;gateData[id][gateKapaliPos][1] = y;gateData[id][gateKapaliPos][2] = z;
- gateData[id][gateKapaliPos][3] = rx;gateData[id][gateKapaliPos][4] = ry;gateData[id][gateKapaliPos][5] = rz;
- GateDuzenleMenu(playerid); GateKaydet(id);
- }
- }
- }
- }
- return 1;
- }
- func GateArama(playerid)
- {
- new id = GateBul(playerid, true, 2.0), str[256], hexstr[12], hexkodu;
- if(id != -1)
- {
- #if GATE_BILGISI true
- if(!IsPlayerAdmin(playerid)) return true;
- #endif
- if(renkDeger[playerid]==sizeof(TextdrawRenkleri)-1)
- {
- renkDeger[playerid]=0;
- }
- else renkDeger[playerid]++;
- PlayerTextDrawHide(playerid, GateTextdraw[playerid]);
- format(hexstr, sizeof(hexstr), "0x%sFF", TextdrawRenkleri[renkDeger[playerid]][hexKod]); sscanf(hexstr, "x", hexkodu);
- PlayerTextDrawColor(playerid, GateTextdraw[playerid], hexkodu);
- format(str, sizeof(str), "Gate ID: ~w~%d", id);
- PlayerTextDrawSetString(playerid, GateTextdraw[playerid], str);
- PlayerTextDrawShow(playerid, GateTextdraw[playerid]);
- }
- else PlayerTextDrawHide(playerid, GateTextdraw[playerid]);
- str[0] = 0;
- return 1;
- }
- func GateYukle()
- {
- new rows;
- cache_get_row_count(rows);
- if(rows)
- {
- new id, cekilen, string[512];
- while(cekilen < rows)
- {
- cache_get_value_name_int(cekilen, "id", id);
- cache_get_value_name_int(cekilen, "obje", gateData[id][gateObjeModel]);
- cache_get_value_name_int(cekilen, "interior", gateData[id][gateInterior]);
- cache_get_value_name_int(cekilen, "vw", gateData[id][gateVirtual]);
- cache_get_value_name_float(cekilen, "hiz", gateData[id][gateHiz]);
- cache_get_value_name_float(cekilen, "uzaklik", gateData[id][gateUzaklik]);
- cache_get_value_name(cekilen, "acikpos", string, sizeof(string));
- sscanf(string, "p<|>ffffff", gateData[id][gateAcikPos][0], gateData[id][gateAcikPos][1], gateData[id][gateAcikPos][2], gateData[id][gateAcikPos][3], gateData[id][gateAcikPos][4], gateData[id][gateAcikPos][5]);
- cache_get_value_name(cekilen, "kapalipos", string, sizeof(string));
- sscanf(string, "p<|>ffffff", gateData[id][gateKapaliPos][0], gateData[id][gateKapaliPos][1], gateData[id][gateKapaliPos][2], gateData[id][gateKapaliPos][3], gateData[id][gateKapaliPos][4], gateData[id][gateKapaliPos][5]);
- cache_get_value_name(cekilen, "sifre", gateData[id][gateSifre]);
- gateData[id][gateObje] = CreateDynamicObject(gateData[id][gateObjeModel], gateData[id][gateKapaliPos][0], gateData[id][gateKapaliPos][1], gateData[id][gateKapaliPos][2], gateData[id][gateKapaliPos][3], gateData[id][gateKapaliPos][4], gateData[id][gateKapaliPos][5], gateData[id][gateVirtual], gateData[id][gateInterior]);
- gateData[id][gateDurum] = false;
- Iter_Add(Gateler, id);
- cekilen++;
- }
- printf("» Silver: Dinamik %d gate yüklendi.", cekilen);
- }
- else printf("» Silver: Yüklenebilir dinamik gate bulunamadı.");
- return 1;
- }
- stock GateBul(playerid, bool:deger = false, Float:Yakinlik = 7.0)
- {
- switch(deger)
- {
- case false:
- {
- foreach(new g: Gateler)
- {
- if(IsPlayerInRangeOfPoint(playerid, gateData[g][gateUzaklik], gateData[g][gateAcikPos][0], gateData[g][gateAcikPos][1], gateData[g][gateAcikPos][2])) return g;
- }
- }
- case true:
- {
- foreach(new g: Gateler)
- {
- if(IsPlayerInRangeOfPoint(playerid, Yakinlik, gateData[g][gateAcikPos][0], gateData[g][gateAcikPos][1], gateData[g][gateAcikPos][2])) return g;
- }
- }
- }
- return -1;
- }
- stock GetXYInFrontOfPlayer(playerid, &Float:x, &Float:y, Float:distance)
- {
- new Float: a;
- GetPlayerPos(playerid, x, y, a);
- GetPlayerFacingAngle(playerid, a);
- if (GetPlayerVehicleID(playerid)) GetVehicleZAngle(GetPlayerVehicleID(playerid), a);
- x += (distance * floatsin(-a, degrees)), y += (distance * floatcos(-a, degrees));
- }
- stock GateOlustur(playerid, id, model)
- {
- new query[128 * 2]; gateData[id][gateDurum] = false;
- gateData[id][gateHiz] = 5.0;gateData[id][gateUzaklik] = 5.0;
- gateData[id][gateObjeModel] = model; format(gateData[id][gateSifre], 32, "-");
- gateData[id][gateVirtual] = GetPlayerVirtualWorld(playerid); gateData[id][gateInterior] = GetPlayerInterior(playerid);
- GetPlayerPos(playerid, gateData[id][gateAcikPos][0], gateData[id][gateAcikPos][1], gateData[id][gateAcikPos][2]);
- GetPlayerFacingAngle(playerid, gateData[id][gateAcikPos][5]); gateData[id][gateAcikPos][3]=0.0;gateData[id][gateAcikPos][4]=0.0;
- GetXYInFrontOfPlayer(playerid, gateData[id][gateAcikPos][0], gateData[id][gateAcikPos][1], 3.0);
- for(new i;i<6;i++){gateData[id][gateKapaliPos][i] = gateData[id][gateAcikPos][i];}
- gateData[id][gateObje] = CreateDynamicObject(gateData[id][gateObjeModel], gateData[id][gateKapaliPos][0],\
- gateData[id][gateKapaliPos][1], gateData[id][gateKapaliPos][2], gateData[id][gateKapaliPos][3],\
- gateData[id][gateKapaliPos][4], gateData[id][gateKapaliPos][5], gateData[id][gateVirtual], gateData[id][gateInterior]);
- mysql_format(g_SQL, query, sizeof(query),"INSERT INTO `gateler` (`id`) VALUES ('%d')", id);
- mysql_tquery(g_SQL, query); Iter_Add(Gateler, id);
- GateKaydet(id);
- return 1;
- }
- stock GateKaydet(id)
- {
- new query[256 * 3], acpos[256], kapos[256];
- format(acpos, sizeof(acpos), "%.1f|%.1f|%.1f|%.1f|%.1f|%.1f", gateData[id][gateAcikPos][0], gateData[id][gateAcikPos][1], gateData[id][gateAcikPos][2], gateData[id][gateAcikPos][3], gateData[id][gateAcikPos][4], gateData[id][gateAcikPos][5]);
- format(kapos, sizeof(kapos), "%.1f|%.1f|%.1f|%.1f|%.1f|%.1f", gateData[id][gateKapaliPos][0], gateData[id][gateKapaliPos][1], gateData[id][gateKapaliPos][2], gateData[id][gateKapaliPos][3], gateData[id][gateKapaliPos][4], gateData[id][gateKapaliPos][5]);
- mysql_format(g_SQL, query, sizeof(query), "UPDATE `gateler` SET `obje` = '%d' WHERE `id` = '%d' LIMIT 1", gateData[id][gateObjeModel], id);
- mysql_tquery(g_SQL, query);
- mysql_format(g_SQL, query, sizeof(query), "UPDATE `gateler` SET `interior` = '%d',`vw` = '%d' WHERE `id` = '%d' LIMIT 1", gateData[id][gateInterior], gateData[id][gateVirtual], id);
- mysql_tquery(g_SQL, query);
- mysql_format(g_SQL, query, sizeof(query), "UPDATE `gateler` SET `acikpos` = '%s' WHERE `id` = '%d' LIMIT 1", acpos, id);
- mysql_tquery(g_SQL, query);
- mysql_format(g_SQL, query, sizeof(query), "UPDATE `gateler` SET `kapalipos` = '%s' WHERE `id` = '%d' LIMIT 1", kapos, id);
- mysql_tquery(g_SQL, query);
- mysql_format(g_SQL, query, sizeof(query), "UPDATE `gateler` SET `hiz` = '%.1f' WHERE `id` = '%d' LIMIT 1", gateData[id][gateHiz], id);
- mysql_tquery(g_SQL, query);
- mysql_format(g_SQL, query, sizeof(query), "UPDATE `gateler` SET `uzaklik` = '%.1f' WHERE `id` = '%d' LIMIT 1", gateData[id][gateUzaklik], id);
- mysql_tquery(g_SQL, query);
- mysql_format(g_SQL, query, sizeof(query), "UPDATE `gateler` SET `sifre` = '%s' WHERE `id` = '%d' LIMIT 1", gateData[id][gateSifre], id);
- mysql_tquery(g_SQL, query);
- return 1;
- }
- stock GateSil(id)
- {
- DestroyDynamicObject(gateData[id][gateObje]); gateData[id][gateObjeModel] = 0; gateData[id][gateVirtual] = 0;
- gateData[id][gateObje] = INVALID_OBJECT_ID; format(gateData[id][gateSifre], 32, "-"); gateData[id][gateHiz] = 0.0;
- gateData[id][gateUzaklik] = 0.0; gateData[id][gateDurum] = false; gateData[id][gateInterior] = 0;
- for(new xd ; xd < 6 ; xd ++)
- {
- gateData[id][gateAcikPos][xd] = 0.0;
- gateData[id][gateKapaliPos][xd] = 0.0;
- }
- Iter_Remove(Gateler, id);
- return 1;
- }
- stock GateDuzenleMenu(playerid)
- {
- new str[1024], baslik[256], id = GetPVarInt(playerid, "GateDuzenleID"), acpos[256], kapos[256];
- format(acpos, sizeof(acpos), "%.1f, %.1f, %.1f", gateData[id][gateAcikPos][0], gateData[id][gateAcikPos][1], gateData[id][gateAcikPos][2]);
- format(kapos, sizeof(kapos), "%.1f, %.1f, %.1f", gateData[id][gateKapaliPos][0], gateData[id][gateKapaliPos][1], gateData[id][gateKapaliPos][2]);
- format(baslik, sizeof(baslik), "{FFFFFF}Gate Duzenle #%d", id);
- strcat(str, "{FFFFFF}Işlev\t{FFFFFF}#\n");
- if(renkDeger[playerid]==sizeof(TextdrawRenkleri)-1)
- {
- renkDeger[playerid]=0;
- }
- else renkDeger[playerid]++;
- format(str, sizeof(str), "%s{%s}<!>{FFFFFF} Açık Pozisyon\t%s\n", str, TextdrawRenkleri[renkDeger[playerid]][hexKod], acpos);
- format(str, sizeof(str), "%s{%s}<!>{FFFFFF} Kapalı Pozisyon\t%s\n \n", str, TextdrawRenkleri[renkDeger[playerid]][hexKod], kapos);
- format(str, sizeof(str), "%s{%s}<!>{FFFFFF} Kapı Hızı\t%.1f m/s\n", str, TextdrawRenkleri[renkDeger[playerid]][hexKod], gateData[id][gateHiz]);
- format(str, sizeof(str), "%s{%s}<!>{FFFFFF} Erişim Uzaklığı\t%.1f pr\n", str, TextdrawRenkleri[renkDeger[playerid]][hexKod], gateData[id][gateUzaklik]);
- format(str, sizeof(str), "%s{%s}<!>{FFFFFF} Kapı Şifresi\t%s\n\n", str, TextdrawRenkleri[renkDeger[playerid]][hexKod], gateData[id][gateSifre]);
- format(str, sizeof(str), "%s{%s}<!>{FFFFFF} Virtual Değeri\t%d\n\n", str, TextdrawRenkleri[renkDeger[playerid]][hexKod], gateData[id][gateVirtual]);
- format(str, sizeof(str), "%s{%s}<!>{FFFFFF} Interior Değeri\t%d\n\n", str, TextdrawRenkleri[renkDeger[playerid]][hexKod], gateData[id][gateInterior]);
- format(str, sizeof(str), "%s{%s}<!>{FFFFFF} Obje Modeli\t%d\n \n", str, TextdrawRenkleri[renkDeger[playerid]][hexKod], gateData[id][gateObjeModel]);
- format(str, sizeof(str), "%s{%s}<!>{FFFFFF} Kapı Durumu\t%s\n", str, TextdrawRenkleri[renkDeger[playerid]][hexKod], (gateData[id][gateDurum] == true) ? ("{73EB65}Açık") : ("{FA6656}Kapalı"));
- format(str, sizeof(str), "%s{%s}<!>{FFFFFF} Kapıya Işınlan\t{288A61}>>>\n", str, TextdrawRenkleri[renkDeger[playerid]][hexKod]);
- ShowPlayerDialog(playerid, GATE_DIALOG, DIALOG_STYLE_TABLIST_HEADERS, baslik, str, "Ayarla", "Iptal");
- return 1;
- }
- CMD:gateolustur(playerid, params[])
- {
- if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, -1, "{B30000}<!>{FFFFFF} Geçersiz yetki tipi.");
- new id = Iter_Free(Gateler), obje;
- if(id == -1) return SendClientMessage(playerid, -1, "{EC6C6C}<!>{FFFFFF} Sunucu maksimum gate seviyesine ulaştı.");
- if(sscanf(params, "d", obje)) return SendClientMessage(playerid, -1, "{9BB5E3}<!>{FFFFFF} /gateolustur [obje modeli]");
- GateOlustur(playerid, id, obje);
- SendClientMessage(playerid, -1, "{9CE2B5}<!>{FFFFFF} Yeni bir gate başarıyla oluşturuldu, kontrol etmek için; /gateduzenle [id]");
- return 1;
- }
- CMD:gatesil(playerid, params[])
- {
- if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, -1, "{B30000}<!>{FFFFFF} Geçersiz yetki tipi.");
- new id;
- if(sscanf(params, "d", id)) return SendClientMessage(playerid, -1, "{9BB5E3}<!>{FFFFFF} /gatesil [id]");
- if(!Iter_Contains(Gateler, id)) return SendClientMessage(playerid, -1, "{EC6C6C}<!>{FFFFFF} Belirtilen ID'de gate mevcut değil.");
- GateSil(id);
- SendClientMessage(playerid, -1, "{9CE2B5}<!>{FFFFFF} Girilen değeri karşılayan gate başarıyla silindi.");
- return 1;
- }
- CMD:gateduzenle(playerid, params[])
- {
- if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, -1, "{B30000}<!>{FFFFFF} Geçersiz yetki tipi.");
- new id;
- if(sscanf(params, "d", id)) return SendClientMessage(playerid, -1, "{9BB5E3}<!>{FFFFFF} /gateduzenle [id]");
- if(!Iter_Contains(Gateler, id)) return SendClientMessage(playerid, -1, "{EC6C6C}<!>{FFFFFF} Belirtilen ID'de gate mevcut değil.");
- SetPVarInt(playerid, "GateDuzenleID", id);
- GateDuzenleMenu(playerid);
- return 1;
- }
- CMD:gate(playerid, params[])
- {
- new id = GateBul(playerid);
- if(id == -1) return SendClientMessage(playerid, -1, "{EC6C6C}<!>{FFFFFF} Özel bir kapıya yeterince yakın değilsiniz.");
- if(gateData[id][gateAcikPos][0] == gateData[id][gateKapaliPos][0] && gateData[id][gateAcikPos][1] == gateData[id][gateKapaliPos][1] && gateData[id][gateAcikPos][2] == gateData[id][gateKapaliPos][2]) return SendClientMessage(playerid, -1, "{EC6C6C}<!>{FFFFFF} Bu kapı henüz ayarlanmamış.");
- if(gateData[id][gateHiz] == 0) return SendClientMessage(playerid, -1, "{EC6C6C}<!>{FFFFFF} Bu kapının hızı ayarlı değil.");
- if(strcmp(gateData[id][gateSifre], "-", true))
- {
- new sifre[32];
- if(sscanf(params, "s[32]", sifre)) return SendClientMessage(playerid, -1, "{9BB5E3}<!>{FFFFFF} /gate [şifre]");
- if(strcmp(sifre, gateData[id][gateSifre]) != 0) return SendClientMessage(playerid, -1, "{EC6C6C}<!>{FFFFFF} Kapı şifresi hatalı.");
- }
- if(gateData[id][gateDurum] == true)
- {
- MoveDynamicObject(gateData[id][gateObje], gateData[id][gateKapaliPos][0], gateData[id][gateKapaliPos][1], gateData[id][gateKapaliPos][2], gateData[id][gateHiz], gateData[id][gateKapaliPos][3], gateData[id][gateKapaliPos][4], gateData[id][gateKapaliPos][5]);
- gateData[id][gateDurum] = false;
- }
- else
- {
- MoveDynamicObject(gateData[id][gateObje], gateData[id][gateAcikPos][0], gateData[id][gateAcikPos][1], gateData[id][gateAcikPos][2], gateData[id][gateHiz], gateData[id][gateAcikPos][3], gateData[id][gateAcikPos][4], gateData[id][gateAcikPos][5]);
- gateData[id][gateDurum] = true;
- }
- return 1;
- }