Warum stellt man das sofort ins Forum anstatt mal sein Gehirn einzuschalten oO..egal
Back To Topic, da das sich ja geklärt hat bitte ich mal
#CLOSED
Warum stellt man das sofort ins Forum anstatt mal sein Gehirn einzuschalten oO..egal
Back To Topic, da das sich ja geklärt hat bitte ich mal
#CLOSED
Das skill Level an sich ist ja auf Null standart gemäß, du könntest das Skill Level in die Spielerdatei speichern, beim tot auslesen, sie +1 (++) rechnen und sie wieder abspeicher, damit ist das skill level auch nach einem Relog erhalten.
SuFu benutzen !!
[Liste] Server-Security: Alle "Anti's" (AntiCheat,Anti-IP etc.)
Wäre sofort ganz oben gewesen -_-
Du hast den Include streamer.inc nicht -> http://forum.sa-mp.com/showthread.php?t=102865
Das streamer.inc download bei pawno unter includes packen und natürlich das Plugin (streamer.dll unter windows o. streamer.so unter linux) in den plugins Ordner packen und die server.cfg dementsprechend konfigurieren (plugins streamer/streamer.so)
Drum&Bass
Chase & Status feat. Plan B. - Pieces
[video]
Chase & Statzs feat. Plan B. - End Credits
[video]
Dubstep ♥
Feestylers - Cracks (Flux Pavillion Remix)
[video]
Mt Eden Dubstep - Sierra Leone
[video]
This is Dubstep 2011 (Album Megamix)(Ne collection aus guten Dubsteps aus '11)
[video]
Den skin beim Tot speichern.... Damit er beim spawn einfach wieder geladen wird o.o ist doch logisch
Ich würds ja mit neim Array machen das bis 211 geht und alle Repair kosten für jedes Auto speichert um diese dan abzurufen musst du jediglich vRCosts[modelid-400] z.B machen und zack du hast die Repiarkosten für das jeweilige model.
du musst die Klammer die du ja nun neu geöffnet hast auch wieder schliessen ! Das ist nen Klammerfehler zu 99,9%
hsat du max_players nicht auf deine Slot Anzahl re-defined?
Warum ncihts so, ist simpel aber effektiv.
Bei news:
new accs_tmp = 0;
new acctimer;
forward aAccs();
forward save1acc();
OnGameModeInit:
SetTimer("aAccs", 1800000, 1);
Neue Funktion aAccs():
public aAccs(){
acctimer = SetTimer("save1acc", 3000, 1);
}
Neue Funktion save1acc():
public save1acc(){
if(accs_tmp >= MAX_PLAYERS){
KillTimer(acctimer);
accs_tmp = 0;
}
SavePlayer(accs_tmp);
accs_tmp++;
}
SavePlayer(accs_tmp) musst du dementsprechen deiner Account Speicherung anpassen
//Edit: mfg ReVide
Wenn der Timer der alle 30 min los geht sag ich mal im 10 - 15 sec takt 1 Acc speichert, 0 Lag, wäre am besten Also der erste Timer called den 2 Timer der solange druch läuft bis die maximale Spieler Anzahl (in i < MAX_PLAYERS z.B) erreicht ist.
Learning by Doing, es muss ja nicht gleich ein RL Skript sein, fang mit einem simplem TDM Skript, wo die Spawn Punkte random ausgesucht werden und kill liste und nen paar extra Features, an. Abreite dich langsam hoch.
Bsp.:
Ich habe es so gemacht, erst TDM, dann CNR dann RL, das RL Skript da arbeite ich nun 6 Tage dran, 6200 Zeilen mit sseeeehr geilen Features, ich brauch durch meine Vorarbeit keinerlei Hilfe mehr etc. Durch die Erfahrung mit verschiedenen Gamemodes, die man ja immer irgendwie anders macht, hat man gleich die Erfahrung ein Optimiertes und leistungssparendes Skript zu erstellen.
So einen Weg wie ich ihn gemacht habe, kann ich nur empfehlen, am Anfang klar da brauchte ich manchmal Hilfe, aber das meiste erklärt sich von selbst oder die sa-mp wiki hilft.
Dauert zwar länger aber danach biste Pro im Skripten. (PS: Ich skripte jetzt 2 Jahre lang, und ja ich bin pro :D)
mfg
//Edit: Satzbau
Dann bekommt er den Error, World standing in boundries oder so, er muss eine Spawn Classe machen und ihn bei OnPlayerRequestSpawn per timer 1 millisekunde nachher ausführen, dem Typen nen skin zuwesien und SpawnPlayer(playerid); machen.
Bei den includes oben:
new VehicleNames[212][] = {
{"Landstalker"},{"Bravura"},{"Buffalo"},{"Linerunner"},{"Perrenial"},{"Sentinel"},{"Dumper"},
{"Firetruck"},{"Trashmaster"},{"Stretch"},{"Manana"},{"Infernus"},{"Voodoo"},{"Pony"},{"Mule"},
{"Cheetah"},{"Ambulance"},{"Leviathan"},{"Moonbeam"},{"Esperanto"},{"Taxi"},{"Washington"},
{"Bobcat"},{"Mr Whoopee"},{"BF Injection"},{"Hunter"},{"Premier"},{"Enforcer"},{"Securicar"},
{"Banshee"},{"Predator"},{"Bus"},{"Rhino"},{"Barracks"},{"Hotknife"},{"Trailer 1"},{"Previon"},
{"Coach"},{"Cabbie"},{"Stallion"},{"Rumpo"},{"RC Bandit"},{"Romero"},{"Packer"},{"Monster"},
{"Admiral"},{"Squalo"},{"Seasparrow"},{"Pizzaboy"},{"Tram"},{"Trailer 2"},{"Turismo"},
{"Speeder"},{"Reefer"},{"Tropic"},{"Flatbed"},{"Yankee"},{"Caddy"},{"Solair"},{"Berkley's RC Van"},
{"Skimmer"},{"PCJ-600"},{"Faggio"},{"Freeway"},{"RC Baron"},{"RC Raider"},{"Glendale"},{"Oceanic"},
{"Sanchez"},{"Sparrow"},{"Patriot"},{"Quad"},{"Coastguard"},{"Dinghy"},{"Hermes"},{"Sabre"},
{"Rustler"},{"ZR-350"},{"Walton"},{"Regina"},{"Comet"},{"BMX"},{"Burrito"},{"Camper"},{"Marquis"},
{"Baggage"},{"Dozer"},{"Maverick"},{"News Chopper"},{"Rancher"},{"FBI Rancher"},{"Virgo"},{"Greenwood"},
{"Jetmax"},{"Hotring"},{"Sandking"},{"Blista Compact"},{"Police Maverick"},{"Boxville"},{"Benson"},
{"Mesa"},{"RC Goblin"},{"Hotring Racer A"},{"Hotring Racer B"},{"Bloodring Banger"},{"Rancher"},
{"Super GT"},{"Elegant"},{"Journey"},{"Bike"},{"Mountain Bike"},{"Beagle"},{"Cropdust"},{"Stunt"},
{"Tanker"}, {"Roadtrain"},{"Nebula"},{"Majestic"},{"Buccaneer"},{"Shamal"},{"Hydra"},{"FCR-900"},
{"NRG-500"},{"HPV1000"},{"Cement Truck"},{"Tow Truck"},{"Fortune"},{"Cadrona"},{"FBI Truck"},
{"Willard"},{"Forklift"},{"Tractor"},{"Combine"},{"Feltzer"},{"Remington"},{"Slamvan"},
{"Blade"},{"Freight"},{"Streak"},{"Vortex"},{"Vincent"},{"Bullet"},{"Clover"},{"Sadler"},
{"Firetruck LA"},{"Hustler"},{"Intruder"},{"Primo"},{"Cargobob"},{"Tampa"},{"Sunrise"},{"Merit"},
{"Utility"},{"Nevada"},{"Yosemite"},{"Windsor"},{"Monster A"},{"Monster B"},{"Uranus"},{"Jester"},
{"Sultan"},{"Stratum"},{"Elegy"},{"Raindance"},{"RC Tiger"},{"Flash"},{"Tahoma"},{"Savanna"},
{"Bandito"},{"Freight Flat"},{"Streak Carriage"},{"Kart"},{"Mower"},{"Duneride"},{"Sweeper"},
{"Broadway"},{"Tornado"},{"AT-400"},{"DFT-30"},{"Huntley"},{"Stafford"},{"BF-400"},{"Newsvan"},
{"Tug"},{"Trailer 3"},{"Emperor"},{"Wayfarer"},{"Euros"},{"Hotdog"},{"Club"},{"Freight Carriage"},
{"Trailer 3"},{"Andromada"},{"Dodo"},{"RC Cam"},{"Launch"},{"Police Car (LSPD)"},{"Police Car (SFPD)"},
{"Police Car (LVPD)"},{"Police Ranger"},{"Picador"},{"S.W.A.T. Van"},{"Alpha"},{"Phoenix"},{"Glendale"},
{"Sadler"},{"Luggage Trailer A"},{"Luggage Trailer B"},{"Stair Trailer"},{"Boxville"},{"Farm Plow"},
{"Utility Trailer"}
};
Bei OnPlayerEnterVehicle:
new model = GetVehicleModel(vehicleid);
new str[70];
format(str, sizeof str, "~g~%s", VehicleNames[model-400]);
GameTextForPlayer(playerid, str, 4000, 1); //Als Message auf dem Bildschrim(unten Rechts)
format(str, sizeof str, "Du bist in einen %s eingestiegen.", VehicleNames[model-400]);
SendClientMessage(playerid, 0xFFFFFFFF, str); //Als Message im Chat.
Bitte einmal einen kompletten aus blick auf dcmd_kick(.....
Bis unten hin zum return 1;}
Sehe aber so schon geschätze 7 Fatale Error...
Ich meine man kann die auch von einander abhänig machen, also wenn eins sich bewegt das alle anderen mit etc...
irgend wqas mit AttachObject oder so
Von meinem Vorgänger das dini Plugin runter laden und dann z.B diesen beispiel code (von mir verständlich) kopieren, sollte funktionieren:
Bei den Includes bzw. Defines:
new Float:px, Float:py, Float:pz, pdatei[50],
Bei OnPlayerConnect:
new psname[MAX_PLAYER_NAME], Float:x, Float:y, Float:z;
GetPlayerName(playerid, psname, MAX_PLAYER_NAME);
format(pdatei, sizeof pdatei, "/Spieler/%i.ini", psname);
if(!dini_Exists(pdatei)){
dini_Create(pdatei);
GetPlayerPos(playerid, x, y, z);
dini_FloatSet(pdatei, "lastx", x);
dini_FloatSet(pdatei, "lasty", y);
dini_FloatSet(pdatei, "lastz", z);
}
Bei OnPlayerSpawn:
px = dini_Float(pdatei, "lastx");
py= dini_Float(pdatei, "lasty");
pz = dini_Float(pdatei, "lastz");
SetPlayerPos(playerid, px, py, pz);
Bei OnPlayerDisconnect:
GetPlayerPos(playerid, px, py, pz);
dini_FloatSet(pdatei, "lastx", px);
dini_FloatSet(pdatei, "lasty", py);
dini_FloatSet(pdatei, "lastz", pz);
Ungetesten und uncompeliert, falls es errors gibt, posten !
Damit das auch funktioniert musst du im Ordner scriptfiles den Ordnet "Spieler" erstellen.
Dafür würd ich kein Geld hinblätter, um zu überprüfen ob der Spieler bei einem Kommando (/duty) an einer Stelle ist in einem Radius kannst du diese Funktion Verwenden:
IsPlayerInRangeOfPoint(playerid, Float:range, Float:x, Float:y, Float:z);
//bzw inner if verzweigung:
if(sPlayerInRangeOfPoint(playerid, 10.0, 123.0, 456.0, 789.0)[
//Some shit here :D
}
/chefeinstellen und /kündigen kann ich dir erklären, aber dafür bräuchte ich ein paar Variablen in denen z.B der Leader der Frak bzw. Job gespeichert wird oder ggf. dini_Get(someblahere);
Dann kann ich dir ein Beispielcode mal eben geben, kostenfrei versteht sich