Im Dialog wird der korrekte Spielername gespeichert, und soll dann auf pID bzw. zID umgeschrieben werden.
Sodass man den Player festlegt der das Geld bekommen soll.
- Tomsen
Im Dialog wird der korrekte Spielername gespeichert, und soll dann auf pID bzw. zID umgeschrieben werden.
Sodass man den Player festlegt der das Geld bekommen soll.
- Tomsen
Heey,
Wünsche allen einen guten Sonntag Mittag.
Bin grade mit den Skins meiner Fraktionen fertig geworden. Und würde jetzt gerne /Invite /Uninvite Befehle machen. Und ein Rangsystem. Wie z.b Rang 1 Autoputzer - Rang 5 Leader. Jedoch weiß ich nicht genau wie, und womit ich anfangen muss. Wenn ich mir Tutorials anschaue wird nur der befehl Makeleader gemacht. Jedoch finde ich nirgends die Dinge die ich benötige. Hoffe mir kann einer helfen. Wie ich die beiden Sachen heute noch fertig bekomme.
Habe bisher erst /makeleader und halt die Fraktionen selber. Und login reg natülich auch
MFg
Ivory
Du solltest zuerst GetVehicleParamsEx verwenden und dann if(light == 0) abfragen.
So ich hab das jetzt so gemacht:
if(strcmp(cmd, "/lights", true) == 0)
{
if(IsPlayerInAnyVehicle(playerid))
{
GetVehicleParamsEx(vehicleid,engine,lights,alarm,doors,bonnet,boot,objective);
if(lights == 0)
{
GetVehicleParamsEx(vehicleid,engine,lights,alarm,doors,bonnet,boot,objective);
SetVehicleParamsEx(vehicleid,engine,1,alarm,doors,bonnet,boot,objective);
return 1;
}
else//if(lights == 1)
{
GetVehicleParamsEx(vehicleid,engine,lights,alarm,doors,bonnet,boot,objective);
SetVehicleParamsEx(vehicleid,engine,0,alarm,doors,bonnet,boot,objective);
return 1;
}
}
else
{
SendClientMessage(playerid, COLOR_WHITE, "You are not in any vehicle.");
return 1;
}
}
Alles anzeigen
Bei engine so ähnlich.
Nun ist es so, dass er beim ersten versiuch Motor oder licht anzu machen, es erst versucht auszumachen(ist aber ja schon aus!)
Danach funkti9niert es dann richtig, dh an, aus an aus ... etc.
Woran liegt das?
Sobald ich 2 Fitlerscripts mit Objecten (CreateDynamicObject) rein mache spielt der prmäre Gamemode verrückt.
Die Namen werden wieder Bunt angezeigt, und zB. der Stream wird beim Connecten nicht abgespielt. Sobald ich die wieder rausnehme geht allles andere wieder.
Woran liegt das?
Eine Map kann ich drin lassen, ist an und für sich genauso aufgebaut.
- Tomsen
TheHondaTuner:
Und wo holst du die vehicleid her? Fehlt da nicht noch GetPlayerVehicleID? Sonst wissen GetVehicleParamsEx und SetVehicleParamsEx ja nicht, von welchem Fahrzeug sie es holen sollen.
Das wäre übrigens auch noch zu beachten:
ZitatNote: If a parameter is unset (SetVehicleParamsEx not used beforehand) the value will be -1 ('unset').
Das heißt, du müsstest so testen, ob das Licht an ist:
GetVehicleParamsEx(vehicleid,engine,lights,alarm,doors,bonnet,boot,objective);
if(lights == 0 || lights == -1)
{
//Code
}
else
{
//Code
}
ocmd:aduty(playerid,params[])
{
new string[128],atext[128];
if(!IsPlayerAnAdmin(playerid,1)) return SendClientMessage(playerid,rot,"[Fehler]: Du hast nicht das nötige Adminlevel!");
if(SpielerInfo[playerid][pAdminlevel]==5000) { atext = "Serverleitung"; }
else { atext = "Admin"; }
format(string,sizeof(string),"%s \nOnDuty",atext);
new Text3D:adminduty = Create3DTextLabel(string, orange, 30.0, 40.0, 50.0, 100.0, 0, 0);
if(aduty[playerid]==0)
{
new string2[128];
format(string2,sizeof(string2),"[AdminOnDuty]: %s ist als Admin %d in den Dienst gegangen!",SpielerName(playerid),SpielerInfo[playerid][pAdminlevel]);
SendClientMessageToAll(orange,string2);
Attach3DTextLabelToPlayer(adminduty, playerid, 0.0, 0.0, 0.7);
for(new i = 0; i < MAX_PLAYERS; i++)
{
SetPlayerMarkerForPlayer( i, playerid, orange );
return 1;
}
aduty[playerid] = 1;
return 1;
}
else if(aduty[playerid]==1)
{
new string3[128];
format(string3,sizeof(string3),"[AdminOffDuty]: %s ist als Admin %d in aus dem Dienst gegangen!",SpielerName(playerid),SpielerInfo[playerid][pAdminlevel]);
SendClientMessageToAll(grau,string3);
Delete3DTextLabel(adminduty);
for(new i = 0; i < MAX_PLAYERS; i++)
{
SetPlayerMarkerForPlayer( i, playerid, 0xFFFFFF00 );
return 1;
}
aduty[playerid] = 0;
SetPlayerColor(playerid,weiß);
return 1;
}
return 1;
}
- Tomsen
Wieso kann man nur OnDuty gehen? Egal wie oft ich es mache es kommt immer nur das man ONduty gegangen ist. Offduty wird garnicht aufgerufen.
Wieso bekomme ich immer Fehler wenn ich nur cmd und kein cmdtext benutze?
if (strcmp("/test", cmdtext, true, 10) == 0) //keine Errors
if (strcmp("/test", cmd, true, 10) == 0) //undefined symbol "cmd"
- Tomsen
//undefined symbol "cmd"
Weil du die Variable "cmd" nicht deklariert hast ![]()
Schau dir mal dieses Tutorial an: http://wiki.sa-mp.com/wiki/Strtok
mfg. ![]()
Gibt es eine Möglichkeit, einen Spieler im Auto festzuhalten ohne ihn zu freezen, also nehmen wir an, dass der Spieler sich angeschnallt hat und man kann dann logischer Weise nicht mehr aussteigen. Wäre dies möglich?
Wäre dies möglich?
Du könntest es so ausprobieren:
new test[MAX_PLAYERS];
//In deinem cmd um ihm in einem Auto festzuhalten
test[playerid] = 1;
//Unter dem Callback OnPlayerKeyStateChange
if(newkeys & KEY_SECONDARY_ATTACK)
{
if(test[playerid]) ClearAnimations(playerid);
}
Wäre einen Versuch wert ![]()
mfg. ![]()
Kleine frage zu der Funktion
format(query, 256, "SELECT `Passwort` FROM `player` WHERE `Name` = '%s'", PlayerInfo[playerid][Name]);
mysql_query(query, (-1), (0), SQL);
mysql_store_result(SQL);
mysql_fetch_row(Get, "|", SQL);
if(!strcmp(MD5_Hash(Key), Get, true))
Der hängt sich wieder auf, wenn er das aufruft
mysql_fetch_row(Get, "|", SQL);
Als plugin nehm ich das von Strickenkid
bei den BlueG gabs da auch probleme mit
chrashdetect gibt das aus
[12:56:10] [debug] Server crashed while executing NoName.amx
[12:56:10] [debug] AMX backtrace:
[12:56:10] [debug] #0 native mysql_fetch_row () [10007250] from mysql.dll
[12:56:10] [debug] #1 0000be80 in ?? () from NoName.amx
[12:56:10] [debug] #2 0000b5dc in public OnDialogResponse () from NoName.amx
das von den OnDialog da ruft er ja den loadplayer auf und da kommt es zu den Crash
//Edit
Keiner eine idee?
Ich finde keine lösung dazu
Mir ist nur aufgefallen, das wenn ich das Passwort direkt richtig schreibe das es funktioniert
gebe ich es aber erst falsch ein und dann richtig, Crasht der server
Nabend.
Ich habe eine kleine Zellenübersicht erstellt, jedoch wird mit inGame "SERVER: Unknown command" angezeigt.
wüsste vllt wer warum?
dcmd_zellen(playerid,params[]){
#pragma unused params
if((pInfo[playerid][leader] == 1 || pInfo[playerid][leader] == 2 || pInfo[playerid][leader] == 5
|| pInfo[playerid][member] == 1 || pInfo[playerid][member] == 2 || pInfo[playerid][member] == 5) && pInfo[playerid][duty] == true){
new string[128];
for(new i = 0; i < MAX_ZELLE;i++){
new text[128];
text = (Zelle[i][Besetzt] == false) ? ("Nicht besetzt") : (SpielerName(Zelle[i][SpielerID]));
format(string,sizeof(string),"Zelle %i = %s\n",i,text);
}
ShowPlayerDialog(playerid,DIALOG_ZELLEN,DIALOG_STYLE_MSGBOX,"Zellenübersicht",string,"OK","");
}
return 1;
}
Wenn ich eine Datenbank auf meinem Rechner habe, die über XAMPP läuft, und ich aber schon ein Forum aber noch keinen Server habe kann ich die Datenbank trotzdem schon nutzen und mit dem Forum verbinden um eine Registrierung nur durch den Server möglich zu machen? Also klar gesagt: Kann ich mein Forum auch mit der Datenbank vom HomePC verbinden (Und ich bin mir bewusst das man sich im Forum dann wahrscheinlich nur anmelden kann wenn XAMPP läuft.)
Oder muss ich mir jetzt nen Server zulegen, die Datenbank irgentwie Uploaden (oder muss ich ne neue erstellen mit allen Tabellen, Spalten etc?!)
- Tomsen
Du kannst das alles auf deinem Home-PC behalten, wenn du MySQL richtig einstellst.
Bedenke: der PC muss dann die ganze Zeit laufen und im Router muss ein Port Forwarding sowie (vermutlich) eine Domain für dynamisches DNS eingerichtet sein, um vom Server aus darauf zugreifen zu können.
Du kannst aber auch mit PHPMyAdmin ein Backup machen, das auf den Server ziehen, dort wieder via PMA einspielen und den MySQL-Server (der dann logischerweise vorhanden sein und laufen muss) auf dem Server verwenden. ![]()
if(GetPlayerVehicleID(playerid)==Krankenwagen[0] || GetPlayerVehicleID(playerid)==Krankenwagen[1] || GetPlayerVehicleID(playerid)==Krankenwagen[2] || GetPlayerVehicleID(playerid)==Krankenwagen[3]|| GetPlayerVehicleID(playerid)==Krankenwagen[4])
{
if(SInfo[playerid][pFraktion] != 2)
{
RemovePlayerFromVehicle(playerid);
SendClientMessage(playerid,FARBE_ROT,"Du bist kein Sanitäter des Krankenhauses in Las Venturas");
return 1;
}
}
if(GetPlayerVehicleID(playerid)==Polizeiwagen[0] || GetPlayerVehicleID(playerid)==Polizeiwagen[1] || GetPlayerVehicleID(playerid)==Polizeiwagen[2] || GetPlayerVehicleID(playerid)==Polizeiwagen[3]|| GetPlayerVehicleID(playerid)==Polizeiwagen[4])
{
if(SInfo[playerid][pFraktion] != 1)
{
RemovePlayerFromVehicle(playerid);
SendClientMessage(playerid,FARBE_ROT,"Du bist kein Polizei Beamter der Dienststelle in Las Venturas!");
return 1;
}
}
if(GetPlayerVehicleID(playerid)==Mafia2[0] || GetPlayerVehicleID(playerid)==Mafia2[1] || GetPlayerVehicleID(playerid)==Mafia2[2])
{
if(SInfo[playerid][pFraktion] != 3)
{
RemovePlayerFromVehicle(playerid);
SendClientMessage(playerid,FARBE_ROT,"Du gehörst nicht den Besitzern des Casinos an!");
return 1;
}
}
if(GetPlayerVehicleID(playerid)==Mafia1[0] || GetPlayerVehicleID(playerid)==Mafia1[1] || GetPlayerVehicleID(playerid)==Mafia1[2])
{
if(SInfo[playerid][pFraktion] != 4)
{
RemovePlayerFromVehicle(playerid);
SendClientMessage(playerid,FARBE_ROT,"Du gehörst nicht den Besitzern des Casinos an!");
return 1;
}
}
Steige ich in die angegebenen Krankenwagen und bin nicht in der Fraktion des Sanitäters fliege ich raus. Wenn ich dagegen als Nicht Polizist in einen Streifenwagen steige kann ich mit diesem Fahren und Rumtrollen genauso wie bei den Mafien.
Obwohl es doch eig. arbeiten müsste oder nicht?
Wie kann ich in einer MySQL Datenbank abfragen ob eine in einen Dialog eingegebene Zahl schon einmal in einer Tabellenspalte vorkommt? (Bsp.: Handnummer)
- Tomsen
new query[64];
format(query, sizeof(query), "SELECT phonenumber FROM playerdata WHERE phonenumber = %d", Nummer);
if(mysql_num_rows(mysql_query(query)) > 0)
{
//Das passiert, wenn Nummer schon vergeben
}
else
{
//Und das, wenn nicht.
}
Sollte laufen, alles ohne Gewähr. ![]()
Code ist natürlich anzupassen. ![]()
Alles anzeigennew query[64];
format(query, sizeof(query), "SELECT phonenumber FROM playerdata WHERE phonenumber = %d", Nummer);
if(mysql_num_rows(mysql_query(query)) > 0)
{
//Das passiert, wenn Nummer schon vergeben
}
else
{
//Und das, wenn nicht.
}
Sollte laufen, alles ohne Gewähr.
Code ist natürlich anzupassen.
Was ist das?
So sollte es nicht richtig funktionieren
bei SELECT sollte ein free ressult sein, da er es für SELECT abfragen benötigt am ende
new query[64];
format(query, 64, "SELECT `phonenumber` FROM `playerdata` WHERE `phonenumber` = '%d'", Nummer);
mysql_query(query);
mysql_store_result();
if(mysql_num_rows() != 0)
{
//Das passiert, wenn Nummer schon vergeben
}
else
{
//Und das, wenn nicht.
}
mysql_free_result();
so sollte das ganze aussehen
Und du vergisst auch die ganzen `` ' '
Huch, zu sehr an SQLite orientiert. :x
Und Integer muss man nicht mit '' umschließen, nur bei den Spaltennamen bin ich mir gerade nicht sicher.
Nabend.
Weiß wer wie die Taste N genau heißt?
Habe schon mal in der Key liste gesucht, aber bin jetzt nicht fündig geworden