Çok önceden görüp yaptığım bir sistem vardı elimden geldiğince kullanıslı ve geliştirelebilir bir sistem sizinle paylaşmak istedim kullanan arkadaşlar bir teşekkür yeterli :)
// Grafiti Sistem
// !!Bug bulursanız bildiriniz.
// Komutları:
// /grafitiyap
// /grafitisil
// /grafitilerim
#define FILTERSCRIPT
#include <a_samp>
#include <dini>
#define COLOR_RED 0xAA3333AA
#define COLOR_GRAF2 0xFF8000FF
#define COLOR_GRAF3 0x0000FFFF
#define COLOR_GRAF4 0x00FF00FF
#define MAX_GRAFFITI 50//Kişinin en fazla yapabileceği grafiti
#define Saver "Grafiti/%s.ini"//Dini modlar için oyuncunun grafitisinin kaydedildiği yer.
new GraffityDone[MAX_PLAYERS];
#pragma tabsize 0
new graffity;
#define MAX_SouthCity3 (64)
new SouthCity1[MAX_PLAYERS][MAX_SouthCity3];
new SouthCity2[MAX_PLAYERS][MAX_SouthCity3];
new SouthCity3[MAX_PLAYERS][MAX_SouthCity3];
new SouthCity4[MAX_PLAYERS];
new SouthCity41[MAX_PLAYERS];
new SouthCity42[MAX_PLAYERS];
new SouthCity43[MAX_PLAYERS];
new graf[MAX_PLAYERS];
new text [ 50 ];
#if defined FILTERSCRIPT
public OnFilterScriptInit()
{
print("\n--------------------------------------");
print(" South City Grafiti sistemi aktif");
print("--------------------------------------\n");
return 1;
}
public OnFilterScriptExit()
{
return 1;
}
#else
main()
{
print("\n----------------------------------");
print(" Sistem kapandi");
print("----------------------------------\n");
}
#endif
public OnGameModeInit()
{
return 1;
}
public OnGameModeExit()
{
return 1;
}
public OnPlayerRequestClass(playerid, classid)
{
return 1;
}
public OnPlayerConnect(playerid)
{
new file[100],Name[30];
GetPlayerName(playerid,Name,30);
format(file,100,Saver,Name);
if(!dini_Exists(file))
{
dini_Create(file);
dini_IntSet(file,"Grafiti Yüklendi",GraffityDone[playerid] = 0);
}
else
{
GraffityDone[playerid] = dini_Int(file,"Grafiti Yüklendi");
}
graf[playerid] = 0;
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
new file[100],Name[30];
GetPlayerName(playerid,Name,30);
format(file,100,Saver,Name);
dini_IntSet(file,"Graffity Created",GraffityDone[playerid]);
graf[playerid] = 0;
return 1;
}
public OnPlayerSpawn(playerid)
{
return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
return 1;
}
public OnVehicleSpawn(vehicleid)
{
return 1;
}
public OnVehicleDeath(vehicleid, killerid)
{
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp("/grafitiyap", cmdtext, true, 10) == 0)
{
ShowPlayerDialog(playerid, 1998, DIALOG_STYLE_MSGBOX, "South City Grafiti", "Grafiti Yapmak İstiyormusun?", "Evet", "Hayır");
return 1;
}
if (strcmp("/grafitisil", cmdtext, true, 10) == 0)
{
DestroyObject(graffity);
SendClientMessage(playerid,-1,"Afferin, grafitiyi sildin.");
return 1;
}
if(strcmp("/grafitilerim", cmdtext, true, 10) == 0)
{
format(text, 50, "{30a030}[South City Grafiti] {FFFFFF}Şimdiye kadar yaptığın {30a030}[ %d ] {FFFFFF}grafiti var.", GraffityDone[playerid]);
SendClientMessage(playerid, -1, text);
return 1;
}
return 0;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == 1998)
{
if(response)
{
SendClientMessage(playerid,-1,"Düzenlemek için üzerine biraz sprey sık");
new Float:X, Float:Y, Float:Z, Float:A;
GetPlayerFacingAngle(playerid, A);
GetPlayerPos(playerid, X, Y, Z);
graffity = CreateObject(19482,X,Y,Z+0.5,0.0,0.0,0.0,0.0);
SetObjectMaterialText(graffity,"Grafitini yap",0,OBJECT_MATERIAL_SIZE_256x256,"Comic Sans MS",24,1,0xAA3333AA,0,OBJECT_MATERIAL_TEXT_ALIGN_CENTER);
EditObject(playerid,graffity);
graf[playerid] = 1;
GraffityDone[playerid]++;
}
}
if(dialogid == 1996)
{
if(response)
{
if(listitem == 0)
{
if(SouthCity4[playerid] == 1)
{
SetObjectMaterialText(graffity, SouthCity3[playerid],0,OBJECT_MATERIAL_SIZE_256x256,"Arial",24,1,-256,0,OBJECT_MATERIAL_TEXT_ALIGN_CENTER);
}
if(SouthCity41[playerid] == 1)
{
SetObjectMaterialText(graffity, SouthCity3[playerid],0,OBJECT_MATERIAL_SIZE_256x256,"Comic Sans MS",24,1,-256,0,OBJECT_MATERIAL_TEXT_ALIGN_CENTER);
}
if(SouthCity42[playerid] == 1)
{
SetObjectMaterialText(graffity, SouthCity3[playerid],0,OBJECT_MATERIAL_SIZE_256x256,"Italik",24,1,-256,0,OBJECT_MATERIAL_TEXT_ALIGN_CENTER);
}
if(SouthCity43[playerid] == 1)
{
SetObjectMaterialText(graffity, SouthCity3[playerid],0,OBJECT_MATERIAL_SIZE_256x256,"Courier",24,1,-256,0,OBJECT_MATERIAL_TEXT_ALIGN_CENTER);
}
}
if(listitem == 1)
{
if(SouthCity4[playerid] == 1)
{
SetObjectMaterialText(graffity, SouthCity3[playerid],0,OBJECT_MATERIAL_SIZE_256x256,"Arial",24,1,-16468988,0,OBJECT_MATERIAL_TEXT_ALIGN_CENTER);
}
if(SouthCity41[playerid] == 1)
{
SetObjectMaterialText(graffity, SouthCity3[playerid],0,OBJECT_MATERIAL_SIZE_256x256,"Comic Sans MS",24,1,-16468988,0,OBJECT_MATERIAL_TEXT_ALIGN_CENTER);
}
if(SouthCity42[playerid] == 1)
{
SetObjectMaterialText(graffity, SouthCity3[playerid],0,OBJECT_MATERIAL_SIZE_256x256,"Italik",24,1,-16468988,0,OBJECT_MATERIAL_TEXT_ALIGN_CENTER);
}
if(SouthCity43[playerid] == 1)
{
SetObjectMaterialText(graffity, SouthCity3[playerid],0,OBJECT_MATERIAL_SIZE_256x256,"Courier",24,1,-16468988,0,OBJECT_MATERIAL_TEXT_ALIGN_CENTER);
}
}
if(listitem == 2)
{
if(SouthCity4[playerid] == 1)
{
SetObjectMaterialText(graffity, SouthCity3[playerid],0,OBJECT_MATERIAL_SIZE_256x256,"Arial",24,1,-16730675,0,OBJECT_MATERIAL_TEXT_ALIGN_CENTER);
}
if(SouthCity41[playerid] == 1)
{
SetObjectMaterialText(graffity, SouthCity3[playerid],0,OBJECT_MATERIAL_SIZE_256x256,"Comic Sans MS",24,1,-16730675,0,OBJECT_MATERIAL_TEXT_ALIGN_CENTER);
}
if(SouthCity42[playerid] == 1)
{
SetObjectMaterialText(graffity, SouthCity3[playerid],0,OBJECT_MATERIAL_SIZE_256x256,"Italik",24,1,-16730675,0,OBJECT_MATERIAL_TEXT_ALIGN_CENTER);
}
if(SouthCity43[playerid] == 1)
{
SetObjectMaterialText(graffity, SouthCity3[playerid],0,OBJECT_MATERIAL_SIZE_256x256,"Courier",24,1,-16730675,0,OBJECT_MATERIAL_TEXT_ALIGN_CENTER);
}
}
}
}
if(dialogid == 1995)
{
if(response)
{
if(listitem == 0)
{
SetObjectMaterialText(graffity, SouthCity3[playerid],0,OBJECT_MATERIAL_SIZE_256x256,"Arial",24,1,-256,0,OBJECT_MATERIAL_TEXT_ALIGN_CENTER);
ShowPlayerDialog(playerid, 1996, DIALOG_STYLE_LIST, "Grafiti Rengi.", "Sarı\nYesil\nMavi", "Onayla", "Kapat");
SouthCity4[playerid] = 1;
}
if(listitem == 1)
{
SetObjectMaterialText(graffity, SouthCity1[playerid],0,OBJECT_MATERIAL_SIZE_256x256,"Comic Sans MS",24,1,-16468988,0,OBJECT_MATERIAL_TEXT_ALIGN_CENTER);
ShowPlayerDialog(playerid, 1996, DIALOG_STYLE_LIST, "Grafiti Rengi.", "Sarı\nYesil\nMavi", "Onayla", "Kapat");
SouthCity41[playerid] = 1;
}
if(listitem == 2)
{
SetObjectMaterialText(graffity, SouthCity2[playerid],0,OBJECT_MATERIAL_SIZE_256x256,"Italik",24,1,-16730675,0,OBJECT_MATERIAL_TEXT_ALIGN_CENTER);
ShowPlayerDialog(playerid, 1996, DIALOG_STYLE_LIST, "Grafiti Rengi.", "Sarı\nYesil\nMavi", "Onayla", "Kapat");
SouthCity42[playerid] = 1;
}
if(listitem == 3)
{
SetObjectMaterialText(graffity, SouthCity2[playerid],0,OBJECT_MATERIAL_SIZE_256x256,"Courier",24,1,-16730675,0,OBJECT_MATERIAL_TEXT_ALIGN_CENTER);
ShowPlayerDialog(playerid, 1996, DIALOG_STYLE_LIST, "Grafiti Rengi.", "Sarı\nYesil\nMavi", "Onayla", "Kapat");
SouthCity43[playerid] = 1;
}
}
}
if(dialogid == 1997)
{
if(response)
{
if(!strlen(inputtext))
{
SendClientMessage(playerid,-1,"Buraya metin yazın. !");
ShowPlayerDialog(playerid, 1997, DIALOG_STYLE_INPUT, "South City Grafiti", "İstediginiz metini buraya girin.", "Evet", "");
return 1;
}
new Float:X, Float:Y, Float:Z, Float:A;
GetPlayerFacingAngle(playerid, A);
GetPlayerPos(playerid, X, Y, Z);
SetObjectMaterialText(graffity, inputtext,0,OBJECT_MATERIAL_SIZE_256x256,"Comic Sans MS",24,1,0xAA3333AA,0,OBJECT_MATERIAL_TEXT_ALIGN_CENTER);
format(SouthCity3[playerid], MAX_SouthCity3, inputtext);
format(SouthCity1[playerid], MAX_SouthCity3, inputtext);
format(SouthCity2[playerid], MAX_SouthCity3, inputtext);
//strcat(SouthCity3[playerid], inputtext, MAX_SouthCity3);
//strcat(SouthCity1[playerid], inputtext, MAX_SouthCity3);
//strcat(SouthCity2[playerid], inputtext, MAX_SouthCity3);
ShowPlayerDialog(playerid, 1995, DIALOG_STYLE_LIST, "Grafiti Fontlari", "Arial\nComic Sans MS\nItalic\nCourier", "Evet", "Kapat");
graf[playerid] = 0;
}
}
return 1;
}
public OnPlayerEditObject(playerid, playerobject, objectid, response, Float:fX, Float:fY, Float:fZ, Float:fRotX, Float:fRotY, Float:fRotZ)
{
new Float:oldX, Float:oldY, Float:oldZ,
Float:oldRotX, Float:oldRotY, Float:oldRotZ;
GetObjectPos(graffity, oldX, oldY, oldZ);
GetObjectRot(graffity, oldRotX, oldRotY, oldRotZ);
if(!playerobject)
{
if(!IsValidObject(graffity)) return;
MoveObject(graffity, fX, fY, fZ, 10.0, fRotX, fRotY, fRotZ);
}
if(response == EDIT_RESPONSE_FINAL)
{
SendClientMessage(playerid,-1,"[SouthCity]Grafitini Tamamlamak İçin Al Bu Spreyi Kullan Etrafa Sıçratma !");
GivePlayerWeapon(playerid, 41, 5000);
}
}
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if(newkeys & KEY_FIRE && GetPlayerWeapon(playerid) == 41)
{
if(graf[playerid] == 1)
{
SetTimerEx("Object", 5000, false, "i", playerid);
}
}
return 1;
}
forward Object(playerid);
public Object(playerid)
{
ShowPlayerDialog(playerid, 1997, DIALOG_STYLE_INPUT, "South City Grafiti", "İstediginiz metini buraya girin.", "Evet", "");
return 1;
}
Başarılı
Eline Sağlık.
Paylaşım İçin Teşekkürler.
Paylaşım İçin Teşekkürler.