if(pInfo[playerid][Fraktion] = 1)
Kann nicht funktionieren!
Muss wennschon if(pInfo[playerid][Fraktion] == 1) sein!
//Edit:
Ich schätze Dixon meint die Fehlercodes+Zeilen.
if(pInfo[playerid][Fraktion] = 1)
Kann nicht funktionieren!
Muss wennschon if(pInfo[playerid][Fraktion] == 1) sein!
//Edit:
Ich schätze Dixon meint die Fehlercodes+Zeilen.
@S.Pawno
Bist Du Dir eigentlich bewusst das Du gerade allen Scriptern hier vorgeworfen hast arrogant zu sein?!
So machst Du Dir keine Freunde und somit bekommst Du auch keine Scripthilfe von hier..
Wenn Du mal lesen würdest was PaddyBoy geschrieben hat,würdest Du wissen das es funktioniert.
Wenn man nicht scripten kann,sollte man erstmal die Basics lernen oder sich einige Tutorials durchlesen oder eventuell mal die SuFu(Suchfunktion) benutzen!
Wie gesagt,Du musst nur in der PlayerArray
Float:PlayerX,
Float:PlayerY,
Float:PlayerZ unten eintragen,das ganze automatisch in die Account.ini eintragen,speichern und laden lassen.
Bei OnPlayerDisconnect:
new Float:ppX,Float:ppY,Float:ppz;
GetPlayerPos(playerid,ppX,ppY,ppZ);
PlayerInfo[playerid][PlayerX] = ppX;
PlayerInfo[playerid][PlayerY] = ppY;
PlayerInfo[playerid][PlayerZ] = ppZ;
PlayerInfo[playerid][pInt] = GetPlayerInterior(playerid);
Dann bei OnPlayerSpawn
SetPlayerPos(playerid,PlayerInfo[playerid][PlayerX],PlayerInfo[playerid][PlayerY],PlayerInfo[playerid][PlayerZ]);
SetPlayerInterior(playerid,PlayerInfo[playerid][pInt]);
Das ist genau das was ich vorhin schon beschrieben habe!
@gwelter
Nein ist auch falsch!
Wenn man dort nur Koordinaten eingibt,spawnt der Player ja immer an der gleichen Stelle und nicht da wo er beim Disconnect war.
//Edit:
So,damit hier nun endlich alles geklärt ist:
Oben bei den Includes:
#include <Dini>
OnPlayerConnect:
public OnPlayerConnect(playerid)
{
new str[128],name[32];
GetPlayerName(playerid,name,32);
format(str,128,"/Spawndata/%s.ini",name);
if(!dini_Exists(str))
{
dini_Create(str);
dini_FloatSet(str,"PlayerX",0.0000);
dini_FloatSet(str,"PlayerY",0.0000);
dini_FloatSet(str,"PlayerZ",0.0000);
dini_IntSet(str,"PlayerInt",0);
}
return 1;
}
OnPlayerDisconnect:
public OnPlayerDisconnect(playerid, reason)
{
SaveSpawnData(playerid);
return 1;
}
OnPlayerSpawn:
public OnPlayerSpawn(playerid)
{
new str[128],name[32];
GetPlayerName(playerid,name,32);
format(str,128,"/Spawndata/%s.ini",name);
if(dini_Exists(str))
{
new Float:ppX = dini_Float(str,"PlayerX");
new Float:ppY = dini_Float(str,"PlayerY");
new Float:ppZ = dini_Float(str,"PlayerZ");
new inter = dini_Int(str,"PlayerInt");
SetPlayerPos(playerid,ppX,ppY,ppZ);
SetPlayerInterior(playerid,inter);
}
else
{
//SetPlayerPos(playerid,Dein_Spawn_X,Dein_Spawn_Y,Dein_Spawn_Z);
//SetPlayerInterior(playerid,Interiorid);
}
return 1;
}
stock SaveSpawnData(playerid) :
stock SaveSpawnData(playerid)
{
new name[32],str[128];
new Float:ppX,Float:ppY,Float:ppZ;
GetPlayerPos(playerid,ppX,ppY,ppZ);
GetPlayerName(playerid,name,32);
format(str,128,"/Spawndata/%s.ini",name);
if(dini_Exists(str))
{
dini_FloatSet(str,"PlayerX",ppX);
dini_FloatSet(str,"PlayerY",ppY);
dini_FloatSet(str,"PlayerZ",ppZ);
dini_IntSet(str,"PlayerInt",GetPlayerInterior(playerid));
}
}
Wurde auf Funktionalität geprüft,weist keine Fehler auf.
Alter,aus Copy&Paste lernst Du nichts!!
Schau Dir die Codezeilen an dann findest Du die Errors auch!
Ich versteh garnet warum Dein Name "Pawno" enthält wenn Du anscheinend 0 Ahnung davon hast-.-
Du speicherst einfach in der Account.ini 3 weitere Daten bzw. Floats.
Float:PlayerX,
Float:PlayerY,
Float:PlayerZ
Bei OnPlayerDisconnecte machste einfach
new Float:ppX,Float:ppY,Float:ppZ;
GetPlayerPos(playerid,ppX,ppY,ppZ);
new inter = GetPlayerInterior(playerid);
PlayerInfo[playerid][PlayerX] = ppX;
PlayerInfo[playerid][PlayerY] = ppY;
PlayerInfo[playerid][PlayerZ] = ppZ;
PlayerInfo[playerid][pInt] = inter;
Bei OnPlayerSpawn jenachdem wie es in dem Script ist machste
SetPlayerPos(playerid,PlayerInfo[playerid][PlayerX]...);
SetPlayerInterior(playerid,PlayerInfo[playerid][pInt]);
Was solln daran so schwer sein?
Wenn Du schlau bist,machst Du eine weitere spalte und speicherst darin den Grund von OnPlayerDisconnect..wenn er ne Exe hatte setzt Du die Variable auf 1.
Bei OnPlayerSpawn musst Du dann nur Abfragen ob die Variable auf 1 steht,wenn ja,Spawn beim lezten Standort,wenn nein,dann halt wie gewohnt..
Falls irgendwer mein Filterscript noch nutzt,empfehle ich die "ReifePlatzt" Public mit dieser zu ersetzen:
public ReifenPlatzt(playerid)
{
new Fahrzeug = GetPlayerVehicleID(playerid);
new Karosse, Tueren, Lichter, Reifen;
GetVehicleDamageStatus(Fahrzeug, Karosse, Tueren, Lichter, Reifen);
UpdateVehicleDamageStatus(Fahrzeug, Karosse, Tueren, Lichter, 0101);
SendClientMessage(playerid,Blau,"[INFO]Deine Reifen sind geplatzt!Um sie zu reparieren,tippe /repreifen!");
return 1;
}
So platzen nur die Hinterreifen eines Fahrzeugs.
//Edit: "so" mit "die" ersetzt..-> Rechtschreibfehler
Wie Cop schon sagte "UpdateVehicleDamageStatus"!!
Ansonsten SuFu(Suchfunktion) benutzen oder in die Filterscripts-Liste schauen!
Habe damals ein Filterscript mit dieser Funktion entwickelt.
Hier zu finden: KLICK
Lol..so hast Du es doch beschrieben^^
Du willst Spieler mit /lol kicken die Du im Script definiert hast..
Ist genau das was ich dir gepostet habe^^
Sag das doch gleich..
forward BadNames();
public BadNames()
{
for(new i = 0; i <MAX_PLAYERS; i++)
{
new name[32];
GetPlayerName(i,name,32);
if(strcmp(name,"Der_Name",true)==0)
{
Kick(i);
}
}
return 1;
}
if(strcmp(cmdtext,"/lol",true)==0)
{
SetTimer("BadNames",1000,0);
return 1;
}
Ich glaube das ist sowas ähnliches wie Du meinst.,.
Geht natürlich auch leichter indem man die Namen in ner Array schreibt/liest..
Hoffe ich konnte helfen.
Mfg,Hardcore
Achso..
Meinst Du es in ungefähr so?:
Spieler gibt /lol ein..Timer x wird gestartet und kickt den Spieler der /lol eingegeben hat?
CreatePickup
GetPlayerMoney
OnPlayerPickupPickup
GivePlayerMoney
Reicht nicht ganz..
Er muss ja die Position des gestorbenem Spielers abfragen..
Beispiel:
Bei den New's:
new TotPickup;
OnPlayerDeath:
new Float:x,Float:y,Float:z;
GetPlayerPos(playerid,x,y,z);
TotPickup = CreatePickup(pickupID,PickupTyp,x,y,z,0);
OnPlayerPickuppickup:
if(pickupid == TotPickup)
{
GivePlayerMoney(playerid,100);
DestroyPickup(TotPickup);
}
Ich glaube Du musst den Code noch ein wenig ändern weil wenn z.b 6 Spieler gestorben sind,und 1 lebender Spieler in einen der Pickups geht,alle Pickups zerstört werden.
Aber so ist die Rohfassung von deinem "Wuscnh" sag ich mal..
Ich würde Dir jetzt auch gerne den kompletten Code geben aber ich kann nicht garantieren das er funktionieren wird da ich gerade vom trinken wiedergekommen bin..
Ansonsten adde mich morgen oder so mal bei Icq dann kann ich dir evtl. helefn.
Mgf,Hardrcoe
Das einzigste was man machen kann ist den HTML-Quellcode anzuschauen.
Rechtsklick auf der Seite->Seitenquelltext anzeigen
Mehr aber auch nicht.
GF ist nichts für Anfänger
*Hust* Was meinst Du wohl warum sich alle Newcomer nen GF runterladen?!
Weil es leicht zu editieren ist.
B2T:
Ein Selfmade kommt meist besser an.
Nur würde ich dir davon abraten einen RP/RL-Server zu machen denn damit wirst Du keinen Erfolg mehr haben.
Die Konkurenz ist einfach zu groß.
Yoda
Er hat gefragt was besser ist.
Entweder ein GF editieren oder ein Selfmade schreiben.
Ich kann mich dennoch Deiner Meinung zu 100% anschliessen das er kein Selfmade anfangen soll.
Mfg,Hardcore
Oben bei den "New's":
new YakuzaGate;
new YakuzaVar;
OnGameModeInit()
YakuzaVar = 0;
YakuzaGate = CreateObject(971, 708.20367431641, -1424.7252197266, 16.058996200562, 0, 0, 0);
Via OCMD:
ocmd:yakuza(playerid,params[])
{
if(YakuzaVar == 0)
{
MoveObject(YakuzaGate,708.203125, -1424.724609375, 8.8591060638428,2.0);
YakuzaVar = 1;
}
else
{
MoveObject(YakuzaGate, 708.20367431641, -1424.7252197266, 16.058996200562,2.0);
YakuzaVar = 0;
}
return 1;
}
Und so für ein GF-Script:
ocmd:yakuza(playerid,params[])
{
if(PlayerInfo[playerid][pMember] != FraktionsID)
{
return SendClientMessage(playerid,COLOR_GREY,"Blaa");
}
if(YakuzaVar == 0)
{
MoveObject(YakuzaGate,708.203125, -1424.724609375, 8.8591060638428,2.0);
YakuzaVar = 1;
}
else
{
MoveObject(YakuzaGate, 708.20367431641, -1424.7252197266, 16.058996200562,2.0);
YakuzaVar = 0;
}
return 1;
}
Dürfte eigentlich funktionieren..ist ungetestet.
Mfg,Hardcore
Ich glaube es ist meistens so,das wenn man auf einen Server geht und man eine Animation starten will,diese Aniamation 2 mal starten muss da der Spieler sonst nichts macht.
Also
/smoke -> Nichts passiert
/smoke -> Animation wird abgespielt.
Wieso weshalb warum weis ich leider auch nicht.
Evtl. könntest Du im Callback "OnPlayerRequestClass" dem Spieler ne Animation einteilen,und später im Tutorial wiederrum eine andere.
Vielleicht klappt es dann.
Hoffe ich konnte helfen.
Mfg, Hardcore
Hört sich so an als wären Dir die Boxen durchgeknallt oder Du hast irgendwo einen Kabelbruch der so grborchen ist,das + & - aneinander stossen.
Lösung:
Neue Boxen kaufen evtl. auch keine "Billigware" da diese in vielen Fällen sehr schnell kaputt geht.
Ich habe jetzt seit fast einem Jahr PA600 Dj Boxen..
Noch nie Probleme damit gehabt obwohl ich NIE in Zimmerlutstärke Musik höre.
Mfg
Ich habe zwar 0 Ahnung von C++,aber immerhin gewisse Rechtschreib-Kenntnisse.
Ein "Kommar" gibt es nicht,ein "Komma" schon.;)
Zitatcout << "Das System erwartet eine weitere Zahl. (ohne Kommer)" << endl << endl;
8D.
Klar gibts die auch mit Licht
Entweder man baut die Lichtmacshine selbst,oder man gibt gut 50-70€ mehr für das Bike aus;)
Haubitze:
Genau das habe ich mich gefragt als ich mir mein Pocketbike damals zugelegt habe.
Mit dem Kauf habe ich einen der größten Fehler in meinem Leben gemacht..
Aber naja,der Kick bei der ganzen Sache ist einfach die Schnelligkeit und die Gefahr..
Vorallem kann man aus einem Pocketbike auch ich sag mal "Autos" bauen.
Einfach den Motor raus und das ganze in ein vorgefertigten Rahmen basteln..
Antrieb ein wnig verändern und schon hat man ein kleines Auto:D
Zwar wird sowas garantiert nie zugelassen aber naja..der Spaßfaktor ist trotzdem zielich hoch.
Ich selber bin auf ein Pocketbike gekommen da ich meinen Bruder und ein paar Kolegen in Rennen vorraus sein wollte..
Hmm..ich find grad die Street's kann man nur voll schei*** von der Optik her tunen..
Hättest Dir mal das "DirtBike Toxic 2010" anlegen müssen..das Bike hatte ich auch..war sehr zufrieden..es fuhr seine guten 90-95Km/h,Leistung ist enorm und und und...
Hier mal ein Link zu dem Gefährt: KLICK MICH FEST.
Meins war natürlich von der Leistung her getunt..
Was Du bei Dir allerdings machen könntest ist Dir eine BB5(BigBore 5) Snakepipe zu kaufen...
Die bringt ordentlich PS in die Kiste rein.
Evtl. auch Carbonmembrane da die normalen aus Edelstahl leicht verbiegen und somit der Motor manchmal beim Gas geben abwürgt.
Ein Rennvergaser wird Dir auch eine bessere Leistung bringen!
Versuch Dich mal anstatt nem 17mm an einem 21mm Vergaser dann bekommt dein Kolben mehr Druck und somit natürlich auch mehr Leistung.
Was ich Dir noch empfehlen kann ist Dir schonmal eine Ersatz-Kuplung zu besorgen da die,die schon im Bike vorhanden sind bei denen schnell die Kupplungsfedern brechen.
Hier mal eine relativ gute Kupplung: KLICK Auch ziemlich preisgünstig.
Bei solch einer Kupplung brechen die Federn nur ganz selten esseidenn man zieht sie zu stramm..was man aber nicht machen sollte aus 2 Gründen
1. Federn können brechen
2. Bike kuppelt dermassen schei**e das das Fahren kein Spass mehr macht.
Ich hoffe ich konnte Dir ein paar hilfreiche Tipps und Anregungen geben.
Mfg,Hardcore
P.s
Lass Dich nicht von den Cops erwischen so wie sie mich erwischt haben^^
Kann ja nicht wissen das ein Bolzplatz öffentlicher Straßenverkehr ist-.-