[TUT || GMM]Basic Script
- Reacties 37
- Bezichtigingen 20.5k
- Aangemaakt
- Laatste reactie
Populairste bijdragers
Featured Replies
Recent actief 0
- Er zijn hier geen geregistreerde gebruikers aanwezig.
Een betere weg om onze GTA community te volgen. Leer meer.
Een volledig scherm app op het beginscherm inclusief notificaties, badges en meer.
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:
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.
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:
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:
public SetPlayerTeamFromClass(playerid,classid) { if(classid == 0 || classid == 1 || classid == 2) { gTeam[playerid] = TEAM_VAGOS; } else if(classid == 3 || classid == 4 || classid == 5) { gTeam[playerid] = TEAM_BALLAS; } }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:
public SetPlayerToTeamColor(playerid) { if(gTeam[playerid] == TEAM_VAGOS) { SetPlayerColor(playerid,COLOR_YELLOW); // geel } else if(gTeam[playerid] == TEAM_BALLAS) { SetPlayerColor(playerid,COLOR_PINK); // roze/paars } }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.
public OnPlayerRequestClass(playerid, classid) { SetupPlayerForClassSelection(playerid); SetPlayerTeamFromClass(playerid,classid); if(classid == 0 || classid == 1 || classid == 2) { GameTextForPlayer(playerid,"~y~VAGOS",1000,5); } else if(classid == 3 || classid == 4 || classid == 5) { GameTextForPlayer(playerid,”~r~BALLAS",1000,5); } return 1; }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:
public OnPlayerSpawn(playerid) { SetPlayerToTeamColor(playerid); SetPlayerInterior(playerid,0); if(gTeam[playerid] == TEAM_VAGOS) { SetPlayerWorldBounds(playerid,x_max, x_min, y_max, y_min); GameTextForPlayer(playerid, "Kill the ~r~Ballas!" 6000,5); } else if(gTeam[playerid] == TEAM_BALLAS) { SetPlayerWorldBounds(playerid,x_max, x_min, y_max, y_min); GameTextForPlayer(playerid, "Kill the ~y~Vagos!", 6000,5); } return 1; }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
[b]:: Handy Link ::[/b]
- http://stephantom2.st.funpic.de/experiment...a_samp-inc.html