GTAOnline.net
San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: Eduardo_Latino le 02 Août 2009, 15:18:13
-
bonjour a tous, j'ai un petit problème avec mon GM (LA-RP ) il y a un système pour vendre les voiture, aujourd'hui ji vais pour le teste car j'ouvre mon serveur et je l'acheter tous va bien mais quand je me gare la voiture change de model ;D
Exemple : J'achète un elegy je la gare elle ce change en Bullet :wall :wall s'il vous plait aider moi !!!!!
voila le Garer :
}
else if(strcmp(x_nr,"garer",true) == 0)
{
new Float:x,Float:y,Float:z;
new Float:a;
new carid;
new getcarid;
if(GetPlayerVehicleID(playerid) == PlayerInfo[playerid][pPcarkey]) { carid = PlayerInfo[playerid][pPcarkey]; }
else if(GetPlayerVehicleID(playerid) == PlayerInfo[playerid][pPcarkey2]) { carid = PlayerInfo[playerid][pPcarkey2]; }
else if(GetPlayerVehicleID(playerid) == PlayerInfo[playerid][pPcarkey3]) { carid = PlayerInfo[playerid][pPcarkey3]; }
else { return 1; }
getcarid = GetPlayerVehicleID(playerid);
GetPlayerName(playerid, playername, sizeof(playername));
GetVehiclePos(carid, x, y, z);
//GetPlayerFacingAngle(playerid, a);
GetVehicleZAngle(carid, a);
if(IsPlayerInVehicle(playerid,carid) && CarInfo[carid][cOwned] == 1)
{
if(PlayerInfo[playerid][pPcarkey] == 999 && PlayerInfo[playerid][pPcarkey2] == 999 & PlayerInfo[playerid][pPcarkey3])
{
SendClientMessage(playerid, COLOR_GREY, "You don't own a car.");
return 1;
}
if(getcarid == carid)
{
CarInfo[carid][cLocationx] = x;
CarInfo[carid][cLocationy] = y;
CarInfo[carid][cLocationz] = z;
CarInfo[carid][cAngle] = a;
format(string, sizeof(string), "~n~ Vous avez garer votre voiture ici ~n~");
GameTextForPlayer(playerid, "elle spawnra ici comme vous l'avais garer.", 10000, 3);
OnPropUpdate();
OnPlayerUpdate(playerid);
DestroyVehicle(carid);
CreateVehicle(CarInfo[carid][cModel],CarInfo[carid][cLocationx],CarInfo[carid][cLocationy],CarInfo[carid][cLocationz]+1.0,CarInfo[carid][cAngle],CarInfo[carid] [cColorOne],CarInfo[carid][cColorTwo],60000);
TogglePlayerControllable(playerid, 1);
return 1;
}
}
}
Merci d'avance bonne journée
-
T'as oublié quelque chose du style:
CarInfo[carid][cModel] = GetVehicleModel(carid);
D'autre part, pourquoi tu appelles le callback OnPlayerUpdate sans raison?
-
c'est pas moi quand j'ai pris le GM il ete deja comme sa xDD
Merci sa marche ce que tu ma dit
et sa : Pourquoi OnPlayerUpdate derange ??? si oui quesque je doit faire enlever remplacer??
PS : J'ai un autre Beug :wall :wall :wall :wall :wall :wall :wall :wall :wall
alors j'ai acheter le voiture j'ai essayer le /c garer tous a marché mais après je suis sorti de la voiture j'ai ete derrier la voiture et j'ai fait /coffre info
après avec la commande admin je me suis ajouter une arme je l'ais mit dans la coffre je l'ais enlever ji vais pour monter dans la voiture et il monter pas :wall :wall je n'arrive pas a monter dans la voiture après avoir utiliser le coffre voila le coffre :
http://pastebin.com/m3f9af5e2 (http://pastebin.com/m3f9af5e2)
Encore Merci d'avance bonne journée
-
Le gm de base ne bug pas pour garaer as-tu ajouter des vehicules a vendre ???
++D4++
Envoyer de mon Ipod Touch
-
C'est bien de vouloir faire un serveur mais si tu sais pas scripter c'est pas la peine.. fais toi déjà la main avec des scripts tout simples, par exemple lvdm, tu t'entraine a rajouter des trucs dessus petit à petit. C'est une bien meilleure façon d'apprendre que d'éditer un gros script à la base.
OnPlayerUpdate est un callback de sa-mp, qui est apellé à chaque fois que le serveur recoit des données d'un client c'est à dire à chaque X millisecondes, où X est la latence du client. Donc il est appellé très souvent, et plus il y a de joueurs plus il est appellé. Montre voir ce qu'il y a dans ton OnPlayerUpdate.
-
non j'ai pas toucher au système de voiture j'ai juste traduit rien d'autre !! voile le OnPlayerUpdate :
http://pastebin.com/m1ca00c4f (http://pastebin.com/m1ca00c4f)
-
omg tu doit avoir un sacrer lag sur le serveur :s (c'etait un petit hs)
Il faut savoir que cette callback et appeler des que tu touche a quelque chose sur ton ordi donc il faut mettre un minimum dans cette callback la je voit qu'elle est surcharger
-
je sais pas oui j'ai un petit gros beug mais bon sa le fait plus l'écran devien tout blanc quand je joué lol
mais je cherche le GM d'origine mais je trouve pas :(
-
bonjour voila vu que ici on parle déjà de voiture j'aimerais demander comment faire pour 3petit erreur que j'ai voila :
if(IsAnOwnableCar(newcar))
{
if(CarInfo[newcar][cOwned]==0)
{
TogglePlayerControllable(playerid, 0);
format(string,sizeof(string),"~w~Car: %s~n~Price: ~g~%d~n~~w~/carbuy to buy this car",CarInfo[newcar][cDescription],CarInfo[newcar][cValue]);
GameTextForPlayer(playerid,string,5000,5);
}
if(CarInfo[newcar][cOwned]==1)
{
format(string,sizeof(string),"Ce vehicule appartien à %s",CarInfo[newcar][cOwner]);
SendClientMessage(playerid, COLOR_WHITE, string);
/*if(keycar != vehicle)
{
RemovePlayerFromVehicle(playerid);
SendClientMessage(playerid, COLOR_GREY, "You don't have a key of this vehicle");
}*/
if(PlayerInfo[playerid][pPcarkey] == vehicle) { }
else if(PlayerInfo[playerid][pPcarkey2] == vehicle) { }
else if(PlayerInfo[playerid][pPcarkey3] == vehicle) { }
else
{
if(PlayerInfo[playerid][pAdmin] >= 1337 && AdminDuty[playerid] == 1)
{
SendClientMessage(playerid, COLOR_GREY, " You can drive this car because you are admin on duty !");
}
else
{
RemovePlayerFromVehicle(playerid);
SendClientMessage(playerid, COLOR_GREY, "Vous n'avez pas de clé de ce véhicule");
}
}
}
}
gLastCar[playerid] = newcar;
gLastDriver[newcar] = playerid;
}
et voila les erreur :
C:\DOCUME~1\ADMINI~1.15C\LOCALS~1\Temp\Rar$DI03.297\gfsf.pwn(4330) : error 017: undefined symbol "vehicle"
C:\DOCUME~1\ADMINI~1.15C\LOCALS~1\Temp\Rar$DI03.297\gfsf.pwn(4331) : error 017: undefined symbol "vehicle"
C:\DOCUME~1\ADMINI~1.15C\LOCALS~1\Temp\Rar$DI03.297\gfsf.pwn(4332) : error 017: undefined symbol "vehicle"
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
3 Errors.
Le GM c'est "GF_Car_v0.1.3"
PS: Desole de poster ici mais pas besoin que je crée un poste pour rien alors que ici on parle déjà de ça :-[ :-[
Merci d'avance
-
as-tu un new vehicle ??
-
non pourquoi il faut mettre un??
-
ouii xD
ajoute un new vehicle[256];
-
sa depent c'est pas forcement new vehicle[256];
-
aprés avoir ajouter new vehcles[256] sa me donner sa
C:\Documents and Settings\Administrateur.15C8C0122FFA4EF\Bureau\samp02Xserver1\gamemodes\gfsf.pwn(4331) : error 033: array must be indexed (variable "vehicle")
C:\Documents and Settings\Administrateur.15C8C0122FFA4EF\Bureau\samp02Xserver1\gamemodes\gfsf.pwn(4332) : error 033: array must be indexed (variable "vehicle")
C:\Documents and Settings\Administrateur.15C8C0122FFA4EF\Bureau\samp02Xserver1\gamemodes\gfsf.pwn(4333) : error 033: array must be indexed (variable "vehicle")
C:\Documents and Settings\Administrateur.15C8C0122FFA4EF\Bureau\samp02Xserver1\gamemodes\gfsf.pwn(5796) : warning 219: local variable "vehicle" shadows a variable at a preceding level
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
3 Errors.
-
le soucis c'est que la pour t'aider il faudrait le GM
-
ok jte le envois par MP
EDIT ou je peu le mettre en téléchargement?
-
par mp et j'edit ce post une fois resolut
EDIT : resolut voila la solution
if(IsAnOwnableCar(newcar))
{
new vehicle = GetPlayerVehicleID(playerid);
if(CarInfo[newcar][cOwned]==0)
{
TogglePlayerControllable(playerid, 0);
format(string,sizeof(string),"~w~Car: %s~n~Price: ~g~%d~n~~w~/carbuy to buy this car",CarInfo[newcar][cDescription],CarInfo[newcar][cValue]);
GameTextForPlayer(playerid,string,5000,5);
}
if(CarInfo[newcar][cOwned]==1)
{
format(string,sizeof(string),"Ce vehicule appartien à %s",CarInfo[newcar][cOwner]);
SendClientMessage(playerid, COLOR_WHITE, string);
/*if(keycar != vehicle)
{
RemovePlayerFromVehicle(playerid);
SendClientMessage(playerid, COLOR_GREY, "You don't have a key of this vehicle");
}*/
if(PlayerInfo[playerid][pPcarkey] == vehicle) { }
else if(PlayerInfo[playerid][pPcarkey2] == vehicle) { }
else if(PlayerInfo[playerid][pPcarkey3] == vehicle) { }
else
-
Ok, Merci beaucoup ji vais teste de suite !! :D :D
EDIT : :( :( Quand je rentre dans les voiture sa dit plus quelle sont a vendre
-
erf
je repenche dessus mais sa je ne voit pas enfaite
if(PlayerInfo[playerid][pPcarkey] == vehicle) { }
else if(PlayerInfo[playerid][pPcarkey2] == vehicle) { }
else if(PlayerInfo[playerid][pPcarkey3] == vehicle) { }
EDIT essaie comme ceci
if(IsAnOwnableCar(newcar))
{
if(CarInfo[newcar][cOwned]==0)
{
TogglePlayerControllable(playerid, 0);
format(string,sizeof(string),"~w~Car: %s~n~Price: ~g~%d~n~~w~/carbuy to buy this car",CarInfo[newcar][cDescription],CarInfo[newcar][cValue]);
GameTextForPlayer(playerid,string,5000,5);
}
if(CarInfo[newcar][cOwned]==1)
{
format(string,sizeof(string),"Ce vehicule appartien à %s",CarInfo[newcar][cOwner]);
SendClientMessage(playerid, COLOR_WHITE, string);
/*if(keycar != vehicle)
{
RemovePlayerFromVehicle(playerid);
SendClientMessage(playerid, COLOR_GREY, "You don't have a key of this vehicle");
}*/
new vehicle;
if(PlayerInfo[playerid][pPcarkey] == vehicle) { }
else if(PlayerInfo[playerid][pPcarkey2] == vehicle) { }
else if(PlayerInfo[playerid][pPcarkey3] == vehicle) { }
else
{
if(PlayerInfo[playerid][pAdmin] >= 1337 && AdminDuty[playerid] == 1)
{
SendClientMessage(playerid, COLOR_GREY, " You can drive this car because you are admin on duty !");
}
else
{
RemovePlayerFromVehicle(playerid);
SendClientMessage(playerid, COLOR_GREY, "Vous n'avez pas de clé de ce véhicule");
}
}
}
}
Si sa ne fonctionne toujour pas retire directement cette fonction comme ceci
if(IsAnOwnableCar(newcar))
{
if(CarInfo[newcar][cOwned]==0)
{
TogglePlayerControllable(playerid, 0);
format(string,sizeof(string),"~w~Car: %s~n~Price: ~g~%d~n~~w~/carbuy to buy this car",CarInfo[newcar][cDescription],CarInfo[newcar][cValue]);
GameTextForPlayer(playerid,string,5000,5);
}
if(CarInfo[newcar][cOwned]==1)
{
format(string,sizeof(string),"Ce vehicule appartien à %s",CarInfo[newcar][cOwner]);
SendClientMessage(playerid, COLOR_WHITE, string);
}
}
-
non fallait juste enlever sa :
if(CarInfo[newcar][cOwned]==1)
{
format(string,sizeof(string),"Ce vehicule appartien à %s",CarInfo[newcar][cOwner]);
SendClientMessage(playerid, COLOR_WHITE, string);
}
}
c'est moi qui la mit mais marche pas, comment je peut faire pour que quand on achète une voiture sa disse que c'est a celui qui la acheter?
voila le Gm d'origine :
http://forum.sa-mp.com/index.php?topic=48288.0 (http://forum.sa-mp.com/index.php?topic=48288.0)
bonne soirée