SA-MP Forums Archive
1 Scripting thing where i need help for. - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (https://sampforum.blast.hk/forumdisplay.php?fid=12)
+--- Thread: 1 Scripting thing where i need help for. (/showthread.php?tid=363089)



1 Scripting thing where i need help for. - UnlimitedFreeroam - 26.07.2012

I have my own server, and i know a little how to script. But i need one little thing:

When a player has already a car and he'll spawn a new vehicle, His old Vehicle will get removed.
Can anyone give me a script of this or help me with it?


Re: 1 Scripting thing where i need help for. - Misiur - 26.07.2012

1. Global array new p_cars[MAX_PLAYERS]
2. On command to spawn car check if p_cars[playerid] is empty. If it is not, delete previous car. Assign created car id to p_cars[playerid]


Re: 1 Scripting thing where i need help for. - UnlimitedFreeroam - 26.07.2012

Hmm, i'm not understanding this sorry, I'm not a good scripter.


Re: 1 Scripting thing where i need help for. - cosbraa - 26.07.2012

So you want it so if a player spawns a car (we'll call this car A) and then they spawn a new car (call this one B), you want car A to despawn?, then if they were to spawn car C, car B will despawn? etc etc?


Re: 1 Scripting thing where i need help for. - UnlimitedFreeroam - 26.07.2012

@ Cosbraa, yes.


Imma going to eat now back in 1 hour kinda that.


Re: 1 Scripting thing where i need help for. - DaRealShazz - 26.07.2012

Does it matter if the person is in the car or not?


Re: 1 Scripting thing where i need help for. - cosbraa - 26.07.2012

Well, as Misiur said, make a global variable. Call it whatever you want
Car[MAX_PLAYERS];
Then when a player spawns, set the vehicleid of the car you spawn to Car[playerid].
So, when the command to spawn the car is called, it needs to run the check of seeing if they Car[playerid] > 0, and if it is, then DestroyVehicle(Car[playerid]);
But then have it spawn the car and set the new vehicle id to Car[playerid, like Car[playerid] = vehicleid.

Probably missed a few things and this probably wont help you much, i'm tired and im going.


Re: 1 Scripting thing where i need help for. - DaRealShazz - 26.07.2012

Create variable:
pawn Code:
new pCars[MAX_PLAYERS];
Put this under the car spawning command:
pawn Code:
if (pCars[playerid] > 0) DestroyVehicle(pCars[playerid]);
PutPlayerInVehicle(playerid, CreateVehicle(modelid, Float:x, Float:y, Float:z, Float:angle, color1, color2, respawn_delay), 0);
pCars[playerid] = GetPlayerVehicleID(playerid);
You have to put in the parameters for CreateVehicle function.
Haven't tested, but it should work.


Re: 1 Scripting thing where i need help for. - UnlimitedFreeroam - 26.07.2012

@ DaRealShazz

U mean under this:
new Float: X, Float: Y, Float: Z;
GetPlayerPos(playerid,X,Y,Z);
if(dialogid == 2)


Re: 1 Scripting thing where i need help for. - maramizo - 26.07.2012

Quote:
Originally Posted by DaRealShazz
View Post
Create variable:
pawn Code:
new pCars[MAX_PLAYERS];
Put this under the car spawning command:
pawn Code:
if (pCars[playerid] > 0) DestroyVehicle(pCars[playerid]);
PutPlayerInVehicle(playerid, CreateVehicle(modelid, Float:x, Float:y, Float:z, Float:angle, color1, color2, respawn_delay), 0);
pCars[playerid] = GetPlayerVehicleID(playerid);
You have to put in the parameters for CreateVehicle function.
Haven't tested, but it should work.
To make this work you'd have to set pCars[playerid] = 0; under OnPlayerConnect.


Re: 1 Scripting thing where i need help for. - Misiur - 26.07.2012

Better yet:

pawn Code:
new pCars[MAX_PLAYERS] = {0, ...};



Re: 1 Scripting thing where i need help for. - maramizo - 26.07.2012

Quote:
Originally Posted by Misiur
View Post
Better yet:

pawn Code:
new pCars[MAX_PLAYERS] = {0, ...};
Yes, and you spam your code with utter nonsense, imagine if he has max_players of 500, he's going to create 500 lines saying {0}?! Instead of one simple line under OnPlayerConnect?


Re: 1 Scripting thing where i need help for. - UnlimitedFreeroam - 26.07.2012

I got this error when im doing Compile:

C:\Users\eigenaar\Contacts\Pictures\Desktop\BETA Server\gamemodes\TorettoRacing1.pwn(4187) : warning 204: symbol is assigned a value that is never used: "pCars"
C:\Users\eigenaar\Contacts\Pictures\Desktop\BETA Server\gamemodes\TorettoRacing1.pwn(11956) : error 017: undefined symbol "pCars"
C:\Users\eigenaar\Contacts\Pictures\Desktop\BETA Server\gamemodes\TorettoRacing1.pwn(11956) : warning 215: expression has no effect
C:\Users\eigenaar\Contacts\Pictures\Desktop\BETA Server\gamemodes\TorettoRacing1.pwn(11956) : error 001: expected token: ";", but found "]"
C:\Users\eigenaar\Contacts\Pictures\Desktop\BETA Server\gamemodes\TorettoRacing1.pwn(11956) : error 029: invalid expression, assumed zero
C:\Users\eigenaar\Contacts\Pictures\Desktop\BETA Server\gamemodes\TorettoRacing1.pwn(11956) : fatal error 107: too many error messages on one line

Compilation aborted.Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase


4 Errors.


Re: 1 Scripting thing where i need help for. - Misiur - 26.07.2012

Actually, neither of these are required, because default value is equal 0 ( https://sampwiki.blast.hk/wiki/Scripting_Basics#Accessing )

@OP:

Looks like you didn't register the variable as global (outside any local scope). Did you place its initialization in some callback?


Re: 1 Scripting thing where i need help for. - maramizo - 26.07.2012

Quote:
Originally Posted by UnlimitedFreeroam
View Post
I got this error when im doing Compile:

C:\Users\eigenaar\Contacts\Pictures\Desktop\BETA Server\gamemodes\TorettoRacing1.pwn(4187) : warning 204: symbol is assigned a value that is never used: "pCars"
C:\Users\eigenaar\Contacts\Pictures\Desktop\BETA Server\gamemodes\TorettoRacing1.pwn(11956) : error 017: undefined symbol "pCars"
C:\Users\eigenaar\Contacts\Pictures\Desktop\BETA Server\gamemodes\TorettoRacing1.pwn(11956) : warning 215: expression has no effect
C:\Users\eigenaar\Contacts\Pictures\Desktop\BETA Server\gamemodes\TorettoRacing1.pwn(11956) : error 001: expected token: ";", but found "]"
C:\Users\eigenaar\Contacts\Pictures\Desktop\BETA Server\gamemodes\TorettoRacing1.pwn(11956) : error 029: invalid expression, assumed zero
C:\Users\eigenaar\Contacts\Pictures\Desktop\BETA Server\gamemodes\TorettoRacing1.pwn(11956) : fatal error 107: too many error messages on one line

Compilation aborted.Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase


4 Errors.
Show me those lines, my guess is that you did not place pCars into a "global scope area".
Show me 5 lines before EACH error.


Re: 1 Scripting thing where i need help for. - maramizo - 26.07.2012

Quote:
Originally Posted by Misiur
View Post
Actually, neither of these are required, because default value is equal 0 ( https://sampwiki.blast.hk/wiki/Scripting_Basics#Accessing )

@OP:

Looks like you didn't register the variable as global (outside any local scope). Did you place its initialization in some callback?
You need to initialize any array to it's full extent, try using your own suggestion and you'll know.


Re: 1 Scripting thing where i need help for. - UnlimitedFreeroam - 26.07.2012

I don't understand anything about that Global bla bla Area.

Quote:

SendClientMessage(playerid, COLOR_MESSAGE_YELLOW, "If you want to repair your car, press 'CapsLock");
// (the previous player may of changed it)
TextDrawShowForPlayer(playerid, WelcomeText);
for( new slots = GetMaxPlayers( ), i; i < slots; i ++ )
{
if( IsPlayerConnected( i ) && !IsPlayerNPC( i ) )
{
SpeedBoostMultiplier[ i ] = 3.0;
}
new pCars[MAX_PLAYERS];

First error on line 4187, I don't know or i placed everything on the right place etc.





return SendClientMessage(playerid, 0xFF0000FF, "Now Drive your car into the Neon Garage");
}
}
}
}
// credits to Yuri for his carmenu
new Float: X, Float: Y, Float: Z;
GetPlayerPos(playerid,X,Y,Z);
if(dialogid == 2)
{
if (pCars[playerid] > 0) DestroyVehicle(pCars[playerid]);
PutPlayerInVehicle(playerid, CreateVehicle(modelid, Float, Float:y, Float:z, Float:angle, color1, color2, respawn_delay), 0);
pCars[playerid] = GetPlayerVehicleID(playerid);
if(response)


Second error at line 11956


I don't know anything about this things, maybe u can help me on Teamviewer.


Re: 1 Scripting thing where i need help for. - maramizo - 26.07.2012

Place pCars[MAX_PLAYERS]; somewhere where it is outside of all scopes ( not between any { } ).


Re: 1 Scripting thing where i need help for. - UnlimitedFreeroam - 26.07.2012

Quote:

C:\Users\eigenaar\Contacts\Pictures\Desktop\BETA Server\gamemodes\TorettoRacing1.pwn(4189) : warning 204: symbol is assigned a value that is never used: "pCars"
C:\Users\eigenaar\Contacts\Pictures\Desktop\BETA Server\gamemodes\TorettoRacing1.pwn(11957) : error 017: undefined symbol "pCars"
C:\Users\eigenaar\Contacts\Pictures\Desktop\BETA Server\gamemodes\TorettoRacing1.pwn(11957) : warning 215: expression has no effect
C:\Users\eigenaar\Contacts\Pictures\Desktop\BETA Server\gamemodes\TorettoRacing1.pwn(11957) : error 001: expected token: ";", but found "]"
C:\Users\eigenaar\Contacts\Pictures\Desktop\BETA Server\gamemodes\TorettoRacing1.pwn(11957) : error 029: invalid expression, assumed zero
C:\Users\eigenaar\Contacts\Pictures\Desktop\BETA Server\gamemodes\TorettoRacing1.pwn(11957) : fatal error 107: too many error messages on one line

Compilation aborted.Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase


4 Errors.

Still this errros,

Maybe u can help me with Teamviewer if u have it?


Re: 1 Scripting thing where i need help for. - DaRealShazz - 26.07.2012

Quote:
Originally Posted by UnlimitedFreeroam
View Post
Still this errros,

Maybe u can help me with Teamviewer if u have it?
Check your PM.