... hier der code:
//edit : Code entfernt
... hier der code:
//edit : Code entfernt
Hey ich habe mit einen Keybinder mit Visual Basics 2010 Express programmiert (5 Minuten arbeit :D) und nun will er nicht in SA:MP schreiben o.O.
Im Windows Editor funktioniert er genauso wie er soll nur ingame macht er nix.
Ich glaube das ein Code nicht notwendig ist weil er ja eigentlich funktioniert aber was muss ich hinzufügen, dass er auch ingame funktioniert ? oder muss ich den keybinder in einer anderen sprache schreiben ?
Gruß
Schizopriest
Wenn du die SpielerStats in einem enum gespeichert hast kannst du einfach im cmd
SpielerStats[playerid][Fraktion] = 5
SpielerStats[playerid][FrakRang] = 6
machen musst jedoch auf dein Script anpassen.
Gruß
Schizopriest
//edit Schreibfehler
Hier ist der stock:
stock mysql_ReturnPasswort(Name[])
{
new query[130], Get[130];
mysql_real_escape_string(Name, Name);
format(query, 128, "SELECT `passwort` FROM `samp_acc` WHERE `Name` = '%s'", Name);
mysql_query(query);
mysql_store_result();
mysql_fetch_row(Get);
mysql_free_result();
return Get;
}
//edit:
ok es hat sich erledigt ich habe aus
if(strcmp(inputtext,mysql_ReturnPasswort(pname), true))
if(!strcmp(inputtext,mysql_ReturnPasswort(pname), true))
gemacht habe beim TuT das ! übersehen
Gruß
Schizopriest
Hey ich habe mein script mit dem Tut von Maddin auf MySQL angepasst, es hat alles funktioniert, dann habe ich mit MD5 gehasht, jedoch war dann egal was ich für ein pw eingegeben habe, nun hab ich Md5 wieder raus genommen und es ist immernoch egal.
Hier das Scriptteil das damit zu tun hat:
case DIALOG_LOGIN:
{
if(!strlen(inputtext))
{
ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login","Bitte logge dich ein","Weiter","Abbrechen");
return SendClientMessage(playerid,0xFF0000FF,"Kein Passwort angegeben!");
}
if(strcmp(inputtext,mysql_ReturnPasswort(pname), true))
{
SetPVarInt(playerid,"Eingeloggt",1);
LoadPlayer(playerid);
SendClientMessage(playerid,0xFFFFFFFF, "{00FF00}Du hast dich erfolgreich eingeloggt, viel Spaß auf{0000FF} Lost SA Reallife.");
}
else
{
ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","Bitte logge dich ein","Weiter","Abbrechen");
SendClientMessage(playerid,0xFF0000FF,"Das Passwort war Falsch!");
}
}
und der ReturnPasswort stock ist der gleiche wie im tut nur das ich anschtatt accounts samp_acc habe.
Bitte um hilfe.
Gruß
Schizopriest
@ wdeluxe
Ich hatte bei onplayerrequest ein SpawPlayer(playerid)
drin, damit er den screen überspringt, hat jedoch nicht funktioniert und ich wurde rausgeschmiessen
Ich hab des rausgenommen und alles funzt
Gruß
Schizopriest
Hat niemand eine Idee ? ich brauche unbedingt die save funktion xD
Gruß
Schizopriest
Jap nach dem Tut von Maddin hab ichs gemacht Ich poste gleich mal den Log
für einen Start, Spieler Login, Spieler Logout und Stop.
Gruß
Schizopriest
//edit hier der Log: http://dl.dropbox.com/u/19400856/Debug.txt
Ich kann aus der DB laden, nur das Speichern will es nicht.
Hier ein screen der DB:
Die Daten die momentan drin sind habe ich manuell eingegeben.
Gruß
Schizopriest
Ich habe ein Problem, und zwar dass sich bei meinem MySQL System die Spieler Daten laden lassen aber nichit speichern lassen.
Codes:
stock SavePlayer(playerid)
{
if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))
{
if(GetPVarInt(playerid,"Eingeloggt") == 1)
{
mysql_SetInt("samp_acc", "job", Spieler[playerid][job], "Name", SpielerName(playerid));
mysql_SetInt("samp_acc", "autoschein", Spieler[playerid][autoschein], "Name", SpielerName(playerid));
mysql_SetInt("samp_acc", "motoradschein", Spieler[playerid][motoradschein], "Name", SpielerName(playerid));
mysql_SetInt("samp_acc", "flugschein", Spieler[playerid][flugschein], "Name", SpielerName(playerid));
mysql_SetInt("samp_acc", "bootschein", Spieler[playerid][bootschein], "Name", SpielerName(playerid));
mysql_SetInt("samp_acc", "bank", Spieler[playerid][bank], "Name", SpielerName(playerid));
mysql_SetInt("samp_acc", "wanted", GetPlayerWantedLevel(playerid), "Name", SpielerName(playerid));
mysql_SetInt("samp_acc", "skin", Spieler[playerid][skin], "Name", SpielerName(playerid));
mysql_SetInt("samp_acc", "sAdminLevel", Spieler[playerid][sAdminLevel], "Name", SpielerName(playerid));
mysql_SetInt("samp_acc", "Rang", Spieler[playerid][Rang], "Name", SpielerName(playerid));
mysql_SetInt("samp_acc", "Fraktion", Spieler[playerid][Fraktion], "Name", SpielerName(playerid));
mysql_SetInt("samp_acc", "Geld", GetPlayerMoney(playerid), "Name", SpielerName(playerid));
mysql_SetInt("samp_acc", "Score", GetPlayerScore(playerid), "Name", SpielerName(playerid));
}
}
return 1;
}
Und der mysql_SetInt stock:
stock mysql_SetInt(Table[], Field[], To, Where[], Where2[])
{
new query[128];
mysql_real_escape_string(Table, Table);
mysql_real_escape_string(Field, Field);
mysql_real_escape_string(Where, Where);
mysql_real_escape_string(Where2, Where2);
format(query, 128, "UPDATE `%s` SET `%s` = '%d' WHERE `%s` = '%s'", Table, Field, To, Where, Where2);
mysql_query(query);
return true;
}
Gruß
Schizopriest
Ich bekomme folgende fehlermeldung:
error 035: argument type mismatch (argument 4)
Hier:
stock LoadFraktionen()
{
for(new i = 0; i<MAX_FRAKTIONS; i++)
{
FraktStats[i][fraktkasse] = mysql_GetInt("samp_fraktionen", "fraktkasse", "id", i); // in der Zeile
}
return 1;
}
FraktStats ist in einem enum definiert:
enum frakt_daten
{
fraktkasse,
}
new FraktStats[MAX_FRAKTIONS][frakt_daten];
und er Speichert bei mir die Spieler nicht ab, das Laden funktioniert jedoch.
Brauche Hilfe
Gruß Schizopriest
ich hab mysql_GetInt in einem stock definiert:
stock mysql_GetInt(Table[], Field[], Where[], Is[])
{
new query[128];
mysql_real_escape_string(Table, Table);
mysql_real_escape_string(Field, Field);
mysql_real_escape_string(Where, Where);
mysql_real_escape_string(Is, Is);
format(query, 128, "SELECT `%s` FROM `%s` WHERE `%s` = '%s'", Field, Table, Where, Is);
mysql_query(query);
mysql_store_result();
new sqlint = mysql_fetch_int();
mysql_free_result();
return sqlint;
}
Ich bekomme folgende fehlermeldung:
error 035: argument type mismatch (argument 4)
Hier:
stock LoadFraktionen()
{
for(new i = 0; i<MAX_FRAKTIONS; i++)
{
FraktStats[i][fraktkasse] = mysql_GetInt("samp_fraktionen", "fraktkasse", "id", i); // in der Zeile
}
return 1;
}
FraktStats ist in einem enum definiert:
enum frakt_daten
{
fraktkasse,
}
new FraktStats[MAX_FRAKTIONS][frakt_daten];
Brauche Hilfe
Gruß Schizopriest
SetPlayerFacingAngle
ist nur für den spieler, also wo er hinschauen soll
für die camera muss man
SetCameraLookAt
nehmen.
//edit Du musst ein punkt saven wo die camera hinschauen soll, wenn es der gleiche punkt ist in dem auch der spieler steht bringt das nix
Gruß Schizopriest
du musst bei ondialogresponse dialogid==DIALOG_MAFIAWAFFEN && response==1 machen
das response fragt ab welcher button geklickt wurde der linke ist 1 und der rechte 0
Gruß Schizopriest
Bei mir ist es so: ich speicher alles in Variablen ab zum Beispiel bei einem /makeleader befehl setzt er die Variable Spieler[playerid][Fraktion] auf die gewünschte fraktion aber nach einem relog habe ich wieder die alte fraktion sowie die ganzen anderen alten sachen...
mein stock:
stock SavePlayer(playerid)
{
if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))
{
if(GetPVarInt(playerid,"Eingeloggt") == 1)
{
mysql_SetInt("samp_acc", "job", Spieler[playerid][job], "Name", SpielerName(playerid));
mysql_SetInt("samp_acc", "autoschein", Spieler[playerid][autoschein], "Name", SpielerName(playerid));
mysql_SetInt("samp_acc", "motoradschein", Spieler[playerid][motoradschein], "Name", SpielerName(playerid));
mysql_SetInt("samp_acc", "flugschein", Spieler[playerid][flugschein], "Name", SpielerName(playerid));
mysql_SetInt("samp_acc", "bootschein", Spieler[playerid][bootschein], "Name", SpielerName(playerid));
mysql_SetInt("samp_acc", "bank", Spieler[playerid][bank], "Name", SpielerName(playerid));
mysql_SetInt("samp_acc", "wanted", GetPlayerWantedLevel(playerid), "Name", SpielerName(playerid));
mysql_SetInt("samp_acc", "skin", Spieler[playerid][skin], "Name", SpielerName(playerid));
mysql_SetInt("samp_acc", "sAdminLevel", Spieler[playerid][sAdminLevel], "Name", SpielerName(playerid));
mysql_SetInt("samp_acc", "Rang", Spieler[playerid][Rang], "Name", SpielerName(playerid));
mysql_SetInt("samp_acc", "Fraktion", Spieler[playerid][Fraktion], "Name", SpielerName(playerid));
mysql_SetInt("samp_acc", "Geld", GetPlayerMoney(playerid), "Name", SpielerName(playerid));
mysql_SetInt("samp_acc", "Score", GetPlayerScore(playerid), "Name", SpielerName(playerid));
}
}
return 1;
}
//edit: ich bekomme das mit dem Pawn code nicht hin, kann mir mal einer sagen wie der geht ?
Das gleiche Problem habe ich auch hast du es nun geschafft ? wenn ja kannst du pls die lösung zeigen...
Gruß
Schizopriest
Ich hab 2 Probleme damit:
Bei mir Speichert er nix ab laden tut er aber
Wenn ich ein Passwort angebe wird es richtig in der db angegeben aber wenn ich mich einloggen will muss ich die letzt ziffer weglassen ?
Bitte um hilfe
Gruß Schizopriest
Thx das hat funktioniert
Ich bekomme den Fehler:
warning 215: expression has no effect
In der Zeile:
Geschwindigkeit = (Strecke / (TACHOTIMER / 1000)) * 3,6;
Ingame funktioniert alles so wie es soll, bloß ich bekomme den Warn net weg.
Gruß Schizopriest