/*•••••••••••••••••••••••••••••••••••••••••• Kodlayan: Silver Kodlama Tarihi: 28.05.2019 Sistem Tanımı: Gelişmiş Dinamik Kapı/Gate ••••••••••••••••••••••••••••••••••••••••••*/ #include #include #include #include #include #include #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; 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; }