Noes... zit al de hele avond te prutsen, en heb het gevoel dat ik nog steeds niks nuttigs gedaan heb...
Ik had het volgende geniale ( ) idee:
Die objectstreamers e.d. ben ik al tijden hardstikke beu, bugs, ze kunnen niet samenwerken met elkaar en met het script... en de streamers zelf zijn me zo helder als koffiedik (en als ik ergens een hekel aan heb is het wel dingen in mn script die ik niet snap...) maar meer dan 150-200 objecten zou toch wel leuk zijn...
Dus had ik het volgende systeem uitgedacht/gemaakt:
Bij het uitvoeren van een (teleport)commando worden de nodige objecten gemaakt met behulp van "CreatePlayerObject". En bij een ander (teleport)commando en/of bij de OnPlayerDeath worden ze weer verwijderd. Waardoor je dus alleen de objecten ziet die je nodig hebt.
Dus het commando ziet er dan zo uit:
if (strcmp("/bigjump", cmdtext, true) == 0)
{
// kijken of de speler geld genoeg heeft enzo...
if (ObjectenActief[playerid] == 0)
{
DestroyObjects(playerid);
Objecten(playerid);
ObjectenActief[playerid] = 1;
}
// de rest waarin speler word geteleport, en voertuigen meegenomen
return 1;
}
Het gedeelte waar het om draait word dus alleen uitgevoerd als die "ObjectenActief" op 0 staat. Want stel dat je al op die betreffende stunt staat en je voert het commando nog een keer uit, dan zouden opnieuw de objecten verwijderd en opnieuw gemaakt worden...
Bij "Objecten" worden de objecten aangemaakt, dat ziet er dan zo uit:
public Objecten(playerid)
{
object[1] = CreatePlayerObject(playerid, id, x, y, z, rx, ry, rz);
object[2] = CreatePlayerObject(playerid, id, x, y, z, rx, ry, rz);
object[3] = CreatePlayerObject(playerid, id, x, y, z, rx, ry, rz);
// enz.
}
En bij "DestroyObjects" worden de objecten weer verwijderd. Dat heb ik zo gedaan:
public DestroyObjects(playerid)
{
if (ObjectenActief[playerid] == 1)
{
for(new i = 0; i <= sizeof(object); i++)
DestroyPlayerObject(playerid, object[i]);
ObjectenActief[playerid] = 0;
}
if (anderobjecten)
{
// blabla
}
}
Bij dit laatste worden dus alleen de objecten verwijderd die "actief" zijn. Tot zover allemaal prima in orde. In totaal heb ik er nu 4 commando's op deze manier instaan (met in totaal 160 objecten)
Wanneer ik nu naar bijvoorbeeld een /stunt1 teleport werkt dat prima. Objecten worden gemaakt. Wanneer ik mezelf kill met behulp van /kill gaat het ook prima. De objecten verdwijnen direct na het /kill commando.
Maar wanneer ik probeer van de ene stunt naar de andere stunt te teleporteren dan gaat het mis. Stel ik sta bij /stunt1 en ik ga naar /stunt2.
De eerste keer dat ik /stunt2 intyp worden de objecten van /stunt1 verwijderd EN ik krijg de melding "unknown command". Pas de tweede keer dat ik /stunt2 intyp word ik ernaartoe geteleport. De ander commando's zoals /help blijven wel gewoon feilloos werken.
Ik heb het idee dat er iets fout zit in die "public DestroyObjects" maar geen flauw idee wat eigenlijk... al van alles uitgeprobeerd
Noes... zit al de hele avond te prutsen, en heb het gevoel dat ik nog steeds niks nuttigs gedaan heb...
Ik had het volgende geniale (
) idee:
Die objectstreamers e.d. ben ik al tijden hardstikke beu, bugs, ze kunnen niet samenwerken met elkaar en met het script... en de streamers zelf zijn me zo helder als koffiedik (en als ik ergens een hekel aan heb is het wel dingen in mn script die ik niet snap...) maar meer dan 150-200 objecten zou toch wel leuk zijn...
Dus had ik het volgende systeem uitgedacht/gemaakt:
Bij het uitvoeren van een (teleport)commando worden de nodige objecten gemaakt met behulp van "CreatePlayerObject". En bij een ander (teleport)commando en/of bij de OnPlayerDeath worden ze weer verwijderd. Waardoor je dus alleen de objecten ziet die je nodig hebt.
Dus het commando ziet er dan zo uit:
Het gedeelte waar het om draait word dus alleen uitgevoerd als die "ObjectenActief" op 0 staat. Want stel dat je al op die betreffende stunt staat en je voert het commando nog een keer uit, dan zouden opnieuw de objecten verwijderd en opnieuw gemaakt worden...
Bij "Objecten" worden de objecten aangemaakt, dat ziet er dan zo uit:
En bij "DestroyObjects" worden de objecten weer verwijderd. Dat heb ik zo gedaan:
Bij dit laatste worden dus alleen de objecten verwijderd die "actief" zijn. Tot zover allemaal prima in orde. In totaal heb ik er nu 4 commando's op deze manier instaan (met in totaal 160 objecten)
Wanneer ik nu naar bijvoorbeeld een /stunt1 teleport werkt dat prima. Objecten worden gemaakt. Wanneer ik mezelf kill met behulp van /kill gaat het ook prima. De objecten verdwijnen direct na het /kill commando.
Maar wanneer ik probeer van de ene stunt naar de andere stunt te teleporteren dan gaat het mis. Stel ik sta bij /stunt1 en ik ga naar /stunt2.
De eerste keer dat ik /stunt2 intyp worden de objecten van /stunt1 verwijderd EN ik krijg de melding "unknown command". Pas de tweede keer dat ik /stunt2 intyp word ik ernaartoe geteleport. De ander commando's zoals /help blijven wel gewoon feilloos werken.
Ik heb het idee dat er iets fout zit in die "public DestroyObjects" maar geen flauw idee wat eigenlijk... al van alles uitgeprobeerd