Malheur!
Toute utilisation de TriggerSleepAction ou d'une fonction dérivée sera sévèrement punie!! (plus sérieusement, PolledWait fonctionne correctement, ne t'attends pas à une précision au-delà de la demi-seconde par contre)
Jass:
PlaySoundOnUnitBJ
Selon TESH, le script de cette fonction est
Jass:
function PlaySoundBJ takes sound soundHandle returns nothing
set bj_lastPlayedSound = soundHandle
if (soundHandle != null) then
call StartSound(soundHandle)
endif
endfunction
A priori, rien de bien utile si tu es suffisamment prudent. Cependant, c'est le genre de vérifications qu'on fait soi-même =o _________________
Quand même mieux que moi, mais aussi je sais pas faire de brouillard, ça rend un effet pas mal.
En plus on peut assez bien circuler ce qui est pas mal pour le jeu je pense. _________________
Inscrit le: 23 Aoû 2007 Messages: 4766 Sujets: 136 Spécialité en worldedit: Keskesapeutfout' Médailles: 1 (En savoir plus...)
Posté le: 08/09/09 21:51 Sujet du message:
Merci Bantas, j'avais regardé mais cela me paraissait parfois plutôt louche.
Voici le nouveau code toupropr (normalement), mon Trollounay qu'en penses-tu ?
Secret:
Jass:
library Bugs initializer Init
globals
private constant integer BUG_ID = 'n003'
private constant real DEBUG_X = -13472 // When a bug dies, it is where
private constant real DEBUG_Y = -13760 // he will be for a moment.
private struct BugsGroups
group array bugs_group [2]
integer max_bugs
real x
real y
real area
integer current_bug = 0
endstruct
private function MakeTransparent_Group takes nothing returns nothing
local unit u = GetEnumUnit()
if GetUnitUserData(u) == 3 then
call SetUnitX(u, DEBUG_X)
call SetUnitY(u, DEBUG_Y)
call GroupRemoveUnit(Make_transparent_group, u)
else
call SetUnitVertexColor(u, 255, 255, 255, GetUnitUserData(u))
call SetUnitUserData(u, GetUnitUserData(u) - 1)
endif
set u = null
endfunction
private function MakeTransparent takes nothing returns nothing
if CountUnitsInGroup(Make_transparent_group) == 0 then
call PauseTimer(Make_transparent_tim)
set Is_timer_running = FALSE
else
call ForGroup(Make_transparent_group, function MakeTransparent_Group)
endif
endfunction
private function WalkOnBugs takes nothing returns nothing
local unit u = LoadUnitHandle(Data_hashtable, 0, GetHandleId(GetTriggeringTrigger()))
local sound s = CreateSound("Units\\Critters\\Frog\\FrogWhat1.wav", false, true, false, 5, 10,"HeroAcksEAX")
if GetUnitCurrentOrder(GetTriggerUnit()) != 0 and GetUnitUserData(u) <3 and GetUnitTypeId(GetTriggerUnit()) != GetUnitTypeId(u) then
call AttachSoundToUnit(s, u)
call SetSoundVolume(s, 50)
call StartSound(s)
call KillSoundWhenDone(s)
call IssueImmediateOrderById(u, 851973)
call SetUnitAnimation(u, "death")
call SetUnitUserData(u, 255)
call PolledWait(1)
call GroupAddUnit(Make_transparent_group, u)
if Is_timer_running == FALSE then
call TimerStart(Make_transparent_tim, 0.03, true, function MakeTransparent)
set Is_timer_running = TRUE
endif
endif
set u = null
set s = null
endfunction
function CreateBugs takes integer how_many, real x, real y, real area returns nothing
local integer i = 1
local BugsGroups data = BugsGroups.create()
local unit u = null
set data.bugs_group[0] = CreateGroup()
set data.bugs_group[1] = CreateGroup()
loop
exitwhen i > how_many
set u = CreateUnit(Player(bj_PLAYER_NEUTRAL_EXTRA), BUG_ID, GetRandomReal(x - area, x + area), GetRandomReal(y - area, y + area), GetRandomReal(0, 360))
call GroupAddUnit(data.bugs_group[0], u)
set Walk_on_bugs_trigg = CreateTrigger()
call TriggerRegisterUnitInRange(Walk_on_bugs_trigg, u, 8, null)
call TriggerAddAction(Walk_on_bugs_trigg, function WalkOnBugs)
call SaveUnitHandle(Data_hashtable, 0, GetHandleId(Walk_on_bugs_trigg), u)
set i = i + 1
set u = null
endloop
set data.max_bugs = how_many
set data.x = x
set data.y = y
set data.area = area
set Bugs_groups_data[Max_bugs_groups] = data
set Max_bugs_groups = Max_bugs_groups + 1
set i = 0
set data = 0
endfunction
function MoveBugs takes nothing returns nothing
local integer i = 0
local BugsGroups data
local unit u = null
local location l = null
loop
exitwhen i >= Max_bugs_groups
set data = Bugs_groups_data[i]
if CountUnitsInGroup(data.bugs_group[0]) == 0 then
call GroupAddGroup(data.bugs_group[1], data.bugs_group[0])
call GroupClear(data.bugs_group[1])
endif
set u = FirstOfGroup(data.bugs_group[0])
if GetUnitCurrentOrder(u) == 0 then
if GetUnitUserData(u) < 3 then
if GetUnitUserData(u) == 1 then
set l = Location(GetRandomReal(data.x - data.area, data.x + data.area), GetRandomReal(data.y - data.area, data.y + data.area))
call IssuePointOrderLoc(u, "move", l)
call RemoveLocation(l)
call SetUnitUserData(u, 0)
else
if GetRandomInt(0, 1) == 1 then
call SetUnitUserData(u, 1)
elseif GetUnitUserData(u) != 3 then
set l = Location(GetRandomReal(data.x - data.area, data.x + data.area), GetRandomReal(data.y - data.area, data.y + data.area))
call IssuePointOrderLoc(u, "move", l)
call RemoveLocation(l)
call SetUnitUserData(u, 0)
endif
endif
elseif GetUnitUserData(u) == 3 then
call SetUnitVertexColor(u, 255, 255, 255, 255)
call SetUnitX(u, data.x)
call SetUnitY(u, data.y)
call SetUnitUserData(u, 1)
call SetUnitAnimation(u, "stand")
endif
endif
call TimerStart(Move_bugs_tim, 0.5, true, function MoveBugs)
endfunction
endlibrary
Ensuite encore une question, vous remarquerez que j'utilise un son, ce dernier, lors de sa première utilisation, ne se lance pas. À partir de la deuxième utilisation ça marche nickel, faut-il "précharger" le son ?
Enfin, pour répondre à Xrouge, je préfère vraiment ce décors que celui de cycycycy, il faudrait peut-être varier les herbes (j'avais importé plusieurs modèles d'herbe qui bouge dans AL1, je pense que je vais les remettre), mais j'aime bien les collines tout ça.
J'aime également le terrain, bref pour l'instant ça me convient pour une forêt.
Je te recontacte _________________
Leçon n°1 du WorldEdit : « Le violet > Troll-Brain »
Inscrit le: 23 Aoû 2007 Messages: 4766 Sujets: 136 Spécialité en worldedit: Keskesapeutfout' Médailles: 1 (En savoir plus...)
Posté le: 17/09/09 16:49 Sujet du message:
Yop les gens !
Alors pour infos, Xrouge m'a déjà pas mal aidé pour le terrain de la map. Cependant je ne pense pas que ses capacités soient assez élevées pour produire un terrain de la qualité que j'attends, notamment car il ne sait pas assez innover. Donc je réitère ma demande d'aide, si quelqu'un voulait bien continuer de travailler sur le terrain que Xrouge a commencé, ce serait cool !
Je précise aussi que les "bases" d'une partie du terrain sont d'ores et déjà posées désormais. _________________
Leçon n°1 du WorldEdit : « Le violet > Troll-Brain »
Inscrit le: 23 Aoû 2007 Messages: 4766 Sujets: 136 Spécialité en worldedit: Keskesapeutfout' Médailles: 1 (En savoir plus...)
Posté le: 04/10/09 14:44 Sujet du message:
Kikoo
Alors me voilà confronté devant un terrible problème !
Je suis actuellement en train de faire le système d'accouplement, qui sera bien mieux réalisé mais également plus complexe que dans Animals' Life 1. Je vais pas entrer dans les détails, mais avant de vous exposer mon problème, je vais développer un peu :
Lors d'un accouplement entre mammifères, la femelle verra, comme dans AL1, ses enfants et leur "croissance" dans son ventre. Cependant le gros changement à ce stade sera que lorsque la mère sera prête à accoucher, elle ne le fera pas automatiquement, elle devra cliquer sur un icône (une compétence), mais pas n'importe quand : elle ne devra pas avoir été attaquée les 15 secondes précédant ce clique. Également à noter que lorsque la mère sera prête à accoucher, elle perdra du sang (donc de la vie) jusqu'à ce qu'elle accouche.
Le problème est le suivant : je n'ai absolument AUCUNE idée de quel icône mettre pour le "sort" accoucher ! xD
Si vous pouviez m'aider à trouver quelque chose de potable, peu importe qu'il soit importé ou non !
Je vous remercie !
(oué, je sais, j'ai vraiment des problèmes très kons ^^") _________________
Leçon n°1 du WorldEdit : « Le violet > Troll-Brain »
Suffit de remonter un peu, avec l'embryon on verra plus trop de différences entre espèces.
Plus sérieusement, l'idée du mouton_super est intéressante mais sur une aussi petite icône, ça risque d'être chaud.
La Cigogne par contre est assez universelle, dans l'ambiance "animale" et facile à caser, ça pourrait être pas mal à mon humble avis. _________________
Toutes les heures sont au format GMT + 1 Heure Aller à la page Précédente1, 2, 3, 4Suivante
Page 3 sur 4
Vous ne pouvez pas poster de nouveaux sujets dans ce forum Vous ne pouvez pas répondre aux sujets dans ce forum Vous ne pouvez pas éditer vos messages dans ce forum Vous ne pouvez pas supprimer vos messages dans ce forum Vous ne pouvez pas voter dans les sondages de ce forum