GTAOnline.net

San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: Fares_Bourezane le 09 Avril 2012, 10:16:29

Titre: Serveur local crash pendant le jeu
Posté par: Fares_Bourezane le 09 Avril 2012, 10:16:29
Bonjour a tous. Je poste ce message car je dois faire un serveur pour la team S.Touch. donc je fais un nouveau script comme d'habitude, je fais ma première commande qui consiste a changer son nom en jeu (qui évite de se déconnecter et se reconnecter). Je pense que sa a l'air de fonctionner mais quand j'effectue la commande, il me dit un truc bizar dans la chat box comme si  un serveur redémarrait. je fais un retour windows et je vois que la console de mon serveur a disparue. voici le script// This is a comment
// uncomment the line below if you want to write a filterscript
//#define FILTERSCRIPT

#include <a_samp>

#if defined FILTERSCRIPT

public OnFilterScriptInit()
{
print("\n--------------------------------------");
print(" Blank Filterscript by your name here");
print("--------------------------------------\n");
return 1;
}

public OnFilterScriptExit()
{
return 1;
}

#else

main()
{
print("\n----------------------------------");
print(" DeathShadow");
print("----------------------------------\n");
}

#endif

public OnGameModeInit()
{
// Don't use these lines if it's a filterscript
SetGameModeText("Blank Script");
AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
return 1;
}

public OnGameModeExit()
{
return 1;
}

public OnPlayerRequestClass(playerid, classid)
{
SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
return 1;
}

public OnPlayerConnect(playerid)
{
return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
return 1;
}

public OnPlayerSpawn(playerid)
{
return 1;
}

public OnPlayerDeath(playerid, killerid, reason)
{
return 1;
}

public OnVehicleSpawn(vehicleid)
{
return 1;
}

public OnVehicleDeath(vehicleid, killerid)
{
return 1;
}

public OnPlayerText(playerid, text[])
{
return 1;
}

public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp("/changernom", cmdtext, true, 10) == 0)
{
    new string[64];
    SetPlayerName(playerid, string);
return 1;
}
else
{
    SendClientMessage(playerid, 0xFF0000FF, "ERREUR: {FFFFFF}La commande entrée n'existe pas");//Message d'erreur
return 1;
}
return 0;
}

public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
return 1;
}

public OnPlayerExitVehicle(playerid, vehicleid)
{
return 1;
}

public OnPlayerStateChange(playerid, newstate, oldstate)
{
return 1;
}

public OnPlayerEnterCheckpoint(playerid)
{
return 1;
}

public OnPlayerLeaveCheckpoint(playerid)
{
return 1;
}

public OnPlayerEnterRaceCheckpoint(playerid)
{
return 1;
}

public OnPlayerLeaveRaceCheckpoint(playerid)
{
return 1;
}

public OnRconCommand(cmd[])
{
return 1;
}

public OnPlayerRequestSpawn(playerid)
{
return 1;
}

public OnObjectMoved(objectid)
{
return 1;
}

public OnPlayerObjectMoved(playerid, objectid)
{
return 1;
}

public OnPlayerPickUpPickup(playerid, pickupid)
{
return 1;
}

public OnVehicleMod(playerid, vehicleid, componentid)
{
return 1;
}

public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
{
return 1;
}

public OnVehicleRespray(playerid, vehicleid, color1, color2)
{
return 1;
}

public OnPlayerSelectedMenuRow(playerid, row)
{
return 1;
}

public OnPlayerExitedMenu(playerid)
{
return 1;
}

public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
{
return 1;
}

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
return 1;
}

public OnRconLoginAttempt(ip[], password[], success)
{
return 1;
}

public OnPlayerUpdate(playerid)
{
return 1;
}

public OnPlayerStreamIn(playerid, forplayerid)
{
return 1;
}

public OnPlayerStreamOut(playerid, forplayerid)
{
return 1;
}

public OnVehicleStreamIn(vehicleid, forplayerid)
{
return 1;
}

public OnVehicleStreamOut(vehicleid, forplayerid)
{
return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
return 1;
}

public OnPlayerClickPlayer(playerid, clickedplayerid, source)
{
return 1;
}
voici la compilation:


donc.  :dejadehors
Titre: Re : Serveur local crash pendant le jeu
Posté par: Xolokos le 09 Avril 2012, 11:10:02
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp("/changernom", cmdtext, true, 10) == 0)
{
   new string[64];//La tu créer un tableau de valeur avec RIEN dedans...
   SetPlayerName(playerid, string);//Et tu remplace le nom du joueur par rien et vu que RIEN a la place du nom joueur fait crash le serveur...
   return 1;//Tout c'est bien passé
}
return SendClientMessage(playerid, 0xFF0000FF, "ERREUR: {FFFFFF}La commande entrée n'existe pas");
}

Pour faire une commande et changer le nom il faut utiliser la fonction strock ou zcmd etc...
Plein d'include propose de faciliter le strock.
Titre: Re : Serveur local crash pendant le jeu
Posté par: Ssk le 09 Avril 2012, 14:14:36
Il est interdit de poster des codes de plus de 20 lignes dans les balises code.
Utilise Pastebin.

http://www.gtaonline.fr/forums/index.php/topic,12060.0.html (http://www.gtaonline.fr/forums/index.php/topic,12060.0.html)
Titre: Re : Serveur local crash pendant le jeu
Posté par: Fares_Bourezane le 09 Avril 2012, 18:22:55
Merci pour la réponse et désolé pour les 20 lignes