Morph1 Geplaatst: 26 augustus 2009 Rapport Geplaatst: 26 augustus 2009 (bewerkt) heey. heeft iemand een code waarmee als spelers in een bepaald gebied doodgaan dat ze op een andere spawnplek komen te staan dan als je buiten dat gebied bent. waarschijnlijk iets van : bovenaan new area1 bij ongamemodeinit area1 = createzone(blablabla x y z enz enz) en dan verderop if[playerid] == area1 { SetPlayerClass(x,y,z enz enz blabla) } ik denk dat het zoiets moet zijn maar dat kan ook nog anders kan iemand helpen (of zeggen als het onmogelijk is) bedankt Bewerkt: 26 augustus 2009 door Morph1 Reageren
David22 Geplaatst: 26 augustus 2009 Rapport Geplaatst: 26 augustus 2009 (bewerkt) Hmz, dan moet je toch zoiets maken: new DidPlayerDieInArea[MAX_PLAYERS]; public OnPlayerConnect(playerid) { DidPlayerDieInArea[playerid] = 0; public OnPlayerDeath(playerid, killerid, reason) { if(IsPlayerInArea(minx, maxx, miny, maxy)) { DidPlayerDieInArea[playerid] = 1; } } public OnPlayerSpawn(playerid) { if(DidPlayerDieInArea[playerid]) { SetPlayerPos(...); DidPlayerDieInArea[playerid] = 0; } } Dit is basic het idee, wil je meer area's toevoegen kan je natuurlijk de array nog een extra dimensie geven. Meld het ever als het is gelukt (of als dat juist niet het geval is ) Bewerkt: 26 augustus 2009 door David22 Reageren
Crusher!! Geplaatst: 26 augustus 2009 Rapport Geplaatst: 26 augustus 2009 sandras tut area's klein beetje kunne scripten en dit lezen http://www.gtaforum.nl/index.php?showtopic=62520 als je dat nog niet kan http://www.gtaforum.nl/index.php?showtopic=67105 of lees gewoon de PMT list klik > PMT list < klik Reageren
Crusher!! Geplaatst: 26 augustus 2009 Rapport Geplaatst: 26 augustus 2009 sorry david ma toen ik keek was er nog niks.. Reageren
Morph1 Geplaatst: 26 augustus 2009 Auteur Rapport Geplaatst: 26 augustus 2009 (bewerkt) sandras tut area's klein beetje kunne scripten en dit lezen http://www.gtaforum.nl/index.php?showtopic=62520 als je dat nog niet kan http://www.gtaforum.nl/index.php?showtopic=67105 of lees gewoon de PMT list klik > PMT list < klik ik kan wel scripen, doe het al meer dan een half jaar, maar wist alleen dat (kleine) dingetje niet, en die halve PMT list kan ik al uit me hoofd XD EDIT: @david22 ik zal het proberen, ik laat het wel weten of het is gelukt Bewerkt: 26 augustus 2009 door Morph1 Reageren
Big Boss Geplaatst: 26 augustus 2009 Rapport Geplaatst: 26 augustus 2009 Hmm, volgens mij kan je dan nog beter zoiets maken: public OnPlayerDeath(playerid, killerid) { if(IsPlayerInArea(playerid, minx, miny, maxx, maxy)) { SetSpawnInfo(playerid, team, skin, x, y, z, a, w1, w1_a, w2, w2_a, w3, w3_a); } return 1; } Reageren
Morph1 Geplaatst: 26 augustus 2009 Auteur Rapport Geplaatst: 26 augustus 2009 (bewerkt) Hmm, volgens mij kan je dan nog beter zoiets maken: public OnPlayerDeath(playerid, killerid) { if(IsPlayerInArea(playerid, minx, miny, maxx, maxy)) { SetSpawnInfo(playerid, team, skin, x, y, z, a, w1, w1_a, w2, w2_a, w3, w3_a); } return 1; } ow w8 effe dat wat ik net zij klopt niet xD, waarschijnlijk moet ik er dan ook nog een if[playerid] == TEAM ARMY enne dat van david ging volgens mij ook niet echt werken XD had wat errors enz maarja Bewerkt: 26 augustus 2009 door Morph1 Reageren
Morph1 Geplaatst: 27 augustus 2009 Auteur Rapport Geplaatst: 27 augustus 2009 naja dit word zelf wat experimenteren xD als iemand het nog weet dat alleen 1 team het heeft en dat de team en skinid hetzelfde blijven, wil diegene me dan even helpen? bedankt Reageren
Crusher!! Geplaatst: 28 augustus 2009 Rapport Geplaatst: 28 augustus 2009 (bewerkt) lol, dit dan: #define koek 1 #define koffie 2 #define taart 3 #define pizza 4 AddPlayerClassEx(id, koek ,x,y,z, wapens....); AddPlayerClassEx(id, koffie x,y,z, wapens....); AddPlayerClassEx(id, taart x,y,z, wapens....); AddPlayerClassEx(id, pizza x,y,z, wapens....); OnPlayerUpdate(playerid) { if (IsPlayerInArea(playerid,x,y,z); { if (GetPlayerTeam(playerid) == koek) { // code hier } else if (GetPlayerTeam(playerid) == koffie) { // code hier } else if (GetPlayerTeam(playerid) == taart) { // code hier } else if (GetPlayerTeam(playerid) == pizza) { // code hier } else { // als de speler niet in een team zit. wat flik je um dan :P } } // Thnx GtaF voor de goede uitlijning :s Bewerkt: 29 augustus 2009 door Crusher!! Reageren
Morph1 Geplaatst: 29 augustus 2009 Auteur Rapport Geplaatst: 29 augustus 2009 lol, dit dan: #define poep 1 #define plas 2 #define taart 3 #define pizza 4 AddPlayerClassEx(id, koek ,x,y,z, wapens....); AddPlayerClassEx(id, koffie x,y,z, wapens....); AddPlayerClassEx(id, taart x,y,z, wapens....); AddPlayerClassEx(id, pizza x,y,z, wapens....); OnPlayerUpdate(playerid) { if (IsPlayerInArea(playerid,x,y,z); { if (GetPlayerTeam(playerid) == koek) { // code hier } else if (GetPlayerTeam(playerid) == koffie) { // code hier } else if (GetPlayerTeam(playerid) == taart) { // code hier } else if (GetPlayerTeam(playerid) == pizza) { // code hier } else { // als de speler niet in een team zit. wat flik je um dan :P } } // Thnx GtaF voor de goede uitlijning :s haha, leuke namen, ik zal kijken of het werkt Reageren
Morph1 Geplaatst: 29 augustus 2009 Auteur Rapport Geplaatst: 29 augustus 2009 oke, ik heb nog 3 puntjes: 1) idd slechte uitlijning xD 2) je ben een haakje vergeten onderaan 3) ik heb 1 error, undefined simbol "IsPlayerInArea" hier het stukje van mijn script : public OnPlayerUpdate(playerid) { if (IsPlayerInArea(playerid,2966.18,2662.556,-2931.147,-3748.598) { if (GetPlayerTeam(playerid) == TEAM_ARMY) { AddPlayerClassEx(1,TEAM_ARMY,2691.6938,-4523.1011,28.4478,268.496928,31,500,31,500,24,500); // Extra spawnplace } } } ging er maar vanuit dat OnPlayerUpdate een callback was dus... moet ik erboven nog iets zetten met dat IsPlayerInArea Reageren
Big Boss Geplaatst: 29 augustus 2009 Rapport Geplaatst: 29 augustus 2009 stock IsPlayerInArea(playerid, Float:minx, Float:miny, Float:maxx, Float:maxy) { new Float:x, Float:y, Float:z; GetPlayerPos(playerid, x, y, z); if (x > minx && x < maxx && y > miny && y < maxy) return 1; return 0; } Dit voeg je ergens toe in je script, het liefst onderaan en niet in een andere callback. Tevens raad ik aan om dit op een timer te zetten, omdat OnPlayerUpdate maar liefst 30 keer per seconde opgeroepen wordt. Reageren
Morph1 Geplaatst: 29 augustus 2009 Auteur Rapport Geplaatst: 29 augustus 2009 stock IsPlayerInArea(playerid, Float:minx, Float:miny, Float:maxx, Float:maxy) { new Float:x, Float:y, Float:z; GetPlayerPos(playerid, x, y, z); if (x > minx && x < maxx && y > miny && y < maxy) return 1; return 0; } Dit voeg je ergens toe in je script, het liefst onderaan en niet in een andere callback. Tevens raad ik aan om dit op een timer te zetten, omdat OnPlayerUpdate maar liefst 30 keer per seconde opgeroepen wordt. moet dit i.p.v. dat wat ik heb of gewoon eronder. en als je het OnPlayerUpdate niet op een timer zet, word de mode dan langzaam, en hoe moet je het anders op een timer zetten Reageren
.Timothy Geplaatst: 30 augustus 2009 Rapport Geplaatst: 30 augustus 2009 Die stock-code moet je zoals Big Boss zegt gewoon ergens (het liefst onderaan, buiten je callbacks) in je script plakken. Een timer maak je zo:Plaats bovenaan je script, onder de defines een forward regel met de naam van je timer en de public waarin je straks de code oproept Ik gebruik in dit voorbeeld als naam 'Voorbeeld', logisch. forward voorbeeld(); Plaats nu bij de callback 'OnGameModeInit' de code waarin je de timer aanmaakt Klik hier (SA-mp wiki) voor uitleg over de functie SetTimer. public OnGameModeInit( ) { SetTimer("voorbeeld",1000,false); } Maak nu de public van de timer aan, waarin je een actie uitvoert De public heet weer hetzelfde als de naam van de timer en van de forward-regel, 'voorbeeld' dus. public voorbeeld() { //voer hier je code uit } Reageren
Morph1 Geplaatst: 30 augustus 2009 Auteur Rapport Geplaatst: 30 augustus 2009 Die stock-code moet je zoals Big Boss zegt gewoon ergens (het liefst onderaan, buiten je callbacks) in je script plakken. Een timer maak je zo:Plaats bovenaan je script, onder de defines een forward regel met de naam van je timer en de public waarin je straks de code oproept Ik gebruik in dit voorbeeld als naam 'Voorbeeld', logisch. forward voorbeeld(); Plaats nu bij de callback 'OnGameModeInit' de code waarin je de timer aanmaakt Klik hier (SA-mp wiki) voor uitleg over de functie SetTimer. public OnGameModeInit( ) { SetTimer("voorbeeld",1000,false); } Maak nu de public van de timer aan, waarin je een actie uitvoert De public heet weer hetzelfde als de naam van de timer en van de forward-regel, 'voorbeeld' dus. public voorbeeld() { //voer hier je code uit } jah dat weet ik wel, maar hoe moet je van de public OnPlayerUpdate een timer maken, en is dat echt nodig voor een gamemode van 10 minuten??? Reageren
Recommended Posts
Een reactie plaatsen
Je kan nu een reactie plaatsen en pas achteraf registreren. Als je al lid bent, log eerst in om met je eigen account een reactie te plaatsen.