Heyy, sorry das ich das erst so Spät gesehen habe! Ich werde mich Morgen-Nachmittag mal dran Setzen und dir das noch schnell Fertig machen.
Beiträge von SLaYz
-
-
-
So hab dir das mal Gemacht, sollte auch Funktionieren. Beachte jedoch das du in den Codes einige Teile ändern musst, damit es Reibungslob bei dir Funktioniert.
Oben definierst du im Script erstmal deine Fahrzeuge, und den Bool ob der Spieler am Liefern ist oder nicht und den Forward den wir zum Überprüfen des Fahrzeuges benötigen.
Das schaut dann so aus.
new TransCars[5],
forward IsLieferCar(carid),
bool:Liefert[MAX_PLAYERS];Dann gehst du unter OnGameModeInit und lässt dir deine Fahrzeuge laden.
TransCars[0] = AddStaticVehicleEx(440,-540.000,-545.000,25.0000,180.0000,12,12,1500);
TransCars[1] = AddStaticVehicleEx(440,-540.000,-545.000,25.0000,180.0000,12,12,1500);
TransCars[2] = AddStaticVehicleEx(440,-530.0000,-545.0000,25.0000,180.0000,12,12,1500);
TransCars[3] = AddStaticVehicleEx(440,-520.0000,-545.0000,25.0000,180.0000,12,12,1500);
TransCars[4] = AddStaticVehicleEx(440,-500.0000,-545.0000,25.0000,180.0000,12,12,1500);Anschließend musst du nurnoch die Befehle erstellen, ich habe mal 2 Test-Befehle erstellt, die Farben die dort bei den SendClientMessage's benutzt worden sind musst du mit deinen Farben bearbeiten und die Texte ggf. Ändern!
ocmd:liefern(playerid)
{
new carid = GetPlayerVehicleID(playerid);
if(!IsPlayerInAnyVehicle(playerid))return SendClientMessage(playerid, Meldung_Orange, "Du musst in einem Fahrzeug sitzen.");
if(!IsLieferCar(carid))return SendClientMessage(playerid, Meldung_Orange, "Du kannst keine Produkte laden, da du nicht in einem Lieferwagen bist.");
if(Liefert[playerid])return SendClientMessage(playerid, Meldung_Orange, "Du bist bereits am Liefern.");
else if(!Liefert[playerid])Liefert[playerid] = true; SendClientMessage(playerid, COLOR_WHITE, "Du hast nun 500 Produkte geladen, fahre zur Stromfabrik.");SetPlayerCheckpoint(playerid, 1114.0520,-1717.2704,13.1665, 3);
return 1;
}ocmd:abladen(playerid)
{
new carid = GetPlayerVehicleID(playerid);
if(!IsPlayerInAnyVehicle(playerid))return SendClientMessage(playerid, Meldung_Orange, "Du musst in einem Fahrzeug sitzen.");
if(!IsLieferCar(carid))return SendClientMessage(playerid, Meldung_Orange, "Du kannst keine Produkte laden, da du nicht in einem Lieferwagen bist.");
if(!IsPlayerInRangeOfPoint(playerid, 3.0, 1114.0520,-1717.2704,13.1665))return SendClientMessage(playerid, COLOR_WHITE, "Du bist nicht am Strom Unternehmen.");
if(!Liefert[playerid])return SendClientMessage(playerid, Meldung_Orange, "Du bist nicht am Liefern.");
else if(Liefert[playerid]) Liefert[playerid] = false; SendClientMessage(playerid, COLOR_WHITE, "Du hast das Strom Unternehmen mit 500 Produkten beliefert, dafür erhältst du 500$.");
return 1;
}Und nun kommen wir zu dem Public der deine Fahrzeuge überprüft ob es ein Lieferwagen ist.
public IsLieferCar(carid)
{
for(new i = 0; i < sizeof(TransCars); i++)
{
if(carid == TransCars[i])
{
return 1;
}
}
return 0;
}So, das wars! Ich hoffe ich konnte Dir etwas Helfen, benötigst du mehr Hilfe oder eine genauere Erklärung meines Codes muss du dich nur Melden.
Mit freundlichen Grüßen
SLaYz -
Hast du dir die IP mal Ausgeben lassen, die von der Session? Vielleicht hat sie ja keinen Wert
-
-
Wie schaut dein Code derzeit aus?
-
Wenn es dir nichts ausmacht, dass du paar Tage warten musst, bis der Server kommt, dann ist webtropia in Ordnung.
Hmm komisch wieso musste Ich keine 12 Stunden warten bis ich dort meine Roots hatte? -
Ich glaube das sollte es sein was Du suchst^^
PHP
Alles anzeigen<script type="text/javascript"> $(window).ready(function() { $('#content').fadeIn(3000); }); var speed = 20000; var Pic = new Array(); Pic[0] = "images/backgrounds/background_1.jpg"; <!----Pic[1] = "images/backgrounds/background_3.jpg";-->//Bild 2 <!----Pic[2] = "images/backgrounds/background_3.jpg";-->//Bild 3 und so weiter var t; var j = 0; var p = Pic.length; var preLoad = new Array(); for (i = 0; i < p; i++){ preLoad[i] = new Image(); preLoad[i].src = Pic[i]; } function changeBG() { if (document.body){ document.getElementById("body").style.backgroundImage="url('"+Pic[j]+"')"; j = j + 1; if (j > (p-1)) j = 0; t = setTimeout('changeBG()', speed); } } </script>
-
So funktioniert der Befehl garnicht mehr. Ich werde nicht in Gefägnis gesteckt und bekomme auch falsche Nachrichten
Alles klar, sorry hab noch einen kleinen Fehler meinerseits enteckt.
Versuchs mal mit dem
ocmd:arrest(playerid,params[])
{
new pID, Zeit,s[90],Float:Pos[3];
if(!IsPlayerInRangeOfPoint(playerid,10,226.7997,112.3471,999.0156)return SendClientMessage(playerid,HELLBLAU,"Du bist nicht in der näher der Zellen");
if(!isPlayerInFrakt(playerid,1))return SendClientMessage(playerid,WEIß,"Du bist kein angestellter der Polizei");
if(DutyPD[playerid] == 0)return SendClientMessage(playerid,WEIß,"Du bist nicht im Dienst");
GetPlayerPos(playerid,Pos[0],Pos[1],Pos[2]);
if(!IsPlayerInRangeOfPoint(pID,10,Pos[0],Pos[1],Pos[2]))return SendClientMessage(playerid,HELLBLAU,"Du kannst den Spieler nicht ins Gefängnis stecken da er nicht in deiner Nähe ist");
if(sscanf(params,"ud",pID,Zeit))return SendClientMessage(playerid,HELLBLAU,"Benutze: /Arrest [PLAYERID] [ZEIT]");
format(s,sizeof(s),"Du hast %s in das Gefängnis für %d Sekunden gesteckt.",sName(pID),Zeit);
SendClientMessage(playerid,HELLBLAU,s);
format(s,sizeof(s),"Du wurdest von %s in das Gefängnis für %d Sekunden gesteckt.",sName(playerid),Zeit);
SendClientMessage(pID,GRAU,s);
SetPlayerPos(pID,226.7997,112.3471,999.0156);
return 1;
} -
ocmd:arrest(playerid,params[])
{
new Float:x,Float:y,Float:z;
new pID, Zeit;
new s[128];
if(!IsPlayerInRangeOfPoint(playerid,10,226.7997,112.3471,999.0156)return SendClientMessage(playerid,HELLBLAU,"Du bist nicht in der näher der Zellen");
if(!isPlayerInFrakt(playerid,1))return SendClientMessage(playerid,WEIß,"Du bist kein angestellter der Polizei");
if(DutyPD[playerid] == 0)return SendClientMessage(playerid,WEIß,"Du bist nicht im Dienst");
GetPlayerPos(playerid,x,y,z);
if(!IsPlayerInRangeOfPoint(pID,10,x,y,z))return SendClientMessage(playerid,HELLBLAU,"Du kannst den Spieler nicht ins Gefängnis stecken da er nicht in deiner Nähe ist");
if(sscanf(params,"us",pID,Zeit))return SendClientMessage(playerid,HELLBLAU,"Benutze: /Arrest [PLAYERID] [ZEIT]");
format(s,sizeof(s),"Du hast %s in das Gefängnis für %d Sekunden gesteckt.",sName(pID),Zeit);
SendClientMessage(playerid,HELLBLAU,s);
format(s,sizeof(s),"Du wurdest von %s in das Gefängnis für %d Sekunden gesteckt.",sName(playerid),Zeit);
SendClientMessage(pID,GRAU,s);
SetPlayerPos(pID,226.7997,112.3471,999.0156);
return 1;
}Du hast die Zeit in einem String gepackt was mir nicht sehr Sinnvoll erscheint, Nutze lieber einen Integer der Befehl sollte so nun Klappen wie Oben.
Mit freundlichen Grüßen
SLaYz -
mit ner Variabele prüfen ob der Spieler ein Leader etc. ist
if(sInfo[playerid][pLeader] !=0)
{
//blabla^^
} -
Also wenn du es in PDO machen willst könnte es etwa so Aussehen
PHP
Alles anzeigen<?php /** * Created by PhpStorm. * User: SLaYz - JAGHAX Ltd. ©2012-2014 * Date: 10.03.14 * Time: 16:41 * Filename: AddToDatabase.php * Project: PHPHelp */ require_once('Connection.php'); class AddToDatabase { private $Database; public function __construct(){ $this->Database = new Connection(); $this->Database = $this->Database->DatabaseConnect(); } public function AddNewUser($User, $Password, $Server){ $InsertUser = $this->Database->prepare("INSERT INTO `Userfiles` (`User`, `Password`, `Server`, `RegDate`) VALUES (:User,:Password, :Server, NOW())"); $InsertUser->execute(array(':User'=>$User,':Password'=>$Password, ':Server'=>$Server)); echo'<div class="alert alert-success">Sie wurden erfolgreich Eingetragen.</div>'; } } ?>
PHP
Alles anzeigen<?php /** * Created by PhpStorm. * User: SLaYz - JAGHAX Ltd. ©2012-2014 * Date: 10.03.14 * Time: 16:40 * Filename: Connection.php * Project: PHPHelp */ class Connection { public function DatabaseConnect(){ return new PDO('mysql:host=localhost;dbname=DB', 'USER', 'PW'); } } ?>
* Der Code wurde getestet und Funktioniert ohne Probleme.
-
Du schickst eine Query mit dem Namen ab z.B. mysql_query("SELECT * FROM Accounts WHERE Name='%s', inputtext)
*Es ist nur ein Beispiel die Query sollte in einem Format geschrieben werden.Dann Speicherst du die Werte am besten in extra Variabelen und Editierst sie, anschließend Sendest du wieder eine Query zur Datenbank die die Daten die du Editiert hast wieder Speichert.
-
Eventuell ist der Text zu Lang, Die maximale Länge darf 144 Zeichen betragen.
-
Ich würd deine Fraktionen auch mit SSCANF laden da es dir ein paar Ressourcen spart. Wenn du einen Denkanstoß mit dem Laden über SSCANF brauchst sagst du einfach Bescheid^^
-
Schon komisch die haben so ne Starke USV und trotzdem ist alles Tot
naja was will man machen
-
Jop, merks auch gerade meine Roots sind wohl nicht mehr Erreichbar, Danke für den Hinweis
-
Wo ist den der Code der den Insert zeigt bzw. die Query die die Daten in die Datenbank speichern soll
-
Eclipe und Microsoft Visual Studio 2013 Ultimate
-
Das K groß machen^^