GTAForum.nl - Het Nederlandse Grand Theft Auto Forum!: script werkt niet - GTAForum.nl - Het Nederlandse Grand Theft Auto Forum!

Ga naar de inhoud

GTAGames.nl advertentie
Pagina 1 van 1
  • Je kunt geen onderwerp beginnen
  • Je kunt niet reageren

script werkt niet

Geplaatst op 4 februari 2010 - 19:21     #1 Dit lid is offline   kayle 

  • Ferrari dealer
  • PipPip
  • Groep: Leden
  • Registratie: 09-maart 08
hoi allemaal,
ik heb een script gemaakt dat ervoor moet zorgen dat er meer dan 1 persoon in een hydra en hunter kan. dit is mijn script hieronder. het probleem is dat hij niet kan zien in welk voertuig 'i' zit. ik krijg wel het berict te zien: 'JE KOMT OOK DOOR DE KEURING HEEN. (IS GECONNECTEERD EN IS IN GEEN VOERTUIG)' maar het bericht 'EN TENSLOTTE BEN JE OOK IN DE BUURT VAN EEN SPELER MET EEN HYDRA' krijg ik nooit te zien. Weet iemand wat ik met dit script moet doen om het werkend te krijgen?
Gr. Kayle



// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// --- Gemaakt door Kayle
// --- Gelieve deze tekst altijd in het bestand te laten staan

// --- Dit script zorgt ervoor dat je bij anderen in kan stappen
// --- terwijl er eigenlijk geen plaats meer voor is.
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -


// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
#define MAX_PLAYER 10 // aantal max. spelers die in de server kunnen zitten
#define FLYBY_DISTANCE 10 // AANTAL PUNTUN DIE MAX TUSSEN DE SPELERS MAG ZITTEN.
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

#include <a_samp>
new bool:stop = false, bool:IV[MAX_PLAYER];
GetDistanceBetweenPlayers(playerid,playerid2){
new Float:x1,Float:y1,Float:z1,Float:x2,Float:y2,Float:z2;
new Float:tmpdis;
GetPlayerPos(playerid,x1,y1,z1);
GetPlayerPos(playerid2,x2,y2,z2);
tmpdis = floatsqroot(floatpower(floatabs(floatsub(x2,x1)),2)+floatpower(floatabs(floatsub(y2,y1)),2)+floatpower(floatabs(floatsub(z2,z1)),2));
return floatround(tmpdis);
}

public OnFilterScriptInit()
{
print("\n LOADED------------------------------");
print("Vlieg mee met andere 1 persoons voertuigen");
print("--------------------------------------\n");
return 1;
}

public OnFilterScriptExit()
{
print("\n UNLOADED------------------------------");
print("Vlieg mee met andere 1 persoons voertuigen");
print("--------------------------------------\n");
return 1;
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
public OnPlayerUpdate(playerid)
{
new Keys, ud, lr;
GetPlayerKeys(playerid, Keys, ud, lr);
if(Keys == KEY_JUMP && !IsPlayerInAnyVehicle(playerid) ){
SendClientMessage(playerid, 0xFFFFFFFF, "- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -");
SendClientMessage(playerid, 0xFFFFFFFF, "JE DRUKT OP DE KNOP KEY_JUMP");
// - - - - - - - - - - - - - - - - - - - - - - - - - - - -
for(new i; i <= MAX_PLAYER; i++){
if(stop == false && IsPlayerConnected(i) && IsPlayerInAnyVehicle(i) && GetDistanceBetweenPlayers(playerid,i) <= FLYBY_DISTANCE){
SendClientMessage(playerid, 0xFFFFFFFF, "JE KOMT OOK DOOR DE KEURING HEEN. (IS GECONNECTEERD EN IS IN GEEN VOERTUIG)");
// - - - - - - - - - - - - - - - - - - - - - - - - - -
if(GetVehicleModel(i) == 520){
SendClientMessage(playerid, 0xFFFFFFFF, "EN TENSLOTTE BEN JE OOK IN DE BUURT VAN EEN SPELER MET EEN HYDRA");
// - - - - - - - - - - - - - - - - - - - - - - - -
SendClientMessage(playerid, 0xFFFFFFFF, "Je stapte in. (Hydra)");
PlayerSpectatePlayer(playerid, i);
SetPlayerVirtualWorld(playerid, 2);
stop = true;
IV[playerid] = true;
// - - - - - - - - - - - - - - - - - - - - - - - -
}
if(GetVehicleModel(i) == 425){
// - - - - - - - - - - - - - - - - - - - - - - - -
SendClientMessage(playerid, 0xFFFFFFFF, "EN TENSLOTTE BEN JE OOK IN DE BUURT VAN EEN SPELER MET EEN HUNTER");
SendClientMessage(playerid, 0xFFFFFFFF, "Je stapte in. (Hunter)");
PlayerSpectatePlayer(playerid, i);
stop = true;
IV[playerid] = true;
// - - - - - - - - - - - - - - - - - - - - - - - -
}
// - - - - - - - - - - - - - - - - - - - - - - - - - -
}
}
stop = false;
// - - - - - - - - - - - - - - - - - - - - - - - - - - - -
if(IV[playerid] == true){
// - - - - - - - - - - - - - - - - - - - - - - - - - -
SetCameraBehindPlayer(playerid);
SendClientMessage(playerid, 0xFFFFFFFF, "Je stapte uit.");
// - - - - - - - - - - - - - - - - - - - - - - - - - -
}
}
return 1;
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -


Dit bericht is aangepast door kayle: 24 maart 2010 - 17:43


GTAGames.nl advertentie

Geplaatst op 4 februari 2010 - 19:37     #2 Dit lid is online   Big Boss 

  • a.k.a. Vince
  • PipPipPipPipPipPipPipPip
  • Groep: Moderators
  • Registratie: 28-februari 05
Ten eerste leren scripten. Ik begrijp zelfs niet hoe je dat hebt kunnen compilen ...

#include <a_samp>
new bool:stop = false, bool:IV[MAX_PLAYER];
GetDistanceBetweenPlayers(playerid,playerid2){
new Float:x1,Float:y1,Float:z1,Float:x2,Float:y2,Float:z2;
new Float:tmpdis;
GetPlayerPos(playerid,x1,y1,z1);
GetPlayerPos(playerid2,x2,y2,z2);
tmpdis = floatsqroot(floatpower(floatabs(floatsub(x2,x1)),2)+floatpower(floatabs(floatsub(y2,y1)),2)+floatpower(floatabs(floatsub(z2,z1)),2));
return floatround(tmpdis);
}


:?

Edit: Verkeerd gekeken, dat is dus blijkbaar een functie.
Functies beginnen wel meestal met public of stock, vandaar dat ik het niet doorhad.

Edit 2: En gebruik alsjeblieft OnPlayerKeyStateChange i.p.v. OnPlayerUpdate. Nu ga je ongeveer 30 keer per SECONDE checken of een speler op een bepaalde knop drukt. OnPlayerKeyStateChange wordt automatisch aangeroepen ALS een speler op een knop duwt.

Dit bericht is aangepast door Big Boss: 4 februari 2010 - 19:42

Geplaatste afbeelding

Geplaatst op 4 februari 2010 - 19:40     #3 Dit lid is offline   kayle 

  • Ferrari dealer
  • PipPip
  • Groep: Leden
  • Registratie: 09-maart 08

Bericht weergevenBig Boss zei op 4 februari 2010 - 19:37 :

Ten eerste leren scripten. Ik begrijp zelfs niet hoe je dat hebt kunnen compilen ...

#include <a_samp>
new bool:stop = false, bool:IV[MAX_PLAYER];
GetDistanceBetweenPlayers(playerid,playerid2){
new Float:x1,Float:y1,Float:z1,Float:x2,Float:y2,Float:z2;
new Float:tmpdis;
GetPlayerPos(playerid,x1,y1,z1);
GetPlayerPos(playerid2,x2,y2,z2);
tmpdis = floatsqroot(floatpower(floatabs(floatsub(x2,x1)),2)+floatpower(floatabs(floatsub(y2,y1)),2)+floatpower(floatabs(floatsub(z2,z1)),2));
return floatround(tmpdis);
}


:?

Edit: Verkeerd gekeken, dat is dus blijkbaar een functie.
Functies beginnen wel meestal met public of stock, vandaar dat ik het niet doorhad.


edit: ok, ik dacht al... maar weet jij wat er mis mee is? ik krijg geen foutmelding, warning etc. en hij doet t nog steeds niet.
Gr. Kayle

Dit bericht is aangepast door kayle: 4 februari 2010 - 19:42


Geplaatst op 4 februari 2010 - 19:42     #4 Dit lid is offline   GTAguillaume 

  • Winkel overvaller
  • PipPip
  • Groep: Leden
  • Registratie: 24-mei 09
Nee, maar GetDistanceBetweenPlayers moet normaal een float returnen. :s

Geplaatste afbeelding

Geplaatst op 4 februari 2010 - 19:45     #5 Dit lid is offline   kayle 

  • Ferrari dealer
  • PipPip
  • Groep: Leden
  • Registratie: 09-maart 08

Bericht weergevenGTAguillaume zei op 4 februari 2010 - 19:42 :

Nee, maar GetDistanceBetweenPlayers moet normaal een float returnen. :s

en daarom gebruik ik ook: GetDistanceBetweenPlayers(playerid,i) <= FLYBY_DISTANCE
zodat hij nakijkt of de float kleiner dan FLYBY_DISTANCE is.
Gr. Kayle


Geplaatst op 4 februari 2010 - 19:55     #6 Dit lid is offline   GTAguillaume 

  • Winkel overvaller
  • PipPip
  • Groep: Leden
  • Registratie: 24-mei 09
...
Misschien kan je eerst beter eerst (goed) leren scripten. :b

Geplaatste afbeelding

Geplaatst op 4 februari 2010 - 19:59     #7 Dit lid is offline   kayle 

  • Ferrari dealer
  • PipPip
  • Groep: Leden
  • Registratie: 09-maart 08

Bericht weergevenGTAguillaume zei op 4 februari 2010 - 19:55 :

...
Misschien kan je eerst beter eerst (goed) leren scripten. :b

oke, maar dan zou ik toch nog wel willen weten wat ik hier fout heb gedaan. want anders leer ik het natuurlijk nooit.
Gr. Kayle


Geplaatst op 4 februari 2010 - 20:01     #8 Dit lid is offline   GTAguillaume 

  • Winkel overvaller
  • PipPip
  • Groep: Leden
  • Registratie: 24-mei 09
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
#define MAX_PLAYER 10 // aantal max. spelers die in de server kunnen zitten (Hoeft eigenlijk niet, want SAMP bekijkt dat automatisch)
#define FLYBY_DISTANCE 10.0 // AANTAL PUNTUN DIE MAX TUSSEN DE SPELERS MAG ZITTEN.
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

#include <a_samp>
new bool:stop = false, bool:IV[MAX_PLAYER];
Float:GetDistanceBetweenPlayers(playerid,playerid2)
{
	new Float:x1,Float:y1,Float:z1,Float:x2,Float:y2,Float:z2;
	new Float:tmpdis;
	GetPlayerPos(playerid,x1,y1,z1);
	GetPlayerPos(playerid2,x2,y2,z2);
	tmpdis = floatsqroot(floatpower(floatabs(floatsub(x2,x1)),2)+floatpower(floatabs(floatsub(y2,y1)),2)+floatpower(floatabs(floatsub(z2,z1)),2));
	return floatround(tmpdis);
}

@megadreams: Dat was iets dan ik over het hooft had gezien.

Dit bericht is aangepast door GTAguillaume: 6 februari 2010 - 23:19

Geplaatste afbeelding

Geplaatst op 5 februari 2010 - 13:43     #9 Dit lid is offline   Wanted 

  • Maffia onderbaas
  • PipPipPip
  • Groep: Leden
  • Registratie: 13-februari 07
Spoiler

Dit zou moeten werken.

Dit bericht is aangepast door Wanted: 5 februari 2010 - 13:43


Geplaatst op 6 februari 2010 - 22:50     #10 Dit lid is offline   Megadreams 

  • *Miauw*
  • PipPipPipPipPip
  • Blog weergeven
  • Groep: Moderators
  • Registratie: 26-juni 08
  • Corporation:The Covesight Community
Oftewel simpelweg dit wijzigen:

if(GetVehicleModel(i) == 520){


naar:

if(GetVehicleModel(GetPlayerVehicleID(i) == 520){


of je voegt deze functie toe:

stock VehicleModel(playerid)
{
 new vehmodel;
 vehmodel = GetVehicleModel(GetPlayerVehicleID(playerid));
 return vehmodel;
}


en dan is de if zo:

if(VehicleModel(i) == 520){



Geplaatst op 8 februari 2010 - 17:58     #11 Dit lid is offline   kayle 

  • Ferrari dealer
  • PipPip
  • Groep: Leden
  • Registratie: 09-maart 08

Bericht weergevenmegadreams zei op 6 februari 2010 - 22:50 :

Oftewel simpelweg dit wijzigen:

naar:

of je voegt deze functie toe:

en dan is de if zo:

MegaDreams, ik heb jouw manier genomen, ik ga hem ook proberen.
Wanted, ik had de code geprobeerd, maar hij deed t niet. en volgens mij klopt die true niet.
Gr. Kayle


Geplaatst op 8 februari 2010 - 19:35     #12 Dit lid is offline   Wanted 

  • Maffia onderbaas
  • PipPipPip
  • Groep: Leden
  • Registratie: 13-februari 07
Jup, je hebt gelijk, stomme fout van mij.

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
        if((newkeys & KEY_JUMP) && !(oldkeys & KEY_JUMP))
        {
                if(IV[playerid] == false)
                {
                        for(new i = 0; i < MAX_PLAYER; i++)
                        {
                                if(IsPlayerConnected(i))
                                {
                                        if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 520 || GetVehicleModel(GetPlayerVehicleID(playerid)) == 425)
                                        {
                                                TogglePlayerSpectating(playerid, 1);
                                                PlayerSpectateVehicle(playerid, GetPlayerVehicleID(i));
                                                IV[playerid] = true;
                                                return 1;
                                        }
                                }
                        }
                }
                else
                {
                        TogglePlayerSpectating(playerid, 0);
                        IV[playerid] = false;
                        return 1;
                }
        }
        return 1;
}



Dit bericht is aangepast door Wanted: 8 februari 2010 - 19:35


GTAGames.nl advertentie
Pagina 1 van 1
  • Je kunt geen onderwerp beginnen
  • Je kunt niet reageren

1 gebruikers lezen dit onderwerp
0 leden, 1 gasten en 0 anonieme leden