SetVehicleToRespawn(i);
Antstatt dem i musst du in der schleife folgendes verwenden:
SetVehicleToRespawn(GroveVehs[i]);
mfg. ![]()
SetVehicleToRespawn(i);
Antstatt dem i musst du in der schleife folgendes verwenden:
SetVehicleToRespawn(GroveVehs[i]);
mfg. ![]()
Das kommt darauf an.
Willst du wissen, wer momentan am Meisten kills auf dem Server hat der online ist oder allgemein?
Wer online ist einfach so:
new id;
for(new i,old; i<MAX_PLAYERS; i++)
{
if(!IsPlayerConnected(i)) continue;
if(pInfo[i][pKills] >= old) old = pInfo[i][pKills],id=i;
}
printf("Der Spieler mit den meisten Kills ist ID: %d | Kills: %d",id,pInfo[id][pKills]);
Bei dem Allgemein, kommt es auf dein Speicherungssystem an ![]()
mfg. ![]()
GetPlayerName(playerid,playername,sizeof(playername);
Da ist dein Klammerfehler und eine Zeile weiter drunter auch.
Da musst du eine ) am Ende noch setzen... ![]()
Könntest du mal einen Vergleich zwischen dem normalen Umgang mit Enums und dem Enumerator machen ?
Was? ![]()
Ein Enum ist ein Enumerator
Das "Enum" ist eine Abkürzung für Enumerator...sowie bool eine Abkürzung für Boolean ist...usw
Und Beispiele wie man das struct Makro nutzt habe ich doch gemacht...es ist nichts anderes als ein Enum, nur dass man die Namen auslesen kann.
mfg. ![]()
Ich bitte um schnellstmögliche Hilfe.
1. Downloade dir das Streamer Plugin von Incognito und füge es ein.
2. Update dein SSCANF Plugin und Include
3. Check ob es funktioniert, wenn nicht, nutzt du kein kompatibles MySQL Include + Plugin.
mfg. ![]()
Hallo liebe Brotfische, ich stelle euch nun mal eine kleine, aber evtl nützliche Include vor.
Also es geht um folgendes, stellt euch vor ihr habt ein Enum:
enum Hust
{
Name[MAX_PLAYER_NAME],
Level,
Geld,
bool:Erstellt,
Float:p_x,
Float:p_y
};
new pInfo[MAX_PLAYERS][Hust];
So, dies ist nun ein einfacher Enumerator.
Man kann über Pawn ja ganz einfach auf die einzelnen Indizes zugreifen: pInfo[playerid][Level] = 1; //usw
Alles schön und gut.
Was diese Include bietet ist eine Funktion um die einzelnen Namen im Enum auszulesen:
const id = 0;
for(new i; i<GetStruct(id); i++)
{
printf("index: %d | Name: %s",i,heap[id][i]);
}
/*
Dieser Code gibt in dem Beispiel also aus:
index: 0 | Name: Name
index: 1 | Name: Level
index: 2 | Name: Geld
index: 3 | Name: Erstellt
index: 4 | Name: p_x
index: 5 | Name: p_y
*/
Dies bietet neue Möglichkeiten, z.B. beim Debugging oder einfachere Handhabung der Variablen für Speicherungs-Systeme, damit könnte man z.B. das einfach per Schleife alles speichern (mit MySQL).
Ich wollte es euch einfach mal nur Vorstellen das System, falls es jemand benötigt (habe schon mehrmals gelesen, wo sowas gewünscht wurde).
Probleme:
Ihr könnt maximal 8 Indizes in einer Struktur benutzen. Grund dafür ist, dass es maximal nur %0-%9 Unbekannte in einem Makro geben kann.
Desweiteren, dürfen die Variablen Namen nicht solang sein und ihr solltet keine weiteren Makro-Namen in dem Makro selbst nutzen
(Also schreibt anstatt MAX_PLAYER_NAME, direkt 24 einfach.)
Falls ihr zu lange Namen o.ä. verwendet...stürzt euer Compiler ab ![]()
Da alles an Makros gebunden ist, muss man leider syntaktisch etwas umdenken.
//Allgemeine Struktur:
struct@anzahl_der_Indizes: Enum_Name { a,b,c,d,e,f } (id);
//Beispiele:
struct@1: p_INFO { a } (0); //Es gibt 1nen Index und da es die erste Struktur ist (0) am Ende.
struct@2: p_INFO { pMember,pLeader } (1);
struct@5: p_INFO { a,b,c,d,e } (2);
//Weitere Funktionen
GetStruct(id); //Gibt die Anzahl der Indizes wieder
//Bei den Strukturen hier z.B.:
const indizes = GetStruct(2); //würde z.B. hier 5 enthalten
const id = 1;
//In dieser Variable sind alle Namen gespeichert
heap[id][0]; //Das würde ein "pLeader" ausgeben
heap[id][1]; //das gibt ein "pMember" aus
//Oben gezeigtes Beispiel sieht also so aus:
struct@6: Hust { Name[24],Level,Geld,bool:Erstellt,Float:p_x,Float:p_y } (0);
Es ist leider sehr stark durch Pawn eingegrenzt inwieweit man sowas nutzen kann.
Ich wollte lediglich mal zeigen, dass es in kleinem Maße funktioniert so etwas zu erstellen.
Download:
Source-Code: PasteBin
Direkter-Download: MediaFire
Schlusswort:
Ich würde mich über ein paar Rückmeldungen freuen, falls ihr Verbesserungs-Vorschläge habt oder sonst irgendwas einfach, einfach schreiben ![]()
mfg. ![]()
//Edit: Ich hatte das Beispiel angepasst.
//Edit²: Ich habe das Edit eingefügt.
Schreibe das mal so:
COMMAND:handschelle(playerid,params[])
{
if(!IsSAPD(playerid)) return SendClientMessage(playerid, Rot, "Du darfst diesen Befehl nicht nutzen!");
new targetid,string[128], PlayerName[MAX_PLAYER_NAME];
if(sscanf(params,"us",targetid,string)) return SendClientMessage(playerid,Grau,"Benutze: /freeze [Spieler id] [Grund]");
if(!IsPlayerConnected(targetid)) return SendClientMessage(playerid,0xFF7800FF, "Spieler Offline");
TogglePlayerControllable(targetid,0);
SetPlayerSpecialAction(targetid,24);
SetPlayerAttachedObject(targetid, 0, 19418, 6, -0.011000, 0.028000, -0.022000, -15.600012, -33.699977, -81.700035, 0.891999, 1.000000, 1.168000);
GetPlayerName(targetid,PlayerName,MAX_PLAYER_NAME);
format(string,sizeof(string),"%s wurde festgenommen Grund: %s",PlayerName,string);
SendClientMessageToAll(Rot,string);
format(string,sizeof(string),"Du Frierst %s.",PlayerName);
SendClientMessage(playerid,Rot,string);
GetPlayerName(playerid,PlayerName,MAX_PLAYER_NAME);
format(string,sizeof(string)," %s Hat dir Handschellen angelegt",PlayerName);
SendClientMessage(targetid,Rot,string);
return 1;
}
mfg. ![]()
z.B. Fliegen können
Es ist nicht alles möglich, aber einiges. Fliegen unter anderem ist möglich.
Ein Beispiel Skript für einen flymode gibt es als FilterSkript von h02:
mfg. ![]()
Poste mal den Prototype..also suche in deinem Skript forward OnUserCheck(playerid);
mfg. ![]()
Wie kann ich das hier mit den Menus der Shops verbinden?
Du prüfst ob GetPlayerMoney(playerid) < pInfo[playerid][Geld] ist...falls dies der Fall ist, setzt du pInfo[playerid][Geld] = GetPlayerMoney(playerid)
mfg. ![]()
In X-beliebigen selbst-gemappten Objekten geht das aber nicht.
Oh ja stimmt, habe das wohl überlesen ![]()
Dann geht es nur mit einem NPC ![]()
Also gibts da ne Funktion oder kann mir da jemand einen Tipp geben wie ich das selber bastle?
Also mit einer Funktion es hinsetzen geht nicht, da gibt es keine Methode.
Doch die gibt es, sie heißt SetPlayerShopName.
Damit kann man in einzelnen Gebäuden die Bots anzeigen lassen ![]()
mfg. ![]()
ich hoffe es kann mir einer weiterhelfen.
Du kannst in einer Funktion nicht Werte übergeben und gleichzeitig setzen.
Schreib das mal so:
Gutschein[g][Vorhanden] = 0;
Gutschein[g][Gutscheintyp] = 1;
mysql_format(myCon, query, sizeof(query), "INSERT INTO `script_gutscheine` (`Gutscheincode`,`Vorhanden`,`EingeloestName`,`Gutscheintyp`) VALUES ('%d', '0','Niemand', '1')",GutscheinAlle);
//Edit: Nah..das ist nicht dein einziger Fehler...so kann das mit der Schleife nicht funktionieren ![]()
mfg. ![]()
Und vlt. so das man den Pfosten nicht umfahren kann.
Ich hab mir mal kurz die Zeit genommen, sowas für dich zu erstellen:
Hoffe ich konnte dir helfen ![]()
mfg. ![]()
Könnte mir das einer noch mal als Bs. zeigen, wer echt super nett.
Einfach so:
PlayAudioStreamForPlayer(playerid, "http://somafm.com/tags.pls", X, Y, Z, Reichweite, 1);
mfg. ![]()
Habe mir gerade den Server nochmal angeschaut.
Also es ist ein Troll - Server ![]()
Auf dem Skript ist nur der Login-Screen gemacht und zwar auf unendlich
Entweder man crasht oder hängt ewig da.
Durch bestimmtes Anwenden einiger Mods..gelang es mir aber auch so mal einen Blick auf den Server zu schauen...
Da ist rein gar nichts gemacht, es ist nichteinmal DisableInteriorEnterExits im Skript aktiv, somit ist das alles purer Blödsinn mit den Jobs etc was sie schreiben.
Also entweder wurde das "falsche Skript" (was ja nicht sein kann wegen dem Login Screen) hochgeladen, oder es ist nur zum Trollen ._.
Vote 4 Close! ![]()
Am anfang wird erstmal dein Computer von meinem Testyourpc System getestet.
Es bringt nichts wenn du dir beim einloggen sofort einen Crash abholst. Oder dir ein Standbild holst.
Also werden User aussortiert die nicht den Voraussetzungen entsprechen.
Oh bitte...was ist dass denn für ein Schwachsinn ![]()
PS: Wenn man es schafft, nicht zu crashen, läuft der Balken ewig...
mfg. ![]()
sowie ein bisschen nach links gedreht
Klar, nutz wie Jeffry schon gesagt hat einfach ein Editor und lerne es ![]()
Woran kann das Liegen?
Downloade dir mal die aktuellstenSA-MP Includes ![]()
Wenn ja könntest du es mit bitte machen
Dann schreibs so:
AttachObjectToPlayer(GangwarZones[TempZone][fsFlagOfAttack],playerid,0.0,-0.195,0.0,0.0,0.0,180.0);
mfg. ![]()