Explicit RP, zis si PR RP, este un gamemode hard roleplay, nu are legatura deloc cu RPG-UL.... Eu l-am reparat si am lucrat pe el, cand te loghezi isi face un intro negru dupa care isi revine ecranul....
//============================================//
//================[ Connect ]=================//
//============================================//
IsUpper(ch)
{
if(ch>64&&ch<91) return 1;
return 0;
}
//============================================//
TooManyCaps(name[])
{
new Float:caps,num,sz;
sz=strlen(name[0]);
while(sz--) {
if(IsUpper(name[sz])) num++;
}
caps=floatdiv(num,float(strlen(name[0])-1)); //-1 because we don't include the _ in the percentage
caps=floatmul(caps,float(100));
if(caps>40) return 1; //40% seems to be the magic number for names
return 0;
}
//============================================//
CapsOnEnd(name[])
{
new sz;
sz=strlen(name[0]);
if(IsUpper(name[sz-1])) return 1;
if(IsUpper(name[FirstSeperationLoc(name[0])-1])) return 1;
return 0;
}
//============================================//
ConsecutiveCaps(name[])
{
new sz,lastcaps;
sz=strlen(name[0]);
while(sz--) {
if(IsUpper(name[sz])) {
if(lastcaps==1) {
return 1;
}
lastcaps=1;
} else lastcaps=0;
}
return 0;
}
//============================================//
TooShortOnEnd(name[])
{
new pnt;
pnt=FirstSeperationLoc(name[0]);
name[pnt]=0;
if((strlen(name[0])<3)||strlen(name[pnt+1])<3) {
name[pnt]='_'; //restore it for use later
return 1;
}
name[pnt]='_';
return 0;
}
//============================================//
NumOccurences(str[],ch)
{
new num=0,strl;
strl=strlen(str);
while(strl--) {
if(str[strl]==ch) num++;
}
return num;
}
IsInvalid(x)
{
if(x==95) return 0;
if(x>64&&x<91) return 0;
if(x>96&&x<123) return 0;
return 1;
}
FirstSeperationLoc(str[])
{
new strl;
strl=strlen(str);
while(strl--) {
if(str[strl]=='_') return strl;
}
return 0;
}
InvalidCaps(str[])
{
if(!IsUpper(str[0])||!IsUpper(str[FirstSeperationLoc(str[0])+1])) return 1;
return 0;
}
//============================================//
NameIsRP(name[])
{
new len;
len=strlen(name[0]);
if(InvalidCaps(name[0]) || NumOccurences(name[0],'_') != 1) return 0;
while(len--) {
if(IsInvalid(name[len])) return 0;
}
if(TooManyCaps(name[0])) return 0;
if(ConsecutiveCaps(name[0])) return 0;
if(CapsOnEnd(name[0])) return 0;
if(TooShortOnEnd(name[0])) return 0;
return 1;
}
//============================================//
public OnConnectInit(playerid)
{
RemovePlayerAttachedObject(playerid,0), RemovePlayerAttachedObject(playerid,1);
RemovePlayerAttachedObject(playerid,2), RemovePlayerAttachedObject(playerid,3);
RemovePlayerAttachedObject(playerid,4), RemovePlayerAttachedObject(playerid,5);
RemovePlayerAttachedObject(playerid,6), RemovePlayerAttachedObject(playerid,7);
RemovePlayerAttachedObject(playerid,8), RemovePlayerAttachedObject(playerid,9);
SetPVarInt(playerid, "Cash", 0);
SetPVarInt(playerid, "Bank", 0);
SetPVarInt(playerid, "RentKey", 2005);
SetPVarInt(playerid, "HouseKey", 1000);
SetPVarInt(playerid, "BizzKey", 1000);
SetPVarInt(playerid, "HouseEnter", 1000);
SetPVarInt(playerid, "BizzEnter", 1000);
SetPVarInt(playerid, "IntEnter", 1000);
SetPVarInt(playerid, "CarKey1", SCRIPT_CARS);
SetPVarInt(playerid, "CarKey2", SCRIPT_CARS);
SetPVarInt(playerid, "CarKey3", SCRIPT_CARS);
PlayerInfo[playerid][pSpeedDelay]=0;
PlayerInfo[playerid][pWeapon][0] = 0;
PlayerInfo[playerid][pWeapon][1] = 0;
PlayerInfo[playerid][pWeapon][2] = 0;
PlayerInfo[playerid][pWeapon][3] = 0;
PlayerInfo[playerid][pWeapon][4] = 0;
PlayerInfo[playerid][pWeapon][5] = 0;
PlayerInfo[playerid][pWeapon][6] = 0;
PlayerInfo[playerid][pWeapon][7] = 0;
PlayerInfo[playerid][pWeapon][8] = 0;
PlayerInfo[playerid][pWeapon][9] = 0;
PlayerInfo[playerid][pWeapon][10] = 0;
PlayerInfo[playerid][pWeapon][11] = 0;
PlayerInfo[playerid][pWeapon][12] = 0;
PlayerInfo[playerid][pAmmo][0] = 0;
PlayerInfo[playerid][pAmmo][1] = 0;
PlayerInfo[playerid][pAmmo][2] = 0;
PlayerInfo[playerid][pAmmo][3] = 0;
PlayerInfo[playerid][pAmmo][4] = 0;
PlayerInfo[playerid][pAmmo][5] = 0;
PlayerInfo[playerid][pAmmo][6] = 0;
PlayerInfo[playerid][pAmmo][7] = 0;
PlayerInfo[playerid][pAmmo][8] = 0;
PlayerInfo[playerid][pAmmo][9] = 0;
PlayerInfo[playerid][pAmmo][10] = 0;
PlayerInfo[playerid][pAmmo][11] = 0;
PlayerInfo[playerid][pAmmo][12] = 0;
SetPVarInt(playerid, "HouseEnter", 1000);
SetPVarInt(playerid, "BizzEnter", 1000);
SetPVarInt(playerid, "Checkpoint", CHECKPOINT_NONE);
SetPVarInt(playerid, "Bot", 501);
new randmask = 1000 + random(9999999);
SetPVarInt(playerid, "MaskID", randmask);
SetPVarInt(playerid, "Mobile", 501);
new randphone = 1000 + random(9999999);
SetPVarInt(playerid, "PhoneNum", randphone);
SetPVarInt(playerid, "RefillOffer", 501);
SetPVarInt(playerid, "RepairOffer", 501);
SetPVarInt(playerid, "Drag", 501);
for(new i = 0; i < 301; i++) { PlayerInfo[playerid][pBlockPM][i] = 0; }
SetPVarInt(playerid, "ShakeOffer", 501);
SetPVarInt(playerid, "DragOffer", 501);
SetPVarInt(playerid, "TrunkOffer", 501);
SetPVarInt(playerid, "LiveOffer", 501);
SetPVarInt(playerid, "InviteOffer", 501);
SetPVarInt(playerid, "VehicleOffer", 501);
SetPVarInt(playerid, "BlindOffer", 501);
SetPVarInt(playerid, "HouseOffer", 501);
strmid(PlayerInfo[playerid][pAdmName], "None", 0, strlen("None"), 255);
strmid(PlayerInfo[playerid][pAccent], "None", 0, strlen("None"), 255);
for(new i = 0; i < 5; i++)
{
PlayerInfo[playerid][pTicket][i] = 0;
strmid(TicketReason[playerid][i], "None", 0, strlen("None"), 255);
}
strmid(PlayerInfo[playerid][pPMMsg], "None", 0, strlen("None"), 255);
strmid(PlayerInfo[playerid][pTaunt], "None", 0, strlen("None"), 255);
strmid(PlayerInfo[playerid][pNote1], "None", 0, strlen("None"), 255);
strmid(PlayerInfo[playerid][pNote2], "None", 0, strlen("None"), 255);
strmid(PlayerInfo[playerid][pNote3], "None", 0, strlen("None"), 255);
strmid(PlayerInfo[playerid][pNote4], "None", 0, strlen("None"), 255);
strmid(PlayerInfo[playerid][pNote5], "None", 0, strlen("None"), 255);
strmid(PlayerInfo[playerid][pJailReason], "None", 0, strlen("None"), 255);
strmid(PlayerInfo[playerid][pWarning], "None", 0, strlen("None"), 255);
strmid(PlayerInfo[playerid][pOOC], "None", 0, strlen("None"), 255);
strmid(PlayerInfo[playerid][pMetagame], "None", 0, strlen("None"), 255);
strmid(PlayerInfo[playerid][pRevenge], "None", 0, strlen("None"), 255);
strmid(PlayerInfo[playerid][pRoleplay], "None", 0, strlen("None"), 255);
strmid(PlayerInfo[playerid][pPowergame], "None", 0, strlen("None"), 255);
strmid(PlayerInfo[playerid][pQuest1], "None", 0, strlen("None"), 255);
strmid(PlayerInfo[playerid][pQuest2], "None", 0, strlen("None"), 255);
strmid(PlayerInfo[playerid][pQuest3], "None", 0, strlen("None"), 255);
strmid(PlayerInfo[playerid][pQuest4], "None", 0, strlen("None"), 255);
strmid(PlayerInfo[playerid][pQuest5], "None", 0, strlen("None"), 255);
strmid(PlayerInfo[playerid][pWarrant], "None", 0, strlen("None"), 255);
strmid(PlayerInfo[playerid][pCellname], "None", 0, strlen("None"), 255);
PlayerInfo[playerid][pLiveOffer][0]=0;
PlayerInfo[playerid][pLiveOffer][1]=0;
PlayerInfo[playerid][pJobTime]=0;
ResetPlayerWeaponsEx(playerid);
SetPVarInt(playerid, "CameraPos", 6);
SetPVarInt(playerid, "CameraDelay", 1);
TextDrawHideForPlayer(playerid, FadeDraw[playerid]);
TextDrawHideForPlayer(playerid, HitMark);
TextDrawHideForPlayer(playerid, ScreenBar1);
TextDrawHideForPlayer(playerid, ScreenBar2);
StopAudioStreamForPlayerEx(playerid);
return 1;
}
//============================================//
public OnPlayerConnect(playerid)
{
if(IsPlayerNPC(playerid)) return 1;
new string[128], user[128], day, month, year, hour, minute, second;
new num = GetMaxIPs(playerid);
if(num >= 2 && !IsPlayerNPC(playerid)) return Kick(playerid);
OnConnectInit(playerid);
//furn system
gHeaderTextDrawId[playerid] = PlayerText:INVALID_TEXT_DRAW;
gBackgroundTextDrawId[playerid] = PlayerText:INVALID_TEXT_DRAW;
gCurrentPageTextDrawId[playerid] = PlayerText:INVALID_TEXT_DRAW;
gNextButtonTextDrawId[playerid] = PlayerText:INVALID_TEXT_DRAW;
gPrevButtonTextDrawId[playerid] = PlayerText:INVALID_TEXT_DRAW;
for(new x=0; x < SELECTION_ITEMS; x++) {
gSelectionFurns[playerid][x] = PlayerText:INVALID_TEXT_DRAW;
}
gFurnAt[playerid] = 0;
if(!NameIsRP(PlayerName(playerid)))
{
SendClientMessage(playerid, COLOR_LIGHTRED, "Numele tau nu este acceptat, foloseste un nume dupa urmatorul exemplu: Nume_Prenume.");
KickEx(playerid);
return 1;
}
GetPlayerHost(playerid); // Gets the DNS Data
SetPlayerColor(playerid,COLOR_GREY);
format(string, sizeof(string),"%s (%d) se conecteaza pe server.", PlayerName(playerid), playerid);
if(GetPVarInt(playerid, "Admin") > 0 || GetPVarInt(playerid, "Helper") > 0 || GetPVarInt(playerid, "RegTeam") > 0)
{
LoginLog(string);
}
foreach (Player,i)
{
if(GetPVarInt(i, "CntNames") == 1)
{
SendClientMessage(i,COLOR_WHITE,string);
}
}
ResetPlayerWeapons(playerid);
CheckIP(playerid);
gettime(hour,minute,second), FixHour(hour), hour = shifthour, getdate(year,month,day);
format(user, sizeof(user), "users/%s.ini", PlayerName(playerid));
if(DOF2_FileExists(user) && DOF2_GetInt(user, "Banned") == 1)
{
if(DOF2_GetInt(user, "TempYear") > 0 && DOF2_GetInt(user, "TempMonth") > 0 && DOF2_GetInt(user, "TempDay") > 0)
{
new proceed = 0;
if(year > DOF2_GetInt(user, "TempYear")) // If the year is over your tempban year.
{
DOF2_SetInt(user, "Banned", 0);
DOF2_SetInt(user, "TempYear", 0);
DOF2_SetInt(user, "TempMonth", 0);
DOF2_SetInt(user, "TempDay", 0);
DOF2_WriteFile();
format(string, sizeof(string),"unbanip %s", DOF2_GetString(user, "IP"));
SendRconCommand(string);
SendRconCommand("reloadbans");
format(string, sizeof(string),"AdmWarn: %s a fost banat de CA-RP Bot.", PlayerName(playerid));
SendAdminMessage(COLOR_YELLOW,string);
proceed=1;
}
if(month > DOF2_GetInt(user, "TempMonth")) // If the month is over your tempban month.
{
DOF2_SetInt(user, "Banned", 0);
DOF2_SetInt(user, "TempYear", 0);
DOF2_SetInt(user, "TempMonth", 0);
DOF2_SetInt(user, "TempDay", 0);
DOF2_WriteFile();
format(string, sizeof(string),"unbanip %s", DOF2_GetString(user, "IP"));
SendRconCommand(string);
SendRconCommand("reloadbans");
format(string, sizeof(string),"AdmWarn: %s a fost banat de CA-RP Bot.", PlayerName(playerid));
SendAdminMessage(COLOR_YELLOW,string);
proceed=1;
}
if(month >= DOF2_GetInt(user, "TempMonth") && day >= DOF2_GetInt(user, "TempDay")) // If the day is your tempban undue day or above.
{
DOF2_SetInt(user, "Banned", 0);
DOF2_SetInt(user, "TempYear", 0);
DOF2_SetInt(user, "TempMonth", 0);
DOF2_SetInt(user, "TempDay", 0);
DOF2_WriteFile();
format(string, sizeof(string),"unbanip %s", DOF2_GetString(user, "IP"));
SendRconCommand(string);
SendRconCommand("reloadbans");
format(string, sizeof(string),"AdmWarn: %s a fost banat de CA-RP Bot.", PlayerName(playerid));
SendAdminMessage(COLOR_YELLOW,string);
proceed=1;
}
if(proceed == 0)
{
new mtext[50];
switch(DOF2_GetInt(user, "TempMonth"))
{
case 1: mtext = "January";
case 2: mtext = "February";
case 3: mtext = "March";
case 4: mtext = "April";
case 5: mtext = "May";
case 6: mtext = "June";
case 7: mtext = "July";
case 8: mtext = "August";
case 9: mtext = "September";
case 10: mtext = "October";
case 11: mtext = "November";
case 12: mtext = "December";
}
if(DOF2_GetInt(user, "TempDay") < 10) format(string, sizeof(string),"Esti banat pana in data de %s-0%d-%d.", mtext, DOF2_GetInt(user, "TempDay"), DOF2_GetInt(user, "TempYear"));
else format(string, sizeof(string),"Esti banat pana in data de %s-%d-%d.", mtext, DOF2_GetInt(user, "TempDay"), DOF2_GetInt(user, "TempYear"));
SendClientMessage(playerid, COLOR_LIGHTRED, string);
return Kick(playerid);
}
}
}
return 1;
}
//============================================//
Uite, acesta este OnConnect-ul meu. Vezi daca iti functioneaza.