23.02.2015, 17:25
Hi guys! Recently, I made a /invite command for my RPG Server. It's a MYSQL server and I think there's a problem somewhere down here. What's happening is that the player is invited and everything is ok untill he relogs. Then, the skin and the team remains ok but [pMember] is not saving. So, he is a civilian with cop skin for example.
Could you please tell me how to fix it?
Код:
if(strcmp(cmd, "/invite", true) == 0) { if(IsPlayerConnected(playerid)) { tmp = strtok(cmdtext, idx); if(!strlen(tmp)) { SendClientMessage(playerid, COLOR_GRAD2, "USAGE: /invite [playerid/PartOfName]"); return 1; } new para1; new ftext[20]; para1 = ReturnUser(tmp); if (PlayerData[playerid][pLeader] >= 1 || PlayerData[playerid][pRank] == 6) { if(IsPlayerConnected(para1)) { if(para1 != INVALID_PLAYER_ID) { if (gTeam[para1]==TEAM_GREEN && PlayerData[para1][pMember] == 0 && PlayerData[para1][pFMember] == 255 || PlayerData[para1][pLeader] == 0) { if(PlayerData[para1][pJob] > 0) { SendClientMessage(playerid, COLOR_GREY, " Can't invite him, player has a Job !"); return 1; } if(PlayerData[playerid][pLeader] == 1) { PlayerData[para1][pTeam] = 2; gTeam[para1] = 2; ftext = "Police Department"; ChosenSkin[para1] = 280; SetPlayerSkin(para1, 280); } else if(PlayerData[playerid][pLeader] == 2) { PlayerData[para1][pTeam] = 2; gTeam[para1] = 2; ftext = "FBI/ATF"; ChosenSkin[para1] = 286; SetPlayerSkin(para1, 286); } else if(PlayerData[playerid][pLeader] == 3) { PlayerData[para1][pTeam] = 2; gTeam[para1] = 2; ftext = "National Guard"; ChosenSkin[para1] = 287; SetPlayerSkin(para1, 287); } else if(PlayerData[playerid][pLeader] == 4) { PlayerData[para1][pTeam] = 1; gTeam[para1] = 1; ftext = "Paramedics"; ChosenSkin[para1] = 70; SetPlayerSkin(para1, 70); } else if(PlayerData[playerid][pLeader] == 5) { PlayerData[para1][pTeam] = 5; gTeam[para1] = 5; ftext = "Mayor"; ChosenSkin[para1] = 258; SetPlayerSkin(para1, 120); } else if(PlayerData[playerid][pLeader] == 6) { PlayerData[para1][pTeam] = 5; gTeam[para1] = 5; ftext = "Taxi Cab Company"; ChosenSkin[para1] = 120; SetPlayerSkin(para1, 258); } else if(PlayerData[playerid][pLeader] == 7) { PlayerData[para1][pTeam] = 7; gTeam[para1] = 5; ftext = "School Instructors"; ChosenSkin[para1] = 153; SetPlayerSkin(para1, 153); } else if(PlayerData[playerid][pLeader] == 8) { PlayerData[para1][pTeam] = 10; gTeam[para1] = 12; ftext = "Hitman Agency"; ChosenSkin[para1] = 127; SetPlayerSkin(para1, 127); } else if(PlayerData[playerid][pLeader] == 9) { PlayerData[para1][pTeam] = 12; gTeam[para1] = 12; ftext = "News Reporters"; ChosenSkin[para1] = 148; SetPlayerSkin(para1, 148); } else if(PlayerData[playerid][pLeader] == 10) { PlayerData[para1][pTeam] = 12; gTeam[para1] = 12; ftext = "Tow Truck Company"; ChosenSkin[para1] = 255; SetPlayerSkin(para1, 255); } else if(PlayerData[playerid][pLeader] == 11) { PlayerData[para1][pTeam] = 12; gTeam[para1] = 12; ftext = "Jamaican Posse"; ChosenSkin[para1] = 59; SetPlayerSkin(para1, 59); } else if(PlayerData[playerid][pLeader] == 12) { PlayerData[para1][pTeam] = 12; gTeam[para1] = 12; ftext = "Bloods"; ChosenSkin[para1] = 67; SetPlayerSkin(para1, 67); } else if(PlayerData[playerid][pLeader] == 13) { PlayerData[para1][pTeam] = 12; gTeam[para1] = 12; ftext = "Black Guerrila"; ChosenSkin[para1] = 102; SetPlayerSkin(para1, 102); } else { return 1; } GetPlayerName(para1, giveplayer, sizeof(giveplayer)); GetPlayerName(playerid, sendername, sizeof(sendername)); PlayerData[para1][pMember] = PlayerData[playerid][pLeader]; PlayerData[para1][pRank] = 1; printf("News: %s has invited %s to join %s.", sendername, giveplayer, ftext); format(string, sizeof(string), " You have Joined the %s, you were invited by Leader %s", ftext, sendername); SendClientMessage(para1, COLOR_LIGHTBLUE, string); format(string,sizeof string, "INSERT INTO `factions` (`Player`,`Leader`,`Rank`)VALUES('%s','%s','1');",sendername,ftext); mysql_query(string);//acum zi comanda de /setrank,sau cum o fi format(string, sizeof(string), " You have Invited %s to join the %s.", giveplayer,ftext); SendClientMessage(playerid, COLOR_LIGHTBLUE, string); SetPlayerInterior(para1,0); new rand = random(sizeof(gInviteSpawns)); SetPlayerPos(para1, gInviteSpawns[rand][0], gInviteSpawns[rand][1], gInviteSpawns[rand][2]); // Warp the player SetPlayerFacingAngle(para1, gInviteSpawns[rand][3]); SetPlayerCameraPos(para1,gInviteSpawns[rand][0] + 3, gInviteSpawns[rand][1], gInviteSpawns[rand][2]); SetPlayerCameraLookAt(para1,gInviteSpawns[rand][0], gInviteSpawns[rand][1], gInviteSpawns[rand][2]); TogglePlayerControllable(para1, 0); SelectChar[para1] = 255; SelectCharID[para1] = PlayerData[para1][pMember]; SelectCharPlace[para1] = 1; PlayerData[para1][pModel] = ChosenSkin[para1]; PlayerData[para1][pChar] = ChosenSkin[para1]; SendClientMessage(para1, COLOR_LIGHTRED, "* Use 'next' to Select the char you want to use."); SendClientMessage(para1, COLOR_LIGHTRED, "* If you've found the Char you want to use, type 'done'."); new wakaname[25]; GetPlayerName(para1,wakaname,25); new str[128]; format(str,128,"UPDATE `users` SET `Cchar`='%d',`Team`='%d',`Model`='%d`,`Member`='%d' WHERE `name`='%s'",PlayerData[para1][pChar],PlayerData[para1][pTeam],PlayerData[para1][pModel],PlayerData[para1][pMember],wakaname); mysql_query(str); } else { SendClientMessage(playerid, COLOR_GREY, " That player is currently Wanted / a Different Team / or already a Family Member."); return 1; } } }//not connected } else { SendClientMessage(playerid, COLOR_GRAD1, "You are not authorized to use that command(leaders only)!"); } } return 1; }