forward split(const strsrc[], strdest[][], delimiter);
public split(const strsrc[], strdest[][], delimiter)
{
new i, li;
new aNum;
new len;
while(i <= strlen(strsrc)){
if(strsrc[i]==delimiter || i==strlen(strsrc)){
len = strmid(strdest[aNum], strsrc, li, i, 128);
strdest[aNum][len] = 0;
li = i+1;
aNum++;
}
i++;
}
return 1;
}
enum CKInfo
{
Player[MAX_PLAYER_NAME],
Killer[MAX_PLAYER_NAME],
Month,
Day,
Year
}
new CharacterKillInfo[10][CKInfo];
forward LoadCK();
public LoadCK()
{
new arrCoords[33][64];
new strFromFile2[256];
new File: file = fopen("CK.txt", io_read);
if (file)
{
new idx;
while (idx < sizeof(CharacterKillInfo))
{
fread(file, strFromFile2);
split(strFromFile2, arrCoords, '|');
strmid(CharacterKillInfo[idx][Player], arrCoords[0], 0, strlen(arrCoords[0]), 255);
strmid(CharacterKillInfo[idx][Killer], arrCoords[1], 0, strlen(arrCoords[1]), 255);
CharacterKillInfo[idx][Month] = strval(arrCoords[2]);
CharacterKillInfo[idx][Day] = strval(arrCoords[3]);
CharacterKillInfo[idx][Year] = strval(arrCoords[4]);
print("---------------------------------");
printf("CKid %d - PlayerKilled: %s - Killer %s",idx,CharacterKillInfo[idx][Player],CharacterKillInfo[idx][Killer]);
print("---------------------------------");
idx++;
}
}
fclose(file);
return 1;
}
forward SaveCK();
public SaveCK()
{
new idx;
new File: file2;
while (idx < sizeof(CharacterKillInfo))
{
new coordsstring[512];
format(coordsstring, sizeof(coordsstring), "%s|%s|%d|%d|%d\n",
CharacterKillInfo[idx][Player],
CharacterKillInfo[idx][Killer],
CharacterKillInfo[idx][Month],
CharacterKillInfo[idx][Day],
CharacterKillInfo[idx][Year]);
if(idx == 0)
{
file2 = fopen("CK.txt", io_write);
}
else
{
file2 = fopen("CK.txt", io_append);
}
fwrite(file2, coordsstring);
idx++;
fclose(file2);
}
return 1;
}
new time;
new string[128];
new playername[MAX_PLAYER_NAME];
GetPlayerName(playerid, playername, sizeof(playername));
if(strcmp(playername, CharacterKillInfo[playerid][Player], true) == 0)
{
SendClientMessage(playerid, 0xAA3333AA, "[Attention] = You're listed in the CK GTFO");
format(string, sizeof(string), "Date Died - %d %d %d [Month,Day,Year]", CharacterKillInfo[time][Month],CharacterKillInfo[time][Day],CharacterKillInfo[time][Year]);
SendClientMessage(playerid, 0xAA3333AA, string);
Kick(playerid);
return 1;
}
new tmp[128];
new idx;
new giveplayerid;
if (strcmp("/ack", cmdtext, true, 10) == 0)
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerAdmin(playerid))
{
tmp = strtok(cmdtext, idx);
if(strlen(tmp) == 0) return SendClientMessage(playerid, 0xAA3333AA, "USAGE: /ack [playerid]");
giveplayerid = strval(tmp);
new plname[MAX_PLAYER_NAME];
GetPlayerName(playerid, plname, sizeof(plname));
CharacterKillInfo[giveplayerid][Player] = plname;
new dYear, dMonth, dDay;
getdate(dYear, dMonth, dDay);
CharacterKillInfo[giveplayerid][Month] = dMonth;
CharacterKillInfo[giveplayerid][Day] = dDay;
CharacterKillInfo[giveplayerid][Year] = dYear;
SendClientMessage(giveplayerid, 0xAA3333AA, "You have been character killed!");
Kick(giveplayerid);
}
}
return 1;
}
|
Originally Posted by Mo3
Weird, I didnt know a CK is like a ban. On the RP servers Iґve played on its just a new "beginning", a new character.
|