Mal den ganzen Auszug vom Log bitte.
Immer nur 3 Zeilen, wo die Hälfte fehlt ist nicht gerade sehr hilfreich ![]()
Mal den ganzen Auszug vom Log bitte.
Immer nur 3 Zeilen, wo die Hälfte fehlt ist nicht gerade sehr hilfreich ![]()
Eigentlich brauchst du hier kein Pattern, klar ist es eine schöne Überprüfung, ob die Werte passen und co, aber in diesem spezifischen Fall eigentlich nicht erforderlich, da du das ja eh nur 1:1 übertragen willst in eine andere Form.
Da kannst du theoretisch auch nur so etwas tun:
<?php
function getValues($input,&$values)
{
$tmp = explode('"',$input);
$names =
["id","interior","collissions","alpha","doublesided","model","scale","dimension","posX","posY","posZ","rotX","rotY","rotZ"];
for($i=1,$counter=0; $i<count($tmp); $i+=2)
{
$values[$names[$counter++]] = $tmp[$i];
}
}
//Nutzung:
$values = []; //Am besten außerhalb deiner Schleifen
//Beispiel $str:
$str = '<object id="object (ballypllr01_lvs) (1)" interior="0" collisions="true" alpha="255" doublesided="false" model="3437" scale="1" dimension="0" posX="3349.21826" posY="-1396.10474" posZ="257.07605" rotX="0" rotY="90" rotZ="0"></object>';
getValues($str,$values);
echo $values["model"]; //Gibt jetzt z.B. das model aus
?>
Alles anzeigen
Schreibe in Zeile 56:
format(string,sizeof(string),"* Oamt Mitarbeiter %s hat dein Fahrzeug abgeschleppt!",GetName(playerid)); //Evtl Funktion GetName anpassen
SendClientMessage(i,BLAU,string);
Es fehlt das ShowPlayerProgressBar ![]()
#Handy
Nutze mal crashdetect, lösche den server_log.txt und poste, was dann in der server_log.txt steht ![]()
Das ist mir schon klar...und genau das, machst du doch mit dem switch...
Soll das ein Scherz sein?
Du hast doch da den Code schon stehen..pack den switch einfach runter in die while Schleife...1:1 und nutz die Variable wie ich es gezeigt habe...
switch(["Adminlevel"])
Diese Schreibweise ist mir neu ![]()
Da müssen erstmal die Werte gefecht werden und dann sowas wie $row_lvl["Adminlevel"] verwendet werden.
Keine Ahnung, was du mit dem Rang 3 meinst...du sortierst es doch..
Hab ich doch :o
Hier, deinen Code mal ein wenig optimiert:
forward CheckTacho();
public CheckTacho()
{
new string[200],Float:vHealth,vehicleid,h;
for(new i=GetPlayerPoolSize(); i!=-1; i--)
{
if(!IsPlayerConnected(i) || IsPlayerNPC(i)) continue;
vehicleid = GetPlayerVehicleID(i);
if(!vehicleid) continue;
GetVehicleHealth(vehicleid,vHealth);
valstr(string,GetPlayerSpeed(i));
PlayerTextDrawSetString(i,CarSpeed[i],string);
h = floatround(vHealth, floatround_round)/10;
if(Praxis[i] == 1)
{
format(string,sizeof string,"Zustand: ~g~%i",h);
PlayerTextDrawSetString(i,Textzustand[i],string);
}
format(string,sizeof string,"Fahrzeug: ~g~%s~n~~w~T\172ren: %s~w~~n~Zustand: %s%d ~w~Prozent",PlayerVehicle[GetVehicleModel(vehicleid)-400],((tuer[vehicleid])?("~g~Offen"):("~r~Geschlossen")),((h<30)?("~r~"):(h<50)?("~y~"):("~g~")),h);
PlayerTextDrawSetString(i,CarFahrzeug[i],string);
}
return 1;
}
Alles anzeigen
Dann steht da auch ein ü und kein ue, bei Türen ![]()
13667
Richtig langweilig, hättest ihm die Modelid von einem Spiegel oder so geben müssen ![]()
- Ihr müsst euch mit gängigen Programmiersprachen auskennen
Und wofür, wenn man nur Pawn skripten soll? ![]()
Kam aufeinmal in meiner Konsole :o?
Musst auch prüfen, dass die modelid nicht 0 ist.
Also, dass er sich auch wirklich in einem Fahrzeug befindet.
zB, Skin 1 - 10 hat man zur Auswahl, das man dann mit mit dem Drücken der Leertaste von Skin 7 zu Skin 8 Gewechselt.
Das kommt darauf an...
Wenn du sie in aufsteigener Reihenfolge hast, dann kannst du einfach einen Counter nutzen.
Unter [wiki]OnPlayerKeyStateChange[/wiki] kannst du prüfen welche Taste er drückt und dann einfach eine globale Spielervariable hochzählen lassen und setzen lassen.
Oder du hast den Counter + ein Skin Array:
//Global deklarieren
stock const auswahl_skins[] = {5,10,19,237,311};
new auswahl_counter[MAX_PLAYERS];
//Und dann so, wenn er die Leertaste drückt:
if(auswahl_counter[playerid] == sizeof(auswahl_skins)) auswahl_counter[playerid] = 0; //Wieder von vorne Anfangen
SetPlayerSkin(playerid, auswahl_skins[auswahl_counter[playerid]++]); //Musst es nicht in eine Zeile quetschen xD Nur zur Verdeutlichung
Erstmal Danke für deinen Kommentar.
Schade dass du in der Zeit wie es scheint nicht persönlich vorbei kamst, denn es gab noch wesentlich mehr, als nur die paar Missionen die in dem Video zu sehen waren.
Ich hatte mal die Idee den Singleplayer in SAMP nach zu machen,
Sowas habe ich auch mal gemacht gehabt mit Aktoren: Neues Dynamisches Fußgänger Skript :)
Das neue Update welches rausgekommen ist, bietet dafür noch eine weitere gute Funktion, damit wäre es möglich alle Dinge noch besser umzusetzen. Mal sehen ob ich da mal was für realese, damit man endlich die Singleplayer Leute hat ![]()
Box mit einem Textdraw erstellen oder gibt es da einen Trick?
Also das was du da abgescreent hast wurde mit einem Include einfach erstellt:
das hat ich vor, aber kb mehr gehabt nach 100x xDD...
Hab mal deinen Vorschlag umgesetzt und ein Top 3 System dafür gemacht ![]()
An alle anderen, mit Glück kommt Bald Version 5, wo es eine Premiere von einer interaktiven und etwas längeren und komplexeren Mission gibt ![]()
Hoffen wir mal, dass das alles so klappt wie ich mir das vorstelle ![]()
//Edit:
Server ist erstmal down
Momentan bestand einfach 0 Nachfrage xD
Fass es doch zusammen:
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
//Interior-System
if(newkeys & KEY_SECONDARY_ATTACK)
{
for(new i; i<sizeof(iData); i++)
{
if(IsPlayerInRangeOfPoint(playerid, 2.0, iData[i][enter_x], iData[i][enter_y], iData[i][enter_z]))
{
SetPlayerPos(playerid, iData[i][int_x], iData[i][int_y], iData[i][int_z]);
SetPlayerInterior(playerid, iData[i][i_id]);
SetPlayerVirtualWorld(playerid, i);
return 1;
}
if(GetPlayerVirtualWorld(playerid) == i && IsPlayerInRangeOfPoint(playerid, 2.0, iData[i][int_x], iData[i][int_y], iData[i][int_z]))
{
SetPlayerPos(playerid, iData[i][enter_x], iData[i][enter_y], iData[i][enter_z]);
SetPlayerInterior(playerid, 0);
SetPlayerVirtualWorld(playerid, 0);
return 1;
}
}
return 1;
}
return 1;
}
Alles anzeigen
aber jzt Crasht der Server
Dann verwende mal crashdetect und schau, was im Log steht ![]()
Eventuell hast den falschen Pfad angegeben ![]()
Achso, sag das doch, dass es so viele sind hahaha xD
Dann mach es so:
Wenn du nur wissen willst ob der Name vorhanden ist, kannst es so einfach machen:
PS: Die Standard read & write Funktionen sind sehr performant.