Dann startet er bei 0.
[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
-
-
Das 2te Else if wird nie ausgelöst. Musst beim 1sten Else if eine 2te Condition einbauen
Codeif(skin[playerid] < 280) skin[playerid]; //falls alter skin unter 280 ist else if(skin[playerid] > 287 && skin[playerid] <= 310) skin[playerid] = 303; //soll skinid 202-310 überspringen else if(skin[playerid] > 310) skin[playerid] = 280;//wieder von vorne anfangen SetPlayerSkin(playerid, skin[playerid]);
-
Hey, habe ein kleines Problem.
Ich kann per Shop ein Skin kaufen, doch wenn ich der Runde beitrete, erhalte ich meinen alten Skin (siehe Video)
new cQuery[256];
SpawnPlayer(playerid);
SetPlayerSkin(playerid, pData[playerid][P_Skin]);
TogglePlayerAllDynamicAreas(playerid, 0);
TogglePlayerDynamicArea(playerid, ZoneInfo[Round[r_areaid]][z_Ids], 1);
GangZoneShowForPlayer(playerid, ZoneInfo[Round[r_areaid]][z_id], GangZoneColor); //Gangzone color 6format(cQuery, sizeof(cQuery), "{%06x}%s{FFFFFF} joined the round {00FF00}back!", GetPlayerColor(playerid) >>> 8, GetName(playerid));
SendClientMessageToAll(-1, cQuery);
IsInLobby[playerid] = false;Video:
Externer Inhalt www.youtube.comInhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt. -
Hey, habe ein kleines Problem.
Ich kann per Shop ein Skin kaufen, doch wenn ich der Runde beitrete, erhalte ich meinen alten Skin (siehe Video)
new cQuery[256]; SpawnPlayer(playerid); SetPlayerSkin(playerid, pData[playerid][P_Skin]); TogglePlayerAllDynamicAreas(playerid, 0); TogglePlayerDynamicArea(playerid, ZoneInfo[Round[r_areaid]][z_Ids], 1); GangZoneShowForPlayer(playerid, ZoneInfo[Round[r_areaid]][z_id], GangZoneColor); //Gangzone color 6 format(cQuery, sizeof(cQuery), "{%06x}%s{FFFFFF} joined the round {00FF00}back!", GetPlayerColor(playerid) >>> 8, GetName(playerid)); SendClientMessageToAll(-1, cQuery); IsInLobby[playerid] = false;
Video:
Externer Inhalt www.youtube.comInhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.Gehe mal davon aus das vllt hier falsch geseddet wird ? also beim Skin kaufen
pData[playerid][P_Skin] -
Man sieht doch im Video das nach dem kaufen mein Skin korrekt gesetzt wird.
-
Man sieht doch im Video das nach dem kaufen mein Skin korrekt gesetzt wird.
Speicherst du beim Kaufen auch den neuen Skin in pData[playerid][P_Skin]?
-
Man sieht doch im Video das nach dem kaufen mein Skin korrekt gesetzt wird.
bedeutet ja trotzdem nicht das er sie in die Variable Abspeichert.
-
if(dialogid == D_BuySkin) {
if(response) {
if(!IsNumeric(inputtext)){
SendClientMessage(playerid, COLOR_RED, "Only numbers here!");
ShowPlayerDialog(playerid, D_BuySkin, DIALOG_STYLE_MSGBOX, "Dialog buy skin", "Type your skin ID", "Buy", "Cancel");
return 1;
}SetPlayerSkin(playerid, strval(inputtext));
pData[playerid][P_Weed] -= SKIN_PRICE;
SaveAccount(playerid);
} -
-
Guten Morgen allerseits ich brauche mal ein Kleinen Denkstoß ich wollte meine BetaCode's aus meiner Datenbank auslesen lassen und in ein Dialog anzeigen lassen bin aber gerade Ratlos wie ich das mache.
Meine Datenbank
Tabelle: betacode
Spalten: CodeID ( Primary ),Code,Aktiviert,SpielerMit freundlichen Grüßen
reaL. -
Meinst du das so, das du alle Beta Codes in der Datenbank als Dialog angezeigt bekommst? Falls ja, dann so:
C
Alles anzeigenmysql_tquery(dbhandle,"SELECT * FROM `betacode`","OnLoadBetaCode","i",playerid); forward OnLoadBetaCode(playerid); public OnLoadBetaCode(playerid) { if(!cache_num_rows())return 1; new codeID,Code[40],bool:isActive,pSpieler[MAX_PLAYER_NAME],string[300]; for(new i;i<cache_num_rows();i++) { codeID = cache_get_field_content_int(i,"CodeID",dbhandle); cache_get_field_content(i,"Code",Code,dbhandle,40); isActive = bool:cache_get_field_content_int(i,"Aktiviert",dbhandle); cache_get_field_content(i,"Spieler",pSpieler,MAX_PLAYER_NAME); format(string,sizeof string,"%sCode-ID: %i\tCode: %s\tAktiviert: %i\tSpieler: %s\n",string,codeID,Code,isActive,Spieler); } ShowPlayerDialog(playerid,DIALOG_BETACODE,DIALOG_STYLE_LIST,"Beta Code",string,"Weiter","Abbrechen"); return 1; }
Wenn du aber nur die Daten von einem bestimmten Spieler auslesen möchtest, dann musst du hiner FROM `betacode` noch WHERE `Spieler`='%e' einfügen, und dann nach "i" noch "s" und nach "playerid" noch den Namen.
-
Beitrag von reaL. ()
Dieser Beitrag wurde vom Autor aus folgendem Grund gelöscht: //Problem (). -
Bin ich gerade zu Blöde ?
Es kommt immer dass Ich dieses Fahrzeug nicht fahren darf da ich nicht in der Fraktion bin
[07.08.2016 - 16:14:06] 1 0 1Code
Alles anzeigenprintf("%d %d %d",FFahrzeugInfo[vid][fFrakID],PlayerInfo[playerid][pMember],PlayerInfo[playerid][pLeader]); if(PlayerInfo[playerid][pMember] == FFahrzeugInfo[vid][fFrakID] && PlayerInfo[playerid][pLeader] == FFahrzeugInfo[vid][fFrakID]) { if(FFahrzeugInfo[vid][fCarRang] > PlayerInfo[playerid][pRang]) { SendClientMessage(playerid,COLOR_GRAU,"Du hast nicht den Entsprechenden Rang um das Fahrzeug zu Fahren."); return 1; } } return SendClientMessage(playerid,COLOR_GRAU,"Du kannst dieses Fraktionsfahrtzeug nicht Fahren da du nicht in der Fraktion bist."); Hier startet der motor bzw die Abfrage ob genug tank ist und so
-
-
Hatte ich vorher so aber das Gleiche
-
-
Bin ich gerade zu Blöde ?
Es kommt immer dass Ich dieses Fahrzeug nicht fahren darf da ich nicht in der Fraktion bin
[07.08.2016 - 16:14:06] 1 0 1Code
Alles anzeigenprintf("%d %d %d",FFahrzeugInfo[vid][fFrakID],PlayerInfo[playerid][pMember],PlayerInfo[playerid][pLeader]); if(PlayerInfo[playerid][pMember] == FFahrzeugInfo[vid][fFrakID] && PlayerInfo[playerid][pLeader] == FFahrzeugInfo[vid][fFrakID]) { if(FFahrzeugInfo[vid][fCarRang] > PlayerInfo[playerid][pRang]) { SendClientMessage(playerid,COLOR_GRAU,"Du hast nicht den Entsprechenden Rang um das Fahrzeug zu Fahren."); return 1; } } return SendClientMessage(playerid,COLOR_GRAU,"Du kannst dieses Fraktionsfahrtzeug nicht Fahren da du nicht in der Fraktion bist."); Hier startet der motor bzw die Abfrage ob genug tank ist und so
Kannst auch einfach so was hier machen:
Codeif(PlayerInfo[playerid][pMember] != FFahrzeugInfo[vid][fFrakID] && PlayerInfo[playerid][pLeader] != FFahrzeugInfo[vid][fFrakID]) return SendClientMessage(playerid,COLOR_GRAU,"Du kannst dieses Fraktionsfahrtzeug nicht Fahren da du nicht in der Fraktion bist."); if(FFahrzeugInfo[vid][fCarRang] > PlayerInfo[playerid][pRang]) return SendClientMessage(playerid,COLOR_GRAU,"Du hast nicht den Entsprechenden Rang um das Fahrzeug zu Fahren.");
-
Wie nutzt man den UNIX Timestamp eig. richtig und für was ist dieser da ?
Man nutzt ihn ja z.B. für einen TimeBan oder sowas. Jedoch, wie nutzt man den ? Er gibt ja die Sekunden aus und keine Zeit oder sowas..
Bitte um kurze ErläuterungGrüße
-
Du musst alles mit den Sekunden rechnen, sprich, wenn du jemand für eine Stunde sperren willst, würde das so aussehen:
gesperrtBis[playerid] = gettime() + (60 * 60); //60 Sekunden * 60 MinutenUnd die Abfrage:
if(gesperrtBis[playerid] > gettime()) //noch gesperrtBeachte, dass der Wert natürlich in einer Datenbank oder ähnlichem gespeichert werden müssen und beim Login geladen werden müssen.
Siehe auch: http://forum.sa-mp.com/showthread.php?t=254915%5D
-
Ich wollte gerne meine Fraktionen die in der Datenbank hinterlegt sind mal Anzeigen lassen aber irgendwie klappt es nicht
ocmd:listfraktionen(playerid,params[])
{
if(!cache_num_rows())return 1;
new fID[sizeof(sInfo)],fName[128][sizeof(sInfo)], string[128];
format(string,sizeof string,"Name\tID\n");
for(new i = 0; i < cache_num_rows(); i++)
{
fID[i] = cache_get_field_content_int(i,"ID",dbhandle);
cache_get_field_content(i,"name",fName[i],dbhandle,128);
format(string,sizeof string,"%s\t%i\n",fName[i],fID[i]);
}
ShowPlayerDialog(playerid, DIALOG_FRAKLISTE, DIALOG_STYLE_LIST, "Fraktionen-Liste",string,"Ok", "Schließen");
return 1;
} -