Also wenn der Spieler irgendwo ist, findet in der Nähe eine Explosion statt?
Genau ![]()
Also wenn der Spieler irgendwo ist, findet in der Nähe eine Explosion statt?
Genau ![]()
Also das ein Paar Explosionen automatisch Hochgehen, ohne das der Spieler betroffen ist
Dann mach einfach sowas:
//z.B. unter OnPlayerSpawn
SetTimerEx("explode",1000,0,"i",playerid);
forward explode(playerid);
public explode(playerid) {
new Float:x,Float:y,Float:z;
GetPlayerPos(playerid,x,y,z);
return CreateExplosion(x+random(75)+25, y+random(75)+25, z, 12, 10.0); //würde den Spieler zum explodieren bringen xD
}
Dann finde zufällig um den Spieler herum Explosionen statt ![]()
arum geht das Tor bitte nicht auf?
Achte auf die returns!
Schreib es so:
CMD:auf(playerid)
{
if(IsPlayerInRangeOfPoint(playerid, 10.0, 244.11, 72.45, 1002.00))
{
if(Spieler[playerid][pFraktion] != 1)return SendClientMessage(playerid,-1,"Sie dürfen das Tor nicht öffnen!");
MoveDynamicObject(LSPDObj[1], 247.5598, 72.4479, 1002.0016, 3);
SetTimer("LSPDTor2",5000,0);
printf("Tor 2-2");
}
return 1;
}
mfg. ![]()
Guten Morgen euch allen.
Mir war mal langweilig und mir ist aufgefallen, dass die Funktion TextDrawGetText nicht existiert, also habe ich sie mal kurz implementiert.
Funktionen:
native TextDrawGetText(Text:id);
native PlayerTextDrawGetText(PlayerText:id);
Beispiel:
Obwohl eigentlich der Name schon sagt was diese Funktion macht, hier nochmal ein Beispiel:
new Text:x = TextDrawCreate(50.0,666.0,"Hallo");
printf("Im TextDraw mit der ID %d steht: %s",_:x,TextDrawGetText(x));
/*
Output:
Im TextDraw mit der ID 0 steht: Hallo
*/
Im Filterscript nutzbar?
Ja, auch im Filterscript ist die Include nutzbar, aber bitte gebt das an:
#define FILTERSCRIPT
#include <text>
Download:
Source-Code: Pastebin
Direkter-Download: MediaFire
Schlusswort:
Hoffe ein paar Leute können es gebrauchen ![]()
Habe alle Funktionen getestet gehabt und keine Fehler sind aufgetreten, falls ihr aber was findet, gebt mir bescheid ![]()
Freue mich natürlich über jede Art von Kommentar.
mfg. ![]()
Kann man per Timer Explosionen erstellen mit einem eigenen Public?
Natürlich ![]()
//z.B. unter OnPlayerSpawn
SetTimerEx("explode",1000,0,"i",playerid);
forward explode(playerid);
public explode(playerid) {
new Float:x,Float:y,Float:z;
GetPlayerPos(playerid,x,y,z);
return CreateExplosion(x, y, z, 12, 10.0); //würde den Spieler zum explodieren bringen xD
}
mfg. ![]()
Nun, wenn du AddPlayerClass nutzt, dann returnt das eine Klasse.
#define TEAM_COP 0
#define TEAM_BALLAS 1
#define TEAM_GROVE 2
#define MAX_TEAMS 3
new team[MAX_TEAMS];
//Unter OnGameModeInit
team[TEAM_COP] = AddPlayerClass(280,...);
AddPlayerClass(281,...);
AddPlayerClass(282,...);
AddPlayerClass(283,...);
AddPlayerClass(284,...);
team[TEAM_BALLAS] = AddPlayerClass(102,...);
AddPlayerClass(103,...);
AddPlayerClass(104,...);
team[TEAM_GROVE] = AddPlayerClass(105,...);
AddPlayerClass(106,...);
AddPlayerClass(107,...);
public OnPlayerRequestClass(playerid,classid)
{
if(classid < team[TEAM_BALLAS])
{
TextDrawShowForPlayer(playerid, team_cop); //Hier zum beispiel wäre er Cop
}
else if(classid < team[TEAM_GROVE])
{
TextDrawShowForPlayer(playerid, team_Ballas); //Hier zum beispiel wäre er Ballas
}
else
{
TextDrawShowForPlayer(playerid, team_Grove); //Hier zum beispiel wäre er Grove
}
return 1;
}
Hoffe das hilft dir ein wenig ![]()
mfg. ![]()
Gangfight[i][minX]
Oben verwendest du aber anstatt i, gGangfightID ![]()
Schreibe das also mal so:
GangfightZone[i] = GangZoneCreate(Gangfight[gGangfightID][minX],Gangfight[gGangfightID][minY],Gangfight[gGangfightID][maxX],Gangfight[gGangfightID][maxY]);
mfg. ![]()
bis auf eben diesen Marker
Meinst du einen Roten Marker auf der Map? ![]()
Dann schau dir diese Funktion mal an: SetPlayerMarkerForPlayer
Damit kannst du soviele Spieler wie du willst auf der Map anzeigen lassen ![]()
mfg. ![]()
Les dir mal den Thread durch: http://gta-sa-mp.de/forum/3-sa…utos-was-drauf-schreiben/
(Google ist schon was tolles)
mfg. ![]()
Nutze bitte mysqli ![]()
Schreibe es mal so:
$mysqli = new mysqli("localhost", "my_user", "my_password", "tabelle");
/* Verbindung prüfen */
if ($mysqli->connect_errno) {
printf("Verbindung fehlgeschlagen: %s\n", $mysqli->connect_error);
exit();
}
$result = $mysqli->query("SELECT * FROM user WHERE Name='".mysql_real_escape_string($_SESSION['Benutzername'])."'");
while($row = $result->fetch_array(MYSQLI_ASSOC)) {
echo '<img src="images/skins/Skin_'.$row["Skin"].'.jpg">';
}
Alles anzeigen
mfg. ![]()
was können die noch?
Na, das ist doch wohl selbsterklärend.
Der Compile Button, der compilet eigentlich nur deinen Source-Code.
Der Compile & Run button, der compilet den Code und führt diesen anschließend aus...
mfg. ![]()
meine auch pikachu vielen dank nur weiß es vielleicht auch jemand sicher?
Solange du Pawno nur für SA:MP nutzt, machen beide buttons das selbe ![]()
mfg. ![]()
oder ist das dann wirklich getrennt?
Das ist wirklich getrennt ![]()
gibt es die Möglichkeit Objekte in einer anderen virtuellen Welt zu erstellen außer 0?
Ja, entweder du nutzt dafür das Streamer Plugin: http://forum.sa-mp.com/showthread.php?t=102865
oder, ich hatte auch mal dafür ein Include geschrieben (falls du keinen Streamer nutzen willst): Objekt Funktionen
mfg. ![]()
Die Funktion lautet: SetObjectMaterialText
und für die Koordinaten, nutze einen Editor: http://forum.sa-mp.com/showthread.php?t=336820
mfg. ![]()
Ok jetzt gibt es noch ein Problem. Ich kann jetzt unbegrenzt auf die Funktion Sitzplatz drücken, bis ich schließlich auf einen Milionenbetrag komme.
Daran habe ich gar nicht gedacht ![]()
<script type="text/javascript">
const euro = 3.0;
var clicked=false;
function add() {
if(clicked) return 0;
clicked=true;
for(var i=0,doc=document.getElementById("content"); i<5; i++) {
doc.options[""+i].value = (parseFloat(doc.options[""+i].value) + euro).toFixed(2);
doc.options[""+i].text = doc.options[""+i].text.slice(0,doc.options[""+i].text.indexOf("|")) + " | " + doc.options[""+i].value.replace(/\./g, ",") + "€";
}
return 1;
}
function r_z() {
if(!clicked) return 0;
clicked=false;
for(var i=0,doc=document.getElementById("content"); i<5; i++) {
doc.options[""+i].value = (parseFloat(doc.options[""+i].value) - euro).toFixed(2);
doc.options[""+i].text = doc.options[""+i].text.slice(0,doc.options[""+i].text.indexOf("|")) + " | " + doc.options[""+i].value.replace(/\./g, ",") + "€";
}
return 1;
}
</script>
Alles anzeigen
Schreibe es so, aber bedenke, dass man über die Konsole das alles verändern könnte und falsche Ergebnisse schicken kann.
Also checke in PHP auch, ob die Werte valide sind ![]()
mfg. ![]()
Der Wert wird nun als 14,5 dargestellt, nicht als 14,50
Achso, ja schreib die add function so:
function add() {
for(var i=0,doc=document.getElementById("content"); i<5; i++) {
doc.options[""+i].value = (parseFloat(doc.options[""+i].value) + euro).toFixed(2);
doc.options[""+i].text = doc.options[""+i].text.slice(0,doc.options[""+i].text.indexOf("|")) + " | " + doc.options[""+i].value.replace(/\./g, ",") + "€";
}
return 1;
}
mfg. ![]()
new Float:BaumCP[10][3] ={
Schreib das so:
stock const Float:BaumCP[][3] = {
mfg. ![]()
new BaumCPRand [MAX_PLAYERS];
Lösche die Variable ![]()