Oh, ja ist ja viel besser ohne...
Wo steht denn dann der Spieler, wenn ich die Kamera setzte? Am letzten Standort oder da wo die Kamera ist?
Oh, ja ist ja viel besser ohne...
Wo steht denn dann der Spieler, wenn ich die Kamera setzte? Am letzten Standort oder da wo die Kamera ist?
Oh, ja ist ja viel besser ohne...
Wo steht denn dann der Spieler, wenn ich die Kamera setzte? Am letzten Standort oder da wo die Kamera ist?
soweit ich weiß bleibt die spieler pos gleich.
Am letzten Standort oder da wo die Kamera ist?
Am letzten Standort, aber du kannst den Spieler ja freezen und mit SetPlayerPos(playerid, x,y,-30); z.B. unter die Map setzen, damit alles geladen wird und er nicht plötzlich iwo im Bild ist
Hallo,
ich habe hier nen kleines Prroblem. Aus irgendeinem Grund bekomme ich hier einen 6 steliigen Centbetrag raus zb 414,456789. Woran kann das liegen?
case DIALOG_VERKAUFEN:
{
if(!response)return 1;
new string[200],Float:betrag,Euro[50],Cent[50],betrag1[50];
if(InventarInfo[playerid][inventar_Metall][listitem] == 0)return SendErrorMessage(playerid,"Dieses Metall hast du nicht dabei");
switch(listitem)
{
case 0: {betrag = InventarInfo[playerid][inventar_Metall][0]*3.56;}
case 1: {betrag = InventarInfo[playerid][inventar_Metall][1]*5.76;}
case 2: {betrag = InventarInfo[playerid][inventar_Metall][2]*7.96;}
case 3: {betrag = InventarInfo[playerid][inventar_Metall][3]*9.16;}
case 4: {betrag = InventarInfo[playerid][inventar_Metall][4]*11.36;}
case 5: {betrag = InventarInfo[playerid][inventar_Metall][5]*13.56;}
case 6: {betrag = InventarInfo[playerid][inventar_Metall][6]*15.76;}
case 7: {betrag = InventarInfo[playerid][inventar_Metall][7]*17.96;}
}
format(betrag1, 50, "%f", betrag);
sscanf(betrag1, "p<.>s[50]s[50]", Euro, Cent);
GivePlayerEuro(playerid,strval(Euro),strval(Cent));
format(string,sizeof(string),"{FFFFFF}Du hast erfolgreich %d %s für %s,%d Euro an Robert verkauft",InventarInfo[playerid][inventar_Metall][listitem],GetResourceName(listitem),Euro,Cent);
SendInfoMessage(playerid,string);
InventarInfo[playerid][inventar_Metall][listitem] = 0;
}
Alles anzeigen
Danke im Voraus.
MfG
Allrounder18
Edit: Bei allen anderen Funktionen mit GetPlayerEuro bekomme ich wie gewollt einen Centbetrag mit nur 2 Stellen.
1. Weil Rundungsfehler auftreten.
2. Hast du dich da verrechnet oder ist das Absicht? So wie ich deine Formel sehe, sollte das doch eigentlich 3.56+2.2*x sein?
Also ich würde es so machen:
case DIALOG_VERKAUFEN:
{
if(!response)return 1;
new m = InventarInfo[playerid][inventar_Metall][listitem];
if(m == 0)return SendErrorMessage(playerid,"Dieses Metall hast du nicht dabei");
new string[128],Euro[16],Cent[8],betrag1[24];
format(betrag1, sizeof(betrag1), "%.02f", m*3.56+2.2*listitem);
sscanf(betrag1, "p<.>s[16]s[8]", Euro, Cent);
GivePlayerEuro(playerid,strval(Euro),strval(Cent));
format(string,sizeof(string),"{FFFFFF}Du hast erfolgreich %d %s für %s,%d Euro an Robert verkauft",m,GetResourceName(listitem),Euro,Cent);
SendInfoMessage(playerid,string);
InventarInfo[playerid][inventar_Metall][listitem] = 0;
}
Alles anzeigen
Alles anzeigen1. Weil Rundungsfehler auftreten.
2. Hast du dich da verrechnet oder ist das Absicht? So wie ich deine Formel sehe, sollte das doch eigentlich 3.56+2.2*x sein?
Also ich würde es so machen:
CAlles anzeigencase DIALOG_VERKAUFEN: { if(!response)return 1; new m = InventarInfo[playerid][inventar_Metall][listitem]; if(m == 0)return SendErrorMessage(playerid,"Dieses Metall hast du nicht dabei"); new string[128],Euro[16],Cent[8],betrag1[24]; format(betrag1, sizeof(betrag1), "%.02f", m*3.56+2.2*listitem); sscanf(betrag1, "p<.>s[16]s[8]", Euro, Cent); GivePlayerEuro(playerid,strval(Euro),strval(Cent)); format(string,sizeof(string),"{FFFFFF}Du hast erfolgreich %d %s für %s,%d Euro an Robert verkauft",m,GetResourceName(listitem),Euro,Cent); SendInfoMessage(playerid,string); InventarInfo[playerid][inventar_Metall][listitem] = 0; }
Danke, du ahst es vereinfacht und es kommt trotzdem bei jedem Erz nen anderer Preis raus? Es kommen zwar nur mehr 2 Centstellen, aber irgendwie ist die Berechnung falsch. Script sagt 428,91 + 16,55 = 445,67, oder stimmen die 16,55 nicht? Die 16, 55 wären in dem Fall diese Berechnung.
Danke, du ahst es vereinfacht und es kommt trotzdem bei jedem Erz nen anderer Preis raus?
Jaaa...
irgendwie ist die Berechnung falsch
Nun, falsch ist ein harter Begriff, der hier nicht ganz zutrifft. Da es sich hier um Gleitkommafehler handelt.
Aber hier eine Variante, die glaube ich präziser wäre:
case DIALOG_VERKAUFEN:
{
if(!response)return 1;
new m = InventarInfo[playerid][inventar_Metall][listitem];
if(m == 0)return SendErrorMessage(playerid,"Dieses Metall hast du nicht dabei");
new string[128],euro,cent;
FloatToMoney(m*3.56+2.2*listitem,euro,cent);
GivePlayerEuro(playerid,euro,cent);
format(string,sizeof(string),"{FFFFFF}Du hast erfolgreich %d %s für %d,%d Euro an Robert verkauft",m,GetResourceName(listitem),euro,cent);
SendInfoMessage(playerid,string);
InventarInfo[playerid][inventar_Metall][listitem] = 0;
}
stock FloatToMoney(Float:x,&euro,¢) {
new string[16];
euro = floatround(x,floatround_floor);
valstr(string,floatround(x*100));
strmid(string,string,strlen(string)-2,strlen(string),sizeof(string));
cent = strval(string);
return 1;
}
Alles anzeigen
Alles anzeigenJaaa...
Nun, falsch ist ein harter Begriff, der hier nicht ganz zutrifft. Da es sich hier um Gleitkommafehler handelt.
Aber hier eine Variante, die glaube ich präziser wäre:
CAlles anzeigencase DIALOG_VERKAUFEN: { if(!response)return 1; new m = InventarInfo[playerid][inventar_Metall][listitem]; if(m == 0)return SendErrorMessage(playerid,"Dieses Metall hast du nicht dabei"); new string[128],euro,cent; FloatToMoney(m*3.56+2.2*listitem,euro,cent); GivePlayerEuro(playerid,euro,cent); format(string,sizeof(string),"{FFFFFF}Du hast erfolgreich %d %s für %s,%d Euro an Robert verkauft",m,GetResourceName(listitem),euro,cent); SendInfoMessage(playerid,string); InventarInfo[playerid][inventar_Metall][listitem] = 0; } stock FloatToMoney(Float:x,&euro,¢) { new string[16]; euro = floatround(x,floatround_floor); valstr(string,floatround(x*100)); strmid(string,string,strlen(string)-2,strlen(string),sizeof(string)); cent = strval(string); return 1; }
Danke, bis auf einen kleine Fehler hats geklappt.
format(string,sizeof(string),"{FFFFFF}Du hast erfolgreich %d %s für %d,%d Euro an Robert verkauft",m,GetResourceName(listitem),euro,cent);, so gehts.
[22:36:11] [debug] Run time error 4: "Array index out of bounds"
[22:36:11] [debug] Attempted to read/write array element at index 21 in array of size 20
[22:36:11] [debug] AMX backtrace:
[22:36:11] [debug] #0 003d6a34 in public ocmd_createlager (playerid=0, params[]=@06ab00d4 "21 99") at C:\Users\PC\Desktop\SERVER\gamemodes\server.pwn:8137
[22:36:11] [debug] #1 native CallLocalFunction () in samp7004_6922
[22:36:11] [debug] #2 00000ce8 in public OnPlayerCommandText (playerid=0, cmdtext[]=@06ab0088 "/createlager 21 99") at C:\Users\PC\Desktop\SERVER\pawno\include\ocmd.inc:77
ocmd:createlager(playerid, params[])
{
new frakID, Waffenteile, string[256], Float:Pos[3], mainQuery[256];
if(Spieler[playerid][pAdmin] < 6)return SendClientMessage(playerid, COLOR_WHITE, ERROR_ADMIN);
if(sscanf(params, "ii", frakID, Waffenteile))return SendClientMessage(playerid, COLOR_WHITE, "{3592D7}* Benutze {00CC00}/createlager [Fraktions-ID] [Waffenteile]");
if(frakID < 1 || frakID > MAX_FRACS)return SendClientMessage(playerid, COLOR_WHITE, "{AFAFAF}Falsche Fraktions-ID!");
GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
g_WaffenLager[frakID][WL_iFraktion] = frakID; //8137
g_WaffenLager[frakID][WL_fX] = Pos[0];
g_WaffenLager[frakID][WL_fY] = Pos[1];
g_WaffenLager[frakID][WL_fZ] = Pos[2];
g_WaffenLager[frakID][WL_iWaffenTeile] = Waffenteile;
if(g_WaffenLager[frakID][WL_Created] == 1)
{
DestroyDynamicPickup(g_WaffenLager[frakID][WL_fPickup]);
DestroyDynamic3DTextLabel(g_WaffenLager[frakID][WL_fText]);
g_WaffenLager[frakID][WL_fPickup] = CreateDynamicPickup(1254, 1, Pos[0], Pos[1], Pos[2]);
format(string, sizeof(string), ""#SERVER_FARBE"%s ¦ Waffenlager\n{FFFFFF}Tippe /waffenlager | Drücke N um zu integrieren", factionNames[frakID]);
g_WaffenLager[frakID][WL_fText] = CreateDynamic3DTextLabel(string, COLOR_WHITE, Pos[0], Pos[1], Pos[2]+1,12, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, -1, -1);
mysql_format(gSQL, mainQuery, sizeof(mainQuery), "UPDATE `waffenlager` SET `x`='%f', `y`='%f', `z`='%f', `waffenteile`='%d' WHERE `fraktion`='%d'",
g_WaffenLager[frakID][WL_fX], g_WaffenLager[frakID][WL_fY], g_WaffenLager[frakID][WL_fZ], g_WaffenLager[frakID][WL_iWaffenTeile], frakID);
printf(mainQuery);
mysql_tquery(gSQL, mainQuery, "", "");
}
else
{
g_WaffenLager[frakID][WL_fPickup] = CreateDynamicPickup(1254, 1, Pos[0], Pos[1], Pos[2], -1);
format(string, sizeof(string), ""#SERVER_FARBE"%s ¦ Waffenlager\n{FFFFFF}Tippe /waffenlager | Drücke N um zu integrieren", factionNames[frakID]);
g_WaffenLager[frakID][WL_fText] = CreateDynamic3DTextLabel(string, COLOR_WHITE, Pos[0], Pos[1], Pos[2]+1,12, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, -1, -1);
g_WaffenLager[frakID][WL_Created] = 1;
format(mainQuery,sizeof(mainQuery),"INSERT INTO `waffenlager` (`id`, `fraktion`, `x`, `y`, `z`, `waffenteile`) VALUES (NULL, '%d', %f, %f, %f, %d);",
g_WaffenLager[frakID][WL_iFraktion], g_WaffenLager[frakID][WL_fX], g_WaffenLager[frakID][WL_fY], g_WaffenLager[frakID][WL_fZ], g_WaffenLager[frakID][WL_iWaffenTeile]);
mysql_function_query(gSQL, mainQuery, false, "", "");
}
format(string, sizeof(string), "{FFFF00}[CREATE] {15951F}%s {FFFF00}hat ein Waffenlager für Fraktion ID: {15951F}%d {FFFF00}erstellt!", GetName(playerid), frakID);
SendAdminMessage(COLOR_WHITE, string);
return 1;
Alles anzeigen
MAX_FRACS ist auf 23 definiert!
g_waffenLager oder factionNames ist wohl nur auf 20 definiert
Guten Abend,
ich hab folgendes Problem.
[debug] Run time error 4: "Array index out of bounds"
[debug] Attempted to read/write array element at index 83 in array of size 7
[debug] AMX backtrace:
[debug] #0 000a2374 in public LadeFraktionFahrzeugDaten () at C:\SAMP\ARP2.0\pawno\include\../include/systeme/frakautos.inc:63
https://hastebin.com/ozosoruzaz.m
Hier ist der Code dazu zu finden.
Ich weiß einfach nicht wo der Fehler liegt.
Danke im Voraus.
MfG
Allrounder18
Edit: MAX_FRAKTIONEN = 7
Wie ist query definiert?
Wie ist query definiert?
Schon erledigt danke, ja lag an Query der anders definiert war
Ich kam bei meinem Problem siehe 2 Posts über mir etwas weiter.
Jedoch kommt da nen Error.
Ich habe:
veh_car_counter[MAX_FRAKTION][MAX_FRAKTAGS],
#define MAX_FRAKTAGS = 7
c = veh_car_counter[FraktionDaten[FrakFahrzeugInfo[id][frakfahrzeug_Fraktion]]][fraktion_Tag];
Error:
error 033: array must be indexed(variable "FraktionDaten")
Was muss ich hier machen?
Alles anzeigenIch kam bei meinem Problem siehe 2 Posts über mir etwas weiter.
Jedoch kommt da nen Error.
Ich habe:
veh_car_counter[MAX_FRAKTION][MAX_FRAKTAGS],
#define MAX_FRAKTAGS = 7c = veh_car_counter[FraktionDaten[FrakFahrzeugInfo[id][frakfahrzeug_Fraktion]]][fraktion_Tag];
Error:
error 033: array must be indexed(variable "FraktionDaten")
Was muss ich hier machen?
Könntest du den FraktionDaten Array zeigen, damit man den Fehler finden kann.
Das ganze würde ich sowieso etwas überdenken. Wieso musst du denn jedes einzelne Fahrzeug von einem Spieler selektieren? Reicht es nicht, alle zu selektieren und das in LoadPlayerVehicles() zu verarbeiten? Ohne jetzt weiteren Code zu sehen würde ich einfach behaupten, dass das auch ginge. Und da sparst du dir dann die "MaxVehicles(playerid)"-Anzahl an Queries.
Ansonsten, wie wird query deklariert?
Könntest du den FraktionDaten Array zeigen, damit man den Fehler finden kann.
Hat sich bereits erledigt, danke trotzdem.
Sorry für die späte Antwort.
Es sollen maximal die Fahezeuge geladen werden die er auch derzeit nutzt.
So wird Sie definiert.
Guten Tag,
Spieler[pID][pLawyerPoints] kann man jemand punkte für sein Skill geben und das geht nach punkten.
Wie kann ich sagen wen ich jetzt sage ich setze den Skill auf 1 das er die Punkte erhält um einige zeilen zu sparen?
guten morgen,ich hatte die videos angeschaut die ich velinke.
das problem ist ich registriere aberkommt nach regitrieren nix,im video bei Mogly1 schon.
Script code
#include <a_samp>
#include <a_mysql>
#include <md5>
//MYSL DATEN
#define MYSQL_HOST "127.0.0.1"
#define MYSQL_USER "root"
#define MYSQL_DATA "selfmade"
#define MYSQL_PASS ""
new Handle;
enum playerInfo{
db_id,
pEingeloggt,
pNeuling,
pAlter,
pGeschlecht,
pSkin,
Float:pRussi,
Float:pLeben
};
new pInfo[MAX_PLAYERS][playerInfo];
//DIALOGE
#define DIALOG_REGISTER 1
#define DIALOG_CHAR1 2
#define DIALOG_CHAR2 3
#define DIALOG_CHAR3 4
#define DIALOG_LOGIN 5
//Farben
#define geld 0xFFFF00FF
#define weiss 0xFFFFFFFF
main()
{
print("\n----------------------------------");
print(" selfmade by kevin");
print("----------------------------------\n");
}
public OnGameModeInit()
{
SetGameModeText("Selfmade v0,0,0");
//MYSQL Verbindung
Handle=mysql_connect (MYSQL_HOST,MYSQL_USER,MYSQL_DATA,MYSQL_PASS);
if (mysql_errno() <1) print ("MYSQL: Die Verbindung war erfolgreich!"),
mysql_log (LOG_ALL);else print ("MYSQL: Die Verbindung konnte nicht hergestellt werden! | Server wirt herundergefahren!"),
SendRconCommand ("exit");
return 1;
}
public OnGameModeExit()
{
return 1;
}
public OnPlayerRequestClass(playerid, classid)
{
SetSpawnInfo(playerid,0,0,0,0,0,0,0,0,0,0,0,0);
SpawnPlayer(playerid);
return 1;
}
public OnPlayerConnect(playerid)
{
new query [256];
mysql_format (Handle, query, sizeof (query), "SELECT * FROM user WHERE Username='%e'",Spielername(playerid));
mysql_tquery(Handle,query,"UserCheck","i",playerid);
ClearChat(playerid);
TogglePlayerSpectating(playerid,1);
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
return 1;
}
public OnPlayerSpawn(playerid)
{
SetPlayerVirtualWorld(playerid,0);
SetCameraBehindPlayer(playerid);
TogglePlayerControllable(playerid,1);
if(pInfo[playerid][pNeuling]==1)
{
ClearChat(playerid);
SendClientMessage(playerid,geld,"Herzlich Willkommen!");
SetPlayerPos(playerid,858.8041,-1655.6134,13.5523);
SetPlayerFacingAngle(playerid,1.0462);
pInfo[playerid][pNeuling]=0;
pInfo[playerid][pLeben]=100;
if(pInfo[playerid][pGeschlecht]==1)
{
SetPlayerSkin(playerid,60);
}
else
{
SetPlayerSkin(playerid,40);
}
GameTextForPlayer(playerid,"~y~Wilkommen ~n~auf ~n~Den besten ~g~Sever",6000,4);
}
return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
return 1;
}
public OnVehicleSpawn(vehicleid)
{
return 1;
}
public OnVehicleDeath(vehicleid, killerid)
{
return 1;
}
public OnPlayerText(playerid, text[])
{
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp("/mycommand", cmdtext, true, 10) == 0)
{
// Do something here
return 1;
}
return 0;
}
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
return 1;
}
public OnPlayerExitVehicle(playerid, vehicleid)
{
return 1;
}
public OnPlayerStateChange(playerid, newstate, oldstate)
{
return 1;
}
public OnPlayerEnterCheckpoint(playerid)
{
return 1;
}
public OnPlayerLeaveCheckpoint(playerid)
{
return 1;
}
public OnPlayerEnterRaceCheckpoint(playerid)
{
return 1;
}
public OnPlayerLeaveRaceCheckpoint(playerid)
{
return 1;
}
public OnRconCommand(cmd[])
{
return 1;
}
public OnPlayerRequestSpawn(playerid)
{
return 1;
}
public OnObjectMoved(objectid)
{
return 1;
}
public OnPlayerObjectMoved(playerid, objectid)
{
return 1;
}
public OnPlayerPickUpPickup(playerid, pickupid)
{
return 1;
}
public OnVehicleMod(playerid, vehicleid, componentid)
{
return 1;
}
public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
{
return 1;
}
public OnVehicleRespray(playerid, vehicleid, color1, color2)
{
return 1;
}
public OnPlayerSelectedMenuRow(playerid, row)
{
return 1;
}
public OnPlayerExitedMenu(playerid)
{
return 1;
}
public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
{
return 1;
}
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
return 1;
}
public OnRconLoginAttempt(ip[], password[], success)
{
return 1;
}
public OnPlayerUpdate(playerid)
{
return 1;
}
public OnPlayerStreamIn(playerid, forplayerid)
{
return 1;
}
public OnPlayerStreamOut(playerid, forplayerid)
{
return 1;
}
public OnVehicleStreamIn(vehicleid, forplayerid)
{
return 1;
}
public OnVehicleStreamOut(vehicleid, forplayerid)
{
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
//mysql dialogen
if(dialogid == DIALOG_REGISTER)
{
if(!response)return Kick(playerid);
SetPVarString(playerid,"passwortvar",inputtext);
if(strlen(inputtext) >=4)
{
ShowPlayerDialog(playerid,DIALOG_CHAR1,DIALOG_STYLE_MSGBOX,"{00FFFA}Charackter 1/3","{FFFFFF}Welches Geschlecht bist du?","{00FFFA}Männlich","{00FFFA}Weiblich");
}
else
{
ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_PASSWORD,"{00FFFA}Neuanfang","{00FFFA}Herzlich Willkommen{FFFFFF},\n{FF0023}Fehler: Eingabe ist Falsch{FFFFFF}\n auf unseren Server bitte geben ein Passwort ein","{00FFFA}Weiter","{00FFFA}Abbrechen");
}
}
if(dialogid == DIALOG_CHAR1)
{
if(response)
{
//männ
pInfo[playerid][pGeschlecht]=1;
ShowPlayerDialog(playerid,DIALOG_CHAR2,DIALOG_STYLE_LIST,"{00FFFA}Charackter 2/3","{00AFFF}Hast du die Regeln gelesen?\n{00FF14}Ja\n{FF002D}Nein\n{F000FF}Was ech gibt Regeln?","00FFFA}Weiter","00FFFA}Abbrechen");
}
else
{
//weib
pInfo[playerid][pGeschlecht]=2;
ShowPlayerDialog(playerid,DIALOG_CHAR2,DIALOG_STYLE_LIST,"{00FFFA}Charackter 2/3","{00AFFF}Hast du die Regeln gelesen?\n{00FF14}Ja\n{FF002D}Nein\n{F000FF}Was ech gibt Regeln?","00FFFA}Weiter","00FFFA}Abbrechen");
}
}
if(dialogid == DIALOG_CHAR2)
{
if(response)
{
if(listitem==0)
{
ShowPlayerDialog(playerid,DIALOG_CHAR2,DIALOG_STYLE_LIST,"{00FFFA}Charackter 2/3","{00AFFF}Hast du die Regeln gelesen?\n{00FF14}Ja\n{FF002D}Nein\n{F000FF}Was ech gibt Regeln?","00FFFA}Weiter","00FFFA}Abbrechen");
}
if(listitem==1)
{
Kick(playerid);
}
if(listitem==2)
{
Kick(playerid);
}
if(listitem==3)
{
ShowPlayerDialog(playerid,DIALOG_CHAR3,DIALOG_STYLE_INPUT,"{00FFFA}Charackter 3/3","{FFFFFF}Gebe nun Dein alter an(zwichen 18 bist 48 )","{00FFFA}Weiter","{00FFFA}Abbrechen");
}
}
else
{Kick (playerid);}
}
if(dialogid == DIALOG_CHAR3)
{
if(response)
{
if(IsNummeric(inputtext))
{
//new alterabfrage=strval(inputtext);
if(strval(inputtext)>=18 && strval(inputtext) <=48)
{
pInfo[playerid][pAlter]=strval(inputtext);
pInfo[playerid][pEingeloggt]=1;
pInfo[playerid][pNeuling]=1;
new query [256],passworteingabe[128];
GetPVarString(playerid,"passwortvar",passworteingabe,128);
mysql_format(Handle, query, sizeof(query), "INSERT INTO user (Username, Passwort) VALUES ('%e',MD5('%e'))",Spielername(playerid),passworteingabe);
mysql_function_query(Handle,query,true,"OnplayerRegister","i",playerid);
printf("%s",query);
}
else
{
ShowPlayerDialog(playerid,DIALOG_CHAR3,DIALOG_STYLE_INPUT,"{00FFFA}Charackter 3/3","\n{FF0023}Fehler: Eingabe ist Falsch{FFFFFF}Gebe nun Dein alter an(zwichen 18 bist 48 )","{00FFFA}Weiter","{00FFFA}Abbrechen");
}
}
else
{
ShowPlayerDialog(playerid,DIALOG_CHAR3,DIALOG_STYLE_INPUT,"{00FFFA}Charackter 3/3","\n{FF0023}Fehler: Eingabe ist Falsch{FFFFFF}Gebe nun Dein alter an(zwichen 18 bist 48 )","{00FFFA}Weiter","{00FFFA}Abbrechen");
}
}
else
{Kick (playerid);}
}
return 1;
}
public OnPlayerClickPlayer(playerid, clickedplayerid, source)
{
return 1;
}
//OnPlayerRegister
forward OnPlayerRegister(playerid);
public OnPlayerRegister(playerid)
{
pInfo[playerid][db_id]=cache_insert_id(Handle);
TogglePlayerSpectating(playerid,0);
SpawnPlayer(playerid);
SetCameraBehindPlayer(playerid);
return 1;
}
//User-Check
forward UserCheck(playerid);
public UserCheck(playerid)
{
new num_rows, num_fields;
cache_get_data(num_rows,num_fields,Handle);
SetPlayerVirtualWorld(playerid,1);
if(num_rows == 0)
{
//reg
ClearChat(playerid);
ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_PASSWORD,"{00FFFA}Neuanfang","{00FFFA}Herzlich Willkommen{FFFFFF},\n auf unseren Server bitte geben ein Passwort ein","{00FFFA}Weiter","{00FFFA}Abbrechen");
}
else
{
//log
ClearChat(playerid);
ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"{00FFFA}Einlogen","{00FFFA}Willkommen Zurück{FFFFFF},\n auf unseren Server bitte geben Dein Passwort ein","{00FFFA}Weiter","{00FFFA}Abbrechen");
}
return 1;
}
//Spielername
stock Spielername(playerid)
{
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,MAX_PLAYER_NAME);
return name;
}
//Clear-Chat
stock ClearChat(playerid)
{
for(new i = 0;i<100;i++)
{
SendClientMessage(playerid,weiss,"");
}
return 1;
}
//IsNummeric
stock IsNummeric(string[])
{
for(new i=0,j=strlen(string);i<j;i++)
{
if((string[i] > '9' || string[i] < '0'))return 0;
}
return 1;
}
Alles anzeigen
Server-log
----------
Loaded log file: "server_log.txt".
----------
SA-MP Dedicated Server
----------------------
v0.3.7-R2, (C)2005-2015 SA-MP Team
[08:15:13]
[08:15:13] Server Plugins
[08:15:13] --------------
[08:15:13] Loading plugin: streamer
[08:15:13]
*** Streamer Plugin v2.9.4 by Incognito loaded ***
[08:15:13] Loaded.
[08:15:13] Loading plugin: mysql
[08:15:13] >> plugin.mysql: R39-3 successfully loaded.
[08:15:13] Loaded.
[08:15:13] Loaded 2 plugins.
[08:15:13]
[08:15:13] Filterscripts
[08:15:13] ---------------
[08:15:13] Loading filterscript 'samplife-mapps.amx'...
[08:15:13] Server Objecte werden geladen
[08:15:13] 0 Gemappte Objecte Geladen
[08:15:13] Loaded 1 filterscripts.
[08:15:13] MYSQL: Die Verbindung war erfolgreich!
[08:15:13]
----------------------------------
[08:15:13] selfmade by kevin
[08:15:13] ----------------------------------
[08:15:13] Number of vehicle models: 0
[08:16:55] [connection] 127.0.0.1:57497 requests connection cookie.
[08:16:56] [connection] incoming connection: 127.0.0.1:57497 id: 0
[08:16:56] [join] ShadowKev1999 has joined the server (0:127.0.0.1)
[08:17:19] INSERT INTO user (Username, Passwort) VALUES ('ShadowKev1999',MD5(passwort entfernt))
[08:17:31] [part] ShadowKev1999 has left the server (0:1)
Alles anzeigen
edit by Douq: Passwort aus server log entfernt