I know of no other way to put gamemode variables in your filter script. I guess MySQL would kind of be a good way to use variables in your filterscript, but apart from that there's no real easy way.
|
#define MissionPath "MissionStats/%s.ini" public OnPlayerConnect(playerid) { new name[MAX_PLAYER_NAME], file[256]; GetPlayerName(playerid, name, sizeof(name)); format(file, sizeof(file), MissionPath, name); if (!dini_Exists(file)) { dini_Create(file); dini_IntSet(file, "MissionPass", AccInfo[playerid][MissionPass] = 0); } if(fexist(file)) { AccInfo[playerid][MissionPass] = dini_Int(file, "MissionPass"); } return 1; } public OnPlayerDisconnect(playerid, reason) { SaveMissionStats(playerid); return 1; } stock SaveMissionStats(playerid) { new name[MAX_PLAYER_NAME], file[256]; GetPlayerName(playerid, name, sizeof(name)); format(file, sizeof(file), MissionPath, name); dini_IntSet(file, "MissionPass",AccInfo[playerid][MissionPass]); return 1; } stock pName(playerid) { new GetName[24]; GetPlayerName(playerid, GetName, 24); return GetName; } forward NoExplode(playerid); public NoExplode(playerid) { for(new i; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i)) { if(gTeam[i] == TEAM_ATTACKERS) { MissionPassed(i); GivePlayerMoney(i, 4000); SetPlayerScore(i,GetPlayerScore(i)+3); SendClientMessage(i,-1,"{7C7C7C}» You've Recieved 3 Points and $4,000 for Completing the mission Objective."); PlayerPlaySound(i, 1085, 0.0, 0.0, 0.0); AccInfo[playerid][MissionPass]++; } if(gTeam[i] == TEAM_DEFENDERS) { MissionFailed(i); PlayerPlaySound(i, 1085, 0.0, 0.0, 0.0); GivePlayerMoney(i, -2000); SendClientMessage(i,-1,"{FF0000}» You've Lost -$2000 Money for not completing the Mission Objective."); } SetTimerEx("NewMode",14000,false,"i", playerid); } return 1; }
MissionStats > %s.ini
stock SetPlayerScoreEx(playerid, score)
{
return CallRemoteFunction("_SetPlayerScore", "dd", playerid, score);
}
forward _SetPlayerScore(playerid, score);
public _SetPlayerScore(playerid, score)
{
SetPlayerScore(playerid, score);
// do whatever else
return 1;
}
You can use CallRemoteFunction to call a remote function that can do something, you can pass variables through this method:
pawn Код:
pawn Код:
|
CMD:mstats(playerid, params[]) { new string[128]; format(string, sizeof(string),"{72A6FF}Mission Passed: {FFFFFF}%d\n", CallRemoteFunction("MPass", "d", playerid)); SendClientMessage(playerid,-1, string); return 1; }
forward MPass(playerid); public MPass(playerid) { return AccInfo[playerid][MissionPass]; }
Thanks! but i already tried this method, have a look on the codes:
THIS IS IN FILTERSCRIPT: Код:
CMD:mstats(playerid, params[]) { new string[128]; format(string, sizeof(string),"{72A6FF}Mission Passed: {FFFFFF}%d\n", CallRemoteFunction("MPass", "d", playerid)); SendClientMessage(playerid,-1, string); return 1; } Код:
forward MPass(playerid); public MPass(playerid) { return AccInfo[playerid][MissionPass]; } |