20.12.2013, 15:03
Hello. Well i just got this bug for this command /setadminname and /aduty. The problem is that everytime you set an admin's name with /setadminname then it wont save. After he relogged then he have to set his admin name again. Here is the command
Код:
CMD:setadminname(playerid, params[]) { if(PlayerInfo[playerid][pAdmin] >= 99998) { /*if(AdminDuty[playerid] != 1 && PlayerInfo[playerid][pAdmin] < 99999) { SendClientMessage(playerid,COLOR_WHITE, "You're not on-duty as admin. To access your admin commands you must be on-duty. Type /aduty to go on-duty."); return 1; }*/ new giveplayerid, name[32]; if(sscanf(params, "us[32]", giveplayerid, name)) { SendClientMessage(playerid, COLOR_WHITE, "USAGE: /setadminname [playerid/partofname] [name]"); return 1; } if(PlayerInfo[giveplayerid][pAdmin] < 1) { SendClientMessage(playerid, COLOR_WHITE, "The player is not an admin."); return 1; } if(AdminDuty[giveplayerid] != 0) { SendClientMessage(playerid, COLOR_WHITE, "That admin is currently on-duty. They must go off-duty in order for you to set their admin name."); return 1; } new length = strlen(name); if(length < 3 || length > 20) { SendClientMessage(playerid, COLOR_WHITE, "The name can't less than 3 characters or more than 20 characters."); return 1; } if(strfind(name, "_", true) != -1) { SendClientMessage(playerid, COLOR_WHITE, "The admin name must be one name. There can't be an underscore in the name."); return 1; } if(strcmp(name, "Tony", true) == 0 && PlayerInfo[playerid][pAdmin] < 99999) { SendClientMessage(playerid, COLOR_WHITE, "stop ! im tony ! you're not tony !"); return 1; } new string[128]; format(string, sizeof(string), "AdmCmd: %s has set %s's admin name to '%s'.", GetPlayerNameEx(playerid), GetPlayerNameEx(giveplayerid), name); ABroadCast(COLOR_LIGHTRED, string, 1); format(PlayerInfo[giveplayerid][pAdminName], 32, name); } else SendClientMessage(playerid, COLOR_GRAD1, "You're not authorized to use that command!"); return 1; } CMD:adminduty(playerid, params[]) { return cmd_aduty(playerid, params); } CMD:aduty(playerid, params[]) { if(PlayerInfo[playerid][pAdmin] >= 2) { if(strlen(PlayerInfo[playerid][pAdminName]) > 2 && strlen(PlayerInfo[playerid][pAdminName]) < 20) { new string[128]; if(AdminDuty[playerid] != 0) { if(!doesAccountExist(PlayerInfo[playerid][pAdminName])) { if(Spectating[playerid] > 0 && PlayerInfo[playerid][pAdmin] >= 2) { GettingSpectated[Spectate[playerid]] = 999; Spectating[playerid] = 0; Spectate[playerid] = 999; SetPVarInt(playerid, "SpecOff", 1); TogglePlayerSpectating(playerid, false); SetCameraBehindPlayer(playerid); } new pState = GetPlayerState(playerid); if(pState == PLAYER_STATE_WASTED) { SendClientMessage(playerid, COLOR_GRAD2, "You can't do this while wasted."); return 1; } DeletePVar(playerid, "MedicBill"); DeletePVar(playerid, "HospitalTimer"); DeletePVar(playerid, "Hospital"); DeletePVar(playerid, "Injured"); DeletePVar(playerid, "EMSAttempt"); DeletePVar(playerid, "MedicCall"); TogglePlayerControllable(playerid, 1); ClearAnimations(playerid); PlayerCuffed[playerid] = 0; PlayerCuffedTime[playerid] = 0; DeletePVar(playerid, "PlayerCuffed"); HouseOffer[playerid] = 999; House[playerid] = 0; HousePrice[playerid] = 0; SexOffer[playerid] = 999; SexPrice[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; JailPrice[playerid]=0; DefendOffer[playerid] = 999; DefendPrice[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; CraftOffer[playerid] = 999; CraftId[playerid]=0; CraftMats[playerid]=0; VehicleOffer[playerid] = 999; VehiclePrice[playerid] = 0; VehicleId[playerid] = -1; RepairCar[playerid]=0; OnDuty[playerid]=0; TicketOffer[playerid] = 999; TicketMoney[playerid] = 0; arr_Towing[playerid] = INVALID_VEHICLE_ID; GotHit[playerid]=0; GoChase[playerid]=999; GetChased[playerid]=999; DivorceOffer[playerid] = 999; MarryWitness[playerid] = 999; MarryWitnessOffer[playerid] = 999; MarriageCeremoney[playerid] = 0; ProposeOffer[playerid] = 999; ProposedTo[playerid] = 999; GotProposedBy[playerid] = 999; DeletePVar(playerid, "LAPCReceived"); PhoneOnline[playerid] = 0; DeletePVar(playerid, "AdminUndercover"); new username[MAX_PLAYER_NAME]; GetPVarString(playerid, "TempNameName", username, sizeof(username)); SetPVarInt(playerid, "TempName", 0); SetPlayerName(playerid, username); AdminDuty[playerid] = 0; format(string, sizeof(string), "%s (ID %d - %s) is now off-duty as a Level %d Admin.", PlayerInfo[playerid][pAdminName], playerid, GetPlayerNameEx(playerid), PlayerInfo[playerid][pAdmin]); ABroadCast(COLOR_WHITE, string, 1); if(PlayerInfo[playerid][pAdmin] == 1) { SendClientMessage(playerid, COLOR_YELLOW, "You're now off-duty as admin, but still have access to your Level 1 Admin commands."); } if(PlayerInfo[playerid][pAdmin] > 1 && PlayerInfo[playerid][pAdmin] < 99999) { SendClientMessage(playerid, COLOR_YELLOW, "You're now off-duty as admin, and only have access to /admins /check /jail /ban /sban /kick /skick /showflags /reports /nrn"); } if(PlayerInfo[playerid][pAdmin] == 99999) { SendClientMessage(playerid, COLOR_YELLOW, "You're now off-duty as admin, but still have access to all of your commands since you're a Level 6 Admin."); } SendClientMessage(playerid, COLOR_REALRED, "Please remember to turn off any hacks you may have (press F12 to disable ******)."); //SetPVarInt(playerid, "F12Timer", SetTimerEx("F12Warning", 1000, true, "d", playerid)); OnPlayerLogin(playerid, AdminRelogPassword[playerid]); SetPlayerHealth(playerid, PlayerInfo[playerid][pHealth]); } else { SendClientMessage(playerid, COLOR_WHITE, "This name is already registered."); } } else { PlayerInfo[playerid][pInt] = GetPlayerInterior(playerid); PlayerInfo[playerid][pVW] = GetPlayerVirtualWorld(playerid); GetPlayerIp(playerid, PlayerInfo[playerid][pIP], 32); GetPlayerPos(playerid, PlayerInfo[playerid][pPos_x], PlayerInfo[playerid][pPos_y], PlayerInfo[playerid][pPos_z]); GetPlayerFacingAngle(playerid, PlayerInfo[playerid][pPos_r]); OnPlayerStatsUpdate(playerid); PhoneOnline[playerid] = 1; for(new i = 0; i < MAX_REPORTS; i++) { if(Reports[i][ReportFrom] == playerid) { Reports[i][ReportFrom] = 999; Reports[i][BeingUsed] = 0; Reports[i][TimeToExpire] = 0; } } if(GotHit[playerid] > 0) { if(GetChased[playerid] < 999) { if(IsPlayerConnected(GetChased[playerid])) { SendClientMessage(GetChased[playerid], COLOR_YELLOW, "Your hit has left the server."); GoChase[GetChased[playerid]] = 999; } } } if(GoChase[playerid] < 999) { GetChased[GoChase[playerid]] = 999; GotHit[GoChase[playerid]] = 999; } SetPVarInt(playerid, "TempName", 1); new username[MAX_PLAYER_NAME]; GetPlayerName(playerid, username, sizeof(username)); SetPVarString(playerid, "TempNameName", username); AdminDuty[playerid] = 1; format(string, sizeof(string), "%s (ID %d - %s) is now on-duty as a Level %d Admin.",PlayerInfo[playerid][pAdminName], playerid, GetPlayerNameEx(playerid), PlayerInfo[playerid][pAdmin]); ABroadCast(COLOR_WHITE, string, 1); SetPlayerName(playerid, PlayerInfo[playerid][pAdminName]); } } else SendClientMessage(playerid, COLOR_WHITE, "You need an admin name to go on-duty. Contact a co-owner+ Admin to have your admin name set."); } else SendClientMessage(playerid, COLOR_GRAD1, "You're not authorized to use that command!"); return 1; }