[FS][Roleplay] Se non estrai non spari

Ardaenus

Utente Guru
Autore del topic
26 Settembre 2011
14.072
120
Miglior risposta
0

[FS]Se non estrai non spari

Salve a tutti :emoji_smiley:
Oggi volevo rilasciarvi un filterscript creato completamente da me. Come scritto dal titolo, blocca lo sparo di un utente, nel caso non estragga prima l'arma in maniera RP.
Come ho fatto a ricreare tutto ciò?
Ho utilizzato una libreria, "OnPlayerShoot", che rileva quando il giocatore spara, in modo da aggiungere una condizionale di controllo, nel caso il giocatore abbia effettuato il comando /estrai.
Nel caso in cui il giocatore, non effettua il comando, egli verrà slappato. Infine, ovviamente, nel caso in cui il giocatore, cambierà arma, dovrà riestrarla di nuovo.

Visto che sono generoso, vi lascio anche la source, chiedendovi la gentilezza di non rimuovere i crediti.
Download:
Perfavore, Entra oppure Registrati per vedere i Link!
 
Riferimento: [FS][Roleplay] Se non estrai non spari

Scusa la mia ignoranza , ma devo inserire questo codice nella GM

#include <YSI\y_hooks>

#define HOLDING(%0) \
((newkeys & (%0)) == (%0))

#define PRESSED(%0) \
(((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))

forward OnPlayerShoot(playerid,weaponid,ammo);
forward F_OnPlayerConnect(playerid);
forward F_OnPlayerKeyStateChange(playerid,newkeys,oldkeys);

new bool:Lott[MAX_PLAYERS];
new loszer[MAX_PLAYERS], weap[MAX_PLAYERS];

public F_OnPlayerConnect( playerid )
{
SetTimerEx( "Update", 5, 1, "i", playerid );
SetTimerEx( "Leker", 5, 1, "i", playerid );
return 1;
}

forward Leker(playerid);

public Leker(playerid)
{
if( GetPlayerAmmo(playerid) != loszer[playerid] )
{
loszer[playerid] = GetPlayerAmmo(playerid);
}
}

hook OnPlayerConnect( playerid )
{
CallLocalFunction( "F_OnPlayerConnect", "i", playerid );
}

forward Update(playerid);

public Update(playerid)
{

{
if( loszer[playerid] == GetPlayerAmmo(playerid) )
{
Lott[playerid] = false;
}

if(loszer[playerid] > GetPlayerAmmo(playerid) && weap[playerid] == GetPlayerWeapon(playerid))
{
loszer[playerid] = GetPlayerAmmo(playerid);
Lott[playerid] = true;
if( Lott[playerid] == true)
{
CallLocalFunction( "OnPlayerShoot", "iii", playerid, weap[playerid], loszer[playerid] );
}
}
}

}

public F_OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if( PRESSED(KEY_FIRE) )
{
loszer[playerid] = GetPlayerAmmo(playerid);
weap[playerid] = GetPlayerWeapon(playerid);
}
return 1;
}

hook OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
CallLocalFunction( "F_OnPlayerKeyStateChange", "iii", playerid, newkeys, oldkeys );
}



o pure basta mettere l'include? @Ardaenus
 
É un Filter Script, quindi inserisci quel codice in pawno.exe, salvi il file .pwn e compili poi in .amx. I due file (volendo solo quello già compilato) vanno inseriti nella cartella FilterScript e poi il nome file aggiunto senza estensione nel file server di configurazione.

Se per esempio hai i due file estrai.amx ed estrai.pwn dovrai inserire nella riga filterscript solo estrai separando la prima parola dal nome del file con lo spazio, poi salvi ed avvii il server.


Inviato dal mio iPad con Tapatalk HD
 
Riferimento: [FS][Roleplay] Se non estrai non spari

Scusa la mia ignoranza , ma devo inserire questo codice nella GM

#include <YSI\y_hooks>

#define HOLDING(%0) \
((newkeys & (%0)) == (%0))

#define PRESSED(%0) \
(((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))

forward OnPlayerShoot(playerid,weaponid,ammo);
forward F_OnPlayerConnect(playerid);
forward F_OnPlayerKeyStateChange(playerid,newkeys,oldkeys);

new bool:Lott[MAX_PLAYERS];
new loszer[MAX_PLAYERS], weap[MAX_PLAYERS];

public F_OnPlayerConnect( playerid )
{
SetTimerEx( "Update", 5, 1, "i", playerid );
SetTimerEx( "Leker", 5, 1, "i", playerid );
return 1;
}

forward Leker(playerid);

public Leker(playerid)
{
if( GetPlayerAmmo(playerid) != loszer[playerid] )
{
loszer[playerid] = GetPlayerAmmo(playerid);
}
}

hook OnPlayerConnect( playerid )
{
CallLocalFunction( "F_OnPlayerConnect", "i", playerid );
}

forward Update(playerid);

public Update(playerid)
{

{
if( loszer[playerid] == GetPlayerAmmo(playerid) )
{
Lott[playerid] = false;
}

if(loszer[playerid] > GetPlayerAmmo(playerid) && weap[playerid] == GetPlayerWeapon(playerid))
{
loszer[playerid] = GetPlayerAmmo(playerid);
Lott[playerid] = true;
if( Lott[playerid] == true)
{
CallLocalFunction( "OnPlayerShoot", "iii", playerid, weap[playerid], loszer[playerid] );
}
}
}

}

public F_OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if( PRESSED(KEY_FIRE) )
{
loszer[playerid] = GetPlayerAmmo(playerid);
weap[playerid] = GetPlayerWeapon(playerid);
}
return 1;
}

hook OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
CallLocalFunction( "F_OnPlayerKeyStateChange", "iii", playerid, newkeys, oldkeys );
}



o pure basta mettere l'include? @Ardaenus

nell'include :emoji_slight_smile: e anche direttamente la cartella YSI in include.
 
Prova ad impostarlo come filterscript, mi sembra strano che come include funziona :|


Inviato dal mio iPad con Tapatalk HD
 
Riferimento: [FS][Roleplay] Se non estrai non spari

Scusa , siccome da poco che uso pawno sto iniziando a prendere mano sotto quale codice devo inserirlo in pawno.exe ?
 
Riferimento: [FS][Roleplay] Se non estrai non spari

Ho aperto adesso il file .rar . Sposta il file estrai.amx nella cartella filterscripts. Poi apri il file server.cfg e nella riga "filterscripts" premi spazio e digita estrai .
Salva ed avvia il server :emoji_slight_smile:
 
Riferimento: [FS][Roleplay] Se non estrai non spari

Risolto @Michelinu Grazie , volevo dirti nel file estrai.amx voglio cambiare la parola /estrai come faccio!?
 
Allora prendi il file estrai.pwn e lo sposti nella cartella filterscripts. Poi apri la cartella Pawno e ci sposti dentro la cartella include presente nell'archivio rar. Ora apri pawno.exe e modifichi estrai.pwn.

Il comando lo trovi alla 57esima riga, oppure basta che premi il tasto CMD ed il tasto F, digiti /estrai e avvii la ricerca. Da qui puoi modificare il comando, per esempio se vuoi che il comando sia estrazione sostituisce /estrai con /estrazione.

Salvi, compili ed avvii il server.
Inviato dal mio iPad con Tapatalk HD
 
Ultima modifica:
Riferimento: [FS][Roleplay] Se non estrai non spari

Non avevo proprio pensato al file estrai.pawn mi ero dimenticato , grazie ancora.
 
Riferimento: [FS][Roleplay] Se non estrai non spari

spiegatemi procedimenti non lo sa inserire allora ho sti file ora apro pawno e che faccio ?
 
Riferimento: [FS][Roleplay] Se non estrai non spari

spiegatemi procedimenti non lo sa inserire allora ho sti file ora apro pawno e che faccio ?

Devi inserire il file .AMX nella cartella filterscript e dopo nel server.cfg, affianco la riga filterscript, devi scrivere il nome del file.

Inviato dal mio Nexus 4 LTE tramite tapatalk 4
 
Riferimento: [FS][Roleplay] Se non estrai non spari

e scusa cosi non perdo i miei filescript ?
--------------- AGGIUNTA AL POST ---------------
niente risolto lascia sta
--------------- AGGIUNTA AL POST ---------------
ok funziona ma mi daresti lo script del comando/estrai xD non c'e l'ho
--------------- AGGIUNTA AL POST ---------------
Devi inserire il file .AMX nella cartella filterscript e dopo nel server.cfg, affianco la riga filterscript, devi scrivere il nome del file.

Inviato dal mio Nexus 4 LTE tramite tapatalk 4

Cioe il movimento che carica lo fa pero non dice tipo hai estratto .... come faccio ?
 
Ultima modifica: