@Zim30 ich bin ein kompletter neuling in Scripting Bereich für SAMP und weiß nicht mal was es alles gibt.
Ich finde es schade das man mir Neuling direkt erst mal sagt ich soll was googeln obwohl ich nicht mal bis grade ebend nicht wusste wie die Funktion heißt
Beiträge von Onjiary
-
-
Da ich noch recht unerfahren bin habe ich folgende frage:
Wenn man jetzt ein Object platziert mit dem SAMP-Map-EDITOR kann man dann auf das Object irgendwie ein Schriftzug drauf machen und selbst entscheiden welche Schriftart der Text haben soll?
-
Danke für die antworten.
/close
-
@Kraizy da man leider bei bplaced.net kein wbb 4.1.2 installieren kann bringt es mir leider nicht viel
-
Da kann ich kein wbb 4 drauf packen
-
Guten Morgen
Ich weiß nicht ob es hier reinpasst in den Bereich.
Gibt es irgendwo kostenlose Webspace wo man unbegrenzt nutzen kann ohne was zu zahlen?
-
-
@Jeffry nach dem ich dein Code benutzt habe kommt folgender Log-Fehler:
SQL[20:47:07] [WARNING] mysql_connect: no password specified (entwicklung.p:317 -> entwicklung.p:62) [20:49:19] [ERROR] error #1064 while executing query "UPADTE account SET level = '1',admin = '0',money = '47',fraktion = '0',frank = '0',spawn = '0' WHERE id = '1'": You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'UPADTE account SET level = '1',admin = '0',money = '47',fraktion = '0',frank = '' at line 1 (entwicklung.p:395 -> entwicklung.p:105)
-
Ich finde es sieht nicht schlecht aus
9,5/10 Punkte
Die 0,5Punkte sind deswegen weniger weil auf den Turm von der Feuerwehr mir persönlich ein Radar fehlt
-
Mein Code Sieht so aus @Jeffry und das ist von dein Tutorial für mysql r41
Definierungen:
Code
Alles anzeigen#include <a_samp> #include <a_mysql> #include <ocmd> #define MYSQL_HOST "127.0.0.1" #define MYSQL_USER "root" #define MYSQL_PASS "" #define MYSQL_DBSE "entwicklung" new MySQL:handle; //Forward definierungsbereich forward OnUserCheck(playerid); forward OnUserRegister(playerid); forward OnUserLogin(playerid); // //Farben #define green 0x008E00FF #define rot 0xFF0000FF #define blau 0x0000FFFF #define braun 0x7E3918FF #define gelb 0xFFDD00FF #define weiß 0xFFFFFFFF // //Diagloge definierungsbereich #define DIALOG_REGISTER 1 #define DIALOG_LOGIN 2 // //Spieler Information enum pDataEnum { p_id, bool:eingeloggt, pname[MAX_PLAYER_NAME], level, admin, pmoney, fraktion, frank, spawn } new PlayerInfo[MAX_PLAYER_NAME][pDataEnum]; //
Main bis OnPlayerConnect:
Code
Alles anzeigenmain() { print("\n----------------------------------"); print(" Kraft und Ehre"); print("----------------------------------\n"); } public OnGameModeInit() { // Don't use these lines if it's a filterscript SetGameModeText("Kraft und Ehre"); AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0); mysql_setupconnection(); return 1; } public OnGameModeExit() { mysql_close(handle); return 1; } public OnPlayerRequestClass(playerid, classid) { //Wenn der Spieler die Class-Selection betritt prüfe ob er bereits eingeloggt ist if(!PlayerInfo[playerid][eingeloggt]) { //Wenn nicht, dann prüfe ob der Spieler ein Konto hat new query[128]; mysql_format(handle,query,sizeof(query),"SELECT id FROM account WHERE name = '%e'",PlayerInfo[playerid][pname]); //Das Query wird abgesendet und die Playerid an OnUserCheck übergeben mysql_pquery(handle,query,"OnUserCheck","d",playerid); } return 1; } public OnPlayerConnect(playerid) { PlayerInfo[playerid][p_id] =0; PlayerInfo[playerid][eingeloggt] = false; PlayerInfo[playerid][level] = 1; PlayerInfo[playerid][admin] = 0; PlayerInfo[playerid][pmoney] = 0; PlayerInfo[playerid][fraktion] = 0; PlayerInfo[playerid][frank] = 0; PlayerInfo[playerid][spawn] = 0; GetPlayerName(playerid,PlayerInfo[playerid][pname],MAX_PLAYER_NAME); SetPlayerColor(playerid,weiß); SetPlayerScore(playerid,PlayerInfo[playerid][level]); return 1; }
OnPlayerDisconnect bis OnDialogResponse:
Code
Alles anzeigenpublic OnPlayerDisconnect(playerid, reason) { SaveUserStats(playerid); return 1; } public OnPlayerSpawn(playerid) { 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; } ocmd:autosetzen(playerid,params) { CreateVehicle(560, 2036.4069, 1348.0876, 10.8343, 0.0000, -1, -1, 100); SendClientMessage(playerid,blau,"Auto wurde gesetzt"); 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[]) { if(dialogid == DIALOG_REGISTER) { //spieler hat abbrechen gewählt if(!response)return Kick(playerid); //Wenn der Spieler kein oder ein zu kurzes, Passwort eingegeben hat if(strlen(inputtext) < 5)return ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_PASSWORD,"Registration","Bitte registriere dich; \n{FF0000}Mindestens 5 Zeichen!","Registrieren","Abbrechen"); //wenn alles passt wird spieler angelegt new query[256]; mysql_format(handle,query,sizeof(query), "INSERT INTO account(name,passwort)VALUES('%e',MD5('%e'))",PlayerInfo[playerid][pname],inputtext); //Das Query wird abgesendet und die playerid an OnUserRegister übergeben mysql_pquery(handle,query,"OnUserRegister","d",playerid); return 1; } if(dialogid == DIALOG_LOGIN) { //spieler hat abbrechen gewählt if(!response)return Kick(playerid); //Wenn der spieler kein, oder ein zu kurzes Passwort eingegeben hat if(strlen(inputtext) < 5)return ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Anmeldung","Bitte logge dich ein:\n{FF0000}Mindestens 5 Zeichen!","Anmelden","Abbrechen"); //Wenn alles Passt wird die Datenbank ausgelsen new query[256]; mysql_format(handle,query,sizeof(query),"SELECT * FROM account WHERE name = '%e' AND passwort = MD5('%e')",PlayerInfo[playerid][pname],inputtext); mysql_pquery(handle,query,"OnUserLogin","d",playerid); return 1; } return 0; }
OnPlayerClickPlayer bis SaveUserStats:
Code
Alles anzeigenpublic OnPlayerClickPlayer(playerid, clickedplayerid, source) { return 1; } stock mysql_setupconnection(ttl = 3) { print("[MYSQL] Verbindungsaufbau........"); mysql_log(); handle = mysql_connect(MYSQL_HOST,MYSQL_USER,MYSQL_PASS,MYSQL_DBSE); //prüfen und gegebenfalls wiederholen if(mysql_errno(handle) !=0) { //Fehler beim Verbindungsaufbau,prüfe ob eine weiterer Versuch gestartet werden soll if(ttl > 1) { //versuche erneut eine verbindung herzustellen print("[MYSQL] Es konnte keine Verbindung zur Datenbank hergestellt werden."); printf("[MYSQL] Starte neuen Verbindung versuch (ttl: %d).",ttl-1); return mysql_setupconnection(ttl-1); } else { //Abbrechen und Server Schließen print("[MYSQL] Es konnte keine Verbindung zur Datenbank hergestellt werden."); print("[MYSQL] Bitte prüfe die Verbindungsdaten"); print("[MYSQL] Der Server wird heruntergefahren"); return SendRconCommand("exit"); } } printf("[MySQL] Die Verbindung zur Datenbank wurde erfolgreich hergestellt! Handle: %d", _:handle); return 1; } public OnUserCheck(playerid) { new rows; cache_get_row_count(rows); if(rows == 0) { //Der Spieler konnte nicht gefunden werden, er muss sich registrieren ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD,"Registration","Bitte registriere dich","Registrieren","Abbrechen"); } else { //Es existiert ein Ergbins, das heißt der Spieler ist registriert und muss sich einloggen ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD,"Anmeldung","Bitte logge dich ein","Einloggen","Abbrechen"); } return 1; } public OnUserRegister(playerid) { PlayerInfo[playerid][p_id] = cache_insert_id(); SendClientMessage(playerid,green,"[KONTO]Registration erfolgreich"); return 1; } public OnUserLogin(playerid) { new rows; cache_get_row_count(rows); if(rows == 0) { ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Anmeldung","Bitte logge dich ein:\n{FF0000}Falsches Passwort","Einloggen","Abbrechen"); } else { cache_get_value_name_int(0,"id",PlayerInfo[playerid][p_id]); cache_get_value_name_int(0,"level",PlayerInfo[playerid][level]); SetPlayerScore(playerid,PlayerInfo[playerid][level]); cache_get_value_name_int(0,"admin",PlayerInfo[playerid][admin]); cache_get_value_name_int(0,"money",PlayerInfo[playerid][pmoney]); GivePlayerMoney(playerid,PlayerInfo[playerid][pmoney]); cache_get_value_name_int(0,"fraktion",PlayerInfo[playerid][fraktion]); cache_get_value_name_int(0,"frank",PlayerInfo[playerid][frank]); cache_get_value_name_int(0,"spawn",PlayerInfo[playerid][spawn]); PlayerInfo[playerid][eingeloggt] = true; SendClientMessage(playerid,green,"[KONTO]Eingeloggt."); } return 1; } stock SaveUserStats(playerid) { if(!PlayerInfo[playerid][eingeloggt])return 1; PlayerInfo[playerid][pmoney] = GetPlayerMoney(playerid); new query[256]; mysql_format(handle,query,sizeof(query),"UPADTE account SET level = '%d',admin = '%d',money = '%d',fraktion = '%d',frank = '%d',spawn = '%d'WHERE id = '%d'",PlayerInfo[playerid][level],PlayerInfo[playerid][admin],PlayerInfo[playerid][pmoney],PlayerInfo[playerid][fraktion],PlayerInfo[playerid][frank],PlayerInfo[playerid][spawn]); mysql_pquery(handle,query); return 1; }
-
Sobald du in den Fenster bis und raus drückst und dann wieder rein was steht dann da?
-
Wenn du Compailst und mit der Maus drüber gehst kommt da ein Lade-Symbol?
-
Kommt da so ein Kreis der zeigt das was am laden ist?
-
Folgende Situation:
Wenn ein Spieler ein Stunt macht wird das Geld durch GivePlayerMoney gesetzt oder muss ich es extra anders angehen damit Spieler Geld bekommen können?
Bilder zu den Stunt:
mysql log:
Code[06:41:11] [WARNING] mysql_connect: no password specified (entwicklung.p:317 -> entwicklung.p:62) [06:44:16] [ERROR] mysql_format: no value for specifier '%d' passed (entwicklung.p:394 -> entwicklung.p:105) [06:44:16] [ERROR] error #1065 while executing query "": Query was empty (entwicklung.p:395 -> entwicklung.p:105)
http://www.pic-upload.de/view-32425056/sa-mp-018.png.html
http://www.pic-upload.de/view-32425066/sa-mp-019.png.html -
Wenn man aber Ammu Nation und so per Script-Code macht sieht das dann anders aus mit den sicher gehen das man kein geld cheatet? @Jeffry
-
Ich habe schon bei vielen serven gesehen wie spieler gebannt wurden wegen geldhack
-
@Trafico und wie kann ich das nun so machen das man sich kein geld ercheaten kann?
-
@ReborN und wie meinst du das wegen dem geld cheaten?
Ich will ja eigentlich so machen das man durch Jobs/fraktion sein Geld bekommt
-
Wie genau meinst du das mit den Anpassen das man sich kein Geld cheaten kann? habe erst gestern angefangen mit den Pawn-Scripting
-
Der Beitrag Ersteller: @Dr. Frauenarzt kann sich als Leadersetzen so wie andere. Sein Problem ist halt derzeit das Wenn er ein Spieler zu ein Leader einer Fraktion ernannt hat sollte die Skinauswahl für die Fraktion erscheinen aber die erscheint nicht und somit spawnt er instent