GTAOnline.net

San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: scott1 le 22 Mai 2010, 16:10:27

Titre: On recommence
Posté par: scott1 le 22 Mai 2010, 16:10:27
Bonjour a toutes et a tous,

Je viens de me faire voler mon GM, dégouté mais bon,

Je dois tout recommencer a 0, mais je n'ai pas envie de recommencer sur un LARP, de quel GM de base pourrais je recommencer? Merci d'avance
Titre: Re : On recommence
Posté par: herq le 22 Mai 2010, 16:56:45
Quel idée de mettre son .pwn sur sa machine :s.
Ou tu as pas mis de deAMX?


PS : Si tu refaits un rp, je suis dispo ( pas tres fort en script, je débute )
Titre: Re : On recommence
Posté par: scott1 le 22 Mai 2010, 17:04:25
Je n'ais pas mis mon pwn sur ma machine,

enfin soit, qqn connais pas un bon GM de base?
Titre: Re : On recommence
Posté par: herq le 22 Mai 2010, 17:08:22
Comme GM De base qui est dans le Showroom, j'ai bien observé, le Miami RP, système d'administration un peu a changer, car les admins 9999 peuvent pas tout faire ( acause des [pAdmin] = 1000 (ex) aulieu de [pAdmin] >= 1000 ) et les Factions qui ont trop dé voiture ( pas grave sa ) Apar cela, je pense que cest un très bon gamemode, si on le déplace a SF, il doit etre encore mieu.
Titre: Re : On recommence
Posté par: scott1 le 22 Mai 2010, 21:28:51
Le systeme de login et de register est a chier
Titre: Re : On recommence
Posté par: Lucifer le 22 Mai 2010, 21:44:40
Je possède un Gamemode où j'ai déjà modifié beaucoup de chose. (GM de base que j'ai pris : GF)

- Intégration d'un système d'achat de véhicule
- Création de plusieurs factions
- Mise en place de mappings
- Mise en place d'un système d'enregistrement et connexion via menu
- et j'en passe.........................

Si tu veux en parler, contact moi : [email protected]
Titre: Re : On recommence
Posté par: minimicro le 22 Mai 2010, 22:09:47
Un bon GM de base, c'est ce qui marche le mieux  :lmao

ligne 1 : // Nouveau GM
Titre: Re : Re : On recommence
Posté par: S!m le 22 Mai 2010, 22:36:51
Salut,

Un bon GM de base, c'est ce qui marche le mieux  :lmao

ligne 1 : // Nouveau GM

je suis tout à fait en accord avec cette recommandation,
rien de tel que de recommencer un gm et de le faire soi même de A à Z
et devine ce qui viens en bonus: si y a un bug, tu retrouve facilement le bug et en moins de 2 minutes c'est corrigé.
et puis c'est très bon pour s'améliorer

++Sim++
Titre: Re : On recommence
Posté par: Ssk le 22 Mai 2010, 22:40:00
Et puis si tu le code bien tu peut ajouté des choses en quelques minutes =)

Alors qu'avec un larp ou un gf c'est dur à faire ^^
Titre: Re : On recommence
Posté par: minimicro le 22 Mai 2010, 22:43:01
Etre a l'aise dans un script, dans SON script, c'est vraiment cool, connaitre l'emplacement, et l'utilité de chaque fonction, connaitre les variables, et ne pas se retrouver à dire : "Je sais pas à quoi ca sert ce truc, je vais le laisser", un LARP ou n'importe quel truc pris sur internet c'est la catastrophe pour cela ... puis le script est dégeu ...

D'avoir son propre code, c'est quand même une qualité, qui, au final est ressentie par les joueurs : rapidité pour faire des correctifs, facilité d'améliorations, ou d'ajouts (je pense à certains serveurs qui rebootent, ou se mettent en "MAJ" pour ajouter 3 caisses ^^), c'est vraiment la liberté de faire ce que tu veux, ou tu veux, quand tu veux.
Titre: Re : On recommence
Posté par: scott1 le 23 Mai 2010, 12:27:22
Et niveau hebergeur qui devrais je choisir? Qui offre de bon dédié a bas prix?
Titre: Re : On recommence
Posté par: steve76 le 23 Mai 2010, 13:10:54
Perso je suis d'accord avec minimicro, j'ai commencé à coder un gm en partant de rien et c'est vraiment sympa à faire. Je trouve ça plus agréable que de prendre un gm déjà fait.
Après il faut être motivé mais bon je pense que à long terme c'est un gain de temps et puis ça change des serveur qui se ressemble tous...

Quand à l'hebergeur il y en a pas mal après il faut savori ce que tu recherches.
Titre: Re : On recommence
Posté par: scott1 le 23 Mai 2010, 13:20:55
Serveur dédié, pas trop cher 40-70€ mois
Titre: Re : On recommence
Posté par: cristab le 23 Mai 2010, 13:26:22
a se pris la go OVH offre kitsumi
Titre: Re : On recommence
Posté par: minimicro le 23 Mai 2010, 13:57:14
Je reste quand meme septique, si a 20 joueurs ca lagge, pour un edit de LARP, c'est que y'a un gros soucis d'optimisation, j'ai rencontré ce soucis au début, a force de pas tester le code grandeur nature. Arrivé a 20 joueurs sur le serveur, lag impressionnant pour les ID > 20 ... Et l'hebergement n'etait pas en cause, apres 1 bon mois de boulot, ce même hebergeur a tenu 50 joueurs sans soucis, pour trouver l'origine ( les origines en fait) j'ai monitoré le CPU : a partir d'un certain niveau, Samp avait beaucoup de mal (c'est trés limité comme truc) et sans demander aux joueurs, je savais quand les lags se faisaient sentir.
Titre: Re : On recommence
Posté par: scott1 le 23 Mai 2010, 14:02:14
Je ne sais pas optimiser un script :s
Titre: Re : On recommence
Posté par: Komolos le 23 Mai 2010, 14:29:28
Si il as supprimé ton gm depuis ta machine et que tu as accès administration.
Tu peut le récupéré en téléchargent un logiciel qui permet de récupéré les choses que tu as supprimé dans la corbeille.

Sinon bonne chance.
Titre: Re : On recommence
Posté par: minimicro le 23 Mai 2010, 15:13:03
Pour l'optimisation, ce sont d'abord quelques "regles de codage", il exisye de tres interressants tutos sur ce sujet sur sa-mp.com.

Pour les lags que tu observe, ca doit etre du a une surconsommation CPU. Il faut travailler sur l'optimisation des boucles (maximum, condition de sortie, ...),  d'abord dans les commandes, mais surtout dans les timers. Si tu as chacun de tes timers qui bouclent sur tous les joueurs (de 0 a Max) c'est du gachis. Pour te donner un ordre d'idée, mon script ne comporte qu'un timer, et donc qu'une boucle qui se repete régulierement, ce seul timer doit declencher ce qu'il faut, au moment voulu. Meme si il subsiste un décalage (du genre apres 30 min a 40 joueurs, jai 5 secondes de plus), ca marche bien. Il faut aussi que le timer soit super optimisé et reglé pour ne pas qu'il crash (et ca arrive sur samp !!), car sinon tu perd toutes les fonctions regulieres.
Titre: Re : On recommence
Posté par: Bayshore le 23 Mai 2010, 15:51:12
Quand est-ce qu'un timer crache ? Je ne me souviens pas que ça me soit déjà arrivé...
Titre: Re : Re : On recommence
Posté par: scott1 le 24 Mai 2010, 00:27:45
l'optimisation des boucles (maximum, condition de sortie, ...),

Qu'entend tu par sortie? et Condition? et Maximum?
Titre: Re : On recommence
Posté par: scott1 le 24 Mai 2010, 02:06:17
Mais la sortie?

En plus je ris, je contacte server FFS pour les lags, il me dise que ça vient du OnPlayerUpdate, il me propose de me le refaire pour 30 € O_o.

Quelqu'un veux bien m'aider gratuitement? xD
Titre: Re : On recommence
Posté par: scott1 le 24 Mai 2010, 02:42:10
Ne pleuré pas ^^

public OnPlayerUpdate(playerid)
{
if(IsPlayerConnected(playerid))
{
if(gPlayerLogged[playerid])
{
new string3[64];
new playername3[MAX_PLAYER_NAME];
GetPlayerName(playerid, playername3, sizeof(playername3));
format(string3, sizeof(string3), "users/%s.ini", playername3);
new File: hFile = fopen(string3, io_write);
if (hFile)
{
new var[64];
format(var, 64, "Key=%s\n", PlayerInfo[playerid][pKey]);fwrite(hFile, var);
PlayerInfo[playerid][pCash] = GetPlayerMoney(playerid);
format(var, 64, "Level=%d\n",PlayerInfo[playerid][pLevel]);fwrite(hFile, var);
format(var, 64, "AdminLevel=%d\n",PlayerInfo[playerid][pAdmin]);fwrite(hFile, var);
format(var, 64, "UpgradePoints=%d\n",PlayerInfo[playerid][gPupgrade]);fwrite(hFile, var);
format(var, 64, "ConnectedTime=%d\n",PlayerInfo[playerid][pConnectTime]);fwrite(hFile, var);
format(var, 64, "Registered=%d\n",PlayerInfo[playerid][pReg]);fwrite(hFile, var);
format(var, 64, "Sex=%d\n",PlayerInfo[playerid][pSex]);fwrite(hFile, var);
format(var, 64, "Age=%d\n",PlayerInfo[playerid][pAge]);fwrite(hFile, var);
format(var, 64, "Origin=%d\n",PlayerInfo[playerid][pOrigin]);fwrite(hFile, var);
format(var, 64, "Langue=%d\n",PlayerInfo[playerid][pLangue]);fwrite(hFile, var);
format(var, 64, "pStyleCombat=%d\n",PlayerInfo[playerid][pStyle]);fwrite(hFile, var);
format(var, 64, "CK=%d\n",PlayerInfo[playerid][pCK]);fwrite(hFile, var);
format(var, 64, "Cagoule=%d\n",PlayerInfo[playerid][pMask]);fwrite(hFile, var);
format(var, 64, "Respect=%d\n",PlayerInfo[playerid][pExp]);fwrite(hFile, var);
format(var, 64, "Money=%d\n",PlayerInfo[playerid][pCash]);fwrite(hFile, var);
format(var, 64, "Bank=%d\n",PlayerInfo[playerid][pAccount]);fwrite(hFile, var);
format(var, 64, "Crimes=%d\n",PlayerInfo[playerid][pCrimes]);fwrite(hFile, var);
format(var, 64, "Kills=%d\n",PlayerInfo[playerid][pKills]);fwrite(hFile, var);
format(var, 64, "Deaths=%d\n",PlayerInfo[playerid][pDeaths]);fwrite(hFile, var);
format(var, 64, "Arrested=%d\n",PlayerInfo[playerid][pArrested]);fwrite(hFile, var);
format(var, 64, "WantedDeaths=%d\n",PlayerInfo[playerid][pWantedDeaths]);fwrite(hFile, var);
format(var, 64, "Phonebook=%d\n",PlayerInfo[playerid][pPhoneBook]);fwrite(hFile, var);
format(var, 64, "LottoNr=%d\n",PlayerInfo[playerid][pLottoNr]);fwrite(hFile, var);
format(var, 64, "Fishes=%d\n",PlayerInfo[playerid][pFishes]);fwrite(hFile, var);
format(var, 64, "BiggestFish=%d\n",PlayerInfo[playerid][pBiggestFish]);fwrite(hFile, var);
format(var, 64, "Job=%d\n",PlayerInfo[playerid][pJob]);fwrite(hFile, var);
format(var, 64, "Jobi=%d\n",PlayerInfo[playerid][pJobi]);fwrite(hFile, var);
format(var, 64, "Paycheck=%d\n",PlayerInfo[playerid][pPayCheck]);fwrite(hFile, var);
format(var, 64, "HeadValue=%d\n",PlayerInfo[playerid][pHeadValue]);fwrite(hFile, var);
format(var, 64, "Jailed=%d\n",PlayerInfo[playerid][pJailed]);fwrite(hFile, var);
format(var, 64, "JailTime=%d\n",PlayerInfo[playerid][pJailTime]);fwrite(hFile, var);
format(var, 64, "Materials=%d\n",PlayerInfo[playerid][pMats]);fwrite(hFile, var);
format(var, 64, "ContrebandeMatos=%d\n",PlayerInfo[playerid][pMatsholding]);fwrite(hFile, var);
format(var, 64, "ContrebandeDrogues=%d\n",PlayerInfo[playerid][pDrugholding]);fwrite(hFile, var);
format(var, 64, "Drugs=%d\n",PlayerInfo[playerid][pDrugs]);fwrite(hFile, var);
format(var, 64, "Leader=%d\n",PlayerInfo[playerid][pLeader]);fwrite(hFile, var);
format(var, 64, "Member=%d\n",PlayerInfo[playerid][pMember]);fwrite(hFile, var);
format(var, 64, "FMember=%d\n",PlayerInfo[playerid][pFMember]);fwrite(hFile, var);
format(var, 64, "Rank=%d\n",PlayerInfo[playerid][pRank]);fwrite(hFile, var);
format(var, 64, "Char=%d\n",PlayerInfo[playerid][pChar]);fwrite(hFile, var);
format(var, 64, "ContractTime=%d\n",PlayerInfo[playerid][pContractTime]);fwrite(hFile, var);
format(var, 64, "SexSkill=%d\n",PlayerInfo[playerid][pSexSkill]);fwrite(hFile, var);
format(var, 64, "BoxSkill=%d\n",PlayerInfo[playerid][pBoxSkill]);fwrite(hFile, var);
format(var, 64, "LawSkill=%d\n",PlayerInfo[playerid][pLawSkill]);fwrite(hFile, var);
format(var, 64, "MechSkill=%d\n",PlayerInfo[playerid][pMechSkill]);fwrite(hFile, var);
format(var, 64, "FishSkill=%d\n",PlayerInfo[playerid][pFishSkill]);fwrite(hFile, var);
format(var, 64, "pSHealth=%.1f\n",PlayerInfo[playerid][pSHealth]);fwrite(hFile, var);
            GetPlayerHealth(playerid,PlayerInfo[playerid][pHealth]);
format(var, 64, "pHealth=%.1f\n",PlayerInfo[playerid][pHealth]);fwrite(hFile, var);
format(var, 64, "Int=%d\n",PlayerInfo[playerid][pInt]);fwrite(hFile, var);
format(var, 64, "Local=%d\n",PlayerInfo[playerid][pLocal]);fwrite(hFile, var);
format(var, 64, "Team=%d\n",PlayerInfo[playerid][pTeam]);fwrite(hFile, var);
format(var, 64, "Model=%d\n",PlayerInfo[playerid][pModel]);fwrite(hFile, var);
format(var, 64, "PhoneNr=%d\n",PlayerInfo[playerid][pPnumber]);fwrite(hFile, var);
format(var, 64, "Car=%d\n",PlayerInfo[playerid][pPcarkey]);fwrite(hFile, var);
format(var, 64, "Car2=%d\n",PlayerInfo[playerid][pPcarkey2]);fwrite(hFile, var);
format(var, 64, "Car3=%d\n",PlayerInfo[playerid][pPcarkey3]);fwrite(hFile, var);
format(var, 64, "House=%d\n",PlayerInfo[playerid][pPhousekey]);fwrite(hFile, var);
format(var, 64, "Bizz=%d\n",PlayerInfo[playerid][pPbiskey]);fwrite(hFile, var);
format(var, 64, "cartex=%.1f\n",PlayerInfo[playerid][pcartex]);fwrite(hFile, var);
format(var, 64, "cartey=%.1f\n",PlayerInfo[playerid][pcartey]);fwrite(hFile, var);
format(var, 64, "cartez=%.1f\n",PlayerInfo[playerid][pcartez]);fwrite(hFile, var);
format(var, 64, "CarLic=%d\n",PlayerInfo[playerid][pCarLic]);fwrite(hFile, var);
format(var, 64, "Pratique=%d\n",PlayerInfo[playerid][pPrat]);fwrite(hFile, var);

Double post
suite ^^  

           
                format(var, 64, "FlyLic=%d\n",PlayerInfo[playerid][pFlyLic]);fwrite(hFile, var);
format(var, 64, "BoatLic=%d\n",PlayerInfo[playerid][pBoatLic]);fwrite(hFile, var);
format(var, 64, "FishLic=%d\n",PlayerInfo[playerid][pFishLic]);fwrite(hFile, var);
format(var, 64, "GunLic=%d\n",PlayerInfo[playerid][pGunLic]);fwrite(hFile, var);
format(var, 64, "Gun1=%d\n",PlayerInfo[playerid][pGun1]);fwrite(hFile, var);
format(var, 64, "Gun2=%d\n",PlayerInfo[playerid][pGun2]);fwrite(hFile, var);
format(var, 64, "Gun3=%d\n",PlayerInfo[playerid][pGun3]);fwrite(hFile, var);
format(var, 64, "Gun4=%d\n",PlayerInfo[playerid][pGun4]);fwrite(hFile, var);
format(var, 64, "Ammo1=%d\n",PlayerInfo[playerid][pAmmo1]);fwrite(hFile, var);
format(var, 64, "Ammo2=%d\n",PlayerInfo[playerid][pAmmo2]);fwrite(hFile, var);
format(var, 64, "Ammo3=%d\n",PlayerInfo[playerid][pAmmo3]);fwrite(hFile, var);
format(var, 64, "Ammo4=%d\n",PlayerInfo[playerid][pAmmo4]);fwrite(hFile, var);
format(var, 64, "CarTime=%d\n",PlayerInfo[playerid][pCarTime]);fwrite(hFile, var);
format(var, 64, "PayDay=%d\n",PlayerInfo[playerid][pPayDay]);fwrite(hFile, var);
format(var, 64, "PayDayHad=%d\n",PlayerInfo[playerid][pPayDayHad]);fwrite(hFile, var);
format(var, 64, "Watch=%d\n",PlayerInfo[playerid][pWatch]);fwrite(hFile, var);
format(var, 64, "Crashed=%d\n",PlayerInfo[playerid][pCrashed]);fwrite(hFile, var);
format(var, 64, "Wins=%d\n",PlayerInfo[playerid][pWins]);fwrite(hFile, var);
format(var, 64, "Loses=%d\n",PlayerInfo[playerid][pLoses]);fwrite(hFile, var);
format(var, 64, "AlcoholPerk=%d\n",PlayerInfo[playerid][pAlcoholPerk]);fwrite(hFile, var);
format(var, 64, "DrugPerk=%d\n",PlayerInfo[playerid][pDrugPerk]);fwrite(hFile, var);
format(var, 64, "PainPerk=%d\n",PlayerInfo[playerid][pPainPerk]);fwrite(hFile, var);
format(var, 64, "TraderPerk=%d\n",PlayerInfo[playerid][pTraderPerk]);fwrite(hFile, var);
format(var, 64, "Tutorial=%d\n",PlayerInfo[playerid][pTut]);fwrite(hFile, var);
format(var, 64, "Mission=%d\n",PlayerInfo[playerid][pMissionNr]);fwrite(hFile, var);
format(var, 64, "Spawn=%d\n",PlayerInfo[playerid][pSpawn]);fwrite(hFile, var);
format(var, 64, "VirWorld=%d\n",PlayerInfo[playerid][pVirWorld]);fwrite(hFile, var);
format(var, 64, "Fuel=%d\n",PlayerInfo[playerid][pFuel]);fwrite(hFile, var);
format(var, 64, "Married=%d\n",PlayerInfo[playerid][pMarried]);fwrite(hFile, var);
format(var, 64, "JourMariage=%d\n",PlayerInfo[playerid][pMJdate]);fwrite(hFile, var);
format(var, 64, "MoiMariage=%d\n",PlayerInfo[playerid][pMMdate]);fwrite(hFile, var);
format(var, 64, "AnneeMariage=%d\n",PlayerInfo[playerid][pMAdate]);fwrite(hFile, var);
format(var, 64, "MarriedTo=%s\n",PlayerInfo[playerid][pMarriedTo]);fwrite(hFile, var);
format(var, 64, "FishTool=%d\n",PlayerInfo[playerid][pFishTool]);fwrite(hFile, var);
     format(var, 64, "Note1=%s\n",PlayerInfo[playerid][pNote1]);fwrite(hFile, var);
format(var, 64, "Note1s=%d\n",PlayerInfo[playerid][pNote1s]);fwrite(hFile, var);
format(var, 64, "Note2=%s\n",PlayerInfo[playerid][pNote2]);fwrite(hFile, var);
format(var, 64, "Note2s=%d\n",PlayerInfo[playerid][pNote2s]);fwrite(hFile, var);
format(var, 64, "Note3=%s\n",PlayerInfo[playerid][pNote3]);fwrite(hFile, var);
format(var, 64, "Note3s=%d\n",PlayerInfo[playerid][pNote3s]);fwrite(hFile, var);
format(var, 64, "Note4=%s\n",PlayerInfo[playerid][pNote4]);fwrite(hFile, var);
format(var, 64, "Note4s=%d\n",PlayerInfo[playerid][pNote4s]);fwrite(hFile, var);
format(var, 64, "Note5=%s\n",PlayerInfo[playerid][pNote5]);fwrite(hFile, var);
format(var, 64, "Note5s=%d\n",PlayerInfo[playerid][pNote5s]);fwrite(hFile, var);
format(var, 64, "InvWeapon=%d\n",PlayerInfo[playerid][pInvWeapon]);fwrite(hFile, var);
format(var, 64, "InvAmmo=%d\n",PlayerInfo[playerid][pInvAmmo]);fwrite(hFile, var);
format(var, 64, "Lighter=%d\n",PlayerInfo[playerid][pLighter]);fwrite(hFile, var);
format(var, 64, "Cigarettes=%d\n",PlayerInfo[playerid][pCigarettes]);fwrite(hFile, var);
format(var, 64, "carte=%d\n",PlayerInfo[playerid][pcarte]);fwrite(hFile, var);
format(var, 64, "Points=%d\n",PlayerInfo[playerid][pPoint]);fwrite(hFile, var);
format(var, 64, "Ap=%d\n",PlayerInfo[playerid][pAp]);fwrite(hFile, var);
format(var, 64, "Besoin=%d\n",PlayerInfo[playerid][pBesoin]);fwrite(hFile, var);
format(var, 64, "Soif=%d\n",PlayerInfo[playerid][pSoif]);fwrite(hFile, var);
format(var, 64, "Dormir=%d\n",PlayerInfo[playerid][pDormir]);fwrite(hFile, var);
format(var, 64, "Locked=%d\n",PlayerInfo[playerid][pLocked]);fwrite(hFile, var);
fclose(hFile);
}
}
}
return 1;
}
Titre: Re : On recommence
Posté par: minimicro le 24 Mai 2010, 05:37:26
Waouh putain, mais il fait que sauvegarder dans des fichiers ton serveurs, t'imagine, à chaque OnPlayerUpdate (une 20 aine par seconde au maximum), tu sauvegardes les stats du joueurs dans un fichier ... et tu fait ca sur tous les joueurs ....
Titre: Re : On recommence
Posté par: cristab le 24 Mai 2010, 10:43:12
supprime moi cette callback qui ne te sert a rien du tout  >:(
Titre: Re : On recommence
Posté par: Ssk le 24 Mai 2010, 10:56:49
OMG !! Ton serveur à pas exploser ????
Titre: Re : On recommence
Posté par: cristab le 24 Mai 2010, 11:35:00
est la on remercie les GM telecharger qui eux meme on copier coller sans rien capter ce qui donne des serveur en gomme
Titre: Re : On recommence
Posté par: cristab le 24 Mai 2010, 12:42:12
au pire tu fait ceci

Code: ("en bas du script") [Sélectionner]
OnPlayerSaveDate(playerid)
{
if(gPlayerLogged[playerid])
{
new string3[64];
new playername3[MAX_PLAYER_NAME];
GetPlayerName(playerid, playername3, sizeof(playername3));
format(string3, sizeof(string3), "users/%s.ini", playername3);
new File: hFile = fopen(string3, io_write);
if (hFile)
{
new var[64];
format(var, 64, "Key=%s\n", PlayerInfo[playerid][pKey]);fwrite(hFile, var);
PlayerInfo[playerid][pCash] = GetPlayerMoney(playerid);
format(var, 64, "Level=%d\n",PlayerInfo[playerid][pLevel]);fwrite(hFile, var);
format(var, 64, "AdminLevel=%d\n",PlayerInfo[playerid][pAdmin]);fwrite(hFile, var);
format(var, 64, "UpgradePoints=%d\n",PlayerInfo[playerid][gPupgrade]);fwrite(hFile, var);
format(var, 64, "ConnectedTime=%d\n",PlayerInfo[playerid][pConnectTime]);fwrite(hFile, var);
format(var, 64, "Registered=%d\n",PlayerInfo[playerid][pReg]);fwrite(hFile, var);
format(var, 64, "Sex=%d\n",PlayerInfo[playerid][pSex]);fwrite(hFile, var);
format(var, 64, "Age=%d\n",PlayerInfo[playerid][pAge]);fwrite(hFile, var);
format(var, 64, "Origin=%d\n",PlayerInfo[playerid][pOrigin]);fwrite(hFile, var);
format(var, 64, "Langue=%d\n",PlayerInfo[playerid][pLangue]);fwrite(hFile, var);
format(var, 64, "pStyleCombat=%d\n",PlayerInfo[playerid][pStyle]);fwrite(hFile, var);
format(var, 64, "CK=%d\n",PlayerInfo[playerid][pCK]);fwrite(hFile, var);
format(var, 64, "Cagoule=%d\n",PlayerInfo[playerid][pMask]);fwrite(hFile, var);
format(var, 64, "Respect=%d\n",PlayerInfo[playerid][pExp]);fwrite(hFile, var);
format(var, 64, "Money=%d\n",PlayerInfo[playerid][pCash]);fwrite(hFile, var);
format(var, 64, "Bank=%d\n",PlayerInfo[playerid][pAccount]);fwrite(hFile, var);
format(var, 64, "Crimes=%d\n",PlayerInfo[playerid][pCrimes]);fwrite(hFile, var);
format(var, 64, "Kills=%d\n",PlayerInfo[playerid][pKills]);fwrite(hFile, var);
format(var, 64, "Deaths=%d\n",PlayerInfo[playerid][pDeaths]);fwrite(hFile, var);
format(var, 64, "Arrested=%d\n",PlayerInfo[playerid][pArrested]);fwrite(hFile, var);
format(var, 64, "WantedDeaths=%d\n",PlayerInfo[playerid][pWantedDeaths]);fwrite(hFile, var);
format(var, 64, "Phonebook=%d\n",PlayerInfo[playerid][pPhoneBook]);fwrite(hFile, var);
format(....ect

}
est dans le OnPlayerDeath et OnPlayerConnect tu ajoute ceci

OnPlayerSaveDate(playerid);
Titre: Re : On recommence
Posté par: Rom1-84 le 24 Mai 2010, 14:32:33
En parlant de Gm fait de A à Z, j'en suis à mon deuxième et il faut avouer que c'est le top. Il faut être courageux, mais à la fin c'est un gain de temps vu que l'on connait son script presque par cœur. Par contre les joueurs restent souvent sceptique...
Titre: Re : On recommence
Posté par: scott1 le 24 Mai 2010, 14:47:45
xD, ouai mais si le joueur meurt pas on save pas ses stats xD

Double post
Et si je le decompose et que je le met a chaque changement d'une valeur precise?

Genre le joueur gagne un lvl de boxe, si je fait ça

if(gPlayerLogged[playerid])
{
new string3[64];
new playername3[MAX_PLAYER_NAME];
GetPlayerName(playerid, playername3, sizeof(playername3));
format(string3, sizeof(string3), "users/%s.ini", playername3);
new File: hFile = fopen(string3, io_write);
if (hFile)
{
new var[64];

format(var, 64, "BoxSkill=%d\n",PlayerInfo[playerid][pBoxSkill]);fwrite(hFile, var);
                                fclose(file)
                         }
                    }
          

Se serais bon?
Titre: Re : On recommence
Posté par: scott1 le 24 Mai 2010, 14:56:26
pourquoi ne serais ce pas bon?

Et si je faisait une callback avec un timer de 10secondes se serais ok?
Titre: Re : On recommence
Posté par: cristab le 24 Mai 2010, 14:59:21
mieux mais tu aurais des accout de lag
Titre: Re : Re : On recommence
Posté par: scott1 le 24 Mai 2010, 15:02:47

if(gPlayerLogged[playerid])
{
new string3[64];
new playername3[MAX_PLAYER_NAME];
GetPlayerName(playerid, playername3, sizeof(playername3));
format(string3, sizeof(string3), "users/%s.ini", playername3);
new File: hFile = fopen(string3, io_write);
if (hFile)
{
new var[64];

format(var, 64, "BoxSkill=%d\n",PlayerInfo[playerid][pBoxSkill]);fwrite(hFile, var);
                                fclose(file)
                         }
                    }
          


pourquoi ce ne serrais pas bon? Enregistrer valeur par valeur? S'est mon code qui est mauvais? Ou la technique impossible?

Je vois toujours ps comment faire, alors.
Titre: Re : On recommence
Posté par: scott1 le 24 Mai 2010, 15:09:55
Ou si une valeur change via une commande, sauvegarde-la directement dans cette commande,





Et je devrais utiliser quel code?

Merci pour votre aide
Titre: Re : On recommence
Posté par: scott1 le 24 Mai 2010, 15:16:35
Tout le onplayerupdate?
Titre: Re : Re : Re : On recommence
Posté par: scott1 le 24 Mai 2010, 15:47:33

if(gPlayerLogged[playerid])
{
new string3[64];
new playername3[MAX_PLAYER_NAME];
GetPlayerName(playerid, playername3, sizeof(playername3));
format(string3, sizeof(string3), "users/%s.ini", playername3);
new File: hFile = fopen(string3, io_write);
if (hFile)
{
new var[64];

format(var, 64, "BoxSkill=%d\n",PlayerInfo[playerid][pBoxSkill]);fwrite(hFile, var);
                                fclose(file)
                         }
                    }
          


pourquoi ce ne serrais pas bon? Enregistrer valeur par valeur? S'est mon code qui est mauvais? Ou la technique impossible?

Je vois toujours ps comment faire, alors.


Comme ça donc?

Au fait le timer du OnPlayerUpdate est integré dans SAMP? ou S'est un timer dans le GM?
Titre: Re : On recommence
Posté par: cristab le 24 Mai 2010, 15:51:26
je t'es donner la solution pourquoi tu cherche du midi a quatorze heures?
Titre: Re : On recommence
Posté par: scott1 le 24 Mai 2010, 16:43:38
Le prend pas mal, j'aime pas ta soluce Cristab ^^
Titre: Re : On recommence
Posté par: cristab le 24 Mai 2010, 16:44:42
pourtant c'est la seul est meilleur façon voila pourquoi je deteste les RPG il sont de base tres mal code et sa continue dans le meme sens ^^
Titre: Re : Re : On recommence
Posté par: minimicro le 24 Mai 2010, 19:10:45
pourtant c'est la seul est meilleur façon voila pourquoi je deteste les RPG il sont de base tres mal code et sa continue dans le meme sens ^^

Pourquoi de base, si tu fais ton code toi même, c'est mal codé aussi ? De toute façon, un mec qui code mal ... code mal, en RPG ou en DM ... c'est une manière de penser la prog (puis l'adaptation de le langage utilisé).


Bref, pour la sauvegarde de tes joueurs, fait le seulement à la déconnexion, ca suffit largement, sauf si ton serveur crash de temps en temps.
Titre: Re : On recommence
Posté par: scott1 le 24 Mai 2010, 21:41:12
Ok et comment faire pour enregistrer mettre a jour une seul valeur dans le fichier du joueur?
Titre: Re : On recommence
Posté par: minimicro le 24 Mai 2010, 22:24:25
C'est casse burne ... Il faut se balader dans le fichier, et trouver le nom de la variable, puis supprimer, et ajouter la valeur de cette variable, et ce jusqu'avant le début de la variable suivante.

Mais bon, si tu te fait une fonction, qui sauvegarde tout, que tu appelles seulement à la deconnexion, ca ne posera aucun soucis, en soit, la sauvegarde n'est pas hyper lourde pour la machine, le problème étant que tu l'appelles dans le OnPlayerUpdate, qui lui est appelé entre 1 et 40 (voir plus) fois par secondes / joueurs, t'imagine, à 30 joueurs, le serveur fait entre 30 et 1200 sauvegardes par seconde ... c'est énorme, puisque c'est une ouverture de fichier à chaque fois.

Si tu sauvegarde seulement à la déco (qui inclue aussi le crash ou le kick du joueur), t'auras, allez, 5 ou 10 sauvegardes par minute ...

Entre 500 sauvegardes/secondes et 5/minutes, tu verras vraiment la différence.
Titre: Re : On recommence
Posté par: cristab le 24 Mai 2010, 22:37:01
exactemment ce que je disais  :dry
Titre: Re : On recommence
Posté par: scott1 le 25 Mai 2010, 00:08:13
Ok merci ^^, croisont les doigts que très peu de crash ^^

Double post
J'ai un soucis avec mon public OnPlayerStateChange


http://pastebin.gtaonline.fr/pastebin.php?show=788 (http://pastebin.gtaonline.fr/pastebin.php?show=788)

Certaine fois le joueur peux conduire un véhicule alors qu'il n'y est pas autorisé.

Ex les location de moto, le joueur ne reçois pas toujours le tableau et il peu rouler :s