turfzone.pwn => https://cdn.discordapp.com/attachments/1062141111981854790/1062141272938258513/turfzone.pwn
Virustotal(turfzone.pwn) => https://www.virustotal.com/gui/file/700b5fbc622d2cd5759e37247429d09e0d2fc42a0e62054808aaf26c3d14af1d/detection
new PlayerText:TurfTXD[MAX_PLAYERS];
enum STATIC_GANG_INFO
{
Float:staticZonePos[3],
Float:staticZonePos_2[3],
staticZoneType,
bool:staticZoneStatus,
staticZoneColor
};
new StaticGang[MAX_PLAYERS][STATIC_GANG_INFO];
enum GZCOLOR_INFO{gzColorName[32], gzPawnHex};
new gzColor[][GZCOLOR_INFO] =
{
{"Beyaz", 0xFFFFFF70},
{"Kırmızı", 0xFF000070},
{"Mavi", 0x00abff70},
{"Yeşil", 0x22fd0070}
};
function:TurfTextdrawControl(playerid, status)
{
switch(status)
{
case 0:
{
KillTimer(PlayerInfo[playerid][turfTXD_Timer]);
PlayerTextDrawHide(playerid, TurfTXD[playerid]);
}
case 1:
{
KillTimer(PlayerInfo[playerid][turfTXD_Timer]);
PlayerTextDrawShow(playerid, TurfTXD[playerid]);
SetTimerEx("TurfTextdrawControl", 2000, false, "ii", playerid, 0);
}
}
return true;
}
function:LoadTurfTXD(playerid)
{
TurfTXD[playerid] = CreatePlayerTextDraw(playerid, 16.000000, 173.000000, "//");
PlayerTextDrawFont(playerid, TurfTXD[playerid], 2);
PlayerTextDrawLetterSize(playerid, TurfTXD[playerid], 0.141666, 1.049999);
PlayerTextDrawSetOutline(playerid, TurfTXD[playerid], 0);
PlayerTextDrawSetShadow(playerid, TurfTXD[playerid], 0);
PlayerTextDrawAlignment(playerid, TurfTXD[playerid], 1);
PlayerTextDrawColor(playerid, TurfTXD[playerid], -764862721);
PlayerTextDrawBackgroundColor(playerid, TurfTXD[playerid], 255);
PlayerTextDrawBoxColor(playerid, TurfTXD[playerid], 200);
PlayerTextDrawUseBox(playerid, TurfTXD[playerid], 1);
PlayerTextDrawSetProportional(playerid, TurfTXD[playerid], 1);
PlayerTextDrawSetSelectable(playerid, TurfTXD[playerid], 0);
return true;
}
function:ResetPlayerGangZoneDatas(playerid)
{
for(new i ; i < 3; i++)
{
StaticGang[playerid][staticZonePos][i] = 0.0;
StaticGang[playerid][staticZonePos_2][i] = 0.0;
}
StaticGang[playerid][staticZoneType] = 0;
StaticGang[playerid][staticZoneStatus] = false;
StaticGang[playerid][staticZoneColor] = -1;
PlayerInfo[playerid][turfRectangleID] = -1;//area sıfırlar
return true;
}
function:TurfCount()
{
new value, query[64], Cache:temporaryC;
mysql_format(conn, query, sizeof(query), "SELECT * FROM gangturfs");
temporaryC = mysql_query(conn, query); value = cache_num_rows();
cache_delete(temporaryC);
return value;
}
function:GangZoneOtherPosition(playerid)
{
Dialog_Show(playerid, GZONE_TYPE, DIALOG_STYLE_LIST, "Bölge Tipi", "Illegal\nLegal\nGüvenli Bölge", "Seç", "Iptal");
return true;
}
Dialog:GZONE_TYPE(playerid, response, listitem, inputtext[])
{
if(!response) return ResetPlayerGangZoneDatas(playerid), SendClientMessage(playerid, 0xFF0000FF, "[!] İşlem iptal edildi.");
StaticGang[playerid][staticZoneType] = listitem + 1;
new string[32 * sizeof(gzColor)];
for(new gz; gz < sizeof(gzColor); gz++)
{
format(string, sizeof(string), "%s%s\n", string, gzColor[gz][gzColorName]);
}
Dialog_Show(playerid, GZONE_COLOR, DIALOG_STYLE_LIST, "Renk Seçimi", string, "Seç", "Iptal");
return true;
}
Dialog:GZONE_COLOR(playerid, response, listitem, inputtext[])
{
if(!response) return ResetPlayerGangZoneDatas(playerid), SendClientMessage(playerid, 0xFF0000FF, "[!] İşlem iptal edildi.");
StaticGang[playerid][staticZoneColor] = gzColor[listitem][gzPawnHex];
Dialog_Show(playerid, GZONE_NAME, DIALOG_STYLE_INPUT, "Bölge Adı", "{CCCCCC}Bu kısıma bölgenin adını girin {FFFFFF}(maksimum 30 karakter):", "Devam", "Iptal");
return true;
}
Dialog:GZONE_NAME(playerid, response, listitem, inputtext[])
{
if(!response) return ResetPlayerGangZoneDatas(playerid), SendClientMessage(playerid, 0xFF0000FF, "[!] İşlem iptal edildi.");
if(strlen(inputtext) > 30) return Dialog_Show(playerid, GZONE_NAME, DIALOG_STYLE_INPUT, "Bölge Adı", "{CCCCCC}Bu kısıma bölgenin adını girin {FF0000}(maksimum 30 karakter):", "Devam", "Iptal");
new query[128 * 2];
mysql_format(conn, query, sizeof(query), "INSERT INTO `gangturfs` (`turfName`, `turfPosMin1`, `turfPosMin2`, `turfPosMax1`, `turfPosMax2`, `turfColor`, `turfType`) VALUES ('%e', '%f', '%f', '%f', '%f', '%d', '%d')",
inputtext,
StaticGang[playerid][staticZonePos][0],
StaticGang[playerid][staticZonePos][1],
StaticGang[playerid][staticZonePos_2][0],
StaticGang[playerid][staticZonePos_2][1],
StaticGang[playerid][staticZoneColor],
StaticGang[playerid][staticZoneType]
);mysql_query(conn, query);
new array[3], gangzoneid, areaid;
gangzoneid = GangZoneCreate(floatsub(StaticGang[playerid][staticZonePos][0], floatfract(StaticGang[playerid][staticZonePos][0])), floatsub(StaticGang[playerid][staticZonePos][1], floatfract(StaticGang[playerid][staticZonePos][1])), floatsub(StaticGang[playerid][staticZonePos_2][0], floatfract(StaticGang[playerid][staticZonePos_2][0])), floatsub(StaticGang[playerid][staticZonePos_2][1], floatfract(StaticGang[playerid][staticZonePos_2][1])));
GangZoneShowForAll(gangzoneid, StaticGang[playerid][staticZoneColor]);
array[0] = STREAMER_TURF_TOKEN;
array[1] = cache_insert_id();
array[2] = gangzoneid;
areaid = CreateDynamicRectangle(StaticGang[playerid][staticZonePos][0], StaticGang[playerid][staticZonePos][1], StaticGang[playerid][staticZonePos_2][0], StaticGang[playerid][staticZonePos_2][1], 0, 0, -1);
Streamer_SetArrayData(STREAMER_TYPE_AREA, areaid, E_STREAMER_EXTRA_ID, array);
StaticGang[playerid][staticZoneStatus] = false;
ResetPlayerGangZoneDatas(playerid);
new msstring[128];
format(msstring, sizeof(msstring), "[TURF]: {DDDDDD}Bölge başarıyla oluşturuldu. (DBID: %d)", array[1]);
SendClientMessage(playerid, 0x587792FF, msstring);
return true;
}
function:LoadTurfData()
{
new rows = cache_num_rows();
if(rows)
{
new i = 0, turfsql, Float:loadturfposmin[2], Float:loadturfposmax[2], loadturfcolor;
while(i < rows)
{
cache_get_value_name_int(i, "id", turfsql);
cache_get_value_name_float(i, "turfPosMin1", loadturfposmin[0]);
cache_get_value_name_float(i, "turfPosMin2", loadturfposmin[1]);
cache_get_value_name_float(i, "turfPosMax1", loadturfposmax[0]);
cache_get_value_name_float(i, "turfPosMax2", loadturfposmax[1]);
cache_get_value_name_int(i, "turfColor", loadturfcolor);
new array[3], gangzoneid, areaid;
gangzoneid = GangZoneCreate(
floatsub(loadturfposmin[0], floatfract(loadturfposmin[0])),
floatsub(loadturfposmin[1], floatfract(loadturfposmin[1])),
floatsub(loadturfposmax[0], floatfract(loadturfposmax[0])),
floatsub(loadturfposmax[1], floatfract(loadturfposmax[1]))
);
areaid = CreateDynamicRectangle(loadturfposmin[0], loadturfposmin[1], loadturfposmax[0], loadturfposmax[1], 0, 0, -1);
array[0] = STREAMER_TURF_TOKEN;
array[1] = turfsql;
array[2] = gangzoneid;
Streamer_SetArrayData(STREAMER_TYPE_AREA, areaid, E_STREAMER_EXTRA_ID, array);
i++;
}
}
return true;
}
CMD:turf(playerid, params[])
{
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xFF0000FF, "[!] Bu komutu kullanamazsınız.");
if(StaticGang[playerid][staticZoneStatus] == true) return ResetPlayerGangZoneDatas(playerid), SendClientMessage(playerid, 0xFF0000FF, "[!] İşlem iptal edildi.");
GetPlayerPos(playerid, StaticGang[playerid][staticZonePos][0], StaticGang[playerid][staticZonePos][1], StaticGang[playerid][staticZonePos][2]);
StaticGang[playerid][staticZoneStatus] = true;
SendClientMessage(playerid, 0xFFFF00FF, "[TURF]: {DDDDDD}İlk pozisyon alındı, ikinci pozisyona ulaşıp LMB tuşuna basın.");
SendClientMessage(playerid, 0xFFFF00FF, "[TURF]: {DDDDDD}İşlemi iptal etmek istiyorsanız, tekrar /turf kullanın.");
return true;
}
CMD:turfsil(playerid, params[])
{
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xFF0000FF, "[!] Bu komutu kullanamazsınız.");
if(PlayerInfo[playerid][turfRectangleID] == -1) return SendClientMessage(playerid, 0xFF0000FF, "[!] Turf içerisinde değilsiniz.");
new array[3], query[64];
Streamer_GetArrayData(STREAMER_TYPE_AREA, PlayerInfo[playerid][turfRectangleID], E_STREAMER_EXTRA_ID, array);
mysql_format(conn, query, sizeof(query), "DELETE FROM gangturfs WHERE id = %i", array[1]);
mysql_query(conn, query); GangZoneDestroy(array[2]);
new msstring[128];
format(msstring, sizeof(msstring), "[TURF]: {DDDDDD}Bölge başarıyla silindi. (DBID: %d)", array[1]);
SendClientMessage(playerid, 0x9c4b4bFF, msstring);
foreach(new i : Player)
{
if(PlayerInfo[i][turfRectangleID] == PlayerInfo[playerid][turfRectangleID])
{
if(playerid != i){ SendClientMessage(i, 0x9c744bFF, "[TURF]: {DDDDDD}Bulunduğunuz bölge, bir yetkili tarafından silindi."); }
PlayerInfo[i][turfRectangleID] = -1;
}
}
return true;
}
Ana pawn > dolarucuyor.pwn => https://cdn.discordapp.com/attachments/1062141111981854790/1062141214855536741/dolarucuyor.pwn
Virustotal(dolarucuyor.pwn) => https://www.virustotal.com/gui/file/5fe88398f144031f4504a85fb97ab1033a9de6c5df67b18095dee6a98f7d218b/detection
/*
20.04.2021 | Silver_
--------------------
Iyi Kullanımlar
*/
#include <a_samp>
#include <a_mysql>
#include <foreach>
#include <pawnCMD>
#include <easyDialog>
#include <streamer>
#include <sscanf2>
main(){}
new MySQL:conn;
#define function:%0(%1) forward %0(%1); public %0(%1)
#define STREAMER_TURF_TOKEN 43872
enum PLAYER_DATA
{
turfRectangleID,
turfTXD_Timer
};
new PlayerInfo[MAX_PLAYERS][PLAYER_DATA];
public OnGameModeInit()
{
DatabaseSettings();
mysql_tquery(conn, "SELECT * FROM `gangturfs`", "LoadTurfData", "");
return true;
}
function:DatabaseSettings()
{
mysql_log(ERROR | WARNING);
conn = mysql_connect("127.0.0.1", "root", "adminadmin", "script");
mysql_set_charset("latin5", conn);
if(!conn) return printf("[mySQL]: %s", mysql_errno(conn));
printf("[mySQL]: Bağlantı başarılı.");
SetGameModeText("test");
return true;
}
#include "sources/turfzone.pwn"
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if(newkeys == KEY_FIRE)
{
if(StaticGang[playerid][staticZoneStatus] == true)
{
GetPlayerPos(playerid, StaticGang[playerid][staticZonePos_2][0], StaticGang[playerid][staticZonePos_2][1], StaticGang[playerid][staticZonePos_2][2]);
SendClientMessage(playerid, 0xFFFF00FF, "[TURF]: {DDDDDD}İkinci pozisyon alındı, oluşturmayı tamamlamak için işlemlere devam edin.");
GangZoneOtherPosition(playerid);
}
}
return true;
}
public OnPlayerLeaveDynamicArea(playerid, areaid)
{
TurfTextdrawControl(playerid, 0);
PlayerInfo[playerid][turfRectangleID] = -1;
return true;
}
public OnPlayerEnterDynamicArea(playerid, areaid)
{
new array[2];
TurfTextdrawControl(playerid, 0);
Streamer_GetArrayData(STREAMER_TYPE_AREA, areaid, E_STREAMER_EXTRA_ID, array);
if(array[0] == STREAMER_TURF_TOKEN)
{
new query[128], Cache:temporaryX;
mysql_format(conn, query, sizeof(query), "SELECT id, turfName, turfType FROM gangturfs WHERE id = '%d' AND turfType != -1", array[1]);
temporaryX = mysql_query(conn, query);
if(cache_num_rows())
{
PlayerInfo[playerid][turfRectangleID] = areaid;
new getturfid, getturfname[30];
cache_get_value_name_int(0, "id", getturfid);
cache_get_value_name(0, "turfName", getturfname, 30);
new string[128];
format(string, sizeof(string), "ZONE (%d): ~w~%s", getturfid, getturfname);
PlayerTextDrawTextSize(playerid, TurfTXD[playerid], 150.0, 17.000000);
PlayerTextDrawSetString(playerid, TurfTXD[playerid], string);
TurfTextdrawControl(playerid, 1);
}
cache_delete(temporaryX);
}
return true;
}
public OnPlayerConnect(playerid)
{
LoadTurfTXD(playerid);
ResetPlayerGangZoneDatas(playerid);
SetSpawnInfo(playerid, NO_TEAM, 305, 0.0, 0.0, 3.0, 0, 0, 0, 0, 0, 0, 0);
SpawnPlayer(playerid);
new query[64], Cache:temporaryC;
mysql_format(conn, query, sizeof(query), "SELECT * FROM gangturfs");
temporaryC = mysql_query(conn, query);
new rows = cache_num_rows();
if(rows)
{
new i, color = -1;
while(i < rows)
{
cache_get_value_name_int(i, "turfColor", color);
GangZoneShowForPlayer(playerid, i, color);
i++;
}
}
cache_delete(temporaryC);
return true;
}
public OnPlayerSpawn(playerid)
{
TogglePlayerControllable(playerid, true);
return true;
}
public OnPlayerDisconnect(playerid, reason)
{
ResetPlayerGangZoneDatas(playerid);
PlayerTextDrawDestroy(playerid, TurfTXD[playerid]);
return true;
}