Bist mit Sicherheit kein fortgeschrittener Scripter wenn du sowas nicht weißt, auf jeden Fall legst du den Spawn selber fest mit den Koordinaten. Die findest du raus, wenn du ingame /save eingibst.
Beiträge von Uppermost
-
-
Nach der Datei googlen und in den Server Ordner einfügen...
-
// This is a comment
// uncomment the line below if you want to write a filterscript
//#define FILTERSCRIPT#include <a_samp>
#if defined FILTERSCRIPT
public OnFilterScriptInit()
{
print("\n--------------------------------------");
print(" server bei xxsniper");
print("--------------------------------------\n");
return 1;
}public OnFilterScriptExit()
{
return 1;
}#else
main()
{
print("\n----------------------------------");
print(" Blank Gamemode by your name here");
print("----------------------------------\n");
}#endif
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp("/area51", cmdtext, true, 10) == 0)
{
SetPlayerPos(playerid,210.9240,1905.7544,17.6406)
return 1;
}
return 0;
} -
-
Wie gesagt bitte in posten, welche Zeile ist denn 43? Versuch mal das, was Dominator gesagt hat, falls du das noch nicht hast
-
Bitte mal in einfügen..
//Edit: Grade gesehen, dass der Thread uralt ist.. Erstell doch einen neuen?! -
//Erledigt.
-
Gefällt mir sehr gut! Weiter so
Nächstes mal in 1920x1080, ich brauch Hintergründe -
Jap, wird abgefragt^^ Hattet ihr ja empfohlen vorhin
-
Zitat
Uppermost:
Was sagt der Mysql Log? Frage am besten ab ob der Spieler connected ist und setze einen Timer, der den Server nach 5 Sekunden neustartet, damit der Server alle Spieler schafft.Werde ich probieren, danke-Zitatfor(new i=0; i<MAX_PLAYERS; i++)
{
GetPlayerName(i,iname,sizeof(iname));
format(query,sizeof(query),"UPDATE user SET banned='%d',adminlevel='%d',level='%d',money='%d',faction='%d',rank='%d',wanteds='%d' WHERE username='%s'",pInfo[i][Banned],pInfo[i][Adminlevel],pInfo[i][Level],GetPlayerMoney(i),pInfo[i][Fraktion],pInfo[i][Rang],pInfo[i][Wanteds],iname);
mysql_function_query(dbhandle,query,false,"","");
}
mysql_function_query(dbhandle,"Select 1;",true,"Finish","");
return 1;forward Finish();
public Finish()
{
SendRconCommand("gmx");
}Das hat den Effekt, dass erst dann der Server neugestartet wird, wenn alle Daten gespeichert sind.
Außerdem musst du in der Schleife abfragen ob der Spieler connected und eingeloggt ist.
Erst dann sollte der Query losgesendet werden.Werde ich auch machen, falls der Timer nicht klappt
Der Timer hat tatsächlich funktioniert, wäre nicht drauf gekommen^^ Danke -
Wenn ich /restart eingebe setzen sich Stats wie Geld,Level etc. zurück. Hier der Befehl:
ocmd:restart(playerid,params[])
{
if(pInfo[playerid][Adminlevel]<6) return SendClientMessage(playerid,Weiss,"Diesen Befehl gibt es nicht! Benutze '/help' oder '/sup'");
SendClientMessageToAll(Weiss,"INFO: Der Server wird neu gestartet!");
new query[128],iname[MAX_PLAYER_NAME],gametext[64];
format(gametext,sizeof(gametext),"Server wird neu gestartet Bitte warten...");
GameTextForAll(gametext,5,1);
for(new i=0; i<MAX_PLAYERS; i++)
{
GetPlayerName(i,iname,sizeof(iname));
format(query,sizeof(query),"UPDATE user SET banned='%d',adminlevel='%d',level='%d',money='%d',faction='%d',rank='%d',wanteds='%d' WHERE username='%s'",pInfo[i][Banned],pInfo[i][Adminlevel],pInfo[i][Level],GetPlayerMoney(i),pInfo[i][Fraktion],pInfo[i][Rang],pInfo[i][Wanteds],iname);
mysql_function_query(dbhandle,query,false,"","");
}
SendRconCommand("gmx");
return 1;
}
Eigentlich werden doch alle Spieler gespeichert vor dem GMX Command, doch das klappt hier irgendwie nicht? die Werte in pInfo werden übrigens nach dem Logindialog gefüllt:
public PasswortAbfrage(playerid)
{
new num_fields,num_rows;
cache_get_data(num_rows,num_fields,dbhandle);
if(num_rows>0)
{
pInfo[playerid][Logged] = 1;
pInfo[playerid][Level] = cache_get_field_content_int(0,"level",dbhandle);
pInfo[playerid][Geschlecht] = cache_get_field_content_int(0,"sex",dbhandle);
pInfo[playerid][Alter] = cache_get_field_content_int(0,"age",dbhandle);
pInfo[playerid][Adminlevel] = cache_get_field_content_int(0,"adminlevel",dbhandle);
pInfo[playerid][Geld] = cache_get_field_content_int(0,"money",dbhandle);
pInfo[playerid][Fraktion] = cache_get_field_content_int(0,"faction",dbhandle);
pInfo[playerid][Rang] = cache_get_field_content_int(0,"rank",dbhandle);
pInfo[playerid][Wanteds] = cache_get_field_content_int(0,"wanteds",dbhandle);
//Sterne
if(pInfo[playerid][Wanteds] >=10 && pInfo[playerid][Wanteds]<20) SetPlayerWantedLevel(playerid,1);
if(pInfo[playerid][Wanteds] >=20 && pInfo[playerid][Wanteds]<30) SetPlayerWantedLevel(playerid,2);
if(pInfo[playerid][Wanteds] >=30 && pInfo[playerid][Wanteds]<40) SetPlayerWantedLevel(playerid,3);
if(pInfo[playerid][Wanteds] >=40 && pInfo[playerid][Wanteds]<50) SetPlayerWantedLevel(playerid,4);
if(pInfo[playerid][Wanteds] >=50 && pInfo[playerid][Wanteds]<69) SetPlayerWantedLevel(playerid,5);
if(pInfo[playerid][Wanteds] ==69) SetPlayerWantedLevel(playerid,6);
TextDrawShowForPlayer(playerid, Time), TextDrawShowForPlayer(playerid, Date);
SetPlayerScore(playerid,pInfo[playerid][Level]);
new altmoney = GetPlayerMoney(playerid);
GivePlayerMoney(playerid,-altmoney);
GivePlayerMoney(playerid,pInfo[playerid][Geld]);
SetPVarInt(playerid,"Speichern",1);
SetSpawnInfo(playerid,0,29,-1969.4128,137.6455,27.6875,91.5533,0,0,0,0,0,0);
SpawnPlayer(playerid);
}
else
{
SetPVarInt(playerid,"badlogin",GetPVarInt(playerid,"badlogin")+1);
if(GetPVarInt(playerid,"badlogin")<3)
{
SendClientMessage(playerid,Rot,"Dieses Passwort war falsch!");
ShowPlayerDialog(playerid,DIALOG_LOGIN1,DIALOG_STYLE_PASSWORD,"Login","Dein Passwort:","OK","Abbrechen");
}
if(GetPVarInt(playerid,"badlogin") >=3)
{
SendClientMessage(playerid,Rot,"Du wurdest gekickt, weil du dein Passwort dreimal falsch eingegeben hast!");
Kick(playerid);
}
}
return 1;
} -
Ich mag schlichte Designs, gefällt mir sehr gut. Nur finde ich, dass es eher ein Hintergrund als ein Logo ist
Vlt könntest du nur das Dreieck benutzen und im Hintergrund einen Verlauf oder so nutzen.. Das gibt nen guten Effekt! 7/10
-
Mein gott bin ich blöd, danke
ich sollte in zukunft früher schlafen..
-
Bayern ist der geilste Club der Welt
(Ich bin kein Bundesligafan, ist mir egal ob es Bayern ist^^) -
Gespeichert wird beim Disconnect
public OnPlayerDisconnect(playerid, reason)
{
TextDrawHideForPlayer(playerid, Time), TextDrawHideForPlayer(playerid, Date);
new query[128],pname[MAX_PLAYER_NAME];
GetPlayerName(playerid,pname,sizeof(pname));
format(query,sizeof(query),"UPDATE user SET banned ='%d',adminlevel='%d',level='%d',money='%d',faction='%d',rank='%d',wanteds='%d' WHERE username='%s'",pInfo[playerid][Banned],pInfo[playerid][Adminlevel],pInfo[playerid][Level],pInfo[playerid][Geld],pInfo[playerid][Fraktion],pInfo[playerid][Rang],pInfo[playerid][Wanteds],pname);
mysql_function_query(dbhandle,query,false,"","");
pInfo[playerid][Logged] = 0;
DeleteTicket(playerid);
return 1;
} -
Wenn ich connecte und drei mal mein Passwort falsch eingebe, wird in der mySQL DB meine Stats(Level,Adminlevel,Geld,Wanteds) zurückgesetzt... was kann ich da tun?
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
new pname[MAX_PLAYER_NAME];
GetPlayerName(playerid, pname, sizeof(pname));
switch(dialogid)
{
case DIALOG_LOGIN1:
{
if(response)
{
new query[256],passwort[40];
if(strlen(inputtext)>0)
{
mysql_escape_string(inputtext,passwort,dbhandle);
format(query,sizeof(query),"SELECT username,password,sex,age,adminlevel,level,money,faction,rank,wanteds FROM user WHERE username='%s' AND password='%s'",pname,passwort);
mysql_function_query(dbhandle,query,true,"PasswortAbfrage","i",playerid);
}
else
{
SendClientMessage(playerid,Gelb,"Gib ein Passwort ein!");
ShowPlayerDialog(playerid,DIALOG_LOGIN1,DIALOG_STYLE_PASSWORD,"Login","Dein Passwort:","OK","Abbrechen");
}
}
else
{
Kick(playerid);
}
}
public PasswortAbfrage(playerid)
{
new num_fields,num_rows;
cache_get_data(num_rows,num_fields,dbhandle);
if(num_rows>0)
{
pInfo[playerid][Logged] = 1;
pInfo[playerid][Level] = cache_get_field_content_int(0,"level",dbhandle);
pInfo[playerid][Geschlecht] = cache_get_field_content_int(0,"sex",dbhandle);
pInfo[playerid][Alter] = cache_get_field_content_int(0,"age",dbhandle);
pInfo[playerid][Adminlevel] = cache_get_field_content_int(0,"adminlevel",dbhandle);
pInfo[playerid][Geld] = cache_get_field_content_int(0,"money",dbhandle);
pInfo[playerid][Fraktion] = cache_get_field_content_int(0,"faction",dbhandle);
pInfo[playerid][Rang] = cache_get_field_content_int(0,"rank",dbhandle);
pInfo[playerid][Wanteds] = cache_get_field_content_int(0,"wanteds",dbhandle);
//Sterne
if(pInfo[playerid][Wanteds] >=10 && pInfo[playerid][Wanteds]<20) SetPlayerWantedLevel(playerid,1);
if(pInfo[playerid][Wanteds] >=20 && pInfo[playerid][Wanteds]<30) SetPlayerWantedLevel(playerid,2);
if(pInfo[playerid][Wanteds] >=30 && pInfo[playerid][Wanteds]<40) SetPlayerWantedLevel(playerid,3);
if(pInfo[playerid][Wanteds] >=40 && pInfo[playerid][Wanteds]<50) SetPlayerWantedLevel(playerid,4);
if(pInfo[playerid][Wanteds] >=50 && pInfo[playerid][Wanteds]<69) SetPlayerWantedLevel(playerid,5);
if(pInfo[playerid][Wanteds] ==69) SetPlayerWantedLevel(playerid,6);
TextDrawShowForPlayer(playerid, Time), TextDrawShowForPlayer(playerid, Date);
SetPlayerScore(playerid,pInfo[playerid][Level]);
new altmoney = GetPlayerMoney(playerid);
GivePlayerMoney(playerid,-altmoney);
GivePlayerMoney(playerid,pInfo[playerid][Geld]);
SetSpawnInfo(playerid,0,29,-1969.4128,137.6455,27.6875,91.5533,0,0,0,0,0,0);
SpawnPlayer(playerid);
}
else
{
SetPVarInt(playerid,"badlogin",GetPVarInt(playerid,"badlogin")+1);
if(GetPVarInt(playerid,"badlogin")<3)
{
SendClientMessage(playerid,Rot,"Dieses Passwort war falsch!");
ShowPlayerDialog(playerid,DIALOG_LOGIN1,DIALOG_STYLE_PASSWORD,"Login","Dein Passwort:","OK","Abbrechen");
}
if(GetPVarInt(playerid,"badlogin") >=3)
{
SendClientMessage(playerid,Rot,"Du wurdest gekickt, weil du dein Passwort dreimal falsch eingegeben hast!");
Kick(playerid);
}
}
return 1;
}
Andere Frage: Wird bei einem Kick OnPlayerDisconnect aufgerufen? Falls ja, dort werden die Stats gespeichert, aber somit auch bei einem Kick (das soll nicht so sein).. Wie könnte ich das beheben? -
Geht, danke^^
-
Ich habe in meinem registersystem 3 Dialoge eingebaut. Wenn ein User beispielsweise ein Passwort zum registrieren eingibt, bei der Geschlechtsauswahl aber abbricht, wie kann ich diesen dann löschen?
(BlueG mySQL)
Momentan sieht die Query so aus, klappt aber nicht:
format(query,sizeof(query),"DELETE FROM user * WHERE username='%s'",pname);
pname ist definiert weiter oben -
Jetzt können auch mehrere Connecten etc., und wenn ich ein falsches Passwort eingebe, wird nur mein Geld zurückgesetzt, der Rest bleibt. Warum?^^
-
Werde ich probieren, mir ist aber eben aufgefallen, dass ein Kollege auf dem Server war, ich mich eingeloggt habe und er anstelle von mir gespawnt ist. Schon wieder: warum?