Ja , speicher ihn in einer Variable zwischen,.
z.b.
Unter die Includes
new MySkin[MAX_PLAYERS];
OnPlayerSpawn
SetPlayerSkin(playerid,MySkin[playerid]);
In den Cmd
MySkin[playerid] = GetPlayerSkin(playerid);
Ja , speicher ihn in einer Variable zwischen,.
z.b.
Unter die Includes
new MySkin[MAX_PLAYERS];
OnPlayerSpawn
SetPlayerSkin(playerid,MySkin[playerid]);
In den Cmd
MySkin[playerid] = GetPlayerSkin(playerid);
Mit dieser inc datei kann man Leicht Info Punkte erstellen, in denen man sofort in einer Linie
den Anzeige text Festlegen kann. Man kann damit auch ganz leicht betretbare Punkte machen
wie in einem Haussystem o.ä.
Beispiel:
bCreateInfo(Objekt/pickup Model,2018.5232,-1279.9086,23.9768, "~b~ Mein Info Punkt"); // ID 1
Cmd
if(strcmp(cmd, "/entericon", true) == 0)
{
if(IsPlayerNearIcon(playerid,1)) // Wenn die Icon ID 1 ist, natürlich können auch varibalen verwendet werden ;-)
{
SetPlayerPos(playerid, 2021.1897,-1243.2266,23.0797);
}
return 1;
}
Funktionen :
bCreateInfo(model,x, y, z, "Dein text");
Das Kommt bei OnPlayerPickup hin:
bOnPlayerPickup(pickupid,playerid);
für Die If Funktionen:
IsPlayerNearIcon(playerid,ID);
Ich hoffe das erleichtert das Scripting ein bisschen
Update1
Da NeS | Wutschkooo mich gebeten hatte einen Auto teleport beim Betreten der Icons / Pickups einzubauen
werde ich es nun auch hier reinstellen vllt hilft es manchen un erleichtert wieder einiges
* Neue Funktion *
-> OnGameModeInit:
bAutoTeleport(model,x , y, z, "DeinText" , Teleport X, Teleport Y , Teleport Z, Virtuelle Welt, Interior)
*( Wer keine Virtuelle Welt Möchte oder Interior einfach auf -1 stellen )*
-> OnPlayerPickup:
bOnPlayerEnterAIcon(pickupid,playerid);
*( Dieses kann man so einfügen wie es da steht )*
Update 2
Ich hab noch etwas geändert , so das man wenn man in einen Auto Teleport geht nicht direkt auf die Stelle gespawnt wird sondern
nur ein kleines Stück versetzt damit man die Koordinaten zwischen den Teleport und Icon Standort einfach für den Exit Teleport umtauschen kann,
so braucht man nur 2 Linien, also kann man sofort den umgekehrten Teleport erstellen und braucht nicht noch extra Koordinaten .
Man Kanns Model Jetz auch wählen .
Update 3
bDestroyATeleport(t_id);
bDestroyIcon(icon_id); - 1. Auto Teleport Löschen 2. Info Stelle Löschen
bSetInfoPos(b_id,Float:x,Float:y,Float:z); - Position Festlegen für die Info Stellen
bSetAutoTeleport(c_id,Float:x,Float:y,Float:z); - Pos für die Auto Teleports Festlegen
Have Fun
nimm doch die Random Funktion
Erstmal ne Variable mit deinen Coords
new Float:SpielerSpawns[1][3] = {
{x,y,z},
}
Dann die Funktion hier
new rando = random(sizeof(SpielerSpawns));
SetPlayerPos(playerid, SpielerSpawns[rando][0], SpielerSpawns[rando][1], SpielerSpawns[rando][2]);
if (strcmp("/admins", cmdtext, true, 10) == 0)
{
SendClientMessage(playerid,0xFFFFFFAA,"Admins:");
for(new i = 0; i <= MAX_PLAYERS; i++)
{
if(IsPlayerAdmin(i))
{
new strings[256];
new NameIs[256];
GetPlayerName(i,NameIs,sizeof(NameIs));
format(strings,sizeof(strings),"%s",NameIs);
SendClientMessage(playerid,0xFFFFFFAA,strings);
}
}
return 1;
}
Ahja nochwas Größer als 0 muss es heissen nicht Größer als 1
Die Öffentliche Klasse OnPlayerSelectRow ist doppelt drinne
ne kann man nicht (leider)
hast du OnPlayerCommandtext auf Return 0; ?
jo stimmt auch wieder xD
Wer hat gesagt das der Timer extakt so sein muss
Diese Include verhindert das auf eurem Server Geld gehackt wird,
sobald der Spieler versucht Geld zu ercheaten , wird sein Geld sofort auf das Geld zurückgesetzt das
er haben sollte ohne 'MoneyHack'. Funktioniert bei S0beit und den Standard MoneyHacker Tools.
Um dieses Script mit erfolg zu nutzen müsste ihr bestimmte dinge in eurem Script ersetzen :
GivePlayerMoney , ResetPlayerMoney, GetPlayerMoney.
Die Funktionen
bResetPlayerMoney(playerid);
bGivePlayerMoney(playerid,Wert);
EnableAntiMoneyHack(); - Kommt Standardmäßig bei OnGameModeInit hin, Aktiviert den Anti hack
bGetPlayerMoney(playerid);
bSetPlayerMoney(playerid,Geld);
Bei mir hat die inc zu 100% Funktioniert, wenn ihr Probleme habt bitte bescheid sagen.
EDIT:
Ich hatte vergessen zu sagen das man noch ein Timer im Script Festlegen muss
// Oben unter den Includes
forward MoneyChecker();
public MoneyChecker()
{
bMoney_check();
}
// OnGameModeInit
SetTimer("MoneyChecker",1000,1);
* Updated Version
Machs mit nem Timer und stell ihn aufn 5 Secs.
for(new i = 0; i <= MAX_PLAYERS; i++)
{
if(PlayerTeam[i] == 8) // Beispiel Variable
{
SendClientMessage(i,FARBE,"Einsatz text");
}
}
Sinn der Sachen
Also es gibt verschiedene Mods wie Reallife, Deathmatch, Race & stunt:
Reallife: Du darfst meist keine Leute killen, musst iwelche Jobs ausführen und damit halt dein Geld machen,
du kannst Geld deponieren , vllt nen eigenes Auto Kaufen und weitere RL sachen halt
Deathmatch: Hier darfst du Leute Killen, wenns bestimmte Regeln auf dem Server gibt wie keinen killen wenn er afk ist zum Beispiel.
dann musste dich halt drann halten und darfst ansonsten eig. jeden killen der dir Quer kommt
Stunt & Race: Hier musste halt Rennen fahren, Stunten usw. sind meist eh nur Fun Mods , is eig. nich viel sinn drinn ausser Spaß dabei haben
Besser kann ichs im mom. nich erklären
new PlayerName[256];
GetPlayerName(playerid,PlayerName,sizeof(PlayerName));
new wiedergabeformat[256];
format(wiedergabeformat,sizeof(wiedergabeformat),"%s[GER]",PlayerName);
SetPlayerName(playerid,wiedergabeformat);
Meinste die Funktion ?
Den musste unter GameModeinit einfügen
OnGameModeInit()
{
CreateObject(...);
return 1;
}
strmid(PInfo[giveplayerid][Reason],cmdtext[8],0,256,256);
Ich denke mal so müsste es klappen
Ich denk ma das isn Textdraw mit ner Box
Ich kann dazu nur Sagen GTA IV ist eig. schon so fürn Arsch, da man erst Online sein muss um seine Spielstände zu Speichern , bzw. man muss eig. alles Online machen , mir wärs lieber einfach so ohne Netz zu speichern
new command[256];
new temp[256];
new Index;
command = strtok(cmdtext, Index);
if(strcmp(command, "/kick", true) == 0)
{
if(IsPlayerAdmin(playerid))
{
new playerd;
new reason;
temp = strtok(cmdtext, Index);
if(!strlen(temp))
{
//SendClientMessage(playerid, COLOR, "INFO: /kick [PLAYERID] [GRUND]");
return 1;
}
playerd = strval(temp);
temp = strtok(cmdtext, Index);
if(!strlen(temp))
{
//SendClientMessage(playerid, COLOR, "INFO: /kick [PLAYERID] [GRUND]");
return 1;
}
reason = strval(temp);
new for22[256];
format(for22,sizeof(for22), " Der Spieler %d wurde gekickt - Grund: %s",playerd,reason);
//SendClientMessageToAll(COLOR,for22);
Kick(playerd);
}
else
{
// Kein Admin Nachricht
}
return 1;
}
Also Leute ich möchte hier mal erklären wie man Autos einem Eigentümer zuweist, so geht eig. auch mit Position und weiteres
ganz oben im Script erstellt ihr ne Array
enum Vehicledata
{
Owner[256],
}
new Vehicles[MAX_VEHICLES][vehicledata]
Dann könnt ihr bei OnPlayerConnect das einfügen
new PlayerName[256];
GetPlayerName(playerid,PlayerName,sizeof(PlayerName));
new carid = CreateVehicle(...); // ID wird in carid zurückgegeben
strmid(Vehicles[carid][Owner],PlayerName,0,256,256); // Hier wird der Eigentümer also der Name in den wert Owner eingefügt
/* Der Eigentümer is nur für dieses Car ID
Jetzt müsste das Auto auf den Namen angemeldet sein*/
Public OnPlayerEnterVehicle
new GetName[256];
GetPlayerName(playerid,GetName,sizeof(GetName));
if (!strcmp(Vehicles[vehicleid][Owner],GetName))
{
// Nachricht oder sowas
}
else
{
TogglePlayerControllable(playerid,0); // Der Spieler wird einmal Gefreezt und entfreezt und kann die Aktion Auto betreten nich ausführen
TogglePlayerControllable(playerid,1);
}
Ich hoffe ihr habt alles verstanden
Ich denk ma das hilt nen bisschen
Hier is nochn Backup
http://blackfox.kilu.de/swiki</a>