Ja.
[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
-
-
Hallo,
ich möchte machen das wenn man einen Account hat sich nicht noch eins erstellen kann. Aber man kann sich überhaupt keinen Account erstellen es kommt immer die Meldung "Du hast bereits einen Account".
if(clickedid == Textdraw15) //Register
{
new num_rows, num_fields;
cache_get_data(num_rows, num_fields, handle);
if(num_rows == 1) return SendClientMessage(playerid, COLOR_WHITE, "Du hast bereits einen Account!");
if(strlen(PlayerInfo[playerid][dPassword]) <= 6) return SendClientMessage(playerid, COLOR_WHITE, "Dein Passwort ist zu kurz mind. 6 Zeichen!");
{
new query[500];
mysql_escape_string(pName(playerid), pName(playerid));
format(query, sizeof(query), "INSERT INTO Accounts (Username, Password) VALUES ('%s', MD5('%s'))", pName(playerid), PlayerInfo[playerid][dPassword]);
mysql_pquery(handle, query);
SendClientMessage(playerid, COLOR_WHITE, "Du hast dir erfolgreich ein Account erstellt!");
}
}[12:40:00] [DEBUG] cache_get_data - connection: 1
[12:40:00] [WARNING] cache_get_data - no active cache
[12:40:01] [DEBUG] cache_get_data - connection: 1
[12:40:01] [WARNING] cache_get_data - no active cache
[12:40:01] [DEBUG] cache_get_data - connection: 1
[12:40:01] [WARNING] cache_get_data - no active cache
[12:40:01] [DEBUG] cache_get_data - connection: 1
[12:40:01] [WARNING] cache_get_data - no active cache
[12:40:12] [DEBUG] cache_get_data - connection: 1
[12:40:12] [WARNING] cache_get_data - no active cacheMit freundlichen Grüßen
Grapefruit -
Du hast kein SELECT Query ausgeführt, daher ist der Cache leer.
-
Die 2 Sachen werden nicht angezeigt?
Koordinaten sind richtig.
CreatePickup(1318, 1, 1480.9752,-1771.3914,18.7958, 0); // SH AUSSEN
Create3DTextLabel("[ Stadthalle ]\nDrücke "COLOR_HEX_BLUE"Enter "COLOR_HEX_WHITE"zum Betreten", COLOR_WHITE, 1480.9752,-1771.3914,18.7958, 10.0, 0);
Sind bei den anderen Pickups und Labels dabei, alle anderen werden geladen. -
Wie könnte ich den Abfragen ob der Spieler bereits einen Account besitzt?
-
Bin gerade irgendwie dumm unterwegs.
Wollte meine Gangfightbox updaten und habe dafür einen Timer erstellt.
forward GangfightUpdate(playerid);
public GangfightUpdate(playerid)
{
new OwnerText[128], GegnerText[128], GZName[128], GZFZeit[128], Af[128], Bf[128], Cf[128], OwnerPoints[128], GegnerPoints[128];
for(new ppl = 0; ppl < MAX_PLAYERS; ppl++)
{
if(Spieler[playerid][Fraktion] == Gangzonen[ppl][GFOwnerID] || Spieler[playerid][Fraktion] == Gangzonen[ppl][GFGegnerID])
{
for(new i = 0; i < sizeof Gangzonen; i++)
{
format(OwnerText,sizeof(OwnerText),"%s",Fraktionen[Gangzonen[i][GFOwnerID]][Frakname]);
format(GegnerText,sizeof(GegnerText),"%s",Fraktionen[Gangzonen[i][GFGegnerID]][Frakname]);
format(GZName,sizeof(GZName),"~y~%s",Gangzonen[i][GangZoneName]);
format(GZFZeit,sizeof(GZFZeit),"~r~Verbl. Zeit %d Minuten",60-Gangzonen[i][GFRunningTime]);
format(Af,sizeof(Af),"~b~A: ~w~%s",Fraktionen[Gangzonen[i][GFFlaggenOwnerA]][Frakname]);
format(Bf,sizeof(Bf),"~b~B: ~w~%s",Fraktionen[Gangzonen[i][GFFlaggenOwnerB]][Frakname]);
format(Cf,sizeof(Cf),"~b~C: ~w~%s",Fraktionen[Gangzonen[i][GFFlaggenOwnerC]][Frakname]);
format(OwnerPoints, sizeof(OwnerPoints),"%s%d/100",(Gangzonen[i][GFOwnerPoints] < 10) ? ("00") : (""), Gangzonen[i][GFOwnerPoints]);
format(GegnerPoints, sizeof(GegnerPoints),"%s%d/100",(Gangzonen[i][GFGegnerPoints] < 10) ? ("00") : (""), Gangzonen[i][GFGegnerPoints]);
UpdateGangfightBox(playerid, OwnerText, GegnerText, GZName, GZFZeit, Af, Bf, Cf, OwnerPoints, GegnerPoints);
}
}
}
return 1;
}Bekomme aber diese Fehlermeldung:
[19:58:58] [debug] Run time error 4: "Array index out of bounds"
[19:58:58] [debug] Accessing element at negative index -1
[19:58:58] [debug] AMX backtrace:
[19:58:58] [debug] #0 0023982c in public GangfightUpdate (0x00000001) from Server.amxHab mir schon alles ausgeben lassen. Klappt eig alles.
-
format(GegnerText,sizeof(GegnerText),"%s",Fraktionen[Gangzonen[i][GFGegnerID]][Frakname]);
zu:
if(Gangzonen[i][GFGegnerID] != -1) format(GegnerText,sizeof(GegnerText),"%s",Fraktionen[Gangzonen[i][GFGegnerID]][Frakname]);
else format(GegnerText,sizeof(GegnerText),"Niemand"); -
format(GegnerText,sizeof(GegnerText),"%s",Fraktionen[Gangzonen[i][GFGegnerID]][Frakname]);
zu:
if(Gangzonen[i][GFGegnerID] != -1) format(GegnerText,sizeof(GegnerText),"%s",Fraktionen[Gangzonen[i][GFGegnerID]][Frakname]);
else format(GegnerText,sizeof(GegnerText),"Niemand");
Wenn ich's richtig verstanden habe, dann sollte ich dies auch für den Owner Text machen.
Hab ich jedenfalls.forward GangfightUpdate(playerid);
public GangfightUpdate(playerid)
{
new OwnerText[128], GegnerText[128], GZName[128], GZFZeit[128], Af[128], Bf[128], Cf[128], OwnerPoints[128], GegnerPoints[128];
for(new i = 0; i < sizeof Gangzonen; i++)
{
if(Spieler[playerid][Fraktion] == Gangzonen[i][GFOwnerID] || Spieler[playerid][Fraktion] == Gangzonen[i][GFGegnerID])
{
//format(OwnerText,sizeof(OwnerText),"%s",Fraktionen[Gangzonen[i][GFOwnerID]][Frakname]);
if(Gangzonen[i][GFOwnerID] != -1) format(OwnerText,sizeof(OwnerText),"%s",Fraktionen[Gangzonen[i][GFOwnerID]][Frakname]);
else format(OwnerText,sizeof(OwnerText),"Niemand");
if(Gangzonen[i][GFGegnerID] != -1) format(GegnerText,sizeof(GegnerText),"%s",Fraktionen[Gangzonen[i][GFGegnerID]][Frakname]);
else format(GegnerText,sizeof(GegnerText),"Niemand");
//format(GegnerText,sizeof(GegnerText),"%s",Fraktionen[Gangzonen[i][GFGegnerID]][Frakname]);
format(GZName,sizeof(GZName),"~y~%s",Gangzonen[i][GangZoneName]);
format(GZFZeit,sizeof(GZFZeit),"~r~Verbl. Zeit %d Minuten",60-Gangzonen[i][GFRunningTime]);
format(Af,sizeof(Af),"~b~A: ~w~%s",Fraktionen[Gangzonen[i][GFFlaggenOwnerA]][Frakname]);
format(Bf,sizeof(Bf),"~b~B: ~w~%s",Fraktionen[Gangzonen[i][GFFlaggenOwnerB]][Frakname]);
format(Cf,sizeof(Cf),"~b~C: ~w~%s",Fraktionen[Gangzonen[i][GFFlaggenOwnerC]][Frakname]);
format(OwnerPoints, sizeof(OwnerPoints),"%s%d/100",(Gangzonen[i][GFOwnerPoints] < 10) ? ("00") : (""), Gangzonen[i][GFOwnerPoints]);
format(GegnerPoints, sizeof(GegnerPoints),"%s%d/100",(Gangzonen[i][GFGegnerPoints] < 10) ? ("00") : (""), Gangzonen[i][GFGegnerPoints]);
UpdateGangfightBox(playerid, OwnerText, GegnerText, GZName, GZFZeit, Af, Bf, Cf, OwnerPoints, GegnerPoints);
}
}
return 1;
}
Neues Problem:[20:17:40] [debug] Run time error 4: "Array index out of bounds"
[20:17:40] [debug] Accessing element at index 9 past array upper bound 8
[20:17:40] [debug] AMX backtrace:
[20:17:40] [debug] #0 00239654 in public GangfightUpdate (0x00000001) from Server.amxAußerdem, wenn ich ein anderes Gebiet angreife, dann werden falsche Daten angezeigt.
-
Ja, für den Owner auch, gegebenenfalls auch für OwnerA-C.
Zum Rest:
Mach einen Thread auf, da das keine kleine Frage ist, viel zu viel Code, und poste dort wie du Fraktionen und Gangzonen deklariert hast. -
stock FraktionName(playerid)
{
new fraktionname[599];
switch(SpielerInfo[playerid][pFraktion])
{
case 0:{fraktionname="Zivilist";}
case 1:{fraktionname=FraktionsInfo[1][Frakname];}
case 2:{fraktionname="Fort Carson Fire Department";}
case 3:{fraktionname="Fort Carson Medical Center";}
case 4:{fraktionname="Fort Carson Fahrschule";}
}
return fraktionname;
}C:\Users\Timo\Desktop\server\gamemodes\SFRP.pwn(1981) : error 047: array sizes do not match, or destination array is too small
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase1 Error.
-
-
stock FraktionName(playerid)
{
new fraktionname[64];
switch(SpielerInfo[playerid][pFraktion])
{
case 0:{fraktionname="Zivilist";}
case 1:{format(fraktionname,64,FraktionsInfo[1][Frakname]);}
case 2:{fraktionname="Fort Carson Fire Department";}
case 3:{fraktionname="Fort Carson Medical Center";}
case 4:{fraktionname="Fort Carson Fahrschule";}
}
return fraktionname;
} -
Alles anzeigen
stock FraktionName(playerid)
{
new fraktionname[64];
switch(SpielerInfo[playerid][pFraktion])
{
case 0:{fraktionname="Zivilist";}
case 1:{format(fraktionname,64,FraktionsInfo[1][Frakname]);}
case 2:{fraktionname="Fort Carson Fire Department";}
case 3:{fraktionname="Fort Carson Medical Center";}
case 4:{fraktionname="Fort Carson Fahrschule";}
}
return fraktionname;
}Wird leider trotzdem Ingame nicht angezeigt.
-
Poste den Code der es anzeigen soll. Wenn es viel Code ist, mache einen neuen Thread auf, das wahrt die Übersichtlichkeit.
-
ocmd:stats(playerid,params[])
{
if(SpielerInfo[playerid][pLogIn] == 1)
{
new NameString[70],AccountString[128],AdminString[128],FraktionString[128];
format(NameString,sizeof(NameString),"|-----[%s]-----|",SpielerName(playerid));
format(AccountString,sizeof(AccountString),"Name:[%s] Level:[%i] Respektpunkte:[%i/%i] PayDayTime:[%i]",SpielerName(playerid),SpielerInfo[playerid][pLevel],SpielerInfo[playerid][pPoints],SpielerInfo[playerid][pZeit]);
format(AdminString,sizeof(AdminString),"Adminrang:[%s{FFFFFF}] Gemachte Tickets:[%i]",AdminName(playerid),SpielerInfo[playerid][pSupTicket]);
format(FraktionString,sizeof(FraktionString),"Fraktion:[%s] Rang:[%i] Leader:[%s]",FraktionName(playerid),SpielerInfo[playerid][pRang],LeaderName(playerid));
SendClientMessage(playerid,WEIS,NameString);
SendClientMessage(playerid,WEIS,AccountString);
SendClientMessage(playerid,WEIS,AdminString);
SendClientMessage(playerid,WEIS,FraktionString);
return 1;
}
else
{
SendClientMessage(playerid,ROT,"Du bist nicht Eingeloggt.");
return 1;
}
} -
Wann wird der Timer immer gemacht.
Bei OneGamemodeinit
SetTimer("FahrzeugUpdater2",600000,true);
public FahrzeugUpdater2()
{
for(new playerid=0;playerid<MAX_PLAYERS;playerid++)
{
if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid) && IsPlayerInAnyVehicle(playerid))
{
if(Motor[GetPlayerVehicleID(playerid)] == true)
{
vFahrzeug[GetPlayerVehicleID(playerid)][Tank] -= FahrzeugInfoModel[GetVehicleModel(GetPlayerVehicleID(playerid))-400][ftverbrauch];
}
}
}
return true;
} -
Der Timer geht den Public FahrzeugUpdater2 alle 10 Minuten durch.
-
Matthew_Mahone:
Erstelle bitte einen neuen Thread, poste den Code dort und einen Screenshot von den Nachrichten dazu. -
wie kann mann z.B. bei einem temp Ban gettime() + 5Tage.
das ich dan gettime(); und die andere Variable berechne in Sekunde Minute Stunde Tage.Lg,
Skoam -
Wie kann Ich abfragen ob ein Spieler eine Anitmation ausführt ?
-
Wie kann Ich abfragen ob ein Spieler eine Anitmation ausführt ?
Einfach so:if(GetPlayerAnimationIndex(playerid))
{
//Hier führt er eine Animation aus
}mfg.

-