03.07.2014, 23:51
Hello, who can help me? Fs save the variables but it not load it in OnPlayerConnect...
How fix it?
How fix it?
Код:
// Weapon skills by DarK_FeneR #define FILTERSCRIPT #include <a_samp> #include <Dini> #define COLOR_ROSSO 0xFF0000FF #define COLOR_FUCSIA 0x9900FFFF #define COLOR_BLU 0x0000FFFF #define COLOR_CELESTE 0x0066FFFF #define COLOR_VERDE 0x00FF00FF #define COLOR_VERDEACQUA 0x00FF99FF #define COLOR_GIALLO 0xFFFF00FF #define COLOR_ARANCIONE 0xFF9900FF #define COLOR_MARRONE 0x663300FF #define COLOR_ROSA 0xFF6666FF #define COLOR_SALMONE 0xFF9966FF #define COLOR_NERO 0x000000FF #define COLOR_BIANCO 0xFFFFFFFF #define DIALOG_SKILLS 15 #define saveskills "Skills\%s" #if defined FILTERSCRIPT enum pInfo { Killz, Skillz_Pt, Skillz_Weapon, Skillz_Armour } new PlayerInfo[MAX_PLAYERS][pInfo]; public OnFilterScriptInit() { print("\n--------------------------------------"); print("Skill FS by DarK_FeneR LOADED"); print("--------------------------------------\n"); return 1; } public OnFilterScriptExit() { print("\n--------------------------------------"); print("Skill FS by DarK_FeneR UNLOADED"); print("--------------------------------------\n"); return 1; } #else main() { print("\n----------------------------------"); print("Skill FS by DarK_FeneR"); print("----------------------------------\n"); } #endif public OnPlayerConnect(playerid) { new string[256]; new file[100],Name[MAX_PLAYER_NAME]; GetPlayerName(playerid,Name,sizeof(Name)); format(file,sizeof(file),saveskills,Name); if(!dini_Exists(file)) { new pName[MAX_PLAYER_NAME]; GetPlayerName(playerid,pName,sizeof(pName)); format(string,sizeof(string),"M3_Server/Utenti/%s.cfg",pName); dini_Create(string); dini_IntSet(string,"Kills", 0); dini_IntSet(string,"Weapon", 0); dini_IntSet(string,"Morti",0); dini_IntSet(string,"Armour", 0); } PlayerInfo[playerid][Killz]=dini_Int(string,"Kills"); PlayerInfo[playerid][Skillz_Pt]=dini_Int(string,"Skill_Pt"); PlayerInfo[playerid][Skillz_Weapon]=dini_Int(string,"Weapon"); PlayerInfo[playerid][Skillz_Armour]=dini_Int(string,"Armour"); } public OnPlayerDisconnect(playerid, reason) { new string[256]; new pName[MAX_PLAYER_NAME]; GetPlayerName(playerid,pName,sizeof(pName)); format(string,sizeof(string),"M3_Server/Utenti/%s.cfg",pName); dini_Create(string); dini_IntSet(string,"Kills", PlayerInfo[playerid][Killz]); dini_IntSet(string,"Skill_Pt", PlayerInfo[playerid][Skillz_Pt]); dini_IntSet(string,"Weapon", PlayerInfo[playerid][Skillz_Weapon]); dini_IntSet(string,"Armour", PlayerInfo[playerid][Skillz_Armour]); return 1; } public OnPlayerSpawn(playerid) { if(PlayerInfo[playerid][Killz]==10)//every 10 kills, give you 1 skill point { PlayerInfo[playerid][Skillz_Pt] ++; //give +1 skill point PlayerInfo[playerid][Killz]=0; //reset kills to 0 } if(PlayerInfo[playerid][Skillz_Weapon]>=1) //if you have got level 1 of Weapon Skill { GivePlayerWeapon(playerid,42,100); //give fire exting with 100 ammo, too if(PlayerInfo[playerid][Skillz_Weapon]>=2) //if you have got level 2 of Weapon Skill { GivePlayerWeapon(playerid,39,15); //give C4 with 15 ammo, too if(PlayerInfo[playerid][Skillz_Weapon]==3) //if you have got level 3 of Weapon Skill { GivePlayerWeapon(playerid,35,15); //give bazooka with 15 ammo } } } if(PlayerInfo[playerid][Skillz_Armour]==1) //if you have got level 1 of Armour Skill { SetPlayerArmour(playerid,10); //give 10% armour } if(PlayerInfo[playerid][Skillz_Armour]==2) //if you have got level 1 of Armour Skill { SetPlayerArmour(playerid,20); //give 20% armour } if(PlayerInfo[playerid][Skillz_Armour]==3) //if you have got level 1 of Armour Skill { SetPlayerArmour(playerid,30); //give 30% armour } if(PlayerInfo[playerid][Skillz_Armour]==4) //if you have got level 1 of Armour Skill { SetPlayerArmour(playerid,40); //give 40% armour } if(PlayerInfo[playerid][Skillz_Armour]==5) //if you have got level 1 of Armour Skill { SetPlayerArmour(playerid,50); //give 50% armour } if(PlayerInfo[playerid][Skillz_Armour]==6) //if you have got level 1 of Armour Skill { SetPlayerArmour(playerid,60); //give 60% armour } if(PlayerInfo[playerid][Skillz_Armour]==7) //if you have got level 1 of Armour Skill { SetPlayerArmour(playerid,70); //give 70% armour } if(PlayerInfo[playerid][Skillz_Armour]==8) //if you have got level 1 of Armour Skill { SetPlayerArmour(playerid,80); //give 80% armour } if(PlayerInfo[playerid][Skillz_Armour]==9) //if you have got level 1 of Armour Skill { SetPlayerArmour(playerid,90); //give 90% armour } if(PlayerInfo[playerid][Skillz_Armour]==10) //if you have got level 1 of Armour Skill { SetPlayerArmour(playerid,100); //give 100% armour } return 1; } public OnPlayerCommandText(playerid, cmdtext[]) { if(strcmp(cmdtext, "/skills", true) == 0) { ShowPlayerDialog(playerid,DIALOG_SKILLS,DIALOG_STYLE_LIST,"Skill Menu","Armi\nArmatura","OK","ANNULLA"); //skills dialog return 1; } if(strcmp(cmdtext, "/skillstats", true) == 0) { new plName[25], string[90]; GetPlayerName(playerid,plName,MAX_PLAYER_NAME); format(string,sizeof string,"|---------Stato Skill di %s---------|", plName); SendClientMessage(playerid, COLOR_VERDE, string); format(string,sizeof string,"Uccisioni: %d - Punti: %d - Armi: %d - Armatura: %d",PlayerInfo[playerid][Killz],PlayerInfo[playerid][Skillz_Pt], PlayerInfo[playerid][Skillz_Weapon], PlayerInfo[playerid][Skillz_Armour]); SendClientMessage(playerid, COLOR_VERDE, string); return 1; } if(strcmp(cmdtext, "/skillspt", true) == 0) { if(IsPlayerAdmin(playerid))//if you are rcon admin { PlayerInfo[playerid][Skillz_Pt] = PlayerInfo[playerid][Skillz_Pt] + 5; //give you +5 skill points SendClientMessage(playerid,COLOR_VERDE,"[SKILL]Hai ricevuto 5 Punti SKill"); //skill point received } else { SendClientMessage(playerid,COLOR_VERDE,"[SKILL]Devi essere Rcon Admin per questo comando"); //Message "haven't permission to use this command" } return 1; } return 0; } public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { if(dialogid == DIALOG_SKILLS) { if(listitem == 0) { if(PlayerInfo[playerid][Skillz_Pt]>=1)//if you have got 1 or more skill points { if(PlayerInfo[playerid][Skillz_Weapon]<=2)//if weapon skill are < or = 2 { PlayerInfo[playerid][Skillz_Pt] --; //take 1 skill point PlayerInfo[playerid][Skillz_Weapon] ++; //Weapon skill level increase SendClientMessage(playerid,COLOR_VERDE,"[SKILL]Hai uppato la Skill Armi di 1 livello"); //success upgrade } else { SendClientMessage(playerid,COLOR_VERDE,"[SKILL]Hai gia la Skill al Massimo!"); //Maximum Skill } } else { SendClientMessage(playerid,COLOR_ROSSO,"[SKILL]Non hai abbastanza Punti Skill per Uppare!");//Haven't got enough Skill point } } if(listitem == 1) { if(response) { if(PlayerInfo[playerid][Skillz_Pt]>=1)//If they have more or equal to the price. { if(PlayerInfo[playerid][Skillz_Armour]<=9) { PlayerInfo[playerid][Skillz_Pt] --; //take 1 skill point PlayerInfo[playerid][Skillz_Armour] ++; //Armour skill level increase SendClientMessage(playerid,COLOR_VERDE,"[SKILL]Hai uppato la Skill Armatura di 1 livello"); //success upgrade } else { SendClientMessage(playerid,COLOR_VERDE,"[SKILL]Hai gia la Skill al Massimo!");//Maximum Skill } } else { SendClientMessage(playerid,COLOR_ROSSO,"[SKILL]Non hai abbastanza Punti Skill per Uppare!"); //haven't got Enough Skill point } } } } return 1; } public OnPlayerDeath(playerid, killerid, reason) { PlayerInfo[killerid][Killz] ++; // The killer value will be increased if(PlayerInfo[killerid][Killz]>=10)//every 10 kills, give you 1 skill point { SendClientMessage(killerid,COLOR_ROSSO,"[SKILL]Hai ricevuto 1 Punto Skill!"); PlayerInfo[killerid][Skillz_Pt] ++; //give +1 skill point PlayerInfo[killerid][Killz]=0; //reset kills to 0 } // The killer value will be increased return 1; }