Wie kann man eig für so ein Race System Checkpoints ingame erstellen?
Checkpoints Ingame erstellen
- Weihnachtsmann
- Geschlossen
- Erledigt
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!
Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
-
-
-
Ja aber ich will ingame alles erstellen können, mit nem Dialog or whatever und das die Checkpoints erst erscheinen wenn ich das Race gestartet habe -
Ich nehme mal an, du meinst selber zB an verschiedenen Posis /cp machen, und dann letztendlich /racestart und alle tauchen auf?
-
Und wo liegt jetzt das Problem?
Deine Position in einer Variable speichern. Und dann das Race in einer Ini mit den Ganzen Positionen speichern. -
Na, dann speicherst du das ganze eben ab, dann rufst du es ab, wenn das race starter
-
new Float:x,Float:y,Float:z,Float:size;
SetPlayerCheckpoint(playerid,x,y,z,size); -
Ich nehme mal an, du meinst selber zB an verschiedenen Posis /cp machen, und dann letztendlich /racestart und alle tauchen auf?
Joap, eine Frage wie speichere ich sowas in eine .ini habe damit nie gearbeiitet -
dini_SetInt
-
new Float:x,Float:y,Float:z,Float:size;
SetPlayerCheckpoint(playerid,x,y,z,size);Setzt er dann direkt jeden gespeicherten Checkpoint ohne Schleifen?
-
dini_SetInt
Nicht dini_SetFloat? -
dini_SetFloat?
Stimmt.. ist ja eine Float Grad erst von der Arbeit gekommen
Zitat von »K3V1N«
new Float:x,Float:y,Float:z,Float:size;
SetPlayerCheckpoint(playerid,x,y,z,size);
Setzt er dann direkt jeden gespeicherten Checkpoint ohne Schleifen?Das war so gemeint zum Befehl wenn er die erstellen will
Natürlich brauch er eine schleife -
Wat für neh Schleife? also ich weiß aber wie soll man die da benutzen? xd
-
Da fehlt aber noch die GetPlayerPos oder woher soll er wissen wo x,y,z ist
-
Habs bis jetzt so
#include <a_samp>
#include <ocmd>///////////////////////////////////
#define DIALOG_EVENT 100
new Float:EventX,Float:EventY,Float:EventZ,EventAktiv,EventSpieler[MAX_PLAYERS],Float:CPX,Float:CPY,Float:CPZ,Float:CPSIZE;
///////////////////////////////////
#define GELB 0xFFDC00FF
///////////////////////////////////
public OnFilterScriptInit()
{
print("\n--------------------------------------");
print(" Blank Filterscript by your name here");
print("--------------------------------------\n");
return 1;
}
///////////////////////////////////
public OnFilterScriptExit()
{
return 1;
}
///////////////////////////////////
public OnPlayerConnect(playerid)
{
EventSpieler[playerid] = 0;
return 1;
}
///////////////////////////////////
public OnPlayerSpawn(playerid)
{
return 1;
}
///////////////////////////////////
public OnPlayerDisconnect(playerid, reason)
{
return 1;
}
///////////////////////////////////
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
switch(dialogid)
{
case DIALOG_EVENT:
{
if(response)
{
switch(listitem)
{
case 0:
{
EventAktiv = 1;
GetPlayerPos(playerid,EventX,EventY,EventZ);
SendClientMessageToAll(GELB,"[EVENT] Es wurde ein Event erstellt! ((/Eventport))");
}
case 1:
{
EventAktiv = 0;
SendClientMessageToAll(GELB,"[EVENT] Das Event wurde beendet!");
EventX = 0,EventY = 0,EventZ = 0;
}
case 2:
{
for(new i=0;i<MAX_PLAYERS;i++)
{
if(EventSpieler[i] == 1)
{
SpawnPlayer(i);
SendClientMessage(playerid,GELB,"[EVENT] Du wurdest gespawnt!");
EventSpieler[i] = 0;
}
}
}
case 3:
{
GetPlayerPos(playerid,CPX,CPY,CPZ);
dini_SetFloat
}
}
}
}
}
return 1;
}
////////////////////////////////////
stock PlayerName(playerid)
{
new namex[MAX_PLAYER_NAME];
GetPlayerName(playerid,namex,sizeof(namex));
return namex;
}
////////////////////////////////////
ocmd:makeevent(playerid,params[])
{
ShowPlayerDialog(playerid,DIALOG_EVENT,DIALOG_STYLE_LIST,"EventMananger","Event Erstellen\nEvent löschen\nEventSpieler respawn\nCheckpoints erstellen","Auswählen","Abbrechen");
return 1;
}
ocmd:eventport(playerid,params[])
{
if(EventAktiv == 0) return SendClientMessage(playerid,GELB,"[EVENT] Derzeit ist kein Event aktiv!");
SetPlayerPos(playerid,EventX,EventY,EventZ);
SendClientMessage(playerid,GELB,"[EVEN] Du hast dich zum Event teleportiert!");
return 1;
} -
Setzt er dann direkt jeden gespeicherten Checkpoint ohne Schleifen?
Du speicherst die ja .. also du willst ja nicht jeden cp einzelnd erstellen ..for(new a=0; a<sizeof(cps); a++)
{
SetPlayerCheckpoint(...);
}Edit:
enum cps
{
Float:x,
Float:y,
Float:z,
Float:size
}for(new a=0; a<sizeof(cps); a++)
{
SetPlayerCheckpoint(playerid,cps[a][0],cps[a][1],cps[a][2],cps[a][3]);
} -
breadfish.de
Hat das Thema geschlossen.