UserPlayerPedAnims();
Unter OnGameModeInit.
UserPlayerPedAnims();
Unter OnGameModeInit.
Nicht zwingend. Du kannst sie überall reinschreiben.
Frage 1:
gTeam
Frage 2:
if(strcmp("/heal", true) == 0)
{
if(IsPlayerAdmin(playerid))
{
SetPlayerHealth(playerid, 100.0);
}
return 1;
}
Frage 3:
Suchtfunktion Leute -.-
So, den Code fürs GF hab ich:
Als erstes das zu den anderen Forwards:
forward IsAShamal(carid);
Dann irgendwo ins Script das hier:
public IsAShamal(carid)
{
if((carid == Nummer) || (carid == Nummer) || (carid == Nummer)) // Bei Belieben einfach erweitern
{
return 1;
}
return 0;
}
Und dann noch das unter "public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)":
if(IsAShamal(vehicleid) && ispassenger)
{
SetPlayerPos(playerid, 0.0, 0.0, 0.0);
SetPlayerInterior(playerid, 1);
}
Edit: Ach, do it yourself ist sowieso besser
Also:
Standartmäßig ist es NICHT so dass man per Drücken von "G" in das Interior einer Mission aus dem Singleplayer Modus kommt.
Ich weiß leider gerade selber nicht wie man einstellen kann dass man in jenes Interior teleportiert wird. Ich werde mir einen Code überlegen und dann ggf. hier veröffentlichen.
Benutz CreatePickup, dann müsste es einwandfrei funktionieren.
Saubere Arbeit FoX.
Für mich ist es aber nix, ich erstell mir die Gates lieber selber, aber trotzdem, hört sich recht nützlich an und sieht auch so aus.
MfG
Also:
Gespeichert werden die Coords in einer "savedpositions.txt" Datei im GTA SA Verzeichnis.
Debug Mode:
"/v [CarID]" zum Carspawnen.
"/vsel" um eine Car Auswahl aufzurufen.
"/player_skin [SkinID]" um den Skin zu ändern.
"/interior" um nachzusehen in welchem Interior du dich befindest.
Bei den for-player-Schleifen würde ich statt "MAX_PLAYERS", einfach "GetMaxPlayers()" benutzen.
Außerdem würde ich auf dcmd bzw. sscanf umsteigen. Verbraucht viel weniger Ressourcen.
So, ich erbarme mich.
Zu 1.
Einfach das hinzufügen:
if(GetPlayerMoney(playerid) >= XXX) // XX = Geld
Zu 2.
Das unter OnGameModeInit()
UsePlayerPedAnims(1);
Du könntest ja mal versuchen alle Texte zu kopieren. Have Fun.
Zuerst das zu den anderen forwards:
forward PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z);
Dann das ganz unten ins Script:
PlayerToPoint(Float:radius, playerid, Float:X, Float:Y, Float:Z)
{
new Float:oldpos[3], Float:temppos[3];
GetPlayerPos(playerid, oldpos[0], oldpos[1], oldpos[2]);
temppos[0] = (oldpos[0] -X);
temppos[1] = (oldpos[1] -Y);
temppos[2] = (oldpos[2] -Z);
if(((temppos[0] < radius) && (temppos[0] > -radius)) && ((temppos[1] < radius) && (temppos[1] > -radius)) && ((temppos[2] < radius) && (temppos[2] > -radius)))
{
return true;
}
return false;
}
Dann für den eigentlichen Port:
if(PlayerToPoint(Radius, playerid, X, Y, Z)
{
SetPlayerPos(playerid, X, Y, Z);
return 1;
}
Ungetestet³
public OnPlayerSpawn
{
if(gTeam[playerid] == Cops) // Beispiel
{
for(new i = 0, i < MAX_PLAYERS;i++)
{
if(gTeam[i] == Cops) // Beispiel²
{
SetPlayerColor(playerid, 0xFF0000FF) // Beispiel | Rot
return 1;
}
}
return 0;
}
LoL.
Dann bekommt man nur die Meldung dass XXX ein Taxi braucht.
Hier eine Version mit Checkpoint und Message nur an die Taxifahrer.
if(strcmp(cmd, "/taxi", true) == 0)
{
new Float:px, Float:py, Float:pz;
new pname[MAX_PLAYER_NAME];
new string[128];
GetPlayerPos(playerid, px, py, pz);
GetPlayerName(playerid, pname, sizeof(pname));
format(string, sizeof(string), "%s hat ein Taxi gerufen.", pname);
SendClientMessage(playerid, 0xFF0000FF, "Du hast ein Taxi bestellt. Warte bitte einen Moment.");
}
for(new i = 0, i < MAX_PLAYERS;i++);
{
if(gTeam[i] == Taxi) // Wenn du die Fraktion Taxifahrer per gTeam erstellt hast.
{
SendClientMessage(i, 0xFF0000FF, string);
SetPlayerCheckpoint(i, px, py, pz, 5);
}
return 1;
}
Bin mir ned sicher obs ganz stimmt. Habs ausm Stegreif geschrieben.
Also:
Fürs schnelle kopieren von irgendetwas: Shift+Pfeiltaste links/rechts um etwas auszuwählen. STRG+C um es in die Zwischenablage zu kopieren und STRG+V um es einzufügen
Mhm, glaub ned dass man den irgendwie ändern kann, aber du könntest ja mal versuchen per Timer das Vehicle Health jede Sekunde wieder auf 250 zu stellen. Weiß aber ned obs funktioniert.
Jop. Die bleibt gleich.
Stells einfach zu den anderen Timern ganz unten.
OnGameModeInit.
Geht zwar auch unter OnPlayerConnect, führt aber dann dazu dass bei jedem User der connectet der Timer gestartet wird. Dann bei 20 Usern sind 20 Timer aktiv, Serverbelastung=Hoch.