Page 1 of 1

[script][Obstacle]Nombre de rocket spawn et cp-spawn

Posted: 12 Oct 2013, 17:42
by erkagon
Bonjour,

je cherche dans les scripts ou se situe la ligne qui gère le nombre de rocket quand on spawn dans un spawn ou dans un cp-spawn(avant que ça commence à se recharger).

Par exemple quand on spawn, les roquettes sont de moitié puis se rechargent, j'aurai besoin de modifié ça pour que les rockets soit directement chargé.

Je voudrais qu'au spawn ma barre de rocket soit directement pleine et que je puisse tirer directement.

Merci d'avance pour vos réponses,

Erkagön

Re: [script][Obstacle]Nombre de rocket spawn et cp-spawn

Posted: 12 Oct 2013, 21:00
by Darkminus
Bonsoir!

Alors, étant donné que les valeurs changent en fonction de chaque spawn, j'ai simplement recrée une fonction qui recharge l'arme en fonction du spawn (qui est un copier coller de la fonction qui définit le type de spawn, a la différence que je paramètre le nombre de munition du joueur). Tu auras donc le max de munitions que tu peux avoir pour chaque spawn.

Tu pourras trouver le script ici: https://dl.dropboxusercontent.com/u/608 ... Script.txt

Bonne soirée ! ;)

Re: [script][Obstacle]Nombre de rocket spawn et cp-spawn

Posted: 12 Oct 2013, 22:53
by erkagon
Merci beaucoup, pourrais-je savoir à quel ligne est votre fonction svp ? Cela marche-t-il aussi pour les CP-SPAWN ?

Re: [script][Obstacle]Nombre de rocket spawn et cp-spawn

Posted: 13 Oct 2013, 10:21
by Darkminus
Je l'ai faite un peu à la va-vite, mais voici en gros les lignes que j'ai ajoutées:

Ligne 461:

Code: Select all

				if (TextLib::Length(BlockSpawns[G_StartSpawnId].Tag) > 5) {
					// Apply special spawn
					declare TypeString = TextLib::SubString(BlockSpawns[G_StartSpawnId].Tag, 9, 1);
					ReloadWeapons(Player.Id, TextLib::ToInteger(TypeString));
				} else {
					ReloadWeapons(Player.Id, 0);
				}
Ligne 2036:

Code: Select all

						if (TextLib::Length(BlockSpawns[PlayerLastCheckPointSpawnId].Tag) > 5) {
							// Apply special spawn
							declare TypeString = TextLib::SubString(BlockSpawns[PlayerLastCheckPointSpawnId].Tag, 9, 1);
							ReloadWeapons(Player.Id, TextLib::ToInteger(TypeString));
						} else {
							ReloadWeapons(Player.Id, 0);
						}
Ligne 2062 :

Code: Select all

			if (TextLib::Length(BlockSpawns[CheckpointLast].Tag) > 5) {
				// Apply special spawn
				declare TypeString = TextLib::SubString(BlockSpawns[CheckpointLast].Tag, 9, 1);
				ReloadWeapons(Player.Id, TextLib::ToInteger(TypeString));
			} else {
				ReloadWeapons(Player.Id, 0);
			}
Et la fonction (Ligne 1842):

Code: Select all

Void ReloadWeapons(Ident _PlayerId, Integer _Type) {
	if (C_UseWeapons) {
		if (Players.existskey(_PlayerId)) {
			declare Player <=> Players[_PlayerId];
			declare WeaponType for Player = -1;
			WeaponType = 0;
			switch (_Type) {
				case 1: {
					// Nucleus spawn
					SetPlayerAmmo(Player, CSmMode::EWeapon::Nucleus, 2);
				}
				case 2: {
					SetPlayerAmmo(Player, CSmMode::EWeapon::Laser, 0);
					SetPlayerAmmo(Player, CSmMode::EWeapon::Rocket, 0);
					SetPlayerAmmo(Player, CSmMode::EWeapon::Nucleus, 0);
				}
				default: {
					// Default spawn
					SetPlayerAmmo(Player, CSmMode::EWeapon::Laser, 1);
					SetPlayerAmmo(Player, CSmMode::EWeapon::Rocket, 4);
					SetPlayerAmmo(Player, CSmMode::EWeapon::Nucleus, 2);
				}
			}
		}
	}
}
Concrètement j'appelle la fonction en fonction du type de spawn après chaque respawn pour charger l'arme du joueur (car ce n'est pas possible de charger l'arme avant le respawn)
Après j'te l'accorde y'a surement plus optimisé, là j'me suis surtout basé sur le raisonnement du code qui était avant le respawn ^^

Bonne journée :)

PS: N'ayant pas de maps obstacle qui traine dans mon PC, j'te laisse le soin de tester avec les CP-Spawn, mais devrais pas y'avoir de raison pour que ça marche pas ;)

Re: [script][Obstacle]Nombre de rocket spawn et cp-spawn

Posted: 13 Oct 2013, 10:28
by erkagon
Ha non c'est mon script qui fait planter le tient, ça marche pour les cp-spawn merci bien :),

Bonne journée