Ist doch richtig so?
[SAMMELTHREAD] Kleine Scripting Fragen
- Rafelder
- Unerledigt
Dein Problem konnte durch einen User gelöst werden? Bedank dich bei ihm indem du seinen Beitrag als Hilfreich markierst sowie einen Daumen oben dalässt
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!
Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
-
-
Naja dachte ich auch aber nach Zeile 5 passiert nichts mehr selbst wenn der Job nicht 1 ist sondern 2 oder 3 etc.
Ich möchte das wenn der pJob beispielsweise ==2 ist das es dann weiter geht zur zeit bricht er nach Zeile 5 ab^^.
pJob == 1 ist der Taxijob und wenn man den gerade ausübt soll man sich kein Taxi rufen können^^.
-
Der Code ist dort auf jeden Fall richtig.
Evtl. hast du einen Denk Fehler in der Schleife danach?
Was genau soll sie bezwecken? Evtl. bezweckt sie etwas anderes -
Die Schleife danach geht alle Spieler durch und gibt denen welche gerade den Beruf des Taxifahrers ausgeben eine Nachricht aus das der ocmd User ein Taxi benötigt.
Klammere ich die ersten Zeilen wie unten aus dann funktioniert alles nur das dann auch ein Taxifahrer sich selbst ein Taxi rufen kann xD
ocmd:333(playerid,params[])
{
//if(SpielerInfo[playerid][pJob] == 1)
//{
// return 1;
//}
for (new p = 0; p < MAX_PLAYERS; p++)
{
if(SpielerInfo[p][pJob] == 1)
{
new string[128],name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,MAX_PLAYER_NAME);
format(string,sizeof(string),"%s benötigt ein Taxi. Tippe /accept um den Auftrag anzunehmen.",name);
SendClientMessage(p,COLOR_YELLOW,string);
taxi[playerid] = 1;
}
}
return 1;
} -
Aber du weißt das du wenn du das als Job2 versuchst damit es an der Abfrage vorbei geht, du die Nachricht nicht bekommst weil du nicht mehr pJob 1 hast?
-
Klar die Nachricht sollen ja auch nur alle Taxifahrer bekommen und nicht man selbst.
-
Wer kann hier den Fehler finden?
public GetKey(Username[],password[])
{
new salt[64],query[512],bool:wert=false;
strcat(salt, CreateSalt());
format(query, sizeof(query), "SELECT * FROM `wcf1_user` WHERE `password` = '%s' AND `username` = '%s'", GetDoubleSaltedHash(password, salt),Username);
mysql_query(query, (-1), (0), ForenSQL);
mysql_store_result(ForenSQL);
if(mysql_num_rows(ForenSQL)!=0)
wert=true;
mysql_free_result(ForenSQL);
return ((wert)?(1):(0));
}
Der edbug spuckt mir das aus:
[04:17:35] [debug] Run time error 4: "Array index out of bounds"
[04:17:35] [debug] Accessing element at index 4311300 past array upper bound 1999
[04:17:35] [debug] AMX backtrace:
[04:17:35] [debug] #0 00011470 in public GetKey () from DT-RP.amx
[04:17:35] [debug] #1 native CallRemoteFunction () [00471ae0] from samp-server.exe
[04:17:35] [debug] #2 00014b10 in ?? () from DT-RP.amx
[04:17:35] [debug] #3 000f471c in public beaviscmd_checkkey () from DT-RP.amx
[04:17:35] [debug] #4 native CallLocalFunction () [00471e90] from samp-server.exe
[04:17:35] [debug] #5 0000d300 in public OnPlayerCommandText () from DT-RP.amx
das is der command:
BeavisCMD.checkkey(u,p[])
{
new input[128];
if(sscanf(p,"s[128]",input))
return SendClientMessage(u,cRed,"/checkkey [Key]");
if(!CheckWBBKey(PlayerInfo[u][Name],input))
return SendClientMessage(u,cRed,"Fehlerhafter Key");
SendClientMessage(u,cYellow,"Key ist richtig");
return 1;
}
Ich möcht ja abfragen ob das Passwort das eingegeben wurde richtig ist -
Weis einer wie ich aus der ini Datei die Floats auslese?
-
Wer kann hier den Fehler finden?
public GetKey(Username[],password[])
{
new salt[64],query[512],bool:wert=false;
strcat(salt, CreateSalt());
format(query, sizeof(query), "SELECT * FROM `wcf1_user` WHERE `password` = '%s' AND `username` = '%s'", GetDoubleSaltedHash(password, salt),Username);
mysql_query(query, (-1), (0), ForenSQL);
mysql_store_result(ForenSQL);
if(mysql_num_rows(ForenSQL)!=0)
wert=true;
mysql_free_result(ForenSQL);
return ((wert)?(1):(0));
}
Der edbug spuckt mir das aus:
[04:17:35] [debug] Run time error 4: "Array index out of bounds"
[04:17:35] [debug] Accessing element at index 4311300 past array upper bound 1999
[04:17:35] [debug] AMX backtrace:
[04:17:35] [debug] #0 00011470 in public GetKey () from DT-RP.amx
[04:17:35] [debug] #1 native CallRemoteFunction () [00471ae0] from samp-server.exe
[04:17:35] [debug] #2 00014b10 in ?? () from DT-RP.amx
[04:17:35] [debug] #3 000f471c in public beaviscmd_checkkey () from DT-RP.amx
[04:17:35] [debug] #4 native CallLocalFunction () [00471e90] from samp-server.exe
[04:17:35] [debug] #5 0000d300 in public OnPlayerCommandText () from DT-RP.amx
das is der command:
BeavisCMD.checkkey(u,p[])
{
new input[128];
if(sscanf(p,"s[128]",input))
return SendClientMessage(u,cRed,"/checkkey [Key]");
if(!CheckWBBKey(PlayerInfo[u][Name],input))
return SendClientMessage(u,cRed,"Fehlerhafter Key");
SendClientMessage(u,cYellow,"Key ist richtig");
return 1;
}
Ich möcht ja abfragen ob das Passwort das eingegeben wurde richtig ist
such ein array mit der größe 2000(new array[2000], "past array upper bound 1999") in deinem Script und poste den namen, so kann man wenigstens schonmal sagen bei welcher Variable der Fehler auftritt.oder du fügst print Befehle ein um zu sehen bei welcher Zeile der Fehler auftritt
-
Eine wahrscheinlich schon zu oft gestellte frage:
PVars oder Variablen?
-
-
GVar sind auch zur Auswahl naja
kommt meiner Meinung nach auf die Verwendung an -
Naja nenne mir mal beispiel.
Ich benutze zur Zeit für jede Spieler bezogene Variable PVars. Nur Ist das nun sinnvoll oder nicht? -
Vorteil ist erstmal das PVars ohne Probleme in filterscripts genutzt werden können also ohne das du sie übergeben musst. aber würde auch mal gerne hoeren wofür welche arten den nun wirklich sinnvoll sind.
-
-
Und warum wenn ich das fragen darf? Hilft mir leider nicht wirklich wenn man mir sagt der Teufel ist böse weil ist so^^
-
Denkst du meine Zitierung zu einem Thema was sich Leute durchlesen können um es zu erfahren war aus Versehen?
-
PVars einfach nur stupide Böse zu titulieren ist auch falsch. Wenn man fachlich korrekt Scripten möchte, muss man nunmal in der Lage sein, zu wissen, wann man PVars verwenden sollte und wann nicht.
-
PVars einfach nur stupide Böse zu titulieren ist auch falsch. Wenn man fachlich korrekt Scripten möchte, muss man nunmal in der Lage sein, zu wissen, wann man PVars verwenden sollte und wann nicht.
Wie gesagt
->> http://forum.sa-mp.com/showthread.php?t=268499 -
-
Ich habe leider erst zu spät an diesen Thread gedacht, deswegen habe ich diesen hier aufgemacht. Wäre nett wenn mir da jemand helfen könnte
lg
-