Abend Leute,
blicke durch die neuen Textdraws von 0.3x nicht so ganz durch, wie funktioniert das, wenn ich zb 15 Skins anzeigen lassen will?
Abend Leute,
blicke durch die neuen Textdraws von 0.3x nicht so ganz durch, wie funktioniert das, wenn ich zb 15 Skins anzeigen lassen will?
@Fabian™: sag mal was ist dein Problem? So wie ichs dir gezeigt habe funktioniert es!
Ich bin ja nicht so ich zeigs dir:
Guck dir das an, villeicht verstehst du ja, was ich meine ;)
Am besten machst du es mit variablen, wenn er das erste mal connectet setzt du die erste variable auf 1, und wenn der spieler stribt fragst du ab ob sie auf 1 ist, wenn ja dann soll er dich im krankenhausspawnen lassen und wenn nein dann am noobspawn
ID 525 ist ein Towtruck, 552 ist ein Utility Van
Du hast kein Parameter für Level angegeben
//LoadPlayer
new query[500];
format(query,sizeof(query),"UPDATE `accounts` SET `Level` = '%d' WHERE `Name` = '%s'",SpielerInfo[playerid][pLevel],PlayerName(playerid));
mysql_query(query);
SetPlayerScore(playerid,SpielerInfo[playerid][pLevel]);
if(strcmp(cmdtext,"/essen",true)==0)
{
new Float:health; //FLoat definieren
GetPlayerHealth(playerid, health); // Leben abfragen
SetPlayerHealth(playerid, health+5); //Das abgefragte Leben (health) +5 :)
SendClientMessage(playerid, 0xFFFFFFFF, "Guten Hunger!"); //nachricht senden
return 1;
}
ShowPlayerMarkers(1);
LimitPlayerMarkerRadius(200); //Radius, 4000.0 ist die ganze Map :)
bitte unter OnGameModeInit eintragen
@midomen: ist doch jz alles richtig, du hattest einfach nur GetPlayerInterior(spieler); gemacht statt int = GetPlayerInterior(playerid);
habe meins schon editiert
@midomen: Du hast vergessen die Interiorwelt von dem spieler auslesen zu lassen
ocmd:goto(playerid,params[])
{
new Float:posy,Float:posx,Float:posz,spieler,int;
if(sscanf(params,"u",spieler))return SendClientMessage(playerid,farbe,"Benutzung: /goto [Spieler]");
if(variableobspieleradministenumoderpvar?>=adminrangabdemmansichportendarf)
{
GetPlayerPos(spieler,posx,posy,posz);
int = GetPlayerInterior(spieler); //hast du vergessen :)
if(IsPlayerInAnyVehicle(playerid))
{
new auto;
auto = GetVehicleID(playerid);
SetVehiclePos(auto,posx,posy,posz);
LinkVehicleToInterior(auto,int);
SetPlayerInterior(playerid,int);
PutPlayerInVehicle(playerid,auto,0);
}
else
{
SetPlayerPos(playerid,posx,posy,posz);
SetPlayerInterior(playerid,int);
}
}
return 1;
}
ocmd:set(playerid,params[])
{
if(GetPVarInt(playerid,"Eingeloggt") == 0)return SendClientMessage(playerid,WHITE,"Du bist nicht Eingeloggt");
new pID,stufe,cmd[64];
if(sscanf(params,"usi",pID,cmd,stufe))return SendClientMessage(playerid,WHITE,"Benutzung: /set [Playerid/Name] [Name] [Anzahl]");
if(strcmp(cmd,"Respektpunkte",true,14)==0)
{
SpielerInfo[pID][Respektpunkte] = stufe;
}
else if(strcmp(cmd,"Geld",true,5)==0)
{
GivePlayerMoney(pID,stufe);
}
return 1;
}
Ergänzung an firestormZ (Jeder ergäntzt xD)
Du solltest noch voher überprüfen ob der Spieler in ein Vehicle ist mit if(IsPlayerinAnyVehicle(playerid))
:DDD Ergänzung: Ich denke das ist klar aber zurück zum Thema, Valrineya: wenn du Hilfe brauchst, kann ich dir einen erstellen und erklären
Du hast keine Parameter beim Speichern angegeben, hier ist es mal richtig
stock SpielerSpeichern(playerid)
{
if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid)) // Sofern der Spieler eingelogg ist bzw. im Spielt ist und kein NPC / BOT ist.
{
if(GetPVarInt(playerid,"logged") == 1) // Ob er eingeloggt ist, hätten wir diesen PVar nicht und der Spieler würde währen des Einloggen's Disconnecten wo die Variablen von ihm noch nicht geladen wurden, so wäre danach alles auf 0
{
new Float:x, Float:y, Float:z;
// Use GetPlayerPos, passing the 3 float variables we just created
GetPlayerPos(playerid, x, y, z);
new query[500]; // Neuer query || TIPP : Die Länge eines Querys lässt sich mit Notepad++ Sehr leicht ermitteln einfach den Input hineinschreiben und ablesen wieviel Zeichen dieser hat.
format(query,sizeof(query),"UPDATE `accounts` SET `Level` = '%d', `Money` = '%d', `Admin` = '%d', `pX` = '%f', `pY` = '%f', `pZ` = '%f' WHERE `Name` = '%s'",PInfo[playerid][pLevel],PInfo[playerid][pMoney],PInfo[playerid][pAdmin], x, y, z, SpielerName(playerid));
mysql_query(query); // Wir senden ab
}
}
return 1;
}
Edit: Ich mach es dir jetzt auch mal mit der FacingAngle (In der Richtung, in der der Spieler gerade schaut.):
stock SpielerSpeichern(playerid)
{
if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid)) // Sofern der Spieler eingelogg ist bzw. im Spielt ist und kein NPC / BOT ist.
{
if(GetPVarInt(playerid,"logged") == 1) // Ob er eingeloggt ist, hätten wir diesen PVar nicht und der Spieler würde währen des Einloggen's Disconnecten wo die Variablen von ihm noch nicht geladen wurden, so wäre danach alles auf 0
{
new Float:x, Float:y, Float:z,Float:a;
// Use GetPlayerPos, passing the 3 float variables we just created
GetPlayerPos(playerid, x, y, z);
GetPlayerFacingAngle(playerid, a);
new query[500]; // Neuer query || TIPP : Die Länge eines Querys lässt sich mit Notepad++ Sehr leicht ermitteln einfach den Input hineinschreiben und ablesen wieviel Zeichen dieser hat.
format(query,sizeof(query),"UPDATE `accounts` SET `Level` = '%d', `Money` = '%d', `Admin` = '%d', `pX` = '%f', `pY` = '%f', `pZ` = '%f', `pA` = '%f' WHERE `Name` = '%s'",PInfo[playerid][pLevel],PInfo[playerid][pMoney],PInfo[playerid][pAdmin], x, y, z, a, SpielerName(playerid));
mysql_query(query); // Wir senden ab
}
}
return 1;
}
SetSpawnInfo(playerid, 0, PlayerInfo[playerid][pSkin], PlayerInfo[playerid][pX], PlayerInfo[playerid][pY], PlayerInfo[playerid][pZ], PlayerInfo[playerid][pA], 0, 0, 0, 0, 0, 0 );
SetCameraBehindPlayer(playerid); //setzt die Kamera hinter dem Spieler :)
SpawnPlayer(playerid);
Du musst es nur entsprechend anpassen beim stock SpielerLaden wenn du Hilfe brauchst, sag mir bescheid oder melde dich hier im Thread
Erklärung: %f ist ein Parameter für Floats = Dezimalzahl(Zahl mit Kommastellen)
Mit freundlichen Grüßen
firestormZ
ich weis nicht wie dein Autohaussystem aufgebaut ist, das musst du schon selber wissen
einfach abfragen ob er 6 autos hat?
if(MAX_PLAYERS_CAR == 6)
Ergänzung von @midomen:
LinkVehicleToInterior..
SetVehicleVirtualWorld...
diese Funktionen musst du anpassen und am besten auslesen, wo playerid sich gerade befindet, z.B.
LinkVehicleToInterior(vehicleid,GetPlayerInterior(playerid));
for(new i = 0; i < MAX_PLAYERS;i++)
{
if(Medic[i] != 1) return SendClientMessage(playerid,ROT,"Es ist kein Arzt im Dienst!"); //deine abfrage (nutze i und klein playerid)
{
SetPlayerMarkerForPlayer(playerid, i, 0xFF0019FF);
SendClientMessage(i,0xFF0019FF,"Ein neuer Notruf ist eingegangen, sprecht euch ab und fahrt zu dem Patienten!");
//hier auch überall nur i statt playerid verwenden ^^
}
}
ocmd:give(playerid,params[])
{
new pID, modul[45];
if(sscanf(params,"s[20]u",modul,pID))return SendClientMessage(playerid,Grau,"Benutze: /give [Modul] [Playerid]");
if(strcmp(modul,"license",true,10)==0)
{
SendClientMessage(pID,ROT,"TEST");
}
return 1;
}
mit Variablen, wenn er jemanden angeschossen hat, wird die variable auf 1 gesetzt und nach 3 sekunden im timer wieder auf 0, dann überprüfst du im command /exit ob die variable auf 1 ist und wenn ja dann soll nichts passieren
Ein Float ist eine Dezimalzahl und ein Integer eine einfache Zahl, bei %f wird dein Leben z.B so ausgegeben = 100.0000, du kannst aber auch floatround nutzen und dein Leben wird als 100 ausgegeben
new Float:leben, string[64];
GetPlayerHealth(playerid, leben);
format(string, sizeof(string), "Leben: %d", floatround(leben));