Beiträge von Templer
-
-
Schau bitte auf meinen Code nochmal drauf und kopiers richtig ab, Danke..
-
Den zweiten, also wenn du willst, dass sie nach 20Sekunden Unbenützung respawnen sollen einfach so abändern:
//Scroll bissl nach Rechts ^^
Kaufliste[i][Carid]=CreateVehicle(Kaufliste[i][Modelid],Kaufliste[i][X],Kaufliste[i][Y],Kaufliste[i][Z],Kaufliste[i][Rotation],-1,-1,20); -
Suche nach:
[Carid]=
oder
[Carid] =
also mit Leerzeichen und dann einfach dort wo CreateVehicle steht am Ende das -1 zu deiner Wunschzeit in Sekunden einstellen, ansonsten Zeilen posten^^
p.S.: Vor diesem CarID sollte dann sowas wie
Kaufliste
stehen! -
Such mal im Code nach:
SetVehicleToRespawn(FBI
genau so bitte und sagen wo du es gefunden hast
-
Aber sie werden doch irgendwo erstellt.. Am Besten du schickst noch das enum oberbei und wir können dir Sagen wonach du suchen musst.
-
Dein Rank ergibt sich durch das:
new rank = PlayerInfo[i][pRank] * 100;
also bei deinem Beispiel wäre es so:
new rank = 6 * 100; //Deshalb auch 600 ^^Ansonsten bitte den folgenden Code Austauschen...
//Member
if(PlayerInfo[i][pMember] != 0)
{
new frak = PlayerInfo[i][pMember];
JB_GivePlayerMoney(i, FrakGeld[frak][0]-1);
format(str,sizeof(str),"Fraktions Member: $%d", FrakGeld[frak][0]-1 );
SendClientMessage(i, COLOR_WHITE, str);
}
//Leader
if(PlayerInfo[i][pLeader] != 0)
{
new frak = PlayerInfo[i][pLeader];
JB_GivePlayerMoney(i, (FrakGeld[frak][1])-1);
format(str,sizeof(str),"Fraktions Leader: $%d", FrakGeld[frak][1]-1 );
SendClientMessage(i, COLOR_WHITE, str);
}warum bei Member 16 rauskommt sieht man an dem Code nicht, vl irgendein Fehler woanders und den Code was ich ned versteh ist:
//Rank
if(PlayerInfo[i][pMember] != 1)
{
JB_GivePlayerMoney(i, rank);
format(str,sizeof(str),"Fraktions Rank: $%d",rank);
SendClientMessage(i, COLOR_WHITE, str);
}Wozu dient das, wenn du ihm nachher eh gehalt gibst
-
Einfach bei AddStaticVehicleEx und CreateVehicle am Ende die Respawnzeit in Sekunden angeben, siehst doch eh oben.
z.B.:
AddStaticVehicleEx(560, 0.0, 0.0, 0.0, 0.0, 1, 1, 50); //Respawnt Sultan bei Nichtbenützung in 50 Sekunden -
Sollte funktionieren und kapierbar sein:
//Folgendes oben in dein Script...
enum carinfoenum
{
ciBesitzer[MAX_PLAYER_NAME],
ciKennzeichen[8],
Text3D:ci3DTextID
};
new CarInfo[MAX_VEHICLES][carinfoenum];//-------------------------//
//Dann das folgende mit deinem ersetzen.. (Ka wo der Code von dir ist, in welchem Callback ^^
case 0:
{
new tmpcar;
for(tmpcar= 1; tmpcar <= MAX_VEHICLES;)
{
new str[256];
new name[MAX_PLAYER_NAME];
format(str, sizeof(str), "/cars/%d.car",tmpcar);
if(!fexist(str) && CarInfo[tmpcar][cMaxGas]==0)
{
CarInfo[tmpcar][cID] = tmpcar;
CarInfo[tmpcar][cModel] = 411; // INFERNUS
//format(ownerstr, sizeof(ownerstr), "Kevin");
new playrname[MAX_PLAYER_NAME];
//new connect[128];
strdel(playrname, 0, MAX_PLAYER_NAME);
GetPlayerName(playerid, playrname, sizeof(playrname));
CarInfo[tmpcar][cOwner] =playrname;
CarInfo[tmpcar][cHP] = 1000;
CarInfo[tmpcar][cColor1] = 1;
CarInfo[tmpcar][cColor2] = 1;
for(new j = 0; j < MAX_PLAYERS; j++)
{
CarInfo[tmpcar][cLocked][j] = false;
SetVehicleParamsForPlayer(tmpcar, j, 0,0);
}
CarInfo[tmpcar][cX] = 2083.3113;
CarInfo[tmpcar][cY] = 2168.0898;
CarInfo[tmpcar][cZ] = 10.8203;
CarInfo[tmpcar][cAngle] = 238.9028;
CarInfo[tmpcar][cRespawnX] = 2083.3113;
CarInfo[tmpcar][cRespawnY] = 2168.0898;
CarInfo[tmpcar][cRespawnZ] = 10.8203;
CarInfo[tmpcar][cRespawnAngle] = 238.9028;
CarInfo[tmpcar][cMaxGas] = 75;
CarInfo[tmpcar][cGas] = 5;
CreateVehicle(CarInfo[tmpcar][cModel], CarInfo[tmpcar][cX], CarInfo[tmpcar][cY], CarInfo[tmpcar][cZ], CarInfo[tmpcar][cAngle], CarInfo[tmpcar][cColor1], CarInfo[tmpcar][cColor2], -1);
format(str, sizeof(str), "car %d hergestellt von %s.",tmpcar, name);
print(str);
format(str, sizeof(str), "car %d hergestellt.",tmpcar);
SendClientMessage(playerid, COLOR_BLUE,str);
SaveCar(tmpcar);
PlayerInfo[playerid][pCash]-=228000;
GivePlayerMoney(playerid, -228000);
SendClientMessage(playerid, COLOR_YELLOW, "Das Fahrzeug steht nun am San Fierro Hafen!");
Produkte[proOTTO]--;
//3D Kennzeichen
format(CarInfo[tmpcar][ciKennzeichen], 8, "SA%d", 100000+random(999999)); //Zufälliges Kennzeichen
format(CarInfo[tmpcar][ciBesitzer], MAX_PLAYER_NAME, CarInfo[tmpcar][cOwner]); //Name vom Besitzer
format(str, sizeof(str), "%s\nBesitzer: %s", CarInfo[tmpcar][ciKennzeichen], CarInfo[tmpcar][ciBesitzer]); //Text vom 3DText
CarInfo[tmpcar][ci3DTextID] = Create3DTextLabel(str, 0xFF0000AA, 0.0, 0.0, 0.0, 50.0, 0, 1 ); //3DText erstellen
Attach3DTextLabelToVehicle(CarInfo[tmpcar][ci3DTextID], tmpcar, 0.0, 0.0, 2.0); //3D Text anhängen
//PutPlayerInVehicle(playerid, tmpcar, 0);
return 1;
}
tmpcar++;
}
} -
Hier bitte, im Anhang hab ich dir ein Filterscript erstellt!
Befehle:
/gobj [Text] //Zum erstellen
/dgobj //Zum löschen -
Zitat
Zitat von NeoPhoenix aka ArgonX5
Zeig mal die Zeilen unter OnDialogResponse und die definierungen von LoginDialog und RegisterDialogHör nicht auf NeoPhoenix, er sieht genauso schlecht wie die meisten hier
Hier die Richtige Abfrage, einfach abändern:
if (gPlayerAccount[playerid] == 1)
{
new loginstring[128];
format(loginstring,sizeof(loginstring),"Willkommen, %s\nDieser Account ist registriert.\nDu kannst dich jetzt einloggen:",plname);
ShowPlayerDialog(playerid,LoginDialog,DIALOG_STYLE_INPUT,"Los Angeles Reallife 0.3a",loginstring,"Login","Exit");
}
else
{
gPlayerAccount[playerid] = 0;
new regstring[128];
format(regstring,sizeof(regstring),"Willkommen, %s\nDu hast noch keinen Account.\nBitte registriere dich:",plname);
ShowPlayerDialog(playerid,RegisterDialog,DIALOG_STYLE_INPUT,"Los Angeles Reallife 0.3a",regstring,"Register","Exit");
}
//PlayerPlaySound(playerid, 1187, 0.0, 0.0, 0.0);
PlayerInfo[playerid][pModel] = Peds[classid][0];
SetPlayerTeamFromClass(playerid,classid);
}
new string[128];
PlayerPlaySound(playerid, 1187, 0.0, 0.0, 0.0);
PlayerInfo[playerid][pModel] = Peds[classid][0];
if (classid == 1)Edit: Zitat..
-
TeamSpirit falsch, so:
enum spielerenum
{
eingeloggt,
skin,
}new Spieler[MAX_PLAYERS][spielerenum];
-
Bitte, dass sollte helfen:
new Menu:JobMenu;
new JobPickup;public OnGameModeInit()
{
JobMenu = CreateMenu("JobMenu", 1, 220.0, 350.0, 200.0);
AddMenuItem(JobMenu, 0, "Job 1");
AddMenuItem(JobMenu, 0, "Job 2");
AddMenuItem(JobMenu, 0, "Job 3");
AddMenuItem(JobMenu, 0, "Job 4");
JobPickup = CreatePickup(Blah Blah...);
}public OnPlayerPickUpPickup(playerid, pickupid)
{
if(pickupid == JobPickup) ShowMenuForPlayer(JobMenu, playerid);
return 1;
}public OnPlayerSelectedMenuRow(playerid, row)
{
if(GetPlayerMenu(playerid) == JobMenu)
{
if(row == 0)
{
//Wenn er den ersten Job auswählt..
}
else if(row == 2)
{
//Wenn er den zweiten Job auswählt (Wenn Vorhanden)..
}
else if(row == 3)
{
//Wenn er den dritten Job auswählt (Wenn Vorhanden)..
}
else if(row == 4)
{
//Wenn er den vierten Job auswählt (Wenn Vorhanden)..
}
}
} -
Kein grober Unterschied Eugen, die Standart Version davon wäre
if(strcmp(cmd, "/pee", true) == 0)
{
SetPlayerSpecialAction(playerid, SPECIAL_ACTION_PISSING);
return 1;
}
Bedeutet, dass er den Befehl positiv (also die Nummer 1) beendet. Jedoch kann man auch den Wert von einer Funktion hernehmen, da
SetPlayerSpecialAction(playerid, SPECIAL_ACTION_PISSING);
den Wert 1 (also Wahr/richtig) auspuckt und sich somit Zeilen spart, dann könnte man entweder den Code so wie Pixel machen:
if(strcmp(cmd, "/pee", true) == 0)
{
return SetPlayerSpecialAction(playerid, SPECIAL_ACTION_PISSING);
}oder gleich noch kürzer ohne { } ^^, da nur ein Funktionsaufruf bei dem /pee Befehl ist:
if(strcmp(cmd, "/pee", true) == 0)
return SetPlayerSpecialAction(playerid, SPECIAL_ACTION_PISSING); -
Nein [FG]Julian, du schaust auch nichtmehr genau hin oder? Er benützt den String s für die Dateiöffnung und zum Text senden Das blöde ist, er speichert die Variable nach den Text, somit ist es ein Fail. Hier das richtige.. Deine Antwort war also nur Halbrichtig.
dcmd_annehmen(playerid,params[])
{
new name[MAX_PLAYER_NAME], s[128], sn[128];
new id = strval(strget(params, 0));
GetPlayerName(playerid,name,sizeof(name));
GetPlayerName(id,sname,sizeof(sname));
format(s,sizeof(s),"acc/%s.ini",name);
format(sn,sizeof(sn),"acc/%s.ini",sname);
if(!strlen(params)) return SendClientMessage(playerid,Gelb,"/anehmen [playerid]");
if(id == playerid) { SendClientMessage(playerid, Rot, "Du kannst dir nicht selbst eine anfrange akzeptieren!"); return 1; }
if(GetPlayerMoney(playerid) < 20) { return SendClientMessage(playerid, Rot, "Du hast zu wenig geld!"); }
new Float:x,Float:y,Float:z,Float:health;
GetPlayerPos(id,x,y,z);
GetPlayerHealth(playerid, health);
if(PlayerToPoint(5.0,playerid,x,y,z))
{
if(dini_Int(s,"Pizza") == 1)
{
dini_IntSet(s,"Pizza",0); //War zu weit unten..
SetPlayerHealth(playerid, health + 10.0);
GivePlayerMoney(playerid, -10);
GivePlayerMoney(id, 10);
format(s, sizeof(s), "%s Hat deine Pizza anfrage angenommen du erhälst 10$.", name);
SendClientMessage(id, Grün, s);
format(s, sizeof(s), "Du hast die Pizza anfrage von %s angenommen!", sname);
SendClientMessage(playerid, Grün, s);
}
else if(dini_Int(s,"Wurst") == 1)
{
dini_IntSet(s,"Wurst",0); //War zu weit unten..
SetPlayerHealth(playerid, health + 10.0);
GivePlayerMoney(playerid, -10);
GivePlayerMoney(id, 10);
format(s, sizeof(s), "%s Hat deine Wurst anfrage angenommen du erhälst 10$.", name);
SendClientMessage(id, Grün, s);
format(s, sizeof(s), "Du hast die Wurst anfrage von %s angenommen!", sname);
SendClientMessage(playerid, Grün, s);
}
else
{
SendClientMessage(playerid, Rot, "Du hast keine Würstchen/Pizza Anfrage bekommen!");
}
}
return 1;
} -
So, aber anstatt zu kicken würde ich einfach seinen Namen ändern lassen Nebenbei 8D, wenn du den Text direkt in die Definition eingibst wie du, kannst du auch den Array vom Kompiler "zählen" lassen, also einfach leer lassen.
new Badnames[][] = { //Namen die verboten sind
{"Arschkrampe"},
{"Hater"},
{"Kobold"}
};new RandomNames[][] = { //Beispiel Namen für Spieler, die mit falschen Namen hereinkommen
{"Jürgen"},
{"Hannes"},
{"Thorsten"},
{"Leopold"},
{"Wasabi"},
{"Aldiman"},
{"Termifaker"}
};public OnPlayerConnect(playerid)
{
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
for(new i = 0; i < sizeof(Badnames); i++)
{
if(!strcmp(name,Badnames[i],true))
{
new rand = random(sizeof(RandomNames)), string[128];
SetPlayerName(playerid, RandomNames[rand]);
format(string, sizeof(string), "Da du mit einem unangebrachtem Namen auf den Server gekommen bist, wurde dein Name zu %s verändert!", RandomNames[rand]);
SendClientMessage(playerid, 0xFFFFFF00, string);
break;
}
}
return 1;
} -
So Odin, da ich kb hab bis 8Uhr zu warten hier hasse deinen Code:
forward Werbung(playerid);
new gWerbungCount[MAX_PLAYERS];
new gWerbungTimer[MAX_PLAYERS];public OnPlayerConnect(playerid)
{
gWerbungCount[playerid] = 0:
return 1;
}public OnPlayerDisconnect(playerid)
{
if(gWerbungCount[playerid] != 0) KillTimer(gWerbungTimer[playerid]);
}public OnPlayerCommandText(playerid, cmdtext[])
{
if(!strcmp(cmdtext, "/text", false))
{
if(!IsPlayerConnected(playerid)) return 1;
if(gWerbungCount[playerid] != 0) return SendClientMessage(playerid, 0xFFFFFF00, "Du siehst dir gerade den Text an!");
gWerbungCount[playerid] = 1;
gWerbungTimer[playerid] = SetTimerEx("Werbung", 1000, 1, "d", playerid); //Jede Sekunde erscheint ein neuer Text!
return 1;
}
return 0;
}public Werbung(playerid)
{
switch(gWerbungCount[playerid])
{
case 1: //Text #1
{
//Deine Texte für Spieler
SendClientMessage(playerid, 0xFFFFFF00, "Text #2");
}
case 2: //Text#2
{
//Deine Texte für Spieler
SendClientMessage(playerid, 0xFFFFFF00, "Text #2");
}
case 3: //Text#3
{
//Deine Texte für Spieler
SendClientMessage(playerid, 0xFFFFFF00, "Text #3");
}
//Wenn du mehr Texte einfügen willst, dann einfach weiterzählen, also:
// case 4:
// case 5:
// case 6:
// case 7:
// usw...
default: //Letzer Text
{
gWerbungCount[playerid] = 0; //Setzt Wert wieder auf 0 und es wird kein Text mehr angezeigt...
//Dein letzter Text für den Spieler
SendClientMessage(playerid, 0xFFFFFF00, "Letzter Text...");
}
}
gWerbungCount[playerid]++; //Zählt eins rauf
}Hab die Definitionen von vorher gelassen, damit du siehst was anders is...
-
Danke Eugen, einmal nicht aufgepasst
Nebenbei gemerkt, funktioniert meine Variante auch als Tut. Ich gebe dir bis morgen 8Uhr die Chance es selbst herauszufinden und dieses Thema zu schließen. Ansonsten wird es dir wer anderer, oder Ich, ab 8Uhr schreiben. Somit bitte ich dich Odin nicht hierher reinzuschauen sofern es doch jemand geschrieben hat.. Den du sollst Scripten können!
-
Dann probiers halt nochmal aus mim Pickup
Bei Problemen OnPlayerPickUpPickup posten!
-
//Ganz oben im Script
new gPlayerLogged[MAX_PLAYERS];//Und dort wo der Spieler sich einloggt einfach
gPlayerLogged[playerid] = 1;//Und wenn er sich ausloggt in OnPlayerDisconnect einfügen:
public OnPlayerDisconnect(playerid)
{
gPlayerLogged[playerid] = 0;
return 1;
}