Beiträge von Mogly1
-
-
Hey, mal eine allgemeine frage kurz.
Funktioniert das bei dir im Script allgemein (gilt für alle sizeof)ich kenne das nur so
Quelle:
-
Hey,
Meine Ideen(Mein Geschmack i guess)
Zu aller erst, falls ich den nicht gefunden habe tut es mir leid, aber ein darkmode wäre ganz Nice.
Ansonsten finde ich bei der Startseite, die Bilder, die oben durch gehen. Abgeschnitten. Ich würde es denke besser finden, wenn sie den ganzen Bildschirm einnehmen (mit einen leichten Fade oder Shadow effekt)
Also von ganz links nach ganz rechts.(aber das ist Geschmackssache ^^)
Und beim Warenkorb würde ich das entfernen etwas hervorheben, da grau auf weiß etwas unpassend ist meiner Meinung.
-
Je nachdem wie viel Zeit du investieren willst, bzw. denk evtl. nicht zu groß wie schon erwähnt wurde. Ist die Community glaube recht klein im deutschsprachigen Raum.
Ideen:
Ansonsten Ideen:
Farming System(etwas ausführlicher als Checkpoint oder Co.):
Leute können sich eine Farm selber kaufen (Aka wie Gangwargebiet)
Wo sie dann selber in diesen Bereich anbauen können und es wächst. Sie müssten dann es düngen (Flugzeug z.B) oder Fahrzeuge. Bewässern.
Schauen wegen Temperatur und co.
Bauern können auch, wenn sie die Evtl. Genehmigung haben. Tiere(Kühe, Rehe) kaufen und zu ihrer Farm transportieren. wo diese dann auch gezüchtet werden für Milch oder Fleisch Produkte.
(Paarung kann auch eine rolle spielen)
Dies würde dann an die Businesse verkauft werden oder einen staatlichen Lager wo der Preis dann etwas reguliert je nach bedarf.
Somit könnte man das dann auch gleich für Konkurrenz nehmen oder für die Logistiker(trucker) die dann verschiedene Silos oder die Staatliche ansteuern.
Daraus folgt die Idee für Businesse welche die Produkte vermarkten und halt Spieler die diese Produkte erstellen müssten.
Somit könnten Besitzer von verschiedensten Herstellern wo der Preis passt bestellen. (Kann also auch dann Qualität existieren)
(Soweit diese Idee angesetzt...)
Andere Idee Drogen:
Selber anbauen, Pflegen und halt ein Caravans-System, damit man mit sein Labor mobil sein könnte.
Dadurch, hätten die Cops auch noch eine Tätigkeit mehr. (Labore und Anbau zu unterbinden)
Und durch das mobile Labor wäre Abwechselung auf jeden Fall da.
Andere Idee:
Falschgeld, mit in den Umlauf bringen
(Umsetzung, ka.)
Andere Idee:
Kleidungssystem
Mit Objekten für individuelles Gestalten der Person.
Andere Idee:
Schutzwesten, geben keine Armour, sondern reduzieren wirklich nur Torso Treffer.
(Frage halt, wenn du Reallife machst ob, man das machen sollte)
Andere Idee:
Krankheiten, Vergiftungen, Blutverlust
Mit den verschiedenen Treffern jeweils anders umgehen (arm, Bein...)
Evtl. humpeln oder schwieriger Fahren/aimen)
Andere Idee:
Drogen Stats effekte geben, bei gewissen mengen sonst auch über Dosis oder co.
Bsp. Mehr aushalten, Hunger anhalten/Durst anhalten (Ka ^^)
Andere Idee:
Hunger/Durst
(Fördert wieder das Kaufen in Läden)
Andere Idee:
Tauchen, in bestimmten Spots, für Schätze oder Bergungen.
Andere Idee:
Fahrzeuge, die im Wasser landen, bergen.
Andere Idee:
Fahrzeuge, random bei km x/y, Schaden geben für mechaniker
Andere Idee:
Mechaniker oder allgemein, reifen wechseln, öl. Benzin bei Falsch tanken auspumpen
Andere Idee:
Businesse in Ganggebieten(wenn vorhanden)
haben Schutzgeld zu zahlen oder Gang besitzende Gang kann dort randalieren und schäden(geschlossen, demuliert)
verursachen. Wenn die Cops dort auch nicht für Ordnung heerschen können c(:
Yoa, das wären Ideen, lass dich inspirieren.
-
Nein, das wird nicht funktionieren, da PVars, wie der Name schon sagt, Spieler bezogen sind, also ein SetPVar(carid wird nicht funktionieren bzw. zwangsläufig zu Fehlern führen.
Verstehe die Notwendigkeit von dem PVar auch gar nicht, da der Name vom Besitzer des Fahrzeuges ja schon in cInfo[carid][besitzer] steht. Aber wie Maho schon anmerkte, wäre das eh viel zu Lange, also den Spielernamen sollte man faktisch nicht als Nummernschild verwenden.
Ne in besitzer steht doch nur die db Id
cInfo[id][besitzer]=PlayerInfo[playerid][p_id]
da ich wie gesagt das jetzt lange nicht mehr gemacht hab, wusste ich nicht wie wir von Mysql das ausgeben lassen könnten -
wie sieht getPlayerName, bei dir aus?
Bzw, denke ich mal das es daran liegen wird, das dein getPlayName sicha uf die playerid bezieht und nicht auf die Datenbank_ID vom player.
Ich habe hier mal was versucht, es wird wahrscheinlich einen viel besseren weggeben
.
Code
Alles anzeigen//das in der Methode nutzen getCarOwnerName(carid,cInfo[carid][besitzer]);//Nun ist in GetPVarString der owner name Name = GetPVarString(carid,"Owner"); //---- forward getCarOwnerName(carid,ownerId); public getCarOwnerName(carid,ownerId) { new query[256]; mysql_format(Handle,query,sizeof(query),"SELECT Username From user WHERE ID='%d'",ownerId); mysql_tquery(Handle,query,"OnOwnerName","dd",carid,ownerId); return 1; } forward OnOwnerName(carid,ownerId); public OnOwnerName(carid,ownerId) { new num_fields,num_rows; cache_get_data(num_rows,num_fields); if(num_rows==0) { SetPVarString(carid,"Owner","Error"); } else { new name[MAX_PLAYER_NAME]; cache_get_field_content(0,"Username",name); SetPVarString(carid,"Owner",name); } return 1; }
Aber ich weiß nicht ob es überhaupt Funkt oder gut so ist
(zu lange her)
Wenn du jetzt aber die Autos nur erstellen lässt, wenn der Spieler auf dem Server ist, dann musst du das numberplate einfach dort setzen, wo du zugriff, auf playerid hast, um getPlayerName anzuwenden. -
unter Zeile 17
Codenew string[9]; format(string,sizeof(string),"Sa-%d", cInfo[id][db_id]);//Text auf den Nummerschild, "cInfo[id][db_id]" ist die Datenbank id vom Fahrzeug SetVehicleNumberPlate(cInfo[id][id_x], string); //beachte noch die Notes https://sampwiki.blast.hk/wiki/SetVehicleNumberPlate SetVehicleToRespawn(cInfo[id][id_x]);//Da das Vehicle neu gestreamt werden muss)
Falls respawn, nicht der kaufpunkt sein sollte notfalls nach Vehicle Respawn pos setzen
An sich, falls es individuelle Plates geben soll, solltest du dir das NumberPlate auch abspeichern.
-
Hey, versuch mal
bei deiner methode, ein stock davor oder ein foward+public. Ich glaube, das hatte ich bei mir auch nur so, ging bei mir auch nicht. Aber ich bin mir nicht mehr zu 100% sicher deswegen teste das mal
-
Was ist denn dein "f_id" in FrakInfo[f_id][fDrogen]?
RaPTiiC , soweit ich dein system verstehe, müsstest du
FrakInfo[f_id][fDrogen]
zu
new fraktion = PlayerInfo[playerid][pFraktion]; pFraktion zu Fraktion variable bei dir ändern.
FrakInfo[fraktion][fDrogen], somit werden die drogen der fraktion angezeigt.
-
Wie Kaliber , schon sagte,
die Nachricht
Codefor(new i=0; i<MAX_PLAYERS; i++) { if(!IsPlayerConnected(i))continue; if(!isAdmin(i, 1))continue; format(string,sizeof(string), "[CAA:] %s: %s",getPlayerName(playerid), inputtext); SendClientMessage(i, ACHAT, string); }
Kommt erst im nächsten dialog in deinem Fall : if(dialogid == DIALOG_CONTACTSUPPORT)
Da er ja erst noch den Text eingeben muss(und auf Send, klickt), danach können wir ja auch erst abfragen was seine anfrage war, mit dem inputtext.
Falls immer noch unklar:
Code
Alles anzeigenif(dialogid==DIALOG_SUPPORT) { if(response) { if(listitem==0) { ShowPlayerDialog(playerid,DIALOG_CONTACTSUPPORT,DIALOG_STYLE_INPUT,"Contact a admin","Describe your request as well as possible:","{24c123}Send","{d62020}Exit"); return 1; } } else { SendClientMessage(playerid,RED,"You have canceled the Support menu."); } return 1; } if(dialogid == DIALOG_CONTACTSUPPORT) { if(response) { for(new i=0; i<MAX_PLAYERS; i++) { if(!IsPlayerConnected(i))continue; if(!isAdmin(i, 1))continue; format(string,sizeof(string), "[CAA:] %s: %s",getPlayerName(playerid), inputtext); SendClientMessage(i, ACHAT, string); } SendClientMessage(playerid, -1, "Request, sended"); //Damit der spieler weiß es wurde abgeschickt. } else{ ShowPlayerDialog(playerid,DIALOG_SUPPORT,DIALOG_STYLE_LIST,"Support Panel","Contact a admin\n{24c123}Create a Ticket\n{d62020}Delete open Ticket\nTicket Archive\nOnline Supporter/Admins","{24c123}Select","{d62020}Exit"); //Zeigt wieder das Supportmenu an, falls man sich verdrückt hat. (kannst aber auch nicht machen) } }
(Zumindest, wenn ich das jetzt nicht falsch verstanden habe)
-
-
Habe ich jetzt nicht drauf geachtet, schau mal ob es mit einem FULL JOIN geht ^^.
SQLSELECT COALESCE(fractionvehicles.plate, '0') AS plate, COALESCE(fractionvehicles.fractionID, '0') AS fractionID, COALESCE(vehicles.Owner, '0') AS Owner FROM fractionvehicles FULL JOIN vehicles ON fractionvehicles.plate=vehicles.plate WHERE fractionvehicles.plate = 'test' OR vehicles.plate = 'test' LIMIT 1
bzw. wenn es ja kein fractionvehicle.plate gibt, dann geben wir das vehicles.plate aus.
musst du aber mal testen, weiß nicht ob es so funktioniert
SQLSELECT COALESCE(fractionvehicles.plate, vehicles.plate) AS plate, COALESCE(fractionvehicles.fractionID, '0') AS fractionID, COALESCE(vehicles.Owner, '0') AS Owner FROM fractionvehicles FULL JOIN vehicles ON fractionvehicles.plate=vehicles.plate WHERE fractionvehicles.plate = 'test' OR vehicles.plate = 'test' LIMIT 1
-
Hey, meinst du evtl. das?
SQLSELECT fractionvehicles.plate AS plate, fractionvehicles.fractionID AS fractionID, COALESCE(vehicles.Owner, '0') AS Owner FROM fractionvehicles LEFT JOIN vehicles ON fractionvehicles.plate=vehicles.plate; WHERE fractionvehicles.plate = 'test' LIMIT 1
sollte dann diese Ausgabe haben :
|plate|fractionID|Owner|
test 4 0
(falls COALESCE nicht geht dann zu ISNULL ändern)
Evtl. habe ich es aber auch falsch verstanden.
Ich hoffe, es ist dennoch hilfreich ^^.
-
-
-
-
Wenn du das einzelnd machen willst.
Code
Alles anzeigenif(Spieler[playerid][pBank] >= 5000000) { //steuern dazu geben oder so Spieler[playerid][pBank] -= floatround(ReichenSteuer*fsteuern[pReichensteuer]); Others[Staatskasse] += ReichenSteuer; } if(Spieler[playerid][pHouseRent] != 0) { //Wenn er eingemitet ist, miete abziehen Spieler[playerid][pBank] -= MietPreis; } if(Spieler[playerid][pHouseKey] != 0) { //ka. glaube wenn er nen hause hat dann halt mietpreise dazu geben oder stromkosten abziehen :D:D } //und am ende dann erst den Text anzeigenlassen evt. format(string, sizeof(string), ""COLOR_HEX_WHITE"Lohn: "COLOR_HEX_GREEN"%d$ "COLOR_HEX_WHITE"| Lohnsteuer: "COLOR_HEX_RED"-%d$ {FFFFFF}| KFZ-Steuer: {AA3333}-%d$", (Lohn+steuerGeld), steuerGeld, SteuerKFZ);....
-
♦Mindestalter: 16 Jahre♦
-> Ausnahmen sind gestattet, Vorraussetzungen sind Geistige Reifeund RP Verständniss
Also, 18 Jahre sollte schon ein Muss sein.
Das Spiel GTA V ist doch auch erst ab 18 oder?
Und wenn ihr dann auch noch ausnahmen macht...
Sagen wir ein 14-Jähriger würde die Kreterin erfüllen und ich würde auf dem Server mit einem 14-Jährigen spielen, ob wohl GTA V erst ab 18 ist.
Da würde ich mir schon etwas blöd vorkommen.
Ansonsten wollte ich noch in Erfahrung bringen ob Mods auf dem Server sind(Fahrzeuge, Skins...)?
-
Aber da fehlt doch noch ganz viel?
Das sind bis jetzt nur definitionen....
Also ich kann dir hier mein Video als Hinweis geben. Damals war ich kein MySQL Profi, aber wenn du es einfach nach Tippst und ein wenig verstehst, kommst du ganz schnell klar damit
Video nutzt ältere mysql, Version: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.Sonst verweise ich ganz gerne noch hier rauf:
[jTuT] MySQL R41-4 (Installation, XAMPP, Verwendung, Bedienung & Registrations-System)
Aber falls du noch weiteren Code hast mit connect(in OngamemodeInit) oder OnPlayerSave(oder so) dann kann man dir da bestimmt noch weiter helfen.
-
Also ganz Simple erklärt, du erstellst eine neue variable, weißt dieser dann dem Fahrzeug zu und fragst beim einstiegen oder beim Hinsetzen ab, ob er in der Fraktion ist am besten benutzt du dafür OnplayerStateChange
Vor weg, der Code ist kommenteir, ich hoffe man kann es erkennen....
Simple dann so:
die 10 steht für die maximalen Fahrzeuge, kannst du natürlich erhöhen, diese variablen sind dann ein Array, ein Array fängt immer mit 0 an zu zählen, dass bedeutet Minimum wäre ballas_Car[0] und Max ballas_Car[9], alles darüber gibt Fehler, es sei denn du erhöhst die 10
unter OnGameModeInit dann
Codeballas_Car[0]=AddStaticVehicle(405,1220.4780,-928.0273,42.9246,181.7324,36,1); ballas_Car[1]=AddStaticVehicle(411,1230.4780,-928.0273,42.9246,181.7324,36,1); ballas_Car[2]=AddStaticVehicle(412,1240.4780,-928.0273,42.9246,181.7324,36,1); ballas_Car[3]=AddStaticVehicle(413,1250.4780,-928.0273,42.9246,181.7324,36,1); grove_Car[0]=AddStaticVehicle(411,1260.4780,-928.0273,42.9246,181.7324,36,1);
Als Beispiel, hier kannst du wie gesagt bis zu der zahl neun gehen oder du erhöhst die 10
dann bei OnPlayerStateChange
Code
Alles anzeigenif(newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGER)//Fragt ab ob wir Fahrer oder Passagier sind, bedeutet wenn du willst das man sich als Beifahrer rein setzen darf, entferne "|| newstate == PLAYER_STATE_PASSENGER" { new vehicle = GetPlayerVehicleID(playerid);//gibt die Aktuelle Id vom Fahrzeug, indem wir sitzen zurück for(new i=0; i<sizeof(ballas_Car);i++)//geht alle Fahrzeuge durch von den Ballas { if(vehicle == ballas_Car[i])//Fragt ab, ob wir in einem ballas Fahrzeug sitzen { if(playerFaction[playerid]!=2)//Fragt ab ob wir nicht in der Fraktion von der Ballas sind, Bitte anpassen zu deinem System!!!!! { RemovePlayerFromVehicle(playerid);//entfernt den Spieler vom Fahrzeug wieder SendClientMessage(playerid,-1,"Du bist kein Mitglied der Ballas");//gibt eine Nachricht aus } return 1;//beendet, da wir das Fahrzeug gefunden haben (geht auch break, falls darunter noch Code kommt welcher ausgeführt werden soll) } } for(new i=0; i<sizeof(grove_Car);i++)//geht alle Fahrzeuge durch von den GroveStreet { if(vehicle == grove_Car[i])//Fragt ab, ob wir in einem GroveStreet Fahrzeug sitzen { if(playerFaction[playerid]!=1)//Fragt ab ob wir nicht in der Fraktion von der Grovestreet sind, Bitte anpassen zu deinem System!!!!! { RemovePlayerFromVehicle(playerid);//entfernt den Spieler vom Fahrzeug wieder SendClientMessage(playerid,-1,"Du bist kein Mitglied der Grovestree");//gibt eine Nachricht aus } return 1;//beendet, da wir das Fahrzeug gefunden haben (geht auch break, falls darunter noch Code kommt welcher ausgeführt werden soll) } } }
Du siehst also, bei mehr Fraktionen musst du nur die for schleife kopieren und anpassen.
oder du nutzt ein Enum um bei mehrer fraktionen, mehr übersicht zu haben
Code
Alles anzeigenenum Cars{ model, Float:fx, Float:fy, Float:fz, Float:fr, c1, c2, faction, id } new frakCars[][Cars] = { // {modelid,x,y,z,angle,color1,color2,fraktionid} {411,1230.4780,-928.0273,42.9246,181.7324,6,1,1},//Fraktion 1 {412,1230.4780,-938.0273,42.9246,181.7324,6,1,1},//Fraktion 1 {413,1230.4780,-948.0273,42.9246,181.7324,6,1,2}, //Fraktion 1 {414,1230.4780,-958.0273,42.9246,181.7324,6,1,2},//Fraktion 2 {415,1230.4780,-968.0273,42.9246,181.7324,6,1,2} //Fraktion 2 };
In FrakCars, setzt du genau die werte ein, die eigentlich in AddStaticVehicle stehen und am ende fügst du dann mit einem Komma noch die frations id hinzu.
Bsp. unser gepseichertes Fahrzeug AddStaticVehicle(405,1220.4780,-928.0273,42.9246,181.7324,36,1);
wir kopieren alels aus der Klammer, "405,1220.4780,-928.0273,42.9246,181.7324,36,1"
und fügen am ende noch die Fraktion hinzu, welche das Fahrzeug nutzen darf, sagen wir mal die Fraktionsid 3 darf das Fahrzeug nutzen, dann sieht es so aus:
"405,1220.4780,-928.0273,42.9246,181.7324,36,1,3" und das fügen wir ein
also so dann fertig. wichtig, dadrüber hitner der "}" dann ein Komma setzen. (seihe oben das Bsp.)
dann unter OnGameModeInit
Codefor(new i=0;i<sizeof(frakCars);i++)//geht alle Erstellten autos durch { frakCars[i][id] = AddStaticVehicle(frakCars[i][model],frakCars[i][fx],frakCars[i][fy],frakCars[i][fz],frakCars[i][fr],frakCars[i][c1],frakCars[i][c2]);//erstellt unser Auto und weisst die id zu }
dann unter OnPlayerStateChange
Code
Alles anzeigenif(newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGER) { new vehicle = GetPlayerVehicleID(playerid); for(new i=0; i<sizeof(frakCars);i++)//geht alle Erstellten autos durch { if(vehicle == frakCars[i][id])//überprüft ob wir in einem dieser Fahrzeuge sitzen { if(playerFaction[playerid]!=frakCars[i][faction])//Fragt ab, ob wir nicht der Fraktion sind { RemovePlayerFromVehicle(playerid);//entfernt uns vom Fahrzeug new string[120]; format(string,sizeof(string),"Du bist kein Mitglied der Fraktion: %s",GetFactionName(frakCars[i][faction])); SendClientMessageToAll(-1,string);//gibt uns eine Nachricht, das wir nicht zu der gesetzten Fraktion gehören. } return 1;//beendet, da wir das Fahrzeug gefunden haben (geht auch break, falls darunter noch Code kommt welcher ausgeführt werden soll) } } }
zusatz funktion, GetFactionName
Code
Alles anzeigenstock GetFactionName(fractionid) { new string[20]; switch(fractionid) { case 0: string="Zivi"; case 1: string="Grove Street"; case 2: string="Ballas"; } return string; }
Somit, musst du einfach nur oben ein neues Fahrzeug hinzufügen und sparst dir immer, das napassen der Variablen
Ich hoffe einer dieser Varianten konnte dir helfen.