Afficher la version complète : Proposition de mod facile
FOSE EST REQUIS DANS TOUS LES SCRIPTS
(sauf indaction contraire)
Hello, voilà pour tous ceux qui essayent de faire des mods, ou ceux qui cherchent des idées des mods je vous propose des scripts plus ou moins avancés.
Le premier script permet de lancer des bruitages suivant où se trouve le joueur, l'heure, etc
Par exemple imaginez entendre des bruits de hurlements dans les métros, imaginez de cris de loup pendant une exploration nocturne, imaginez des bruits de couples en train de niquer quand vous passez devant une maison en pleine nuit, bref on peux en faire des choses, et améliorer vraiment le jeu grace à ce mod.
scn FUzzSCRIPTzzAMBIANCE
short doonce
short VARrandom
short VARlieu
float timer
Begin Gamemode
set VARrandom to (GetRandomPercent)
set timer to timer + GetSecondsPassed
if player.GetInCell FranklinMetro01 == 1
set varLIEU to 1
elseif player.GetInCell FranklinMetro02 == 1
set varLIEU to 1
elseif player.GetInCell Metrocenter08 == 1
set varLIEU to 1
elseif player.GetInCell Metrocenter07 == 1
set varLIEU to 1
elseif player.GetInCell Metrocenter06 == 1
set varLIEU to 1
elseif player.GetInCell Metrocenter05 == 1
set varLIEU to 1
elseif player.GetInCell Metrocenter04 == 1
set varLIEU to 1
elseif player.GetInCell Metrocenter03 == 1
set varLIEU to 1
elseif player.GetInCell Metrocenter02 == 1
set varLIEU to 1
elseif player.GetInCell Metrocenter01 == 1
set varLIEU to 1
elseif player.GetInCell Merestimetro01 == 1
set varLIEU to 1
elseif player.GetInCell Merestimetro02 == 1
set varLIEU to 1
elseif player.GetInCell FriendshipMetro02 == 1
set varLIEU to 1
elseif player.GetInCell FriendshipMetro01 == 1
set varLIEU to 1
;ajouter d'autres cellules avec d'autres valeurs à varLIEU
else
set varLIEU to 0
endif
if timer = 30 ; toutes les 30 secondes
set timer to 0
if varLIEU == 1 ; si le player est dans un métro
if VARrandom > 99 ; 1% de chances d'entendre un son
playersound FUzzSOUNDzzMETRO1
elseif > 98
playersound FUzzSOUNDzzMETRO2
elseif > 97
playersound FUzzSOUNDzzMETRO3
elseif > 96
playersound FUzzSOUNDzzMETRO4
elseif > 95
playersound FUzzSOUNDzzMETRO5
endif
endif
endif
END
Voilà vous voyez dans un petit script comme ça, on peu changer facilement l'ambiance du jeu. Donc je vous laisse le soin de compléter ce script, de trouver des sons angoissants ou marrant, et de vous y mettre! Je ne le fait pas moi même car je n'ai pas le temps et plus vraiment la motivation j'avoue :)
une autre idée facile, pouvoir récupérer les douilles :
scn SCRIPTzzDOUILLES
short varGEN
short varNB
short varattack
short vardiff
Begin gamemode
if player.GetWeaponAmmoUse == ammo10mm
set varGEN to 10
elseif player.GetWeaponAmmoUse == ammo556mm
set varGEN to 556
elseif player.GetWeaponAmmoUse == ammo308
set varGEN to 308
else
set varGEN to 0
endif
IF VARGEN == 10
If player.GetAnimAction != 2 && varattack == 0
set varNB to Getitemcount ammo10mm
endif
if player.GetAnimAction == 2
set varattak to 1
endif
If player.GetAnimAction != 2 && varattack == 1
set varattack to 0
set vardiff to (Getitemcount ammo10mm - varNB)
if vardiff >= 4 set vardiff to (vardiff /4)
set REFdouille10mm0 to player.placeatme douille10mm, vardiff, 1, 0
set REFdouille10mm1 to player.placeatme douille10mm, vardiff, 1, 1
set REFdouille10mm2 to player.placeatme douille10mm, vardiff, 1, 2
set REFdouille10mm3 to player.placeatme douille10mm, vardiff, 1, 3
else
set REFdouille10mm to player.placeatme douille10mm, vardiff
endif
endif
if player.GetInSameCell REFdouille10mm != 1
REFdouille10mm.disable
REFdouille10mm.markfordelete
endif
if player.GetInSameCell REFdouille10mm0 != 1
REFdouille10mm0.disable
REFdouille10mm0.markfordelete
endif
if player.GetInSameCell REFdouille10mm1 != 1
REFdouille10mm1.disable
REFdouille10mm1.markfordelete
endif
if player.GetInSameCell REFdouille10mm2 != 1
REFdouille10mm2.disable
REFdouille10mm2.markfordelete
endif
if player.GetInSameCell REFdouille10mm3 != 1
REFdouille10mm3.disable
REFdouille10mm3.markfordelete
endif
ELSEIF VARGEN == 556
If player.GetAnimAction != 2 && varattack == 0
set varNB to Getitemcount ammo556mm
endif
if player.GetAnimAction == 2
set varattak to 1
endif
If player.GetAnimAction != 2 && varattack == 1
set varattack to 0
set vardiff to (Getitemcount ammo556mm - varNB)
if vardiff >= 4 set vardiff to (vardiff /4)
set REFdouille556mm0 to player.placeatme douille556mm, vardiff, 1, 0
set REFdouille556mm1 to player.placeatme douille556mm, vardiff, 1, 1
set REFdouille556mm2 to player.placeatme douille556mm, vardiff, 1, 2
set REFdouille556mm3 to player.placeatme douille556mm, vardiff, 1, 3
else
set REFdouille556mm to player.placeatme douille556mm, vardiff
endif
endif
if player.GetInSameCell REFdouille556mm != 1
REFdouille556mm.disable
REFdouille556mm.markfordelete
endif
if player.GetInSameCell REFdouille556mm0 != 1
REFdouille556mm0.disable
REFdouille556mm0.markfordelete
endif
if player.GetInSameCell REFdouille556mm1 != 1
REFdouille556mm1.disable
REFdouille556mm1.markfordelete
endif
if player.GetInSameCell REFdouille556mm2 != 1
REFdouille556mm2.disable
REFdouille556mm2.markfordelete
endif
if player.GetInSameCell REFdouille556mm3 != 1
REFdouille556mm3.disable
REFdouille556mm3.markfordelete
endif
ELSEIF VARGEN == 308
If player.GetAnimAction != 2 && varattack == 0
set varNB to Getitemcount ammo308
endif
if player.GetAnimAction == 2
set varattak to 1
endif
If player.GetAnimAction != 2 && varattack == 1
set varattack to 0
set vardiff to (Getitemcount ammo308 - varNB)
if vardiff >= 4 set vardiff to (vardiff /4)
set REFdouille3080 to player.placeatme douille308, vardiff, 1, 0
set REFdouille3081 to player.placeatme douille308, vardiff, 1, 1
set REFdouille3082 to player.placeatme douille308, vardiff, 1, 2
set REFdouille3083 to player.placeatme douille308, vardiff, 1, 3
else
set REFdouille308 to player.placeatme douille308, vardiff
endif
endif
if player.GetInSameCell REFdouille308 != 1
REFdouille308.disable
REFdouille308.markfordelete
endif
if player.GetInSameCell REFdouille3080 != 1
REFdouille3080.disable
REFdouille3080.markfordelete
endif
if player.GetInSameCell REFdouille3081 != 1
REFdouille3081.disable
REFdouille3081.markfordelete
endif
if player.GetInSameCell REFdouille3082 != 1
REFdouille3082.disable
REFdouille3082.markfordelete
endif
if player.GetInSameCell REFdouille3083 != 1
REFdouille3083.disable
REFdouille3083.markfordelete
endif
ENDIF
END
Script d'autosave
FUzzGLOBzzSAVES est une variable globale à définir via un message par exemple
scn FUzzSCRIPTzzAUTOSAVE
float timer
begin gamemode
if FUzzGLOBzzSAVES > 0
if timer < FUzzGLOBzzSAVES
set timer to timer + GetSecondsPassed
else
set timer to 0
con_Save FUautosave
endif
endif
end
Un script qui permet de passer du mod "2coups" au mod "1coup" avec le fusil à pompe en utilisant un touche
FUzzGLOBzzSHOTGUN = variable globale à définir
FUzztouche = variable globale contenant la touche à appuyer (à configurer avec un msg par exemple)
scn FUzzSCRIPTzzQUESTzzPOMPE
short doOnce
short doOnce2
ref arme
Begin Gamemode
set arme to WeapShotgunSawedOff
if doOnce == 0
set FUzzGLOBzzSHOTGUN to 1
set doOnce to 1
endif
if ( IsKeyPressed FUzztouche )
if FUzzGLOBzzSHOTGUN == 1 ; shotgun 1 -> shotgun 2
showmessage FUzzMESSAGEzzSHOTGUNzz2
SetWeaponAmmoUse 2 arme
SetAttackDamage 100 arme
SetWeaponNumProjectiles 18 arme
set doOnce2 to 2
elseif FUzzGLOBzzSHOTGUN == 2 ; shotgun 2 -> shotgun 1
showmessage FUzzMESSAGEzzSHOTGUNzz1
SetWeaponAmmoUse 1 arme
SetAttackDamage 50 arme
SetWeaponNumProjectiles 9 arme
set doOnce2 to 1
endif
endif
if doOnce2 == 2
set FUzzGLOBzzSHOTGUN to 2
set doOnce2 to 0
elseif doOnce2 == 1
set FUzzGLOBzzSHOTGUN to 1
set doOnce2 to 0
endif
end
MOD qui permet de changer de race en fonction de l'état de santé.
OCDINFx = une des races
endoX = un NPC avec une des races
scn FUzzSCRIPTzzANDROIDE
short doonce
Begin GameMode
if player.GetIsRace OCDINF1
set doonce to 1
endif
if doonce == 1
if player.GetHealthPercentage >= 0.80
if endo1.SameRaceAsPC
else
player.MatchRace endo1
endif
elseif player.GetHealthPercentage >= 0.60
if endo2.SameRaceAsPC
else
player.MatchRace endo2
endif
elseif player.GetHealthPercentage >= 0.40
if endo3.SameRaceAsPC
else
player.MatchRace endo3
endif
elseif player.GetHealthPercentage >= 0.20
if endo4.SameRaceAsPC
else
player.MatchRace endo4
endif
elseif endo5.SameRaceAsPC
else
player.MatchRace endo5
endif
endif
End
PS : Résultat (http://antihadopi.free.fr/fu/android.gif)
Un script pour utiliser différents projectiles à la fin (3 dernières bastos) du chargeur (des balles traçantes par exemple) :
begin gamemode
IF GetWeaponAmmo ammo556mm
if vardo == 0
if player.GetAnimAction == 8 || GetAnimAction == 0
SetWeaponProjectile proj556mm
set vartotal to player.getitemcount ammo556mm
set varchargeur to (GetWeaponClipRounds - 3)
set vardo to 1
endif
endif
if vardo == 1 && player.getitemcount ammo556mm == (vartotal - varchargeur)
SetWeaponProjectile proj556mmtracant
set vardo to 0
endif
endif
ENDIF
End
Précise que certaine fonction vienne de FOSE genre Setweaponprojectile.
Améliorer Smoke Cigarettes
(pas besoin de FOSE)
Prenez le mod "smoking cigarets". Lorsque l'on fume, et bien on a une cigarette dans la bouche et puis basta, aucune fumée, et la clope ne se consume pas. Avec ce script on peut amélioré tout ça.
Dans l'exmple je pars sur 11 niveaux de consumation de la clope (donc 11 skins et meshes), à savoir niveau 100 = clope intacte et niveau 0 = mégot.
begin gamemode
if playersmoke == 1 ; on considère playersmoke comme une condition à part entière, à configurer suivant le mod
set timer to timer + getsecondpassed
endif
if timer == 7
if VARclope == 100
player.placeatme fumeeclope
player.additem clope90percent
player.equipitem clop90percent
player.removeitem clop100percent
set VARclope to 90
set timer to 0
elseif VARclope ==90
player.placeatme fumeeclope
player.additem clope80percent
player.equipitem clop80percent
player.removeitem clop90percent
set VARclope to 80
set timer to 0
elseif VARclope == 80
player.placeatme fumeeclope
player.additem clope70percent
player.equipitem clop70percent
player.removeitem clop80percent
set VARclope to 70
set timer to 0
;elseif etc etc jusko niveau 10
elseif VARclope == 0
player.placeatme fumeeclope
player.dropitem clop10percent
set VARclope to 0
set timer to 0
set playersmoke to 0
endif
endif
vBulletin® v.3.8.6, Copyright ©2000-2013, Jelsoft Enterprises Ltd. Tous droits réservés - Version française par vBulletin-Ressources.com