08.07.2014, 00:39
There are no errors. In-fact, theres not even any warnings when compiling. Heres OnPlayerConnect,
The server appears to crash right after the "debug - point 0" if this has any importance to making it work.
pawn Код:
public OnPlayerConnect(playerid)
{
new
szPlayerIP[16];
// Code to patch a SA-MP exploit where you can connect to a SA-MP server multiple times with a bunch of names and completely rape the logs
// We don't receive attacks like this very often, but I have produced the code so if we ever need it, we have it right in front of us. It requires testing though...
/*new
szPlayerName[MAX_PLAYER_NAME],
szPlayerIP[16],
szPlayerIPs[16],
szPlayerNames[MAX_PLAYER_NAME];
GetPlayerName(playerid, szPlayerName, MAX_PLAYER_NAME);
GetPlayerIp(playerid, szPlayerIP, sizeof(szPlayerIP));
foreach(Player, x) {
GetPlayerName(x, szPlayerNames, MAX_PLAYER_NAME);
GetPlayerIp(playerid, szPlayerIPs, sizeof(szPlayerIPs));
if(strfind(szPlayerName, szPlayerNames, true) != -1 && !strcmp(szPlayerIPs, szPlayerIP, true) && IsStringAlphaNumeric(szPlayerNames) == 0)
return BanEx(playerid, "NieXrlaM client spam attack attempt");
}*/
print("debug");
TotalConnect++;
if(Iter_Count(Player) > MaxPlayersConnected)
{
MaxPlayersConnected = Iter_Count(Player);
getdate(MPYear,MPMonth,MPDay);
}
GetPlayerIp(playerid, szPlayerIP, sizeof(szPlayerIP));
print("[DEBUG]Point 0");
//if(!InvalidNameCheck(playerid)) return 1;
if(CheckBan(szPlayerIP) == 1) {
SetPlayerName(playerid, "BannedPlayer");
SendClientMessage(playerid, COLOR_NEWS, "You're banned from Irish Roleplay. You can appeal your ban at www.hzgaming.net");
Kick(playerid);
return 1;
}
SetPlayerSkillLevel(playerid, WEAPONSKILL_PISTOL, 1);
SetPlayerSkillLevel(playerid, WEAPONSKILL_MICRO_UZI, 1);
SetPVarInt(playerid, "IsInArena", -1);
SetPVarInt(playerid, "MovingStretcher", -1);
SetPVarInt(playerid, "editingcd", -1);
SetPVarInt(playerid, "editingcdveh", -1);
SetPVarInt(playerid, "AdminUndercover", 0);
SetPlayerColor(playerid,TEAM_HIT_COLOR);
// Player file variables (saving)
PlayerInfo[playerid][pKey] = 0;
PlayerInfo[playerid][pLiveBanned] = 0;
PlayerInfo[playerid][pLevel] = 1;
PlayerInfo[playerid][pAdmin] = 0;
format(PlayerInfo[playerid][pAdminName], 32, "0");
PlayerInfo[playerid][pBanAppealer] = 0;
PlayerInfo[playerid][pBanned] = 0;
PlayerInfo[playerid][pPermaBanned] = 0;
PlayerInfo[playerid][pDisabled] = 0;
PlayerInfo[playerid][pIP] = 0;
PlayerInfo[playerid][pReg] = 0;
PlayerInfo[playerid][pTut] = 0;
PlayerInfo[playerid][pSex] = 1;
PlayerInfo[playerid][pGangMod] = 0;
PlayerInfo[playerid][pAge] = 0;
PlayerInfo[playerid][pSkin] = 299;
PlayerInfo[playerid][pPos_x] = 0;
PlayerInfo[playerid][pPos_y] = 0;
PlayerInfo[playerid][pPos_z] = 3.14;
PlayerInfo[playerid][pPos_r] = 0;
PlayerInfo[playerid][pConnectTime] = 0;
PlayerInfo[playerid][pRespect] = 0;
PlayerInfo[playerid][pNumber] = 0;
PlayerInfo[playerid][pWarns] = 0;
PlayerInfo[playerid][pGang] = 255;
PlayerInfo[playerid][pFaction] = 0;
PlayerInfo[playerid][pLeader] = 0;
PlayerInfo[playerid][pRank] = 0;
PlayerInfo[playerid][pJob] = 0;
PlayerInfo[playerid][pJob2] = 0;
PlayerInfo[playerid][pDonator] = 0;
PlayerInfo[playerid][gPupgrade] = 0;
PlayerInfo[playerid][pSarmor] = 0;
PlayerInfo[playerid][pCash] = 100;
PlayerInfo[playerid][pBank] = 100;
PlayerInfo[playerid][pInsurance] = 0;
PlayerInfo[playerid][pCrimes] = 0;
PlayerInfo[playerid][pArrested] = 0;
PlayerInfo[playerid][pWantedLevel] = 0;
PlayerInfo[playerid][pHealth] = 100;
PlayerInfo[playerid][pArmor] = 0;
PlayerInfo[playerid][pPot] = 0;
PlayerInfo[playerid][pCrack] = 0;
PlayerInfo[playerid][pPackages] = 0;
PlayerInfo[playerid][pCrates] = 0;
PlayerInfo[playerid][pRadio] = 0;
PlayerInfo[playerid][pRadioFreq] = 0;
PlayerInfo[playerid][pMats] = 0;
PlayerInfo[playerid][pRope] = 0;
PlayerInfo[playerid][pCigar] = 0;
PlayerInfo[playerid][pSprunk] = 0;
PlayerInfo[playerid][pSpraycan] = 0;
PlayerInfo[playerid][pHouse] = INVALID_HOUSE_ID;
PlayerInfo[playerid][pHouse2] = INVALID_HOUSE_ID;
PlayerInfo[playerid][pRenting] = INVALID_HOUSE_ID;
PlayerInfo[playerid][pInt] = 0;
PlayerInfo[playerid][pVW] = 0;
PlayerInfo[playerid][pJailed] = 0;
PlayerInfo[playerid][pJailTime] = 0;
// Weapons
for(new s = 0; s < 12; s++)
{
PlayerInfo[playerid][pAGuns][s] = 0; // Admin spawned, non-saved
PlayerInfo[playerid][pGuns][s] = 0;
}
PlayerInfo[playerid][pPayCheck] = 0;
PlayerInfo[playerid][pPayReady] = 0;
PlayerInfo[playerid][pDetSkill] = 0;
PlayerInfo[playerid][pLawSkill] = 0;
PlayerInfo[playerid][pSexSkill] = 0;
PlayerInfo[playerid][pDrugsSkill] = 0;
PlayerInfo[playerid][pSmugSkill] = 0;
PlayerInfo[playerid][pArmsSkill] = 0;
PlayerInfo[playerid][pMechSkill] = 0;
PlayerInfo[playerid][pFishSkill] = 0;
PlayerInfo[playerid][pBoxSkill] = 0;
PlayerInfo[playerid][pTruckSkill] = 0;
PlayerInfo[playerid][pCarSkill] = 0;
//PlayerInfo[playerid][pCraftSkill] = 0;
PlayerInfo[playerid][pLawyerTime] = 0;
PlayerInfo[playerid][pLawyerFreeTime] = 0;
PlayerInfo[playerid][pDrugsTime] = 0;
PlayerInfo[playerid][pMechTime] = 0;
PlayerInfo[playerid][pSexTime] = 0;
PlayerInfo[playerid][pCarTime] = 0;
PlayerInfo[playerid][pFishes] = 0;
PlayerInfo[playerid][pBiggestFish] = 0;
PlayerInfo[playerid][pWeedObject] = 0;
PlayerInfo[playerid][pWeedPos][0] = 0;
PlayerInfo[playerid][pWeedPos][1] = 0;
PlayerInfo[playerid][pWeedPos][2] = 0;
PlayerInfo[playerid][pWeedVW] = 0;
PlayerInfo[playerid][pWeedInt] = 0;
PlayerInfo[playerid][pWeedGrowth] = -1;
PlayerInfo[playerid][pWSeeds] = 0;
PlayerInfo[playerid][pFightStyle] = FIGHT_STYLE_NORMAL;
PlayerInfo[playerid][pScrewdriver] = 0;
PlayerInfo[playerid][pSmslog] = 0;
PlayerInfo[playerid][pWristwatch] = 0;
PlayerInfo[playerid][pTire] = 0;
PlayerInfo[playerid][pFirstaid] = 0;
PlayerInfo[playerid][pRccam] = 0;
PlayerInfo[playerid][pReceiver] = 0;
PlayerInfo[playerid][pGPS] = 0;
PlayerInfo[playerid][pSweep] = 0;
PlayerInfo[playerid][pSweepLeft] = 0;
for(new v = 0; v < MAX_PLAYERVEHICLES; v++)
{
PlayerVehicleInfo[playerid][v][pvModelId] = 0;
PlayerVehicleInfo[playerid][v][pvPosX] = 0.0;
PlayerVehicleInfo[playerid][v][pvPosY] = 0.0;
PlayerVehicleInfo[playerid][v][pvPosZ] = 0.0;
PlayerVehicleInfo[playerid][v][pvPosAngle] = 0.0;
PlayerVehicleInfo[playerid][v][pvLock] = 0;
PlayerVehicleInfo[playerid][v][pvLocked] = 0;
PlayerVehicleInfo[playerid][v][pvPaintJob] = -1;
PlayerVehicleInfo[playerid][v][pvColor1] = 0;
PlayerVehicleInfo[playerid][v][pvImpounded] = 0;
PlayerVehicleInfo[playerid][v][pvSpawned] = 0;
PlayerVehicleInfo[playerid][v][pvColor2] = 0;
PlayerVehicleInfo[playerid][v][pvPrice] = 0;
PlayerVehicleInfo[playerid][v][pvTicket] = 0;
PlayerVehicleInfo[playerid][v][pvWeapons][0] = 0;
PlayerVehicleInfo[playerid][v][pvWeapons][1] = 0;
PlayerVehicleInfo[playerid][v][pvWeapons][2] = 0;
PlayerVehicleInfo[playerid][v][pvWepUpgrade] = 0;
PlayerVehicleInfo[playerid][v][pvFuel] = 100.0;
PlayerVehicleInfo[playerid][v][pvAllowedPlayerId] = INVALID_PLAYER_ID;
PlayerVehicleInfo[playerid][v][pvPark] = 0;
ListItemReleaseId[playerid][v] = -1;
PlayerVehicleInfo[playerid][v][pvDisabled] = 0;
PlayerVehicleInfo[playerid][v][pvSpawned] = 0;
format(PlayerVehicleInfo[playerid][v][pvNumberPlate], 32, "");
ListItemTrackId[playerid][v] = -1;
for(new m = 0; m < MAX_MODS; m++)
{
PlayerVehicleInfo[playerid][v][pvMods][m] = 0;
}
}
for(new v = 0; v < MAX_PLAYERVEHICLES; v++) {
PlayerVehicleInfo[playerid][v][pvAllowedPlayerId] = INVALID_PLAYER_ID;
}
PlayerInfo[playerid][pVehicleKeys] = INVALID_PLAYER_VEHICLE_ID; // non-saved
PlayerInfo[playerid][pVehicleKeysFrom] = INVALID_PLAYER_ID; // non-saved
PlayerInfo[playerid][pCarLic] = 1;
PlayerInfo[playerid][pFlyLic] = 0;
PlayerInfo[playerid][pBoatLic] = 1;
PlayerInfo[playerid][pFishLic] = 1;
PlayerInfo[playerid][pGunLic] = 1;
PlayerInfo[playerid][pDivision] = 0;
PlayerInfo[playerid][pTicketTime] = 0;
PlayerInfo[playerid][pHeadValue] = 0;
strcpy(PlayerInfo[playerid][pContractBy], "Nobody", 64);
strcpy(PlayerInfo[playerid][pContractDetail], "None", 64);
PlayerInfo[playerid][pC4] = 0;
PlayerInfo[playerid][pC4Used] = 0;
PlayerInfo[playerid][pBombs] = 0;
PlayerInfo[playerid][pCHits] = 0;
PlayerInfo[playerid][pFHits] = 0;
strcpy(PlayerInfo[playerid][pPrisonedBy], "Nobody", 64);
strcpy(PlayerInfo[playerid][pPrisonReason], "None", 64);
PlayerInfo[playerid][pAcceptReport] = 0;
PlayerInfo[playerid][pTrashReport] = 0;
PlayerInfo[playerid][pAccent] = 0;
PlayerInfo[playerid][pNMute] = 0;
PlayerInfo[playerid][pNMuteTotal] = 0;
PlayerInfo[playerid][pADMute] = 0;
PlayerInfo[playerid][pADMuteTotal] = 0;
PlayerInfo[playerid][pRMuted] = 0;
PlayerInfo[playerid][pRMutedTotal] = 0;
PlayerInfo[playerid][pRMutedTime] = 0;
PlayerInfo[playerid][pSpeedo] = 0;
PlayerInfo[playerid][pGCMuted] = 0;
PlayerInfo[playerid][pGCMutedTime] = 0;
PlayerInfo[playerid][pCallsAccepted] = 0;
PlayerInfo[playerid][pPatientsDelivered] = 0;
PlayerInfo[playerid][pTriageTime] = 0;
for(new v = 0; v < MAX_PLAYERTOYS; v++)
{
PlayerToyInfo[playerid][v][ptModelID] = 0;
PlayerToyInfo[playerid][v][ptBone] = 0;
PlayerToyInfo[playerid][v][ptPosX] = 0.0;
PlayerToyInfo[playerid][v][ptPosY] = 0.0;
PlayerToyInfo[playerid][v][ptPosZ] = 0.0;
PlayerToyInfo[playerid][v][ptRotX] = 0.0;
PlayerToyInfo[playerid][v][ptRotY] = 0.0;
PlayerToyInfo[playerid][v][ptRotZ] = 0.0;
PlayerToyInfo[playerid][v][ptScaleX] = 1.0;
PlayerToyInfo[playerid][v][ptScaleY] = 1.0;
PlayerToyInfo[playerid][v][ptScaleZ] = 1.0;
}
PlayerInfo[playerid][pKillLog0][0] = 0;
PlayerInfo[playerid][pKillLog1][0] = 0;
PlayerInfo[playerid][pKillLog2][0] = 0;
PlayerInfo[playerid][pKillLog3][0] = 0;
PlayerInfo[playerid][pKillLog4][0] = 0;
PlayerInfo[playerid][pKillLog5][0] = 0;
PlayerInfo[playerid][pKillLog6][0] = 0;
PlayerInfo[playerid][pKillLog7][0] = 0;
PlayerInfo[playerid][pKillLog8][0] = 0;
PlayerInfo[playerid][pKillLog9][0] = 0;
strcpy(PlayerInfo[playerid][pFlag], "", 128);
strcpy(PlayerInfo[playerid][pReferredBy], "0", 32);
PlayerInfo[playerid][pRefTokens] = 0;
PlayerInfo[playerid][pRefTokensOffline] = 0;
PlayerInfo[playerid][pHelper] = 0;
// Other player variables (non-saving)
AdminRelogPassword[playerid][0] = 0;
AdminLoggedInBefore[playerid] = 0;
for(new s = 0; s < 40; s++)
{
ListItemReportId[playerid][s] = -1;
}
for(new i = 0; i < 6; i++)
{
HHcheckFloats[playerid][i] = 0;
}
HHcheckInt[playerid] = 0;
HHcheckVW[playerid] = 0;
for(new i = 0; i < 3; i++)
{
TeleportDest[playerid][i] = 0;
}
for(new i = 0; i < 3; i++)
{
TeleportDest2[playerid][i] = 0;
}
for(new i = 0; i < 3; i++) {
StopaniFloats[playerid][i] = 0;
}
TeleportDestInt[playerid] = 0;
TeleportDestInt2[playerid] = 0;
gPlayerAccount[playerid] = 0;
gPlayerLogTries[playerid] = 0;
gPlayerLogged[playerid] = 0;
InsideMainMenu[playerid] = 1;
InsideTut[playerid] = 1;
ActiveChatbox[playerid] = 0;
PlayerCuffed[playerid] = 0;
Spectate[playerid] = 999;
Spectating[playerid] = 0;
GettingSpectated[playerid] = 999;
InsideShamal[playerid]= INVALID_VEHICLE_ID;
HouseOffer[playerid] = 999;
House[playerid] = 0;
HousePrice[playerid] = 0;
hInviteHouse[playerid]=INVALID_HOUSE_ID;
hInviteOffer[playerid]=999;
//hInviteSlot[playerid]=0;
playerTabbed[playerid] = 0;
playerTabbedTime[playerid] = 0;
playerAFK[playerid] = 0;
playerAFKTime[playerid] = 0;
playerLastTyped[playerid] = 0;
pCurrentWeapon[playerid] = 0;
JetPack[playerid] = 0;
TextSpamTimes[playerid] = 0;
TextSpamUnmute[playerid] = 0;
CommandSpamTimes[playerid] = 0;
CommandSpamUnmute[playerid] = 0;
gLastCar[playerid] = 0;
GettingJob[playerid] = 0;
GettingJob2[playerid] = 0;
PayCheckCode[playerid] = 0;
AdminDuty[playerid] = 0;
FindTimePoints[playerid] = 0;
FindingPlayer[playerid] = 0;
FindTime[playerid] = 0;
UsedFind[playerid] = 0;
Condom[playerid] = 0;
SexOffer[playerid] = 999;
SexPrice[playerid] = 0;
gFam[playerid] = 0;
InviteOffer[playerid]=999;
InviteFaction[playerid]=0;
InviteFamily[playerid]=255;
PotOffer[playerid] = 999;
CrackOffer[playerid] = 999;
PotPrice[playerid]=0;
CrackPrice[playerid]=0;
PotGram[playerid]=0;
CrackGram[playerid]=0;
JobDuty[playerid]=0;
WantLawyer[playerid]=0;
CallLawyer[playerid]=0;
JailPrice[playerid]=0;
DefendOffer[playerid] = 999;
DefendPrice[playerid] = 0;
CP[playerid] = 0;
GuardOffer[playerid] = 999;
GuardPrice[playerid]=0;
GunOffer[playerid] = 999;
GunId[playerid] = 0;
GunMats[playerid] = 0;
MatsOffer[playerid] = 999;
MatsPrice[playerid] = 0;
MatsAmount[playerid] = 0;
PlayerBoxing[playerid]=0;
BoxOffer[playerid] = 999;
BoxWaitTime[playerid]=0;
UsedCrack[playerid] = 0;
UsedWeed[playerid] = 0;
PlayerStoned[playerid] = 0;
TransportDuty[playerid]=0;
TransportValue[playerid] = 0;
TransportMoney[playerid] = 0;
TransportTime[playerid] = 0;
TransportCost[playerid] = 0;
TransportDriver[playerid] = 999;
ConsumingMoney[playerid] = 0;
BusCallTime[playerid]=0;
BusAccepted[playerid] = 999;
TaxiCallTime[playerid]=0;
TaxiAccepted[playerid] = 999;
DrinkOffer[playerid] = INVALID_PLAYER_ID;
Fishes[playerid][pLastFish] = 0;
Fishes[playerid][pFishID] = 0;
FishCount[playerid]=0;
CraftOffer[playerid] = 999;
CraftId[playerid]=0;
CraftMats[playerid]=0;
VehicleSpawned[playerid] = 0;
VehicleOffer[playerid] = 999;
VehiclePrice[playerid] = 0;
VehicleId[playerid] = -1;
GiveKeysTo[playerid] = INVALID_PLAYER_ID;
RepairCar[playerid]=0;
OnDuty[playerid]=0;
ConnectedToPC[playerid]=0;
PlayerCuffedTime[playerid]=0;
PhoneOnline[playerid] = 0;
pTazer[playerid] = 0;
pTazerReplace[playerid] = 0;
TazerTimeout[playerid] = 0;
TicketOffer[playerid] = 999;
TicketMoney[playerid] = 0;
arr_Towing[playerid] = INVALID_VEHICLE_ID;
Fixr[playerid] = 0;
gBug[playerid] = 1;
GotHit[playerid]=0;
GoChase[playerid]=999;
GetChased[playerid]=999;
HitOffer[playerid]=999;
HitToGet[playerid]=999;
JustReported[playerid] = -1;
CancelReport[playerid] = -1;
NewbieTimer[playerid] = 0;
gNewbie[playerid] = 0;
for(new i = 0; i < 6; i++) {
EventFloats[playerid][i] = 0.0;
}
EventLastInt[playerid] = 0; EventLastVW[playerid] = 0;
Mobile[playerid]=INVALID_PLAYER_ID;
CellTime[playerid] = 0;
CalledCops[playerid]=0;
CopsCallTime[playerid]=0;
CalledMedics[playerid]=0;
MedicsCallTime[playerid]=0;
Music[playerid]=0;
PlayerTied[playerid]=0;
gRadio[playerid] = 1;
CallCost[playerid] = 0;
szAdvert[playerid][0] = 0;
IsBoundsShowingFFC[playerid] = 0;
IsBoundsShowingMP1[playerid] = 0;
IsBoundsShowingMF1[playerid] = 0;
IsBoundsShowingMP2[playerid] = 0;
IsBoundsShowingMF2[playerid] = 0;
IsBoundsShowingAEC[playerid] = 0;
IsBoundsShowingDH[playerid] = 0;
IsBoundsShowingCL[playerid] = 0;
IsBoundsShowingDF[playerid] = 0;
LoadTruckBar[playerid] = INVALID_BAR_ID;
LoadTruckTime[playerid] = 0;
TruckDeliver[playerid] = 0;
TruckUsed[playerid] = INVALID_VEHICLE_ID;
GlobalChat[playerid] = 0;
GlobalChatTimer[playerid] = 0;
EMSCallTime[playerid]=0;
EMSAccepted[playerid]=999;
MedicCallTime[playerid]=0;
MedicAccepted[playerid] = 999;
MechanicCallTime[playerid]=0;
DivorceOffer[playerid] = 999;
MarryWitness[playerid] = 999;
MarryWitnessOffer[playerid] = 999;
MarriageCeremoney[playerid] = 0;
ProposeOffer[playerid] = 999;
ProposedTo[playerid] = 999;
GotProposedBy[playerid] = 999;
slotselection[playerid] = 0;
ServiceTime[playerid] = 0;
WasHereForPaycheck[playerid] = 0;
SignedPaycheck[playerid] = 0;
MissedPaychecks[playerid] = 0;
HidePM[playerid] = 0;
Backup[playerid] = 0;
FindingJob[playerid] = 0;
ShakeHandRequest[playerid] = 999;
ShakeHandStyle[playerid] = 0;
TutorialProgress[playerid] = 0;
ValidArmor[playerid] = 0;
PhonePrivacy[playerid] = 0;
MP3Station[playerid] = 0;
// Start of boombox
BoomBoxSet[playerid] = 0;
BoomboxInfo[playerid][bbPosX] = 0.0;
BoomboxInfo[playerid][bbPosY] = 0.0;
BoomboxInfo[playerid][bbPosZ] = 0.0;
BoomboxInfo[playerid][bbInt] = 0;
BoomboxInfo[playerid][bbVW] = 0;
BoomboxInfo[playerid][bbStation] = 0;
BoomboxInfo[playerid][bbSetBy] = 999;
BoomboxInfo[playerid][bbObject] = 0;
// End of boombox
ClearCrime(playerid);
ClearFishes(playerid);
ClearMarriage(playerid);
// Removal of hell hole (VIP Lounge)
RemoveBuildingForPlayer(playerid, 3999, 1785.9766, -1564.8594, 25.2500, 0.25);
RemoveBuildingForPlayer(playerid, 4079, 1785.9766, -1564.8594, 25.2500, 0.25);
RemoveBuildingForPlayer(playerid, 4189, 1794.6172, -1576.7344, 17.7578, 0.25);
RemoveBuildingForPlayer(playerid, 1308, 1822.1563, -1543.7891, 12.6328, 0.25);
print("[DEBUGTEST]");
//PlayerPlaySound(playerid,SOUND_MUSIC1,2050.1995, 1344.5500, 13.2378);
SetSpawnInfo(playerid, 0, 299, 1970.506103, -1201.447143, -25.074676, 1.0, -1, -1, -1, -1, -1, -1);
SpawnPlayer(playerid); // The player doesn't actually spawn before logging in, this is just to get rid of the annoying "<<", ">>" and "Spawn" buttons.
TogglePlayerControllable(playerid, 0);
SetTimerEx("Login", 1000, 0, "d", playerid);
SyncPlayerTime(playerid);
return 1;
}