In deze tutorial leg ik in het kort uit wat en hoe je een Team vs Team gamemode maakt. Voor vragen kan je die gewoon hier stellen of mij PM’en. We beginnen!
Ten eerste open je PAWN en ga je naar file ----> new, je krijgt nu een heel blan script te zien. Nu moet je gaan bedenken wat er allemaal in moet en wat voor gamemode je gaat maken. We houden het simpel en nemen een Vagos vs OGF war.
Je zet bovenaan bij het script onder #include <a_samp> “#include <float>” en “#include <core>” . Daarna moet je teams en kleuren gaan definieren. Dit zet je onder de include’s
#define TEAM_VAGOS 1 // Team Vagos
#define TEAM_BALLAS 2 // Team Ballas
#define COLOR_YELLOW 0xFFFF00AA // Kleur Vagos
#define COLOR_PINK 0xFF66FFAA // Kleur Ballas
#define COLOR_GREY 0xAFAFAFAA // Kleur wanneer je inactive bent
static gTeam[MAX_PLAYERS];
Nu moet je wat forwards zetten, dus dingen die sowieso moeten gebeuren. Denk hierbij aan dingen als: Team kleur zetten, speler klaar maken voor setup, uit de gamemode gaan, etcetera. Zet dit dus onder de define’s
forward SetPlayerToTeamColor(playerid); // Speler naar teamkleur zetten
forward SetupPlayerForClassSelection(playerid); // Speler klaarmaken voor setup
forward SetPlayerTeamFromClass(playerid,classid); // Speler in team zetten
forward ExitTheGameMode(); // uit gamemode gaan
Om je script even ordelijk te houden zet je boven elke header even dit:
//-------------------------------------
Doe dat dus onder de forwards en zet onder het lijntje dit neer:
main()
{
print("\n----------------------------------");
print(" Ballas vs Vagos by [QB]Flame\n");
print("----------------------------------\n");
}
Dit is dus de naam van je script. Zet nu weer de lijn eronder en daarna zet je dit eronder:
public OnGameModeInit()
{
SetGameModeText(“Ballas vs Vagos”);
SetWorldTime(6); // tijd in uren.
ShowNameTags(1); // Spelers namen boven health balk aan of uit. Nu aan
ShowPlayerMarkers(1); // Blokjes op radar aan of uit? Nu aan
// Vehicles Vagos ---------- Zet hier de autos van de Vagos neer
// Vehicles Ballas ---------- Zet hier de autos van de Ballas neer
// Vagos Class ------------ Zet hier de classes van de vagos neer waaruit je kan kiezen
// Ballas Class ----------- Ze hier de classes van de ballas neer waaruit je kan kiezen
return 1;
}
Oke, hier moet je eindelijk zelf is wat doen. Ik zal de codes + uitleg geven voor de classes en autos.
Hiermee moet je de OnGameModeInit() toch wel aardig mee kunnen opvullen. We gaan verder! Nu gaan we bepalen wat er gebeurt als er een speler in het spel komt. Zet die --- lijn er weer en zet dit eronder:
public OnPlayerConnect(playerid)
{
SetPlayerColor(playerid,COLOR_GREY); // Kleur
GameTextForPlayer(playerid,"~r~Ballas ~w~vs ~y~Vagos!",2000,5); // Text
return 1;
}
Dit krijgt de player dus te zien wanneer hij joint. ~r~ staat voor rood, ~w~ voor wit en ~y~ voor geel.
Nu gaan we de speler klaarmaken voor selectie! Dus het spawn screen wat je te zien krijgt. Zet de ---- lijn er weer neer en dan zet je dit eronder:
public SetupPlayerForClassSelection(playerid)
{
SetPlayerInterior(playerid,11);
SetPlayerPos(playerid,508.7362,-87.4335,998.9609);
SetPlayerCameraPos(playerid,508.7362,-83.4335,998.9609);
SetPlayerCameraLookAt(playerid,508.7362,-87.4335,998.9609);
SetPlayerFacingAngle(playerid,0.0);
}
Ik denk niet dat ik dit hoef uit te leggen, want je kan aan de commands al zien wat het doet. We gaan weer verder en deze keer zetten we de “SetPlayerTeamFromClass” klaar. Zet de ---- lijn erboven en dan dit eronder:
Nu moet je even goed op letten, want anders kan je een groot deel van je code verpesten. Het belangrijkste hier is dit regeltje: “If(classid == 0 || classid == 1 || classid == 2) {“
Het Classid nummer hangt samen met het AddPlayerClass commando. Je MOET dus eerst de 3 vagos classes zetten (daarom staat Vagos ook bovenaan) en daarna pas de 3 Ballas classes. Dan pas gaat het goed. Plaats hieronder de --- lijn.
Nu gaan we de speler naar zijn team kleur zetten. Zet onder de --- lijn dit:
Hij kijkt dus eerst of de player de vagos heeft gekozen en zoja zet hij de kleur naar geel, en als de player de ballas heeft gekozen (else if) zet hij de kleur naar paars/roze. Zet de ---- lijn hieronder. Nu gaan we erbij zetten wat men ziet tijdens het class zetten.
De functie “SetplayerWorldBounds” is bedoeld om te zorgen dat men niet naar een ander gebied gaat. Zet hieronder de ---- lijn en zet dan dit eronder:
public ExitTheGameMode()
{
GameModeExit();
}
En dan de finishing touch!
public OnPlayerDeath(playerid, killerid, reason)
{
new deathstr[256];
new whodiedname[MAX_PLAYER_NAME+1];
new whokilledname[MAX_PLAYER_NAME+1];
new deathreasonstr[256];
GetPlayerName(playerid,whodiedname,MAX_PLAYER_NAME);
GetWeaponName(reason,deathreasonstr,255);
if(killerid == INVALID_PLAYER_ID) {
if(strlen(deathreasonstr)) {
format(deathstr,256,"%s died (%s)",whodiedname,deathreasonstr);
} else {
format(deathstr,256,"%s died",whodiedname);
}
SendClientMessageToAll(OBJECTIVE_COLOR, deathstr);
} else {
GetPlayerName(killerid,whokilledname,MAX_PLAYER_NAME);
if(gTeam[killerid] != gTeam[playerid]) {
// Valid kill
if(strlen(deathreasonstr)) {
format(deathstr,256,"%s was killed by %s (%s)",whodiedname,whokilledname,deathreasonstr);
} else {
format(deathstr,256,"%s was killed by %s",whodiedname,whokilledname);
}
SendClientMessageToAll(OBJECTIVE_COLOR, deathstr);
SetPlayerScore(killerid,GetPlayerScore(killerid)+1);
}
else {
// Team kill
format(deathstr,256,"%s killed team-mate %s (%s)",whokilledname,whodiedname,deathreasonstr);
SendClientMessageToAll(OBJECTIVE_COLOR, deathstr);
}
}
return 1;
}
Credits go to kyeman’s script for this piece of code.
Dit was dus mijn tutorial, ik hoop dat je er wat aan hebt, en voor vragen kan je altijd hier posten, mij PM’en of naar het SA-MP Scripting IRC kannaal gaan. Ik weet niet of het ingame ook werkt, ik ga er wel vanuit, maar als iemand een full script heeft, kan die dan even kijken of het nu werkt ?
Tevens kunnen codes een beetje verpest zijn door de
SA-MP Gamemode tut
Team vs Team script
In deze tutorial leg ik in het kort uit wat en hoe je een Team vs Team gamemode maakt. Voor vragen kan je die gewoon hier stellen of mij PM’en. We beginnen!
Ten eerste open je PAWN en ga je naar file ----> new, je krijgt nu een heel blan script te zien. Nu moet je gaan bedenken wat er allemaal in moet en wat voor gamemode je gaat maken. We houden het simpel en nemen een Vagos vs OGF war.
Je zet bovenaan bij het script onder #include <a_samp> “#include <float>” en “#include <core>” . Daarna moet je teams en kleuren gaan definieren. Dit zet je onder de include’s
Nu moet je wat forwards zetten, dus dingen die sowieso moeten gebeuren. Denk hierbij aan dingen als: Team kleur zetten, speler klaar maken voor setup, uit de gamemode gaan, etcetera. Zet dit dus onder de define’s
Om je script even ordelijk te houden zet je boven elke header even dit:
Doe dat dus onder de forwards en zet onder het lijntje dit neer:
Dit is dus de naam van je script. Zet nu weer de lijn eronder en daarna zet je dit eronder:
Oke, hier moet je eindelijk zelf is wat doen. Ik zal de codes + uitleg geven voor de classes en autos.
ID = Ped ID, zie ped.ide
X + Y +Z = De coordinaten. Gebruik SA Place Manager
Rotatie = welke kant kijk je op als je spawnt
Wapen1/2/3 = Het wapen ID van je wapen
Wapen1/2/3_ammo = ammo van wapen
Voorbeeld:
Nu die voor autos:
Voorbeeld:
Hiermee moet je de OnGameModeInit() toch wel aardig mee kunnen opvullen. We gaan verder! Nu gaan we bepalen wat er gebeurt als er een speler in het spel komt. Zet die --- lijn er weer en zet dit eronder:
Dit krijgt de player dus te zien wanneer hij joint. ~r~ staat voor rood, ~w~ voor wit en ~y~ voor geel.
Nu gaan we de speler klaarmaken voor selectie! Dus het spawn screen wat je te zien krijgt. Zet de ---- lijn er weer neer en dan zet je dit eronder:
Ik denk niet dat ik dit hoef uit te leggen, want je kan aan de commands al zien wat het doet. We gaan weer verder en deze keer zetten we de “SetPlayerTeamFromClass” klaar. Zet de ---- lijn erboven en dan dit eronder:
Nu moet je even goed op letten, want anders kan je een groot deel van je code verpesten. Het belangrijkste hier is dit regeltje: “If(classid == 0 || classid == 1 || classid == 2) {“
Het Classid nummer hangt samen met het AddPlayerClass commando. Je MOET dus eerst de 3 vagos classes zetten (daarom staat Vagos ook bovenaan) en daarna pas de 3 Ballas classes. Dan pas gaat het goed. Plaats hieronder de --- lijn.
Nu gaan we de speler naar zijn team kleur zetten. Zet onder de --- lijn dit:
Hij kijkt dus eerst of de player de vagos heeft gekozen en zoja zet hij de kleur naar geel, en als de player de ballas heeft gekozen (else if) zet hij de kleur naar paars/roze. Zet de ---- lijn hieronder. Nu gaan we erbij zetten wat men ziet tijdens het class zetten.
We naderen het einde! Zet opnieuw de --- lijn hieronder. Nu gaan we erbij zetten wat er gebeurt als een player spawnt. Zet dit onder je lijn:
De functie “SetplayerWorldBounds” is bedoeld om te zorgen dat men niet naar een ander gebied gaat. Zet hieronder de ---- lijn en zet dan dit eronder:
En dan de finishing touch!
Credits go to kyeman’s script for this piece of code.
Dit was dus mijn tutorial, ik hoop dat je er wat aan hebt, en voor vragen kan je altijd hier posten, mij PM’en of naar het SA-MP Scripting IRC kannaal gaan. Ik weet niet of het ingame ook werkt, ik ga er wel vanuit, maar als iemand een full script heeft, kan die dan even kijken of het nu werkt
?
Tevens kunnen codes een beetje verpest zijn door de
[b]:: Handy Link ::[/b]
- http://stephantom2.st.funpic.de/experiment...a_samp-inc.html