Das musste mir jetzt mal erklären XDD.
Den ich bin ja gelernter Schlosser und Schmied also irgendwie Fail XDD.
Ich denke das würde so halten aber ok ich mein das sind Sachen die man jederzeit ausbessern kann.
Beiträge von Cryptex
-
-
Das is ein Fail bei den pics hab die gerade noch mal nachprüft und die liegt schön am Boden auf und oben am Podest.
nene, das meine ich ja nicht, da muss ein pfeiler oder so drunter..
So hält ja keine konstruktion -
die treppe schwebt zu sehr.. setze da mal noch was drunter,
sonst nice -
Ich habs ja auch in 15min geschriebenHeute morgen geschwind
Painic28: Beim Kaufen das hin machen:
bInfo[inBizz[playerid]][Konto] += 1000; //Wenn drauf kommen soll | 1000 = Geldbetrag
bInfo[inBizz[playerid]][Konto] -= 1000; // Wenn Minus sein soll | 1000 = Geldbetrag
Nette für anfänger,
ich muss bei mir eig. mein Haussystem umschreiben und paar extra funktionen einbauen und schon hat man ein business system -
bist du per navicat als root online?
wenn ja musst du ja deine db nach außen freigeben ne -
stimmt habe ich auch glatt übersehen
format(string,sizeof(string), "INSERT INTO `accounts` SET `Name` = '%s', `Passwort` = '%s', `Adminlevel` = 0, `Geld` = 0, `Fraktion` = 0, `Rank` = 0, `Level` = 1, `Respektpunkte` = 0, `Levelkosten` = 5000, `Benötigte Respektpunkte` = 2, `Skin` = 0",name,key);
-
mach mal das noch so rein
GetPlayerName(playerid, name, MAX_PLAYER_NAME);
mysql_real_escape_string(name,name);
mysql_real_escape_string(Passwort,key); -
neue?
gibst die schon nicht ne weile?
ich habe das bei mir auf dem root und keine fehler... -
Wenn du spezielle zeichen im namen hast oder im pw musst du mysql_real_escape_string benutzen...
-
-
if(dialogid == DIALOG_SMARKT)
{
if(response)
{
if(listitem == 0)
{
if(PlayerInfo[playerid][pCrack] == 0)
{
new price = 20 * CRACKPREIS;
format(strieeng, sizeof(strieeng), "* Du hast dir Heroin für $%d gekauft. 10 Stück.",price);
SendClientMessage(playerid, COLOR_LIGHTBLUE, strieeng);
PlayerInfo[playerid][pCrack] = 10;
GivePlayerMoney(playerid, - price);
return 1;
}
else
{
SendClientMessage(playerid, COLOR_LIGHTBLUE," * Du darfst erst weider kaufen wenn du dein Heroin aufgebraucht hast.");
}
}
}
return 1;
} -
du hast aber nicht bei der db erstellung integer benutzt oder?
//edit
spät gesehen...musst du das nicht floaten?
-
Hallo,
ich brauche wieder denkhilfe da ich wieder am Vehiclesystem hänge.
Ich weiss nicht wie ich die ID´s der Vehicles aus der Datenbank mit den richtigen Vehicle ID´s verknüpfe.
Wie kann ich das am besten machen so dass ich später halt die Vehicles parken kann, wenn ich im fahrzeug sitze (getplayervehicleid), der auch weis das fahrzeugid nr soundso auch zum fahrzeug aus der db gehört.
Es muss ja die DB id = der echten vehicleid sein damitt ich die immer abfragen kann oder?
Wenn ich dann aber lücken in der DB habe z.b. löscht einer sein vehicle dann ist die ID ja weg somit funktioniert meine (schlaue*) logik wieder nicht.Ich kann grad nicht so weit denken darum bitte ich um hilfe
Enums der Fahzeuge, Normale Vehicles extra und PlayerVehicles extra
enum Fahrzeuge
{
fvID,
fvModel,
Float:fvX,
Float:fvY,
Float:fvZ,
Float:fvA,
fvColor1,
fvColor2,
fvType
//Vehicle Types
//0 = Standart
//1 = Grün
//2 = Lila
//3 = Gelb
//100 = Admin
//101 = Polizei
//10 = CarShop 1
//11 = CarShop 2
}enum PlayerFahrzeuge
{
fvID,
fvModel,
Float:fvX,
Float:fvY,
Float:fvZ,
Float:fvA,
fvColor1,
fvColor2,
fvPaintjob,
fvPrice,
fvLocked,
fvNeon,
fvBesitzer[MAX_PLAYER_NAME]
}Abfrage wenn einer im Fahrzeug und wenn Typ.. so und so dann Mache dies und das
if(newstate == PLAYER_STATE_DRIVER)
{
new veh = GetPlayerVehicleID(playerid);
if(Vehicles[veh][fvID] == veh)
{
SendClientMessage(playerid, green, "Selbe ID");
}
else
{
SendClientMessage(playerid, red, "Andere ID");
}
if(Vehicles[GetPlayerVehicleIDEX(playerid)][fvType] == 10)
{
SendClientMessage(playerid, green, "{FF0000}[SERVER] {FFFFFF}Du kannst dir das Fahzeug mit /buyvehicle kaufen");
}
else if(Vehicles[GetPlayerVehicleID(playerid)][fvType] == 11)
{
SendClientMessage(playerid, green, "{FF0000}[SERVER] {FFFFFF}Du kannst dir das Fahzeug mit /buyvehicle kaufen");
}
}MySql Stock um die Normalen/Player Vehicles zu Laden
stock LoadPlayerVehicle(playerid)
{
new ID, String[1000], Name[MAX_PLAYER_NAME], Query[500];
GetPlayerName(playerid, Name, MAX_PLAYER_NAME);
mysql_real_escape_string(Name, Name);
format(Query, sizeof(Query), "SELECT * FROM `PlayerVehicles` WHERE `Besitzer` = '%s'", Name);
mysql_query(Query);
mysql_store_result();
if(mysql_num_rows() > 0)
{
while(mysql_fetch_row(String))
{
sscanf(String, "p<|>iiffffiiiiiis[200]", PlayerVehicles[ID][fvID], PlayerVehicles[ID][fvModel], PlayerVehicles[ID][fvX], PlayerVehicles[ID][fvY], PlayerVehicles[ID][fvZ], PlayerVehicles[ID][fvA], PlayerVehicles[ID][fvColor1], PlayerVehicles[ID][fvColor2], PlayerVehicles[ID][fvPaintjob], PlayerVehicles[ID][fvPrice], PlayerVehicles[ID][fvLocked], PlayerVehicles[ID][fvNeon], PlayerVehicles[ID][fvBesitzer]);
PlayerVehicles[ID][fvID] = AddStaticVehicle(PlayerVehicles[ID][fvModel], PlayerVehicles[ID][fvX], PlayerVehicles[ID][fvY], PlayerVehicles[ID][fvZ], PlayerVehicles[ID][fvA], PlayerVehicles[ID][fvColor1], PlayerVehicles[ID][fvColor2]);
SetVehicleHealth(PlayerVehicles[ID][fvID], 999.0);
ID++;
}
}
mysql_free_result();
return 1;
}stock LoadVehicles()
{
new ID = 1, String[1000];
mysql_query("SELECT * FROM `Vehicles`");
mysql_store_result();
if(mysql_num_rows() > 0)
{
while(mysql_fetch_row(String))
{
sscanf(String, "p<|>iiffffiii", Vehicles[ID][fvID], Vehicles[ID][fvModel], Vehicles[ID][fvX], Vehicles[ID][fvY], Vehicles[ID][fvZ], Vehicles[ID][fvA], Vehicles[ID][fvColor1], Vehicles[ID][fvColor2], Vehicles[ID][fvType]);
Vehicles[ID][fvID] = AddStaticVehicleEx(Vehicles[ID][fvModel], Vehicles[ID][fvX], Vehicles[ID][fvY], Vehicles[ID][fvZ], Vehicles[ID][fvA], Vehicles[ID][fvColor1], Vehicles[ID][fvColor2], (5*60));
SetVehicleHealth(Vehicles[ID][fvID], 999.0);
ID++;
}
}
mysql_free_result();
printf("--> %i Vehicles Loaded FromMySQL", ID);
return 1;
}Abfrage ob Vehicle ID = DatenbankID?!
stock GetPlayerVehicleIDEX(playerid)
{
new veh = GetPlayerVehicleID(playerid);
if(Vehicles[veh][fvID] == veh) return veh;
for(new i; i < MAX_VEHICLES; i++)
{
if(Vehicles[i][fvID] == veh) return i;
}
return -1;
}Parkbefehl (NOCH NICHT FERTIG DA ICH NICHT WEIS WIE ICH DAS AM BESTEN MACHEN KANN)
CMD:park(playerid, params[])
{
if(GetPlayerState(playerid)==PLAYER_STATE_DRIVER)
{
if((!strcmp(PlayerVehicles[GetPlayerVehicleID(playerid)][fvBesitzer], SpielerNameAnzeige(playerid), false)))
{
new Float:vehx, Float:vehy, Float:vehz, Float:veha, Name[MAX_PLAYER_NAME], SQL[500];
GetPlayerName(playerid, Name, MAX_PLAYER_NAME);
mysql_real_escape_string(Name, Name);GetVehiclePos(GetPlayerVehicleID(playerid), vehx, vehy, vehz);
GetVehicleZAngle(GetPlayerVehicleID(playerid), veha);format(SQL, sizeof(SQL), "UPDATE PlayerVehicles SET VehicleX = '%f' VehicleY = '%f' VehicleZ = '%f' VehicleAngle = '%f' WHERE Besitzer = '%s'", vehx, vehy, vehz, veha, Name);
mysql_query(SQL);
SendClientMessage(playerid, green, "{FF0000}[SERVER] {FFFFFF}Du hast das Fahrzeug geparkt");
}
else
{
SendClientMessage(playerid, red, "{FF0000}[SERVER] {FFFFFF}Das ist nicht dein Fahzeug");
}
}
else
{
SendClientMessage(playerid, red, "{FF0000}[SERVER] {FFFFFF}Du musst als Fahrer im Fahrzeug sitzen");
}
return 1;
} -
und zu guter schluss, es geht
man man man, lag zuletzt an der querry, jop die nachricht bekomme ich, sonst würde ich hier nicht fragen hehe
danke an alle.. und besonders an d3adlockzxD
stock AddPlayerVehicleToFile(vModel, Float:vX, Float:vY, Float:vZ, Float:vA, vColor1, vColor2, vType, vBesitzer[], vPreis)
{
new Query[400];
format(Query, sizeof(Query), "INSERT INTO `Vehicles` (`VehicleModel`, `VehicleX`, `VehicleY`, `VehicleZ`, `VehicleAngle`, `Color1`, `Color2`, `VehicleType`, `Besitzer`, `Price`) VALUES ('%d', '%f', '%f', '%f', '%f', '%d', '%d', '%d', '%s', '%d')",
vModel, vX, vY, vZ, vA, vColor1, vColor2, vType, vBesitzer, vPreis);
mysql_query(Query);
mysql_free_result();
return 1;
} -
Armor gilt nicht als Health.
health = 100
Armor = 100ist nicht health = 200.
du weis was ich meine
-
was weis ich was er vor hat,
man kann immer alles detalierter abfragen.. aber das ist halt die einfachste metode
aber 160hp ist ja auch mal fail, 100 max mehr würde ich kein geben, wenn dan 60 panzerung, dann hast du deine 160 -
Jo, die größe habe ich einfach so eingelegt um zu gucken ob da was flasch ist,
danke für deine hilfe, aber da ist immernoch fas faul...CMD:abuyvehicle(playerid, params[])
{
new rand = random(sizeof(RandomSpawnVehicleShop)), vModel, vColor1, vColor2, vType, vBesitzer[500], vPreis;
vModel = GetVehicleModel(GetPlayerVehicleID(playerid));
GetVehicleColor(GetPlayerVehicleID(playerid), vColor1, vColor2);
vType = 999;
format(vBesitzer, 500, "%s", SpielerNameAnzeige(playerid));
vPreis = 100;if(Vehicles[GetPlayerVehicleIDEX(playerid)][fvType] == 10)
{
AddPlayerVehicleToFile(vModel, RandomSpawnVehicleShop[rand][0], RandomSpawnVehicleShop[rand][1], RandomSpawnVehicleShop[rand][2], RandomSpawnVehicleShop[rand][3], vColor1, vColor2, vType, vBesitzer, vPreis);
SendClientMessage(playerid, green, "{FF0000}[SERVER] {FFFFFF}Du hast dir das Fahzeug gekauft");
}
return 1;
} -
ich selber würde die hp anzeige auf 99 setzen und so prüfen wenn über 99 ist dann kick..
aber er will das halt so haben.. warum soll ich das lassen, er ist halt kein proun warum hat das nicht mit healthhack zu tun, wenn einer seine hp höher setzen kann als erlaubt ist das hacken
-
stimmt, ich währe nicht drauf gekommen jedoch macht er immernoch nicht, muss aber nah dran sein
aktuell sieht das so aus
new Float:RandomSpawnVehicleShop[][4] =
{
{-1630.91, 1289.79, 6.74587, 134.595},
{-1630.91, 1289.79, 6.74587, 134.595}
};CMD:abuyvehicle(playerid, params[])
{
new rand = random(sizeof(RandomSpawnVehicleShop)), vModel, vColor1, vColor2, vType, vBesitzer[500], vPreis;
vModel = GetVehicleModel(GetPlayerVehicleID(playerid));
GetVehicleColor(GetPlayerVehicleID(playerid), vColor1, vColor2);
vType = 999;
vBesitzer = SpielerNameAnzeige(playerid);
vPreis = 100;if(Vehicles[GetPlayerVehicleIDEX(playerid)][fvType] == 10)
{
AddPlayerVehicleToFile(vModel, RandomSpawnVehicleShop[rand][0], RandomSpawnVehicleShop[rand][1], RandomSpawnVehicleShop[rand][2], RandomSpawnVehicleShop[rand][3], vColor1, vColor2, vType, vBesitzer, vPreis);
SendClientMessage(playerid, green, "{FF0000}[SERVER] {FFFFFF}Du hast dir das Fahzeug gekauft");
}
return 1;
}stock AddPlayerVehicleToFile(vModel, Float:vX, Float:vY, Float:vZ, Float:vA, vColor1, vColor2, vType, vBesitzer[], vPreis)
{
new Query[200];
format(Query, sizeof(Query), "INSERT INTO `Vehicles` (`VehicleModel`, `VehicleX`, `VehicleY`, `VehicleZ`, `VehicleAngle`, `Color1`, `Color2`, `VehicleType`, `Besitzer`, `Price`) VALUES ('%d', '%f', '%f', '%f', '%f', '%d', '%d', '%d', '%s', '%d')",
vModel, vX, vY, vZ, vA, vColor1, vColor2, vType, vBesitzer, vPreis);
mysql_query(Query);
mysql_free_result();
return 1;
} -
public antihealth()
{
new Float: health;
for(new i = 0; i < MAX_PLAYERS; i++)
{
GetPlayerHealth(i, health);
if(health > 100)
{
SendClientMessage(i,rot,"Stop Health-Hacking!!");
Kick(i);
}
}
return 1;
}