Jump to content

[SA-MP|Script] Leeg script met 1 spawnplek en voertuig


Jarno

Recommended Posts

SA-MP Script



Leeg script met 1 spawnplek en voertuig

Inleiding

Hier is een script dat alleen de basis bevat. 1 speler class en 1 voertuig (BMX). Er zit veel uitleg bij... Heb je vragen? Reageer gewoon :)

Het script

//---------------------------------------------------------
//
// Een leeg script met 1 spawnplek en voertuig
// Door: Jarno a.k.a. Ywa
// ywa@xoti.net
//---------------------------------------------------------


// We includen de benodigde files/functies
#include <a_samp>
#include <core>
#include <float>

#define COLOR_RED 0xAA3333AA // Kleur voor het "Ywa died" bericht.

forward GameModeExitFunc();

new gRoundTime = 0; // Hoe lang duurt de ronde (In seconden)? 0 = Oneindig

//---------------------------------------------------------

main()
{
   // Main functie... Deze functie wordt geladen wanneer de gamemode wordt gestart.

   // We printen nu de hoofd-informatie in de server
   print("\n----------------------------------");
   print("  Script by Jarno (2006)\n");
   print("----------------------------------\n");
}

//---------------------------------------------------------

public OnGameModeInit()
{
 // Functie voor wanneer de gamemode start.

   SetGameModeText("Test script"); // De gamemode die andere zien in de server lijst.

   AddPlayerClass(202,-1404.344,2640.061,55.887,0,0,0,0,0,0,0);
   // 202 = De model id van de class
   // Daarna komen de X, Y en Z positie van de class en daarna hoeveel graden hij gedraait moet worden. Daarna komen de wapens.

   AddStaticVehicle(481,-1422.32,2606.451,55.8,270.0,-1,-1); // Een statische wagen die automatisch respawnt als hij kapot is.
   // AddStaticVehicle(WagenID,PositieX,PositieY,PositieZ,Rotatie,Kleur1,Kleur2);


   if (gRoundTime > 0) {
       // De gamemode moet worden gezet. Op een timer die als het afgelopen is de gamemode quit.
       SetTimer("GameModeExitFunc", gRoundTime, 0);
   }
   return 1;
}

//---------------------------------------------------------

public OnPlayerConnect(playerid)
{
   GameTextForPlayer(playerid,"~w~Test script",6000,5); // Als de speler joint laten we de gamemode 6000 ms zien.
   return 1;
}

//---------------------------------------------------------

SetupPlayerForClassSelection(playerid)
{
   SetPlayerPos(playerid,-1389.554,2641.089,59.79216); // Waar de speler te zetten voor het spawn-menu
   SetPlayerCameraPos(playerid,-1389.554,2631.089,62.79216); // Camera voor het spawn-menu
   SetPlayerCameraLookAt(playerid,-1389.554,2641.089,59.79216); // Waar moet de camera naar toe kijken?
   SetPlayerFacingAngle(playerid, 180.0); // Draai de speler naar 180.0 graden
}

//---------------------------------------------------------

public OnPlayerRequestClass(playerid, classid)
{
   SetupPlayerForClassSelection(playerid);
   return 1;
}

//---------------------------------------------------------

public OnPlayerDeath(playerid, killerid, reason)
{
   new name[MAX_PLAYER_NAME+1];
   new string[256];
   GetPlayerName(playerid, name, sizeof(name));
   format(string, sizeof(string), "*** %s died.", name);
   SendClientMessageToAll(COLOR_RED, string);
   return 1;
}

//---------------------------------------------------------

public GameModeExitFunc() {
   GameModeExit();
}

Met dank aan JGuntherS

Link to comment
Delen op andere websites

  • Reacties 42
  • Created
  • Laatste reactie

Top Posters In This Topic

  • Jarno

    5

  • Puma

    5

  • Azer

    4

  • daylight

    3

Top Posters In This Topic

Posted Images

public OnPlayerDeath(playerid, killerid, reason)
{
new name[MAX_PLAYER_NAME+1];
new string[256];
GetPlayerName(playerid, name, sizeof(name));
format(string, sizeof(string), "*** %s died.", name);
SendClientMessageToAll(COLOR_RED, string);
	return 1;
}

Even een verbeteringetje, de geheugenruimte voor de naamstring hoeft niet langer te zijn dan de maximale lengte van een naam + 1 (de null-terminator). Effecientie telt! ;)

Bewerkt: door JGuntherS
Link to comment
Delen op andere websites

AddPlayerClass(202,-1404.344,2640.061,55.887,0,0,0,0,0,0,0);

AddPlayerClass(Model ID, X spawn, Y spawn, Z spawn, Rotatie spawn, wapen_1, wapen1_ammo,wapen_2, wapen2_ammo,wapen_3,wapen3_ammo)

Er zit dus al degelijk een spawn plaats in ;) . Om "random" spawn plaatsen te plaatsen heb je een andere extra code nodig. Daarvoor moet je maar even de lvdm.pwn doorkijken.

Link to comment
Delen op andere websites

  • 2 maanden later...

Hallo

Misschien een stomme vraag, maar wat doe je met het script, dat moet je dan toch als filter gebuiken?

kopieren in een tekst programma en opslaan als amx, maar dit werkt niet bij mij.

ook niet als ik het in het programma pawno kopier en dan opsla als pwn.

dan in server.cfg game mode veranderen in die naam.

dan start de server geen eens op

Bewerkt: door daylight
Link to comment
Delen op andere websites

Compile hem...

post-2710-1152352699_thumb.jpg

Dan heb je een .amx file, zet die in de map 'gamemodes'

dan je server.cfg veranderen zodat ie die map opstart als je je server opstart,

ingame met rcon inloggen en dan /rcon changemode <jemodnaam> intypen.

met de externe rcon changemode <jemodnaam> intypen.

Bewerkt: door Kraay
Link to comment
Delen op andere websites

hardstikke bedankt voor je hulp, nu heb ik nog een vraag :$

ik heb dit gevonden op internet:

if(strcmp(cmd, "/hyppy3", true) == 0) {

if (IsPlayerInAnyVehicle(playerid)) SetVehiclePos(GetPlayerVehicleID(playerid),-2719.0679,-1685.8645,9999.9999);

else SetPlayerPos(playerid,-2719.0679,-1685.8645,9999.9999);

GameTextForPlayer(playerid,"jee hyppy3",4000,5);

return 1;

}

en dit zet ik in mijn script, maar dan wil hij niet omzetten naar amx, moet er iet s van speciale text, of moet je deze in een bepaald punt in het script zetten?

aub hulp,ps als ik eenmaal iets weet vraag ik het niet weer, ik leer :bier:

{

if(strcmp(cmd, "/tele-ls", true) == 0) {

if (GetPlayerMoney(playerid) > 99){

GivePlayerMoney(playerid,-100);

SetPlayerPos(playerid,2226.4873,-1179.9254,29.7971);

GameTextForPlayer(playerid,"You've been Teleportet to Los Santos.",4000,5);

}

return 1;

}

dit heb ik ook gevonde, zonder eerst de coordinaten te veranderen dacht ik ik probeer het eerst, maar het deed het niet.

wil hij niet omzetten naar amx, moet er iet s van speciale text, of moet je deze in een bepaald punt in het script zetten?

Bewerkt: door daylight
Link to comment
Delen op andere websites

Daylight plaats dits onderaan je code en het zou moeten werken.

public OnPlayerCommandText(playerid, cmdtext[])
{
 if(strcmp(cmdtext, "/hyppy3", true) == 0)
 {
if (IsPlayerInAnyVehicle(playerid))
  SetVehiclePos(GetPlayerVehicleID(playerid),-2719.0679,-1685.8645,9999.9999);
else
  SetPlayerPos(playerid,-2719.0679,-1685.8645,9999.9999);
GameTextForPlayer(playerid,"jee hyppy3",4000,5);
return 1;
 }
 if(strcmp(cmdtext, "/tele-ls", true) == 0)
 {
if (GetPlayerMoney(playerid) > 99)
{
  GivePlayerMoney(playerid,-100);
  SetPlayerPos(playerid,2226.4873,-1179.9254,29.7971);
  GameTextForPlayer(playerid,"You've been Teleportet to Los Santos.",4000,5);
}
else
{
  GameTextForPlayer(playerid,"You don't have enough money.",4000,5);	 
}
return 1;
 }
 return 0;
}

Ik heb bij commando's erin verwerkt en iets kleins toegevoegd in laatste commando (Dat als je niet genoeg geld hebt). De commando's zijn "/tele-ls" en "/hyppy3".

Link to comment
Delen op andere websites

hardstikke bedankt

geweldige lui hier op het forum :Y

helaas heb ik weer een vraag( ik heb nou eenmaal een id in mijn hoofd)

public CampCode(playerid)

{ new Float:X, Float:Y, Float:Z;

GetPlayerPos(playerid, X, Y, Z);

if(X >= -465.0053 && X <= -623.5985 && Y >= -467.1389 && Y <= -562.9210)

{SetPlayerHealth(playerid, -999999);}

SetTimer("CampCode", 1000, 1);

}

hiermee kun je iemand verbieden ergens in een bepaald gebied te komen, teminste als het goed is.

Kan ik dit gebied ook password protected maken, zodat alleen personen met het wachtwoord erbinnen kunnen(of alleen personen die ingelogd zijn)

ps ik hou van jullie :puh:

Link to comment
Delen op andere websites

Jou manier van een gebied restricteren (Raar woord) kan ook simpeler. Wanneer player connect of spawnt:

SetPlayerWorldBounds(playerid,x_max,x_min,y_max,y_min);

In jouw geval:

SetPlayerWorldBounds(playerid,-465.0053,-623.5985,-467.1389,-562.9210);

En als je via commando wilt doen met inloggen etc. zal je met bestanden moeten werken. Maar daar weten niet veel mensen hier volgens mij hoe het werkt. Succes.

Link to comment
Delen op andere websites

  • 4 maanden later...
Hallo,bestaat er ook en programma waarvan je een mapje hebt en je de voertuigen op kunt plaatsen zonder de coordinaten van het spawnen zelf te gaan zoeken.?
debug mode van SA:MP gebruiken. vehicles zijn te spawnen dmv /v id, huidige co-ord saven gaat via /save text. In de map van GTA:SA vind je een bestand genaamd "savedpositions.txt", daarin vind je opgeslagen co-ords.
Link to comment
Delen op andere websites

  • 3 maanden later...
Gast
Dit onderwerp is gesloten.
  • Recent actief   0 leden

    • Er zijn hier geen geregistreerde gebruikers aanwezig.

×
×
  • Create New...