GTAOnline.net
San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: LePtitClown le 31 Mars 2009, 15:58:26
-
Je n'arrive vraiment pas à réaliser un dm avec des sawnoff shotgun car j'ai de très petite connaissance sous pawno.
Je souhaiterai que quelq'un m'explique comment en réaliser un, ou qu'il m'envoie un exemple type de DM que je modifierai par la suite.
A+++ ;)
-
Ben dans les dossier de ton serveur prend le SFTDM et tu change les coordonnées de spawn et tu met des limites .
Sinon sawnoff c'est quoi ?
-
Tout d'abord, mon GM est le LV-DM ( c'est le seul que j'arrive à comprendre et il n'y a pa du tout de DM dedans)
Le sawnoff = canon scié ( l'arme que tout le monde utilise en switchant en général)
Donc je souhaiterai savoir ou je peux télécharger des FS avec ce type de DM
A+
-
Pour moi le simple c'est des changers le lieu de spawn des joueurs au stade et de mettre des WorldBounds , je peux t'aider si tu veux même si je suis pas un pro .
-
Salut
Merci, si j'ai besoin d'aide je te contacterai à l'occasion.
Les worldnounds, je ne sais pas du tout ce que c'est je pense que c'est les limites du DM.
j'ai réussi à faire apparaitre le personnage a lv au stade de baseballe comme prévu avec armes, gilet pareballe, vie ^^
Mais il me reste encore 3 problèmes:
1/ Je n'arrive pas à aire une commande type /dmq pour pouvoir quitter le dm et ainsi retourner à un spawn aléatoire.
2/ placer des objets tel que des gilets pare balles ou des coeur armes etc.. sur les cotés du dm.
3/ je voudrai que les joueurs ne puissent pas sortir du dm en enjmabant une barriere. Il faudrait ainsi réaliser une limite virtuel comme il en existe sur d'autres serveurs.
Si vous avez des réponses à mes questions repondez moi ^^
A++
-
1/ Eh bien tu crée une commande /dmq qui spawn le joueur a un endroit et qui enleve les limites virtuels (WorldBounds)
2/ Pour cela rien de plus simple que la Fonction CreatePickup qui s'utilise comme ceci : CreatePickup(model,type,X,Y,Z);
Le modele est ce que tu veux qui apparaissent armes , armure ect... en voici la liste
321 - Regular Dildo
322 - White Dildo
323 - Vibrator
324 - Another Vibrator
325 - Flowers
326 - Cane
327 - A box of some kind <--- No Effect
328 - A large box of some kind <--- No Effect
329 - Removed/Non Existent. <--- DO NOT USE
330 - CJ's Phone
331 - Brass Knuckles
332 - Old VC Screwdriver - Removed. <--- DO NOT USE
333 - Golf Club
334 - Police Truncheon/Night Stick
335 - Combat Knife
336 - Baseball Bat
337 - Shovel
338 - Pool Cue
339 - Katana
340 - Skateboard - Removed. <--- DO NOT USE
341 - Chainsaw
342 - Frag Grenade
343 - Tear Gas Grenade
344 - Molotov Cocktail
345 - Vehicle Missile Launcher <--- Use with caution, very crash prone!
346 - Colt 45 Pistol
347 - Silenced Pistol
348 - Desert Eagle
349 - Regular Shotgun
350 - Sawn-Off Shotgun
351 - Combat Shotgun
352 - Micro Uzi
353 - MP5
354 - Hydra Flare
355 - AK47 Assault Rifle
356 - M4 Assault Rifle
357 - Country Rifle?
358 - Sniper Rifle
359 - Rocket Launcher
360 - Heat Seeking Rocket Launcher
361 - Flamethrower
362 - Minigun
363 - Satchel Charges
364 - Detonator <---- Seemingly Useless.
365 - Spray Paint Can
366 - Fire Extinguisher
367 - Camera
368 - Night Vision Goggles
369 - Infra-Red Goggles
370 - Jet pack
371 - Parachute
372 - Tec-9
Le type est les different type de pickup , ceux que tu peux prendre ou pas si ils réapparaissent ... Pour ton cas le mieux est 2 .
Puis les coordonnées .
3/ Pour les limites utilise SetPlayerWorldBounds(playerid,x_max,y_max,x_min,y_min);
Pour les coordonnées tu doit utiliser comme ceci :
Place toi toujours en fonction du nord pour la partie haute de tes limites voici un petit shéma .
Il faut prendre les points opposés
(http://img14.imageshack.us/img14/7479/aidea.th.png) (http://img14.imageshack.us/my.php?image=aidea.png)
Tu peux prendre les point opposés avec Launch Debug en faisant /save tu aura les cordonnées , comme quand tu ajoute des véhicules .
Attention quand tu fait /dmq veille a enlever ses limites .
En éspérant t'avoir aider au mieux .
PS: Désolé de la qualité du shéma
-
Merci je vais me mettre à essayer tout ça
^^
que veux tu dire par:
CreatePickup(model,type,X,Y,Z);
Je ne vois pas la différence entre model et type model c'es l'ID et type je mais quoiici??
A++
-
Type met 2 car enfaite tu peux avoir plusieurs choix pour ton pickup tu peut dire qu'il ne réapparaissent plus jamais après qu'on l'ai prit ou bien qu'on ne puisse pas le prendre mais 2 est bien car tu peut prendre le pickup et il réapparait peu de temps après .
-
oky merci
a++
-
Tiens moi au courant si tu rencontre un problème .
-
Salut
Bon, j'ai bien réussi à placer les pickup
pas de problème mais je me pose encore une question, comment créer une cmd /dmq pour retourner en spawn aléatoire sans que la personne ne meurt entre en quittant le dm, comme ça il gardera quand même son argent
En ce moment je suis sur le SetPlayerWorldBounds(playerid,x_max,y_max,x_min,y_min);
J'ai un problème voici mes relevés où tu avais préalablement mis des croix sur ton schéma, voici mes coordonnées:
AddPlayerClass(1400.9539,2216.9836); // Xmax Ymax
AddPlayerClass(1298.7783,2102.1570); // Xmin, Ymin
Donc je rentre ça comme tu as dis, c'est à dire:
SetPlayerWorldBounds(playerid,x_max,y_max,x_min,y_min);
SetPlayerWorldBounds(playerid,1400.9539,2216.9836,1298.7783,2102.1570);
Lorsque je rentre ces coordonnées ( je ne les ai pas pris à la va vite donc elles sont bonnes j'ai vérifié )
Je retourne dans le jeu je tape ma commande /dm mais le problème c'est que ça me met dans les airs je continue aà monter avec le message qui dit que je ne peut pas dépasser les limites du dm
Si tu sais d'où ça peut venir où que tu sais où est l'erreur préviens moi ( bien sur s'il y en à d'autres qui savent prévenez moi )
A+++ :)
-
Fait en sorte que les limites ne s'active que quand tu tape la commande et que le joueur soit bien teleporter , sinon sa peut venir des coordonnées .
-
Salut
Ouais ça je sais mais je n'y arrive pas
J'ai un autre problème sûrement pas très grave mais très gênant. Je peux taper n'importe quelle commande type /dm /dmsmd /dfnif /... , j arrive dans le dm moi je veux pourvoir rentrer dans le DM juste pour /dm
-
Eh bien pour activer les limites quand il tape la cmd tu met le code dans la cmd entre les accolades , sinon fait voir ton code .
-
le voici
public OnPlayerCommandText(playerid, cmdtext[])
{
//téléportation à la zone de baseball de lv
if (strcmp(cmdtext, "/dm",true) == 1)
{
if(IsPlayerInAnyVehicle(playerid))
{
LinkVehicleToInterior(GetPlayerVehicleID(playerid),0);
/*SetVehiclePos(GetPlayerVehicleID(playerid),-1971.751, 277.982, 35.1719);*/ //Pas de voitures dans le dm
GameTextForPlayer(playerid, "~g~Te voila au DM",5000,6);
}
else
{
SetPlayerPos(playerid,1383.6260,2185.7075,11.0234);
SetPlayerArmour(playerid, 100.0);
SetPlayerHealth(playerid, 100.0);
GivePlayerWeapon(playerid, 26,300);
GameTextForPlayer(playerid, "~g~Te voila au DM",5000,6);
//SetPlayerWorldBounds(playerid,1298.7783,2102.1570,1400.9539,2216.9836); //en construction
} //Xmax; Ymax ; Xmin, Ymin
return 1;
}
////////////////////////////////////////////////////////////////////////////////
{
if (strcmp(cmdtext, "/dmq",true) == 1){ //pour quitter le dm
GameTextForPlayer(playerid, "~g~Ton DM est fini. Bonne continuation",5000,6);
}
else
{
SetPlayerPos(playerid,1958.3783,1343.1572,15.3746);
SetPlayerHealth(playerid, 100.0);
GivePlayerWeapon(playerid, 26,300);
}
return 1;
}
}
-
Bien je pense que ceci serait mieux :
public OnPlayerCommandText(playerid, cmdtext[])
{
//téléportation à la zone de baseball de lv
if (strcmp(cmdtext, "/dm",true) == 1)
{
SetPlayerPos(playerid,1383.6260,2185.7075,11.0234);
SetPlayerArmour(playerid, 100.0);
SetPlayerHealth(playerid, 100.0);
GivePlayerWeapon(playerid, 26,300);
GameTextForPlayer(playerid, "~g~Te voila au DM",5000,6);
SetPlayerWorldBounds(playerid,1400.9539,2216.9836,1298.7783,2102.1570);//en construction
GameTextForPlayer(playerid, "~g~Te voila au DM",5000,6);
}
return 1;
}
////////////////////////////////////////////////////////////////////////////////
if (strcmp(cmdtext, "/dmq",true) == 1)//pour quitter le dm
{
GameTextForPlayer(playerid, "~g~Ton DM est fini. Bonne continuation",5000,6);
SetPlayerPos(playerid,1958.3783,1343.1572,15.3746);
SetPlayerHealth(playerid, 100.0);
GivePlayerWeapon(playerid, 26,300);
}
return 1;
}
Voila ce code me semble mieux enfaite c'est min avant max et pas l'inverse sinon pour enlever les limites je ne sais pas comment faire , je vais chercher sinon test ce code .
-
Salut,
Si tu veut enlever que sa te repousse a des limites :
SetPlayerWorldBounds(playerid,1400.9539,2216.9836,1298.7783,2102.1570);//en construction
Tu le supprime.., Généralement y'a en 2 ..
-
Salut,
ton problème est tout simple, tu aurais du jeter un oeil au prototype de la fonction:
SetPlayerWorldBounds(playerid,Float:x_max,Float:x_min,Float:y_max,Float:y_min);
bref, ton code devient:
SetPlayerWorldBounds(playerid, 1400.9539, 1298.7783, 2216.9836, 2102.1570);//en construction
++Sim++
-
A oui je savais bien que c'etait un probleme de coordonnées et puis pour les WorldBounds je pensait a la meme chose sinon j'ai son adresse msn je l'aide .
-
Salut
merci, les limites du DM marchent nickel mais 3 pbs persistent:
1/ je peux taper n importe quoi avec un / j arrive sur un spawn normal
2/ lorsque je fais /dmq je suis téléporté au dm alors que normalment je dois respawner sur un spawn normal
3/ lorsque je tape /dm je réapparait sur un spawn normal ( donc les 2 conditions sont inversés je pense mais je n'arrive pas à résoudre ce problème )
Si vous avez des réponses à ces questions...
A+++
-
Connecte toi a msn je pense avoir regler tes problemes .
-
Salut mon DM commence à être vraiment bien grâce à vous mais il me reste encore un problème:
Je ne sais pas comment créer une condition qui fait que lorsque je suis dans un dm et que je meurs je reapparais automatiquement dans le dm
Je pense que ça se pass ici mais après la fonction avec if ????
public OnPlayerDeath(playerid, killerid, reason)//Quand un joueur est mort
{
return 1;
}
Si quelqu'un a déja rencontrer ce problème, merci de répondre
:D
A++
-
Up!
-
sa joue dans cette parti public OnPlayerSpawn(playerid)
-
salut
ça je le savais mais je ne sais pas comment réaliser une redirection dans le DM
Pour que quand le personnage meurt dans un dm il meurt normalement puis qu'il soit renvoyé dans le DM car il a tapé /dm
Si il avait tapé /dmq il serait retourné à son spawn normal
A++