Ich hab aber das hier 2x:
Dann hast du...2x INSERT gemacht ![]()
Solltest nur 1x machen..
mit einem Delete query..oder einfach glaube iwo gibts da n klick zum löschen...
Es ist natürlich wichtig..dass nur eine Reihe existiert...
Ich hab aber das hier 2x:
Dann hast du...2x INSERT gemacht ![]()
Solltest nur 1x machen..
mit einem Delete query..oder einfach glaube iwo gibts da n klick zum löschen...
Es ist natürlich wichtig..dass nur eine Reihe existiert...
Nutze eventuell einfach mal nur format, anstatt mysql_format ![]()
and dem pquery kann es eigentlich nicht liegen, da hier ein neuer Thread gestartet wird...
Wird aber dann nicht in der DB ediitiert ...
...dooch wenn du in der Funktion bei onkeydown einen Ajax request machst..zu einem PHP Skript...und diesen Wert übergibst, kann dieser geändert werden in der Datenbank ![]()
Kann mir jemand sowas mal zeigen bitte?
Bin mir nicht ganz sicher was du suchst...
meinste sowas: https://jsfiddle.net/s3ksv8h8/
Wenn ja, kannste einfach einen Ajax Request noch hinzufügen der das dann alles Server-Seitig prüft ![]()
Kannst du mal die Deklaration der Funktionen von SchonGewusst und ShowInfo zeigen? ![]()
..dann zeig mal wie du das alles jetzt gemacht hast.. ![]()
Was ich mach ich bei der Funktion falsch?
Du musst einen Callback aufrufen...
stock LoadFreeRentVehicles()
{
mysql_pquery(handle, "SELECT id FROM free_rent_vehs", "LoadRentCache");
return 1;
}
forward LoadRentCache();
public LoadRentCache()
{
new rows, id;
cache_get_row_count(rows);
printf("Gefundene Rows: %i", rows);
if(rows == 0) return 1;
for(new i = 0; i < rows; i++)
{
cache_get_value_name_int(i, "id", id);
printf("Lade ID: %i", id);
LoadFreeRentVehicle(id);
}
return 1;
}
Alles anzeigen
Dr. Frauenarzt: Dein Fehler...ist aufgrund des Codes nicht ersichtlich...
Zeig nochmal genau..der Code der ausgegeben wird..und der Ausgegeben werden sollte..markiere das am besten jeweils ![]()
Die Errors treten auf, da du nicht die neuste SA:MP Include (Server) Version hast...
Downloade dir hier den neusten Server: http://www.sa-mp.com/download.php
das return 1 in der Schleife entfernen da es sonst nur einmal gesendet wird und setze das SetPlayerArmour und PlayerPlaySound nach oder vor der schleife da du es sonst pro spieler in der Fraktion hörst / Rüstung bekommst. @Kaliber
Nein..das ist alles richtig so.
Es soll nur der Spieler Rüstung bekommen, der den Command eingibt...
Hier mal deinen Code umgeschrieben..das sollte eigentlich reichen:
ocmd:getarmour(playerid)
{
if(!DarfPlayerCommand(playerid)) return ErrorMsg(playerid,"Du kannst keine Befehle benutzen.");
switch(SpielerInfo[playerid][Frakt])
{
case 2: if(!IsPlayerInRangeOfPoint(playerid,3,1712.0771,-1640.1244,20.2239)) return ErrorMsg(playerid,"Du kannst dich hier nicht ausrüsten.");
case 4: if(!IsPlayerInRangeOfPoint(playerid,3,1174.6534,-1186.5641,995.9297)) return ErrorMsg(playerid,"Du kannst dich hier nicht ausrüsten.");
case 5: if(!IsPlayerInRangeOfPoint(playerid,3,2498.6194,-1710.2561,1014.7422)) return ErrorMsg(playerid,"Du kannst dich hier nicht ausrüsten.");
case 8: if(!IsPlayerInRangeOfPoint(playerid,3,505.9581,-87.2091,998.9609)) return ErrorMsg(playerid,"Du kannst dich hier nicht ausrüsten.");
case 9: if(!IsPlayerInRangeOfPoint(playerid,3,960.7534,-59.3062,1001.1172)) return ErrorMsg(playerid,"Du kannst dich hier nicht ausrüsten.");
case 10: if(!IsPlayerInRangeOfPoint(playerid,3,-559.5900,2544.5581,31.5023)) return ErrorMsg(playerid,"Du kannst dich hier nicht ausrüsten.");
default: return ErrorMsg(playerid,"Du bist nicht in der jewaligen Fraktion.");
}
if(gettime()<SpielerInfo[playerid][AntiHealInFight])
{
new healtime=SpielerInfo[playerid][AntiHealInFight]-gettime();
format(string,sizeof(string),"Du kannst dich erst wieder in %i:%02d Minuten heilen oder eine Rüstung überziehen.",healtime/60,healtime%60);
return ErrorMsg(playerid,string);
}
for(new i; i<MAX_FBANKEN; i++)
{
if(Fbank[i][Fraktion]!=SpielerInfo[playerid][Frakt]||!Fbank[i][fwesten]) continue;
Fbank[i][fwesten]-=1;
format(string,sizeof(string),"<< Fraktionsmitglied %s hat sich eine Schutzweste aus der Fbank genommen. >>",SpielerName(playerid));
sendFraktMsg(SpielerInfo[playerid][Frakt],COLOR_LIGHTBLUE,string);
PlayerPlaySound(playerid,1054,0.0,0.0,0.0);
SetPlayerArmour(playerid,100);
return 1;
}
return ErrorMsg(playerid,"Es befinden sich nicht mehr genügend Westen in der F-Bank.");
}
Alles anzeigen
Nah mein Fehler..anscheinend brauchste bei der Funktion kein true..lösch das raus, also nur:
mysql_pquery(handle, "SELECT * FROM geldverwaltung", "LoadGeldverwaltung");
Mach mal:
if(IsPlayerNPC(playerid))
{
new botname[MAX_PLAYER_NAME];
GetPlayerName(playerid,botname,sizeof(botname));
if(!strcmp(botname,"BOT0",true))SetPlayerSkin(playerid,1);
return 1; //Das hier ist wichtig!
}
Und ... zeig mal dein NPC-Skript...das muss ja auch ein OnFoot NPC sein und so ![]()
PS: a_npc brauchst (bzw sollst) du in deinem Gamemmode nicht inkludieren, dass ist nur für NPC-Skripte gedacht ![]()
...mach das mal so wie ich das geschrieben habe...es geht hier um LoadGeldverwaltung..
Wie rufst du denn LoadGeldverwaltung auf? ![]()
Das sollte ungefähr so aussehen:
mysql_pquery(handle, "SELECT * FROM geldverwaltung", true, "LoadGeldverwaltung", "");
und aus dem stock mach mal ein:
forward LoadGeldverwaltung();
public LoadGeldverwaltung()
{
Unter OnPlayerRequestClass füg mal:
SetSpawnInfo(...);
SpawnPlayer(playerid);
Für den Bot hinzu ![]()
Und vergewissere dich, dass diese IsPlayerNPC Abfragen auch wirklich immer ganz oben im Callback stehen ![]()
...nein du sollst z.B. folgendes printen:
printf("Jailcashcop: %d",Geld[Jailcashcop]);
und dann schauen ob der Wert..dem der Datenbank übereinstimmt ![]()
so funktionierts schon mal nicht.
Wieso? o:
Hast es denn mal geprintet? ![]()
Das sieht eigentlich richtig aus ![]()
Ja..bevor du etwas Updaten kannst, musst du natürlich erstmal was reinladen...
Also mach einen ersten Insert Eintrag z.B. über PHPMyAdmin...
der so ungefähr aussieht:
INSERT INTO geldverwaltung (id,jailcashcop,jailcashrobber,arrestgeldcop,arrestgeldrobber,robtotgeld) VALUES (0,0,0,0,0,0)
![]()
PS: Da du hier nur einen Wert hast..sollte ID nicht auto_increment sein..das macht keinen Sinn ![]()
Füg in deiner Datenbank einfach ein Feld in die Tabelle ein, als Integer mit dem Namen id.
Und dann einfach 0 setzen (kannste auch default machen).
Dann kannste dein Query einfach so schreiben:
stock SaveGeldverwaltung()
{
new query[700];
mysql_format(handle, query,sizeof(query),"UPDATE geldverwaltung SET jailcashcop = '%d', jailcashrobber = '%d', arrestgeldcop = '%d', arrestgeldrobber = '%d', robtotgeld = '%d' WHERE `id`=0",
Geld[Jailcashcop],
Geld[Jailcashrobber],
Geld[ArrestGeldCop],
Geld[ArrestGeldRobber],
Geld[RobtotGeld]);
mysql_pquery(handle, query);
return 1;
}
Alles anzeigen
und beim Laden brauchste des nicht mal...könntest einfach SELECT * FROM geldverwaltung machen, da du ja nur eine Reihe hast, spielst das ja keine Rolle ![]()
Nun...also es soll nur eine Geldverwaltung geben? ![]()